app.cobotta_bcap_arm module
K.NAKADA, kengo.nakada@gmail.com, kengo.nakada@mat.shimane-u.ac.jp
- class CobottaBcapArm(parent, client, logger=None)[ソース]
ベースクラス:
objectb-CAP 制御された COBOTTA のアーム占有状態(Take / Give)のみを管理するクラス。
本クラスは以下の責務のみを持つ。
JoyPadClient を通じてアームの取得 / 解放要求を送信する
「このクライアントがアームを保持しているか」という状態を内部に保持する
アーム状態に応じて UI ボタンの有効 / 無効を切り替える
実際のロボット運動制御や座標制御は一切行わない。 本クラスは「状態管理 + UI 反映」に限定された薄い制御層である。
- パラメータ:
parent (Any)
client (cobotta2.server_grpc.JoyPadClient)
logger (x_logger.XLogger)
- _on_give_arm()[ソース]
UI の「Give Arm」ボタンが押されたときのスロット。
- Behavior:
give_arm() を呼び出してアーム解放を試みる
失敗した場合はログを出力して終了する
成功した場合は UI ボタンの有効 / 無効状態を更新する
メモ
Take Arm と対称な状態遷移を UI に反映する
UI 非存在環境でも例外を出さない設計になっている
- 戻り値の型:
None
- _on_take_arm()[ソース]
UI の「Take Arm」ボタンが押されたときのスロット。
- Behavior:
take_arm() を呼び出してアーム取得を試みる
失敗した場合はログを出力して終了する
成功した場合は UI ボタンの有効 / 無効状態を更新する
メモ
UI の存在を前提としないため、AttributeError は無視される
JoyPad 側 / CobottaCtrl 側の両方のボタン状態を同時に制御する
- 戻り値の型:
None
- property arm_taken: bool
現在このクライアントがアームを保持しているかを返す。
- 戻り値:
True : アームを保持している False : アームを保持していない
- 戻り値の型:
メモ
実機の状態を直接問い合わせるものではない
本クラス内で管理している状態フラグの参照のみを行う