app.cobotta_orin2_ctrl module
K.NAKADA, kengo.nakada@gmail.com, kengo.nakada@mat.shimane-u.ac.jp
- class CobottaOrin2Ctrl(parent, logger=None)[ソース]
ベースクラス:
objectORiN2 / FastAPI ベースの COBOTTA 制御を行うコントローラクラス。
本クラスは以下の責務を持つ。
SyncCobottaClient を用いた同期型 COBOTTA 制御の初期化
モータ ON / OFF 操作の仲介
アーム Take / Give 操作の実行
GUI(CobottaCtrl / JoyPad)のボタン状態制御
JoyPad 経由の gRPC 制御とは異なり、本クラスは ORiN2 / FastAPI サーバを I/F とする制御系を担当する。
- パラメータ:
logger (x_logger.XLogger | None)
- _on_give_arm()[ソース]
UI の「Give Arm」ボタンが押されたときのスロット。
- Behavior:
CobottaCtrl 側の Take / Give ボタン状態を更新する
JoyPad 側の Take / Give ボタン状態を更新する
メモ
実際のアーム解放処理は本メソッドでは行わない
UI 表示状態の同期のみを担当する
- 戻り値の型:
None
- _on_take_arm()[ソース]
UI の「Take Arm」ボタンが押されたときのスロット。
- Behavior:
CobottaCtrl 側の Take / Give ボタン状態を更新する
JoyPad 側の Take / Give ボタン状態を更新する
メモ
実際のアーム取得処理は本メソッドでは行わない
UI 操作と制御処理は意図的に分離されている
- 戻り値の型:
None
- give_arm()[ソース]
COBOTTA のアーム制御権を解放する。
- 戻り値:
正常にアーム解放できた場合は True、 失敗または例外発生時は False を返す。
- 戻り値の型:
- Behavior:
SyncCobottaClient.release_arm() を呼び出す
成功時は内部フラグ _arm_taken を False に更新する
メモ
クライアント未初期化時は即座に False を返す
- init()[ソース]
SyncCobottaClient を生成・初期化する。
- Behavior:
Config に定義された SERVER_IP / SERVER_PORT を用いて SyncCobottaClient を生成する
生成したクライアントを内部に保持する
- 例外:
RuntimeError -- Config が未初期化の場合に送出される。
- 戻り値の型:
None
メモ
本メソッドは __init__ から自動的に呼び出される
ネットワーク接続自体の成否はここでは判定しない
- take_arm()[ソース]
COBOTTA のアーム制御権を取得する。
- 戻り値:
正常にアーム取得できた場合は True、 失敗または例外発生時は False を返す。
- 戻り値の型:
- Behavior:
一定時間スリープ後に SyncCobottaClient.take_arm() を呼び出す
成功時は内部フラグ _arm_taken を True に更新する
メモ
ORiN2 側の状態安定を考慮し、呼び出し前に待機時間を挿入している