AM-ARM200 单臂教程#
如果还没有整机底盘,可以先用 一台 PC、一只主臂和一只从臂完成校准、遥操作和采集。这条路径不需要树莓派 Host,适合单独验证机械臂。
1. 准备环境与端口#
先完成 软件安装,将主臂和从臂分别接到 PC。逐只接入并记录串口:
lerobot-find-port
lerobot-find-cameras
本页示例约定主臂 /dev/ttyACM0、从臂 /dev/ttyACM1,相机索引为 0 和 1,运行前换成自己的实际值。
2. 校准主臂#
lerobot-calibrate \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM0 \
--teleop.id=my_leader \
--teleop.arm_profile=am-leader-6dof
虽然入口类型名包含 so101,这里通过 am-leader-6dof 选择 AM 主臂的硬件 profile。按提示完成范围记录。
3. 校准从臂#
lerobot-calibrate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM1 \
--robot.id=my_follower \
--robot.arm_profile=am-follower-6dof
Pro 从臂使用 am-follower-6dof-hd。完成后按原始教程对两只臂断电重启。
4. 遥操作#
lerobot-teleoperate \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM0 \
--teleop.id=my_leader \
--teleop.arm_profile=am-leader-6dof \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM1 \
--robot.id=my_follower \
--robot.arm_profile=am-follower-6dof
缓慢移动主臂,检查从臂跟随、关节方向与夹爪。确认正常后退出遥操作,再启动录制。
5. 录制一条演示#
export HF_USER="your-hf-username"
lerobot-record \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM1 \
--robot.id=my_follower \
--robot.arm_profile=am-follower-6dof \
--robot.cameras="{cam_wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, cam_top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM0 \
--teleop.id=my_leader \
--teleop.arm_profile=am-leader-6dof \
--dataset.repo_id=$HF_USER/am_arm_test \
--dataset.num_episodes=1 \
--dataset.fps=30 \
--dataset.episode_time_s=45 \
--dataset.reset_time_s=8 \
--dataset.single_task="Pick up the object and place it in the tray" \
--dataset.push_to_hub=false \
--display_data=true
只有一只相机时删除 cam_top 条目。cam_wrist 与 cam_top 会成为数据集字段名,后续续录、训练和部署保持一致。
单臂入口续录使用 --resume=true,并指向相同数据集;它与整机 record_bi.py 的参数形式不同,以当前入口帮助为准。
6. 查看和回放#
离线查看:
lerobot-dataset-viz \
--repo-id $HF_USER/am_arm_test \
--episode-index 0 \
--display-compressed-images
真机回放会移动从臂:
lerobot-replay \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM1 \
--robot.id=my_follower \
--robot.arm_profile=am-follower-6dof \
--dataset.repo_id=$HF_USER/am_arm_test \
--dataset.episode=0
7. 训练与迁移到整机#
训练可按 ACT 训练 将数据集替换为单臂数据集,并使用独立输出目录。单臂策略的动作和观测结构与整机不同,不能直接把单臂模型交给双臂整机评估脚本。
从单臂扩展到整机时,重新完成左右主从臂、Host、底盘、升降和整机相机配置,再重新采集与训练对应的整机数据。
8. 单臂 ACT 训练示例#
将采集数据保持在同一命名空间;以下命令关闭模型上传:
lerobot-train \
--dataset.repo_id=$HF_USER/am_arm_test \
--policy.type=act \
--output_dir=outputs/train/act_am_arm_test \
--job_name=act_am_arm_test \
--policy.device=cuda \
--policy.push_to_hub=false \
--wandb.enable=false \
--dataset.video_backend=pyav
自定义数据目录时加上正确的 --dataset.root。训练机与控制机分开时,完整迁移数据和检查点。单臂 Pro 数据建议使用独立的 am_arm_pro_test 数据集与模型目录。
9. 单臂真机评估#
评估使用 lerobot-rollout,在 PC 上直接控制单从臂。先停止遥操作与录制,核对相机与模型输入一致;下面的 020000 改为实际保存的步数。
AM-ARM200 标准从臂
lerobot-rollout \
--strategy.type=base \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM1 \
--robot.id=my_follower \
--robot.arm_profile=am-follower-6dof \
--robot.cameras="{cam_wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, cam_top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
--policy.path=outputs/train/act_am_arm_test/checkpoints/020000/pretrained_model \
--task="Pick up the object and place it in the tray"
AM-ARM200 Pro 从臂
lerobot-rollout \
--strategy.type=base \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM1 \
--robot.id=my_follower \
--robot.arm_profile=am-follower-6dof-hd \
--robot.cameras="{cam_wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, cam_top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30}}" \
--policy.path=outputs/train/act_am_arm_pro_test/checkpoints/020000/pretrained_model \
--task="Pick up the object and place it in the tray"
这里的相机配置与本页录制示例对应;如果训练只用一只相机,评估也按相同名称配置。设备 ID 必须加载该从臂的真实校准,Pro 检查点必须由对应数据训练得到。