基于 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

AI入门系列:人工智能ABC:AI核心概念速通教程

AI入门系列:人工智能ABC:AI核心概念速通教程

前言 记得刚开始学习人工智能的时候,我被各种专业术语搞得晕头转向。什么"神经网络"、“深度学习”、“监督学习”、“无监督学习”,听起来都很高大上,但就是搞不清楚它们之间的关系。 有一次,我向一位AI专家请教,他用了一个很形象的比喻:"学习AI就像学习开车,你不需要先了解发动机的工作原理,但需要知道方向盘、油门、刹车的作用。"这句话让我茅塞顿开。 所以,在这篇文章中,我想用最通俗易懂的语言,带大家快速了解AI的核心概念。我们会像搭积木一样,从最基本的概念开始,逐步构建起对AI的整体认识。 AI是什么?一个简单的定义 AI,全称人工智能,就是让机器表现出智能行为的技术。 但是,这个定义太抽象了。让我们用一个生活中的例子来理解: 想象你有一个智能音箱,你对它说:"今天天气怎么样?"它回答:"今天晴,最高温度25度。"这就是一个AI系统在工作。 它做了什么?

OpenClaw 实操指南 07:飞书 CLI 开源:让 AI 真正接管你的飞书全流程

OpenClaw 实操指南 07:飞书 CLI 开源:让 AI 真正接管你的飞书全流程

2026年3月28日,飞书官方开源larksuite/cli(v1.0.0),以200+命令、19个AI Agent Skills,将飞书2500+开放API封装为命令行接口,面向人类开发者与AI Agent双用户,重构办公协作的操作范式。这不仅是工具升级,更是飞书从“GUI服务人”到“GUI+CLI双态并行”的战略跃迁——GUI给人交互,CLI给AI执行,让AI真正成为办公的“执行者”而非“旁观者”。 一、飞书CLI是什么:从API到命令行的能力跃迁 1. 核心定位与架构 飞书CLI是官方开源、MIT协议、免费商用的命令行工具,核心定位是让AI Agent直接操控飞书全量数据与业务,而非仅做信息查询。其三层架构清晰划分能力边界: * Shortcuts层:高频快捷命令(如lark-cli calendar +agenda查今日日程),降低人类使用门槛。 * API Commands层:200+

如何快速掌握WhisperLiveKit:从零开始的AI语音识别终极指南

如何快速掌握WhisperLiveKit:从零开始的AI语音识别终极指南 【免费下载链接】WhisperLiveKitReal-time, Fully Local Speech-to-Text and Speaker Diarization. FastAPI Server & Web Interface 项目地址: https://gitcode.com/GitHub_Trending/wh/WhisperLiveKit WhisperLiveKit是一款强大的实时本地语音识别与说话人分离工具,它提供FastAPI服务器和Web界面,让你轻松实现高质量的语音转文本功能。本文将带你从零开始,快速掌握这款AI语音识别工具的使用方法和核心功能。 🚀 什么是WhisperLiveKit? WhisperLiveKit是一个开源项目,专注于提供实时、完全本地化的语音转文本和说话人分离功能。它不仅支持多种语言的实时转录,还能区分不同说话人,为会议记录、视频字幕生成等场景提供了强大的技术支持。 核心功能亮点 * 实时语音识别:低延迟处理,实现近乎实时的语音转文本 * 说话人分离:

Nanbeige 4.1-3B Streamlit WebUI实战案例:适配Qwen/Llama的通用改造方法

Nanbeige 4.1-3B Streamlit WebUI实战案例:适配Qwen/Llama的通用改造方法 你是不是也厌倦了那些千篇一律、界面呆板的AI对话界面?侧边栏挤满了按钮,头像方方正正,聊天记录像代码一样堆叠在一起,毫无美感可言。 今天,我要分享一个完全不同的方案——一个专为Nanbeige 4.1-3B模型打造的极简WebUI。它看起来就像你手机里的短信应用,或者二次元游戏里的聊天界面,干净、清爽、充满现代感。 更重要的是,这个方案的核心思路是通用的。无论你是用Nanbeige、Qwen还是Llama模型,只要稍作调整,就能拥有同样惊艳的交互体验。接下来,我就带你一步步了解这个项目的核心亮点,并分享如何将它适配到其他主流模型上。 1. 项目核心亮点:为什么这个WebUI与众不同 在开始技术细节之前,我们先看看这个WebUI到底有什么特别之处。传统的Streamlit应用往往受限于原生组件的样式,很难做出精致的界面。但这个项目通过一些巧妙的技术手段,完全打破了这些限制。 1.1 极简现代的视觉设计 第一眼看到这个界面,你可能会怀疑这真的是用Streamlit