RealSenseはIntel社が発売しているデプスカメラで、小型にも関わらず高解像度・高フレームレートであることが特長として挙げられます。
2020年4月現在では、D435とD435iのモデルが最新版になっています。この2つの違いとしては、D435iの方が慣性測定ユニット(IMU)が搭載されており、位置推定や3Dマップ生成などに用いることができます。後々位置推定等を行う予定があるのであれば、D435iにしておいた方が良いと考えられます。
ROS2とRealSenseのラッパーをインストール
ROS2は、自己位置推定、物体認識等、ロボットアプリケーションのライブラリやツールを提供するROS(Robot Operating System)の次世代バージョンです。RealSenseもROS2のラッパーを提供しています。
https://github.com/intel/ros2_intel_realsense
スペック
- Jetson Nano
- Ubuntu 18.04
- ROS2 Dashing
ROS2をインストール
基本的に、上記レポジトリの方法に従えばインストールが可能です。特に注意すべき点は無く、公式に従えば問題なくインストールできるはずです。
https://index.ros.org/doc/ros2/Installation/Dashing/Linux-Install-Debians/
こちらにしたがってROS2 dashingをインストールしましょう。バージョンリストを見るとDashing DiademataがLTS(Long Time Support)のようで、EOLは2021年5月です。
ros2_intel_realsenseをインストール
https://github.com/intel/ros2_intel_realsense
こちらも上記のREADMEに従ってインストールをすれば特に問題なくインストールすることができるかと思います。インストール後、下記コマンドを実行して動作確認をしましょう。
ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz
1つ目のコンソールで上記コマンドを実行してRVizというROSの可視化ツールを起動させます。
ros2 run realsense_ros2_camera realsense_ros2_camera
2つ目のコンソールで上記コマンドを実行してRealSenseのノードを立ち上げた後、RVizを確認すると、下記のように5つのストリームが表示されていれば正常に動作できています。
起動時の注意点
インストール後に起動をさせようとしたときにいくつかハマった点がありましたので、注意点として挙げさせていただきます。
RVizのストリームが起動しない
source /opt/ros/dashing/setup.bash source ~/ros2_ws/install/local_setup.bash # console #1 launch rviz2 ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz
上記コマンドで、color, depth, infra1, infra2, pointcloudの5つのストリームが起動するはずなのですが、うまく起動しませんでした。これはRViz側の設定である、ros2.rvizがうまく読み込まれていないことが原因でした。うまくパスが通っていないのでしょうか・・
ros2.rviz自体は、レポジトリ に記載の方法でインストールをしていれば下記のパスにあるはずです。
~/ros2_ws/src/ros2_intel_realsense/realsense_ros2_camera/rviz/ros2.rviz
そのため、下記のように指定すれば見れるようになるかと思います。
ros2 run rviz2 rviz2 -d ~/ros2_ws/src/ros2_intel_realsense/realsense_ros2_camera/rviz/ros2.rviz
起動時にWARNが出てうまく表示されない
ros2 run realsense_ros2_camera realsense_ros2_camera
上記のコマンドを実行した時にWARNが出た上、RViz上でいくつかのストリームがうまく表示されない事象が発生しました。
[WARN] [RealSenseCameraNode]: Given stream configuration is not supported by the device! [WARN] [RealSenseCameraNode]: Stream: Infrared, Format: 9, Width: 640, Height: 480, FPS: 30
これは、接続する時にUSB2系を使っていたことが原因でした・・付属のUSB3.1ケーブルを使ったところ正常に表示されました。