ROS(7) urdf 搭建自己的機器人模型
1.搭建自己的模型並在rviz中顯示出來,需要三個檔案。
(1)urdf檔案 :此檔案為robot 形狀描述檔案,主要包括link 和 joint ,需按照嚴格格式編寫。具體參考http://wiki.ros.org/urdf/Tutorials/
(2)rviz 檔案: 用來配置rviz相關參數
(3)launch 檔案: 啟動rviz 以及urdf
2.具體實現:
.rviz :直接複製urdf_tutorials 中urdf.rviz
.launch : 複製urdf_tutorials中的display.launch
代碼修改:
<param name="robot_description" textfile="$(find pkg_name)/urdf/xxx.urdf" />
<node name="rviz" type =”rviz“ args="-d $(find okg_name)"/xxx.rviz" required="true"/>
.urdf 檢查urdf檔案是否有文法問題:urdf 目錄下check_urdf xxx.urdf
3.Xacro:
URDF檔案中,內嵌了關於各個組件的大小參數以及位置,對於相同模型的不同尺寸可以利用xacro進行編寫。 Xacro可以把它理解成為針對URDF的擴充性和配置性而設計的宏語言(macro language)。有了Xacro,就可以
像編程一樣來寫URDF檔案了。
首先我們來看Xacro檔案的變數定義:
<xacro:macro name="pr2_arm" params="suffix parent reflect"> <pr2_upperarm suffix="${suffix}" reflect="${reflect}" parent="${parent}" /> <pr2_forearm suffix="${suffix}" reflect="${reflect}" parent="elbow_flex_${suffix}" /></xacro:macro><xacro:pr2_arm suffix="left" reflect="1" parent="torso" /><xacro:pr2_arm suffix="right" reflect="-1" parent="torso" />
<xacro:property name="the_radius" value="2.1" /><xacro:property name="the_length" value="4.5" /><geometry type="cylinder" radius="${the_radius}" length="${the_length}" /> 編輯完成後可複製urdf_tutorials中的xacrodisplay.launch 修改launch中的model地址