硕士研究生阶段如何学习slam机器人?

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

https://www.zhihu.com/question/396119527/answer/1256819922

本文仅作为学术分享,如果有侵权,会删文处理

硕士研究生阶段如何学习slam机器人?

作者:矮脚兽
https://www.zhihu.com/question/396119527/answer/1256819922

实验室的师兄刚毕业,都找的是slam方向的工作,自己也正在往这个方向努力.所以在这里总结以下学习经验吧.

个人认为看视频的效率较低,更倾向于看书,以下的推荐的英文书籍大都可以在Library Genesis(需富强上网)上找到,都是个人已经看完或者正在看的书,相信会对你有所帮助.

1. 基础篇

1.1 C++

C++是slam所有知识的基础,它的作用和地位怎么强调都不为过,在学习其他所有知识之前一定要先过这一关.否则你的接下来的路会很难走.

在这里推荐两本书:C++ Prime PlusEffective C++,特别是第一本,它将陪伴你整个slam的学习生涯.我当时大概花了两个月左右每天练习上面的例子,后面发现C/C++的使用贯穿了所有学习环节,所以每次遇到不会的都会重新来读这两本书.

C++四大组成部分,每一个都要懂其用法,至少做到遇到问题时能快速定位到书里相应的部分:

  • 以C语言为载体的面向过程的编程(Procedure Oriented Programming)

  • 面向对象的编程(Object-Oriented Programming):类,多态,继承,虚函数

  • 为了解决代码重用问题而出现的泛型编程(Generic Programming)以及对应的标准模板库(STL)

1.2 OpenCV

有了C++的基础,你就可以来学习一些图像处理的内容了.图像处理很多算法原理上会比较难以理解,不过没关系,我们有强大的图像处理的函数库可以调用,那就是OpenCV.

学习OpenCV最最推荐的教材是官方的Tutorial.最开始看完Introduction to OpenCVThe Core Functionality(core modeule)这两个就行,剩余的可以以后用到再回来查找.

如果你英文水平不够好的话,可以看看《OpenCV3编程入门》.个人更加推荐看英文的入门文档,毕竟翻译过程会有信息丢失,不利于理解学习.

1.3 Linux & ROS

Linux是slam常用的搭载环境,它其实有很多的发行商,但是只推荐使用Ubuntu,原因很简单,只有机器人操作系统ROS是基于它开发的.

关于Linux的学习,推荐两本书《鸟哥的Linux私房菜》The Linux Command Line.前者是基于CentOS写的,但是这并不影响使用,后者是基于Ubuntu写的,但是是英文书,

自己学着安装Ubuntu的双系统(虚拟机和Windows直接安装都不推荐,会出各种意想不到的Bug).然后拿着The Linux Command Line,将里面常见的命令自己敲一遍看看效果.

个人认为比较重要的几个点:

  • 终端的使用

  • Linux文件目录结构

  • 怎么安装软件

  • 怎么新建和删除文件/文件夹

  • 文件打包及解压

至于ROS的学习,目前只推荐官方的Wiki文档.

1.4 机器人学数学基础

这里涉及到了三维旋转矩阵,四元数,李群李代数的知识.由于在学校选了相应的课(听老师说现在全国只有北航开设了相关课程?),所以在课外没怎么学习.不过最近倒是在Github上发现了一个很好的项目,主要是讲三维旋转和四元数的,可以去下载下来看.

我自己也有开了相关的专栏,感兴趣的可以去看看(随缘佛性更新):

机器人学数学基础专栏地址:

https://zhuanlan.zhihu.com/c_1244623606790995968

2. 实践篇

2.1《视觉slam十四讲》

之所以把这本书放在第二部分讲,主要有三个原因:

  1. 这本书提供了大量的源码,具有很强的实践意义.

  2. 如果你没有上面的基础知识作为支撑,看这本书可能会有些吃力

  3. 从找工作的角度讲,个人认为基础知识的意义大于slam知识本身

