亚洲精品免播放器在线观看-久久啊-久久观看视频-日韩精品亚洲专区在线电影不卡-在线观看免费a∨网站-在线观看毛片网站

推廣 熱搜: 廣場  Java  app  Word  營業  微信公眾號  北京代理記賬  商城  代理記賬  商標交易 

matlab怎么畫地圖底圖詳細步驟 研究SLAM,對編程的要求有多高?

   2023-04-28 企業服務招財貓110
核心提示:研究SLAM,對編程的要求有多高?說到SLAM,很多人會提到MATLAB。主要是因為大部分人都是在本科階段接觸MATLAB,所以希望在以后的SLAM學習中用到。MATLAB確實有很多優點:語法簡單,開

研究SLAM,對編程的要求有多高?

說到SLAM,很多人會提到MATLAB。主要是因為大部分人都是在本科階段接觸MATLAB,所以希望在以后的SLAM學習中用到。

MATLAB確實有很多優點:語法簡單,開發速度快,調試方便,功能豐富。但是在SLAM領域,MATLAB的缺點也很明顯,主要是這三個:

1.你需要正版軟件(你可以t在真機上安裝一個盜版的MATLAB

2.操作效率不高;

3.需要一個巨大的安裝包。

另一方面,C的優勢在于直接使用,運行效率高,但開發速度和調試比MATLAB慢。

但是光是運行效率就足以讓很多SLAM方案選擇C作為開發語言,因為運行效率真的很重要。

同樣的算法,如果它能MATLAB寫的不能實時,但是C寫的可以實時,你說哪個?

當然,MATLAB也有一些用處。我看過一些SLAM相關的公開課,讓學生用MATLAB做仿真,交作業。這個沒問題,比如SLAM工具箱。

同樣,類似于MATLAB的Python(和octave)也經常這樣使用。它們的快速發展帶來了很多便利。當你想驗證一些數學理論和想法的時候,這些都是很好的工具。It掌握MATLAB和Python是很棒的。

但是說到實用性,你會發現幾乎所有的方案都在用c.因為運行效率是如此的重要。

好吧,既然有心學MATLAB,為什么不學好C呢?

讓讓我們談談C將學到多少。

在程序員s的話,C語言比較特殊。你可以說你精通Java,但千萬不要說你精通C,C非常博大精深,有數不清的特點,而且會隨著時間不斷變化更新。然而,大多數人不。;不需要學習所有的C特性,因為很多東西永遠不會用到。

作為SLAM的研究人員,我們主要面對的是算法的開發,所以我們更關心的是如何有效的實現各種相關算法。另一方面,那些復雜的軟件架構和設計模式,我個人認為在SLAM中起次要作用。畢竟使用SLAM的目的是計算位置,構建地圖,而不是編寫一個可以自動更新,具有多人在線對戰功能的機器人戰爭平臺。

你的主要精力可能花在矩陣運算、分塊、實現非線性優化和圖像處理上;你可能對并發、指令集加速、GPU加速等主題感興趣。,或者可以花點時間學習;你也可以使用模板來擴展你的算法,或者你也可以試一試。

相應的,很多功能性的東西,比如UI,網絡通訊等。,用的時候不妨摸一下。但是當你專注于SLAM的時候,你不會我不需要專門學習。

說了這么多,SLAM要求的C級一般比你在書上看到的那些樣例代碼要高。因為那些代碼是作者用來給初學者介紹語法的,所以會盡量簡單。實際的代碼往往結合了各種奇怪的技能,乍一看會顯得深不可測。

地理對話

學習SLAM對編程的要求有多高?半閑散俗人2016-11-2219:16

說到SLAM,很多人會提到MATLAB。主要是因為大部分人都是在本科階段接觸MATLAB,所以希望在以后的SLAM學習中用到。

MATLAB確實有很多優點:語法簡單,開發速度快,調試方便,功能豐富。但是在SLAM領域,MATLAB的缺點也很明顯,主要是這三個:

1.你需要正版軟件(你可以t在真機上安裝一個盜版的MATLAB

2.操作效率不高;

3.需要一個巨大的安裝包。

另一方面,C的優勢在于直接使用,運行效率高,但開發速度和調試比MATLAB慢。

但是光是運行效率就足以讓很多SLAM方案選擇C作為開發語言,因為運行效率真的很重要。

同樣的算法,如果它能MATLAB寫的不能實時,但是C寫的可以實時,你說哪個?

當然,MATLAB也有一些用處。我看過一些SLAM相關的公開課,讓學生用MATLAB做仿真,交作業。這個沒問題,比如SLAM工具箱。

同樣,類似于MATLAB的Python(和octave)也經常這樣使用。它們的快速發展帶來了很多便利。當你想驗證一些數學理論和想法的時候,這些都是很好的工具。It掌握MATLAB和Python是很棒的。

但是說到實用性,你會發現幾乎所有的方案都在用c.因為運行效率是如此的重要。

好吧,既然有心學MATLAB,為什么不學好C呢?

讓讓我們談談C將學到多少。

在程序員s的話,C語言比較特殊。你可以說你精通Java,但千萬不要說你精通C,C非常博大精深,有數不清的特點,而且會隨著時間不斷變化更新。然而,大多數人不。;不需要學習所有的C特性,因為很多東西永遠不會用到。

作為SLAM的研究人員,我們主要面對的是算法的開發,所以我們更關心的是如何有效的實現各種相關算法。另一方面,那些復雜的軟件架構和設計模式,我個人認為在SLAM中起次要作用。畢竟SLAM的目的是計算一個位置,然后建造它。這個地圖不是要寫一個可以自動更新,具有多人在線對戰功能的機器人戰爭平臺。

你的主要精力可能花在矩陣運算、分塊、實現非線性優化和圖像處理上;你可能對并發、指令集加速、GPU加速等主題感興趣。,或者可以花點時間學習;你也可以使用模板來擴展你的算法,或者你也可以試一試。

相應的,很多功能性的東西,比如UI,網絡通訊等。,當你使用它們時可能會被觸動,但你不會。;當你專注于SLAM時,你不必特別研究它們。

說了這么多,SLAM要求的C級一般比你在書上看到的那些樣例代碼要高。因為那些代碼是作者用來給初學者介紹語法的,所以會盡量簡單。實際的代碼往往結合了各種奇怪的技能,乍一看會顯得深不可測。比如你在課本上讀到的是這樣的:

intmain(intargc,char**argv)

{

vectorltstringgtvec

vec.push_back(abc)

for(inti0()i)

{

//...

}

返回0

}

你看《CPrimerPlus》的時候,覺得C也不過如此,沒有什么特別難懂的地方。然而,實際的代碼是這樣的:

嵌套模板類(g2o中的塊求解器):

g2o::blocksolv::blocksolv:lin::lin::blocksolvertltg2oecho-@.com:blocksolverltg2oech23-@.com:blocksolvertraitslt3,1gtgt(linearsolver)g2oech25-@.com:optimizationalgorithmlevenberg*solvernewg2oech27-@.com:optimizationalgorithmlevenberg(solver_ptr)g2oech29-@com

模板元素(從ceres自動派生):

虛擬boolevaluate(雙常量*常量*參數,

雙*殘差,

double**Jacobian)const{

如果(!雅各賓派){

r::variadicevaluatelt

CostFunctor,doubl::call(*functor_,參數,殘差)

}

r::autodiffltcostfunctor,doubl::differential(

*函子_,

參數,

SizedCostFunctionltkNumR::num_residuals(),

殘差,

雅各布)}

C11項新功能(來自SVO功能提取部分)

voidfram::s::for_each(FTS_。b::updateseed(constfloatx,constfloattau2,Seed*seed){

floatnorm_scal::isnan(norm_scal::math::normal_distributionltfloatgtnd(seed-gtmu,norm_scale)

浮動s21。/(1./seed-gtsigma21。/tau2)

浮點ms2*(種子-gtmu/種子-gtsigma2x/tau2)

浮動C1s::math::pdf(nd,x)

浮動C2種子-gtb/(種子-gta種子-gtb)*1。/seed-gtz_range

浮點歸一化_常數C1C2

C1/歸一化_常數

C2/正常化_公司nstant

浮動fC1*(種子-gta1。)/(種子-gta種子-gtb1。)C2*seed-gta/(seed-gtaseed-gtb1。)

浮動eC1*(種子-gta1。)*(種子-gta2。)/((種子-gta種子-gtb1)。)*(種子-gta種子-gtb2。))

C2*seed-GTA*(seed-GTA1.0f)/((seed-GTAseed-gtb1.0f)*(seed-GTAseed-gtb2.0f))

//更新參數

浮動管理部門_新C1*C2*seed-gtmu

種子-gtsigma2C1*(s2m*m)C2*(種子-gtsigma2種子-gtmu*種子-gtmu)-mu_new*mu_new

seed-gtmumu_new

seed-gta(英-法)/(法-英/法)

seed-gtbseed-gta*(1.0f-f)/f}

我不我不知道你看到這些代碼的感受,但我當時的內心感受是:這怎么和課本上的完全不一樣?而且研究了很久,發現人其實是對的!

[我我不太會發表情。無論如何,它it'下定決心對你有好處

總之,C的水平要求應該在課本之上。而且,這種水平的提高,大多是建立在不斷看別人的過程s代碼和編寫您自己的代碼。是反復練習的,不僅僅是看書。特別是對于視覺SLAM問題,很多時候你可以不要根據論文實現一套方案,這很大程度上取決于你的理論和代碼技能。

所以,請盡快開始學習C,使用C,這才是學習SLAM的正確方法。

唐不要在你的舒適區里猶豫太久,所以沒有進步。(同樣適用于想學SLAM但是不我不想學Linux。)

關于閉環檢測的庫,稍微列舉幾個。

1.DBoW系列

TRO12的一篇文章,其中使用了k-means訓練的字典樹。它與OpenCV結合緊密,原理相對簡單。

GitHub-dorian3d/DBoW2:增強的C語言層次詞庫()

GitHub-rmsalinas/DBow3:dbow2的改進版本

()

2.FABMAP系列

周柳樹,康明斯系列論文。作者自己提供了一個開源版本,有人在OpenCV中實現了一個,所以一共兩種。

FabMap原始(~)

OpenCV:OpenFABMAP

()

3.DLoopDetector

基于DBoW2()開發的循環檢測庫

建議從DBoW2或DBoW3開始。原理和實現都比較簡單,效果不錯。

matlab與stk怎么連?

步驟:

1.確保matlab是32位的;

2.在"安裝路徑agistk9in"

 
反對 0舉報 0 收藏 0 打賞 0評論 0
 
更多>同類資訊
推薦圖文
推薦資訊
點擊排行
合作伙伴
網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報  |  冀ICP備2023006999號-8
 
主站蜘蛛池模板: 欧美不卡在线观看 | 拍拍拍成人免费高清视频 | 极品国产高颜值露脸在线 | 亚洲国产精品一区二区九九 | 中文字幕第一页亚洲 | 欧美在线观看成人高清视频 | 中文在线字幕 | 久久久久88色偷偷免费 | 亚洲色图第一页 | 日韩高清第一页 | 欧美日韩另类综合 | 日日碰日日摸日日澡视频播放 | 免费在线一级毛片 | 日韩综合区 | 国产成人久久精品二区三区牛 | 欧美色色图 | 国产日产欧美精品一区二区三区 | 免费一级a毛片在线播放视 免费一区二区 | 国产一区二区视频在线 | 国产精品久久新婚兰兰 | 在线 v亚洲 v欧美v 专区 | 成人a毛片久久免费播放 | 成人国产一区二区 | 久久香蕉影视 | a级黄色毛片| 欧美久久天天综合香蕉伊 | 亚洲精品98久久久久久中文字幕 | 交换伦交 | 国产自产 | 欧美性一区二区三区五区 | 一级毛片免费毛片一级毛片免费 | 免费国产在线观看 | 国产精品视频一区二区三区不卡 | 国产毛片不卡 | 亚洲黄色一区 | 欧美日韩在线观看免费 | 国产区亚洲区 | 欧美激情网站 | 欧美午夜网| 欧美激情精品久久久久 | 97伊人 |