welcom ! Handel home

2025年3月10日 星期一

URDF format 中 TYPE revolute 與 prismatic 關節的差別

 URDF format 中  TYPE revoluteprismatic 關節的差別

URDF (Unified Robot Description Format)SDF (Simulation Description Format) 中,關節 (joint) 的 type 會決定機械手臂的運動方式。

關節類型描述運動方式常見應用
revolute旋轉關節以固定軸旋轉 (類似門的鉸鏈)機械手臂的 關節, 機器人的 輪子轉向
prismatic滑動關節直線運動 (類似抽屜)伸縮機構, 直線滑軌, 氣壓缸

🔹 revolute (旋轉關節)

📌 旋轉關節 (revolute) 是最常見的機械手臂關節,允許圍繞特定軸旋轉,通常有角度限制 (limit)

範例 (URDF)

xml
<joint name="joint_1" type="revolute"> <parent link="base_link"/> <child link="link_1"/> <axis xyz="0 0 1"/> <!-- 旋轉軸 (Z 軸) --> <limit effort="10.0" lower="-1.57" upper="1.57" velocity="1.0"/> </joint>

🔹 解析

  • axis xyz="0 0 1" → 旋轉軸為 Z 軸 (垂直旋轉)
  • limit lower="-1.57" upper="1.57"允許旋轉 -90° 到 90° (±1.57 弧度)
  • velocity="1.0" → 最大旋轉速度 1.0 rad/s

應用

  • 機械手臂關節 (robot_arm)
  • 自主機器人的輪子 (ackermann steering)
  • 機械夾爪旋轉 (gripper rotation)

🔹 prismatic (滑動關節)

📌 滑動關節 (prismatic) 允許物體在 直線方向 移動,常用於機械手臂的伸縮機構** 或 線性滑軌。**

範例 (URDF)

xml
<joint name="joint_2" type="prismatic"> <parent link="link_1"/> <child link="link_2"/> <axis xyz="1 0 0"/> <!-- 滑動方向 (X 軸) --> <limit effort="100.0" lower="0.0" upper="0.5" velocity="0.2"/> </joint>

🔹 解析

  • axis xyz="1 0 0" → 滑動方向為 X 軸
  • limit lower="0.0" upper="0.5" → 允許的滑動範圍 0 到 0.5 公尺
  • velocity="0.2" → 最大滑動速度 0.2 m/s

應用

  • 直線滑軌 (linear rail,如 CNC 機械)
  • 機械手臂伸縮關節 (telescopic joint)
  • 氣壓缸或電動缸 (pneumatic actuator)

🚀 revolute vs prismatic 總結

屬性revolute (旋轉關節)prismatic (滑動關節)
運動方式旋轉 (angular movement)直線 (linear movement)
限制 (limit)lowerupper角度 (rad)lowerupper距離 (m)
應用機械手臂、輪子轉向、旋轉機構滑軌、伸縮臂、直線運動
URDF 設定type="revolute"type="prismatic"
軸向 (axis xyz)旋轉軸滑動方向

🚀 revolute & prismatic 混合應用

📌 假設你要設計一個機械手臂,底部關節可以旋轉,手臂可以前後伸縮,則可以這樣設計

xml
<joint name="base_rotation" type="revolute"> <parent link="base_link"/> <child link="arm_link"/> <axis xyz="0 0 1"/> <limit lower="-3.14" upper="3.14" velocity="1.0"/> </joint> <joint name="arm_extension" type="prismatic"> <parent link="arm_link"/> <child link="end_effector"/> <axis xyz="1 0 0"/> <limit lower="0.0" upper="0.5" velocity="0.2"/> </joint>

效果

  • base_rotation 可以旋轉 360°
  • arm_extension 可以前後滑動 50 cm

🚀 總結

  1. revolute (旋轉關節) → 旋轉運動 (angular movement),常用於機械手臂 旋轉關節
  2. prismatic (滑動關節) → 直線運動 (linear movement),常用於 伸縮臂滑軌
  3. 關鍵差異
    • revolute 受角度限制 (rad)
    • prismatic 受距離限制 (m)
  4. 可混合使用 → 例如 revolute + prismatic 打造旋轉 & 伸縮機械手臂


 

沒有留言: