切换机器人

在工作空间和启动文件中更换机器人型号。

前提条件

  • 工作空间已克隆并初始化

  • 目标机器人的描述已可用

步骤

1. Initialize Robot Description

如果机器人描述尚未初始化:

在 open-deploy-ws 中优先用 ./init_repo.sh,让 src/robot-descriptions/ 下嵌套模块与 submodules_visibility.conf 一致(manipulator/Dobot、manipulator/ARX 等)。不要 git submodule update --init --recursive。

2. Rebuild

cd ~/open-deploy-ws
colcon build --symlink-install
source install/setup.bash

3. Launch with New Robot

ros2 launch ocs2_arm_controller demo.launch.py robot:=<robot_name>

机器人名称

品牌

本文档集使用的 robot:= 键

来源

Dobot

cr5

demo.launch.py 默认值

方舟无限(ARX)

arx_acone(双臂)、arx_lift2s(Lift 2S 全身)

ARX how-to / 描述包

高擎(HighTorque)

panthera_ht

panthera-ht README

Dyna

taku

robot_descriptions feature/agilex 上的 taku_description;控制用 split_body.launch.py / full_body.launch.py

使用与你已初始化的 {key}_description 对应的键。

示例:从 Dobot 切换到 ARX

# Demo default robot key is cr5 (demo.launch.py)
ros2 launch ocs2_arm_controller demo.launch.py

# After init has ARX descriptions, launch Acone (dual-arm, not Lift 2S)
ros2 launch ocs2_arm_controller demo.launch.py robot:=arx_acone

arx_acone 是 Acone(双臂)。全身 ARX Lift 2S(arx_lift2s)在 arx-lift2s 分支上使用 split_body.launch.py / full_body.launch.py — 见 ARX Lift 2S。Taku(taku)在描述切到 feature/agilex 后使用同一套分体 / 全身启动:公开 mock 是 split_body.launch.py;full_body.launch.py 需要私有 ocs2_wbc_controller 子模块 — Taku / feature/agilex。高擎 Panthera HT 的启动名是 panthera_ht — 见 高擎 Panthera HT。cr5 / arx_acone / panthera_ht 仍用 demo.launch.py。

末端执行器(type / left_type / right_type)

没有 gripper:= 参数。末端由 robot_common_launch 选择:

  • 对称末端:type:=<eef_key>

  • 左右不同:同时传 left_type:= 与 right_type:=;此时不要再传 type:=(create_eef_side_launch_arguments())

  • type 也可以是臂拓扑 left / right / dual(不会展开成 left_type / right_type)

  • OCS2 的 demo / split_body / full_body 通过 create_robot_profile_launch_arguments() 声明这些参数。basic_joint_controller 的 demo.launch.py 只声明 type。

use_profile_eef:=true(默认)时应用 profile YAML 的 defaults.end_effectors。设 use_profile_eef:=false 以强制使用命令行键。合并顺序:CLI > profile > xacro 默认值。力传感器(ft / left_ft / right_ft)和 TCP 偏移是独立项,除非 CLI 覆盖,否则始终使用 profile。

# README: ignore profile EEF, set L/R from CLI
ros2 launch ocs2_arm_controller demo.launch.py \
  robot:=<robot_name> \
  robot_profile:=/path/to/machine_profile.yaml \
  use_profile_eef:=false \
  left_type:=rg75 right_type:=linkerhand_o7

完整表格见 robot-descriptions-common(robot_common_launch README)。

验证

  • RViz 显示正确的机器人模型

  • /joint_states 中的关节名称与新机器人匹配

  • 控制器接受适合该机器人的指令

故障排除

找不到软件包

colcon build --symlink-install
source install/setup.bash

URDF 错误

查看描述软件包的 README 以了解依赖项。

关节限位不正确

每台机器人在 URDF 中都有自己的关节限位。请确认目标位姿在限位范围内。