四. 定位技术进阶
1. 阅读开源SLAM源码
TODO
2. 实现一个简单的VO
TODO
3. 实现一个简单的SLAM
TODO
作者:刘权祥
在学习了相机模型的基础下,可以开始学习相机标定,推荐的网站有:
目前基地使用的开源方案有:
这部分上网即可搜到,编译运行的关键是相关环境的安装配置,不过官网也会讲到。
TODO
TODO
像在你电脑上安装各种环境一样在无人机或者小车的上位机里面安装环境
学习docker的使用:
然后通过编译构建docker镜像,在无人机或者小车的上位机里面运行docker镜像,从而避免重复枯燥的环境配置。
作者:刘权祥 魏天昊 曾雅
https://blog.csdn.net/qq_38252524/article/details/107742847
上文介绍了当前主流定位技术,对于文中提到的每一种方法,都应该自己网上去搜索一下更多的知识
任务:比较这些方法的异同
推荐教材:《视觉SLAM十四讲》
推荐网课:深蓝学院系列(有网盘链接,但容易过期,到时候再给)
学习指南:
第一次学习,建议重点关注第三讲、第五讲,这两讲非常重要,其他部分的内容可能会有难度,了解即可。
后面再深入学习的时候,可以把第三讲的公式推导自己做一遍,第七八讲的概念可以好好看看。
不用太在意各种数学公式,可以先看做一个黑箱子,除了相机标定那一块完整的公式要推导一遍,其他的可以往后放放。
没必要看《概率机器人》,直接在网上找相关的博客进行基本知识的学习。
目前主要是针对Robocup的场地做粒子滤波
有仿真、实际的两种实现,但是都没有完全做好,可以直接上手测试、调整。
TODO
在视觉SLAM的后端优化中,介绍了5种方法:
卡尔曼滤波器,扩展卡尔曼滤波器,BA优化,PoseGraph优化,因子图优化。
涉及到很多的概率论,线性代数知识,难度有点大。
但是仍然需要掌握卡尔曼滤波器技术,它在生活中有着大量的应用,非常重要。
学习链接1:https://blog.csdn.net/young_gy/article/details/78177291
学习链接2:How a Kalman filter works, in pictures | Bzarg
视觉SLAM后端部分如果看不懂,可参考以下链接:
后端链接1:https://blog.csdn.net/zkk9527/article/details/89053388
后端链接2:https://blog.csdn.net/zkk9527/article/details/89068410?spm=1001.2014.3001.5501
作者:刘权祥 魏天昊
使用C++,熟悉面向对象。
推荐备一本参考书,作为“新华字典”,如C++ Primer。
安装教程:http://wiki.ros.org/melodic/Installation/Ubuntu
学习网站:http://wiki.ros.org/ROS/Tutorials,也可以看古月居B站视频。
要求:掌握入门二十一讲。前期把这些部分学习完即可,以后还需要学习一些更深入的内容。
建议:建议自己多写Demo多练(如自己写一个topic和service,比较一下区别)
推荐教材:《OpenCV3编程入门——毛星云》
OpenCV安装教程:
把整本书看完,里面的代码自己好好写一写就行。
之后可以尝试在ROS中写一个调用电脑摄像头检测小球的程序。
作者:刘权祥
建议安装双系统,使用虚拟机有时候还不是很方便。这个网上的教程特别多,看着来就行。
建议安装ubuntu18.04,太新的版本会导致内核过新,有的开发环境不支持,太旧的版本不是很好用,也有新版软件不支持的问题。
ubuntu下推荐使用typora来写markdown,这个东西很简单不过也很重要。
markdown的语法格式比较简单,在网上搜一些教程就可以快速入门,大概三十分钟之内就会写了,之后可以多用它来写文档。
在后续的学习中,可能会遇到网络问题,如果你有ubuntu下的代理或者网络比较好,就可以跳过这一步,不然还是推荐看一下。
代理购买
目前基地在wifi中内置了代理,所以没有可以分享的节点之类的,在家如果要使用代理的话,需要自己购买。
使用代理
买了代理之后,你其实只是有了一个链接,还不能直接用上。在Windows、Android、ios上,上面那个网址都提供了软件,不过在ubuntu下居然没有,你可以先在你的Windows系统和手机里面把翻墙配置好。
ubuntu18.04下建议使用qv2ray,安装指令如下:
1 | sudo snap install qv2ray |
你也可以在系统软件商店或者网上下载安装。
下载后你其实还需要一个内核才能够使用qv2ray,建议用能翻墙的系统去下载这个内核,之后再安装进去。
这里会遇到一个问题,就是如果你是在上面的那个网址购买的代理的话,还需要下载两个插件安装到qv2ray中才能够成功的翻墙。
之后应该就没问题了,如有问题请联系对应的学长学姐。
本项目由西北工业大学足球机器人基地定位技术组发起,主要负责人为刘权祥。
目前本项目还在发展阶段,有一些教程尚未完工。
我们制作这个教程是为了基地更好并且更规范的招新培训,当然也希望能够帮助到对定位技术,特别是SLAM技术感兴趣的同学。整个教程所介绍的知识都偏向于基础和应用,没有对理论部分有太多的解读,我们希望通过整个教程能够让队员对SLAM有一个整体的认知,并且快速的掌握基本的定位技术,从而运用到基地的比赛或者项目中。
SLAM是同步定位与地图构建(Simultaneous Localization And Mapping)的缩写,最早由Hugh Durrant-Whyte 和 John J.Leonard提出。SLAM主要用于解决移动机器人在未知环境中运行时定位导航与地图构建的问题。
SLAM主要解决的是以下两个问题:
1、我在哪里?也就是机器人在工作过程中要知道自己的具体位置。对应的术语叫:**定位(Localization)**。
2、我周围的环境是什么样子?也就是机器人需要知道整个空间的地面结构信息。对应的术语叫:**建图(Mapping)**。
从行业需求来看,随着机器人、AR、自动驾驶的爆发式增长,SLAM方向的需求量还在上升,而相关从业者相对较少。
目前对SLAM技术需求强烈的公司包括:互联网公司如百度、腾讯、阿里、京东等,计算机视觉算法公司如旷世、虹软、商汤等,自动驾驶创业公司如图森、momenta、景驰、驭势、滴滴及各大汽车厂商等,无人机/机器人公司如大疆、思岚、高仙等,AR移动终端应用相关公司如三星、华为、悉见等。其中大多企业以激光SLAM为主,毕竟激光SLAM是当下最稳定、可靠的定位导航方案,而视觉SLAM将是未来主流研究方向,不过未来两者融合也将成为一种趋势,采用多传感器融合能做到取长补短,为市场打造出更好用的定位导航解决方案,进一步实现机器人的智能化进程。
总体来说,目前国内SLAM技术无论是在技术层面还是应用层面仍处于发展阶段,未来,随着消费刺激及产业链不断发展,SLAM技术将会有一片更为广阔的市场。
见 定位技术培训大纲