从一开始就是打算尽量把这个学科的陡峭曲线弄缓一点,结果还是有点本末倒置了,即使想写得再简单,这个学科本身确实还是涉及到很多数理的知识,于是今天补个入门吧,以后如果有漏了,就以0.3/1.5这类的标题加进去它们应该出现的位置。
到底什么是机器人状态估计呢?
1.什么是状态估计,能做到什么?
通过某一种手段或者多种手段(目前人类的主要方式就是利用传感器结合算力平台来做),估计出你手上机器人/机械臂/XR头盔/眼镜(或者任何一种装置在空间中的位置与姿态)。能做什么呢?看到这里大家应该有一个很直观的感受,能做的事情很多,我举一些例子
(1)如扫地机器人进行路径规划后完成对一个房间的打扫
(2)在机器人比赛中配合底盘做一个自动夹取目标的装置
(3)利用一种手持仪器完成一个建筑的三维重建(这个在今天入门篇的建图部分进一步解释)
(4)利用一种头盔装置实现增强现实,如戴上头盔玩AR认路,VR游戏等
还有更多更多炫酷的落地与应用就不一一说了,这个学科未来的大方向主要是2个: 机器人/XR
名词解释:
AR:增强现实,在我们观察面中将真实图像与虚拟定义结合起来
VR:虚拟现实,大家平时去打游戏的时候经常能玩到不赘述了
XR:听起来很高大上,其实就是AR/VR和未来什么什么R的统称。
另外大家注意,我们主要关心机器人领域,XR这些太细的尽量别问我,也是小白
2.SLAM的解释与定义:同步位置姿态估计与建图,这是整个大学科的基本描述之一,定义的范围很大,从字面意思大家就能看出来,其实这个东西用得非常广泛了,主要包括了定位,建图,导航,避障。后续要解释的VSLAM/雷达导航/LIO/VIO/DIO/VDIO都属于这个范畴和递进演化。
举个最小单元例子来说就是扫地机器人,但是本质上它是个二维生物,因为在家里扫地只需要用一些很简单的手段就可以实现了,比如一个单点雷达,多扫几圈就能形成二维地图(成熟建图的手段也有很多,比如ROS里的网络栅格地图)并规划路线。 还有就是自动驾驶的无人车,也是目前人类最复杂的机器人形态之一,这2个例子落差很大,但应该是大家非常熟悉的形态。
SLAM是机器人或各种装置未来落地大范围进入半自动(人机协同),全自动的基础之一
名词解释:ROS: 机器人操作系统,目前1.0为主,有志做机器人的同学也要学习好2.0
3.常用传感器描述
外感传感器:通过外部信息完成数据采集的传感器
(1)视觉相机:这个很直观,就是可见光相机了。包含卷帘快门和全局快门2种基础形态,这种相机后续我会有专门的介绍详解,这里就不赘述了。
Lidar: 这个和机器人强相关有点扫/线扫/固态/半固态/毫米波,主要采集环境和目标的深度数据,特点是工作范围大精度高上手快。缺点是好的雷达比较贵,便宜的(如毫米波)是非线性输入很难用。
(2)D相机:这是很有趣的一种相机类别,工作模式类似相机,但却能得到深度信息。主要有TOF(飞行时间摄像机)与结构光摄像机2类,TOF还包括了iTOF和dTOF两类,这2种解释比较繁杂,有兴趣的同学可以自行了解。优点是能得到深度,缺点是目前来说工作的距离和范围比较小,还会受到一些特定干涉比如玻璃,工作距离大的成本与功耗较高。
(3)IR相机:热成像相机,优点就是数据极其稳定,不受光流和阴影的影响,缺点就是贵,比较适合特种领域使用。
内感传感器:通过装置自身信息完成数据采集
(1) IMU:陀螺仪,能够给出设备在空间中3轴旋转,3个方向平移的信息,可以提供加速度计判断出加速度,还有一些陀螺仪可以给出海拔和地磁信息(不建议在工程中用),机器人行业常用的是双音叉MEMS陀螺仪,这个不详细解释,大家知道是精度不太高漂移和噪声比较严重的便宜装置就行了。多传感器融合融态是可以部分解决它的这些毛病的。高精度的光纤IMU主要用在军事的导弹和火箭上,大家知道很贵就行。
(2)轮速计:就是机器人的轮速计,很直观
(3)GPS+RTK、北斗+RTK:在户外通过内感精确定位装置位置的传感组合,加上RTK之后还能精确定位海拔(误差一般几厘米或者几十厘米)。很厉害,在无人机UAV上用得多,缺点是完整组合也不便宜,另外只适应户外,还有无法给出装置的朝向(即只有位置没有姿态)
4.SLAM基础架构
(1)前端:就是通过各种各样的传感器通过某种方法完成初步的估计,技术比较成熟了,缺点就是实际并没有那么理想,有各种各样的噪声和环境干扰,都容易随着时间累积出各种各样的问题
(2)后端优化:通过数学/程序/工程的方式对前端出来的位置与姿态进行优化,目前来说是整个SLAM的重中之重,做得好的话机器人就可以长期和相对稳定的运行了
(3)回环(闭环约束):即使有了前端和后端,系统跑久了还是容易出幺蛾子的,这时候回环就是通过技术手段让它回归,目前技术手段比较成熟,长期来看可能会往人工智能方向发展
5.多传感器融合融态估计
这个看名字就知道了,通过多传感器的信息融合,互相解决对方的毛病,使装置随时和更准确的估计出在空间中三维的位置与姿态,从二维生物升级成三维生物,这就是空间智能啦!
VSLAM: 用视觉相机进行优化
雷达导航:单纯使用雷达点云进行优化
VIO:使用视觉和IMU进行联合优化
DIO:使用D相机和IMU进行联合优化(未破局,受制硬件)
VDIO:使用视觉/D相机/IMU进行联合优化(未破局,受制硬件)
LIO:使用雷达与IMU进行联合优化
LVIO:使用视觉/雷达/IMU进行联合优化(部分破局,主用中速物流车等,实际落地不理想)
基本的解释就结束了,当然这个领域也不会像名词解释得这么简单,如果要深化,还是要花很多精力与功夫的,给大家看一个简单效果截图:
右边绿线就是装置在空间中走出的整体轨迹,绿色的小点就是相机在空间中看到的特征,那个立方椎体就是相机在空间中准确的位置与姿态了。最后说一下:位置姿态估计与三维建图其实是同一件事,建图是位置姿态估计的副产品,但真正的实现在工程上是很困难的,因为对存储和算力以及GPU的要求都比较高。