如果軟體跟硬體的部署都好了,就可以測試樣本的採集了 ![]()
lerobot-record \
--robot.type=so101_follower --robot.port=/dev/ttyACM0 \
--robot.id=my_awesome_follower_arm \
--teleop.type=so101_leader --teleop.port=/dev/ttyACM1 \
--teleop.id=my_awesome_leader_arm \
--dataset.repo_id={USER_NAME}/grasp_box \
--dataset.num_episodes=1 \
--dataset.single_task="grasp the box" \
--dataset.episode_time_s=240
可以直接輸入以下的指令,就可以拉取該資料集進行訓練了
ACT 微調
lerobot-train \
--dataset.repo_id={USER_NAME}/grasp_box \
--policy.type=act \
--policy.device=cuda \
--output_dir=outputs/train/act_model \
--policy.repo_id={USER_NAME}/act_model \
--job_name=act_model \
--dataset.video_backend=pyav \
--wandb.enable=true \
--save_checkpoint=true \
--steps=100000 \
--save_freq=5000 \
--batch_size=72
SmolVLA 微調
lerobot-train \
--dataset.repo_id={USER_NAME}/grasp_boxes_09 \
--policy.type=smolvla \
--output_dir=outputs/train/smolvla_raw_model \
--policy.repo_id={USER_NAME}/smolvla_raw_model \
--dataset.video_backend=pyav \
--job_name=smolvla_raw_model \
--policy.device=cuda \
--wandb.enable=true \
--steps=100000 \
--save_freq=5000 \
--save_checkpoint=true \
--batch_size=72
也可以不選擇推送到 huggingface ,只在本地端保留參數,可添加參數
--policy.push_to_hub=false
最後指令的前面加上 nohup ,最後加上 &,讓服務可以離線訓練
我自己是因為訓練到一半,就會想實際測試,所以我會透過 scp 的方式,從本地端移動模型到自己的電腦,在取 last 的版本做測試。你也可以等全部模型訓練完,再從 huggingface 上拉模型下來測試。
現在,你可以使用 checkpoints/last/pretrained_model 也就是最新訓練的參數模型來做測試,這邊可以先測試 ACT
lerobot-record \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_awesome_follower_arm \
--policy.path=outputs/train/act_model/checkpoints/last/pretrained_model \
--display_data=true \
--dataset.repo_id={USER_NAME}/eval_grasp \
--dataset.num_episodes=1 \
--dataset.single_task="grasp the box" \
--dataset.episode_time_s=240
如果到這邊測試可以被執行,就代表大功告成了!
請注意:如果是使用 SmolVLA 的模型,請打開 checkpoints/last/pretrained_model/config.json 進行編輯
cd lerobot/outputs/train/smolvla_raw_model/checkpoints/last/pretrained_model
vim config.json
刪掉 "rtc_config": null 這一行
以及刪除掉 "max_period": 4.0, 後面的逗點, -> "max_period": 4.0,
如果直接執行 rtc_config 會發生錯誤,不確定該錯誤什麼時候會被修復
一開始採樣會花很多時間在「工人訓練」,必須說,採樣有很多技巧在裡面,例如,盡可能把意圖明確的動作切割開來,就很像人類經過吧台拿東西,可以邊移動經過、降速、拿取、提高速度離開,對機器人來說,初步的階段可以把東西,一件事情在一個時段完成,千萬別急著一開始就把所有動作縮在一個時間裡面,初步完成了,確保模型可 work,再把較困難的動作組合起來也不遲。
參考文章 → Imitation Learning on Real-World Robots