エラー処理と復旧

方針

共通 I/F では、操作失敗時に False を返し、詳細は error_description または get_current_error_info() で確認する。

現在の実装では、RC8 のようなエラー番号一覧を SDU Robotics RTDEReceiveInterface から直接取得する構成ではない。そのため、最後の例外と現在の safety status を組み合わせて疑似エラー情報を作る。

error_code

robot.error_code

正常時は 0。エラー時は負数の疑似コードを返す。

error_description

robot.error_description

現在のエラー説明を返す。

get_current_error_info()

info = robot.get_current_error_info()

例。

{
    "code": -9006,
    "description": "...",
    "state": {...},
}

reset_error()

robot.reset_error()

UR の安全停止解除を試みる。

Dashboard が有効な場合、Protective Stop に対して以下を実行する。

・closeSafetyPopup()
・unlockProtectiveStop()

fault または violation に対する restartSafety() は、UR_ALLOW_RESTART_SAFETY=True の場合だけ実行する。

turn_on_motor()

robot.turn_on_motor()

Dashboard の powerOn() と brakeRelease() を呼ぶ。

turn_off_motor()

robot.turn_off_motor()

Dashboard の powerOff() を呼ぶ。

注意

reset_error() は COBOTTA の ClearError と同一ではない。UR では Protective Stop、Emergency Stop、Fault などで復旧手順が異なる。

安全停止後に原因確認なしで自動復旧してはならない。