Robotics
IK の検証順序 (安全側から)
IK の実機検証は unit → sim → 手で動かして FK 突合 → 通電低速の 4 段。ハンドムーブで検証できるのは FK と URDF geometry の contract のみで、IK 自体ではない
要点: IK の実機検証はいきなり通電で試さない。unit test → sim → 実機ハンドムーブで FK 突合 → 通電低速の順で進める。ハンドムーブで実機の joint feedback を bag 収録するのは FK と URDF geometry の contract を確かめる操作であって、IK 自体を検証しているわけではない。IK は FK の逆関数なので、FK が実機と合えば IK も数値精度の範囲で合う。
4 段
| 段 | 内容 | 実機動かす | 何を潰すか |
|---|---|---|---|
| 1. unit test | ランダム q → FK → IK → q' の round-trip。境界と特異点周りも | しない | 解算アルゴリズムのバグ |
| 2. sim | pose target を kinematic mode で流し、joint_target と TCP を確認。Isaac で真値と比較 | しない (物理 sim も stop) | 統合バグ (座標系・remap・namespace) |
| 3. ハンドムーブ | モーター OFF、基準ポーズでアームを手保持、joint_states を bag、物理 TCP を測って FK 予測と突合 | 手で (通電なし) | URDF geometry (リンク長・軸方向・origin) |
| 4. 通電低速 | teleop joint jog → cartesian jog、無負荷から。1 軸数度・1cm 単位 | 通電 | 実行系 (追従性・遅延・スリップ) |
段 3 のやり方 (要注意点)
- モーター種類によっては disable しても back-drive できない (減速比大 / セルフロック)。まず 1 軸ずつ確認
- disable 中は重力で落ちるので、必ず支える。落下側の軸から順に確認
- 基準ポーズは 4-5 個。各 3 秒以上保持して joint_states を平均化する
- TCP の実測は基準面 (ワーク台) 座標で xyz を測る。定規や光学マーカ、写真+スケール、Isaac 真値と同じ点、のいずれか
- 判定: FK 予測と実測の差
< 3mm→ URDF OK> 10mm→ リンク長 or origin ずれ。差が特定軸に偏っていれば疑うべきプロパティが絞れる (例: shoulder 起点で +Z が余分に伸びていれば wrist_drop や hand_drop_ext)
手で動かして bag は「FK 検証」の意味
「実機を壊さず IK を確かめたい」という動機で joint feedback bag を取るのは正しいが、取れる情報は FK 側。IK 解算のロジック自体は sim (段 2) までで潰しておく。段 3 でハンドムーブが必要な理由は、URDF が実機と幾何的にずれていると sim ではどんなに精度が出ても実機では届かないから。
関連
最終更新: