🤖 【ROS2入門①】ROS2とは?ロボット開発フレームワークの全体像
シリーズ この記事は「ROS2入門シリーズ」の一部です。 シリーズ目次を見る
組み込み・ロボット開発に初めて触れる方向けに、ROS 2(Robot Operating System 2)がミドルウェアとして担う役割を整理します。Windows/Linux 上のデスクトップ OS ではなく、ノード間通信やツール群を束ねる層だと捉えると後続記事に進みやすいです。
読了後はノード・トピック・サービス・アクションの関係を口頭で説明でき、ROS 2入門シリーズ目次 の②環境構築へ進める状態を目指します。ディストリビューションの EOL は作業前に Humble 公式ドキュメント で確認してください。
なぜ ROS2 が生まれたのか?ROS1 の限界と設計の違い
ROS1の限界
ROS 1(2007年〜)は研究用ロボット向けに設計され、多くの実績を持ちます。一方で製品利用やマルチプラットフォーム、セキュリティ面では限界も指摘されてきました。詳細は ROS 2 Concepts も参照してください。
| 課題 | 内容 |
|---|---|
| リアルタイム性 | タイミング保証が難しい |
| セキュリティ | 通信の暗号化なし |
| マルチロボット | 複数ロボットの連携が困難 |
| 組み込みサポート | マイコンへの対応が弱い |
| Windowsサポート | Linux専用 |
ROS2の登場(2017年〜)
これらの課題に向き合い、通信基盤を含めて設計し直したのが ROS 2 です(名前は「OS」ですが、デスクトップ OS の代替ではありません)。
[ ROS1 ] [ ROS2 ]
研究・プロトタイプ向け → 製品利用も視野に入れた設計目標
Linux が主な舞台 → Linux / Windows / macOS など
中央集権型の通信が主流 → DDS 等を介した分散型通信
標準では暗号化が弱い → セキュリティ機構を載せやすい
ROS2 のディストリビューションとは?Humble の選び方
ROS 2 は約1年ごとに新バージョン(ディストリビューション)がリリースされます。リリース一覧 で EOL を確認してから選びましょう。
| バージョン名 | 対応OS | EOL | 推奨度 |
|---|---|---|---|
| Humble Hawksbill | Ubuntu 22.04 | 2027年5月 | ★★★ おすすめ |
| Iron Irwin | Ubuntu 22.04 | 2024年11月(EOL 済み) | 参考 |
| Jazzy Jalisco | Ubuntu 24.04 | 2029年5月 | ★★★ 最新 |
ディストリビューションの選び方: Ubuntu 22.04 なら Humble が手順書・情報と相性が良いことが多いです。Ubuntu 24.04 なら Jazzy を検討します。EOL や推奨は時期で変わるので、作業前に ディストリビューション一覧 を確認してください。
ROS2 のアーキテクチャとは?DDS と主要コンポーネント
ROS 2 の通信基盤は DDS(Data Distribution Service)という標準規格です。同一 LAN 上のノードがお互いを見つける仕組みもここに含まれます。詳細は About middleware vendors を参照してください。
主要コンポーネント
ノード(Node)
最小実行単位。センサー読み取り、計算、モーター制御など、1つの役割を担うプログラムです。
トピック(Topic)
ノード間の非同期通信チャンネル。カメラ画像やセンサーデータをリアルタイムで流します。
サービス(Service)
リクエスト/レスポンス型の同期通信。「扉を開けて」→「開けました」のような一対一のやり取りです。
アクション(Action)
時間がかかる処理の非同期実行。「目標地点まで移動して(途中進捗も教えて)」のような長時間タスク向けです。
ROS2 で何ができる?産業・研究での活用例
産業・研究分野での活用例
- 自動運転車: LiDARやカメラ処理、経路計画
- 産業ロボット: 工場での搬送、組み立て作業
- ドローン: 自律飛行、障害物回避
- 医療ロボット: 手術支援、リハビリ支援
- 家庭用ロボット: 掃除ロボット、配膳ロボット
有名なROS2対応ロボット
┌──────────────────────────────────────────┐
│ TurtleBot3 │ 学習・研究向けの小型ロボットの例 │
│ Spot (Boston Dyn.) │ 四足歩行ロボットの例 │
│ Universal Robots │ 産業用アームの例 │
│ Navigation2 (NAV2) │ 自律移動のソフトウェア・スタック │
└──────────────────────────────────────────┘ ROS2 入門の学習手順は?シリーズ①〜⑪の進め方
このシリーズでは ROS 2入門目次 の順番で学習を進めます。
ROS2 入門①のまとめ
- ROS 2 はロボット向けのミドルウェアとして、ノードと通信の型(トピック等)でシステムを組み立てる
- ROS 1 の延長ではなく、設計目標が異なるため「置き換え」より別系統として学ぶと整理しやすい
- 用語の骨格(ノード・トピック・サービス・アクション)を掴んだら、次は 環境構築で手を動かす
検証環境とつまずきやすい点
この記事は概念整理が中心で、特定ロボット実機での End-to-End 検証はしていません。バージョンや OS で前提が変わるので、作業前に 対応表 を確認してください。
- シリーズの手順メモは Ubuntu 22.04 + ROS 2 Humble を土台にしている
- TurtleBot3 の実機セットアップは 別シリーズで扱う(本稿は全体像の整理)