はじめに
RealSense D435を使って RTAB-MAPのROS 2パッケージを動かしてみた。
RTABMAP自体の説明について以下の記事や参考にある記事などを参照
環境
ROS | ROS 2 Humble |
OS | Ubuntu 22.04.2 LTS |
RealSense | D435 |
事前準備
RealSense をROS 2で使えるようにする
これらの記事を参考にしてRealSenseをROS2 Humble 環境で使えるようにしておく。
rtabmap_ros のインストール
sudo apt install ros-humble-rtabmap-ros
TurtleBot3のサンプルを動かす
動作確認のためTurtleBot シミュレータのサンプルを動かす。
TurtleBot シミュレーションとteleop-keyboardを起動。
export TURTLEBOT3_MODEL=waffle
ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
export TURTLEBOT3_MODEL=waffle
ros2 run turtlebot3_teleop teleop_keyboard
rtabmapを起動。
これは入力が/scan のみの例、teleop_keyboardでTurtleBotを動かすとrtabmap vizの3D Mapにマップと軌跡が表示される。
ros2 launch rtabmap_demos turtlebot3_scan.launch.py
RealSenseで実行
realsense2_cameraの実行。align_depth.enable=trueにする。
ros2 launch realsense2_camera rs_launch.py align_depth.enable:=true
rtabmapの実行。 approx_sync:=trueにしないとエラーが出た。
ros2 launch rtabmap_launch rtabmap.launch.py frame_id:=camera_link args:="-d" rgb_topic:=/camera/color/image_raw depth_topic:=/camera/aligned_depth_to_color/image_raw camera_info_topic:=/camera/color/camera_info approx_sync:=true
ToDo : 実行時のrtabmap vizの画像を貼る
- rqt_graph
おわりに
最新のROS 2 Humble環境でRealSenseを使って エラーなくRTAB-MAPを動かすことができた。
以前はソースからビルドが必要だったがバイナリインストールできるようになっていたので動かすまで簡単にできた。
IMUがないと回転に弱いので次はIMU付いたRealSenseを使って試したい。
IMUを使用して実行する手順
D455で動かしたが、多分D435iでも同じ
ros2 launch realsense2_camera rs_launch.py enable_gyro:=true enable_accel:=true unite_imu_method:=1 enable_sync:=true depth_module.profile:="640,480,30" rgb_camera.profile:="640,480,30"
exemplesにあるlaunchファイルをそのまま使用
ros2 launch rtabmap_examples realsense_d435i_color.launch.py
RealSenseの内蔵IMUについてはこちらの記事に書きました。
参考