工控網(wǎng)首頁
>

應用設計

>

基于 Toradex 硬件和 ROS 2 加速機器人原型開發(fā):SiBrain 的技術視角

基于 Toradex 硬件和 ROS 2 加速機器人原型開發(fā):SiBrain 的技術視角

引言: 解決現(xiàn)代機器人系統(tǒng)的技術挑戰(zhàn)

機器人系統(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 是什么以及我們?yōu)楹问褂盟?/div>

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),提供涵蓋導航、感知、可視化及硬件驅動等領域的即用型功能包。

1.png

在我們的項目中,我們選擇了 ROS 2 Humble 版本,因為它提供長期支持,并且能在基于 ARM 架構的嵌入式硬件( 如 Toradex Verdin iMX8M Plus)上良好運行。采用 ROS 2 使我們能夠更輕松地組織機器人軟件、集成多種傳感器并復用現(xiàn)有工具,同時保持構建自定義功能的靈活性。

起點:Yocto + ROS 2  
在我們的概念驗證機器人中,我們采用了以下技術棧:
  • 基于 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 載板上成功運行。

2.png
Yocto 項目面臨的挑戰(zhàn)
我們選擇從Yocto 起步,因為嵌入式開發(fā)團隊先前已具備相關經驗。然而 Yocto 在提供靈活性的同時,也帶來了復雜性:  
  • 需為定制傳感器打內核補丁與驅動集成;  

  • 維護自定義 Yocto 層需要大量管理成本;  

  • 系統(tǒng)更新必須通過人工方式管理。  

雖然最終實現(xiàn)了功能需求,但顯然我們重復構建了 Toradex 通過 Torizon OS 已提供的工具鏈。

轉向 Torizon OS

Torizon OS 是 Toradex 推出的開源工業(yè) Linux 平臺,基于 Yocto 構建,但專為簡化開發(fā)與維護而設計。

將 ROS 2 機器人遷移至 Torizon 后,我們實現(xiàn)了以下核心優(yōu)勢:
  1. 穩(wěn)定的基礎操作系統(tǒng)

    • 長期支持(LTS)并定期提供安全補丁。

    • 無需維護自定義 Yocto 構建版本。

  2. 容器化部署方案

    • 將 ROS 2 封裝于 Docker 容器中運行

    • 徹底消除與基礎操作系統(tǒng)的環(huán)境沖突

    • 實現(xiàn)開發(fā)設備與部署設備的環(huán)境完全一致

  3. 開發(fā)者友好型工具鏈

    • 提供 Visual Studio Code 的 Torizon IDE 擴展插件.

    • 支持遠程調試、交叉編譯及 CI/CD 流水線集成.

  4. 面向未來的 OTA 更新機制

    • 內置的 OTA 功能支持應用程序與系統(tǒng)更新

    • 安全啟動和 SBOM 滿足合規(guī)要求。

由此,我們的迭代周期大幅縮短,無需重建完整 Yocto 鏡像,現(xiàn)在只需在基 于Ubuntu 的 ROS 容器內開發(fā),并通過 Torizon 在數(shù)分鐘內完成部署。

3.png
在 Toradex Torizon上運行自定義和預構建的 ROS 2 軟件包
得益于 Torizon 對 Docker 的支持,運行預構建及自定義 ROS 2 軟件包變得十分簡便。以下是詳細步驟指南:
  1. 前提條件

    • Toradex 開發(fā)板(例如:使用 Mallow 載板的 Verdin iMX8MP)

    • 已通過 Toradex Easy Installer 安裝 Torizon OS 系統(tǒng)

    • 主機 PC 需運行 Ubuntu 22.04 系統(tǒng)并安裝 ROS 2 Humble

  2. 刷寫 Torizon OS 系統(tǒng)

    • Username: torizon

    • Password: torizon

    • 使用Toradex Easy Installer從在線服務器刷寫Torizon OS

    • 啟動開發(fā)板并打開調試控制臺

    • 錄系統(tǒng):

  3. 運行預構建的 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

  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

    # 第四步:運行自定義節(jié)點

    ros2 run ros_py_pkg py_node  
    From your host PC:
    ros2 topic list  
    ros2 topic echo /helloros

    • rosbase → 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)集成工作量。

下一步計劃 
SiBrain 正與 Toradex 合作,致力于: 
  • 在 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