RPY


在模型文件中,两个Link之间的链接依靠的是Joint,比如说当定义了base_link后,我们接着就会定义一个Joint来与后面的Link联系上,在Joint中,需要指明它的parent与child.这个一般很清晰名了。然后Joint中还有一个标签是origin,里面包含了rpy与xyz的信息,这里的旋转与平移的定义非常的关键。

通常来说每个Link都是独立存在的零件,所以各自都有一个坐标系,当我们来链接两个Link时,你怎么来具体两个坐标之间的关系,这里首先就是要在Joint来体现。

    <joint name="joint1" type="continuous">
        <parent link="base_link"/>
        <child  link="Link1"/>
        <origin rpy=" 0  0 0" xyz="0 0.4 0"/>
        <axis xyz="1 0 0"/>
    </joint>

比如这里的,rpy旋转为0,而有一个平移量,所一就会有一个相对base_link坐标系Y轴平移0.4的距离,如果此时我们再定义一个LInk1

    <link name="Link1">
        <visual>
            <geometry>
                <box size="0.2 0.2 1"/>
            </geometry>
            <origin rpy="0 0 0" xyz="0 0 0"/>
        </visual>
    </link>

那么,base_link与Link1的坐标关系仅仅是一个Y轴的平移了,,,,但是一般没有这么简单的关系啊,还要看旋转啊。。

    <joint name="joint1" type="continuous">
        <parent link="base_link"/>
        <child  link="Link1"/>
        <origin rpy=" 1.57075 1.57075 1.57075" xyz="0 0.4 0"/>
        <axis xyz="0 0 1"/>
    </joint>

这里将rpy都进行旋转,rpy旋转时,会对应上XYZ的旋转角度,还有一个旋转顺序的,如果没有错的话,这里rpy的三个值依次对应XYZ的角度,但是旋转顺序是安装ZYX的,也就是先绕Z轴转90,再Y轴90,再X轴90,但是下面的那个旋转轴axis不知道什么意思。

在进行了上面Joint的定义后,Link的坐标系参考系不在是那么简单了,假设上面的Joint旋转平移后产生一个相对Base_link的坐标系temp(心中假设存在的,方便理解),如果Link的rpy与XYZ还是0的话,那么这个temp就是Link的坐标了,但是多数中,Link的rpy与XYZ还是会有数据的,所以接着旋转与平移,但是参照的却是那个temp。

static transform tf ... r p y -----> z y x -------------旋转顺序z,,,y,,,,x

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值