welcom ! Handel home

2025年2月17日 星期一

ROS2 vs ROS1 topic node link

 

#ROS1 集中 Master 中央通訊

#ROS2 分散處理 去中心化

ROS1 VS ROS2 NODE DDS




  • Robot Operating System (ROS) : 開源的機器人軟體框架,提供工具和庫用於機器人開發。

  • Publisher/Subscriber : ROS 中節點通訊的方式,Publisher 發佈訊息,Subscriber 接收訊息。

  • DDS (Data Distribution Service) : ROS 2 中使用的實時數據分發服務協議,提供更好的實時通訊、可擴展性和安全性。

  • QoS (Quality of Service) : DDS 的 QoS 設定可以確保數據在非理想網絡中的傳遞可靠性。

  • MoveIt : 一個流行的運動規劃框架,整合到 ROS 中。


1️⃣ ROS 1 vs ROS 2 的主要差異

🔹 ROS 1(2007 年發布)

  • 最初目標:學術研究與機器人開發。
  • 核心架構:使用 Publisher/Subscriber 訂閱機制讓 不同系統或架構的節點(Node)可以互通
  • 優勢
    • 成熟穩定:擁有大量可用的 開源工具與庫
    • 廣泛使用:學術界與工業界皆有大量應用。
    • 較完善的文件與培訓:因歷史悠久,擁有大量教學與實踐資源。
  • 挑戰
    • 依賴 ROS Master(集中管理),導致分散式通訊受限
    • 缺乏即時性與 QoS 保證,影響工業應用。
    • Noetic 於 2025 年 EOL(停止官方支援)。

🔹 ROS 2(2017 年開始開發)

  • 設計目標:專注於 工業級應用與分散式架構
  • 核心變革
    • 去中心化(移除 ROS Master,改用 DDS)。
    • 支援 Quality of Service(QoS),適用於 高可靠性 的工業應用(機器人、車載系統)。
    • 提高可擴展性,支援 多機器、多機器人、嵌入式設備
  • 優勢
    • 強化通訊架構(DDS,支援 QoS)。
    • 更好的分散式與即時性
    • 支援跨語言開發(C++、Python、Rust)。
  • 挑戰
    • 許多 ROS 1 功能未完全移植(如 MoveIt Setup Assistant)。
    • 文件與培訓仍待完善(相較於 ROS 1)。
    • 開發門檻稍高,對於已熟悉 ROS 1 的開發者來說,可能需要額外學習成本。

2️⃣ ROS 2 的工業應用案例

🔹 DDS + MTConnect + ROS 2 應用

  • 案例:MTConnect + DDS + ROS 2
    • MTConnect 是工業設備的數據標準,負責資料交換。
    • DDS(Data Distribution Service)用於高效通訊與任務協調。
    • ROS 1 / ROS 2 透過 DDS 與 MTConnect 連接,以達成設備自動化與機器人協作

核心價值:ROS 2 與 DDS 可用於工業自動化、車間管理、機器人控制,讓不同設備無縫整合。


3️⃣ ROS 2 過渡面臨的挑戰

🔹 1. 移植問題

  • 許多 ROS 1 的工具尚未完整移植到 ROS 2,例如:
    • MoveIt Setup Assistant(ROS 1 已有,但 ROS 2 版本仍在開發)。
    • 部分 Sensor 驅動程式 尚未提供官方 ROS 2 支援。

🔹 2. 文件與培訓不足

  • ROS 1 具有豐富的教學與實踐案例,而 ROS 2 仍在持續發展,導致:
    • 開發者需要自行探索。
    • 部分文件仍然不夠完整。
    • 新手學習成本較高。

🔹 3. 企業導入成本

  • 企業用戶需要考量技術轉換成本
    • 需要重新適配舊的 ROS 1 系統
    • 需培訓工程師學習 ROS 2。
    • 部分現有的 ROS 1 工具仍然更好用。

4️⃣ 何時應該使用 ROS 1?何時應該轉向 ROS 2?

條件 / 需求推薦使用 ROS 1推薦使用 ROS 2
學術研究 / 快速原型穩定的工具,易學❌(文件較少)
工業應用(自動化、車載系統)❌(缺乏 QoS、DDS)適合高效能系統
需要即時控制(Real-time)QoS 支援更好
多機器、分散式系統❌(依賴 ROS Master)去中心化 DDS
長期維護專案❌(2025 年 EOL)未來發展方向
大量現有 ROS 1 代碼✅(無須大幅改動)❌(需重構)

適合使用 ROS 2 的情境

  • 新專案 / 工業應用 / 即時控制 / 大規模機器人協作
  • 未來長期開發(Noetic 2025 年 EOL)

適合繼續使用 ROS 1 的情境

  • 已建立 ROS 1 系統,不希望變更架構
  • 學術用途,快速開發原型
  • 工具鏈尚未完整移植至 ROS 2

📌 總結

  1. ROS 1 適用於學術研究、快速開發,但 2025 年後將不再維護
  2. ROS 2 適用於工業應用,支援分散式架構、即時通訊,但仍在發展
  3. 主要挑戰
    • 部分 ROS 1 工具尚未完整移植到 ROS 2
    • ROS 2 文件與培訓資源仍在增長中
  4. ROS 2 透過 DDS 改善通訊,適用於大規模機器人與自動化應用

🚀 結論:如果是新專案,建議選擇 ROS 2,並開始學習新的 DDS 架構! 🎉





沒有留言: