基于 Toradex 硬件和 ROS 2 加速机器人原型开发:SiBrain 的技术视角

引言:

解决现代机器人系统的技术挑战

机器人系统对嵌入式计算提出了严峻要求,它需要实现低延迟实时通信、多传感器集成以及确定性性能,这些功能都需在复杂的中间件栈中协同运作。ROS 2 凭借其数据分发服务(DDS)通信架构、模块化软件生态系统以及对嵌入式 Linux 的支持,已成为机器人领域的事实标准。

本文记录了我们将基于 ROS 2 的机器人原型移植至 Toradex Verdin iMX8M Plus 模块的技术探索过程。该平台凭借其神经网络处理单元(NPU)、异构核心架构及相机接口特性,非常适合机器人应用开发。

本文并按步讲解的机器人教程,而是旨在记录我们在 Toradex 硬件上对 ROS 2 工作流程的工程评估。我们将重点分析实际验证过程中的成功经验与难点,并从开发速度、可维护性和部署效率等维度,对比基于 Yocto 的构建方案与 Torizon 容器化方案的差异。文中同时提供了关键步骤的示例命令,以便读者复现实验过程。

ROS 2 是什么以及我们为何使用它

ROS 2 并非传统意义上的操作系统,而是一个帮助开发者构建机器人应用的开源软件框架。可以这样理解:Linux 是处理器的操作系统,而 ROS 2 则是实体机器人的"操作系统"。

ROS 2 在机器人领域被广泛采用的一个重要原因在于其对实时通信的支持。这一特性通过 DDS 实现,使开发者能够根据不同任务需求灵活调整消息传递机制。此外,ROS 2 还拥有庞大的生态系统,提供涵盖导航、感知、可视化及硬件驱动等领域的即用型功能包。

在我们的项目中,我们选择了 ROS 2 Humble 版本,因为它提供长期支持,并且能在基于 ARM 架构的嵌入式硬件( 如 Toradex Verdin iMX8M Plus)上良好运行。采用 ROS 2 使我们能够更轻松地组织机器人软件、集成多种传感器并复用现有工具,同时保持构建自定义功能的灵活性。

起点:Yocto + ROS 2

在我们的概念验证机器人中,我们采用了以下技术栈:

  • 基于 meta-ros 层的 Yocto Scarthgap 5.0.

  • ROS 2 Humble 发行版 .

  • 搭载多种板载传感器:

    • DHT20(温湿度传感器)

    • 环境光传感器

    • IMU(加速度计、陀螺仪、磁力计)

    • 超声波测距模块

    • 室内激光雷达(LiDAR)

    • USB 摄像头

我们将应用程序打包在基于 Ubuntu 的容器中,采用 Debian 构建方式,从而实现了快速迭代开发。该机器人在搭载 Verdin iMX8M Plus 模块的 Toradex DahliaMallow 载板上成功运行。

Yocto 项目面临的挑战

我们选择从Yocto 起步,因为嵌入式开发团队先前已具备相关经验。然而 Yocto 在提供灵活性的同时,也带来了复杂性:

  • 需为定制传感器打内核补丁与驱动集成;

  • 维护自定义 Yocto 层需要大量管理成本;

  • 系统更新必须通过人工方式管理。

虽然最终实现了功能需求,但显然我们重复构建了 Toradex 通过 Torizon OS 已提供的工具链。

转向 Torizon OS

Torizon OS 是 Toradex 推出的开源工业 Linux 平台,基于 Yocto 构建,但专为简化开发与维护而设计。

将 ROS 2 机器人迁移至 Torizon 后,我们实现了以下核心优势:

  1. 稳定的基础操作系统

    • 长期支持(LTS)并定期提供安全补丁。

    • 无需维护自定义 Yocto 构建版本。

  2. 容器化部署方案

    • 将 ROS 2 封装于 Docker 容器中运行

    • 彻底消除与基础操作系统的环境冲突

    • 实现开发设备与部署设备的环境完全一致

  3. 开发者友好型工具链

  4. 面向未来的 OTA 更新机制

    • 内置的 OTA功能支持应用程序与系统更新

    • 安全启动SBOM 满足合规要求。

由此,我们的迭代周期大幅缩短,无需重建完整 Yocto 镜像,现在只需在基 于Ubuntu 的 ROS 容器内开发,并通过 Torizon 在数分钟内完成部署。

在 Toradex Torizon上运行自定义和预构建的 ROS 2 软件包

