上一節介紹了在cartographer進行建圖和定位(在線和離線),
本節將分析cartographer運行時的誤差與延遲,主要是在線定位時的,并嘗試優化解決,
目錄
1,誤差分析
a,硬體精度
b,初值敏感
c,計算量大
2,延時優化
本地
全域
減少重復子圖
3,簡單小結
1,誤差分析
建圖時的漂移,重影等現象基本可以通過:
確保雷達足夠的頻率和角度;
建圖時移動速度均勻且不要過快;
調整建圖引數;足夠多的迭代優化;
融合里程計+陀螺儀等方式解決,
這里的誤差主要指在實時定位的定位錯差,
a,硬體精度
這個很明顯,定位的精度和原始資料的精度息息相關,
有條件的可以提高雷達,里程計,陀螺儀等硬體精度,也可以對初始資料優化處理,得到更精準的資料,
b,初值敏感
cartographer的定位程序,十分依賴初始定位坐標,如果初始位置定位就出錯,后續很難修正,
可以通過重定位或者在易于識別的地方初始定位解決,且確保初始定位到正確位置之后再繼續,
c,計算量大
大量的約束計算,以及全域優化的迭代計算,造成明顯的延遲誤差,
2,延時優化
因為延時基本上都是因為計算量大引起,所以延時優化得核心就是降低計算,
當然也有是因為硬體傳感資料延時或者網路延時引起的,但不涉及演算法,在此不予討論,
在實際使用中可以通過調整下列引數來減低計算量,
本地:
--當IMU和Odom足夠信賴時,可以關閉CSM,只使用位姿預估.
TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching = false
TRAJECTORY_BUILDER_2D.motion_filter.max_angle_radians 增大
TRAJECTORY_BUILDER_2D.motion_filter.max_distance_meters 增大
全域:
MAP_BUILDER.pose_graph.constraint_builder.min_score 降低
MAP_BUILDER.pose_graph.constraint_builder.max_constraint_distance 降低
MAP_BUILDER.pose_graph.constraint_builder.sampling_ratio 降低
減少重復子圖:
MAP_BUILDER.pose_graph.overlapping_submaps_trimmer_2d = {
fresh_submaps_count = 1,
min_covered_area = 2,
min_added_submaps_count = 5,
}
3,簡單小結
到這里為止,已經介紹了,cartographer在ros系統下的安裝,發布資料,引數調整,建圖定位以及延時誤差分析等,cartographer_ros篇章就告一段落了,
通過這一系列的文章,希望可以幫助大家快速的上手,并在實際應用中使用cartographer,有什么錯誤或者不足之處,也希望大家不吝賜教,
后續會有深入的代碼解讀和演算法優化,也歡迎有興趣的,想要繼續研究的小伙伴們一起交流討論,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/500763.html
標籤:其他
上一篇:cisco配置
