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

2020 年 7 月 14 日 计算机视觉life

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

本文由计算机视觉life整理,已经获得作者授权。

原文链接:

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



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

即将研一,联系的导师是做这个方向的。但是自己第一次听说slam不太了解。希望有大佬介绍一下这个方向,以及硕士阶段如何进行学习,需要哪些技能,另外就业情况如何,谢啦。

郑纯然:

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

https://www.bilibili.com/video/BV1zt411G7Vn/?spm_id_from=333.788.videocard.3&rt=V%2FymTlOu4ow%2Fy4xxNWPUZ%2Bv9LDQVz8nh4eMlp4A7JJY%3D

必看入门书籍:视觉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!!

https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map/tree/master/ORB_SLAM2_modified

这里是高博改动后的一个版本,可以在SLAM过程中可视化点云图。辅助可以看一下这篇论文:ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras4.

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

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

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

一些其他主要方向


1.语义SLAM

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

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

  1. 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

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

  2. 水下SLAM

  3. 仿生SLAM

  4. ……看到这里大家辛苦了!!如果有什么问题,请在评论区直接指出~ (ง •̀_•́)ง (*•̀ㅂ•́)

如果我的分享对您有帮助,左侧三角赞同走一走哈哈哈哈~

矮脚兽:

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

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

1.基础篇

1.1 C++

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

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

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

以C语言为载体的面向过程的编程(Procedure Oriented Programming)
面向对象的编程(Object-Oriented Programming):类,多态,继承,虚函数
为了解决代码重用问题而出现的泛型编程(Generic Programming)以及对应的标准模板库(STL)

1.2 OpenCV

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

学习OpenCV最最推荐的教材是官方的Tutorial.最开始看完Introduction to OpenCV和The 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 相机 & 激光雷达

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

https://item.taobao.com/item.htm?spm=a1z0k.7386009.0.d4919233.3dca5014N5GgWp&id=574115048099&_u=t2dmg8j26111
https://item.taobao.com/item.htm?spm=a230r.1.14.30.57113f68i6DW3D&id=579103092794&ns=1&abbucket=4#detail

2.3 TurtleBot

TurtleBot是一款搭载ROS的移动机器人,上面自带了激光雷达或者双目视觉系统.TurtleBot
学校开设了移动机器人的课程,去年(2019)刚刚购买了一批TurtleBot2,所以很有幸使用了一段时间.原本还想着自己买一台玩玩,但是看了一下淘宝将近6000元的价格,只能说一句"打扰了,再见!".

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

3.进阶篇

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

主要从两个方向努力,一个是看相关论文,还有一个是看两本书:
《概率机器人》对应的英文书名叫Probabilistic Robotics,还有一个多视觉几何的书籍Multiple View Geometry in computer vision

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

4.就业篇

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

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

最后,求点赞,求关注,求收藏,你的支持是我更新的最大动力!

wjonuee:

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

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

http://weixin.qq.com/r/LkSOljPE026srXf19xE8 (二维码自动识别)

Harry Yang:

我的本科毕业设计是室内激光SLAM(因为疫情的影响,做的有点水   )

分享下我的主要学习历程:

1.《机器人操作系统》这个中科院的课程,mooc上有。(偏重学习理论)

2.古月居的ROS21讲,b站有资源。跟着课程实现topic通讯这些简单的功能。(巩固理论,提高实际操作能力)

(由于我只学过c和汇编,没有c++和py的基础,在前两步之间也交叉着学了关于c++的知识)

3.完成上述两个课程后,就跟着CSDN里面的各种教程,还有创客智造这个网站,在Gazebo平台,用turtlebot机器人跑各种各样的demo,仿真实现了机器人SLAM,导航这些功能。

4.返校之后做了一些实物测试的工作,其实就是用实验室已有的机器人跑算法(操作类似于仿真过程,不停调用launch文件…用的机器人也是创客智造里卖的kobuki套机)比较简单,用gmapping算法扫了一个实验室的图出来。

