その他

Ubuntu 22.04にROS2 Humble をインストールする手順まとめ

その他
この記事は約9分で読めます。

はじめに

お久しぶりです。

しばらくrambleを更新できずにいましたが、今週から再開していきたいと思います。

今回の記事では、以下の環境を前提に進めていきます。

ハードウェア: Raspberry Pi 5 (8GBモデル)
機体: Raspbot V2 (Yahboom)
作業スタイル: 基本的にメインPCから SSH で接続して操作します。

Raspberry Pi 5は非常にパワフルですが、OS周りの仕様が先代までと異なるため、「Ubuntu 24.04上でDockerを使い、ROS2 Humble (Ubuntu 22.04) を動かす」という、少し工夫した構成となっています。

ロボットの話

昨年末頃から会社としてロボットにも注力する方針となりました。

とはいえ具体的にロボットで何をするか、どんなタイプのロボットをターゲットにするかなど詳細は決まっていないので、まずはロボットの初期セットアップや動かし方に関して知見を貯めていこうと思います。

Raspbot V2

今回、ロボット学習の第一歩として、Yahboom社の「Raspbot V2」と最新の「Raspberry Pi 5 (8GB)」を購入しました。

ロボット開発には「ROS2」というオープンソースのフレームワークを使うのが一般的ですが、ここで注意したいのがROS2の「バージョン」です。ROS2にはUbuntuと同様にいくつかのバージョンが存在し、ロボット側のライブラリがどのバージョンをサポートしているかが非常に重要になります。Raspbot V2は「ROS2 Humble」に対応していることが分かったため、今回はこのバージョンに合わせてセットアップを進めることにしました。

実際の組み立て作業については、付属の説明書だけでは理解しづらい部分も多く、最終的にはYouTubeの解説動画を頼りに完成させました。特に苦労したのが、Raspberry Piとロボットの拡張基板を繋ぐケーブルの接続です。

これは「I2C」という規格で通信するための配線なのですが、GPIOピンへの挿し方には厳密な決まりがあります。具体的には、1番ピン側から見て「3番ピンに黄色、5番ピンに緑色、6番ピンに黒色」という配置(下図参照)を守らなければ、システムがロボットを認識してくれません。

【GPIOピンの接続例】

  • 1・2番ピン:なし
  • 3・4番ピン: / なし
  • 5・6番ピン: /
Yahboom
Yahboom

セットアップ

rasberry pi imager(OSインストール)

ハードウェアが完成したら、次はソフトウェアのセットアップです。

Raspberry Piのセットアップには、公式の「Raspberry Pi Imager」というアプリケーションを使用して、microSDカードにOSを書き込む作業が必要になります。ちなみに、Raspbot V2のキットにはmicroSDカードが付属しているため、別途用意する必要がないのは嬉しいポイントです。

今回、ホストOSには「Ubuntu 24.04.3 LTS (64-bit) Server」を選択しました。

本来、ROS2 Humbleを動かすための推奨OSはUbuntu 22.04ですが、Raspberry Pi 5はハードウェアが新しいため、旧バージョンである22.04を直接インストールすることができません。そのため、まずは最新の24.04 Serverをベースとしてインストールし、その上でDockerを使ってROS2環境を構築するという手順を踏みます。

【2026年完全版】ラズベリーパイのOSインストールと初期設定|Raspberry Pi 5対応
microSDカードにRaspberry Pi OSをインストールし、ラズベリーパイを起動して初期設定
Just a moment...

dockerインストール

前述の通り、Raspbot V2が対応している「ROS2 Humble」は、本来Ubuntu 22.04での動作を前提としており、最新のUbuntu 24.04には直接対応していません。それならば「ラズパイに最初から22.04を入れればいいのでは?」と思われるかもしれませんが、Raspberry Pi 5は基本設計が新しすぎるため、旧OSである22.04を直接インストールすることができないようです。

この「ハードウェア(24.04が必要)」と「ソフトウェア(22.04が必要)」の矛盾を解消するために、Dockerを活用します。ホストOS(24.04)の上にDockerを導入し、その中の仮想的な環境(コンテナ)でUbuntu 22.04を動かすことで、ROS2 Humbleを正常に動作させることができます。

