Ubuntu22.04または6月2025から、公式の基本的なもはやアップグレードのサポートROS1は、ROS2システムの使用を推奨し、アーキテクチャ、リアルタイム、セキュリティ、エコ拡張性でROS 2が大幅にROS 1よりも優れている場合、新しいプロジェクトの開発は、直接ROS2を使用することをお勧めしますが、既存のリソースと長期的な利益との間のトレードオフに移行する必要がある場合。詳細なUbuntuのバージョンのサポート関係は、リンクを参照してください [ROSとUbuntuは異なるバージョンの関係]。 2つのフレームワークの比較は以下の通り:
| ROS 2 バージョン | Ubuntuバージョン | LTSかどうか | リリース時間 |
| ジャジー | 24.04(ノーブル) | はい(LTS) | 2024 |
| キルト | 24.04(ノーブル) | いいえ | 2025-05 |
歴史と発展
- 活性酸素1:スタンフォード大学とウィロー・ガレージによって開発され、研究とプロトタイピングに重点を置いている。
- ROS2:2014年に開始され、リアルタイム機能、クロスプラットフォームサポート、およびセキュリティを向上させるためにDDSミドルウェアを使用した産業用ロボットを対象としている。
結論 ROS1は研究およびプロトタイピングに適しており、ROS2は産業および商業展開に理想的である。
2.システム・アーキテクチャ
| 寸法 | 活性酸素1 | ROS2 |
| コア・アーキテクチャ | 集中型アーキテクチャを採用し、マスターノード(ノードマネージャ)に依存してノードの登録と通信を実現。 | 分散アーキテクチャ、ノード間の直接通信、マスター不要、動的発見メカニズムサポート。 |
| コミュニケーション・モデル | TCP/UDPプロトコルをベースにカスタマイズされた通信システムは、遅延、パケットロス、暗号化できないなどの問題がある。 | DDSに基づく標準化された通信プロトコルで、リアルタイム、暗号化、クロスプラットフォームインタラクションをサポート。 |
| 信頼性 | ピアツーピア通信をTCPに依存しているため、パケットロスが発生しやすい | 信頼できる伝送はQoSポリシー(例えばReliable)によって保証される。 |
| コンパイルシステム | rosbuild (early)とcatkinコンパイルシステムを使用。 | より柔軟な依存関係管理と多言語ビルドをサポートするコンパイルシステムを導入。 |
3.ユーザー・エクスペリエンス
| 寸法 | 活性酸素1 | ROS2 |
| 学習曲線 | 豊富なコミュニティ・リソースと成熟したドキュメントは、使い始めるのに適している。 | 新機能は学習コストを増加させるが(例:DDSコンフィギュレーション、リアルタイムデバッグ)、長期的にはより保守しやすくなる。 |
| マイグレーション費用 | ROS 1プロジェクトは、ROS 2に移行するために、通信ロジック、ノード管理、コンパイルシステムをリファクタリングする必要がある。 | ROS 1とROS 2のノード間で相互運用するための移行ツール(ros1_bridgeなど)が利用可能です。 |
| デバッグとツールチェーン | roslaunchやrvizといったツールに頼るデバッグ・プロセスは、より伝統的なものだ。 | 新しい起動フレームワーク(Pythonコンフィギュレーションをサポート)、組み込みログシステム、より良いテストツール。 |
| コミュニティとエコロジー | エコシステムは大規模だが、アーキテクチャの制限により拡張が難しい機能もある。 | 新機能の統合が容易になり(例:GazeboやWebテクノロジーとの統合が深まる)、エコシステムは拡大し続けている。 |
4.キーテクノロジーの比較
| 寸法 | 活性酸素1 | ROS2 |
| ノード通信 | ピアツーピアのコミュニケーションはマスター登録によって確立される。 | ノードはDDSを介して自動的にお互いを発見し、直接通信する。 |
| メッセージング | カスタムメッセージタイプ(.msg)を使用し、roscpp/rospyの実装に依存する。 | IDL (Interface Definition Language)に基づいて多言語メッセージを生成し、互換性を向上。 |
| フォールト・トレランス | マスターの故障はシステム全体のダウンを引き起こす可能性がある。 | 分散アーキテクチャにより単一障害点を回避し、ノードは動的に参加/退出できる。 |
5.構文の違い
| 寸法 | 活性酸素1 | ROS2 |
| ノード作成構文 | ノードの管理にはros::NodeHandleを使用し、集中管理マネージャの起動にはroscoreに依存します。 | rclcpp::Nodeまたはrclpy::Nodeを使用して、roscoreなしで直接ノードを作成します。 |
| コミュニケーション・メカニズム | 通信を実現するためにカスタマイズされたTCP/UDPプロトコルに基づいており、ノードの登録と検出を手動で管理する必要がある。 | DDS(Data Distribution Service)規格に基づき、ノードは自動的にお互いを発見し、通信する。 |
| メッセージの定義 | メッセージタイプの定義には.msgファイルを使用し、roscpp/rospyの実装に依存する。 | IDL (Interface Definition Language)を使用して多言語メッセージを生成し、互換性を高める。 |
| 起動ファイル | XMLを使用して.launchファイルを記述する。 | Pythonを使用して.launch.pyファイルを記述し、動的ロジック(条件判定やパラメータ渡しなど)をサポートします。 |
6.実際の使用の違い
| 寸法 | 活性酸素1 | ROS2 |
| 多言語サポート | 主にC++とPythonをサポートし、他の言語には適応する必要がある。 | 追加言語(Rust、Javaなど)の拡張サポートと、インターフェイス定義言語(IDL)による言語間互換性。 |
| コンパイルシステム | カトキン・コンパイル・システムに依存しており、ワークスペース構造を厳密に守る必要がある。 | より柔軟な依存関係管理と多言語ビルドのためにmentビルドシステムを使用します。 |
| リアルタイム・サポート | リアルタイム性能が低く、産業用リアルタイム制御のニーズを満たすのが難しい。 | Improve the support for real-time systems (e.g. ROS 2’s rclcpp provides real-time thread scheduling). |
| セキュリティ | ネイティブの暗号化および認証メカニズムの欠如。 | 認証、データ暗号化、アクセス制御を提供するDDSセキュリティ拡張(DDS-Security)をサポート。 |
| クロスプラットフォーム対応 | 主にLinuxシステム上で動作し、Windows/MacOSのサポートは限定的。 | Linux、Windows、macOS、RTOSなど複数のプラットフォームをサポートし、システム間の互換性を強化するために、プラットフォームをTier1(公式政府が積極的にサポート)とTier2(コミュニティがサポート)に明確に分けている。 |
| デバッグツール | roslaunchやrvizのような伝統的なツールに頼っているため、ロギングシステムは比較的基本的なものだ。 | 組み込みのロギングシステム(例:RCLCPP_INFO)、Pythonスクリプトのサポート、より良いテストツールの提供。 |
| フォールト・トレランス | ロスコアの故障はシステム全体のダウンを引き起こす可能性がある。 | 分散アーキテクチャにより単一障害点を回避し、ノードは動的に参加/退出できる。 |
7.典型的なアプリケーションシナリオ
- ROS 1:教育、研究プロジェクト(例:モバイル・ロボット・ナビゲーション、SLAM)、高いリアルタイム性とセキュリティを必要としないシナリオ。プロジェクトが成熟しており、リアルタイム性、セキュリティ、クロスプラットフォーム機能を必要とせず、多数のROS 1生態系リソースに依存している場合は、ROS 1の使用を継続してください。
- ROS 2:産業オートメーション、自律走行、ドローンなど、高度なリアルタイム性、セキュリティ、クロスプラットフォームサポートを必要とするシナリオや、大規模プロジェクトの長期メンテナンス(例. 配送ロボット, 産業用ロボット医療用ロボット)。産業グレードの安定性、リアルタイム制御、安全な暗号化、またはクロスプラットフォーム展開を必要とするプロジェクトは、ROS 2を優先する。
8. ハードウェアとプラットフォームの互換性
- 活性酸素1:主にLinux(Ubuntu)をサポート。
- ROS2:Linux、Windows、macOS、組み込みプラットフォームにネイティブ対応。
9. エコシステムとコミュニティ支援
- 活性酸素1:多数のパッケージと活発なコミュニティ。
- ROS2:急速に成長するエコシステムだが、パッケージ数はまだ追いついていない。
結論 ROS1は成熟したエコシステムを持っているが、ROS2は急速に追いついている。
10. 移行とアップグレードのコスト
- APIに互換性がないため、コードの書き換えが必要になる。
- ドライバーは適応が必要かもしれない。ros1_bridgeは段階的な移行を助けることができる。
結論 移行コストは大きいが、段階的なアップグレードによってリスクを減らすことができる。
11. セキュリティと工業規格
- 活性酸素1:ネイティブのセキュリティメカニズムはない。
- ROS2:DDSのセキュリティ標準に準拠し、OPC UAとTSNを統合できます。
結論 ROS2は、セキュリティが重要なアプリケーションや産業用アプリケーションに適している。
今後の動向とロードマップ
- 活性酸素1ノエティックは最終リリースで、2025年まで維持される。
- ROS2は、積極的な機能アップデートを伴うLTS(Long Term Support)戦略に従っている。
結論 この傾向は明らかにROS2に有利である。
結論と提言
について 研究者または初心者ROS1は成熟した安定した選択肢である。 工業ユーザーまたは商業チーム, ROS2’s advantages in distributed systems, real-time performance, and security bring long-term value.
実行可能なアドバイス プロジェクト計画の早い段階でROSのバージョンを評価し、エコシステムの成熟度とチームの能力に基づいて決定する。
