室内定位

机器人的室内定位由于卫星导航失效,主要利用机器人底盘 的轮式光电编码器里程记惯性测量模块视觉传感器进行定位。轮式里程计和惯性导航集成在机器人的底盘硬件部分,二者算法简单快速,但精度不高,容易受到环境的影响且存在严重的误差累积。同时机器人使用的是麦克纳姆轮它们允许横盘走势、全方向移动但是可以被横向推着走,轮子上的横向小轮的运动姿态无法被编码器捕获,这样会加剧里程计的误差累计。

所以我们需要利用机器人上搭载的摄像头进行视觉定位进行辅助组合定位

国内外的解决方法

定位技术 范围 分辨率 抗干扰
RFID射频标签 5cm-5m 米级
WIFI 5-10m 米级
蓝牙 2-10m 米级
激光雷达SLAM 0-10(25)m 厘米级
超宽频UWB标签 60-300m 分米级
红外线 5-10m -
超声波 1-10m 分米级
计算机视觉 1m-10m 米级

RFID 定位技术[1]

常用的 RFID(Radio Frequency Identification)定位系统主要由标签、读写器、中间件以及数据库四个部分组成。其定位方法也比较简单,首先通过读写器接收目标设备与标签之间的位置关系信息,之后将该信息通过中间件传入定位系统进行后续操作。在 RFID 定位的应用性研究方面,许多团队已经取得了不错的研究
成果。2004 年 Ni 团队完成了基于 RFID 技术的 LANDMARC 系统,在实现过程中提出了一种基于固定位置的参考标签辅助定位方法[2],该方法使得系统的定位精度被控制在 1m 内。但是固定位置的参考标签有一定的局限性,为了改善这个问题,Zhao 项目组采用大量的参考标签作为辅助[3],提前剔除掉待定位物品中可
能性不大的位置信息,降低计算量的同时也提高了定位精度。以上述研究为代表,不难发现 RFID 定位技术有着定位速度快、对环境要求低的优点,但同时也有着需要提前部署额外基站设备的劣势。

小结:定位速度快、对环境要求低的优点,但同时也有着需要提前部署额外基站设备的劣势。

Wi-Fi 定位技术

Wi-Fi 是一种基于 IEEE 802.11 标准的 WLAN 技术。Wi-Fi 定位的实现原理基于位置指纹模型,首先根据各个 AP 接收目标发出的 Wi-Fi 信号的强弱程度构建位置指纹模型,然后将定位时的 Wi-Fi 信号强度与模型中的记录进行匹配从实现定位。比较常用的视觉定位系统是由微软研究院研发的 RADAR 定位系统,该系
统能够达到 m 级的定位精度[4]。最近,有研究将 Wi-Fi 定位与递归神经网络(Recurrent Neural Networks,RNN)相结合,提出了一种基于 RNN 模型的 Wi-Fi定位系统。与多层感知模型(Multilayer Perceptron,MLP)相比,基于 RNN 的Wi-Fi 定位系统具有更高的定位精度[5],但定位方法仍未脱离额外基站的辅助。Wi-Fi 定位技术之所以如此普遍在于其性价比较高,用户可以通过移动终端(如手机、笔记本等智能设备)实现定位。同时,基于 Wi-Fi 的定位模型计算比较简单,信号传输速度较快,覆盖半径较大。但要实现更高精度的定位,仍需要提前部署更多的 AP,造成较多的前期资源投入。

小结:wifi定位技术可以复用现有的机器人通讯设备,要实现更高精度的定位,仍需要提前部署更多的 AP,而且需要提前测量网格中的wifi位置指纹。

蓝牙定位技术

蓝牙技术是一种基于无线数据规范,其定位原理是通过计算蓝牙基站发射信号到达目标设备的时间,然后根据时间计算距离确定目标位置。Momose 项目组基于粒子滤波和蓝牙信标的定位算法,通过修正 particle filter 的似然函数,减少了蓝牙信号在传输过程中可能受到环境因素的干扰[6]。在另一个研究中,Zhu 等
人提出了一种基于 RSSI(Receive Signal Strength Indication)的蓝牙定位方法[7]。该方法为了减小由于所选取参考点位置不同而带来的定位误差,设计了一个Gaussian filter 来预处理不同采样点所接收的蓝牙信号,使定位精度被控制在 1m以内的概率提升为 80%。蓝牙定位技术的安全性、稳定性、便捷性是它的突出优势,但蓝牙定位技术的局限性也同样明显,由于基站信号强度的限制其只能在较小范围中实现定位。

UWB

UWB技术是一种使用1GHz以上频率带宽的无线载波通信技术。它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很大,尽管使用无线通信,但其数据传输速率可以达到几百兆比特每秒以上。使用UWB技术可在非常宽的带宽上传输信号,美国联邦通信委员会(FCC)对UWB技术的规定为:在3.1~10.6GHz频段中占用500MHz以上的带宽

UWB技术始于20世纪60年代兴起的脉冲通信技术。UWB技术利用频谱极宽的超宽基带脉冲进行通信,故又称为基带通信技术、无线载波通信技术,主要用于军用雷达、定位和低截获率/低侦测率的通信系统中。2002年2月,美国联邦通信委员会发布了民用UWB设备使用频谱和功率的初步规定。该规定中,将相对带宽大于0.2或在传输的任何时刻带宽大于500MHz的通信系统称为UWB系统,同时批准了UWB技术可用于民用商品。随后,日本于2006年8月开放了超宽带频段。由于UWB技术具有数据传输速率高(达1Gbit/s)、抗多径干扰能力强、功耗低、成本低、穿透能力强、截获率低、与现有其他无线通信系统共享频谱等特点,UWB技术成为无线个人局域网通信技术(WPAN)的首选技术.

