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

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

librealsenseはRaspberryPi Bookwormで動きます(RealSense・Raspbian)

みなさん、楽しいAIカメラライフを送っていますか?

現在、私は「RaspberryPi OSではじめるROS2」のbookworm版を書いています🥫😇🥫

↓過去のZenn Bookはこちら

RaspberryPi OSではじめるROS2

昨年は、RaspberryPi 5の発表と同時にdebian bookwormのRaspberryPi OSがリリースされており、これまでのROS 2バイナリでは動かない可能性があります。


Bullseye→Bookworm間でハードウェアのEOLや新しいハードウェアのサポートなどROSが関係ないところもカバーしているこの本的にはBookwormで一通り動作確認できないとまずいというわけです。

妥協はしたくありませんが、年度末までには完成に持っていきたいと思っているので頑張っていきたいと思います💪(もちろん 迷い猫㌠の方も頑張りますよ)


RealSenseドライバも結構頻繁に更新されているようで

RealSenseを扱う際にお世話になっているであろうドライバ「librealsense」、コード構造がぐちゃぐちゃだったり、サポートが切れたコードはごっそりと削除したりとちょっと嫌な部分がありますがクロスプラットフォームで使えるとてもとてもいいライブラリです。

もちろんRaspberryPi OSでもビルド・実行できます。

2024/1/6現在の最新バージョンはv2.54.2です。

GitHub - IntelRealSense/librealsense: Intel® RealSense™ SDK

RealSenseをROS 2で使用したい場合は、realsense_rosを使用されると思いますが、このROSパッケージはlibrealsenseに依存しています。

dpkgでインストールされる場合はあまり気にならないかもしれませんが、このROSパッケージはlibrealsenseのバージョンに強く依存しており、現在のrealsense_rosのdevelopブランチは2.54.2でしかビルドが通りません。

なので、過去記事の通りにインストール手順を踏むと(原因が分かりやすいとはいえ)間違いなくビルドでコケてしまうという厄介仕様。

そのため、Bookworm対応のためにもう一度クリーンビルドする必要があります。


ビルド環境

  • コンピュータ:RaspberryPi 4
  • OS:RaspberryPi OS Bookworm (debian12)

  • ビルド対象:librealsense v2.54.2

ビルドレシピは非公開ですが、大体はIntelのページを見れば分かります。

Linux/Ubuntu - RealSense SDK 2.0 Build Guide


librealsenseのインストール

dpkg経由でドライバインストール

ROS 2で動かす最低限のlibrealsenseはdpkgでインストールできます。

こちらにもURLは載せますが、最新のURLはAr-Ray-code/installerから取得してください。

github.com

現時点では、pyrealsenseやtools、v4l2-backendを含んでいません。本当に最低限。

2.54.2・arm64:URL

取得したURLで次を実行

wget <取得したURL -O librealsense.deb
sudo apt install -y ./librealsense.deb

/usr/local/以下を弄るため、このディレクトリに色々と突っ込んでる人は注意してください。

udev-rulesの更新

udev-rulesも更新しておきます。

ウェブカメラとしてアクセスする場合は不要です。

sudo curl https://raw.githubusercontent.com/IntelRealSense/librealsense/master/config/99-realsense-libusb.rules --output /etc/udev/rules.d/99-realsense-libusb.rules
sudo udevadm control --reload-rules
sudo udevadm trigger


realsense_rosのビルド

rpi-bullseye-ros2のbookworm・Iron版をインストールした後に次の依存関係をインストールします。

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src

git clone https://github.com/IntelRealSense/realsense-ros -b ros2-development
git clone https://github.com/ros/diagnostics.git -b ros2
git clone https://github.com/ros-perception/image_common.git -b iron
git clone https://github.com/ros-perception/vision_opencv.git -b iron

cd ~/ros2_ws

source /opt/ros/iron/setup.bash
colcon build

これで全部の依存関係が通ればOK。通らなかった場合は原因を調査して再度ビルドします。

実行

source ~/ros2_ws/install/setup.bash
ros2 launch realsense2_camera rs_launch.py

rqt_image_viewは入っていませんが、Rviz2で可視化はできます。