RealSense
⚠️:現在のrealsense-rosは、SDKバージョン互換性の関係でビルドに失敗することが確認されています。最新のRealSense-SDKをビルドするか、バージョンを落としたrealsense-rosを使用するようにしてください。
RealSenseは、インテルが開発した3Dカメラの製品群です。RealSenseカメラは、複数のカメラと深度センサーを内蔵しており、3D画像を捉えることができます。これにより、3Dスキャンや物体の深度推定、顔認証、手指のトラッキングなどが行えるようになっています。
ここではD435をはじめとしたデプスカメラとT265をサポートしたROS2向けlibrealsenseライブラリラッパーを使用する方法について書きます。
ただし、librealsenseのAPIに慣れている場合は、ほとんどの場合librealsenseのAPIを直接使用することを推奨します。
付録2にlibrealsenseのRaspberryPiOS向けのビルド方法について書いています。
librealsense2のインストール
RaspberryPi4向けの独自ビルドdpkgを作成しています。次のコマンドでインストール可能です。
librealsense自体をビルドしたい場合は公式チュートリアルや付録2:librealsenseのビルド
を参考にしてください。
wget https://s3.ap-northeast-1.wasabisys.com/download-raw/dpkg/librealsense/debian/bullseye/librealsense-dev_2-53-1_arm64.deb
sudo apt install ./librealsense-dev_2-53-1_arm64.deb
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
ソースコードのダウンロード
次のコマンドを実行してソースコードをダウンロードします。
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/vision_opencv.git -b humble
git clone https://github.com/ros-perception/image_common.git -b humble
ビルド
ビルドします。
事前にrealsenseのパスを通す必要があります。(多分OpenCV_DIR
いらないかも)
source /opt/ros/humble/setup.bash
cd ~/ros2_ws
export realsense2_DIR=/usr/local/lib/aarch64-linux-gnu/cmake/realsense2/
export OpenCV_DIR=/usr/lib/aarch64-linux-gnu/cmake/opencv4/
colcon build
実行
オプションでIDを指定しない場合は、1台のみ認識可能です。
モードは自動で決定されます。
source ~/ros2_ws/install/setup.bash
ros2 launch realsense2_camera rs_launch.py
D435
Rviz2やrqt_image_viewで確認することができます。Imageを選択します。
PointCloudを出力する場合、RaspberryPiでは処理能力が足りませんが、decimation_filter.enable
パラメータをtrueにすることでぎりぎり使用することができます。
ただし、画質を落とさなければすぐに処理落ちするので、RaspberryPiでPointCloudを使用するのは現実的ではないです。
ros2 launch realsense2_camera rs_launch.py pointcloud.enable:=true decimation_filter.enable:=true
T265
OdomがPublishされるので、Rviz2でOdometryを選択してトピックを選択します。