各机器人配置详解
本章节介绍各机器人支持的运动键、典型配置、运行时调用的目标SDK函数、是否实现set_gripper。
✓ 代表支持,✗代表抛NotImplementedError/ValueError(运动键)或走no-op(夹爪键)
| 适配器 | pose_euler | pose_quat | joints | gripper数字 | gripper字符串 |
|---|---|---|---|---|---|
| dummy | ✗ | ✗ | ✓ | ✗(no-op) | ✗(no-op) |
| lerobot | ✗ | ✗ | ✓ | ✗(no-op) | ✗(no-op) |
| flexiv | ✓ | ✗ | ✓ | ✓ | ✓ |
dummy-仿真/单元测试用
- 支持键joints(只此一种,任意长度)
- 不实现set_gripper(走no-op)
典型配置
hardware:
type: "dummy"
config:
joint_names: ["j1", "j2", "j3", "j4", "j5", "j6"]
commands:
go_home:
type: go_home
joints: [0.0, 0.0, 0.0, 0.0, 0.0, 0.5] go_home触发后调用DummyRobotHardwareAdapter.move_to(joints=...),内部走send_action({"joint_target": [v, ...]})。
仿真模式下不会真实驱动硬件,适合端到端流程联调。
lerobot-LeRobot系列(so101等)
- 支持键joints(list 形式,顺序对应joint_names)
- 不实现set_gripper(走no-op)
典型配置
hardware:
type: "lerobot"
config:
robot:
type: "so101"
port: "/dev/ttyACM0"
joint_names: ["shoulder_pan", "shoulder_lift", "elbow", "wrist_1", "wrist_2", "wrist_3", "gripper"]
commands:
go_home:
type: go_home
joint_names:
- shoulder_pan.pos
- shoulder_lift.pos
- elbow_flex.pos
- wrist_flex.pos
- wrist_roll.pos
- gripper.pos
joints: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] LeRobot的gripper是机械结构上的一个独立关节,不需要单独走set_gripper 接口,直接给到joints列表的对应位置即可。
flexiv-Flexiv Rizon 4(唯一带夹爪的实现)
- 支持键pose_euler/joints
- 实现set_gripper(走vendor的Flexiv-GN01夹爪)
典型配置(pose + 夹爪宽度)
hardware:
type: "flexiv"
config:
robot_sn: "Rizon4-062833"
gripper_name: "Flexiv-GN01"
gripper_open_width: 0.09 # 夹爪完全打开(m)
gripper_close_width: 0.012 # 夹爪完全闭合(m)
gripper_velocity: 0.10
gripper_force_limit: 20.0
commands:
go_home:
type: go_home
pose_euler: [0.5, 0.0, 0.3, 0.0, 3.14, 0.0] # 米 + 弧度
gripper: 0.02 # 可选,目标宽度(m) gripper键接受两种值,分为:
- 数字
set_gripper(width=<float>),移动到指定宽度。
- 字符串
"open" / "close":set_gripper(action="open"|"close"),移动到gripper_open_width或gripper_close_width。
move_to走Flexiv RDK的execute_primitive调用;set_gripper内部调用_move_gripper(width)。
flexiv是SDK内唯一实现set_gripper的内置适配器。