cartographer引數不夠用?自己自定義引數

2021-10-21 18:15:56 字數 1123 閱讀 9561

比如我想在pose_graph_2d.cc中新增乙個引數控制系統後端優化的頻率,怎麼新增呢?

第一步:pose_graph_options.proto新增新變數

double local_constraint_search_after_n_seconds = 12;

12是proto檔案的序號,每個引數不同即可。然後編譯程式。一般為

cmake .

. make

sudo make intsall

第2步 在pose_graph.cc檔案中新增要載入的該變數
options.

set_local_constraint_search_after_n_seconds

( parameter_dictionary-

>

getdouble

("local_constraint_search_after_n_seconds"))

;

local_constraint_search_after_n_seconds就是lua檔案裡自定義的名字,建議和proto相同即可。

第3步:在2d或3d中新增想要的功能,例如我在pose_graph_2d.cc中新增,意思就是當時間超過2s就新增一次約束,你也可以看到這裡當距離大於一定數值時,我也會嘗試新增一次約束給後端進行優化,這裡有個問題是新增的約束是否會生效呢?這裡可能是有點問題的,不過這裡只是乙個示範熟悉demo

if

(distance > options_.

optimize_every_meter()

||(current_time >

last_time + common::

fromseconds

( options_.

local_constraint_search_after_n_seconds()

)))}

else

第4步:在lua檔案中新增該引數,如在pose_graph.lua中新增
local_constraint_search_after_n_seconds =

2.,

cartographer 安裝編譯

ubuntu16.04 環境依賴 sudo apt get install y clang g git google mock libboost all dev libcairo2 dev libcurl4 openssl dev libeigen3 dev libgflags dev libgoo...

cartographer執行步驟

先驅動雷達 roslaunch rslidar pointcloud rs lidar 16.launch 再執行pointcloud to laserscan節點將三維資料轉化成二維 roslaunch pointcloud to laserscan point to scan.launch 最後...

cartographer 安裝問題

這裡只說安裝過程中遇到的問題,ceres solver 與 eigen3 版本不相容問題,我是17年10月進行的測試,現在的eigen3 已經更新了,已經不是16年的 eigen3。cd ceres solver 1.13.0 mkdir build cd build cmake make j4 s...