app.cobotta_bcap_ctrl module
K.NAKADA, kengo.nakada@gmail.com, kengo.nakada@mat.shimane-u.ac.jp
- class CobottaBcapCtrl(parent, client, arm_ctrl, logger=None)[ソース]
ベースクラス:
objectJoyPad GUI から b-CAP 制御を行うための中枢コントローラクラス。
本クラスの役割は以下に限定される。
JoyPadClient を通じて b-CAP コマンドを送信する
CobottaBcapArm と連携し、アームの Take / Give 状態を管理する
GUI(Qt)からの操作をスロットとして受け取り、適切な RPC を呼び出す
実際の制御ロジックは JoyPadClient およびサーバ側 ctrl に存在し、 本クラスは UI と通信層の橋渡しのみを行う。
- パラメータ:
parent (Any)
client (cobotta2.server_grpc.JoyPadClient)
arm_ctrl (CobottaBcapArm)
logger (x_logger.XLogger | None)
- _on_hand_move()[ソース]
UI の「Hand Move」ボタンが押されたときのスロット。
- Behavior:
- 力制御モードが選択されている場合:
hand_move_H() を呼び出す
- 位置制御モードが選択されている場合:
hand_move_A() を呼び出す
メモ
UI のチェック状態により制御モードを切り替える
- 戻り値の型:
None
- _on_hand_open()[ソース]
UI の「Hand Open」ボタンが押されたときのスロット。
- Behavior:
あらかじめ決められた開放位置・速度で hand_move_A() を呼び出す
失敗時はログにエラーを出力する
- 戻り値の型:
None
- _on_move()[ソース]
UI の「Move」ボタンが押されたときのスロット。
- Behavior:
- P インデックス指定モードの場合:
JoyPadClient.move(p_index) を呼び出す
- 座標指定モードの場合:
JoyPadClient.move(pose_list) を呼び出す
メモ
UI のラジオボタン状態により動作分岐する
pose は [x, y, z, rx, ry, rz] の list として送信される
- 戻り値の型:
None
- _on_read_p_clicked()[ソース]
UI の「P 読み込み」ボタンが押されたときのスロット。
- Behavior:
UI から P インデックスを取得する
JoyPadClient.get_value("P", index) を呼び出す
取得した姿勢値を UI 表示欄に反映する
メモ
P 値は [x, y, z, rx, ry, rz] の配列であることを前提とする
- 戻り値の型:
None
- _on_save_p_clicked()[ソース]
UI の「P 書き込み」ボタンが押されたときのスロット。
- Behavior:
UI から P インデックスと姿勢値を取得する
JoyPadClient.put_value("P", index, pose) を呼び出す
保存結果をログに出力する
- 戻り値の型:
None
- give_arm()[ソース]
アームの解放(Give Arm)を要求する。
- 戻り値:
True : アーム解放に成功、または元々保持していない False : 解放に失敗した場合
- 戻り値の型:
メモ
実処理は CobottaBcapArm に委譲される
- motor_off()[ソース]
サーボモータを OFF にする。
- Behavior:
JoyPadClient.motor_off() を呼び出す
RPC が失敗した場合はログにエラーを出力する
メモ
client が未初期化の場合は処理を行わない
- 戻り値の型:
None