参考视频:【奥特学园】ROS机器人入门课程《ROS理论与实践》零基础教程_哔哩哔哩_bilibili
参考文档:http://www.autolabor.com.cn/book/ROSTutorials/
素材下载链接:https://github.com/zx595306686/sim_demo.git
到目前为止,我们已经可以将机器人模型显示在 Gazebo 之中了,但是当前默认情况下,在 Gazebo 中机器人模型是在 empty world 中,并没有类似于房间、家具、道路、树木... 之类的仿真物,如何在 Gazebo 中创建仿真环境呢?
Gazebo 中创建仿真实现方式有两种:
-
方式1: 直接添加内置组件创建仿真环境
-
方式2: 手动绘制仿真环境(更为灵活)
也还可以直接下载使用官方或第三方提高的仿真环境插件。
1.使用素材的环境
在功能包 urdf02_gazebo 下新建文件夹 worlds,将下载的素材中的 box_house.world 放入此文件夹
在 launch 新建 demo03_env.launch
<launch> <!--1.需要在参数服务器中载入 urdf --> <param name="robot_description" command="$(find xacro)/xacro $(find urdf02_gazebo)/urdf/car.urdf.xacro" /> <!--2.启动 Gazebo 仿真环境 --> <include file="$(find gazebo_ros)/launch/empty_world.launch" > <arg name="world_name" value="$(find urdf02_gazebo)/worlds/box_house.world" /> </include> <!--3.在 Gazebo 中添加机器人模型 --> <node pkg="gazebo_ros" type="spawn_model" name="spawn_model" args="-urdf -model car -param robot_description" /> </launch>
接着运行
cys@ubuntu:~/demo05_ws$ source ./devel/setup.bash cys@ubuntu:~/demo05_ws$ roslaunch urdf02_gazebo demo03_env.launch
2.添加内置组件创建仿真环境
2.1 启动 Gazebo 并添加组件
启动 roscore
启动
rosrun gazebo_ros gazebo
2.2 保存仿真环境
添加完毕后,选择 file ---> Save World as 选择保存路径(功能包下: worlds 目录),文件名自定义,后缀名设置为 .world
2.3 启动
<launch> <!-- 将 Urdf 文件的内容加载到参数服务器 --> <param name="robot_description" command="$(find xacro)/xacro $(find demo02_urdf_gazebo)/urdf/xacro/my_base_camera_laser.urdf.xacro" /> <!-- 启动 gazebo --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="world_name" value="$(find demo02_urdf_gazebo)/worlds/hello.world" /> </include> <!-- 在 gazebo 中显示机器人模型 --> <node pkg="gazebo_ros" type="spawn_model" name="model" args="-urdf -model mycar -param robot_description" /> </launch>
核心代码: 启动 empty_world 后,再根据arg
加载自定义的仿真环境
<include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="world_name" value="$(find demo02_urdf_gazebo)/worlds/hello.world" /> </include>
3.自定义仿真环境
3.1 启动 gazebo 打开构建面板,绘制仿真环境
3.2 保存构建的环境
点击: 左上角 file ---> Save (保存路径功能包下的: models)
然后 file ---> Exit Building Editor
3.3 保存为 world 文件
可以像方式1一样再添加一些插件,然后保存为 world 文件(保存路径功能包下的: worlds)
3.4 启动
同方式1
4.使用官方提供的插件
当前 Gazebo 提供的仿真道具有限,还可以下载官方支持,可以提供更为丰富的仿真实现,具体实现如下:
4.1 下载官方模型库
git clone https://github.com/osrf/gazebo_models
之前是:hg clone https://bitbucket.org/osrf/gazebo_models
但是已经不可用
注意: 此过程可能比较耗时
4.2 将模型库复制进 gazebo
将得到的gazebo_models文件夹内容复制到 /usr/share/gazebo-*/models
4.3 应用
重启 Gazebo,选择左侧菜单栏的 insert 可以选择并插入相关道具了