目前學什么專業(yè)的人在搞SLAM?各有什么優(yōu)勢?
點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
原提問:
目前學什么專業(yè)的人在搞SLAM?如需要哪些專業(yè)知識,或者找什么專業(yè)的人合作?

一些比較牛掰的論文后面都有作者簡介的,他們大都是計算機/電子信息專業(yè)出身;其實到現在覺得搞SLAM最需要的是數學和編程。
本科機械專業(yè),跨專業(yè)跨了幾條街轉到SLAM里頭,目前直博第一年,科研弱雞一枚,還沒什么成果,正在論文→程序→教材無限循環(huán)中,想在這兒吐槽一下最近的感受。同時也希望能能夠被各路大佬吐槽,批評指正。
本科學過的各種三維建模和機械制圖和設計什么的已經徹底用不上了,機械專業(yè)也沒有太多關于編程的課程,好在自己參加過機器人比賽,寫過一點點STM32的程序,至少現在上手編程的時候沒那么痛苦。剛剛入學的時候白白浪費了一個學期,碩士階段的課多到爆炸而且水的一批,根本就沒有和自己研究方向相關的課程(除了數學課)。我們組每一屆的人的研究方向都不一樣,好在網上有不少資源。
編程方面:一開始進課題組的時候,看到有兩臺turtlebot2,就決定了做移動機器人方向,而且SLAM在移動機器人已經得到很重要的應用。有個硬件平臺,更加容易上手。于是從零開始學ubuntu和ROS,在這兒強行安利中科院在慕課網上的ROS教程,跟著做一遍至少能懂得基本的操作了。roslaunch和rosrun別人的程序發(fā)現能運行,挺dei啊。可是當自己寫起來發(fā)現啥都不會,就比如launch文件和.cpp文件之間的變量是怎么關聯的,編譯不過常常不是因為C++語法的問題而是因為CmakeLists.txt文件,等等。
總之對編程方面的感受就是:現在的ROS教程無非就是給package教你怎么敲命令行,看別人的程序不代表一定真的理解了,一定要親自動手自己寫程序實現一些功能。很多細節(jié)和工程技巧是書本上不會寫的,需要自己各種百度谷歌慢慢解決,熟能生巧。
去年年底開始看《十四講》,花一個多月過了一遍。秉承實踐出真知的學習方式,從這學期開始用了將近兩個月在ROS里寫了一個前端,借鑒了第九章 的project,并在rviz里進行可視化,實現了點云的實時顯示和里程計信息的可視化。只有一個前端,一點都不魯棒,很飄?,F在確實有了很多很好的開源代碼,比如ORB-SLAM,VINS,運行過ORB-SLAM,真的穩(wěn)得一批。但我覺得自己還是應該嘗試著寫一個,要不然搬運別人的代碼也會有點無從下手,而且總有一天需要自己動手寫一個工程。
相關的知識學習方面,除了《十四講》,還買了《概率機器人》、《機器人學中的狀態(tài)估計》、《Factor Graphs for Robot Perception》等等,我覺得把那些書都過一遍不現實,都是當工具書來看的。記得導師說過“讀PhD不只是學習”;也在看最近兩年的論文,還有一些經典的文章和review,不只是SLAM,還有導航和路徑規(guī)劃、人機交互、機器學習在機器人上的應用等等?,F在覺得學習和科研就像控制系統(tǒng)有反饋環(huán)節(jié),也像SLAM系統(tǒng)有回環(huán)檢測,需要不停地返回來從教材和論文里尋找答案。我的課題是移動機器人,SLAM是其中一個重要的部分。
目前個人認為,單純的SLAM,個人在前端(視覺里程計或者tracking thread)方面沒找到可以灌水的坑,想基于一些比較穩(wěn)定的前端進行進一步的研究,比如后端、回環(huán),或者建圖之后怎么進行導航、規(guī)劃;怎么讓機器人自動探索環(huán)境自主建圖;移動機器人上如果裝有機械手怎么配合SLAM進行抓?。灰蜃訄D、強化學習和凸優(yōu)化等等數學工具能解決什么樣的問題...還有好多。但我想還是需要看一些文章再開干。
最后真的機器感激,在SLAM的科普和教學方面,無償寫博客,無私開源的大佬們,還有泡泡機器人公眾號(編者注:還有計算機視覺life 公眾號哦),等等
可以說各個專業(yè)都有吧,當然大部分是理工科的。我們從零開始學習slam知識星球里做過大家的背景調查:
我選擇了幾個放出來,大家先看圖




因為我們也有一個實名交流群。所以對成員背景比較了解,機械,自動化,通信,計算機的最多,也有其他偏門專業(yè)(比如核物理,土木,化學)跨行學的,所以學習slam底線差不多就是理工科專業(yè),有一定c/c++語言編程基礎,學過基本的大學數學,計算機知識就可以。
至于優(yōu)勢,
數學專業(yè)優(yōu)勢在于理論推導,因為slam李群李代數,優(yōu)化部分還是需要一點數學基礎,當然現在很多庫都寫好了,只是應用不需要深究。
計算機軟件專業(yè)優(yōu)勢在于編程能力強,slam是應用科學,好的編程能力能夠快速讀懂,編寫代碼。
機械自動化專業(yè)優(yōu)勢在涉及到機器人相關硬件時有較好的動手能力,快速解決硬件問題。
當然這些優(yōu)勢并不是絕對的,我認識偏門專業(yè)自學slam還學的很透的大佬。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據研究方向邀請進入相關微信群。請勿在群內發(fā)送廣告,否則會請出群,謝謝理解~