关于这本书,其他回答说的很多了,不再赘述.值得强调的是,里面的程序最好自己写一遍,修改修改部分代码看看会出来什么样的效果.

2.2 相机 & 激光雷达

在学习好理论知识后,家庭条件允许的话,,可以自己设计组装一个机器人来玩玩.上淘宝购买相应的零部件.把它们架设到能移动的机器人上,自己编程实现建图啥的.

零部件网购地址:

1、https://item.taobao.com/item.htm?spm=a230r.1.14.30.57113f68i6DW3D&id=579103092794&ns=1&abbucket=4#detail

2、https://item.taobao.com/item.htm?spm=a1z0k.7386009.0.d4919233.3dca5014N5GgWp&id=574115048099&_u=t2dmg8j26111

2.3 TurtleBot

TurtleBot是一款搭载ROS的移动机器人,上面自带了激光雷达或者双目视觉系统.

TurtleBot

学校开设了移动机器人的课程,去年(2019)刚刚购买了一批TurtleBot2,所以很有幸使用了一段时间.原本还想着自己买一台玩玩,但是看了一下淘宝将近6000元的价格,只能说一句"打扰了,再见!".

你可以打听打听学校有没有实验室有这个玩意儿,如果有的话可以去蹭一蹭,这将会对你的实践能力的提升有很大的帮助.

3. 进阶篇

基础有了,实践有了,接下来就是理论水平的提高了.

主要从两个方向努力,一个是看相关论文,还有一个是看两本书:

《概率机器人》对应的英文书名叫Probabilistic Robotics,还有一个多视觉几何的书籍Multiple View Geometry in computer vision

这两本书不知道各位大佬感觉如何,我最近正在啃,觉得还是比较吃力的.近期准备把这两本书看完然后去看《视觉slam十四讲》后面罗列的一些论文.

4. 就业篇

这个是上面答主都都忽略的一点,这个可能要泼一些冷水了.前两年随着百度宣布搞无人车,带动了一大批的slam就业岗位,但是现在风口渐渐平息,最近在媒体上也少有看到相应的报道.虽然slam现在看起来还是一个比较火的方向.但是很多单位已经开始减少招收的人数.至于工资,年薪大概在25w左右,还算是可以的.

不过,既然选择了这条路就勇敢向前走吧,一起加油!

作者:郑纯然
https://www.zhihu.com/question/396119527/answer/1235876702

  • 首先是代码环境问题:标配Ubuntu+ROS,因为绝大部分源码是C++,所以CMake的基本模板要会用

浙江大学视觉slam公开课-从视频标定到SLAM视频地址:

https://www.bilibili.com/video/BV1ax411R7Hd

  • 必看入门书籍:视觉SLAM十四讲  稍微进阶:机器人学的状态估计,多视图几何

       视频地址:https://www.bilibili.com/video/BV1YW411P7AU

  • SLAM相关非常易懂快速上手的课程:

1.这位浙大教授讲得非常非常清晰,虽然不如高博视觉SLAM的课有配套习题和课件那样系统,但可能谭平教授更会去用学生能理解的方式阐述SLAM的概念,表达也更清晰一些

视频地址:

https://www.bilibili.com/video/BV1ax411R7Hd

2. 经典的高博的视觉SLAM

视频地址:

https://www.bilibili.com/video/BV16t411g7FR?from=search&seid=14811571160409762901

3. 曾书格老师的激光SLAM或者某象的无人驾驶

视频地址:

https://www.bilibili.com/video/BV11a4y1v79G

4. 波恩大学《传感器及状态估计》SLAM,这是2020年最新的课程

视频地址:https://www.bilibili.com/video/BV1aK4y1k7FQ

5. Coursera 自动驾驶教程,主要是讲相机模型,多视几何方面的内容,对3D视觉标定方面非常有帮助

视频地址:

https://www.bilibili.com/video/BV1PE411D72p?p=2

6. 宾大的vslam,我没听过,但据说听完收获很大

视频地址:

https://www.bilibili.com/video/BV1Y4411m7aG?from=search&seid=18344384925427038262

  • SLAM方面的论文

