えいあーるれいの技術日記

ROS2やM5 Stack、Ubuntuについて書いています

rpi-bookwormでROS 2は動きます(RaspberryPi5・ROS 2 iron)

RapberryPi5が公開されてから1ヶ月経過しました。

技適が通って日本で使える日が待ち遠しいですね‥!


ところで、RaspberryPi5はあたらしいRaspberryPi OSである「bookworm」を採用し、「bullseye」はレガシーOSとなることはご存知でしょうか?

これまでのOSから大きくアップデートされているため、かなり相違点があるようです。

つまり、ラズパイでROS2は動きます。が通用しなくなるかもしれないというわけです。(Ubuntuのほうはもちろん動きます)


そこで、新たにbookworm環境でビルドして動作確認を行ったので、紹介します。


RaspberryPi OS Bookwormとは?

Bookwormは2023年7月にリリースされたDebianの最新ディストリビューション(debian 12)です。

デフォルトのLinuxカーネルバージョンが6.1になったりPythonが11になったりと最初からインストールされているバージョンが変わっていたりしますが、最も大きな変更はデフォルトディスプレイサーバがWaylandになったことでしょう。

この変更については、新OSについて説明しているサイトだとどこでも触れられています。

Waylandでは、パフォーマンスを安定させつつウィンドウの滑らかさを実現しているそうで、レガシーなX-windowシステムを置き換えています。

他のLinuxでもWayland採用の動きが進んでいるそうで、GUIアプリケーションを作成される場合は注意が必要です。


この変更はRviz2の動作に大きく影響しており、Waylandサポートを行っていないRviz2は実行時にコケてしまいます。

Rviz2がコケる

この問題はRviz2のリポジトリでも言及されていますが、Ubuntu22を基準としているため、Waylandのサポートは当面されないみたいです。

Wayland Support · Issue #847 · ros2/rviz · GitHub

幸い、RaspberryPi OSでは、ディスプレイサーバのスイッチができるため、X11に切り替えて動かすことにします。


インストール

ラズパイOS自体のインストールは以下のURLから進んでください。

この際に使用するOSは「RaspberryPi OS bookworm 64bit」を選択してください。

www.raspberrypi.com


初期セットアップが終わったら次のコマンドを使用してROS-Ironをインストールします。

sudo apt update
sudo apt upgrade -y

wget https://s3.ap-northeast-1.wasabisys.com/download-raw/dpkg/ros2-desktop/debian/bookworm/ros-iron-desktop-0.3.2_20231028_arm64.deb
sudo apt install -y ./ros-iron-desktop-0.3.2_20231028_arm64.deb
sudo pip install --break-system-packages vcstool colcon-common-extensions # for build

pipでインストールする際に、--break-system-packagesオプションを付けることを忘れないでください。

また、dpkgのdepend欄には点群処理用のライブラリなど余分なものが入っています。

ランタイムとしてインストールしたい&ディスクスペースがシビアな場合は、自前でビルドすることをおすすめします。


インストールが終わったら source /opt/ros/iron/setup.bash で適用します。

ラズパイOSでROS 2は動きます!


Rviz2の動かし方

Wayland環境でもROS 2は動きますが、Rvizは動きません。

そのため、raspi-configで設定を変更します。(raspi-configは sudo raspi-config で起動します)

5 Advanced Options -> A6 Wayland -> W1 X11 の順に選択します。

X11に変更する方法

設定を行ったら再起動をしてください。


リポジトリ

github.com