先给核心结论:ROS2 可以跑在机器人板端,也可以电脑 + 机器人分布式协同;不存在唯一标准答案,看开发模式。 如果你的硬件:机器人 = RDK X5(板载 Ubuntu22.04)

方案 1:学习机模式:【全栈部署:ROS2 完整装在机器人本体(RDK X5)】✅亚博镜像默认方案开发环境与目标环境深度耦合。

架构

RDK X5(机器人):安装 Ubuntu22.04 + ROS2 Humble + yahboomcar 全套源码 电脑只做:SSH 远程登录、查看日志、调试(电脑不装 ROS2 也可以)

数据流

手柄 USB 插在 RDK X5 上 → RDK 本地运行 joy_node、yahboom_joy_M1、底盘驱动 Mcnamu_driver_M1,全部节点运行在机器人板卡。

优点

  1. 脱离电脑独立运行! 拔掉网线、断开电脑,小车依旧能用手柄遥控;
  2. 亚博官方镜像原生就是这套方案,所有 launch、驱动、硬件适配预先调好;
  3. 硬件访问最简单:USB 手柄、串口底盘、雷达、摄像头直接本地访问设备 /dev/*

缺点

  1. RDK X5 算力有限,一边跑视觉 AI+SLAM+ROS,负载容易拉高;
  2. 代码编译在开发板上,ARM 平台编译速度比台式电脑慢;
  3. 更严重的问题:所有程序存放在机器人本体的SD卡上,重新刷新机器人镜像,原先的开发环境的内容和数据全部丢失!!!

👉 Rosmaster现在正在使用的模式!

方案 2:仿真模式:【分布式架构:PC 电脑运行 ROS2,机器人只跑底层驱动】- 学习模式模式,把PC机当成ROS2分布式系统的一个节点,机器人本体只是运动控制节点。大脑由PC机完成。

架构

  • 台式机 / 笔记本(x86 Ubuntu):安装 ROS2 Humble,运行上层节点:joy 解析、导航、AI 算法
  • RDK X5(机器人):仅运行底盘驱动节点 Mcnamu_driver_M1,只负责接收 /cmd_vel、控制电机、读取传感器 两者处于同一局域网,依靠 DDS 跨机通信

优点

PC 算力强,编译代码快,复杂算法放在电脑跑,减轻开发板压力;

缺点

  1. 必须保持网线 / WiFi 网络连接!断网小车立刻失控;
  2. 跨主机 DDS 网络配置麻烦,容易出现:节点互相看不见(DomainID、防火墙、组播问题);
  3. USB 手柄只能插电脑,不能插机器人;硬件跨设备访问复杂;

方案 3:产品模式:PC 仅作为开发编译机,机器人仅运行编译后产物(正式产品常用)

电脑:源码编写、colcon build 编译 把编译好的install文件夹传到 RDK X5;机器人不再保留源码,只运行程序。 适合最终量产,开发阶段很少用。

针对Rosmaster M2的学习场景【选型建议】

学习调试、日常手柄遥控、室外小车测试

👉 维持现状:ROS2 全部跑在 RDK X5 机器人上 优势:断开电脑独立工作,不用折腾网络分布式通信,完美适配亚博整套驱动。

后续做 SLAM 建图、自主导航、大模型视觉推理

可以考虑分布式:导航 / 视觉大算法跑 PC;底盘驱动留在机器人。

高频疑惑解答

Q1:我电脑 Windows,能不能不装 Ubuntu,远程开发?

可以。Windows 安装 MobaXterm/VSCode 远程 SSH 连接 RDK,代码编写、命令操作全部远程在开发板执行,电脑无需安装 ROS2。

Q2:为什么很多人喜欢电脑装 ROS2?

纯仿真开发(turtlesim、Gazebo 仿真),不需要实体机器人;仿真环境天然运行在 PC。

Q3 关键避坑(对应上一个问题:节点看不到)

如果你想尝试分布式双机 ROS2: 两台设备必须:

  1. ROS_DOMAIN_ID 一致
  2. 同局域网、关闭防火墙
  3. 相同 ROS2 发行版(全部 Humble,不能一边 Humble 一边 Jazzy) 一旦配置失误,就会出现:PC 能看到本地节点,看不到机器人节点。

极简总结对照表

表格

部署方式 ROS2 位置 小车能否脱离电脑独立运行 适用场景
本地一体式(亚博默认) 机器人 RDK X5 ✅ 可以 手柄遥控、真机调试、户外测试(推荐你当前使用)
分布式双机 PC + 机器人各跑部分节点 ❌ 断网失效 大型算法、仿真 + 真机联合测试
纯 PC 仿真 台式电脑 ❌ 不需要实体车 算法前期仿真验证
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