文 | 风和
4月11日,智东西创课约请到速感科技CTO张一茗,就《从0到1理解SLAM》这一主题在智东西旗下「机器人」社群(有入群需求请天骄智小西微信zhidxrobot)开讲。本文为本场创课的全程图文实录,分为主讲+Q&A二部分。全文共计5026字,读完大概须要15分钟,你可以节制:
1、SLAM的定义、发展史;

2、机器人视觉传感器的演进史;
3、三维深度传感器的不同技能路线及差异比较;
4、SLAM如何实现,尤其是vSLAM;
5、vSLAM运用在机器人上存在的问题;
关于高朋:张一茗,速感科技CTO,毕业于北京航空航天算夜学,参与总装备部、火箭军等多型号惯性及其组合导航定位系统设计,卖力惯性/卫星/光学组合导航系统及算法设计,具有丰富的定位导航系统设计履历。
主讲实录张一茗:感谢大家的支持,也感谢何总(注:智东西联合创始人何峰)的约请,来到这里跟大家分享我在SLAM领域的认识和理解,也欢迎分享后和大家一起磋商SLAM技能在机器人行业的运用。
各位千万别客气,我先来按照我的思路来跟大家分享以下我对SLAM的理解吧。
SLAM全称simultaneous localization and mapping大家该当都比较熟习了,字面可见分为两大部分:定位、构图。
定位(严格来说是定位、定姿)这个问题几千年来都是个炒的火热的问题。定位的场景千差万别,对精度的哀求也越来越苛刻。与此同时,定位也是个细分市场,出于不同场景对付体积、本钱、精度、更新频率需求的差异,衍生了多种多样的定位办法。比如GPS、惯导、DR、无线电乃至蓝牙、wifi等等。GPS具有体积小、米级定位精度、无累计偏差可做差分、可授时等上风,缺陷是要事情在室外,更新频率低,易受多径效应等影响。
惯性导航系统具有短时定位精度极高、输出频率极高,但是它的高本钱、大体积、需初始对准的特性使它不会大规模进入消费类市场。消费级机器人领域,通过DR(Dead reckoning)航位推算方法,能够用很低本钱的编码器,实现精准的速率掌握和短韶光的位置朝向估计,但是具有比较大的累计偏差且不能实现重定位。随着Rangefinder、CMOS、高性能CPU的发展,人们能够用足够的算力和存储,采集足够的信息,利用场景模型等参数作为先验信息融入到位置姿态估计中。SLAM这种同时建模与构图的观点开始成为一个研究热点。
我这里有一篇论文《1991 Simultaneous map building and localization for an autonomous mobile robot》。(下载论文)
在1991年的时候,SLAM的开山鼻祖们利用了18个超声传感器,利用EKF设计了第一套针对移动机器人的SLAM系统。后来随着激光雷达的涌现,系统能够更随意马虎的识别2D平面的角点特色,雷达SLAM的实用性上升了一个级别。而后随着CPU算力的提升,图像的处理能力越来越强,基于单摄像头、多摄像头、深度摄像头的SLAM研究与运用如雨后春笋般冒出来。
基于视觉影像的SLAM系统体积小、功耗低、可靠性高,在供应准确定位的同时,也能够建立或稀疏或稠密的舆图,给人无限遐想的空间。十多年来,学术界针对视觉SLAM的研究日月牙异,创造了许多精良的理论。然而到了本日大家也都创造,纯视觉的vSLAM依然有它的缺陷,比如受光照条件影响大,高动态环境精度低落,对场景繁芜度哀求高档特点,以Visual-SLAM为根本的多传感器领悟SLAM成为新的热点。
2012年美国军方提出了一个相称宏伟的观点,开展了在GPS做事被滋扰、被阻断,即不能利用GPS做事背景下的高精度定位、导航与授时技能:“全源导航”(ASPN)技能研究,以期在未来对抗条件下的军事行动中保持、霸占精确PNT(Position navigation time)能力的上风。希望建立一套算法和软硬件架构兼容10种以上的传感器。 尤其是最近几年,microPNT的观点也被军方炒的越来越火热。
目前的导航定位算法大多被迫在完备性与效率之间进行折中和选择。“全源导航”须要发展新的滤波算法,能够全面兼容各种导航算法,如高斯、非高斯统打算法,或线性、非线性丈量模型算法等;同时,新的导航算法必须知足真实环境下实时运行的哀求。新的导航算法应该能够处理平台运动和丈量可用性之间产生的时变状态空间问题,能够对所有导航丈量结果进行统计。因此,在实行任务时,新的导航算法应能够灵巧地对传感器、敏感器,以及丈量量的引入和去除进行调度,从而供应准确和可靠的导航办理方案。
这个观点很难,难在要适用于水下,地下,丛林,郁闭森林,郊区,城市峡谷,建筑室内,开放区域等各种环境、同时还要知足步辇儿,无人机(所有规格),潜水器,轮式车辆,履带式车辆,飞机,小型机器人等各种平台,丈量影像,速率,加速度,旋转速率,韶光,位置,海拔高度,方向,相位来实现组合定位导航。
除了2D/3D成像系统以外,他们采取了倾角罗盘,,间隔/伪距测距仪,气压计,温度传感器,方位角速率传感器,GPS,激光雷达,加速度计,陀螺仪,磁力计,回转罗盘,计时器,毫米波雷达以及其他雷达,1、2、3轴AOA/LOB/TDOA传感器,计步器,星敏感器,红外传感器,无线局域网(WiFi)/射频吸收机,声学传感器等等传感器。也只有用上这些传感器,才有可能实现真正全天候、全场景、全平台的定位导航系统。
这是他们大概的架构,可想而知有多繁芜。
ASPN的项目给了我最大的一个警示便是:不谈场景去谈定位便是在耍泼皮。以是咱们来好好谈谈针对机器人领域中的vSLAM方案。
vSLAM在机器人上最难的问题我认为是这句话:start as a scientist, end as an eigineer。
Dyson出了一款360deg的omnidirectional的vSLAM扫地机,他们的研发起于21世纪初,做了十多年,才把一个扫地机做的俊秀(受一些客不雅观条件限定,效果没有它的外不雅观那么俊秀)。
学术界上各种各样vSLAM算法天花乱坠,可是如果没有自己的技能积累和工程化履历,这离实际的产品化差距还是太远。
对付机器人的vSLAM而言,视觉传感器在个中举重若轻。一个好的视觉传感器便是一个通亮的眼睛。本日咱们按照维度的高低来大略先容下:
传统面阵相机/多目被动式相机采取面阵CMOS作为核心元件,随着手机行业对付镜头的强劲需求,使得全体CMOS、镜头制造行业迅猛发展,低本钱廉价的镜头成为轻而易举的事情。知足了机器人行业对付监控、目标识别与剖析、跟踪与定位的需求。
机器人行业的兴起带火了很多摄像头公司,如果归类的话依然分开不了以下几类:
对付单目构造光:激光投射器通过DOE投射出特色明显的散斑,被红外摄像头捕获,然后解算出深度信息。图中可以看到Kinect(采取primesense方案)透射出去的散斑图,DOE二维光学构造使得激光穿过DOE时,先扩散成伪随机散斑,然后衍射为9束,形成看似随机实在略有玄机的散斑。
然后受投射器功率的影响,单目构造光很难事情在室外。双目构造光则可以规避这个毛病当然还有一些其他的构造光
这个是hptg供应的pattern图案,他们设计的一体化投射器模组能够实现小体积低温漂移的点阵图案,他是由两幅十分规律的散斑组成,末了同时被红皮毛机得到,精度相对较高。
还有一种比较独特的方案,它采取mems微镜的办法,类似DLP事理,将激光器进行调频,通过微镜反射出去,并快速改变微镜姿态,进行行列扫描,实现构造光的投射。比如Intel的realsense方案,这种方案可以做到比hptg还要薄的厚度,缺陷是信噪比相对较差,动态效果略差一点,也算是体积与性能之间的一种折中。
ToF(time of flight)也是一种被炒的火热的深度获取方法,紧张分为脉冲式和相位式两种。这是一种相位式tof的事理,通过采集四个采样点的相位,解算韶光差,得到对应pixel的深度信息。
传感器发出经调制的近红外光,遇物体后反射,传感器通过打算光芒发射和反射韶光差或相位差,来换算被拍摄景物的间隔,以产生深度信息。
相位法可以减轻背景光对付深度提取的影响,但是受这种四个采样点分时曝光的限定,它对付动态物体的效果要比脉冲式差一些。脉冲式是一种更常见的tof测距方法,从传统的工业雷达,到现在炒的比较火的面振tof都大量存在它的踪影。
除了以上构造光、tof和普通相机以外,还有一种有趣的摄像头叫eventcamera。
视频加载中...
他检测的是变革的像素,大大缩减了输出的数据量,轻轻松松实现类似光流的算法而且具有极高的输出频率。学术界也有人在利用它在做slam,大家可以去搜索干系的论文看看。
这里找到了一个dyson360的一个有趣的vSLAM展示,通过采集全景镜头的视频数据,只有640480的分辨率,实现了很有趣的vSLAM定位。
SLAM算法在实现的时候紧张要考虑以下4个方面:
1、舆图表示问题比如dense和sparse都是它的不同表达办法,这个须要根据实际场景需求去决议。
2. 信息感知问题,须要考虑如何全面的感知这个环境,RGBD摄像头FOV常日比较小,但激光雷达比较大。我们也做过一个类似dyson的方案,能够实现很低本钱,小体积的机器人定位。
3. 数据关联问题,不同的sensor的数据类型、韶光戳、坐标系表达办法各有不同,须要统一处理
4. 定位与构图问题,便是指怎么实现位姿估计和建模,这里面涉及到很多数学问题,物理模型建立,状态估计和优化。
我们也做过一个类似dyson的方案,能够实现很低本钱,小体积的机器人定位。
vSLAM里面还要考虑的有回环检测问题,探索问题(exploration),以及绑架问题(kidnapping)。
vSLAM在算法部分,对数学的根本哀求比较高,对概率统计、最小二乘估计、随机梯度低落(或者高斯牛顿、LM)、线性系统建模与估计、非线性系统的观点和优化都得有较深的理解,同时也得有一个open的视野,闇练的编程能力,来实现效率更高的算法。
在团队配置上,更须要要更种各样的人,算法工程师、嵌入式工程师、光学工程师、传感器工程师、算法优化工程师、构造工程师、机电工程师以及丰富的产品测试安排。
比如这便是几周前我们对IMU进行的一系列测试的一部分,受温漂影响,IMU的输出会随着芯片温度上升零偏发生漂移。这就会给一些绝对的姿态参考造成很大的问题,须要通过温度试验摸出imu的噪声偏差同等性,从而进行有效的补偿。
全体SLAM大概可以分为前端和后端,前端做配准,研究不同帧之间的变换关系。
首先提取每帧图像特色点,利用相邻帧图像,进行特色点匹配,然后利用RANSAC去除大噪声,然后进行ICP匹配,同时可以利用IMU供应的姿态信息进行滤波融。
这是我们的传感器合营上我们6dof Visual Inertial SLAM算法的一个大略展示。
vSLAM在机器人上的运用最难的便是产品化和本钱上的考虑,好在机器人的vSLAM不须要特殊高的实时性,也没有VR、AR令人难熬痛苦的眩晕效应,不须要将打算速率提的特殊高,机器人行业的vSLAM是一个真正短期内看得见的爆发点。
合营低频的visual解算,100ms内利用imu纯积分实现高频率的vSLAM姿态输出,基本上可以实现很低jitter的定位定姿。当然这个行业还远没有达到成熟的阶段,比如依然没有得当的芯片,没有覆盖全场景全天候的办理方案,这也是全体slam行业要连续办理下去的问题。
韶光差不多了,本日大概先分享到这里。
Q&A环节实录提问1
刘军令
目前比较主流利用的slam算法都有哪些?分别都有哪些实际运用中的上风和局限?
张一茗:目前的开源SLAM方法还是很多很多的,海内有一些研究者整理过一个网站。
http://slamcn.org/index.php/%E9%A6%96%E9%A1%B5#.E4.B8.BB.E6.B5.81.E5.BC.80.E6.BA.90SLAM.E6.96.B9.E6.A1.88
但是我的意见是,这些算法都是科研成果,是属于scientist的东西。他们并不能轻松实现产品化,start as a scientist, end as an eigineer,如果没有自己的算法,别人走过的坑该踩还是要踩,才能真正走向产品化的。
提问2
陈进博
目前市场中做SLAM的公司很多,如何去识别哪家更有上风?对付做这一块的公司,您认为该当若何才能突围而出?
张一茗:我认为识别公司上风的指标便是成熟度,demo很随意马虎,出产品很难。必须有丰富的产品化履历以及脚踏实地的扣每一个细节,才能够突围而出,胜算表示在一些细节,比如标定设备、标定方法、测试方法、生产线设计等等。
提问3
何潇
目前主流的ORB-SLAM的关键点和优化方向是什么?
张一茗:ORB-SLAM只是开源算法的一种,它构建了一种思路很清晰的vslam方法,前端后端严谨,框架清晰,很适宜初学者学习,但是我个人认为在产品化的路上他并不是一个特殊好的方案。
提问4
林义闽
vslam是否可以用于室外空旷区域?
张一茗:vSLAM在室外是可以用的,但是有一些限定。比如说基于Depth的SLAM在室外是险些是没法用的。由于室外光源太强,很难得到一个准确的Depth。以是深度图的这种匹配是完备不起浸染。然后,对付基于纯视觉SLAM在室外的话,大部分场景是可用的。但是如果说,室外的这种景深太过单调,比如说十分空旷,表示不出层次感的话,他依然是不能够实现一个很好的定位的。只要室外的场景错落有致一些,它依然能够实现一个比较好的精度。
(补充提问):针对第4点的提问,是否可以理解说SLAM紧张是利用在室内的而不是室外呢?
张一茗:绝大部分室外场景是可用的,除非特殊空旷的一些极度环境。我们测试过我们的算法,没有问题。
提问5
刘焕云
室内三维重修有没有推举的开源算法,刚入门该当从何入手?
张一茗:这个需求跟SLAM领域略有不同,该当是属于SFM的领域,这个领域开源方法大概多,您可以去SFM领域的paper中征采下
提问6
Jennifer
机器视觉领域创业公司和大公司比上风和劣势在哪里?速感科技的核心上风是什么?公司面临的核心寻衅是?
张一茗:我认为定位这个行业最大的特点就在于,没有万能的定位方案,每个运用处景都有不同的需求,大家都是在征采一个更大的市场,纵然是大公司,也很难做到类似apple这样的垄断。对付创业公司,做大公司未来得及做之事,在大公司做起来之前的窗口期抢占对自己有上风的市场,赚取足够的利润并成为新的巨子,这是我认为创业公司的生存之道 (回答完毕)。
提问7
李海峰
叨教SLAM硬件在基于FPGA实现的实践中能做到多高的深度分辨率和帧率,还有须要多少逻辑单元?
张一茗:slam并不适宜用纯粹的fpga去实现,由于slam中虽然确实有很多可以并行化的部分,但是同时也有很多串行逻辑运算,我认为比较得当的方案还是arm加其他并行处理器的soc架构。我们目前用一些并行化的dsp去做特色提取,500个特色点可以花几个ms来完成,而pc上须要20ms。
我们目前用一些并行化的dsp去做特色提取,500个特色点可以花几个ms来完成,而pc上须要20ms。
提问8
张辰
基于SLAM的移动机器人,在行进过程中,如何战胜周边环境变革的影响?(比如在仓库物流运用中,周围货色车辆职员的动态变革)
张一茗:这个问题可以通过两个方面办理,一个是扩大传感器的视野,比如用大视场角的镜头或360deg的雷达,另一方面利用其他传感器比如惯性、编码器进行组合,都可以进行周围环境变革的抑制。
提问9
王佳龙
想问一下,贵公司宣扬的M-32传感器定位精度1cm,这个精度指的是RMSE吗?如果是,groundtruth是通过什么方法得到的?
张一茗:groundtruth采取的是类似vicon的光学方案进行标定的,精度mm级别。1cm的定位精度是指的RMSE,是在室底细况进行的测试。
提问10
吴文钦
张总好。我们在用Tof摄像头的来做AGV导航。有好的厂家推举吗?你们有适宜的模组吗?感激
张一茗:Tof模组我们不设计,做Tof的公司很多,最上游的有pmd、ti、epc等等公司,下贱的模组公司有很多,可能不太适宜在这里广告,您可以网上多征采一下,或者私下沟通一下。