はじめに
Dense Visual SLAMのRTAB-Mapパッケージで自律走行を試してみました。AutowareはORB_SLAM2で自己位置推定ができるのですが、生成されたPointCloudマップを活用したかったので今回はRTAB-Mapを使用しました。
前提
- Jetson AGX Xavier
- RealSense D455
- JetPack 4.2
- ROS melodic
- RTAB-Map
インストール
$ sudo apt install ros-melodic-rtabmap ros-melodic-rtabmap-ros
マップ作成
RTAB-MapとRealSenseのノードを立ち上げてマニュアルで走行させてマップを作成します。車両の速度をかなりゆっくりにしないと自己位置を簡単に見失って失敗します。今回は狭いエリアで試してみました。
rtabmap_terminal
$ roslaunch rtabmap_ros rtabmap.launch rtabmap_args:="--delete_db_on_start" \
frame_id:=camera_link \
depth_topic:=/camera/depth/image_rect_raw \
rgb_topic:=/camera/color/image_raw \
camera_info_topic:=/camera/color/camera_info \
rtabmapviz:=false rviz:=true rgbd_odometry:=true
realsense_terminal
$ roslaunch realsense2_camera rs_aligned_depth.launch
自己位置推定
マップ作成後、下記のコマンドを実行すると/rtabmap/localization_poseに自己位置が出力されるので、このデータをもとに車両を制御します。制御方法は別途まとめる予定です。
$ roslaunch rtabmap_ros rtabmap.launch \
frame_id:=camera_link \
depth_topic:=/camera/aligned_depth_to_color/image_raw \
rgb_topic:=/camera/color/image_raw \
camera_info_topic:=/camera/color/camera_info \
rtabmapviz:=false rviz:=true \
rgbd_odometry:=true localization:=true
走行デモ
下記の動画は3倍速再生です。作りが甘いので少しフラフラしています。
RTAB-Map Autonomous Driving pic.twitter.com/ZcYCGBBaIQ
— tutu (@tutu68018594) September 30, 2020