心得:感觉通过ROS学习激光slam的过程,实际操作过程和理论学习的过程还是蛮割裂的(可能因为本科生能力确实有限) 这个学习的主要收获就是对激光slam有了初步认知,滤波呀、特征匹配这些,更多的收获在于对ROS的使用上。

虽然这只是一个本科生对slam的学习经历,还是希望对你有帮助~

专辑:计算机视觉方向简介

专辑:视觉SLAM入门

专辑:最新SLAM/三维视觉论文/开源

专辑:三维视觉/SLAM公开课

专辑:深度相机原理及应用

专辑:手机双摄头技术解析与应用

专辑:相机标定

专辑:全景相机


从0到1学习SLAM,戳↓

视觉SLAM图文+视频+答疑+学习路线全规划!

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


投稿、合作也欢迎联系:simiter@126.com

长按关注计算机视觉life

登录查看更多
6

相关内容

即时定位与地图构建(SLAM或Simultaneouslocalizationandmapping)是这样一种技术:使得机器人和自动驾驶汽车等设备能在未知环境(没有先验知识的前提下)建立地图,或者在已知环境(已给出该地图的先验知识)中能更新地图,并保证这些设备能在同时追踪它们的当前位置。
【CMU博士论文】机器人深度强化学习,128页pdf
专知会员服务
124+阅读 · 2020年8月27日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
 第八届中国科技大学《计算机图形学》暑期课程课件
专知会员服务
54+阅读 · 2020年3月4日
专知会员服务
85+阅读 · 2019年12月13日
周志华教授:如何做研究与写论文?
专知会员服务
148+阅读 · 2019年10月9日
学习自然语言处理路线图
专知会员服务
133+阅读 · 2019年9月24日
如何系统学习视觉惯性里程计(VIO)?
计算机视觉life
17+阅读 · 2019年5月12日
如何从零开始系统化学习视觉SLAM?
计算机视觉life
21+阅读 · 2019年4月13日
高翔:谈谈语义SLAM/地图
计算机视觉life
32+阅读 · 2019年3月26日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
20+阅读 · 2019年3月12日
研究SLAM,对编程的要求有多高?
计算机视觉life
24+阅读 · 2019年2月18日
汇总 | VIO、激光SLAM相关论文分类集锦
计算机视觉life
7+阅读 · 2019年1月28日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
【泡泡机器人】一文带你入门语义SLAM
泡泡机器人SLAM
29+阅读 · 2017年11月29日
Arxiv
4+阅读 · 2019年1月14日
Structure Aware SLAM using Quadrics and Planes
Arxiv
4+阅读 · 2018年8月13日
VIP会员
相关VIP内容
【CMU博士论文】机器人深度强化学习,128页pdf
专知会员服务
124+阅读 · 2020年8月27日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
107+阅读 · 2020年6月5日
 第八届中国科技大学《计算机图形学》暑期课程课件
专知会员服务
54+阅读 · 2020年3月4日
专知会员服务
85+阅读 · 2019年12月13日
周志华教授:如何做研究与写论文?
专知会员服务
148+阅读 · 2019年10月9日
学习自然语言处理路线图
专知会员服务
133+阅读 · 2019年9月24日
相关资讯
如何系统学习视觉惯性里程计(VIO)?
计算机视觉life
17+阅读 · 2019年5月12日
如何从零开始系统化学习视觉SLAM?
计算机视觉life
21+阅读 · 2019年4月13日
高翔:谈谈语义SLAM/地图
计算机视觉life
32+阅读 · 2019年3月26日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
20+阅读 · 2019年3月12日
研究SLAM,对编程的要求有多高?
计算机视觉life
24+阅读 · 2019年2月18日
汇总 | VIO、激光SLAM相关论文分类集锦
计算机视觉life
7+阅读 · 2019年1月28日
从零开始一起学习SLAM | 学习SLAM到底需要学什么?
计算机视觉life
8+阅读 · 2018年9月9日
【泡泡机器人】一文带你入门语义SLAM
泡泡机器人SLAM
29+阅读 · 2017年11月29日
Top
微信扫码咨询专知VIP会员