vins部落格的一部分6

2021-10-13 09:51:26 字數 1243 閱讀 4426

輸入是本幀的特徵點[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...