notes
Ros

URDF の joint origin と visual origin の使い分け

joint origin は機構の事実で TF/IK が読む。visual origin はメッシュの描画位置だけ

要点#

joint origin は機構の宣言、visual origin は絵の位置合わせ。取り付け位置や軸の 位置を直すのは joint、メッシュの浮きを直すのは visual。

数字 / 判断テスト#

症状いじる場所
接続点・回転軸の位置そのものが違う (ユニット全体がずれる)joint の <origin>
軸や基準点は正しいのにメッシュだけずれて見えるlink の <visual><origin>
  • joint origin を変えると下流の全部 (子リンクの visual/collision/TF/先の関節) が動く
  • visual origin は TF・IK・接触判定に一切影響しない (collision は別要素なので注意)

詳細#

CAD メッシュはモデリング原点がリンク原点と一致しないのが普通。定石は:

  1. visual origin で「メッシュ → リンク」の固定変換を一度だけ合わせる
  2. 以後の機構調整 (取り付け位置・軸位置) は joint origin だけを触る

joint origin は運動学ソルバやノードが URDF から読み戻すことがある (例: 手首の垂下量を IK 定数に畳む実装)。その場合、どの成分を読むかは実装依存で、 読まれない成分 (横オフセット等) を joint に入れると URDF と制御が食い違う。 joint を動かしたら、その値を消費するノードが追従できるかを必ず確認する。

collision と inertial も visual と同様にリンク内の独立要素。visual だけ差し替えて collision/慣性を旧形状のままにする段階的移行は、位置合わせ中の物理事故を防ぐのに有効。

関連#

  • /docs/robotics/spring-counterbalance — 慣性・ドライブ調整と質量差し替えの順序
最終更新:

On this page