urdf 和 xacro

  1. rpy
    rpy角是描述船舶在海中航行时姿态的一种方法.
    将船的行驶方向取为x轴, 绕x轴旋转称为滚动(Roll), 绕y轴旋转称为俯仰(Pitch), 绕z轴旋转称为偏转(Yaw)
    rpy
    xyz
    这样就好记了!
    (图中xyz画错了)
    urdf 和 xacro_第1张图片

urdf 的visual 中origin 元素的含义测试
urdf 和 xacro_第2张图片

orign 标签定义了插入模型的位姿, xyz 指定了参考系(模型)的位置(比如box会将质心位置放在xyz处),rpy指定了模型在空间中的变换
r—p—y
x—y—z
R—Y—B(rviz中轴的颜色)
如下测试

urdf 和 xacro_第3张图片

rpy的变换—模型的变换
r
urdf 和 xacro_第4张图片
p
urdf 和 xacro_第5张图片
y
urdf 和 xacro_第6张图片

再来观察了圆柱体的形状和变换吧
!!发现只添加两个link不行,必须添加joint

urdf 和 xacro_第7张图片

urdf 和 xacro_第8张图片

xacro 常量,常量块,宏,带参宏(文本参数,一星块参数,两星块参数)
urdf必须的格式要求有一些变化。比如一些gazebo xml-schema namespaces 不再必须。比如下面就可以舍弃了。
比如惯量定义每一段都差不多,可以参考如下

 <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>

使用时如下

 <link name="x">
        <visual>
            <geometry>
                    <box size="0.001 0.001 0.001"/>
                geometry>
            <origin rpy="0 0 0" xyz="0 0 0"/>
        visual>
        <xacro:default_inertial mass="0.0001"/>
    link>

此外rviz 中RobotModel status error 且显示no tf from A to B
原因可能两点

1可能是fix frame
2可能是urdf_dispaly 载入的默认.rviz配置文件冲突

你可能感兴趣的:(ROS)