今後、最新のシングルボードコンピュータで少し古いロボットを動かす際には必ず直面する問題ですので、ぜひ参考にしてみてください。

それでは、Ubuntu 24.04 ServerにDockerをインストールしていきます。

1. 既存の Docker 関連があれば削除(念のため)
sudo apt remove -y docker docker-engine docker.io containerd runc

2. 依存パッケージのインストール
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

3. Docker公式GPGキーの追加
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

4. Dockerリポジトリを追加
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

5. Docker Engine のインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

6. sudo なしで docker を使えるようにする
sudo usermod -aG docker $USER
newgrp docker

7. 確認
docker run hello-world

ubuntu22.04

続いて、Docker上で動作させるUbuntu 22.04の準備を進めます。

ここで注意したいのが、Raspberry Pi 5にUbuntu公式の22.04イメージを無理やり書き込んだ場合です。

仮に起動までこぎ着けたとしても、ハードウェア(OS側)がラズパイ5のチップセットを正しく認識できず、結果として使い物になりません。そのため、先ほど構築したDocker環境の中で、OSを「コンテナ」として動かす必要があります。

まずは、Docker Hubからベースとなるイメージをダウンロードします。

1. Ubuntu 22.04 イメージを取得
docker pull ubuntu:22.04

2. コンテナ起動(Raspberry Pi ロボット用途を想定)
docker run -it --name ros2_humble \
    --net=host \
    --ipc=host \
    --privileged \
    ubuntu:22.04

ROS2 Humble

最後に、今後のロボット開発の核となる「ROS2 Humble」をインストールしていきます。

ここで「そもそもROS2とは何か」という点について触れておきましょう。

ROS2はWindowsやUbuntuのようなOS(オペレーティングシステム)ではなく、ロボット開発に必要な「通信」「シミュレーション」「ライブラリ」などが詰まったソフトウェアフレームワークです。

また、ロボットのキャッチアップを進めるにあたって、「ラズパイだけで重い処理をすべてこなせるのか」と不安に感じていたのですが、ROS2はネットワークを通じて複数のPCで処理を分担できる仕組みを持っていることがわかりました。

複雑な処理はメインPCに任せ、ラズパイはモータ制御に集中させるといった同時並行のシステム構築が理想的なのでしょうね。

1. コンテナ内で ROS 2 Humble をインストール
apt update
apt install -y locales curl gnupg lsb-release

2. locale 設定
locale-gen en_US en_US.UTF-8
update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

3. ROS2リポジトリの登録
# GPGキーの登録
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
  | gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg

# リポジトリの追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" \
  | tee /etc/apt/sources.list.d/ros2.list

4. ROS2 Humbleのインストール
apt update
apt install -y ros-humble-desktop

5. 環境設定と動作確認
# 環境変数の読み込み
source /opt/ros/humble/setup.bash

# 動作確認
ros2 topic list

python環境

Raspbot V2の制御プログラムは、基本的にPythonで記述することができます。

ROS2 Humble(Ubuntu 22.04)の環境では、標準でPython 3.10が採用されており、追加の複雑なインストール作業なしに環境を整えられるのが大きなメリットです。

以下のコマンドで、必要なツールを一括で導入します。

apt update
apt install -y \
    python3 \
    python3-pip \
    python3-venv \
    python3-dev

確認コマンド :
python3 --version
pip3 --version

おわりに

いかがでしたでしょうか。

今回は、Raspbot V2の購入から組み立てとROS2 Humbleのセットアップまでをご紹介しました。

もちろんセットアップの方法は今回の例だけではないので、参考URLのものもチェックしてみてください。

次回はラズパイとロボットの動作についてのセットアップについてまとめていきます。

参考URL

Ubuntu22.04におけるROS2 Humbleの環境構築 | ロボットシステムデザイン研究室
ubuntu22.04にROS2 Humbleをインストールする - Qiita
はじめに ubuntu22.04LTSにROS2 Humbleをインストールしたので最低限必要なコマンドをメモ aptリポジトリの追加 sudo apt update && sudo apt install curl gnupg lsb-release sudo cur...