データ収集
ロボットの関節状態やカメラ映像とともに接触圧力を記録します。 グローブは、 どれほど難しいか ロボットグリッパーが押しているのは、視覚だけでは見えない情報です。
システム接続
ソフトウェアを起動する前に、すべてのデバイスを接続してください。 グローブは厳密に USB 有線であり、ワイヤレス モードはありません。
ロボットアーム+ハンド
Orca Hand (推奨) またはその他のエンドエフェクター。 アームに応じて、Feetech USB アダプターまたは CAN 経由で接続します。
/dev/ttyUSB0 or CAN0ジューチャオグローブ
USB-C をホスト PC に接続します。 CDC-ACM シリアルとして表示されます。 1.5mケーブル。 自由に移動できるように、必要に応じて USB 拡張機能を使用してください。
/dev/ttyACM0リストカメラ
ロボットの手首に取り付けられた USB または GigE カメラにより、トレーニング用にオブジェクト中心のビューが提供されます。
/dev/video0 or GigE IPオーバーヘッドカメラ
シーンコンテキスト用のワークスペースカメラを修正しました。 マルチビュー データセット用にリスト カメラとペアリングします。
/dev/video2 or GigE IP遠隔操作装置
リーダーアーム (SO-101 / OpenArm リーダー)、VR コントローラー、またはフォロワー ロボットを駆動する SpaceMouse。
リーダーポート/HIDステップバイステップの記録
ロボットのアームとハンドを持ち上げます
アーム ドライバー (該当する場合は Orca Hand ドライバー) を別のターミナルで起動します。 続行する前に、joint_states が公開されていることを確認してください。
Juqiao Glove ドライバーを起動します
グローブ ROS2 ノードを起動します。 録音セッションを開始する前に、200 Hz データが流れていることを確認してください。
カメラを起動する
手首ビューと頭上ビューのカメラ ノードを開始します。 画像トピックがターゲット フレーム レート (通常は 30 fps) でパブリッシュされていることを確認します。
すべてのストリームが同期されていることを確認します
使用 ros2トピックリスト 必要なトピックがすべて存在することを確認します。 エピソードを記録する前に、モダリティ全体でタイムスタンプが 20 ミリ秒以内であることを確認してください。
LeRobot でデータセットを記録する
LeRobot の記録スクリプトを使用します。 の --触覚トピック flag は、関節の状態と画像とともに、グローブ圧力ストリームをデータセット列として追加します。
プッシュする前にエピソードを確認する
HuggingFace Hub にコミットする前に、ヒートマップ オーバーレイで各エピソードを再生して触覚データの品質を確認します。
HuggingFace ハブにプッシュする
検証されたデータセットをアップロードします。 データセット カードは、触覚を含むモダリティの説明とともに自動生成されます。
データセットスキーマ
データセット内の各フレームには次の列が含まれています。 すべての配列は float32 Parquet 列として保存されます。 画像を MP4 ビデオ シーケンスとして保存します。
| カラム | 形状・種類 | 説明 |
|---|---|---|
| 観察・状態 | float32[6] | ロボットアームの関節位置(ラジアン)。 インデックス 6 は、6-DOF アームを使用する場合のグリッパー開口部です。 |
| 観察.hand_state | float32[17] | Orca ハンドジョイントの位置 (ラジアン)、17 DOF。 器用でない場合は省略してください。 メタデータでは共同名ごとにラベルが付けられます。 |
| 観察.触圧 | float32[64] | Juqiao Glove はノードごとに正規化された圧力、0.0 (接触なし) ~ 1.0 (フルスケール)。 ロボットのフレームレートに合わせて 200 Hz ダウンサンプリング。 |
| 観察.tactile_pressures_raw | uint16[64] | 生の 16 ビット ADC 値。 再キャリブレーション後の再正規化のために保存します。 オプション。 データセットのサイズを減らすために省略します。 |
| 観察.把握領域 | str | アクティブな接触領域のヒューリスティック: 「ヤシ」, "親指", "索引", "真ん中", "指輪", "ピンキー"、 または "" (連絡はありません)。 |
| 観察・画像・手首 | uint8[H, W, 3] | リストカメラの RGB フレーム(30 fps)、MP4 ビデオ シーケンスとして保存。 |
| 観察.画像.オーバーヘッド | uint8[H, W, 3] | オーバーヘッド カメラの RGB フレームは 30 fps です。 |
| アクション | float32[6 または 23] | 腕 (6) およびオプションで手 (17) の目標関節位置。 形状は手の器用さの有無によって決まります。 |
| 言語説明 | str | タスクの説明(例) 「卵を割らずに拾う」。 言語条件付きのポリシー トレーニングを有効にします。 |
| エピソードインデックス | 整数 | データセット内のエピソード番号。 |
| フレームインデックス | 整数 | エピソード内のフレーム番号 (0 から始まるインデックス)。 |
| タイムスタンプ | float64 | エピソード開始からの経過秒数。 |
触覚ダウンサンプリング
グローブは 200 Hz でストリーミングします。 ロボットとカメラは通常 30 ~ 100 Hz で動作します。 レコーダは、最近傍タイムスタンプ マッチングを使用してフレームを調整します。 完全な 200 Hz 触覚ストリームを別個の配列として保存するには:
エピソードの品質チェックリスト
データセットに含める前に、これらの基準に照らして各エピソードを確認してください。 悪いエピソードが 1 つあると、政策訓練の質を低下させる偽の触覚パターンを引き起こす可能性があります。
-
触覚ストリームは連続的 - フレームギャップなし 確認する フレーム.シーケンス スキップせずに増分します。 フレーム ドロップは、触覚コラムに繰り返しの値として表示されます。
-
安静時のベースラインはゼロに近い (< 0.03) エピソードの開始時 (接触前)、最大圧力ノードは 0.03 未満である必要があります。 静止時にドリフトが 0.05 を超える場合は、グローブの再調整が必要であることを示します。
-
接触イベントはビデオの目に見える把握と一致します で再生 --オーバーレイ-触覚。 圧力スパイク (最大ノード > 0.4) は、リスト カメラで目に見えるグリッパーの閉鎖と一致する必要があります。
-
接触フェーズ中の把握領域は一貫しています 把握領域 各把握中に 1 つまたは 2 つの領域で安定する必要があります (例: 「ヤシ」 + "索引")。 急速に変化する領域は、グローブの位置ずれまたはノイズのある信号を示します。
-
ロボットの状態に対してグローブの遅延が 20 ミリ秒未満 触覚イベントの開始とグリッパーの速度スパイクを比較します。 遅延が 20 ミリ秒を超える場合は、USB ハブの混雑を示唆しています。グローブをホストの USB ポートに直接接続してください。
-
言語指導は実証された課題と一致する 言語条件付きデータセットの場合、エピソードの開始時に入力された指示が、オペレーターが実際にデモンストレーションした内容を正確に説明していることを確認してください。
-
ロボットの動きにケーブルが干渉しない 1.5 m の USB ケーブルは、オペレータの手の動きを制限したり、エピソード中に手袋を引っ張ったりしてはなりません。 前腕にケーブル管理クリップを使用します。
触覚観察トレーニング
触覚入力を使用するポリシーでは、通常、視覚のみのベースラインと比較して、接触に敏感なタスク (壊れやすい物の取り扱い、ペグの挿入、布の折り畳み) で 15 ~ 30% の改善が見られます。