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文件的变量定义:
编辑完成后可复制urdf_tutorials中的xacrodisplay.launch 修改launch中的model地址<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}" />