外部移動
機能
このステップは Mech-Viz の経路計画とロボット制御のために外部サービス Adapter から目標位置姿勢を取得します。外部移動ステップは、JPs、TCP、対象物の位置姿勢の設定に対応しています。
パラメータ説明
移動ステップの共通パラメータ
移動目標点を送信
デフォルトではチェックが入っています。相手側(ロボットなど)に現在の位置姿勢を送信します。チェックを外すと、現在の経路点を送信しませんが、計画する経路に残ります。
移動コマンドの後の非移動コマンドをスムーズに実行することを試行
デフォルトではチェックが外れており、 移動ステップ の間にビジョン処理による認識、DO を設定、DI をチェックなどの非移動ステップを接続すると、経路点の送信を中断し、ロボット実機動作中に一時中止することがあります。
チェックを入れると現在のステップ実行が完了しなくても続行することが可能です。これにより、ロボットがよりスムーズに動作します。ただし、ステップが途中で終了する可能性があります。
ステップが途中で終了する原因は?
Mech-Viz 実行中、ロボットに同時に複数の経路点を送信しますが、最後の経路点が現在のロボットの関節角度と一致しているかのみを判断します。一致していると判断したら、ロボットが最後の経路点に到着していると見なします。
例えば、10 の移動ステップがある経路では、移動ステップ 5 の位置姿勢は最後のステップの位置姿勢とは同じとします。ロボット移動速度が遅くいと、5つ目の経路点に到着した後現在の関節角度を Mech-Viz に送信します。5つ目の移動ステップは最後の移動ステップとは、位置姿勢が同じなので Mech-Viz はロボットが全ての経路点に移動したと判断してコマンド実行が途中で終了する可能性があります。
配置された対象物との衝突を検出しない
衝突検出パネルの対象物衝突検出を有効にした場合、このオプションをチェックするとロボットとロボットハンド、配置済み対象物の衝突を検出しません。衝突の誤検出を回避するために、把持/配置が配置に設定されたステップの後に続く移動ステップではこのステップをチェックします。
例
吸盤の TCP は吸盤の表面ではなく、モデル内部にあるのは一般的です。箱を把持する時に、吸盤のモデルと箱モデルとは重なり合うことになります。しかし、ソフトウェアはロボットハンドと把持済み対象物との衝突を検出しないので把持しているときに衝突発生のメッセージは出てきません。箱を配置した後、その箱のモデルはシーンのモデルになり、ロボットハンドと箱のモデル(シーンのモデルとして)の衝突を検出してメッセージを表示します。この場合、タスクを完了できません。
これをチェックするとロボットやロボットハンドと配置済み対象物モデルとの衝突を検出しないので上記の問題を解決できます。
点群との衝突検出モード
普通は自動を選択すればいいです。このモードでは、衝突検出パネルの点群衝突検出の設定内容を使用します。ロボットが把持してから配置するまでの移動ステップに対しては、検出を選択します。
自動 |
初期値。衝突モデルパネルの点群衝突検出をオンにすると、 「ビジョン処理による移動」ステップと「ビジョン処理による移動」に依存する「相対移動」ステップにだけ点群衝突検出を実行し、その他の移動ステップには実行しない |
検出しない |
ステップの点群衝突をいずれも検出しない |
検出 |
ステップの点群衝突を全部検出する |
対象物の対称性を使用しない
このパラメータは、移動ステップの目標点タイプが対象物位置姿勢に設定された場合にのみ使用できます。
この対称性は、ワークライブラリで衝突モデルを設定する時に事前に設定した把持されている対象物の回転対称性です。
無し |
初期値。対称性を無効にしない |
Z軸 |
Z 軸を中心とする対称性だけを無視しない |
XY軸 |
XY 軸を中心とする対称性だけを無視しない |
全て |
物体の対称性を使用しないように設定すると、ロボットが物体の位置姿勢に正確に到達して対象物を配置しない |
移動ステップをワーク配置に使用するとき、回転対称性を使用するとワーク配置位置の一致性を保証できません。ワークの配置姿勢を指定したい場合に全てのワーク対称性を無視してください。 |
計画が失敗した時の出口
チェックすると、計画に失敗出口が追加されます。
現在のステップの経路計画が成功すると、ワークフローは成功出口から実行します。失敗すると、ワークフローは計画のに失敗出口から実行します。複数の計画失敗出口がある移動ステップがあるワークフローは、最初の移動ステップの計画失敗出口から実行します。
把持された対象物との衝突検出モード
設定する前に、衝突検出パネルで対象物衝突検出を有効にしてください。
衝突検出を有効にしなければ衝突のリスクが高まるので注意が必要です。 |
シーンの物体との衝突を検出しない
チェックすると把持済み対象物とシーンの物体との衝突を検出せず、衝突検出のための計算が削減され、経路計画の速度が向上します。
ロボットとの衝突を検出しない
チェックすると把持済み対象物とロボットとの衝突を検出せず、衝突検出のための計算が削減され、経路計画の速度が向上します。
点群との衝突を検出しない
衝突検出パネルで点群衝突検出を有効にしたままこのオプションをチェックすると、把持済み対象物と点群との衝突を検出せず、衝突検出のための計算が削減され、経路計画の速度が向上します。
関節角度を取得(計画の初期関節角度として)
デフォルトではチェックが外れており、経路計画の初期位置は前回の計画終了時の位置を使用します。 チェックすると、経路計画の初期位置は、外部から取得したロボットの関節位置に更新されます。普通、Mech-Viz セミティーチングの場合に使用します。
インターフェイスの例
class CustomOuterMoveService(OuterMoveService):
def gather_targets(self, di, jps, flange_pose):
self.add_target(self.move_target_type, [0.189430,-0.455540,0.529460,-0.079367,0.294292,-0.952178,0.021236])
CustomOuterMoveServiceクラスは [OuterMoveServiceクラス] を継承しています。self.move_target_typeの値は0、1、または2であり、0はJPsを示し、1はTCPを示し、2は対象物の位置姿勢を示します。Mech-Vizは外部移動ステップに実行するとgetMoveTargets()を呼び出します。異なる外部移動ステップは、サービス名によって区別されます。
def _register_service(self):
self.outer_move_service = CustomOuterMoveService()
self._outer_move_server, port = register_service(outer_move_service, port)
self.move_target_typeが2(対象物の位置姿勢を示す)の場合、外部移動ステップの前には把持を表すステップが必要です。そうでない場合、「対象物が保持されていない場合、対象物の位置姿勢は無効です。」というエラーメッセージが表示されます。 |