コンテンツにスキップ

データセットの収集

1. データセット収集(新規)

既存の同名データセットがあると新規作成に失敗します。削除対象が空文字やルートディレクトリでないことを確認してから削除します。

1
rm -rf "{{ DATASET_DIR }}"

dataset.episode_time_sは1エピソードの収集時間、dataset.reset_time_sは次のエピソードまでのリセット時間、dataset.num_episodesは収集するエピソード数です。

SSH接続時は、Rerun GUIを起動しないように--display_data=falseを使用します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
cd "{{ PROJECT_DIR }}"

lerobot-record \
  --robot.type=so101_follower \
  --robot.port={{ ROBOT_PORT }} \
  --robot.id=my_follower_arm \
  --teleop.type=so101_leader \
  --teleop.port={{ TELEOP_PORT }} \
  --teleop.id=my_leader_arm \
  --robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', backend: 200, width: 640, height: 480, fps: 30, fourcc: 'MJPG'}}" \
  --dataset.repo_id={{ DATASET_REPO_ID }} \
  --dataset.root={{ DATASET_DIR }} \
  --dataset.push_to_hub=false \
  --dataset.single_task="Pick up the red cube" \
  --dataset.fps=30 \
  --dataset.episode_time_s=10 \
  --dataset.reset_time_s=5 \
  --dataset.num_episodes=30 \
  --dataset.streaming_encoding=false \
  --display_data=false \
  --play_sounds=true

Note

Jetsonのデスクトップ上のターミナルで実行し、DISPLAYまたはWAYLAND_DISPLAYが設定されている場合のみ、必要に応じて--display_data=trueへ変更できます。SSHではfalseのまま使用してください。

SSH接続時は、Rerun GUIを起動しないように--display_data=falseを使用します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
cd "{{ PROJECT_DIR }}"

lerobot-record \
  --robot.type=so101_follower \
  --robot.port={{ ROBOT_PORT }} \
  --robot.id=my_follower_arm \
  --teleop.type=so101_leader \
  --teleop.port={{ TELEOP_PORT }} \
  --teleop.id=my_leader_arm \
  --robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', backend: 200, width: 640, height: 480, fps: 30, fourcc: 'MJPG'}, side:{type: opencv, index_or_path: '/dev/video2', backend: 200, width: 640, height: 480, fps: 30, fourcc: 'MJPG'}}" \
  --dataset.repo_id={{ DATASET_REPO_ID }} \
  --dataset.root={{ DATASET_DIR }} \
  --dataset.push_to_hub=false \
  --dataset.single_task="Pick up the red cube" \
  --dataset.fps=30 \
  --dataset.episode_time_s=10 \
  --dataset.reset_time_s=5 \
  --dataset.num_episodes=30 \
  --dataset.streaming_encoding=false \
  --display_data=false \
  --play_sounds=true

Note

Jetsonのデスクトップ上のターミナルで実行し、DISPLAYまたはWAYLAND_DISPLAYが設定されている場合のみ、必要に応じて--display_data=trueへ変更できます。SSHではfalseのまま使用してください。

2. データセット収集(追加)

1の操作で収集したデータセットをさらに追加したい場合に、下記コマンドで追加収集可能です。

既存データセットへ追加するときは、初回収集時と同じrepo_id、root、カメラ構成、FPS、タスク名を使用し、--resume=trueを指定します。次の例では5エピソードを追加します。

SSH接続時は、Rerun GUIを起動しないように--display_data=falseを使用します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
cd "{{ PROJECT_DIR }}"

lerobot-record \
  --robot.type=so101_follower \
  --robot.port={{ ROBOT_PORT }} \
  --robot.id=my_follower_arm \
  --teleop.type=so101_leader \
  --teleop.port={{ TELEOP_PORT }} \
  --teleop.id=my_leader_arm \
  --robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', backend: 200, width: 640, height: 480, fps: 30, fourcc: 'MJPG'}}" \
  --dataset.repo_id={{ DATASET_REPO_ID }} \
  --dataset.root={{ DATASET_DIR }} \
  --dataset.push_to_hub=false \
  --dataset.single_task="Pick up the red cube" \
  --dataset.fps=30 \
  --dataset.episode_time_s=10 \
  --dataset.reset_time_s=5 \
  --dataset.num_episodes=5 \
  --dataset.streaming_encoding=false \
  --display_data=false \
  --play_sounds=true \
  --resume=true

Note

Jetsonのデスクトップ上のターミナルで実行し、DISPLAYまたはWAYLAND_DISPLAYが設定されている場合のみ、必要に応じて--display_data=trueへ変更できます。SSHではfalseのまま使用してください。

SSH接続時は、Rerun GUIを起動しないように--display_data=falseを使用します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
cd "{{ PROJECT_DIR }}"

lerobot-record \
  --robot.type=so101_follower \
  --robot.port={{ ROBOT_PORT }} \
  --robot.id=my_follower_arm \
  --teleop.type=so101_leader \
  --teleop.port={{ TELEOP_PORT }} \
  --teleop.id=my_leader_arm \
  --robot.cameras="{front: {type: opencv, index_or_path: '/dev/video0', backend: 200, width: 640, height: 480, fps: 30, fourcc: 'MJPG'}, side:{type: opencv, index_or_path: '/dev/video2', backend: 200, width: 640, height: 480, fps: 30, fourcc: 'MJPG'}}" \
  --dataset.repo_id={{ DATASET_REPO_ID }} \
  --dataset.root={{ DATASET_DIR }} \
  --dataset.push_to_hub=false \
  --dataset.single_task="Pick up the red cube" \
  --dataset.fps=30 \
  --dataset.episode_time_s=10 \
  --dataset.reset_time_s=5 \
  --dataset.num_episodes=5 \
  --dataset.streaming_encoding=false \
  --display_data=false \
  --play_sounds=true \
  --resume=true    

Note

Jetsonのデスクトップ上のターミナルで実行し、DISPLAYまたはWAYLAND_DISPLAYが設定されている場合のみ、必要に応じて--display_data=trueへ変更できます。SSHではfalseのまま使用してください。

追加収集後、「収集データセットの完成確認」をもう一度実行します。

リファレンス