cobotta2.pad package

Submodules

cobotta2.pad.input_grpc_client module

cobotta2.pad.input_grpc_server module

K.NKADA, kengo.nakada@gmail.com, kengo.nakada@mat.shimane-u.ac.jp

gRPC サーバー側入力バッファ(pull 型)。

本モジュールは、gRPC ハンドラから push された入力データを一時的に保持し、 Runtime 側から pull 形式で取得される入力インターフェースを提供する。

メモ

  • 本モジュールは物理入力デバイスを扱わない。

  • local input と同一の Input I/F 契約を満たすことを目的とする。

  • 入力は最新値のみを保持し、履歴は保持しない。

class InputGrpcServer(logger=None, log_level=None)[ソース]

ベースクラス: object

gRPC サーバー側の入力境界オブジェクト。

gRPC 経由で受信した入力データを Runtime 向けに中継するための pull 型入力バッファとして機能する。

メモ

  • 物理入力デバイスは扱わない。

  • Runtime 側とは Input I/F 契約を通じて接続される。

  • 内部的には最新の入力のみを保持する。

パラメータ:
  • logger (Any | None)

  • log_level (str | None)

get_dpose()[ソース]

Runtime 向けの pull 型入力取得インターフェース。

戻り値:

新しい dpose が存在する場合はその値。 新しい入力が存在しない場合は None。

戻り値の型:

Optional[List[float]]

メモ

  • 新しい入力が到着した場合のみ値を返す。

  • 入力は保持せず、取得後は破棄される。

  • local input と意味論を揃えるため、last 値は保持しない。

pump()[ソース]

input_device の pump メソッドを呼び出すのにたいおうするダミーメソッド。

メモ

  • local input との I/F 対称性を保つために存在する。

  • gRPC 入力では実際の処理は行わない。

戻り値の型:

None

put_dpose(dpose)[ソース]

gRPC ハンドラから移動入力を push する。

パラメータ:

dpose (List[float]) -- Runtime に渡す移動入力データ。

戻り値の型:

None

メモ

  • STOP / HALT 系の制御は本メソッドには渡されない。

  • 内部キューは最新の入力のみを保持する。

request_quit()[ソース]

サーバー側から Runtime に終了要求を通知する。

メモ

  • local input と契約を揃えるために用意されたインターフェース。

戻り値の型:

None

property should_quit: bool

Runtime 側から参照される終了フラグ。

戻り値:

Runtime に終了を通知する場合は True。

戻り値の型:

bool

cobotta2.pad.input_joypad_local module

cobotta2.pad.joypad_core module

K.NKADA, kengo.nakada@gmail.com, kengo.nakada@mat.shimane-u.ac.jp

JoyPad を含む bcap でのロボットの高速 *制御API集* (一種のドライバ層)

class JoyPadCore(bcap=None, host=None, port=None, manage_bcap_lifecycle=True, logger=None, log_level=None)[ソース]

ベースクラス: object

ロボット制御の中核クラス(ローカル / gRPC 共通)

設計方針:
  • open / close でロボットのライフサイクルを管理

  • 入力デバイスは外部注入

パラメータ:
  • bcap (Optional[CobottaBcap])

  • host (Optional[str])

  • port (Optional[int])

  • manage_bcap_lifecycle (bool)

  • logger (Optional[Any])

  • log_level (Optional[str])

autocal()[ソース]
戻り値の型:

bool

close()[ソース]

JoyPadCore が保持している b-CAP リソースを解放する。

戻り値の型:

None

delete()[ソース]
戻り値の型:

None

drive(pairs, *, relative=False)[ソース]

J モードで指定軸のみを相対/絶対で移動させる薄いラッパ。

パラメータ:
  • pairs (Sequence[Tuple[int, float]]) -- [(axis, value), ...] axis は 1-based (J1=1)

  • relative (bool) -- True なら相対、False なら絶対

戻り値の型:

bool

get_current_angle()[ソース]

現在のジョイント角度 [j1, j2, j3, j4, j5, j6] を b-cap (CurJnt) 経由で取得する薄いラッパ。

戻り値の型:

List[float] | None

get_current_error_info()[ソース]

RC8 が保持している current Error Infoを読み出す。 [エラーコード (VT_I4),エラーメッセージ (VT_BSTR),サブコード (VT_I4),ファイルID+行番号 (VT_I4),プログラム名 (VT_BSTR),行番号 (VT_I4),ファイルID (VT_I4)]

戻り値の型:

List | None

get_current_position()[ソース]

現在位置を b-cap から取得して返す。 gRPC / GUI が利用する公開メソッド。

戻り値の型:

List[float] | None

get_error_count()[ソース]

RC8 に現在蓄積しているエラー件数を返す。 bcap の GetCurErrorCount をそのまま委譲する。

戻り値の型:

int

get_error_description(error_code)[ソース]

エラーコードから RC8 の説明文字列を返す。

パラメータ:

error_code (int)

戻り値の型:

str

get_error_info(index)[ソース]

index 番目のエラー詳細を返す。 (エラーコードではない)

RC8 が保持している履歴を読み出す。

error_info [エラーコード (VT_I4),エラーメッセージ (VT_BSTR),サブコード (VT_I4),ファイルID+行番号 (VT_I4),プログラム名 (VT_BSTR),行番号 (VT_I4),ファイルID (VT_I4)]

