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)[ソース]

ベースクラス: object

JoyPad 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 : 解放に失敗した場合

戻り値の型:

bool

メモ

  • 実処理は CobottaBcapArm に委譲される

motor_off()[ソース]

サーボモータを OFF にする。

Behavior:
  • JoyPadClient.motor_off() を呼び出す

  • RPC が失敗した場合はログにエラーを出力する

メモ

  • client が未初期化の場合は処理を行わない

戻り値の型:

None

motor_on()[ソース]

サーボモータを ON にする。

Behavior:
  • JoyPadClient.motor_on() を呼び出す

  • RPC が False を返した場合や例外が発生した場合はログに記録する

メモ

  • client が未初期化の場合は何も行わずに終了する

戻り値の型:

None

take_arm()[ソース]

アームの取得(Take Arm)を要求する。

戻り値:

True : アーム取得に成功、または既に取得済み False : 取得に失敗した場合

戻り値の型:

bool

メモ

  • 実処理は CobottaBcapArm に委譲される

  • 本メソッドはログ出力と委譲のみを行う