#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
📌 總結
- ROS 1 適用於學術研究、快速開發,但 2025 年後將不再維護。
- ROS 2 適用於工業應用,支援分散式架構、即時通訊,但仍在發展。
- 主要挑戰:
- 部分 ROS 1 工具尚未完整移植到 ROS 2。
- ROS 2 文件與培訓資源仍在增長中。
- ROS 2 透過 DDS 改善通訊,適用於大規模機器人與自動化應用。
🚀 結論:如果是新專案,建議選擇 ROS 2,並開始學習新的 DDS 架構! 🎉
沒有留言:
張貼留言