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)[ソース]
ベースクラス:
objectgRPC サーバー側の入力境界オブジェクト。
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])
- 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_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
- 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
- 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_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
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)[ソース]
ベースクラス:
objectJoyPadCore 用 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)