エラー処理と復旧
方針
共通 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 などで復旧手順が異なる。
安全停止後に原因確認なしで自動復旧してはならない。