データ収集
Orca Hand を使用した器用な操作データの記録は、単純なグリッパー データ収集とは根本的に異なります。17 個の指の関節、オプションの触覚ストリーム、および手袋の遠隔操作はすべて、注意深い同期を必要とします。 このガイドでは、ワークフロー全体を説明します。
器用なデータ収集のためのハードウェアセットアップ
Orca Hand の記録セットアップには、単純なグリッパー アームよりも多くのストリームがあります。指の関節、オプションの触覚、カメラ、腕の関節はすべて同期する必要があります。
オルカハンド(USBシリアル)
最大 100 Hz での 17-DOF の指の状態。 確認する: python -c "from orca_core import OrcaHand; h=OrcaHand('/dev/ttyUSB0'); h.connect(); print(h.get_positions())"
遠隔操作装置
Juqiao Glove (推奨) または VR ハンド トラッキング。 オペレーターの指のポーズを Orca Hand ジョイントのターゲットにリアルタイムでマッピングします。
手のひら/リストカメラ
手のひらの中にある小型の USB カメラが指先や物体を指します。 指先と物体の接触が把握の成功を決定する、接触の多いタスクに不可欠です。
触覚センサー(オプション)
Paxini または互換性のある指先センサー。 別途USB接続。 連絡先ガイド付きの政策トレーニングのために、連絡部隊ストリームをデータセットに追加します。
ステップバイステップの記録ワークフロー
腕+手+手袋を持ち上げる
# Terminal 1: Arm (if using OpenArm)
source ~/openarm_ws/install/setup.bash
ros2 launch openarm_ros2 openarm.launch.py use_fake_hardware:=false can_interface:=can0
# Terminal 2: Orca Hand
source ~/orca_ws/install/setup.bash
ros2 launch orca_ros2 orca_hand.launch.py port:=/dev/ttyUSB0 handedness:=right
# Terminal 3: Juqiao Glove (see Juqiao Glove software page)
python -m juqiao_glove.stream --port /dev/ttyUSB1
すべてのストリームがライブであることを確認する
# Check finger joint states
ros2 topic hz /orca_hand/joint_states # expect ~100 Hz
# Check glove stream
ros2 topic hz /juqiao_glove/finger_angles # expect ~100 Hz
# Check camera
python -c "import cv2; cap=cv2.VideoCapture(0); print('Camera OK:', cap.isOpened())"
手袋と手のマッピングを調整する
グローブ キャリブレーションを実行して、指の寸法を Orca Hand の関節範囲にマッピングします。 このステップにより、自然な遠隔操作が保証されます。開いた手 = Orca open、あなたの拳 = Orca の拳です。
python -m orca_core.scripts.calibrate_teleop \
--hand_port /dev/ttyUSB0 \
--glove_port /dev/ttyUSB1 \
--handedness right
タスクシーンを設定する
オブジェクトを一貫した開始位置に配置します。 器用な把握はオブジェクトの姿勢に非常に敏感です。固定具 (テープ、パテ) を使用して、エピソード全体で一貫したオブジェクトの配置を維持します。
録音セッションを開始する
python -m orca_core.scripts.record_episodes \
--hand_port /dev/ttyUSB0 \
--glove_port /dev/ttyUSB1 \
--camera_id 0 \
--fps 30 \
--output_dir ~/datasets/orca-grasp-v1 \
--num_episodes 50 \
--task "Pick up the pen using a precision pinch grasp"
レコーダーは、同期された指の関節の位置、手袋の角度、カメラ フレーム、および (接続されている場合) 触覚読み取り値を Parquet データセットに保存します。
把握品質のレビュー
各エピソードを再生します。 探してください: 滑り現象 (突然の位置のジャンプ)、不完全な把握、腱の飽和 (把握中のハードリミットでの関節)、一貫性のないアプローチ パス。
python -m orca_core.scripts.visualize_episode \
--dataset_dir ~/datasets/orca-grasp-v1 \
--episode_index 0
HuggingFace ハブにプッシュする
python -m orca_core.scripts.push_dataset \
--dataset_dir ~/datasets/orca-grasp-v1 \
--repo_id your-username/orca-grasp-v1
Orca Hand データセット スキーマ
Orca Hand データセット形式は、指固有の触覚ストリームを追加して標準の LeRobot スキーマを拡張します。
器用なデータ品質チェックリスト
データを巧みに操作すると、単純なピックアンドプレイスよりも多くの故障モードが発生します。 ハブにプッシュする前に、これを実行してください。
-
1エピソード全体を通じて、17 個のジョイントすべてに有効な位置の読み取り値が含まれています NaN またはスタック値はサーボ ドロップアウトを示します。 検査する
observation.hand_stateすべてのフレームにわたる任意のジョイントの定数値。 -
2手袋から手に触れるまでの遅延は 20 ミリ秒未満です 間のタイムスタンプの調整を確認します。
action(手袋から)そしてobservation.hand_state。 待ち時間が長いと、ポリシーは因果的に矛盾するペアから学習します。 -
3タスク内で把握タイプが一貫している 一部のデモンストレーションでパワーグリップが使用された場合、精密ピンチのポリシーは一般化されません。 各データセットを 1 つの主要な把握戦略に維持するか、把握タイプごとにラベルを付けます。
-
4関節位置で接触イベントが表示される 手が物体と接触すると、指の関節に明らかな減速とコンプライアンスのたわみが見られるはずです。 接触変形なしに指が所定の位置にスナップするエピソードは、把握を見逃している可能性があります。
-
5手のひらのカメラは操作フェーズ全体でオブジェクトを表示します オブジェクトは、アプローチからリリースまで手のひらのカメラに表示されなければなりません。 カメラ マウントがぶつかっていないこと、および FOV がタスク ワークスペースをカバーしていることを確認してください。
-
6触覚ストリームには予想される接触イベントがあります ピンチを握ると、親指と人差し指の両方の触覚に力が増加するはずです。 接触確認中に力信号が欠落している場合は、センサーが切断されているか、センサーが正しく校正されていないことを示します。