# エラー処理と復旧 ## 方針 共通 I/F では、操作失敗時に False を返し、詳細は `error_description` または `get_current_error_info()` で確認する。 現在の実装では、RC8 のようなエラー番号一覧を SDU Robotics `RTDEReceiveInterface` から直接取得する構成ではない。そのため、最後の例外と現在の safety status を組み合わせて疑似エラー情報を作る。 ## error_code ```python robot.error_code ``` 正常時は 0。エラー時は負数の疑似コードを返す。 ## error_description ```python robot.error_description ``` 現在のエラー説明を返す。 ## get_current_error_info() ```python info = robot.get_current_error_info() ``` 例。 ```python { "code": -9006, "description": "...", "state": {...}, } ``` ## reset_error() ```python robot.reset_error() ``` UR の安全停止解除を試みる。 Dashboard が有効な場合、Protective Stop に対して以下を実行する。 ・`closeSafetyPopup()` ・`unlockProtectiveStop()` `fault` または `violation` に対する `restartSafety()` は、`UR_ALLOW_RESTART_SAFETY=True` の場合だけ実行する。 ## turn_on_motor() ```python robot.turn_on_motor() ``` Dashboard の `powerOn()` と `brakeRelease()` を呼ぶ。 ## turn_off_motor() ```python robot.turn_off_motor() ``` Dashboard の `powerOff()` を呼ぶ。 ## 注意 `reset_error()` は COBOTTA の `ClearError` と同一ではない。UR では Protective Stop、Emergency Stop、Fault などで復旧手順が異なる。 安全停止後に原因確認なしで自動復旧してはならない。