更新时间:2026-08-05 GMT+08:00
分享

本地连接调试

R2C SDK已适配本体

当前R2C SDK已内置有SO-ARM101等机械臂的相关配置,请将在CloudRobo平台下载的配置文件放置到r2c_sdk_python/config目录下,可快速接入机械臂。

  1. 进入r2c_sdk_python目录下。
  2. 进入conda的lerobot环境。

    conda activate lerobot

  3. 配置so101机械臂参数。

    • 查看Follower臂的port并记录。
      lerobot-find-port 

      请根据界面提示拔出Follower臂USB信号线并在界面单击“Enter”键,可查看到Follower臂的端口号。

      Linux系统下,端口类似:

      /dev/ttyACM0

      Windows系统下,端口类似:

      COM1
    • 查看相机的设备号并记录。在当前运行命令的路径下会生成outputs/captured_images文件夹,可查看图片确定相机对应端口号。
      lerobot-find-cameras opencv

      Linux系统下,端口类似:

      /dev/video0

      Windows系统下,端口类似:

      0
    • 在R2C SDK主目录下,打开机器人配置文件config/robot_so101_lerobot_config.yaml,修改机器人当前相机设备号和so101从臂的id和port。
      Linux系统下:
      hardware:
         lerobot_config:
           type: so101_follower
           id: my_follower_arm         --修改成标定时设备的机械臂id
           calibration_dir: null
           # Replace with the actual serial device used by your SO101 robot.
          port: /dev/ttyACM0           --修改成查到的port
           cameras:
             front:
               type: opencv
               index_or_path: /dev/video0       --修改成查到顶部相机的设备号
               width: 640
               height: 480
               fps: 30       --修改为相机实际的fps,如不知道或没显示就保持默认30
            wrist:
               type: opencv
               index_or_path: /dev/video2         --修改成查到的腕部相机的设备号
               width: 640
               height: 480
               fps: 30       --修改为相机实际的fps,如不知道或没显示就保持默认30

      Windows系统下:

      hardware:
         lerobot_config:
           type: so101_follower
           id: my_follower_arm          --修改成标定时设备的机械臂id
           calibration_dir: null
           # Replace with the actual serial device used by your SO101 robot.
          port: COM1           --修改成查到的port
           cameras:
             front:
               type: opencv
               index_or_path: 0      --修改成查到顶部相机的设备号
               width: 640
               height: 480
               fps: 30       --修改为相机实际的fps,如不知道或没显示就保持默认30
            wrist:
               type: opencv
               index_or_path: 2         --修改成查到的腕部相机的设备号
               width: 640
               height: 480
               fps: 30       --修改为相机实际的fps,如不知道或没显示就保持默认30

  4. 执行如下命令完成机器人接入。

    python -m r2c_sdk.cloudroboclient --bundle config/配置文件名.zip --robot-config config/robot_so101_lerobot_config.yaml

    如无报错,即表示机器人接入CloudRobo平台成功,在CloudRobo平台的机器人列表页,可查看到该机器人状态变为在线。

使用skills适配本体

场景介绍

使用Coding Agent可以实现将任意机器人接入R2C。

前提条件

  1. 已经安装任意Coding Agent(如码道等)。
  2. python的最小样例(包括观测获取与动作执行),并能在机器人上运行,且提供三个安全的action样例。
    • 如果无最小样例,可以使用厂商提供的SDK示例让Coding Agent写一个。
    • 如果无Python版本的SDK或最小样例,可以让Coding Agent使用python重写。

通过skills快速接入步骤

  1. 将已下载的R2C SDK中的skills/r2c添加到项目级skills文件夹(项目根目录/.codeartsdoer/skills)或个人级skills文件夹(~/.codeartsdoer/skills)。
  2. 使用接入SKILL根据最小样例生成完整的R2C接入代码。(建议显式调用技能:/r2c根据@robot_minimal_test.py的样例来适配机械臂,机械臂的型号为{厂商的SDK或用户自定义型号})

    Coding Agent新增或修改文件应包含:

    • config/robot_{机械臂型号}_config.yaml。
    • examples/{机械臂型号}_cloud_adapter.py。
    • src/r2c_sdk/robots/{机械臂型号}_hardware_adapter.py。

  3. 打开调试开关。

    为了避免Coding Agent代码有问题导致机器人发生碰撞,在测试前请确认config/robot_{机械臂型号}_config.yaml中的dry_run字段为True。

    图1 dry_run字段

  4. 订阅观测验证,该流程用于验证机器人能正确执行动作。

    打开两个终端,并依次分别执行下列命令:

    python examples/observation_subscriber.py --project-id test_project --device-id {机械臂型号} --client-id obs_sub  --endpoints tcp/127.0.0.1:7447 --endpoint-role  listen
    python -m r2c_sdk.cloudroboclient --project-id test_project --device-id {机械臂型号} --robot-config config/robot_{机械臂型号}_config.yaml

  5. 发布动作测试,该流程用于验证机器人能正确执行动作。

    python examples/flexiv_cloud_adapter.py --project-id test_project --device-id {机械臂型号} --client-id obs_sub
    python -m r2c_sdk.cloudroboclient --project-id test_project --device-id {机械臂型号} --robot-config config/robot_{机械臂型号}_config.yaml

  6. 测试完成后,关闭dry_run模式,然后启动机器人客户端(接入CloudRobo平台)。

    python -m r2c_sdk.cloudroboclient --bundle config/cert_xxx.zip --robot-config config/robot_{机械臂型号}_config.yaml

机器人接入官方R2C SDK源码技术规范

机器人厂商可按该步骤提供机器人的适配代码,可预置于后续版本r2c_sdk源码中。

  • 准备工作

    在开始前,需准备两类文档,既作为Skill的输入源,也会在R2C官网的帮助中心页面展示。文档形式支持文本或在线链接:

    1. 机器人产品说明书
    2. 机器人SDK使用手册

    依赖组件清单:手册需列出运行该SDK所需的额外依赖组件(如有),包括需通过Linux包管理器、Conda、PyPI或Git源码安装的组件,并提供相应的安装指引,如安装命令、后处理步骤、环境变量设置等。

    Python最小可行示例:手册应提供可在机器人上运行的Python最小示例,其中包含3个安全的动作示例,涵盖状态观测获取与动作执行。若无现成Python示例,可使用其Python版本SDK编写;若无Python版本SDK,可通过Coding Agent以下述任一方式自动生成Python版本SDK:跨语言调用原SDK,或将原SDK重写为Python版本。

  • 适配代码生成

    依托上述文档,可使用Coding Agent,结合最新版r2c_sdk源码中的skill,自动生成以下三类适配代码文件:

    1. 机器人配置代码文件:config/robot_xxx_config.yaml
    2. 云适配器代码文件:examples/xxx_cloud_adapter.py

      用于在本地启动Mock服务,模拟机器人接入平台后的数据收发与交互。

      需包含机器人所在空间的三个安全坐标,确保在该坐标下机器人不会发生碰撞,且无奇异解的关节角或末端姿态。同时,云适配器中的坐标系需与机器人适配器保持一致。

    3. 机器人适配器代码文件:src/r2c_sdk/robots/xxx_adapter.py

      若适配器代码量较大,可将其组织为src/r2c_sdk/robots/xxx目录,并将适配器代码文件命名为xxx_adapter.py。

      代码需支持dry_run(空运行)模式;同时,机器人适配器代码中的坐标系需与云适配器保持一致。

上述三类适配代码文件生成后,可联系华为云官方团队将其预置于后续版本r2c_sdk源码中,随SDK一同发布,以便开发者通过R2C直接调用该预置机器人。

相关文档