对URDF文件中坐标关系的理解

对URDF文件中坐标关系的理解

image-20240129212621517

URDF文件中主要的标签有两个,分别是jointlink,这两个标签基本决定了仿真模型的运动关系与物理属性

下面是一段URDF的示例,主要包括两个连杆(base_link和RH_link)以及一个关节(RH_joint)

inertial标签中,除了origin标签之外,mass和inertia标签的值并不严谨,仅供参考

  <link name="base_link">
    <inertial>
      <origin xyz="0.596011105031066 1.16160216601102E-06 1.16287812206338" rpy="0 0 0" />
      <mass value="6" />
      <inertia ixx="6" ixy="6" ixz="6" iyy="6" iyz="6" izz="6" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="package://human_description/meshes/base_link.STL" />
      </geometry>
      <material name="">
        <color rgba="1 1 1 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="package://human_description/meshes/base_link.STL" />
      </geometry>
    </collision>
  </link>

  <link name="RH_link">
    <inertial>
      <origin xyz="-0.0012979855121128 0.0524535818083725 -0.169637336770835" rpy="0 0 0" />
      <mass value="6" />
      <inertia ixx="6" ixy="6" ixz="6" iyy="6" iyz="6" izz="6" />
    </inertial>
    <visual>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="package://human_description/meshes/RH.STL" />
      </geometry>
      <material name="">
        <color rgba="0.752941176470588 0.752941176470588 0.752941176470588 1" />
      </material>
    </visual>
    <collision>
      <origin xyz="0 0 0" rpy="0 0 0" />
      <geometry>
        <mesh filename="package://human_description/meshes/RH.STL" />
      </geometry>
    </collision>
  </link>

  <joint name="RH_joint" type="revolute">
    <origin xyz="0.5795 -0.20593 0.81311" rpy="0.069813 0 0" />
    <parent link="base_link" />
    <child link="RH_link" />
    <axis xyz="0 1 0" />
    <limit lower="0" upper="0" effort="0" velocity="0" />
  </joint>

下面进行分析。

link中的origin

在link中,主要有三个子标签:inertial, visual, collision,与下图完美对应

我们将这三个子标签认为是连杆对象的三个子模型,即:惯性模型,可视化模型,碰撞模型

这三个子模型分别有自己的坐标系,它们的描述也就是对应的origin

在origin中:

  • x y z是这个子模型在对应连杆坐标系中的偏移量
  • r p y是这个子模型在对应连杆坐标系中的旋转角度

但至此我们还不知道连杆坐标系在哪里,继续往下看。

joint中的origin

joint标签相对比较单纯:它的作用是连接parent 和 child 对应的link,其origin则是这个joint在它的参考坐标系中的坐标

image-20240129213953910

但是它的参考坐标在哪呢?由图中可看出位于parent frame处,也就是parent link的“原点处”

图中可见,joint frame = child frame,那么其实也能够类比看出来:parent frame的“原点处“其实也对应了一个joint的frame,也就是说,parent frame = parent_joint frame,joint的origin是相对于前一个joint对应frame进行的偏移和旋转

joint的frame就是它的child link的坐标系,即这个link的连杆坐标系

仿真环境中展示

joint标签对应的数据在仿真环境中是不可见的,我们在仿真环境中只能看到连杆的坐标信息,

但是,由上面的分析我们知道,连杆的frame其实也就对应着joint的信息,见下图:

image-20240129221315525
  • link的惯性模型,可视化模型,碰撞模型对应的frame是不可见的

  • rviz中对比验证:

    image-20240129222925917 image-20240129220404002

小结

略。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值