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

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

ROS2-HumbleのRaspbian-Bullseye (32bit/64bit)向けビルドを公開しました。

ROS2にHumbleが追加されて2ヶ月…

Raspbian + ROS2 に新たなラインナップ「Humble」を追加しました。こちらは、32bit・64bit両対応となっています。

github.com


Ubuntuがまだ重く、Raspbianでしか動かない専用バイナリが多く配布されていたbuster世代と比べると、Ubuntuも軽快に動くようになり、専用バイナリすら配布されていないBullseyeでROS2をあえて動かすメリットはあまりないです。

しかしながら、GUIが軽快に動くことを考えるとRaspbianも使えなくはない?と考えています。

例えば最近日本に上陸したRaspberry Pi Zero 2 W。このボードでしっかりとROS2が動きます。

前回の記事↓

ar-ray.hatenablog.com

レスポンスの早いRaspbian OSと高機能なC++ APIが揃ったROSライブラリを組み合わせれば、構成機能の選択肢が増えていいのかなーと思ったりしています。

ちなみに、micro-rosではRaspbianがサポートされているのにRaspbianではROS2をサポートしていません…


インストール方法

以下のコマンドは、次の環境を想定しています。

  • OS : Raspberry Pi Bullseye 64bit
  • 状態 : ほぼ初期状態 (wgetすら通らなかった気がします)
curl -O https://raw.githubusercontent.com/Ar-Ray-code/rpi-bullseye-ros2/main/install.bash
bash install humble aarch64 0.1.0 /opt/ros
# > パスワードを入力

※デフォルトのオプションでは、32bit版humbleをインストールするようになっているので注意です。

インストール後は、自分のワークスペースを作成してパッケージをビルドします。

joyパッケージやcv_bridgeなどはros2.reposに入っていない関係上、ビルドしていないため、その都度GitHubからダウンロードしてビルドする必要があります。


ビルド方法

残念ながら、私の力では最新のバージョンをインストールすることはできません。そもそも安定したバージョンを求めるならば、Ubuntuの方をインストールしてaptで入手したほうが効率も良いでしょう。

それでも、最新のROS2を入手したければ自力ビルドをします。

リポジトリにはbuild.bashなるものがありますが、何故かHumbleは自動で依存関係順にビルドしてくれなかったので使えません…

colconコマンドオプションの --continue-on-error (エラーになっても可能なパッケージのビルドは続行)や --packages-skip-build-finished (ビルド済みとみなせるパッケージのビルド確認をスキップ) --packages-skip-up-to (ビルド対象から除外)を活用して効率よくビルドしていきます。

ビルド順番や除外パッケージなどの詳細はBuild-memo.mdを参照してください。

除外対象パッケージ

以下は、ビルドが重すぎたり依存関係を解決できなかったがゆえに除外せざるを得なかったパッケージです。

いずれもRaspberry Piで動かすにはリソース不足になるパッケージであるため、ほとんど無視して大丈夫だと思います。

また、rqt系はインストールは通るものの、Qt関連のリンクエラーで動きません。

  • rviz_ogre_vendor
  • rviz_rendering
  • rviz_common
  • rviz_rendering_tests
  • rviz_visual_testing_framework
  • rviz2
  • rosbag2_transpor
  • rosbag2_transport
  • rosbag2_py
  • ros2bag
  • rqt_bag


32bit版の注意

特に理由がなければ32bit版をビルドする意味もないのですが、32bit版では atomic のリンクエラーが起こります。

該当パッケージの修正済みCMakeListsのURLを載せます。


サポート外のプラットフォームにインストールさせる作業は、そのパッケージの依存関係などを詳しく知るきっかけになったり、デバッグ力を向上すると思います。

ただし下手すると1週間・1ヶ月と余暇を潰す可能性があるので、趣味の場合は特に要注意ですね…