データ収集

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接続。 連絡先ガイド付きの政策トレーニングのために、連絡部隊ストリームをデータセットに追加します。

録音ワークフロー

ステップバイステップの記録ワークフロー

1

腕+手+手袋を持ち上げる

# 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
2

すべてのストリームがライブであることを確認する

# 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())"
3

手袋と手のマッピングを調整する

グローブ キャリブレーションを実行して、指の寸法を Orca Hand の関節範囲にマッピングします。 このステップにより、自然な遠隔操作が保証されます。開いた手 = Orca open、あなたの拳 = Orca の拳です。

python -m orca_core.scripts.calibrate_teleop \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --handedness right
4

タスクシーンを設定する

オブジェクトを一貫した開始位置に配置します。 器用な把握はオブジェクトの姿勢に非常に敏感です。固定具 (テープ、パテ) を使用して、エピソード全体で一貫したオブジェクトの配置を維持します。

5

録音セッションを開始する

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 データセットに保存します。

6

把握品質のレビュー

各エピソードを再生します。 探してください: 滑り現象 (突然の位置のジャンプ)、不完全な把握、腱の飽和 (把握中のハードリミットでの関節)、一貫性のないアプローチ パス。

python -m orca_core.scripts.visualize_episode \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --episode_index 0
7

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 スキーマを拡張します。

各エピソードのフィールド Parquet ファイル
観察.hand_state float32[17] 17 個すべての指関節の位置 (度単位)
観察.手の速度 float32[17] 指の関節速度 (度/秒)
観察・触覚 float32[5] 指先あたりの接触力 (N) (触覚センサーが接続されている場合)
観察画像* ビデオパス カメラ フレーム — パーム ビュー、リスト ビュー、ワークスペース ビュー
アクション float32[17] 手袋の遠隔操作から指の関節の位置をターゲットにします
把握タイプ 使用される把握プリミティブのラベル (例: "precision_pinch"、"power_grasp")
タイムスタンプ float64 Unix タイムスタンプ (秒単位)
次へ。完了 ブール 各エピソードの最後のフレームでは True
品質保証

器用なデータ品質チェックリスト

データを巧みに操作すると、単純なピックアンドプレイスよりも多くの故障モードが発生します。 ハブにプッシュする前に、これを実行してください。

  • 1
    エピソード全体を通じて、17 個のジョイントすべてに有効な位置の読み取り値が含まれています NaN またはスタック値はサーボ ドロップアウトを示します。 検査する observation.hand_state すべてのフレームにわたる任意のジョイントの定数値。
  • 2
    手袋から手に触れるまでの遅延は 20 ミリ秒未満です 間のタイムスタンプの調整を確認します。 action (手袋から)そして observation.hand_state。 待ち時間が長いと、ポリシーは因果的に矛盾するペアから学習します。
  • 3
    タスク内で把握タイプが一貫している 一部のデモンストレーションでパワーグリップが使用された場合、精密ピンチのポリシーは一般化されません。 各データセットを 1 つの主要な把握戦略に維持するか、把握タイプごとにラベルを付けます。
  • 4
    関節位置で接触イベントが表示される 手が物体と接触すると、指の関節に明らかな減速とコンプライアンスのたわみが見られるはずです。 接触変形なしに指が所定の位置にスナップするエピソードは、把握を見逃している可能性があります。
  • 5
    手のひらのカメラは操作フェーズ全体でオブジェクトを表示します オブジェクトは、アプローチからリリースまで手のひらのカメラに表示されなければなりません。 カメラ マウントがぶつかっていないこと、および FOV がタスク ワークスペースをカバーしていることを確認してください。
  • 6
    触覚ストリームには予想される接触イベントがあります ピンチを握ると、親指と人差し指の両方の触覚に力が増加するはずです。 接触確認中に力信号が欠落している場合は、センサーが切断されているか、センサーが正しく校正されていないことを示します。

データセットの準備はできていますか? トレーニングを開始します。

巧みな操作データセットを HuggingFace にプッシュし、互換性のあるモデルを探索します。