衝突検出機能 (ロボット動作の異常の検出機能)
ロボットを動かしたい速度と、実際に動いている速度の差(速度偏差値)により、ロボット動作の異常を検出します。本機能で検出できる異常は、AとBに分類されます。
- A: ロボットのアームやハンドの衝突や接触の発生
- B: 衝突や接触以外のロボット動作の異常
さらに、Bの異常は、パワーの状態により、以下のように分類されます。
- ハイパワー状態での異常
- B1: WeightやInertiaの過小設定によるトルク飽和
- B2: 多関節軸の複合動作や長尺物を振り回すことによるトルク飽和
- B3: 電源電圧低下によるトルク飽和
- B4: ハードウェアの異常やソフトウェアの誤作動による異常動作
- ローパワー状態での異常
- B4: ハードウェアの異常やソフトウェアの誤動作による異常動作
- B5: 仕様を超えたハンド質量や長尺物の保持によるローパワー時トルク飽和
AやBの異常を検出すると、以下のどちらかのエラーメッセージを表示し、ロボットを停止します。ロボットや装置のダメージを低減します。
- エラー5057: ハイパワー状態で衝突を検出 (ロボット動作の異常を検出)
- エラー5058: ローパワー状態で衝突を検出 (ロボット動作の異常を検出)
以前より、以下エラーがありましたが、本機能は、上記の異常をより早く検出できます。
- エラー5042, 5043: 位置偏差が異常
短時間のトルク飽和では、異常を検出しません。不具合を引き起こすリスクが高い状態を検出しロボットを停止します。B1, B2の状態で、ロボットを使い続けると、以下のような現象が発生します。エラーが発生しない状態にしてください。
- ねじなどの結合部品がゆるむ
- 減速機がダメージを受ける
- ロボットが破損するリスクが高まる
CollsionDetectコマンドをオンすることにより、検出が有効になります。(デフォルト: オン)
デフォルトの状態は、ファームウェアのバージョンにより異なります。
- Ver.7.2.1.x 以降: デフォルト: オン
- Ver.7.2.0.x以前: デフォルト: オフ
- Ver.7.2.0.x以前からVer7.2.1.x 以降にアップグレードした場合: デフォルト: オフ
コントローラーの電源再投入で、デフォルト状態に戻ります。
ロボットやアームの衝突や接触がなく、エラー5057や5058を検出した場合の、Bの異常についての詳細を説明します。
ハイパワーモードの場合
トルクが飽和しているかどうかを、PTRQコマンドで確認します。PTRQコマンドで、"1"を出力している関節は、トルクが飽和しています。この場合は、まずWeight設定が適切か、ハンドの質量とあっているかを確認します。さらにスカラロボットの第4関節、垂直6軸ロボットの第6関節の場合は、Inertia設定が適切かも確認してください。
次に、複数の関節(垂直6軸ロボットの第2関節, 第3関節, 第5関節)が、同一方向に動作する複合動作や、長尺物の振り回し動作によって、トルク飽和がないかPTRQコマンドで確認します。
トルクが飽和している場合は、トルク飽和がなくなる(PTRQで1.0未満の値が表示される)まで、Accelコマンドで加減速度を小さくしてください。
また、コントローラーに入力する電源電圧が低下することにより、トルク飽和が起きている場合もあります。電源電圧が仕様内かどうかも確認してください。
装置互換性確保などの理由により、これらの異常検出を行わずに使用したい場合は、関節ごとに衝突検出機能をオンオフすることができます。
他のエラーが同時に発生している場合は、まずそのエラー対策を行ってください。
ローパワーモードの場合
ハンド質量が、仕様範囲かを確認してください。
また、垂直6軸ロボットの第4, 5関節で発生している場合は、トルク飽和を確認してください。トルクが飽和している場合は、ローパワーモードでは保持できない長尺物です。ハイパワー状態で保持してください。
他のエラーが同時に発生している場合は、先に他のエラーの対策を行ってください。
次の動作とコマンドの組み合わせにより、トルク飽和ですぐに停止します。AやBの異常を、さらに早く検出することが可能です。
- HP動作: LimitTorqueStopコマンド
- LP動作: LimitTorqueStopLPコマンド
次に、Aのロボットアームの衝突や接触の検出について、詳細を説明します。
アームやハンドが周辺と衝突することにより受けるダメージを低減する方法として、衝突検出機能と、次項で説明するトルク制限機能の2つの機能があります。
- 衝突検出機能は、衝突を検出して、ロボットを緊急停止させます。
- トルク制限機能は、衝突時のトルクを制限し、かつ、緊急停止させます。
これらの機能は、衝突によるロボットのダメージを低減する機能であり、ダメージを完全に回避することはできません。また、人に対する安全には使えません。
衝突時にロボットに加わる力は、次の図のように大きく2つに分けられます。
衝突直前の速度による衝撃力と、衝突直後のモータートルクによる押しつけ力です。
衝突検出機能とトルク制限機能は、衝突直後の押しつけ力によるダメージを低減させます。速度での衝撃力によるダメージの低減効果はありません。
| 記号 | 説明 |
|---|---|
| a | 速度での衝撃力 |
| b | トルクでの押しつけ力 |
| c | 力 |
| d | 時間 |
衝突検出機能では、ロボット制御に使用する速度偏差値 (動かしたい速度と実際に動いている速度の差分値)が、衝突により正常動作と大きく異なる異常値を示すことを利用して、検出を行います。
CollsionDetectコマンドをオンすることにより、検出が有効になります。(デフォルト: オン)
デフォルトの状態は、ファームウェアのバージョンにより異なります。
- Ver.7.2.1.x 以降: デフォルト: オン
- Ver.7.2.0.x以前: デフォルト: オフ
コントローラーの電源再投入で、デフォルト状態に戻ります。
この機能が有効の場合、衝突を検出して緊急停止を行うことにより、モータートルクで押しつける時間を短縮します。これにより、押しつけ力を2割程度削減する効果があります。より大きくダメージを削減したい場合は、"トルク制限機能"を併用してください。
本機能は、以下に記載されている押しつけ動作の間と、力覚センサーを使った作業中は、自動的に無効化されます。
なお、強い接触動作や、連続的にトルク飽和が起きるような強い加速や減速では、誤検出する場合があります。誤検出の可能性があるかどうかは、PTRQで確認できます。
全軸のPTRQが1未満であれば、誤検出の可能性はありません。
PTRQが1の場合、その軸でトルク飽和が発生しています。これは過剰な加減速が加わっている状態で、モーター制御にとって望ましくなく、ロボットを破損する可能性もあります。このような場合は、以下の対策を行ってください。
接触作業に対して
- 接触時の加減速度や速度を下げる
- 接触する深さを浅くする
このような対策を行わずに使用したい場合は、衝突検出のオンオフを軸ごとに設定することができます。対象の軸の衝突検出をオフしてください。
コマンドや関数の詳細は、次のマニュアルを参照してください。
"SPEL+ランゲージリファレンス - CollisionDetect, CollisionDetect 関数"