SLAM面试题
引用:https://zhuanlan.zhihu.com/p/68858564,這篇博主的定位是自動駕駛與機器人公司相關的SLAM職位
其面試題目有:
1、SLAM題目什么是閉環檢測?常用的方法有哪些?你用的哪種方法?有沒有創新? 解釋一下Gauss-Netwon和LM算法。 熟悉Ceres優化庫嗎?說一下。 描述(擴展)卡爾曼濾波與粒子濾波,你自己在用卡爾曼濾波時遇到什么問題沒有? 除了視覺傳感,還用過其他傳感嗎?比如GPS,激光雷達。。。 什么是緊耦合、松耦合?優缺點。 你認為室內SLAM與自動駕駛SLAM有什么區別? 地圖點的構建方法有哪些? 如果對于一個3D點,我們在連續幀之間形成了2D特征點之間的匹配,但是這個匹配中可能存在錯誤的匹配。請問你如何去構建3D點? RANSAC在選擇最佳模型的時候用的metric是什么? 除了RANSAC之外,還有什么魯棒估計的方法? 有哪幾種魯棒核函數? 3D地圖點是怎么存儲的?表達方式? 給你m相機n個點的bundle adjustment。當我們在仿真的時候,在迭代的時候,相機的位姿會很快的接近真值。而地圖點卻不能很快的收斂這是為什么呢? LM算法里面那個 [公式] 是如何變化的呢? 說一下3D空間的位姿如何去表達? 李群和李代數的關系。 求導 [公式] 給你一個H高W寬的圖像或者matrix,問如何去訪問每一個元素,是先訪問行呢?還是先訪問列?跟緩存還有關系~ 寫出單目相機的投影模型,畸變模型。 說一個自己熟悉的SLAM算法,Lidar/Visual slam,說優缺點。 讀Maplab,設計室內服務機器人地圖更新的方法、流程。 安裝2D lidar的平臺勻速旋轉的時候,去激光數據畸變,寫代碼 給兩組已經匹配好的3D點,計算相對位姿變換。已知匹配的ICP問題,寫代碼。 ORB-SLAM初始化的時候為什么要同時計算H矩陣和F矩陣? 說一下Dog-Leg算法 什么是邊緣化?First Estimate Jacobian?一致性?可觀性? 說一下VINS-Mono的優缺點 你做的工作在本質上有什么不同,貢獻,創新本質上在哪里? 什么是Essential,Fundamental矩陣? 給定幾個連續幀的帶有位姿的幀,如何去測量車道線相對于世界坐標系的坐標。 在給定一些有噪聲的GPS信號的時候如何去精準的定位? 如何標定IMU與相機之間的外參數? 給你xx誤差的GPS,給你xx誤差的慣導你怎么得到一個cm級別的地圖。 計算H矩陣和F矩陣的時候有什么技巧呢?實際上在問歸一化的操作。 給一組點云,從中提取平面。 給一張圖片,知道相機與地面之間的相對關系,計算出圖的俯視圖。 雙線性差值如何去做,寫公式。 RGB-D的SLAM和RGB的SLAM有什么區別? 機器人從超市門口出發,前往3公里外的小區送貨。請你設計一個定位系統,包括傳感器的配置、算法的流程,用偽代碼寫出來。 什么是ORB特征,ORB特征的旋轉不變性是如何做的,BRIEF算子是怎么提取的。 如果把一張圖像去畸變,寫公式,流程。 ORB-SLAM中的特征是如何提取的?如何均勻化的? 2、算法數據結構&C++ORB-SLAM的共視圖是什么結構?內部如何存儲的? 寫一個四叉樹的結構 不用遞歸遍歷二叉樹 求最大連通域 多線程的實現方式 std::vector描述一下,如何動態擴展,如何shink內存 Eigen是行優先還是列優先 unorder容器與ordered容器的區別 說一下Mat是如何析構的 說一下智能指針,shared_ptr與unique_ptr 說一下什么是虛函數 普通指針如何實現一塊內存只能有一個指針指向這種功能 C++ RTTI 是什么東西? C++是如何實現多態的? vector的iterator什么時候失效? 重建二叉樹 寫CmakeLists.txt,寫gcc指令 一個圖,給出兩個一對的若干節點對,求兩個節點之間的通路。 實現一個稀疏矩陣的數據結構,并實現稀疏矩陣的加法。 棋盤格,每個格子角點上有一個燈,按一下周圍四個燈就會取反。開始的時候這個棋盤格上燈狀態隨機,問如何操作這些按鈕可以使得整個棋盤全滅。 編一個二分查找 給你一個數組去排序,說排序算法 給你2D平面的兩個線段,判斷兩個線段是否相交 寫快速排序、寫反轉鏈表 給兩個排序數組,升序的。一個大小為n,一個大小為m。從中找出第k小的數字。我剛好可以練習學習一下:
1.閉環檢測在視覺領域用的主要是詞袋模型,最簡單的思想是把當前幀的詞袋與前面關鍵幀(可以隨機選取)進行比較;激光其實不容易做閉環,Cartographer用的subMap來做,也是類似的思想,閉環的相似性。談到閉環,這里也剛好涉及到自動駕駛與機器人的區別。自動駕駛其實很難短時間內有閉環,所以對里程計要求更高,并且要求有全局定位(比如GPS,或者與高精地圖比較來實現全局定位),而機器人,尤其是室內機器人,移動距離沒有自動駕駛大,累計誤差也沒那么大,比較容易有閉環,所以容易閉環來修正一次。(閉環修正不是實時性的,是一次性的),而且室內不容易有全局定位(除了建好的地圖外,GPS失效),所以還是有些區別。同時室內環境沒那么惡劣,不像自動駕駛要考慮安全雨霧等,這樣對毫米波雷達的引入便是必需。
目前的詞袋模型(https://blog.csdn.net/u012328159/article/details/84719494),需要預先訓練一個詞袋數據文件。即判斷某種特征的有無,目前有深度學習方案來處理閉環,相似性這點深度學習應該還是可以做一做的。
2.高斯牛頓和LM方法
總結
- 上一篇: mysql导入指定数据库_mysql命令
- 下一篇: Numpy数据处理基础方法:运算、随机排