小结:定位准确,但是需要部署有源基站

机器视觉

机器人视觉研究的核心内容是:视觉定位与导航、路径规划、避障、多传感器融合。视觉定位技术有多种,包括单目视觉、双目视觉、多目视觉、RGB-D等,后三种方法可以使图像具有深度信息,这些视觉“眼睛”亦可以称为VO–视觉里程计。VO在机器人乃至计算机视觉问题中,是一个通过分析处理相关图像序列来确定机器人的位置和姿态的解决方案。

现今,随着计算机图像处理技术的不断进步以及传感器电子科学的飞速发展,使得越来越多的研究者采用摄像机作为全自主移动机器人的感知元器件,这主要是因为常见的超声或红外传感器感知信息能力有限,鲁棒性差,而视觉系统则可以弥补这些缺点。但是,现实世界是立体的、三维的,而投影在摄像头感光器件(CCD/CMOS)上的图像是二维的、平面的,因此,基于摄像机的视觉处理目标就是从感知到的二维图像中提取有关的三维世界信息,用于机器人的定位与导航。

小结:可以利用机器人已有的视觉模块,但是很容易被干扰,精度也难得到很高的水平。

视觉定位研究

视觉定位不需要诸如wifi、蓝牙、UWB等定位方式提前在定位地点部署基站,视觉定位经过多年的发展广泛应用于机器人定位、物流等领域。在线定位阶段,常用的视觉定位系统主要做了三件事情:图像信息匹配、位姿求解、位置计算,其中位姿求解对视觉定位起到关键作用。

ArUco标签

ArUco 是由RafaelMuñoz和Sergio Garrido开发的用于检测方形基准标记的流行库,其在许多计算机视觉应用程序中,姿势估计非常重要:机器人导航,增强现实等等。该过程基于发现真实环境中的3d点与其2d图像投影之间的对应关系。这通常是一个困难的步骤,因此通常使用合成或基准标记来简化操作。
使用ArUco记号通常是一个常用的途径之一。这标记的主要优势是单个记号就提供了获取相机姿态的足够对应信息。同时,记号的内部二进制编码使得标记在错误检查和修正等方面保持一定的稳定性。

一个ArUco标记外围都有一组黑色边框,同时内部有着确定该标记ID的二维矩阵组合而成。黑色的边框能加速标记在图像中的检测速度,内部的二维编码能唯一识别该标记,同时进行错误检测和错误修复。标记的大小确定了内部矩阵的大小,上图是一个6×6大小的标记带有36bits的信息。而这些信息储存在不标记字典中。

ArUco与二维码的比较

功能 ArUco 二维码
储存信息 只能存储简单id数字信息 可以存储任意自定义信息
检测难易 检测简单、快速,并且具有很强的鲁棒性 在远距离、大偏角容易丢失
检测模块 cv2.aruco模块,直接返回标签的姿势等信息 opencv4.0+才完全支持,且识别效率不高

在目前室内定位应用中,我们无需在标签上存储太多的信息,有区分的id即可,实际验证中ArUco更容易利用摄像头捕捉到(这很重要),况且ArUco本身就是广泛应用于做姿势估计的。

ArUco标签识别过程

1.灰度化画面信息像素:摄像头采集到的信息一般是彩色的,但是我们的二维码是黑白的
2.设置预定义的字典: aruco.Dictionary_get(aruco.DICT_6X6_250)
3.使用默认值初始化检测器参数: aruco.DetectorParameters_create()
4.解码:检测到marker,返回ID和标志板的4个角点坐标,

具体过程可以看我的这篇文章:链接1 链接2

ArUco识别结果


获取与aruco标签之间的距离

1
2
###### 距离估计 与相机标定影响很大#####
distance = ((tvec[0][0][2] + 0.02) * 0.0254) * 100 # 单位是米


To do

获取角度

rvec是以弧度表示的欧拉角。需要先使用cv2.Rodrigues将rvec转换为矩阵。然后将矩阵转换为欧拉角,rvec是一个指向向量,向量的长度(以弧度为单位)对应于垂直于该指向向量的平面中的旋转弧度。

rvec是Rodrigues旋转向量或轴角表示

rvectvec代表什么?

现在,rvectvec代表什么?

它们允许将以一个坐标系表示的3D点转换为另一个坐标系。在这里,您可以将标签框架中表示的3D点转换为相机框架:

图片说明

因此,对于第一种情况,您应该具有(这里以标记X轴为例):

图片说明

对于平凡的情况,您可以通过查看允许将标签的X轴,Y轴和Z轴转换为相机框架的值来恢复旋转矩阵。


我认为,极少需要使用欧拉角,我不喜欢它们。为什么?

首先,因为它们是欧拉角的12种不同 表示/惯例。所以首先您必须同意在与其他人/代码打交道时使用哪种欧拉约定。

然后,云台锁定

仅在必须能够解释旋转时才需要欧拉角。因此仅用于打印或作为用户输入(例如,在Blender中旋转CAD模型)。

其余时间,应使用旋转矩阵或四元数表示来完成计算。

tvec直接是相机框架和标签框架之间的平移


利用aruco码可以直接估算姿态的特性,反算出相机姿态(尚未完成)


引用:[1]李智猛. 基于WebGL的场景识别视觉定位系统研究[D].杭州师范大学,2020.