パラメータ:

index (int) -- 何番目のエラーか?

戻り値の型:

List | None

Returns:

get_value(value_type, index)[ソース]

RC8 グローバル変数の取得 (CobottaBcap.get_value の薄いラッパ)

パラメータ:
  • value_type (str) -- "I", "F", "P", "J", "T", "S", "V" など

  • index (int) -- 変数番号

戻り値:

スカラ値、もしくは list[float](P/Jなど)

戻り値の型:

float | List[float] | None

give_arm()[ソース]

gRPC から呼ばれるための薄い委譲ラッパ

戻り値の型:

bool

halt()[ソース]

JoyPadCore 経由で RC8 に即時 HALT をかける。 queue / NEXT をすべて破棄する。

(*) Queue Clear は runtime --> mover --> bcap --> HALT (*) core halt は bcap --> HALT

戻り値の型:

bool

hand(*, position=None, force=None, direction=True, relative=False, speed=None)[ソース]
パラメータ:
  • position (int | None)

  • force (int | None)

  • direction (bool | int)

  • relative (bool)

  • speed (int | None)

戻り値の型:

bool

hand_move_A(position, speed)[ソース]

ハンドの位置・速度指定 (CobottaBcap.HandMoveA の薄いラッパ)

パラメータ:
  • position (float) -- 位置

  • speed (float) -- 速度

戻り値の型:

bool

hand_move_H(force, direction)[ソース]

ハンドの力制御開閉 (CobottaBcap.HandMoveH の薄いラッパ)

パラメータ:
  • force (float) -- 把持力(CobottaBcap.HandMoveH の pow に対応)

  • direction (int) -- 1: close, 0: open

戻り値の型:

bool

motor_off()[ソース]
戻り値の型:

bool

motor_on()[ソース]
戻り値の型:

bool

move(target)[ソース]

高機能版 Move。 - int: P 番号として move_p_index - str: P 番号として move_p_index - Sequence[float]: Pose として move_pose - dict:

  • 'pose' キーがあれば Pose

パラメータ:

target (int | str | Sequence[float]) -- P 番号 or Pose or dict

戻り値:

成功, False: 失敗

戻り値の型:

True

move_P(p_index=10)[ソース]

move_p_index の別名 (ORiN互換)

パラメータ:

p_index (int | str)

戻り値の型:

bool

move_p_index(p_index)[ソース]

P 番号指定での Move。

パラメータ:

p_index (int | str) -- RC8 グローバル変数 P のインデックス(P10 なら 10)

戻り値:

成功, False: 失敗

戻り値の型:

True

move_pose(pose)[ソース]

絶対座標指定での Move。

パラメータ:

pose (Sequence[float]) -- [x, y, z, rx, ry, rz] などの配列(6 要素以上を想定)

戻り値:

成功, False: 失敗

戻り値の型:

True

open()[ソース]

JoyPadCore が b-CAP を「操作可能状態」にする。

責務:
  • bcap.connect()

  • エラーが出る前提条件を満たす

戻り値の型:

None

put_value(value_type, index, newval)[ソース]

RC8 グローバル変数の設定 (CobottaBcap.put_value の薄いラッパ)

パラメータ:
  • value_type (str)

  • index (int)

  • newval (float | Sequence[float])

戻り値の型:

bool

reset_error()[ソース]

RC8 のエラーを b-CAP 経由でリセットするための薄いラッパ。 CobottaBcap.reset_error() に委譲する。

戻り値の型:

bool

take_arm()[ソース]

gRPC から呼ばれるための薄い委譲ラッパ

戻り値の型:

bool

cobotta2.pad.joypad_mover module

K.NAKADA, kengo.nakada@gmail.com

dpose (移動量) を受け取って、現在地の差分から 移動指定を出すメソッドを呼び出す。

その際に queue に一度積ませてから処理をするのを前提とする gRPCなどの遅延対策

class JoyPadMover(bcap, interval=0.02, scale=5, logger=None, log_level=None)[ソース]

ベースクラス: object

JoyPadCore 用 mover(queue 版)

  • dpose はすべて 1 モーションとして queue に積む

  • halt() は
    • RC8 HALT

    • queue を物理破棄

  • エラー処理は MoveWorker(旧実装)と同じ思想:
    • 毎回 move 前に get_error_count()

    • エラーがあれば reset_error() してその周期は捨てる

    • 例外時も reset_error()

パラメータ:
  • bcap (CobottaBcap)

  • interval (float)

  • scale (int)

  • logger (Any | None)

  • log_level (str | None)

_loop()[ソース]
戻り値の型:

None

get_coord_mode()[ソース]
戻り値の型:

str

halt()[ソース]
即時停止 & quele clear:
  • RC8 HALT

  • 先行入力 queue を完全破棄

戻り値の型:

None

put_dpose(dpose)[ソース]

Motion が詰まっている Queue

パラメータ:

dpose (List[float])

戻り値の型:

None

set_coord_mode(mode)[ソース]
パラメータ:

mode (str)

set_interval(interval)[ソース]
パラメータ:

interval (float)

戻り値の型:

None

set_scale(scale)[ソース]
パラメータ:

scale (int)

戻り値の型:

None

start()[ソース]
戻り値の型:

None

stop()[ソース]

queue stop

戻り値の型:

None

cobotta2.pad.joypad_runtime module