基于 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 Dahlia 与 Mallow 载板上成功运行。

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 更新机制

由此,我们的迭代周期大幅缩短,无需重建完整 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 关于机器人原型逐步开发流程的博客文章。

Read more

WorkBuddy 安装使用完全指南:腾讯版“小龙虾“,一句话让 AI 替你干活

不用部署云服务器,不用写代码,下载安装即可使用。WorkBuddy 是腾讯推出的 AI 原生桌面智能体工作台,让"一句话完成复杂办公任务"真正成为现实。 一、WorkBuddy 是什么? 1.1 一句话定义 WorkBuddy 是腾讯云推出的 AI 原生桌面智能体(Desktop AI Agent)工作台,基于腾讯 CodeBuddy 同源架构构建。它不是一个只会聊天的对话框,而是一个能听懂人话、自主思考、直接操作你电脑上文件的 AI 同事。 你只需用自然语言描述需求,WorkBuddy 就能自动规划、拆解、执行多步骤任务,直接交付可验收的成果——Excel 报表、PPT 演示文稿、调研报告、数据分析图表,应有尽有。 1.2

AI实践(8)Skills技能

AI实践(8)Skills技能

AI实践(10)Skills技能 Author: Once Day Date: 2026年3月18日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: AI实践成长_Once-Day的博客-ZEEKLOG博客 参考文章:Prompt Engineering Guide提示词技巧 – Claude 中文 - Claude AI 开发技术社区Documentation - Claude API DocsOpenAI for developersSkills(技能) – Claude 中文 - Claude AI 开发技术社区模式库:把工程经验沉淀为 Skills – Claude 中文 - Claude AI 开发技术社区持续学习:把会话复盘沉淀成 Skills – Claude

2026年AI Agent实战:从玩具到生产力的落地手册(附源码)

2026年AI Agent实战:从玩具到生产力的落地手册(附源码)

欢迎文末添加好友交流,共同进步! “ 俺はモンキー・D・ルフィ。海贼王になる男だ!” * 前言 * 目录 * 一、AI Agent 的核心架构 * 1.1 什么是AI Agent? * 1.2 2026年Agent技术栈全景 * 二、从零搭建生产级Agent框架 * 2.1 项目结构设计 * 2.2 核心代码:Agent基类 * 2.3 记忆管理系统 * 三、三大核心技术实现 * 3.1 ReAct框架:推理+行动协同 * 3.2 工具调用系统 * 3.3 任务规划器 * 四、实战案例:智能客服Agent * 4.1 场景分析

Flutter 三方库 fast_base 的鸿蒙化适配指南 - 实现极速的基础架构搭建、支持响应式 Repository 封装与业务模型注入

Flutter 三方库 fast_base 的鸿蒙化适配指南 - 实现极速的基础架构搭建、支持响应式 Repository 封装与业务模型注入

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 fast_base 的鸿蒙化适配指南 - 实现极速的基础架构搭建、支持响应式 Repository 封装与业务模型注入 前言 在进行 Flutter for OpenHarmony 的快速迭代码开发中,重复编写数据转换、异常处理、Repository 模板是极大的资源浪费。fast_base 是一个专注于提升底层基建效率的类库。它通过一套高度封装的 API,让开发者在几分钟内就能构建起一套具备错误处理和响应式特性的业务层。本文将探讨如何在鸿蒙端利用 fast_base 打造敏捷开发的“特种兵”级架构。 一、原理解析 / 概念介绍 1.1 基础原理 fast_base 采用了典型的分层架构思想。它提供了一套基类(Base Classes),内部集成了对异步流的自动管理、

阿里云全品类 8 折券限时领,建站 / AI / 存储通用 立即领取