Re Reference AI

インフラ

ROS2とは

Robot Operating System 2 / ROS 2

ロボットアプリケーション開発向けのオープンソースミドルウェア/フレームワーク

フレームワーク自律システム

ひとことで言うと

ロボットのソフトウェアを作るためのオープンソースの土台。センサーやモーターを制御するプログラム同士をつなぐ役割を持つ。

概要

ROS2(Robot Operating System 2)は、ロボットアプリケーションを開発するためのオープンソースミドルウェア/フレームワーク。 センサー入力・モーター制御・経路計画といった機能を担う個々のプログラム(ノード)を、パブリッシュ/サブスクライブ型のメッセージング、サービス(同期的なリクエスト/レスポンス)、アクション(非同期な長時間タスク)といった通信の仕組みで疎結合に連携させる。前身のROS(ROS1)がプロトタイピング・研究用途中心だったのに対し、ROS2は産業用途・商用製品での利用を念頭に、リアルタイム性、マルチロボット構成、セキュリティ、複数OSへの対応を強化して設計されている。

背景

ROS1は研究・プロトタイピング用途で広く普及した一方、単一マスターノード(roscore)への依存、リアルタイム制御の弱さ、マルチロボット構成のサポート不足、セキュリティ機構の欠如といった課題が、商用・産業用ロボットへの適用時に顕在化した。ROS2はこれらの課題を解決するため、通信層をDDS(Data Distribution Service)ベースの分散アーキテクチャに置き換えるなど、設計を刷新して開発された。

歴史

2014年ごろ、Open Source Robotics Foundation(OSRF、現Open Robotics)によりROS2の開発が発表された。2017年12月、最初の正式ディストリビューションであるArdent Apaloneがリリースされた。以降、Foxy Fitzroy(2020年、LTS)、Humble Hawksbill(2022年、LTS)、Jazzy Jalisco(2024年、LTS)など、動物名を冠したディストリビューションが定期的にリリースされている。

アーキテクチャ

通信層にDDS(Data Distribution Service)を採用し、単一障害点となるマスターノードを持たない分散型のパブリッシュ/サブスクライブ通信を実現する。個々の処理単位である「ノード」がトピック(非同期メッセージング)、サービス(同期リクエスト/レスポンス)、アクション(進捗フィードバック付きの非同期タスク)を介して通信する。通信品質はQoS(Quality of Service)設定でトピックごとに調整可能で、SROS2によるアクセス制御・暗号化などのセキュリティ機構も備える。

利点

  • DDSベースの分散通信によりマスターノードへの単一障害点依存がなく、マルチロボット構成に対応しやすい
  • QoS設定によりネットワーク環境や用途に応じた通信の信頼性・リアルタイム性を調整できる
  • SROS2によるセキュリティ機構、Linux/Windows/macOSへの対応など商用・産業用途を意識した設計になっている

欠点

  • DDSレイヤーの導入により概念・設定項目が増え、ROS1と比べ学習コストが高い
  • DDS実装ベンダーによって挙動やパフォーマンス特性に差があり、選定・チューニングが必要になる場合がある
  • ROS1向けに蓄積された既存パッケージ・ノウハウの一部は移植作業が必要になる

関連用語

LeRobotOpenArm

参考文献