< >
Home » LeRobot-SO100入门教程 » LeRobot-SO100入门教程-校准机械臂

LeRobot-SO100入门教程-校准机械臂

说明:

  • 介绍如何校准LeRobot-SO100机械臂

  • 先连接上主臂,再连接上从臂

  • 主臂的端口号:/dev/ttyACM0,从臂的端口号:/dev/ttyACM1

相关设备

步骤:

  • 加载lerobot环境
    conda activate lerobot
  • 注意:校准机械臂前,确保删除之前的校准文件main_follower.json,main_leader.json,以防止旧数据干扰新的校准过程
    cd ~/lerobot/.cache/calibration/so100
    rm main_follower.json main_leader.json
  • 注意:在校准机械臂的时候,需要确保校准每个姿势之间,保持更长的时间,以便它捕捉到正确的位置

校准从臂:

  • 进入lerobot目录
    cd ~/lerobot
  • 校准从臂(follower arm),每做好一个姿势,就按回车键。将从臂按顺序移动到以下位置
    python3 ~/lerobot/lerobot/scripts/control_robot.py \
      --robot.type=so100 \
      --robot.cameras='{}' \
      --control.type=calibrate \
      --control.arms='["main_follower"]'
  • 校准完成后的文件保存在当前目录
    ~/lerobot/.cache/calibration/so100/main_follower.json
  • 生成的校准文件main_follower.json的内容如下:
{"homing_offset": [-2017, 3993, -4149, -1101, 1122, -945], "drive_mode": [0, 1, 0, 0, 1, 0], "start_pos": [2029, 3984, 4065, 1123, 1036, 894], "end_pos": [3041, -2969, 5173, 2125, -98, 1969], "calib_mode": ["DEGREE", "DEGREE", "DEGREE", "DEGREE", "DEGREE", "LINEAR"], "motor_names": ["shoulder_pan", "shoulder_lift", "elbow_flex", "wrist_flex", "wrist_roll", "gripper"]}
  • 生成的校准文件main_leader.json的内容如下:
{"homing_offset": [-2049, 3795, -4211, -1976, 3122, -1379], "drive_mode": [0, 1, 0, 0, 1, 0], "start_pos": [2081, 3891, 4058, 2004, 3049, 1330], "end_pos": [3073, -2771, 5235, 3000, -2098, 2403], "calib_mode": ["DEGREE", "DEGREE", "DEGREE", "DEGREE", "DEGREE", "LINEAR"], "motor_names": ["shoulder_pan", "shoulder_lift", "elbow_flex", "wrist_flex", "wrist_roll", "gripper"]}
  • 校准过程如下:
Calibration file not found '.cache/calibration/so100/main_follower.json'
Connecting main follower arm.
Connecting main leader arm.
Missing calibration file '.cache/calibration/so100/main_follower.json'

Running calibration of so100 main follower...

Move arm to zero position
See: https://raw.githubusercontent.com/huggingface/lerobot/main/media/so100/follower_zero.webp
Press Enter to continue...

Move arm to rotated target position
See: https://raw.githubusercontent.com/huggingface/lerobot/main/media/so100/follower_rotated.webp
Press Enter to continue...

Move arm to rest position
See: https://raw.githubusercontent.com/huggingface/lerobot/main/media/so100/follower_rest.webp
Press Enter to continue...

Calibration is done! Saving calibration file '.cache/calibration/so100/main_follower.json'
Missing calibration file '.cache/calibration/so100/main_leader.json'

Running calibration of so100 main leader...

Move arm to zero position
See: https://raw.githubusercontent.com/huggingface/lerobot/main/media/so100/leader_zero.webp
Press Enter to continue...

Move arm to rotated target position
See: https://raw.githubusercontent.com/huggingface/lerobot/main/media/so100/leader_rotated.webp
Press Enter to continue...

Move arm to rest position
See: https://raw.githubusercontent.com/huggingface/lerobot/main/media/so100/leader_rest.webp
Press Enter to continue...

Calibration is done! Saving calibration file '.cache/calibration/so100/main_leader.json'
Activating torque on main follower arm.
Calibration is done! You can now teleoperate and record datasets!

  • 以上执行程序的参数含义:
      --robot.type=so100 : 指定机器人类型so100
      --robot.cameras='{}' : 用于配置机器人所搭载的摄像头
      --control.type=calibrate : 表明要对机器人进行校准操作
      --control.arms='["main_follower"]' : 指定要控制的从臂

请输入图片描述

  • 校准从臂生成文件main_follower.json内容如下:
    {"homing_offset": [-2013, 3136, -795, -1955, 1104, -1008], "drive_mode": [0, 1, 0, 0, 1, 0], "start_pos": [2066, 3159, 738, 1924, 1102, 898], "end_pos": [3037, -2112, 1819, 2979, -80, 2032], "calib_mode": ["DEGREE", "DEGREE", "DEGREE", "DEGREE", "DEGREE", "LINEAR"], "motor_names": ["shoulder_pan", "shoulder_lift", "elbow_flex", "wrist_flex", "wrist_roll", "gripper"]}

校准主臂:

  • 校准主臂(leader arm),每做好一个姿势,就按回车键。将主臂按顺序移动到以下位置
    python3 ~/lerobot/lerobot/scripts/control_robot.py \
      --robot.type=so100 \
      --robot.cameras='{}' \
      --control.type=calibrate \
      --control.arms='["main_leader"]'
  • 以上执行程序的参数含义:
      --robot.type=so100 : 指定机器人类型so100
      --robot.cameras='{}' : 用于配置机器人所搭载的摄像头
      --control.type=calibrate : 表明要对机器人进行校准操作
      --control.arms='["main_leader"]' : 指定要控制的主臂
  • 校准完成后的文件保存在当前目录
    ~/lerobot/.cache/calibration/so100/main_leader.json

请输入图片描述

  • 校准主臂生成文件main_leader.json内容如下:
    {"homing_offset": [-2077, 3873, -65, -1941, 3193, -1387], "drive_mode": [0, 1, 0, 0, 1, 0], "start_pos": [2109, 3869, 37, 1972, 3104, 1333], "end_pos": [3101, -2849, 1089, 2965, -2169, 2411], "calib_mode": ["DEGREE", "DEGREE", "DEGREE", "DEGREE", "DEGREE", "LINEAR"], "motor_names": ["shoulder_pan", "shoulder_lift", "elbow_flex", "wrist_flex", "wrist_roll", "gripper"]}

演示视频

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: lerobot-so100