こんにちは。koraです。
前回、Raspberry Pi 4 に ROS 2 Humble をインストールしたわけですが、今回は RealSense を利用できるように環境構築します。
RealSense について
過去の記事でも記載しましたが、このロボットには RealSense を搭載する計画です。
RealSense はインテルのデプスカメラシリーズです。2015 年に登場し、低価格で使い勝手が良いことからロボット分野でも広く使われています。
2021 年に一部製品の EOL が発表され、今後の行く末が懸念されていましたが、幸いなことにステレオカメラ系は製造、販売、サポートが続けられるようです。
参考リンク
- インテル® RealSense™ LiDAR 、顔認証および追跡製品ファミリは廃止されていますか?
- Special notice from Intel® RealSense™ regarding the recent press announcement
RealSenseのROS 2 Humble対応状況
RealSense を ROS で利用するには、以下のライブラリとパッケージをインストールする必要があります。
Ubuntu 20.04 までの環境であればどちらもビルド済みのバイナリが提供されていましたが、2022 年 9 月現在、Ubuntu 22.04 はまだ公式にはサポートされていないようです。
公式のサポートがまだとはいえ、ソースコードは GitHub に公開されていますし、ユーザーによって意見交換がなされています。librealsense の Issue#10439 Release to Ubuntu 22.4 / jammy によると、ソースからビルドすれば利用できるそうです。
環境構築
上記のリンクを参考に、librealsense と realense-ros をビルドします。
librealsenseのビルドとインストール
-
まず、必要なライブラリをインストールします。
$ sudo apt install git $ sudo apt install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
-
librealsense のリポジトリをクローンします。必要なのは development ブランチだけなので、-b オプションでブランチを指定し、–depth オプションでクローンするコミット履歴を制限しています。
$ git clone -b development --depth 1 https://github.com/IntelRealSense/librealsense
-
ビルドとインストールを実行します。
なお、RealSense サポートの投稿には、Linux のカーネルバージョンに依存しない RSUSB バックエンドを使用するように書かれています。また、Back End Recommended Configuration によると、RaspberryPi 向けには RSUSB バックエンドが推奨されているようなので問題なさそうです。
$ cd librealsense $ mkdir build && cd build $ cmake .. -DFORCE_RSUSB_BACKEND=true -DCMAKE_BUILD_TYPE=release $ make -j2 $ sudo make install
ビルドには1時間ちょっとかかりました。
-
librealsense のインストールが終わったら、udev rules をインストールします。
$ cd .. $ sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ $ sudo udevadm control --reload-rules && sudo udevadm trigger
-
RealSense を接続し、realsense-viewr を起動してインストールできたか確認します。
$ realsense-viewer
realsense-rosのビルドとインストール
-
必要な ROS パッケージをインストールします。
$ sudo apt install ros-humble-diagnostic-updater
-
realsense-ros のリポジトリをクローンします。ビルドするブランチは ros2-beta です。
$ mkdir -p ~/ros2_ws/src $ cd ~/ros2_ws/src $ git clone -b ros2-beta --depth 1 https://github.com/IntelRealSense/realsense-ros.git
-
realsense-ros の ROS パッケージをビルドします。
ここではメモリ 4GB の Raspberry Pi 4 を使っていますが、そのままビルドするとメモリ容量が足りずにフリーズしてしまいました。以下の環境変数を設定して並列にビルドが走らないように設定します。
$ export MAKEFLAGS="-j 1"
colcon を使ってビルドとインストールを実行します。なお、colcon は ROS 2 とは別のパッケージになっているので、まだインストールしていない場合は Install colcon を参考にインストールしてください。
$ cd ~/ros2_ws $ source /opt/ros/humble/setup.bash $ colcon build
こちらのビルドは10分程度で終わりました。
-
最後に動作確認をするため、ros2 launch コマンドを実行します。
$ source ~/ros2_ws/install/setup.bash $ ros2 launch realsense2_camera rs_launch.py
もう一つターミナルを開いて画像表示ウィンドウを起動します。
$ source /opt/ros/humble/setup.bash $ source ~/ros2_ws/install/setup.bash $ ros2 run rqt_image_view rqt_image_view
無事、RealSense の画像メッセージを表示することができました。
とりあえずカメラが動いてくれたことで一安心です。Ubuntu や ROS をアップグレードしたことで使い勝手が変わっているところも出てくると思いますが、今後慣れていきたいと思います。