
# 各机器人配置详解
本章节介绍各机器人支持的运动键、典型配置、运行时调用的目标SDK函数、是否实现set_gripper。
![](https://support.huaweicloud.com/sdkreference-cloudrobo/public_sys-resources/note_3.0-zh-cn.png)
✓ 代表支持，✗代表抛NotImplementedError/ValueError（运动键）或走no-op（夹爪键）
表1各机器人与标准键对照表 
| 适配器     | 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的内置适配器。