得益于 Torizon 对 Docker 的支持,运行预构建及自定义 ROS 2 软件包变得十分简便。以下是详细步骤指南:

  1. 前提条件

  2. 刷写 Torizon OS 系统

    • Username: torizon

    • Password: torizon

    • 使用Toradex Easy Installer从在线服务器刷写Torizon OS

    • 启动开发板并打开调试控制台

    • 录系统:

  3. 运行预构建的 ROS 2 软件包

    步骤一:拉取 Sibrain 预构建的 ROS 2 基础镜像

    复制代码
    docker pull sibrain/rosbase

    第二步:使用 host 网络运行容器

    复制代码
    docker run --network host -it sibrain/rosbase:latest

    第三步:设置 ROS 环境

    复制代码
    source /opt/ros/humble/setup.bash 

    第四步:运行演示对话节点

    复制代码
    ros2 run demo_nodes_py talker

    从您的主机(在同一网络中):

    复制代码
    ros2 topic list  
    ros2 topic echo /chatter
  4. 运行自定义 ROS 2 软件包

    我们使用两个容器:

    第一步:拉取所需镜像

    复制代码
    docker pull sibrain/rosbase
    docker pull sibrain/hello_ros  

    第二步:启动容器

    复制代码
    docker run -d --name rosbase_running --network host -v ros_opt:/opt -it sibrain/rosbase:latest  
    docker run -d --name hello_ros --network host -v ros_opt:/opt -it sibrain/hello_ros  

    第三步:构建自定义 ROS 包

    复制代码
    docker exec -it hello_ros bash  
    cd src/  
    source /opt/ros/humble/setup.bash  
    colcon build  
    source install/setup.bash  

    第四步:运行自定义节点

    复制代码
    ros2 run ros_py_pkg py_node  
    From your host PC:
    ros2 topic list  
    ros2 topic echo /helloros  
    • rosbase → ROS 环境配置容器

    • hello_ros → 自定义软件包容器

该工作流程支持在 Toradex 硬件上快速测试通用及特定应用的 ROS 软件包。

经验总结

对于刚开始使用 Toradex 硬件的机器人团队,我们强烈建议采用 Torizon OS结合 ROS 2 容器方案,以加速原型开发并缩短产品上市周期。Torizon O S通过快速原型构建、持续更新维护和 OTA 部署功能有效降低了系统复杂性。若沿用最初基 于Yocto 构建的方案则无法实现这些优势。此外,ROS 2 容器还提供了卓越的可复现性、跨平台移植能力以及极简的系统集成工作量。

下一步计划

SiBrain 正与 Toradex 合作,致力于:

  • Torizon 演示库中发布 ROS 2 容器。

  • 为 Torizon IDE提供 ROS 2 项目模板。

  • 在行业展会上展示即将推出的演示案例,包括一款 ROS 2 无人机原型。

通过将 ROS 2 与 Torizon 结合应用于 Toradex 硬件平台,您可专注于机器人智能开发与创新,无需耗费精力维护底层基础设施。

更多内容

同时,我们建议阅读《How Torizon and ROS 2 Empower your Robotics Projects》博客文章,深入了解如何借助 Torizon 启动 ROS 2 项目,并参考 SiBrain 关于机器人原型逐步开发流程的博客文章。

相关推荐
YQ_014 小时前
ROS 2 / Gazebo / Autoware 一键清理与切换 Domain 使用指南
机器人
V搜xhliang02466 小时前
AI大模型在临床决策与手术机器人领域的应用
大数据·人工智能·机器人
chase。8 小时前
【学习笔记】让机器人“边想边动”——实时动作分块流策略的执行方法
笔记·学习·机器人
TMT星球9 小时前
智元A3发布即进租赁平台,擎天租成为机器人的“首发应用市场”
运维·机器人
鲁邦通物联网9 小时前
绕开原厂协议:非侵入式梯控改造的OT架构解耦与状态机设计
机器人·机器人梯控·agv梯控·非侵入式采集·机器人乘梯·机器人自主乘梯·agv机器人梯控
CodeCraft Studio9 小时前
高性能图表库SciChart助力机器人实现实时AI驱动的性能提升
人工智能·信息可视化·机器人·数据可视化·scichart·高性能图表库·wpf图表库
才兄说11 小时前
机器人二次开发特殊监管区域巡检?电量低自动返充
机器人
lisw0511 小时前
家政机器人发展现状、挑战与机遇!
人工智能·机器学习·机器人
Deepoch12 小时前
VLA分布式协同中枢:Deepoc开发板激活采摘机器人集群智能
人工智能·科技·机器人·具身模型·deepoc·采摘
chase。12 小时前
【学习笔记】训练时动作条件化:一种更高效的机器人实时控制方案
笔记·学习·机器人