Try   HackMD

在前一篇[[3.link和joint]]中,我們有了一個由圓柱和長方體構成的URDF:

<?xml version="1.0"?>
<robot name="kotori">
  <link name="base_link">
    <visual>
      <geometry>
        <cylinder length="0.6" radius="0.2"/>
      </geometry>
    </visual>
  </link>

  <link name="right_leg">
    <visual>
      <geometry>
        <box size="0.6 0.1 0.2"/>
      </geometry>
    </visual>
  </link>

  <joint name="base_to_right_leg" type="fixed">
    <parent link="base_link"/>
    <child link="right_leg"/>
  </joint>

</robot>

但在預覽中很明顯的,這兩個東西重疊在一起,因此本篇我們要來談談怎麼對物體作初位置的位移或轉動。我們稍稍調整一下joint,讓它變成以下這個樣子:

  <joint name="base_to_right_leg" type="fixed">
    <parent link="base_link"/>
    <child link="right_leg"/>
    <origin xyz="0 -0.22 0.25"/>
  </joint>

注意到我們加入了origin xyz這一個標籤。同樣的,我們用命令預覽一下結果(如果忘記命令如何打,請參考[[2.製作第一個URDF]]):

可以看到長方體往前往下了一點。

origin標籤可以指定關節起始的位置和旋轉。由於child的link其原點為關節,因此調整關節的位置和旋轉便可以帶動link的方向。

xyz指定的為位移量

  • x軸
  • y軸
  • z軸

rpy則能指定旋轉量(注意:單位為弧度)

  • x軸(row)
  • y軸(pitch)
  • z軸(yow)