添加机器人

新机器人如何进入本技术栈。复制已有描述包以及仓库里已有的 launch/xacro 模式。没有 hardware:=mock。launch 文件和配置名以该包 README 列出的为准。

权威来源

1. ROS description package

公开品牌树作为子模块挂在 robot_descriptions 下(common、manipulator/ARX、manipulator/Dobot 等)。在 open-deploy-ws 中,./init_repo.sh 之后同一棵树是 src/robot-descriptions/。不要递归 init。

复制真实的包。Acone(该仓库)大致是:

arx_acone_description/
├── CMakeLists.txt
├── package.xml
├── README.md
├── xacro/
│   ├── robot.xacro
│   ├── arm_mount.xacro
│   ├── component.xacro
│   └── ros2_control/          # hardware plugin branches
├── config/
│   ├── ocs2/                  # task .info (controller loads these, not a separate ocs2_arm_config.yaml)
│   └── ros2_control/          # optional {hardware}.yaml overlay
└── meshes/

启动键是 robot:=<key>,对应包名 {key}_description(robot_common_launch)。demo.launch.py 默认是 cr5。

Acone xacro / common launch 中存在的 hardware:= 取值:mock_components(默认)、gz、isaac、real。没有 hardware:=mock。插件见 本技术栈中的 ros2_control。使用该机器人 xacro/ros2_control/*.xacro 中的插件类或已有厂商 HI README(ARX hardware:=real 见 arx-ros2-control)。

控制器实际加载的 OCS2 文件:{robot_pkg}/config/ocs2/<info>.info(ocs2_arm README)。规划 URDF 由同一套 xacro 经 robot_common_launch 生成,不是静态 urdf/*.urdf。

末端 / 力传感器 / TCP:type / left_type / right_type(不是 gripper:=)。

底盘 / 舵轮 / collider:=simple(feature/agilex skill)

仅在 feature/agilex 上,skills 索引目前只列了一个 skill: split-chassis-glb(SKILL.md)。该 skill 的规范示例是 rokae_inex_description。

它做什么(概览;完整步骤以 skill 为准):

  • 把一个装配好的底盘 GLB 拆成 chassis / steer / wheel 网格,原点已对齐关节

  • 写舵轮 xacro(在 fl fr rl rr 复用同一套 steer + wheel;右侧模块 yaw 180°,不镜像网格)

  • 用 glTF 节点 AABB 加 collider:=simple 盒子(不是 accessor 的原始 min/max)

如何在 .cursor/skills/ 下加更多 skill:同一份 skills README(目录 .cursor/skills/)。索引目前只有 split-chassis-glb。

包布局 / 子模块: 共用子模块表看 README(main)(common、manipulator/ARX 等)。新 AgileX 或珞石 INEX 用 README(feature/agilex)。该分支目前列出的路径(按原文):

类别

feature/agilex 上的路径

移动操作臂

manipulator/AgileX/cobot_magic_v1_description(Cobot Magic V1)

移动操作臂

manipulator/AgileX/split_aloha_description(Split Aloha)

移动操作臂

manipulator/AgileX/cobot_magic_v2_description(Cobot Magic V2)

操作臂

manipulator/AgileX/piper_description(Piper;main 上也有)

操作臂

manipulator/AgileX/nero_description(Nero)

操作臂

manipulator/AgileX/open_nero_description(Open Nero)

轮式人形

humanoid/Rokae/rokae_inex_description(INEX;split-chassis-glb 规范例)

main 仍列出 AgileX Aloha(manipulator/AgileX/agilex_aloha_description),并且没有 .cursor/skills 目录。

Taku(Dyna / DVT1)也在 feature/agilex 仓内 humanoid/Dyna/taku_description。可视化用 robot_common_launch humanoid.launch.py robot:=taku。控制用 split_body.launch.py / full_body.launch.py,并传 robot:=taku(包 README §3.1 / §3.2)— 不是 demo.launch.py。公开 mock 是 split_body.launch.py;full_body.launch.py 需要私有 ocs2_wbc_controller 子模块。它不是该分支 README 品牌表中的一行。没有精简的 open-deploy-ws Taku 分支 — open-deploy-ws 配置。

2. Wire it into a deploy workspace

在 open-deploy-ws 中:

  1. ./init_repo.sh,让嵌套模块与 submodules_visibility.conf 一致。

  2. 若新增嵌套子模块:先在父仓加 Git submodule,再在 conf 加一行 parent_dir|relative_path|public 或 private — 子模块可见性。

  3. colcon build --symlink-install。精简分支(arx-lift2s、panthera-ht):优先 ./quick_start.sh(构建成功后它会 source install/setup.bash)。在 main 上,colcon 之后在启动终端 source install/setup.bash(标准 ROS overlay;没有额外环境脚本)。

robot-descriptions-arx README 也写了把品牌仓加为 src/robot-descriptions-arx,或在伞形仓下 git submodule update --init manipulator/ARX。在 open-deploy-ws 里优先用部署工作区的 init 脚本。

arms_ros2_control 里已有的控制器:ocs2_arm_controller 的 demo.launch.py / split_body.launch.py / full_body.launch.py,以及 basic_joint_controller。Acone README 示例(工作区 overlay 之后):

ros2 launch robot_common_launch manipulator.launch.py robot:=arx_acone
ros2 launch ocs2_arm_controller demo.launch.py robot:=arx_acone

launch 文件和驱动层类名来自你复制的那个包及其厂商 HI README。

3. Isaac USD (FaSim-Isaac skill)

Isaac 导入仍走 FaSim-Isaac skill isaac-urdf-usda-ocs2(不是描述侧的 split-chassis-glb skill):

该 skill 覆盖的内容(概览;完整步骤以 skill 为准):

  1. 拆分 / 展开 URDF 或 xacro;记录安装位姿。

  2. Isaac 5:Import URDF → USD。Isaac 6:Asset Transformer → USDA。

  3. Robot Assembler(子 → 父;一个 articulation root)。

  4. 根 variantSets + 本地 adapter payload(payloads/Physics/{none,physics,physx,mujoco}.usda 等)。

  5. PhysX 与 Newton/MuJoCo 层分开;主机侧 topic_based_ros2_control + hardware:=isaac。

资产布局:robot_usds README(robots/manipulators/…、robots/mobile_manipulator/…)。FaSim-Isaac 检出后:./init.sh(子模块 + 可选 Isaac ROS 2 工作区),然后 ./run.sh。不要手写 Isaac PATH 或 ~/.bashrc overlay。见 Isaac Sim。