Rakuda Robot¤
RakudaRobot
は、二腕ロボットシステムでLeader/Followerアーム構成を持つロボットです。テレオペレーションとデータ収集機能を提供します。
構成要素¤
ロボットアーム¤
- Leader Arm (
RakudaLeader
): 操作者が制御するアーム - Follower Arm (
RakudaFollower
): Leaderの動きを追従するアーム - Pair System (
RakudaPairSys
): 両アームの協調制御
センサー統合¤
- カメラ: Intel RealSenseカメラ対応
- タクタイルセンサー: DIGIT触覚センサー対応
基本的な使用方法¤
設定の作成¤
from robopy import RakudaConfig, RakudaSensorParams, TactileParams
config = RakudaConfig(
leader_port="/dev/ttyUSB0",
follower_port="/dev/ttyUSB1",
sensors=RakudaSensorParams(
cameras=None,
tactile=[
TactileParams(serial_num="D20542", name="left"),
TactileParams(serial_num="D20537", name="right"),
],
),
slow_mode=False, # 高速モード
)
ロボットの操作¤
from robopy import RakudaRobot
robot = RakudaRobot(config)
try:
# 接続
robot.connect()
# テレオペレーション(10秒間)
robot.teleoperation(duration=10)
# データ記録
obs = robot.record_parallel(max_frame=500, fps=30)
finally:
robot.disconnect()
データ記録機能¤
標準記録¤
並列記録¤
記録データ構造¤
記録されるデータはRakudaObs
型で、以下の構造を持ちます:
{
"arms": {
"leader": np.ndarray, # (frames, 17) - 関節角度など
"follower": np.ndarray, # (frames, 17) - 関節角度など
},
"sensors": {
"cameras": {
"main": np.ndarray, # (frames, H, W, C) - RGB画像
},
"tactile": {
"left": np.ndarray, # (frames, H, W, C) - 触覚データ
"right": np.ndarray, # (frames, H, W, C) - 触覚データ
}
}
}
実験ハンドラー¤
RakudaExpHandler
を使用すると、より簡単に実験を実行できます:
from robopy.utils.exp_interface import RakudaExpHandler
handler = RakudaExpHandler(
leader_port="/dev/ttyUSB0",
follower_port="/dev/ttyUSB1",
left_digit_serial="D20542",
right_digit_serial="D20537",
fps=30
)
# インタラクティブな記録・保存
handler.record_save(
max_frames=1000,
save_path="experiment_001",
if_async=True
)
パフォーマンス最適化¤
並列処理¤
record_parallel()
メソッドでは、アーム制御とセンサー読み取りを並列化して高速化しています:
# 最大25msの処理時間制限で30Hz記録
obs = robot.record_parallel(
max_frame=1000,
fps=30,
max_processing_time_ms=25.0
)
メモリ効率¤
- フレームバッファリングなし
- 最新フレームのみ保持
- 効率的な numpy 配列変換
トラブルシューティング¤
接続エラー¤
センサー読み取りエラー¤
# センサーの個別確認
if robot.sensors.tactile:
for sensor in robot.sensors.tactile:
if sensor.is_connected:
print(f"{sensor.name}: 接続OK")
パフォーマンス問題¤
関連クラス¤
RakudaConfig
- ロボット設定RakudaPairSys
- アーム協調制御RakudaLeader
- リーダーアームRakudaFollower
- フォロワーアーム