1. 程式人生 > >Cartographer原始碼閱讀(3):程式邏輯結構

Cartographer原始碼閱讀(3):程式邏輯結構

Cartographer早期的程式碼在進行3d製圖的時候使用了UKF方法,檢視現有的tag版本,可以轉到0.1.0和0.2.0檢視,包含kalman_filter資料夾。

資料夾中的pose_tracker類檔案在mapping_3d的檔案加下有kalman_local_trajectory_builder。目前這部分程式碼已經移除,整個程式碼的結構也發生了較大變動。

當前專案主要的內容:慣導追蹤ImuTracker、位姿估算PoseExtrapolator、自適應體素濾波AdaptiveVoxelFilter、掃描匹配、子圖構建、閉環檢測和圖優化。

 當前主要採用互相關分析方法進行掃描匹配。

相關推薦

Cartographer原始碼閱讀(3)程式邏輯結構

Cartographer早期的程式碼在進行3d製圖的時候使用了UKF方法,檢視現有的tag版本,可以轉到0.1.0和0.2.0檢視,包含kalman_filter資料夾。 資料夾中的pose_tracker類檔案在mapping_3d的檔案加下有kalman_local_trajectory_builder

Cartographer原始碼閱讀(1)程式入口

1 [email protected]:~$ sudo apt-get install kdevelop 2 [sudo] password for yhexie: 3 Reading package lists... Done 4 Building dependency

Cartographer原始碼閱讀(8)imu_tracker

1 /* 2 * Copyright 2016 The Cartographer Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use

Cartographer原始碼閱讀(2)Node和MapBuilder物件

  上文提到特別注意map_builder_bridge_.AddTrajectory(x,x),檢視其中的程式碼。兩點:   首先是map_builder_.AddTrajectoryBuilder(...),呼叫了map_builder_物件的方法。其次是sensor_bridges_鍵值對的賦值。

Cartographer原始碼閱讀(5)PoseGraph位姿圖

PoseGraph位姿圖 mapping2D::PoseGraph類的註釋: // Implements the loop closure method called Sparse Pose Adjustment (SPA) from// Konolige, Kurt, et al. "E

Ethzasl MSF原始碼閱讀(1)程式入口和主題訂閱

Ethz的Stephen Weiss的工作,是一個IMU鬆耦合的方法。 1.程式入口:ethzasl_msf\msf_updates\src\pose_msf\main.cpp 1 #include "pose_sensormanager.h" 2 3 int main(int argc,

Cartographer原始碼閱讀(7)軌跡推算和位姿推算的原理

其實也就是包括兩個方面的內容:類似於運動模型的位姿估計和掃描匹配,因為需要計算速度,所以時間就有必要了! 1. PoseExtrapolator解決了IMU資料、里程計和位姿資訊進行融合的問題。 該類定義了三個佇列。 1 std::deque<TimedPose> timed_pose_

Cartographer原始碼閱讀(9)圖優化的前端——閉環檢測

約束計算 閉環檢測的策略:搜尋閉環,通過匹配檢測是否是閉環,採用了分支定界法。 前已經述及PoseGraph的內容,此處繼續。位姿圖類定義了pose_graph::ConstraintBuilder constraint_builder_物件。 1.ConstraintBuilder類圖 定義了S

Ethzasl MSF原始碼閱讀(3)MSF_Core和PoseMeasurement

1.MSF_Core的三個函式:ProcessIMU、ProcessExternallyPropagatedState和AddMeasurement MSF_Core維護了狀態佇列和觀測值佇列,這裡需要結合論文思考這個狀態佇列的作用。 ProcessIMU方法: 1 template<

Cartographer原始碼閱讀(4)Node和MapBuilder物件2

  MapBuilder的成員變數sensor::Collator sensor_collator_;   再次閱讀MapBuilder::AddTrajectoryBuilder方法。首先構造了mapping::GlobalTrajectoryBuilder例項,接著作為引數構造了CollatedTraj

Cartographer原始碼閱讀(6)LocalTrajectoryBuilder和PoseExtrapolator

LocalTrajectoryBuilder意思是區域性軌跡的構建,下面的類圖中方法的引數沒有畫進去。 注意其中的三個類:PoseExtrapolator類,RealTimeCorrelativeScanMatcher類和CeresScanMatcher類。 (1)PoseExtrapolator類(

Spring4.3.12原始碼閱讀系列1-環境搭建

學習任務 近期想增加部分原始碼閱讀經驗,提高自己在造輪子方面的實力,增長些在設計模式應用方面的編碼能力,以及懷著向大佬們膜拜的心情,開始有計劃地閱讀Spring原始碼 前期準備 以下幾項準備事項,算是基本的日常開發環境,就算沒有,也是動動手很快安

Oracle11g溫習-第一章 3、ORACLE邏輯結構

reat tables 邏輯結構 partition 一個數 alt 解決 不能 爭用 2013年4月27日 星期六 10:27 Oracle邏輯結構的相關數據字典: 記錄各個表空間的詳細信息。 SYS @ prod > select tablespace

《深入分析Linux核心原始碼》筆記Linux 核心結構

一、Linux 核心在整個作業系統中的位置                      圖1 Linux核心在整個作業系統中的位置 1)使用者程序 使用者程序位於作業系統的最上層,它執行在作業系統上,成為一個作業系統中的一個程序。 2)系統呼叫介面 應用程式中,可以

Caffe原始碼理解3Layer基類與template method設計模式

目錄 寫在前面 template method設計模式 Layer 基類 Layer成員變數 構造與析構 SetUp成員函式 前向傳播與反向傳播 其他成員函式 參考 部落格:blog.shinelee.me | 部落格園 | CS

Caffe原始碼理解1Blob儲存結構與設計

Blob作用 A Blob is a wrapper over the actual data being processed and passed along by Caffe, and also under the hood provides synchronization capability b

Caffe原始碼解析3Layer

layer這個類可以說是裡面最終的一個基本類了,深度網路呢就是一層一層的layer,相互之間通過blob傳輸資料連線起來。首先layer必須要實現一個forward function,前遞函式當然功能可以自己定義啦,在forward中呢他會從input也就是Layer的bottom,對了caffe裡面網路的

WebRTC原始碼分析四視訊模組結構

本文在上篇的基礎上介紹WebRTC視訊部分的模組結構,以進一步瞭解其實現框架,只有瞭解了整體框架結構,對區域性演算法修改才能夠胸有成竹。 一、對外介面        對外介面有ViEBase,ViECapture,ViECodec,ViEEncryption,V

Tensorflow object detection API 原始碼閱讀筆記RPN

Update: 建議先看從程式設計實現角度學習Faster R-CNN,比較直觀。這裡由於原始碼抽象程度較高,顯得比較混亂。 faster_rcnn_meta_arch.py中這兩個對應知乎文章中RPN包含的3*3和1*1卷積: rpn_box_pred

原始碼閱讀系列為什麼要閱讀原始碼

一.為什麼要閱讀程式碼   養成閱讀高品質程式碼的習慣,可以提高編寫程式碼的能力。   電腦科學是一門實踐性很強的學科,很多內容在書本上根本學不到。就拿專案的組織來說,沒有什麼書籍專門論述應該如何組織與管理專案的目錄結構,因為這本身就是一種見仁見智的活動,要