實作流程:
1.準備:建立功能包,導入依賴
2.核心:編寫 urdf 檔案
3.核心:在 launch 檔案內建 URDF 與 Rviz
4.在 Rviz 中顯示機器人模型
1.建立功能包,導入依賴
建立一個新的功能包,名稱自定義,導入依賴包:urdf與xacro
在目前功能包下,再建立幾個目錄:
urdf: 存儲 urdf 檔案的目錄
meshes:機器人模型渲染檔案(暫不使用)
config: 配置檔案
launch: 存儲 launch 啟動檔案
2.編寫 URDF 檔案
建立一個子級檔案夾:urdf(可選),檔案夾中添加一個.urdf檔案,複制如下内容:
<robot name="mycar">
<link name="base_link">
<visual>
<geometry>
<box size="0.5 0.2 0.1" />
</geometry>
</visual>
</link>
</robot>
3.在 launch 檔案中內建 URDF 與 Rviz
在launch目錄下,建立一個 launch 檔案,該 launch 檔案需要啟動 Rviz,并導入 urdf 檔案,Rviz 啟動後可以自動載入解析urdf檔案,并顯示機器人模型,核心問題:如何導入 urdf 檔案? 在 ROS 中,可以将 urdf 檔案的路徑設定到參數伺服器,使用的參數名是:robot_description,示例代碼如下:
<launch>
<!-- 設定參數 -->
<param name="robot_description" textfile="$(find 包名)/urdf/urdf/urdf01_HelloWorld.urdf" />
<!-- 啟動 rviz -->
<node pkg="rviz" type="rviz" name="rviz" />
</launch>
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn5UeZR1T0sGROFDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzUDNhhTN5YDZzcDNmZWMhJWN1QDNllDOhNWZzMjM4Q2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
5.優化 rviz 啟動
重複啟動launch檔案時,Rviz 之前的元件配置資訊不會自動儲存,需要重複執行步驟4的操作,為了友善使用,可以使用如下方式優化:
首先,将目前配置儲存進config目錄
然後,launch檔案中 Rviz 的啟動配置添加參數:args,值設定為-d 配置檔案路徑
<launch>
<param name="robot_description" textfile="$(find 包名)/urdf/urdf/urdf01_HelloWorld.urdf" />
<node pkg="rviz" type="rviz" name="rviz" args="-d $(find 報名)/config/rviz/show_mycar.rviz" />
</launch>
再啟動時,就可以包含之前的元件配置了,使用更友善快捷。