參考視頻:【奧特學園】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 可以選擇並插入相關道具了