转载请保留此段:
感谢郑帆,立党,Wu Kenzi等给出的原创及授权ExBot转载,由Top liu汇集整理,原文链接

入门教程

首先推荐 RA magazine 首页的几篇 tutorial 性质的论文。RAM 是 robotics 领域最顶尖的期刊之一,这几篇都是著名学者写给学术新人的入门读物,希望对题主有所帮助。

RAM 首页:RA Magazine - IEEE Robotics and Automation Societ

  • Visual Servoing: Part1, Part 2, 较早的另外一篇
  • SLAM: Part 1, Part 2
  • 6D Vectors: Part 1, Part 2
  • Planning: Part 1, Part 2
  • Visual Odometry: Part 1, Part 2
  • Point Cloud Library: Tutorial
  • Quadrotors: Tutorial 另可参考Exbot四旋翼精选系列

搬出宝典:Multiple View Geometry in Computer Vision。这本书基本涵盖了Vision-based SLAM这个领域的全部理论基础!读多少遍都不算多!另外建议配合Berkeley的课件学习。(更新:这本书书后附录也可以一并读完,包括附带bundle adjustment最基本的levenberg marquardt方法,newton方法等)

框架级的工具

然后是框架级的工具。最常用的机器人框架是ROSROS.org | Powering the world's robots,可以使用在Windows,Linux和MacOS等操作系统上,里面包含一整套常用的机器人理论的算法和工具的实现。另一个开源工具集是OpenSLAM OpenSLAM.org,其中的g2o是目前最流行的graph optimization的实现工具。另外OpenCV也是视觉相关必备的基础工具,Multiple View教材中的常用算法在OpenCV中都有常用的实现。(更新:OpenCV的文档Camera Calibration and 3D Reconstruction 中,包含SLAM相关的基础理论公式以及C/C++/Python实现的API)

ROS如果想做应用是必不可少的,我的工作也都是基于ROS的,自己学习中一个比较重要的视频是https://www.youtube.com/watch?v=9IJDmd0DGe0&list=PLDC89965A56E6A8D6 自带梯子,还有一个比较好的个人经验是,ROS中有很多很好的包,学好它们对自己有很大提高,比如openni-camera(自己用的是kinect) rgbdslam等等。G2O是最常用的slam后端优化软件,很多成熟的slam package用的都是g2o,rgbdslam应该就是,还有比较新的lsd-slam貌似也是使用g2o的 OpenCV应该是必备技巧吧,就不说了

RGB-D Camera

至于RGB-D Camera,最常用的采集设备有两种,一种是Microsoft Kinect,一个生态环境完备的RGBD Camera,可以直接用Visual Studio可Kinect SDK直接开发,也有大量开发好的程序以供借鉴参考,也可以用OpenNI和ROS采集处理,我就不多介绍了,毕竟微软是对程序员最友好的公司没有之一(微软大法好)。另一个是Google的Project Tango,Google对于这个自家的神器还是很低调的,可以看看宣传片ATAP Project Tango ,绝对酷炫——可惜我们lab刚刚买的那一台,我还没有用过,所以对具体开发不太了解。

SLAM与优化

只要是SLAM问题就要涉及optimization,就要用到各种least square算法。所以另一个基础理论是Sparse Matrix,这是大型稀疏矩阵处理的一般办法。可以参考Dr. Tim Davis的课件:Tim Davis ,他的主页里有全部的课程视频和Project。针对SLAM问题,最常用的least square算法是Sparse Levenberg Marquardt algorithm,这里有一份开源的代码以及具体实现的paper:Sparse Non-Linear Least Squares in C/C++

SLAM现在用least square已经是潮流了,尽管我的老板是做EKF出家的,但是现在主流期刊上确实已经没有滤波的文章了。其中大型稀疏矩阵的处理是现在大家正在玩弄的东西。在这里推荐另外一个网上课程,Cyrill Stachniss 他教授的机器人基础,定位,绘图等等,个人觉得是很不错的。有浅入深,就不仅仅包含graph based slam了。至于概率和KF的东西,其中说的也很多,尽管现在已经不算是热点了,但是我觉得还是很有必要看看的,毕竟自己第一次接触SLAM就是EKF的,还是有点怀念

另外多说一句题外话,因为Optimization和图片的feature extraction是SLAM里最核心的两个问题,而这两个问题都是运算量极大的。好的SLAM框架要兼顾速度和精确度。目前大部分Vision或者RGBD的SLAM框架都是用C++来时实现完成的以确保运算速度。虽然我个人很欣赏Python,并且Python3也支持SciPy,OpenCV,ROS等重要工具,不过依然有大量的诸如g2o等基础性库在python下无法使用,而且如果要借鉴其他人的代码,最方便的还是在C++中实现。所以如果提问者有志于在这个领域做深入研究,夯实的C++基础是必不可少的。Introduction to Algorithms,以及 @vczh 推荐的C++ Primer等,都是在实际工作前要自己做好的功课。

摄像机标定与工具箱

