1、slam的框架:
2、前端的具體步驟:
3、相機和路標的建模以及初始化
對於相機pose來說,一般以旋轉矩陣r和平移矩陣t來表示
對於路標點landmark來說,可能使用的引數主要有絕對座標xyz,逆深度p,灰度值等
4、關鍵幀的若干問題:
5、slam問題中前端重要還是後端重要:
前端能非常體現乙個slam的追蹤效果;1、那種slam演算法效果好,可不可以比較???在實現中,儘管後端存在明顯的理論差異,很難直觀體驗在最終精度上
orb_slam2使用covisibility-graph;dso使用帶邊緣化的滑動視窗;tango使用msckf
實驗效果:orb_slam2具有較好的全域性精度,但無回環時dso具有飄移較少,tango計算量明顯比較小。
2、演算法的結果與資料集關係很大
具體資料集由簡到難:kittikitti:視野開闊,動態物體少、標定準確
euroc:人工設定場景,紋理豐富,**方式有變化
tum-mono:場景多樣,主要為真實場景
實際工程中更多考慮的是計算量和精度的平衡
3、前端的差異導致最終的結果比較明顯
好的前端:追蹤效果好,不容易丟,計算速度快,累計誤差小4、前端(視覺里程計,vo)的定性比較
直接法的耗時與效果主要依據提取特徵點的數目多少
1、乙個傳統的雙目光流前端
2、特徵點提取
fast/gftt角點提取的方式:
3、光流
光流可以追蹤乙個時刻的角點在下個時刻的影象位置
基於灰度不變假設
光流在slam中的作用:
光流的侷限性:
1、為什麼需要關鍵幀
2、如何選擇關鍵幀關鍵幀之間不必太近(退化或者三角化問題)對於非關鍵幀,只執行前端演算法,不參與後端優化關鍵幀之間不能太遠(共視點太少)
vio中,定期選擇關鍵幀(假設
bg
、ba
在關鍵幀期間不變)
所以,對於非關鍵幀,誤差會逐漸累積,直到該幀被作為關鍵幀插入後端,ba才會保證視窗內的一致性
3、選取關鍵幀的策略
在計算量允許範圍內,且不引起退化時,應該盡可能多地插入關鍵幀4、典型slam系統關鍵幀插入策略
單目slam中,在插入關鍵幀時計算路標點的三角化:
理論推導:
第六講 if 語句
格式 單分支if 條件測試命令 then 命令序列 fi 多分支 if then 命令序列 else 命令序列 fi bin bash data new create if f file then echo exist file cat file wc l rm file else touch fi...
第六講感悟
方法是處理業務邏輯的 滿足使用者需求,有開發者設計的具有一定邏輯的 鄙人認為可以把方法看作是數學中的方程式,帶入因變數進行計算,得到所要求得的值 方法應盡可能單 一 簡單 容易理解。因此關於方法的返回值 有return語句的方法有可能還需被呼叫到其他方法中去使用 類似於三元一次方程兩兩相消後再求一次...
第六講 堆疊操作
本節中的例子其結構和例1一樣,僅改變mydisplay和myreshape。例4 利用堆疊繪製三個物體 乙個綠色的茶壺,乙個藍色的茶壺,乙個紅色的立方體 部分 void mydisplay void void myreshape glsizei w,glsizei h 執行後,我們可以看到左邊為乙個...