はじめに
ここ数年になりましたが、ROS2に取り組んでいます。私の場合は初めからROS2に取り組みましたが、ROS(Robot Operating System)(ROS1)は、ロボット開発の世界を大きく変えたミドルウェアです。しかしROSは研究用途に強い一方で、産業用途・商用ロボットで使うには限界がありました。その限界を解決する形で進化したのがROS2です。ここでは、ROSからROS2の流れを整理してみます。
1. ROS誕生の背景(2007〜2010年)
ROSはロボット開発基盤を統一したいという研究者の強いニーズから生まれました。
当時は研究室ごとに独自のソフトウェアを作っており、再利用性が低く、センサー制御もバラバラでした。この問題を解決するために、Willow Garageを中心にROSが開発されました。
ROSが提供した主な価値:
- トピック/サービスによるモジュール分割
- 再利用可能なパッケージ文化(SLAM、Navigationなど)
- センサドライバ(LiDAR、カメラ)がすぐ動く
- PythonやC++で簡単にノードを書ける設計
この結果、ROSは世界中の研究機関で「ロボット開発の標準プラットフォーム」として広まりました。
2. ROSの限界
研究には優れていましたが、実務用途では以下の課題がありました:
- リアルタイム性が弱い(TCPROS通信で遅延が出やすい)
- ROS Master依存で分散システムに弱い
- セキュリティ不足(暗号化や認証が標準でない)
- Windows / RTOS / 組込み対応が弱い
- 商用ロボットの安全要件を満たしにくい
これらの弱点により、ROSをそのまま製品に使うことは難しい状況でした。
3. ROS2誕生の背景(2014〜)
ROSの限界を解決し、産業用途でも使えるロボット基盤を作るという目的でROS2のプロジェクトがスタートしました。Intel、Amazon Robotics、Apex.AIなどの企業も参加し、「商用レベルのロボットソフト基盤」として再設計されました。
ROS2は自動運転や産業制御でも使われるDDS(Data Distribution Service)を採用。
これによりリアルタイム性、信頼性、分散システムの設計が大幅に強化されています。
4. ROS2が解決したこと(ROS1からの進化)
- DDSベースでリアルタイム通信に対応
QoSで信頼性・優先度・再送の制御が可能 - Master不要の完全分散システム
マルチロボット運用に強く、耐障害性も向上 - セキュリティ標準搭載(SROS2)
暗号化・認証・アクセス制御など商用要件に対応 - Windows / macOS / RTOS / マイコンに対応
Micro-ROSでSTM32など組込みCPUでも動作可能 - 高品質パッケージが増加
Navigation2、SLAM Toolbox、MoveIt2など成熟
5. 実務での違い(ROS vs ROS2)
| 観点 | ROS | ROS2 |
|---|---|---|
| 通信 | TCPROS中心 | DDSでリアルタイム、QoS調整 |
| アーキテクチャ | Master必須 | 完全分散 |
| セキュリティ | 非標準 | SROS2により標準 |
| OS対応 | Linux中心 | Windows / macOS / RTOS対応 |
| 組込み | 困難 | Micro-ROS |
| 商用利用 | 制限多い | 十分可能 |
6. ROS2が「実務レベル」になった理由
- 企業が本格参加(NVIDIA, Amazon, SoftBank等)
- SLAM Toolbox, Nav2 など主要パッケージが安定
- LTSリリース(Foxy → Humble → Iron → Jazzy)が成熟
- サービスロボット・AGVなど実製品への採用が増加
まとめ:ROSは研究、ROS2は産業へ
ROSは研究・教育用途で非常に優れた基盤でしたが、ROS2は産業・商用ロボットの要件を満たすために再設計された、次世代のロボット基盤です。研究用のROS、実務用のROS2という住み分けが、今のロボット開発の現状をよく表しています。