下面说一些硬件和实验上的知识储备。首先Vision-based SLAM常用摄像机标定(Camera Calibration)的世界通用简单方法,是张正友博士(Dr. Zhengyou Zhang,主页Zhengyou Zhang's Home Page)的方法(张正友博士是本领域里少数的具有极其巨大影响力和贡献的华人学者,已成脑残粉嘤嘤嘤)。具体方法和实现,我在这里推荐两个,一个是Caltech工具箱:Camera Calibration Toolbox for Matlab ,以及相关paper:Camera Calibration Toolbox for Matlab。该方法的另一个实现,是Matlab最新版本内置的Camera Calibration的application,自动导入标定图片并把得到的结果输出给Matlab,更加自动化,更加便捷准确。更多的Camera Model理论知识请参考Multiple View Geometry。

数据集与测试方法

另外有几个网上成熟的数据集和测试方法,一个是Malaga Dataset,一个西班牙的团队采集的Malaga城市数据:The Málaga Stereo and Laser Urban Data Set,覆盖了城市中汽车驾驶的各种情况(停车,加速,减速,行人,建筑,绿化带等),里面提供了双摄像头,Laser,IMU等数据以及GPS的ground truth trajectory。不过该版本因为是在市中心,所以GPS的ground truth并不可靠。另一个是慕尼黑工业大学Computer Vision Lab的RGB-D

dataset https://vision.in.tum.de/data/datasets/rgbd-dataset,里面提供了大量的室内的RGBD数据集,以及非常方便好用的benchmark tools。第三个是KITTI Dataset:The KITTI Vision Benchmark Suite,也是认可度很广泛的汽车驾驶数据集。

机器人书单与学习资源——导航篇相关推荐

  1. Android 不归路之百度地图API学习(导航篇)

    在学习百度地图api 导航篇时 不论怎么仿写官方DEMO 都不能初始化导航引擎 纠结了两天 在LBS论坛上找到同样问题 传送门初始化导航失败 文中解决方法 主要有三种: 目前demo中初始化导航失败有 ...

  2. DIV+CSS—菜鸟分享学习心得!导航篇

    1. 常见实用的水平导航条 新建一个html文件: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...

  3. dropzonejs vue 使用_可能是史上最全面的学习资源 — VUE 开源库篇(一)

    原标题:可能是史上最全面的学习资源 - VUE 开源库篇(一) 原文:https://www.cnblogs.com/opendigg/p/6513510.html 作者:OpenDigg 最近做了一 ...

  4. java cms 知乎_可能是史上最全面的学习资源 — VUE 开源库篇(二)

    原标题:可能是史上最全面的学习资源 - VUE 开源库篇(二) 原文:https://www.cnblogs.com/opendigg/p/6513510.html 作者:OpenDigg 最近做了一 ...

  5. 干货丨从冷战到深度学习:一篇图文并茂的机器翻译史

    实现高质量机器翻译的梦想已经存在了很多年,很多科学家都为这一梦想贡献了自己的时间和心力.从早期的基于规则的机器翻译到如今广泛应用的神经机器翻译,机器翻译的水平不断提升,已经能满足很多场景的基本应用需求 ...

  6. 从冷战到深度学习:一篇图文并茂的机器翻译史

    作者:Ilya Pestov 英语版译者:Vasily Zubarev 中文版译者:Panda 实现高质量机器翻译的梦想已经存在了很多年,很多科学家都为这一梦想贡献了自己的时间和心力.从早期的基于规则 ...

  7. arcgis怎么压缩tif文件_地理工具学习--arcgis篇:单工具学习(1)

    一直以来就想做这个系列.记录学习arcgis.geoda.python.cad等工具的过程. 在arcgis篇,最开始的打算是想把arcgis中的工具都整理一遍,不过经过几年得使用和学习,发现其中有很 ...

  8. Sublime text 入门学习资源篇及其基本使用方法

    Sublime text 学习资源篇 史上最性感的编辑器-sublimetext,插件, 学习资源 官网 http://www.sublimetext.com/ 插件 https://packagec ...

  9. 高质量深度学习资源总结:128篇论文,21大领域

    转自https://mp.weixin.qq.com/s/GuSuYFRuIVtPUqmIMkjS4A 128篇论文,21大领域,深度学习最值得看的资源全在这里 2017-07-06人工智能头条 从全 ...

最新文章

  1. Windows电脑C盘老是报红
  2. c语言程序设计开卷考试b卷,C语言程序设计(B)试卷_杨崇联(A1).doc
  3. 如何查看jar包的版本号?
  4. 笔记47-徐 数据库引擎中基于行版本控制的隔离级别
  5. STP端口状态特点、STP端口角色特点、链路状态发生变化,STP如何重新收敛? TCN何时发?uplinkfast技术、Portfast技术、backbonefast技术、常见的STP调整命令:
  6. 数据库编程连接mysql_使用JDBC编程-连接MySQL数据库
  7. [2012.04.03] Windows Phone 上的汉语拼音以及多音字处理
  8. python stdout_python 之sys.stdout小记
  9. UGUI LongText
  10. oracle服务器客户端配置文件,服务器 oracle 客户端配置文件
  11. html在ie中img地址为https,关于IE10以下的img标签问题解决
  12. linux双机热备份
  13. 甘肃SEO优化:关键词选择 是否“咨询”过关键词规划师以及seo优化技术大牛是怎么练成的
  14. ai关键词整理(分享)
  15. matlab将z域变为s域,时域、S域、Z域转换
  16. 东芝发布全系列消费级硬盘
  17. 【ESP 保姆级教程】玩转emqx认证篇③ ——认证安全之使用 MySQL 的密码认证
  18. Java经典代码工具类2
  19. css图片放大缩小动画
  20. 关闭rabbitmq连接健康检查

热门文章

  1. ubuntu16.04输入密码后登入黑屏
  2. OPNET编译进程模型出现错误
  3. 外挂辅助与安全技术的爱恨情仇
  4. python 彩票自动下单,从「获取数据」到「自动下单」 | 《Python量化投资入门》培训...
  5. 基于深度神经网络的遮挡人脸识别算法的研究(小白初学)
  6. matlab求解参数线性规划问题,实验三十用MATLAB求解线性规划问题
  7. Jetpack学习与实践
  8. 光场成像2.0——聚焦型光场相机
  9. 多元函数的泰勒(Taylor)展开式
  10. 数据流程图与数据字典