论文地址:

https://blog.csdn.net/heyijia0327/article/details/82855443

贺博在这里总结得特别好,有分类,有文章作者名,有下载链接,而且貌似还在维护更新...

因为毕竟学习时间和精力毕竟有限,初学者看起来比较慢,所以我一会儿重点推荐一两篇

  • 如何借助这些资源开展SLAM学习

我接下来只是讲得我自己的学习方法,希望能帮助到你。

1.首先看一遍视觉SLAM十四讲这本书,从三维空间的表示方法,李群李代数的数学原理这些关键的基础概念,到视觉SLAM的前端,后端,回环整个流程的经典算法实现原理。大致过一遍,不需要把每一个公式都推导一遍,比较难的雅各比可以放一放,一些简单的随手就推了,比如针孔相机模型。

2.之后可以撸一遍视觉SLAM十四讲的视频,抱着之前对SLAM的印象,也可以说是带着疑问吧,在高博的耐心讲解中再回顾一下,视频也不会看得很慢(比如因为看不懂看一下停一下),还可能会对以前理解比较粗糙的地方突然领悟...###此处致敬高博,并没有勇气 @Ta

3.这时候可以看一些经典且写得很规范的代码啦,比如ORB-SLAM2!!

辅助可以看一下这篇论文:ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras

4. 可以自己模仿写一个视觉里程计

5. 对于激光SLAM其实我也推荐先看视觉SLAM十四讲,因为SLAM间结构和原理相似,且视觉SLAM有这样好的入门教材没有不看的理由。同时由于相机的观测模型相比激光雷达会更复杂一些,所以互相转换起来会比较快。我之前一个回答,可以借鉴一下~

网址:

https://www.zhihu.com/question/52634751/answer/1233033108

  • 一些其他主要方向

  1. 语义SLAM

网址:

https://zhuanlan.zhihu.com/p/58648284

我觉得高博讲得太好了,流泪ing,几分钟时间让我这个语义小白都懂了是什么,为什么,要怎么做...深度学习提取路标啊,建立物体级别的地图去进行地图复用等等等,文章还举例了几篇论文,都挺好,可以看看~

2. VIO视觉惯性里程计 or VINS视觉惯性导航系统

这边深蓝有出了一套课,讲得蛮好的,主讲是贺博高博崔大神,里面IMU的预积分,以及对应残差雅各比,初始化等讲得蛮详细。最棒的是基于目前非常强的沈老师组的VINS-mono的代码架构讲解的。此处强推一篇论文:VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator

前几天本科毕设要求英文文献翻译,我自己翻译了一份重新排了版,传了一份Word版本的,大家自取吧~

链接:https://pan.baidu.com/s/1t_bDIiWOdyxnJYuqGrMSwA

提取码:um34

3. 与深度学习结合,估计位姿,用来做闭环检测(场景的再识别)

4. 水下SLAM

5. 仿生SLAM

6. ......

作者:wjonuee
https://www.zhihu.com/question/396119527/answer/1235688565

1、看书:高翔的《视觉SLAM十四讲》、《概率机器人》、《机器人学中的状态估计》、《计算机视觉中的多视图几何》;

2、学习ROS、OpenCV、Eigen、sophus、Ceres、g2o等开源软件使用;

3、看SLAM开源项目,激光经典的cartography、gMapping、Hector等;视觉的ORB-SLAM、RGBD-SLAM,LSD-SLAM等;

4、关注优秀的SLAM公众号,计算机视觉life、泡泡机器人SLAM等;

附一篇计算机视觉life的一篇推荐给SLAM小白入门的文章:https://mp.weixin.qq.com/s/GYcO7m9oBfJK4h2ZWRq0mw

其中有一张思维脑图不错:

https://weixin.qq.com/cgi-bin/readtemplate?check=false&t=w_indexn73&uin=&stype=10037102&promote=1003799&fr=&

推荐阅读

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

猜你喜欢

转载自blog.csdn.net/Yong_Qi2015/article/details/107293764
今日推荐