ros2 launch gazebo_ros gazebo.launch.py无法启动(zhuanzai)

在Ubuntu 22.04系统上,使用ROS2 Humble运行`ros2 launch gazebo_ros gazebo.launch.py`时遇到仿真无法启动的问题。解决方案是先执行`source /usr/share/gazebo/setup.bash`刷新环境变量,然后再次运行命令。为避免每次手动执行,可以将刷新命令添加到`.bashrc`文件中,确保gazebo仿真能正常启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的系统是ubuntu22.04,ros2的版本是humble,当运行gazebo仿真时,运行

ros2 launch gazebo_ros gazebo.launch.py命令,会出现以下问题:

此时,这个页面会卡死,gazebo也不会打开,

BUT you can open the gazebo by entering gazbo in bash,like this:

解决办法是在运行命令之前刷新环境变量:source /usr/share/gazebo/setup.bash,然后再运行命令:ros2 launch gazebo_ros gazebo.launch.py

即可正常运行:

为了以后都可以正常打开gazebo,这里可以将source /usr/share/gazebo/setup.bash这句命令添加到.bashrc中:

这样以后在运行gazebo仿真时就可以正常运行了。
————————————————
                        
原文链接:https://blog.csdn.net/2303_76389797/article/details/135517732

thanks for the authors document,i have solve my problem

### 使用 ROS2 Launch 配合 Gazebo 的简单世界文件示例 为了使 `ros2 launch gazebo_ros gazebo.launch.py` 能够加载自定义的世界文件,可以通过传递参数来指定 `.world` 文件路径。下面是一个简单的 Gazebo 世界文件示例以及如何将其集成到 ROS2 中。 #### 简单的 Gazebo 世界文件 以下是一个基本的 Gazebo 世界文件 (`simple_world.world`): ```xml <?xml version="1.0" ?> <sdf version="1.7"> <world name="default"> <!-- 地面平面 --> <include> <uri>model://ground_plane</uri> </include> <!-- 太阳光源 --> <include> <uri>model://sun</uri> </include> <!-- 添加一个立方体模型 --> <model name="cube_model"> <pose>0 0 1 0 0 0</pose> <link name="body"> <collision name="collision"> <geometry> <box> <size>1 1 1</size> </box> </geometry> </collision> <visual name="visual"> <geometry> <box> <size>1 1 1</size> </box> </geometry> <material> <ambient>1 0 0 1</ambient> <diffuse>1 0 0 1</diffuse> </material> </visual> </link> </model> </world> </sdf> ``` 此文件创建了一个带有地面平面、太阳光源和红色立方体的基本场景[^6]。 #### 启动 Gazebo 并加载自定义世界文件 要通过 `ros2 launch` 加载上述世界文件,可以在启动命令中添加 `world:=<path_to_world_file>` 参数。例如: ```bash ros2 launch gazebo_ros gazebo.launch.py world:=$(pwd)/simple_world.world ``` 如果希望将该配置保存在一个独立的 `.launch.py` 文件中以便重复使用,可以编写如下脚本: ```python from launch import LaunchDescription from launch.actions import DeclareLaunchArgument from launch.substitutions import LaunchConfiguration from launch_ros.actions import Node def generate_launch_description(): world_arg = DeclareLaunchArgument( 'world', default_value='$(find-pkg-share gazebo_ros)/worlds/simple_world.world', description='SDF world file' ) gazebo_node = Node( package='gazebo_ros', executable='gazebo', output='screen', arguments=['-s', 'libgazebo_ros_init.so', '-s', 'libgazebo_ros_factory.so', '--verbose'], parameters=[{'world': LaunchConfiguration('world')}] ) return LaunchDescription([ world_arg, gazebo_node ]) ``` 在此脚本中,`world` 参数被声明并默认指向 `simple_world.world` 文件的位置[^7]。 #### 注意事项 在运行以上命令前,请确保已正确设置环境变量以支持 GazeboROS2 的交互。如果没有设置环境变量,可能会遇到类似于“卡”的情况[^3]。此外,确认已经安装了必要的包,例如 `ros-humble-gazebo-ros` 或对应版本的依赖项[^5]。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

geniusNMRobot引流专家

你最少得给我一个亿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值