天天看點

ros中urdf的基本使用及優化

實作流程:

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>
           
ros中urdf的基本使用及優化
ros中urdf的基本使用及優化

5.優化 rviz 啟動

重複啟動launch檔案時,Rviz 之前的元件配置資訊不會自動儲存,需要重複執行步驟4的操作,為了友善使用,可以使用如下方式優化:

首先,将目前配置儲存進config目錄

ros中urdf的基本使用及優化

然後,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>
           

再啟動時,就可以包含之前的元件配置了,使用更友善快捷。