Skip to content

What is ROS2?

所要時間: 約10分

このページで行うこと

ROS2の概要をざっくり説明します。

ROS2とはなにか

公式の定義

The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source.

これはROS2公式の解説です。少し難しく見えますが、要するに ロボット用の通信フレームワークと便利なライブラリの集まり と考えて大丈夫です。

ROS2の強みは、抽象化されたフレームワークで、かんたんにロボットの制御システムを構築できるところにあります。


どんなときに使うのか

主にロボットを制作するとき、特に複数のコンピュータを接続してそれぞれを通信させたい場合に効果を発揮します。ROS2を使うと、PCやマイコン、カメラ、モーター制御などを役割ごとに分けて扱いやすくなります。

2025年度ロボット「紫峰」の例

2025年度のロボット「紫峰」を見てわかるように、大会当時のロボットには RaspberryPi4BノートPC1台 が搭載されていました。

「紫峰」の詳細な制御プロセスは後述しますが、操作室から有線LAN1本のみで通信を行っており、カメラ映像の受信から制御信号の送信までを1本で行いました。


ROS2が解決してくれること

特徴

  • 通信の抽象化 - TCP/IPの実装を気にしなくてOK
  • ライブラリ提供 - 制御工学の式を一から実装しなくてOK
  • モジュール化 - 各機能を独立して開発・テスト可能

具体例

このグラフの赤い線がROS2の通信を表しています。

それぞれのコンピュータの橋渡しをし、またモータのループ制御やカメラ映像の転送などのライブラリを提供してくれるのがROS2というわけです。

どのように使うのか

まず、ROS2はUbuntuと呼ばれるOSの上で動かすことが基本です。

注意:OSの選択について

WindowsやMacで動作するROS2は公式にサポートされておらず、コミュニティによって運営されているため、避けるべきです。

推奨環境

DockerやWSL等の仮想環境でも開発が可能ですが、GUIでロボットの情報を見たりすることも多いので、Ubuntuをネイティブにインストールして使用することをおすすめします。

詳しくはUbuntuセットアップの章で解説します。

ROS2のバージョンにはいくつか種類があり、LTSバージョンを使うことを強くおすすめします。

ROS2 バージョン対応 Ubuntuサポート期限推奨度
Humble Hawksbill22.04 LTS2027年5月⭐⭐⭐ (本ドキュメントで使用)
Jazzy Jalisco24.04 LTS2029年5月⭐⭐⭐

2025年度ロボット「紫峰」では、安定性を重視して ROS2 Humble Hawksbill を採用しました。そのため、本ドキュメントでも Humble をベースに解説を進めます。

現在は後継のLTSである Jazzy Jalisco もリリースされています。Ubuntu 24.04 を使用する場合や、最新の機能に触れたい場合は、Jazzy への移行も視野に入れてみてください。

インストール時の注意

各バージョンには対応しているUbuntuのバージョンがあります。インストールする際には十分注意してください。

例:ROS2 Humble は Ubuntu 22.04 まで対応

Raspberry Pi 5 の購入を検討している場合

Raspberry Pi 5 では Ubuntu 22.04 が動作しません。そのため、ROS2 Humble を Raspberry Pi 5 上で動かすことはできません。

Raspberry Pi 5 を使用する場合は、Ubuntu 24.04ROS2 Jazzy Jalisco の組み合わせを選択してください。

なお、紫峰で使用したRaspberry Pi 4B 以前のモデルでは Ubuntu 22.04 が動作するため、Humble を使用できます。


More

公式ドキュメントでさらに詳しく学ぶことができます: