小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
ros2-jazzy和gazebo-harmonic新版本运行gazebo_sim.launch.py显示找不到gazebo_ros包
-
问题描述:
gazebo_sim.launch.py```
def generate_launch_description():
# 获取默认路径
# robot_name_in_model = "fishbot"
urdf_tutorial_path = get_package_share_directory('fishbot_description')
default_model_path = urdf_tutorial_path + '/urdf/fishbot/fishbot.urdf.xacro'
default_world_path = urdf_tutorial_path + '/world/custom_room.world'
# 为 Launch 声明参数
action_declare_arg_mode_path = launch.actions.DeclareLaunchArgument(
name='model', default_value=str(default_model_path),
description='URDF 的绝对路径')
# 获取文件内容生成新的参数
robot_description = launch_ros.parameter_descriptions.ParameterValue(
launch.substitutions.Command(
['xacro ', launch.substitutions.LaunchConfiguration('model')]),
value_type=str)robot_state_publisher_node = launch_ros.actions.Node( package='robot_state_publisher', executable='robot_state_publisher', parameters=[{'robot_description': robot_description}] ) # 通过 IncludeLaunchDescription 包含另外一个 launch 文件 launch_gazebo = launch.actions.IncludeLaunchDescription( PythonLaunchDescriptionSource([get_package_share_directory( 'gazebo_ros'), '/launch', '/gazebo.launch.py']), # 传递参数 launch_arguments=[('world', default_world_path),('verbose','true')] ) return launch.LaunchDescription([ action_declare_arg_mode_path, robot_state_publisher_node, launch_gazebo, ])
报错信息: ![26cc035c-8f3a-428e-a14c-3733c3c36109-图片.png](/forum/assets/uploads/files/1730107482618-26cc035c-8f3a-428e-a14c-3733c3c36109-图片-resized.png) 具体日志如下:``` wang@wang-System-Product-Name:~/Desktop/ros2bookcode/chapt6/chapt6_ws$ ros2 launch fishbot_description gazebo_sim.launch.py [INFO] [launch]: All log files can be found below /home/wang/.ros/log/2024-10-28-17-23-11-619610-wang-System-Product-Name-24342 [INFO] [launch]: Default logging verbosity is set to INFO [ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught multiple exceptions when trying to load file of format [py]: - PackageNotFoundError: "package 'gazebo_ros' not found, searching: ['/home/wang/Desktop/ros2bookcode/chapt6/chapt6_ws/install/fishbot_description', '/opt/ros/jazzy']" - InvalidFrontendLaunchFileError: The launch file may have a syntax error, or its format is unknown
ros2-jazzy新版本好像没有了gazebo-ros2了,对应的类似的安装命令现在是什么啊
-
在 ROS 2 的新版本中,尤其是 ROS 2 Jazzy 和更高版本,
gazebo_ros
包已经被重构和重命名为gazebo_ros2
,并且它的安装和配置方式也发生了变化。gazebo_ros
曾是 ROS 1 与 Gazebo 集成的包名,而 ROS 2 使用gazebo_ros2
。针对你遇到的问题,你需要确保安装了正确的 Gazebo 和 ROS 2 的集成包。以下是如何在 ROS 2 Jazzy 中安装和配置 Gazebo 的步骤:
-
安装 Gazebo:
首先,你需要确保系统上安装了 Gazebo。对于 Ubuntu,你可以使用以下命令安装 Gazebo(例如,Gazebo 11):sudo apt-get update sudo apt-get install gazebo11
注意:确保安装的 Gazebo 版本与 ROS 2 版本兼容。
-
安装 ROS 2 与 Gazebo 的集成包:
使用 ROS 2 的包管理工具rosdep
来安装gazebo_ros2
相关的包。首先,确保你的rosdep
初始化并更新到最新:sudo rosdep init rosdep update
然后,安装
gazebo_ros2
包:rosdep install --from-paths src --ignore-src --rosdistro jazzy -y
注意:这里的
src
是你的 ROS 2 工作空间的源代码目录,其中应该包含gazebo_ros2
的仓库(如果你从源代码构建的话)。如果你使用的是二进制安装,可能需要查找适合你的 ROS 2 版本的 Gazebo 集成包。 -
构建你的工作空间:
如果你从源代码安装了gazebo_ros2
,确保你的工作空间包含了gazebo_ros2
的仓库,并构建你的工作空间:cd ~/your_ros2_workspace # 替换为你的 ROS 2 工作空间目录 colcon build
-
修改你的 launch 文件:
在你的gazebo_sim.launch.py
文件中,确保引用的是正确的包名和路径。由于你提到gazebo_ros
找不到,你应该将gazebo_ros
替换为gazebo_ros2
:launch_gazebo = launch.actions.IncludeLaunchDescription( PythonLaunchDescriptionSource([get_package_share_directory( 'gazebo_ros2'), '/launch', '/gazebo.launch.py']), launch_arguments=[('world', default_world_path),('verbose','true')] )
-
运行你的 launch 文件:
确保所有设置正确后,尝试再次运行你的 launch 文件:ros2 launch fishbot_description gazebo_sim.launch.py
如果以上步骤正确无误,你应该能够成功运行 Gazebo 和你的 ROS 2 节点。如果仍然遇到问题,检查你的 ROS 2 环境变量设置、Gazebo 版本兼容性以及任何可能的依赖问题。
以上为生成回答,仅供参考~
-
-
@2352947187 这个包是针对 gazebo classic 写的,书和视频都有讲