データセットの収集
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のまま使用してください。
Macのカメラ番号が0の場合の例です。AVFoundationでMJPGが表示されないカメラもあるため、Mac用コマンドではfourccを固定していません。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | 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: 0, width: 640, height: 480, fps: 30}}" \
--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=true
|
H.264を明示する場合、LeRobot 0.6.0では旧引数--dataset.vcodec=h264ではなく、次を追加します。
| --dataset.rgb_encoder.vcodec=h264
|
2. データセット収集(追加)
1の操作で収集したデータセットをさらに追加したい場合に、下記コマンドで追加収集可能です。
既存データセットへ追加するときは、初回収集時と同じrepo_id、root、カメラ構成、FPS、タスク名を使用し、--resume=trueを指定します。次の例では5エピソードを追加します。
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
|
追加収集後、「収集データセットの完成確認」をもう一度実行します。
リファレンス