二足歩行ロボット研修(kora編)

二足歩行ロボット研修(kora編)[30] ROS 2 Humble向けにRealSenseの環境構築

二足歩行ロボット研修(kora編)

こんにちは。koraです。
前回、Raspberry Pi 4 に ROS 2 Humble をインストールしたわけですが、今回は RealSense を利用できるように環境構築します。

RealSense について

過去の記事でも記載しましたが、このロボットには RealSense を搭載する計画です。

RealSense はインテルのデプスカメラシリーズです。2015 年に登場し、低価格で使い勝手が良いことからロボット分野でも広く使われています。

2021 年に一部製品の EOL が発表され、今後の行く末が懸念されていましたが、幸いなことにステレオカメラ系は製造、販売、サポートが続けられるようです。

参考リンク

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 をアップグレードしたことで使い勝手が変わっているところも出てくると思いますが、今後慣れていきたいと思います。

タイトルとURLをコピーしました