輸入是本幀的特徵點[id (cam_id, xyz_uv_vxvy)]
,包含了檢測關鍵幀,估計外部引數,初始化,狀態估計,劃窗等等
檢測關鍵幀,選擇margin幀:addfeaturecheckparallax()
if (f_manager.addfeaturecheckparallax(frame_count, image, td))
marginalization_flag = margin_old;//新一幀將被作為關鍵幀(標誌位margin_old=1)
有幾個類:
featuremanager:特徵點管理類,主要包含list feature;
featureperid:第id個特徵點的資訊:出現次數、逆深度、vector feature_per_frame;
vector feature_per_frame:該特徵點在各個影象中的資訊:位置、速度等。
估計外部引數
聯合初始化(如果還沒有初始化)
用視覺pnp求位姿,同時求imu的bg。
f_manager.
initframeposebypnp
(frame_count, ps, rs, tic, ric)
;深度已知,用pnp
//ps, rs, tic(平移外參), ric(旋轉外參)是輸出的結果
f_manager.
triangulate
(frame_count, ps, rs, tic, ric)
;
然後後端優化:optimization
然後滑窗:slidewindow
updatelateststates()
就是把當前狀態放到前次狀態,為下一次做準備
如果已經初始化
就不了,而是用視覺特徵點、imu預積分聯合狀態估計。
首先三角化特徵點空間位置:
f_manager.triangulate(frame_count, ps, rs, tic, ric);
然後
optimization()
同上
slidewindow()
同上
vins部落格的一部分7
其中,輸出在ps,rs中,tic為tbc ric為rbc 1 將本幀所有的 已知深度的點,利用它第一次出現的幀的位姿和當時三角化出的xyz,來計算出其世界系座標並存入pts3d,相應的當前幀的歸一化平面座標存入pts2d,步驟為 pim u rb c pc am t bc p r p t pimu ...
測試只是一部分
對於很多測試人員來說,測試相關的內容是工作的全部,這是我們的視角。但是換個角度也許就不是這樣。首先我們工作的地方大部分是商業組織,是某個公司,開發某類產品或者提供某類服務,也就是business。所以從組織的層級往上看,到了一定的級別,其實看到的是業務 產品等東西,當然他們也關心我們技術和競爭對手的...
Laravel 一部分總結
1.使用命令自動建立model層 進入所在目錄 php artisan make model test 2增刪改查 toarray 將資料變成陣列 public functionusertest 增 預設有兩個字段,可以在model層關閉,或者在表中新增 public timestamps fals...