1.使用xacro简化urdf代码
xacro相当于C语言中的#define用于替换一些常量,使得代码易读易改。
典型用法:
rosrun xacro xacro model.xacro > model.urdf
也可以在启动文件中自动生成urdf
<param name="robot_description"
command="$(find xacro)/xacro '$(find pr2_description)/robots/pr2.urdf.xacro'" />
在urdf文件头需要声明是xacro文件
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter">
1.定义一个属性
<xacro:property name="width" value=".2" />
2.属性引用
${width}
3.属性中可以进行数学运算
${width/2}
4.定义宏
<xacro:macro name="default_origin">
<origin xyz="0 0 0" rpy="0 0 0"/>
</xacro:macro>
5.引用宏
<xacro:default_origin />
6.带参数的宏(可以看成函数)
<xacro:macro name="default_inertial" params="mass">
<inertial>
<mass value="${mass}" />
<inertia
ixx="1.0" ixy="0.0" ixz="0.0"
iyy="1.0" iyz="0.0" izz="1.0"
/>
</inertial>
</xacro:macro>
7.引用宏函数
<xacro:default_inertial mass="10"/>