slam开发心得

     slam是目前比较流行,并且是门槛较高的一个领域,它与人工智能紧密相关。自己想就这篇博客谈谈自己在这个领域2年多来的心得。

      回顾这2年来自己的学习过程,可以说是艰辛,自己不是搞软件开发的,由于偶然因素搞了这个。主要由于自己别的不精,英文和数学功底非常好,单位就让我搞这个,先搞激光slam,也是单位第一个把激光slam做出来的人,虽然是开源代码,但是在没有任何人帮助的情况下搞定的。后来发现要自己写个slam,需要过硬的c++水平,自己把C++ Primer 5th 看了三遍,中文一遍,英文二遍,然后把课后习题全做了,整整花了一年的时间。今年,换了一家单位,搞视觉slam,这个真是从零开始学习视觉slam,但是发现有了C++基础入门很快,进步也很快,目前,已经做出了产品,自己通过阅读国外的几个开源稠密slam,然后,自己开发出符合实际的slam产品。

     由于我研究生学的是控制理论,而且由于老师是搞理论的院士,所以自己学了几门现代数学,比如近世代数基础,拓扑学,实变函数,泛函分析,黎曼几何与微分流形初步等,所以看slam的论文数学方面没有压力。但是,我后来看的slam方面论文多了,发现这个领域的研究重点其实是实现算法,算法本身没有难的,就是实现比较难。跟国内读博士要求的发sci其实方向不一致,我看普林斯顿,慕尼黑工业大学的博士其实毕业没有发sci的,发的全是会议论文,而且人家把算法的实现写成程序,并且开源供世界搞slam的人下载,测试。

      过去公司也招过好几个博士搞算法,但是他们不写程序,反正是不写程序,写报告,后来公司也没有开发出slam产品。其实,给招人的公司一个建议,就是一定要招能实现算法的人,什么学历不管,得能实现,实现不了,至少能把人家现成的程序改改用也可以。

      最近关注了一下慕尼黑工业大学的招聘博士后的要求,人家要求C++是expert水平,可想而知,实现slam算法是关键,算法其实看slam论文,估计大家如果读过研究生,或者学数学的本科生没有看不懂的。

      slam重点是如何实现,如何用世界上已知的手段,比如CUDA,卷积神经网络等等先近的手段编程序实现它,这个是最为关键的,为人类科学技术进步做出了贡献。

     最后给后来的学习者以下二个建议:

      1. 搞视觉slam可以先看看高翔的视觉slam14讲,然后他网上有个跟他学做rgbdslam,大家一定自己动手把他那个程序调通,对slam有个整体认识,非常关键。在看slam论文的同时,一定要看人家的源代码,理解了,然后最后,自己提取人家的类等等有价值的模块,然后自己写个简单的满足自己的想法的slam。如果,你看了几个视觉slam,当然是看懂了,不要求,每句代码都看,但是应该是大多数都看懂了,这样我想你应该可以提取作者的很多类和方法,去自己实现一个slam。提取的类包括一些常用的实现,比如CUDA如何处理双边滤波,线程池,C++多线程的条件变量用法等等。

       2.多看国外的论文,看英文文献,看人家的源代码,建议国内的,没有源代码的就别看了。

      总结一句话:在slam领域,代码比算法重要,大家仔细体会一下这句话的含义,不要误解,我不是说不重视算法的意思!

 

 

      

 

     

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值