SLAM:SLAM(即时定位与地图构建)的简介、发展、案例应用之详细攻略
SLAM:SLAM(即时定位与地图构建)的简介、发展、案例应用之详细攻略
SLAM的简介
SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。问题可以描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边移动一边逐步描绘出此环境完全的地图,所谓完全的地图(a consistent map)是指不受障碍行进到房间可进入的每个角落。
SLAM问题可以描述为: 机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。
Simultaneous Localization And Mapping也称为Concurrent Mapping and Localization并发建图与定位CML 。SLAM最早由Smith、Self和Cheeseman于1986年提出。 由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。如果这里的传感器主要为相机,那就称为“视觉SLAM"。
1、我在什么地方?—定位,自身状态。 周围环境是什么样?—建图,外在环境。
室内的话,可以在房间地板上铺设导引线,在墙壁上贴识别二维码,在桌子上放置无线电定位设备。如果在室外,还可以在小萝卜脑袋上安装GPS定位设备,像手机或汽车一样。
把这些传感器分为两类。一类传感器是携带于机器人本体上的,例如机器人的轮式编码器、相机、激光等等。另一类是安装于环境中的,例如前面讲的导轨、二维码标志等等。安装于环境中的传感设备,通常能够直接测量到机器人的位置信息,简单有效地解决定位问题。然而,由于它们必须在环境中设置,在一定程度上限制了机器人的使用范围。比方说,有些地方没有GPS信号,有些地方无法铺设导轨,这时怎么做定位呢?
可知,这类传感器约束了外部环境。只有在这些约束满足时,基于它们的定位方案才能工作。虽然这类传感器简单可靠,但它们无法提供一个普遍的、通用的解决方案。相对的,那些携带于机器人本体上的传感器,比如激光传感器、相机、轮式编码器、惯性测量单元(Inertial Measurement Unit, IMU)等等,它们测到的通常都是一些间接的物理量而不是直接的位置数据。例如,轮式编码器会测到轮子转动的角度、IMU测量运动的角速度和加速度,相机和激光则读取外部环境的某种观测数据。我们只能通过一些间接的手段,从这些数据推算自己的位置。虽然这听上去是一种迂回战术,但更明显的好处是,它没有对环境提出任何要求,使得这种定位方案可适用于未知环境。
2、SLAM的问题描述
机器人在未知环境中,从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。
3、SLAM试图解决的问题
一个机器人在未知的环境中运动,如何通过对环境的观测确定自身的运动轨迹,同时构建出环境的地图。SLAM技术正是为了实现这个目标涉及到的诸多技术的总和。
4、SLAM 2D与SLAM 3D
SLAM 2D
SLAM定位时,仅用单线激光传感器,在激光传感器扫描的这一个平面上进行二维定位,在获取精密的二维定位后,在此基础上解算三维激光点云,成为一个完整的空间三维数据。
SLAM 3D
要用三维激光传感器,获取三维数据,然后通过三维数据的特征点匹配进行定位,然后在三维定位基础上,来解算和匹配完整的三维数据。
SLAM的发展
1、古人的牵星板
定位、定向、测速、授时是人们惆怅千年都未能完全解决的问题,最早的时候,古人只能靠夜观天象和司南来做简单的定向。直至元代,出于对定位的需求,才华横溢的中国人发明了令人叹为观止的牵星术,用牵星板测量星星实现纬度估计。
2、1964年美国投入GPS
1964年美国投入使用GPS,突然就打破了大家的游戏规则。军用的P码可以达到1-2米级精度,开放给大众使用的CA码也能够实现5-10米级的精度。后来大家一方面为了突破P码封锁,另一方面为了追求更高的定位定姿精度,想出了很多十分具有创意的想法来挺升GPS的精度。利用RTK的实时相位差分技术,甚至能实现厘米的定位精度,基本上解决了室外的定位和定姿问题。但室内这个问题就难办多了,为了实现室内的定位定姿,一大批技术不断涌现,其中,SLAM技术逐渐脱颖而出。
3、1988年正式提出SLAM
SLAM最早由Smith、Self和Cheeseman于1988年提出。 由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。
- 有理解力的SLAM: 语义SLAM,精准感知并适应环境。将语义分析与SLAM有效融合,增强机器对环境中相互作用的理解能力,为机器人赋予了复杂环境感知力和动态场景适应力。
- 有广度的SLAM:100万平米强大建图能力。借助高效的环境识别、智能分析技术,机器人将拥有室内外全场景范围高达100万平米的地图构建能力。
- 有精度的SLAM:高精度定位领先算法。SLAM2.0可在任何地点进行开机识别、全局定位,精准度高达±2cm。
- 有时效的SLAM:动态地图实时更新。根据传感器回传数据,与原有地图进行分析比对,完成动态实时更新,实现life-long SLAM。
SLAM的案例应用
1、AR/VR设备
根据 SLAM 得到地图和当前视角对叠加虚拟物体做相应渲染,这样做可以使得叠加的虚拟物体看起来比较真实,没有违和感;
2、无人机器、无人驾驶领域
SLAM可以构建局部地图,辅助无人机进行自主避障、规划路径;
无人驾驶领域: SLAM 技术可以提供视觉里程计功能,然后跟其他的定位方式融合;
- SLAM的重要性,有人说,SLAM是无人驾驶技术的灵魂;也有人曾打比方说,手机离开了WIFI和数据网络,就像无人车和机器人离开了SLAM一样。
3、机器人定位导航领域
机器人定位导航领域:SLAM 可以用于生成环境的地图。基于这个地图,机器人执行路径规划、自主探索、导航等任务。
- 核潜艇海底定位就有了SLAM的雏形。扫地机器人的盛行让它名声大噪,近期基于三维视觉的VSLAM又让它越来越显主流。