基于 Toradex 硬件和 ROS 2 加速機器人原型開發(fā):SiBrain 的技術視角
機器人系統(tǒng)對嵌入式計算提出了嚴峻要求,它需要實現(xiàn)低延遲實時通信、多傳感器集成以及確定性性能,這些功能都需在復雜的中間件棧中協(xié)同運作。ROS 2 憑借其數(shù)據(jù)分發(fā)服務(DDS)通信架構、模塊化軟件生態(tài)系統(tǒng)以及對嵌入式 Linux 的支持,已成為機器人領域的事實標準。
本文記錄了我們將基于 ROS 2 的機器人原型移植至 Toradex Verdin iMX8M Plus 模塊的技術探索過程。該平臺憑借其神經網(wǎng)絡處理單元(NPU)、異構核心架構及相機接口特性,非常適合機器人應用開發(fā)。
本文并按步講解的機器人教程,而是旨在記錄我們在 Toradex 硬件上對 ROS 2 工作流程的工程評估。我們將重點分析實際驗證過程中的成功經驗與難點,并從開發(fā)速度、可維護性和部署效率等維度,對比基于 Yocto 的構建方案與 Torizon 容器化方案的差異。文中同時提供了關鍵步驟的示例命令,以便讀者復現(xiàn)實驗過程。
ROS 2 并非傳統(tǒng)意義上的操作系統(tǒng),而是一個幫助開發(fā)者構建機器人應用的開源軟件框架。可以這樣理解:Linux 是處理器的操作系統(tǒng),而 ROS 2 則是實體機器人的“操作系統(tǒng)”。
ROS 2 在機器人領域被廣泛采用的一個重要原因在于其對實時通信的支持。這一特性通過 DDS 實現(xiàn),使開發(fā)者能夠根據(jù)不同任務需求靈活調整消息傳遞機制。此外,ROS 2 還擁有龐大的生態(tài)系統(tǒng),提供涵蓋導航、感知、可視化及硬件驅動等領域的即用型功能包。

在我們的項目中,我們選擇了 ROS 2 Humble 版本,因為它提供長期支持,并且能在基于 ARM 架構的嵌入式硬件( 如 Toradex Verdin iMX8M Plus)上良好運行。采用 ROS 2 使我們能夠更輕松地組織機器人軟件、集成多種傳感器并復用現(xiàn)有工具,同時保持構建自定義功能的靈活性。
基于 meta-ros 層的 Yocto Scarthgap 5.0.
ROS 2 Humble 發(fā)行版 .
搭載多種板載傳感器:
DHT20(溫濕度傳感器)
環(huán)境光傳感器
IMU(加速度計、陀螺儀、磁力計)
超聲波測距模塊
室內激光雷達(LiDAR)
USB 攝像頭
我們將應用程序打包在基于 Ubuntu 的容器中,采用 Debian 構建方式,從而實現(xiàn)了快速迭代開發(fā)。該機器人在搭載 Verdin iMX8M Plus 模塊的 Toradex Dahlia 與 Mallow 載板上成功運行。

需為定制傳感器打內核補丁與驅動集成;
維護自定義 Yocto 層需要大量管理成本;
系統(tǒng)更新必須通過人工方式管理。
雖然最終實現(xiàn)了功能需求,但顯然我們重復構建了 Toradex 通過 Torizon OS 已提供的工具鏈。
Torizon OS 是 Toradex 推出的開源工業(yè) Linux 平臺,基于 Yocto 構建,但專為簡化開發(fā)與維護而設計。
穩(wěn)定的基礎操作系統(tǒng)
長期支持(LTS)并定期提供安全補丁。
無需維護自定義 Yocto 構建版本。
容器化部署方案
將 ROS 2 封裝于 Docker 容器中運行
徹底消除與基礎操作系統(tǒng)的環(huán)境沖突
實現(xiàn)開發(fā)設備與部署設備的環(huán)境完全一致
開發(fā)者友好型工具鏈
提供 Visual Studio Code 的 Torizon IDE 擴展插件.
支持遠程調試、交叉編譯及 CI/CD 流水線集成.
面向未來的 OTA 更新機制
內置的 OTA 功能支持應用程序與系統(tǒng)更新
安全啟動和 SBOM 滿足合規(guī)要求。
由此,我們的迭代周期大幅縮短,無需重建完整 Yocto 鏡像,現(xiàn)在只需在基 于Ubuntu 的 ROS 容器內開發(fā),并通過 Torizon 在數(shù)分鐘內完成部署。

前提條件
Toradex 開發(fā)板(例如:使用 Mallow 載板的 Verdin iMX8MP)
已通過 Toradex Easy Installer 安裝 Torizon OS 系統(tǒng)
主機 PC 需運行 Ubuntu 22.04 系統(tǒng)并安裝 ROS 2 Humble
刷寫 Torizon OS 系統(tǒng)
Username: torizon
Password: torizon
使用Toradex Easy Installer從在線服務器刷寫Torizon OS
啟動開發(fā)板并打開調試控制臺
錄系統(tǒng):
運行預構建的 ROS 2 軟件包 # 步驟一:拉取 Sibrain 預構建的 ROS 2 基礎鏡像
docker pull sibrain/rosbase# 第二步:使用 host 網(wǎng)絡運行容器
docker run --network host -it sibrain/rosbase:latest# 第三步:設置 ROS 環(huán)境
source /opt/ros/humble/setup.bash# 第四步:運行演示對話節(jié)點
ros2 run demo_nodes_py talker從您的主機(在同一網(wǎng)絡中):
ros2 topic list ros2 topic echo /chatter運行自定義 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# 第四步:運行自定義節(jié)點
ros2 run ros_py_pkg py_node From your host PC: ros2 topic list ros2 topic echo /hellorosrosbase → ROS 環(huán)境配置容器
hello_ros → 自定義軟件包容器
該工作流程支持在 Toradex 硬件上快速測試通用及特定應用的 ROS 軟件包。
對于剛開始使用 Toradex 硬件的機器人團隊,我們強烈建議采用 Torizon OS 結合 ROS 2 容器方案,以加速原型開發(fā)并縮短產品上市周期。Torizon O S通過快速原型構建、持續(xù)更新維護和 OTA 部署功能有效降低了系統(tǒng)復雜性。若沿用最初基 于Yocto 構建的方案則無法實現(xiàn)這些優(yōu)勢。此外,ROS 2 容器還提供了卓越的可復現(xiàn)性、跨平臺移植能力以及極簡的系統(tǒng)集成工作量。
在 Torizon 演示庫中發(fā)布 ROS 2 容器。
為 Torizon IDE 提供 ROS 2 項目模板。
在行業(yè)展會上展示即將推出的演示案例,包括一款 ROS 2 無人機原型。
通過將 ROS 2 與 Torizon 結合應用于 Toradex 硬件平臺,您可專注于機器人智能開發(fā)與創(chuàng)新,無需耗費精力維護底層基礎設施。
同時,我們建議閱讀《How Torizon and ROS 2 Empower your Robotics Projects》博客文章,深入了解如何借助 Torizon 啟動 ROS 2 項目,并參考 SiBrain 關于機器人原型逐步開發(fā)流程的博客文章。
提交
Weston 桌面雙屏顯示獨立觸摸配置
NXP iMX8MP 使用 OP-TEE
NXP iMX8MM 通過本地服務器更新 BSP 鏡像
NXP iMX8MM ARM 平臺 Weston RDP 遠程桌面部署測試
基于 NXP iMX8MP 平臺測試 CODESYS TargetVisu

投訴建議