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 メッシュはモデリング原点がリンク原点と一致しないのが普通。定石は:
- visual origin で「メッシュ → リンク」の固定変換を一度だけ合わせる
- 以後の機構調整 (取り付け位置・軸位置) は joint origin だけを触る
joint origin は運動学ソルバやノードが URDF から読み戻すことがある (例: 手首の垂下量を IK 定数に畳む実装)。その場合、どの成分を読むかは実装依存で、 読まれない成分 (横オフセット等) を joint に入れると URDF と制御が食い違う。 joint を動かしたら、その値を消費するノードが追従できるかを必ず確認する。
collision と inertial も visual と同様にリンク内の独立要素。visual だけ差し替えて collision/慣性を旧形状のままにする段階的移行は、位置合わせ中の物理事故を防ぐのに有効。
関連
- /docs/robotics/spring-counterbalance — 慣性・ドライブ調整と質量差し替えの順序
最終更新: