Control
重力負荷インピーダンスアームの安全監視の反応
追従誤差/過電流で異常検知したとき、位置指令型 (MIT/インピーダンス) アームで「トルク切断」も「乖離目標での減速停止」も危険な理由と、実測位置ホールドが正しい理由
要点: 位置指令型アームの異常検知では、反応は「実測位置で保持」にする。トルクを抜くと自重で落ち、乖離した指令のまま止めると指令へ引っ張り続ける。どちらも検知後に危険を増やす。
前提
MIT モード / インピーダンス制御のアームは、関節トルクを
で出す。 は指令 (setpoint)、 は実測。異常検知は追従誤差 や電流 が閾値を継続超過した時に発報する。追従誤差トリップは 定義上、指令が実測から乖離した瞬間 に出る (衝突・拘束・脱調で実測が指令に追随できていない)。
3 つの反応と結果
| 反応 | 実装 | 結果 | 判定 |
|---|---|---|---|
| トルク切断 (limp) | 重力で落下 | 危険 | |
| 乖離指令で減速停止 | 指令を現在値付近で停止 | 指令が実測より先にあるので を出し続ける。拘束が外れた瞬間に振られる | 危険 |
| 実測位置でホールド | 、 | 誤差 0 で押し戻し消滅。 (重力補償) で姿勢保持 | 安全 |
実測位置ホールドの実装
- 軌道生成器をリセットして目標を破棄。
- 内部状態を実測にシード (、)。
- 実測位置の setpoint を 1 回 publish。下流 (重力補償 → bridge) に latch され保持される。
- ゲインと重力補償 FF は切らない。切ると落ちる。
ホールド後は setpoint が更新停止 → stale 判定で誤差監視が自動休止 → 再アーム。再試行で再拘束すれば再トリップする (自己制限)。
減速停止 (~/stop) との使い分け
指令が実測をよく追っている通常運転の中断 (操作解除・一時停止) では、現在の setpoint からの減速停止でよい。乖離が無いので引っ張りは出ない。乖離が前提の異常検知だけ実測ホールドにする。両者を別サービス/別関数に分ける。
誤発報の抑制 (直交する対策)
反応を安全にしても、閾値が固定だと速い移動 + 伝送遅れ (例: 片道 60–100 ms) で誤差を踏みやすい。閾値を指令速度に連動させる ()、または継続時間を上げる。ただし過度に鈍くすると実衝突の検知が遅れる。
関連
最終更新: