在ROS上運行的RTAB-MAP(基于即時外觀建圖)
在之前的blog中,我分享了Quanser QCar的2DLidar巡線功能。在QCar正式發布即將來到的一周年之際,我想再次與大家分享我在QCar上做的新研究。我想說說使用RTAB-MAP(基于即時外觀建圖)的過程以及對比于創建2D地圖,創建3D地圖的優勢,我還將展示如何在ROS中實現這一技術。
什么是RTAB-MAP?
RTAB-MAP (Real-Time Appearance-Based Mapping)是用RGBD相機、立體相機或3D激光雷達的同時定位與地圖構建。這些傳感器被用作基于外觀的增量式閉環探測器。這個過程使用詞袋模型方法來決定每一幀新獲取的圖像(或激光雷達掃描)是來自之前的位置還是新的位置,然后應用圖像優化器最小化每一幀里的錯誤。在整個過程中,將用儲存管理方案來限制用于閉環檢測和圖像優化的位置數量,這是為了保證在處理大規模環境時的實時性能。
為什么使用RTAB-MAP?
3D繪圖相對于2D的一個好處是三維圖像能夠更好地呈現對象本身。在二維地圖中,我們僅僅知道激光雷達所位于高度的距離信息,該位置通常位于自動駕駛汽車的頂部。然而在地面水平上或激光雷達與地面之間的距離信息是未知的,這就是為什么自主導航系統很少使用二維占據柵格地圖。這就是為什么我們的QCar添加了四個CSI廣角攝像頭,在頂部的RGBD攝像頭確保能夠包含全面的視覺信息。
比如在地下煤礦中運行的自動駕駛汽車,它的工作空間通常是狹窄的隧道并帶著各個方向的急彎。車輛需要有關前方車輛的足夠信息,以便可以相應地規劃速度和行車軌跡。在這個例子中,車輛位于地下所以無法進行GPS導航,車輪下方打滑從而導致里程表數據不準確。RTAB-MAP在這個時候就變得非常有用,只要車輛安裝了指向前方的RGBD攝像頭來收集3D圖像信息,基于RTAB-MAP的算法,車輛能夠計算視覺里程表數據,該數據可以和車輪的數據表進行傳感器數據融合。
QCar上的應用
我決定通過使用rtabmap_ros軟件包進行三維同時定位與地圖構建,在QCar上使用RGBD相機,實現起來非常簡單直接。
●運行RGBD相機來手機深層數據
●使用游戲手柄駕駛QCar
●繪制三維地圖及車輛軌跡
啟動RGBD相機,您只需要為Intel Realsense相機運行ROS軟件包:
以下為運行指令:
roslaunch realsense2_camera rs_camera.launch align_depth:=true
最后一個參數是將深度相機的信息與彩色相機信息整合,確保深度信息與彩色相機中的每個像素對齊。使用ROS最大的好處之一就是強大的ROS社區提供了許多現有的軟件包,他們能讓您快速啟動并運行軟件,一旦您啟動了RGBD相機,下一步就是用游戲手柄來驅動QCar。我用的工具是Simulink以及Quanser強大的實時控制軟件QUARC,我們的軟件工程師花費了大量的時間用QUARC來創建不同的自動駕駛應用程序。如果你想要知道如何在Simulink中實現手動驅動,請訪問我們的Quanser官網進入QCar頁面進行下載。
最后一步是實行以下指令來實現數據可視化:
roslaunch rtabmap_ros rtabmap.launch \
rtabmap_args:=”–delete_db_on_start” \
depth_topic:=/camera/aligned_depth_to_color/image_raw \
rgb_topic:=/camera/color/image_raw \
camera_info_topic:=/camera/color/camera_info \
approx_sync:=false \
rtabmapviz:=false \
rviz:=true
主要指令后的參數是通知ratbmap的算法來接收來自RGBD相機的話題并打開可視化工具??臻g中顯示了來自RGBD相機的三維地圖,在計算距離信息之后,它還將在地面上繪制二維占據柵格地圖。
下面的視頻就是這個應用的實時演示(視頻請點擊閱讀原文)。當我駕駛QCar時,地圖的更新基于對閉合環路的檢測,并根據數據里程表來計算軌跡。就算在QCar遇到急轉時,算法也依然可以更新視覺數據,當QCar回到出發的位置時,你會看到三維視覺地圖沒有改變,這也就證明了三維地圖及其生成的位置信息非常準確。
我們還能改進什么?
考慮到RGBD相機的本質,默認刷新率設置為60赫茲,所以當相機畫面移動太快,光流量傳感器會丟失信息。而且,環境中的照明條件需要非常充足,否則算法會難以檢測到相機畫面是否有更新,且有可能難以與上一幀的相機畫面進行比較。這個問題的解決方法就是我們可以將里程表數據和雷達技術融合在一起。由于我是ROS用戶,為了提升這個應用的性能,我的下一個目標是將來自hecto slam的位置數據與里程表數據融合?;诩す饫走_不受照明條件的限制,而且我們之前已經測試了激光雷達的性能,我能夠相信來自它的位置數據。
無人駕駛技術如今蓬勃發展。單單一個RGBD相機能應用于不同領域,那么集合所有傳感器后的應用將會有無限的可能。我希望這篇推文能夠讓用戶或未來的用戶了解到在QCar上能夠有無數的應用,而我只說了一種。如果您對QCar的應用興趣濃厚,請在微信后臺給我們留言,謝謝!
閱讀原文:https://mp.weixin.qq.com/s/6s__gKY6QGyXziJX5nxFYw