原创 ORB-SLAM2系統中的優化函數

SLAM系統中,一般的做法是通過P3P或者EPnP等方法進行投影估算出相機位姿,進而構建最小二乘對估計的相機位姿進行優化,從而得到精度比較高的位姿。優化完後可以剔除一些outlier點,這樣的話後邊再進行投影和優化的時候精度會有所保證。O

原创 ORB-SLAM2中LoopClosing線程主要流程梳理

LoopClosing線程主要工作是兩個:一個是對當前新到來的關鍵幀進行閉環檢測,看看之前的關鍵幀中哪個和當前關鍵幀形成閉環;另一個是糾正閉環,就是在檢測到閉環的時候要將當前關鍵幀和閉環關鍵幀的位姿拉到一起,形象點說就是進行融合(既然都存

原创 VINS-Mono代碼閱讀筆記(八):vins_estimator中的相機-IMU初始化

本篇代碼閱讀筆記接着上一篇VINS-Mono代碼閱讀筆記(七):vins_estimator中相機與IMU的外參標定,來學習一下VINS-Mono中初始化部分的代碼。單目緊耦合的VIO系統是一個高非線性系統,在系統開始運行的時候需要準確的

原创 VINS-Mono代碼閱讀筆記(七):vins_estimator中相機與IMU的外參標定

VINS SLAM系統運行過程中,其實就是根據一幀一幀的圖像之間匹配的特徵點,通過對極幾何進行相機位姿的計算,IMU的加入能夠將尺度極大的“精確化”,這樣就使得相機的運動有了測量尺度。那麼,系統中有了兩個sensor,這兩個sensor各

原创 VINS-Mono代碼閱讀筆記(三):vins_estimator中main函數分析

在VINS-Mono代碼閱讀筆記(一):從Euroc數據集的運行開始 中我們已經初步知道了vins_estimator中訂閱和發佈的topic,那麼,在研究vins_estimator模塊的代碼時,一個很有用的思路就是關注接收到的每一個t

原创 VINS-Mono代碼閱讀筆記(五):vins_estimator中IMU預積分處理

1.前言 本篇緊接着上一篇筆記 VINS-Mono代碼閱讀筆記(四):vins_estimator中process線程代碼分析 來分析IMU數據的相關處理代碼流程。 先上一張圖從代碼結構上看一下IMU處理在process函數中的位置。

原创 記錄一個VSCode中代碼跳轉不到定義文件的問題

問題描述:我使用的是Ubuntu16.04版本的Linux系統,安裝VSCode瀏覽和ROS系統相關的代碼,最近突然出現在IDE中跳轉不到函數定義的地方。重新安裝VSCode也沒有解決該問題。。。 問題原因:Visual Studio C

原创 記錄兩個ROS工程編譯時候的問題

1.contains a package but "catkin_make" must be invoked in the root of workspace contains a package but "catkin_make" mu

原创 VINS-Mono代碼閱讀筆記(四):vins_estimator中process線程代碼分析

process線程作爲estimator中的主要線程,對接收到的imu消息和image消息進行處理,進而通過這些信息估計出相機位姿。 1.process函數介紹 閱讀IMU相關代碼前,要能夠明白IMU都能測量哪些數據。IMU就是慣性測量單

原创 PlotJuggler的安裝遇到的問題記錄

1.PlogJuggler的安裝 在基於ROS系統進行開發的工程中,我們常常需要根據訂閱的rostopic來進行邏輯判斷進而執行操作,當遇到問題需要調試的時候,經常需要對接收的topic進行數據分析。通常的做法是對操作過程進行錄包(也就是

原创 VINS-Mono代碼閱讀筆記(十三):posegraph中四自由度位姿優化

本篇筆記緊接着VINS-Mono代碼閱讀筆記(十二):將關鍵幀加入位姿圖當中,來學習pose_graph當中的緊耦合優化部分。 在重定位完成之後,進行位姿圖優化是爲了將已經產生的所有位姿統一到一個全局一致的配置當中。如論文中展示的下圖所示

原创 單應矩陣學習筆記

單應矩陣是視覺SLAM當中一個很重要的概念,它用於描述處於共同平面上的一些特徵點在兩張圖像之間的變換關係。舉個現實例子,我們去商店買東西,結賬的時候櫃檯前的微信/支付寶收款二維碼就相當於處於同一個平面上的特徵點組成的平面,而張三打開手機端

原创 怎樣縮小人和人之間的差距——一點思考

1.最近幾年,網上似乎關於社會的階層分化、貧富差距、階層躍遷的討論熱度從未降低過。甚至於許多人都特別認可“寒門難出貴子”、“階層已經徹底固化”這樣類似的觀點。我覺得提出這些觀點的人,他們的論據也確實都能有力的支撐自己的結論,似乎說的也都對

原创 ORB-SLAM2中LocalMapping線程主要流程梳理

一、LocalMapping線程簡述 在ORB-SLAM2當中,LocalMapping作爲一個線程在系統啓動後就一直在運行,只是在Tracking線程“生產出”新的關鍵幀並插入到LocalMapping線程中的mlNewKeyFrame

原创 清明節的哀悼與思念

清明節,是一個讓我們停下腳步靜下心來緬懷逝去親人的日子。而今年的清明節卻顯得格外特殊,一定會成爲許多人永生的記憶。就在今天,全國和各個駐外使領館降半旗哀悼在新冠肺炎疫情中犧牲的烈士和逝去的同胞。即便是我自己,過去這段時間從網上讀到那些逝去