**解讀
附錄:vins-mono: a robust and versatile monocular visual-inertial state estimator 的設計思路主要突出兩點:
針對於單目的魯棒性很強的vio 系統
通用性很強的vio框架
從**和工程的設計思路無不體現著這兩點,從考慮周密的初始化過程,到球面相機模型的引入等等都有體現,至於中間的keyframe、sliding windows 以及4-dof pose graph optimization都是為了既保證優化的效能,也兼顧系統的實時性所做的一些考量。
解讀vins-mono
nonlinear graph optimization-based, tightly-coupled, sliding windows, visual-inertial bundle adjustment
code
功能ar_demo
視覺定位的乙個小應用demo
benchmark_publisher
訂閱估計的estimated_odometry, 然後與cvs中的groundtruth對比
calibration_images
訂閱相機的話題,儲存成,用於相機校準,支援魚眼相機,針孔相機
camera_model
各種相機模型的校準,入口函式
config
配置引數檔案
feature_tracker
使用光流法追蹤特徵點
pose_graph
後端優化
vins_estimator狀態估計
cmake files
function
vins_estimator/cmakelists.txt
生成vins_estimator node
feature_tracker/cmakelists.txt
生成feature_tracker node
pose_graph/cmakelists.txt
生成pose_graph node
camera_model/cmakelists.txt
生成calibration可執行程式 和camera_model庫
vins-estimator 主要程式,
pose_garph
feature_tracker 使用光流法追蹤特徵點
intrinsic_calib.cc 從其他的庫複製過來的
引數名稱
型別**
功能image_topic
string
yaml config file/image_topic
訂閱影象話題名稱
imu_topic
string
yaml config file/imu_topic
訂閱imu話題名稱
max_cnt
intyaml config file/max_cnt
max feature number in feature tracking
min_dist
intyaml config file/min_dist
min distance between two features
rowint
yaml config file/image_height
畫素行數-影象高度
colint
yaml config file/image_width
畫素列數-影象寬度
freq
intyaml config file/freq
frequence (hz) of publish tracking result. at least 10hz for good estimation. if set 0, the frequence will be same as raw image
f_threshold
double
yaml config file/f_threshold
ransac threshold (pixel)
show_track
intyaml config file/show_track
是否發布 tracking image話題
equalize
intyaml config file/equalize
當影象太亮/暗,是否開啟均衡補償
fisheye
intyaml config file/fisheye
是否使用魚眼相機
fisheye_mask
string
yaml config file/fisheye=1
fisheye_mask.jpg路徑
cam_names
std::vector
parameter.cpp全域性變數
畫素列數-影象寬度
window_size
intparameter.cpp全域性變數 20
滑動視窗的大小
stereo_track
intparameter.cpp全域性變數 false
是否使用雙目追蹤
focal_length
intparameter.cpp全域性變數460
焦距
pub_this_frame
intparameter.cpp全域性變數 false
不發布這幀
num_of_cam
intparameter.h 1
camera的數量
modeltype
camera::modeltype
yaml config file/model_type kannala_brandt/mei/scaramuzza/pinhole
camera的模型
solver_time
double
max_solver_time
確保實時性,最大求解時間 0.04ms
num_iterations
intmax_num_iterations
確保實時性,最大迭代次數 8,避免冗餘計算
min_parallax
double
keyframe_parallax
關鍵幀選擇的視差閾值 10 pixel
vins_result_path
intoutput_path/vins_result_no_loop.csv
不加回環的輸出結果
estimate_extrinsic
intestimate_extrinsic
ric[0] cv_r eigen_r
eigen::matrix3d
extrinsicrotation
imu與camera的旋轉
tic[0] cv_t eigen_t
eigen::vector3d
extrinsicrotation
imu與camera的平移
init_depth
double
vins_estimator/parameters.h
camera的數量
bias_acc_threshold
double
vins_estimator/parameters.h 1
acc偏置的閾值
bias_gyr_threshold
double
vins_estimator/parameters.h 1
陀螺儀偏置的閾值
tdint
config/td
imu與camera的固有時鐘差
estimate_td
intconfig/estimate_td
置位online estimate time offset between camera and imu
rolling_shutter
introlling_shutter: 0
0-全域性快門;1-捲簾快門
num_of_cam | int | parameter.h 1 | camera的數量
featuretracker 特徵點追蹤類
camerafactory 不同的相機型別和校準模型
tictoc 計算時間差的功能類
estimator
視覺SLAM(一) 視覺SLAM框架
主要參考書目是高翔博士的 視覺slam十四講 中間會記錄一些個人實踐經驗和思考。slam伴隨著機器視覺發展和機械人導航已經相對成熟,形成了合理高效的基本框架。主要包含 感測器資料 前端視覺里程計 後端優化 回環檢測 建圖。採集根據不同應用場景和需求進行選擇,主要有如下幾種感測器 也就是單獨乙個攝像機...
視覺SLAM 視覺SLAM相關開源演算法總結
第乙個實時 單目slam系統,基於ekf優化。單目,只有tracking,進行了有效的特徵點對的匹配。之後有enft slam.適用於各種各樣的相機,除了常見的單目,雙目,rgb d的分類,還適用於透視 魚眼甚至自己設計的相機。通過使用apriltag基準標記實現slam 76 提出了一種基於李代數...
視覺SLAM習題
視覺slam習題彙總 持續更新 ch3矩陣提取 主要是利用 block 對應習題提取左上角3x3矩陣 include include includeusing namespace std int main int argc,char argv 按照官網給出的計算方法,編譯出現 error eigen...