一、URDF
1.link标签
<link name="***">----为连杆命名
<visual>-----描述外观
<geometry>------设置连杆的形状
<box size="长 宽 高" />------长方形
<cylinder radius="半径" length="高度" />-----圆柱型
<sphere radius="半径" />-------球
<mesh filename="资源格式" />-----为连杆添加皮肤
</geometry>
<origin xyz="x偏移 y偏移 z偏移" rpy="翻转 俯仰 偏航" />------设置偏移量和倾斜弧度(单位是弧度)
<material name="**">-----设置材料属性
<color rgba="1 1 1 1">------最后一个是透明度,前三个是RGB,四者取值范围都是0~1
</material>
</visual>
<collision>-----连杆碰撞属性
<inertial>------连杆惯性属性
</link>
2.joint标签
<!--type关节属性 continuous无限旋转 fixed固定 -->
<joint name="camera2base" type="continuous">
<!--父级link-->
<parent link="base_link" />
<!--子级link-->
<child link="camera" />
<!--设置子级父级之间的偏移量-->
<origin xyz="0.12 0 0.15" rpy="0 0 0" />
<!--设置关节旋转的坐标轴xyz="0 0 1"为绕z轴旋转-->
<axis xyz="0 0 1" />
</joint>
3.遇到的问题
(1)元件显示补全
解决办法:删除文本中的中文注释
(2)报错No transform from [camera] to [base_link]
解决办法:在终端中输入下列命令即可
sudo apt-get install ros-kinetic-joint-state-publisher-gui
二、xacro
1.属性定义
<xacro:property name="PI" value="3.1415926" />
<xacro:property name="radius" value="0.03" />
2.属性调用
<***** name="${PI}" /> ===== <***** name=3.1415926 />
<***** name="${radius}" />
3.属性算数运算
<***** result="${PI/2}" /> ====== <***** result=1.57 />
<***** result="${radius/3}" />
4.宏定义
<xacro:macro name="getSum" param="num1 num2">
<result value="${nm1+num2}" />
</xacro:macro>
<xacro:getSum num1="1" num2="5" />------输出<result value=6 />
5.包含文件
<xacro:include filename="文件名称">