计算机系统应用  2018, Vol. 27 Issue (1): 106-112   PDF    
单目视觉人工路标辅助的移动机器人导航方法
黄露, 朱明     
中国科学技术大学 信息科学技术学院, 合肥 230027
摘要:室内机器人在采用里程计法长距离导航时, 定位精度下降很快, 以及以往人工路标定位方案的识别准确率低, 又难以满足导航实时性的要求. 针对这些问题, 本文设计了能快速准确识别的人工路标, 从而来修正机器人里程计法导航的累计误差, 并通过卡尔曼滤波将人工路标和里程计法的定位信息有效地融合起来. 实验结果表明, 数字人工路标的识别准确率高, 且识别速度满足导航实时性的要求, 该方法有效地提高了移动机器人里程计法导航时的精度和鲁棒性.
关键词: 室内机器人    里程计法    自主导航    人工路标    单目视觉    
Assistance Navigation Method for Mobile Robot Based on Monocular Visual Artificial Landmark
HUANG Lu, ZHU Ming     
School of Information Science and Technology, University of Science and Technology of China, Hefei 230027, China
Abstract: When indoor robot adopts the odometer method for long distance navigation, the positioning accuracy decreases rapidly. In the past, the accuracy of the artificial landmark location scheme is low, and it is difficult to meet the real-time requirement of navigation. To deal with these problems, this paper designs the artificial landmark, which can be quickly and accurately identified, so as to correct the accumulative navigation errors by the robot odometer method, and the location information of the artificial landmark and the odometer method is effectively integrated with Calman Filter. The experimental results show that the recognition accuracy of digital artificial landmark is high, and recognition speed meets the real-time requirement of navigation. This method can effectively improve the robustness and accuracy of the mobile robot when it adopts the odometer method to navigate.
Key words: indoor robot     odometer method     autonomous navigation     artificial landmark     monocular vision    

1 引言

伴随着室内机器人研究水平的不断深入, 其应用场景也越来越多, 对人们的生活和工业生产的影响也越来越明显. 在室内机器人相关技术的研究中, 导航技术是其研究核心[1], 而里程计法是室内移动机器人自主导航技术中广泛采用的方法之一. 采用里程计法的室内机器人利用安装在车轮上的光电编码器记录车轮的转数, 进而获得机器人相对于上一采样时刻位置和姿态的改变量, 通过这些位移量的累积就可以估计机器人的位置, 然而由于存在车轮打滑、地面不平等多种外在因素的影响, 以及光电编码器自身系统误差随着位移积累, 导致机器人定位精度下降很快, 从而不适宜长距离导航. 因此, 解决机器人里程计法导航时的定位精度问题是一项迫不及待的任务[2]. 在实际应用中, 移动机器人的室内导航环境是已知的或者大部分已知的, 机器人完全能够充分利用这些已知信息来改善里程计法导航的不足, 而视觉方法因其获取环境的信息量大, 作为传统里程计导航方法的有效补充, 得到了越来越多的关注[3].

目前, 视觉方法主要通过单目视觉传感器获取环境中具有明显特征的路标进行定位[4], 其中路标主要分为自然路标和人工路标. 从大量的文献来看, 目前基于自然路标的视觉导航[5-7]受环境不确定因素影响大, 算法复杂. 相比于自然路标, 人工路标辅助机器人定位技术, 具有路标特征稳定、定位算法简单等优势[8], 因此, 近年来国内外研究人员开展了很多研究工作[9-16]. 文献[9-13]提出了基于二维码的人工路标, 虽然该路标包含的信息量大, 但是二维码的识别速度慢, 难以满足实时性的要求, 而且识别的准确率受机器人与二维码的距离影响较大.

针对上述问题, 为了同时满足人工路标辅助室内机器人定位导航的准确性和实时性, 本文先从人工路标的设计着手, 然后在室内机器人的导航区域设置人工路标, 提出基于单目视觉人工路标辅助室内机器人导航的方法, 能够有效纠正机器人采用里程计法导航时的累积误差, 最后, 利用卡尔曼滤波将人工路标识别得到的定位信息和里程计法定位数据有效融合起来, 获得更加准确有效的定位精度. 最后通过实验表明, 该方法有效地提高了机器人在采用里程计法进行导航时的精度和鲁棒性. 该方法主要包括人工路标的设计、路标标准库的建立、路标识别定位、修正机器人累积偏差以及定位数据融合这5个主要步骤.

2 人工路标的设计

针对室内移动机器人的实际工作环境, 本文在常用桌号场景路标的基础上, 设计了草绿色背景的阿拉伯数字人工路标, 如图1所示, 数字位于人工路标的中心区域.

图 1 数字人工路标

本文的人工路标是放置在靠近机器人行走路径旁的桌面上的. 当室内机器人的导航距离较长, 需要更多的人工路标以修正自身导航误差时, 可在导航路径中增加含不同数字的路标即可.

3 路标标准库的建立

室内服务机器人工作区域有N张桌子中, 根据机器人的行走路径和室内N张桌子排布的位置关系, 按顺序给桌子编上号码, 在桌面上布置上相对应数字为1-N的人工路标, 则本文将利用这N个人工路标来建立路标标准库.

考虑到常用的图像特征提取与匹配方法有颜色直方图、纹理特征及不变矩特征等, 其中, 不变矩特征[17]是由Hu在1962年提出来的, 由于Hu不变矩具有旋转、平移、尺度和镜像等不变的特征, 所以本文利用该算法来建立路标标准库, 其定义如下.

在图像连续情况下, 其灰度分布为 $f(u,v)$ , 则图像的 $(a + b)$ 阶定义为:

$\mathop M\nolimits_{ab} = \int\limits_{ - \infty }^{ + \infty } {\int\limits_{ - \infty }^{ + \infty } {\mathop u\nolimits^a } } \mathop v\nolimits^b f\left( {u,v} \right)dudv$ (1)

相应的 $(a + b)$ 阶中心距定义为:

$\mathop \emptyset \nolimits_{ab} = \int\limits_{ - \infty }^{ + \infty } {\int\limits_{ - \infty }^{ + \infty } {\mathop u\nolimits_0^a } } \mathop v\nolimits_0^b f\left( {u,v} \right)dudv$ (2)

当图像是大小为 $(X \times Y)$ 的数字图像 $f(u,v)$ $(a + b)$ 阶定义为:

$\mathop M\nolimits_{ab} = \sum\limits_{u = 0}^X {\sum\limits_{v = 0}^Y {\mathop u\nolimits^a } } \mathop v\nolimits^b f(u,v)$ (3)

相应的 $(a + b)$ 阶中心距定义为:

$\mathop \emptyset \nolimits_{ab} = \sum\limits_{u = 0}^X {\sum\limits_{v = 0}^Y {\mathop u\nolimits_0^a } } \mathop v\nolimits_0^b f(u,v)$ (4)

式(1)、(2)、(3)、(4)中 $a,b = 0,1,2,...$ , $\overline u $ $\overline v $ 分别为:

$\mathop u\nolimits_0 = u - \mathop M\nolimits_{10} /\mathop M\nolimits_{00} $ (5)
$\mathop v\nolimits_0 = v - \mathop M\nolimits_{01} /\mathop M\nolimits_{00} $ (6)

则归一化中心矩定义为:

$\mathop \sigma \nolimits_{ab} = \mathop \emptyset \nolimits_{ab} /\mathop \emptyset \nolimits_{00}^\beta $ (7)
$\beta = (a + b)/2 + 1$ (8)

利用二阶矩和三阶矩可以推导出7个Hu不变矩组:

$\mathop \gamma \nolimits_1 = \mathop \sigma \nolimits_{20} {\rm{ + }}\mathop \sigma \nolimits_{02} $ (9)
$\mathop \gamma \nolimits_2 = \mathop {(\mathop \sigma \nolimits_{20} - \mathop \sigma \nolimits_{02} )}\nolimits^2 + 4\mathop \sigma \nolimits_{11}^2 $ (10)
$\mathop \gamma \nolimits_3 = \mathop {(\mathop \sigma \nolimits_{30} - \mathop {3\sigma }\nolimits_{12} )}\nolimits^2 + \mathop {(3\mathop \sigma \nolimits_{21} - \mathop \sigma \nolimits_{03} )}\nolimits^2 $ (11)
$\mathop \gamma \nolimits_4 = \mathop {(\mathop \sigma \nolimits_{30} {\rm{ + }}\mathop \sigma \nolimits_{12} )}\nolimits^2 + \mathop {(\mathop \sigma \nolimits_{21} {\rm{ + }}\mathop \sigma \nolimits_{03} )}\nolimits^2 $ (12)
$\begin{array}{l}\mathop \gamma \nolimits_5 \!=\! (\mathop \sigma \nolimits_{30} - 3\mathop \sigma \nolimits_{12} )(\mathop \sigma \nolimits_{30} \!+\! \mathop \sigma \nolimits_{12} )[\mathop {(\mathop \sigma \nolimits_{30} \!+\! \mathop \sigma \nolimits_{12} )}\nolimits^2 \!-\! \mathop {3(\mathop \sigma \nolimits_{21} \!+\! \mathop \sigma \nolimits_{03} )}\nolimits^2 ]\\ + \mathop {(3\sigma }\nolimits_{21} \!-\! \mathop \sigma \nolimits_{03} )\mathop {(\sigma }\nolimits_{21} + \mathop \sigma \nolimits_{03} )[\mathop {3(\mathop \sigma \nolimits_{30} + \mathop \sigma \nolimits_{12} )}\nolimits^2 - \mathop {(\mathop \sigma \nolimits_{21} + \mathop \sigma \nolimits_{03} )}\nolimits^2 ]\end{array}$ (13)
$\begin{array}{l}\mathop \gamma \nolimits_6 = (\mathop \sigma \nolimits_{20} - \mathop \sigma \nolimits_{02} )[\mathop {(\mathop \sigma \nolimits_{30} + \mathop \sigma \nolimits_{12} )}\nolimits^2 - \mathop {(\mathop \sigma \nolimits_{21} + \mathop \sigma \nolimits_{03} )}\nolimits^2 ]\\ + \mathop {4\mathop \sigma \nolimits_{11} (\sigma }\nolimits_{30} + \mathop \sigma \nolimits_{12} )\mathop {(\sigma }\nolimits_{21} + \mathop \sigma \nolimits_{03} )\end{array}$ (14)
$\begin{array}{l}\mathop \gamma \nolimits_7 \!=\! (3\mathop \sigma \nolimits_{21} \!-\! \mathop \sigma \nolimits_{03} )(\mathop \sigma \nolimits_{30} \!+\!\! \mathop \sigma \nolimits_{12} )[\mathop {(\mathop \sigma \nolimits_{30} \!+\! \mathop \sigma \nolimits_{12} )}\nolimits^2 \!-\! \mathop {3(\mathop \sigma \nolimits_{21} \!+\! \mathop \sigma \nolimits_{03} )}\nolimits^2 ]\\ - \mathop {(\sigma }\nolimits_{30} - 3\mathop \sigma \nolimits_{12} )\mathop {(\sigma }\nolimits_{21} + \mathop \sigma \nolimits_{03} )[\mathop {3(\mathop \sigma \nolimits_{30} + \mathop \sigma \nolimits_{12} )}\nolimits^2 - \mathop {(\mathop \sigma \nolimits_{21} + \mathop \sigma \nolimits_{03} )}\nolimits^2 ]\end{array}$ (15)

本文设计的人工路标边缘特征丰富, 故使用canny边缘算法分别提取这N个人工路标的边缘轮廓, 然后分别计算这N个路标边缘的Hu不变矩的7个Hu不变矩值, 并一一记录在路标标准库中.

4 人工路标的识别

机器人要利用人工路标来进行修正里程计法导航带来的累积误差, 必须能够从采集的图片中判断是否存在人工路标, 因此, 人工路标的有效识别是其辅助室内移动机器人导航的关键技术. 本文主要利用人工路标的颜色特征来快速检测视野中是否存在人工路标, 然后再进行定位和识别, 具体方法步骤如下:

(1) 颜色空间转换. 对机器人采集的图像转换颜色空间: 从RGB空间转变为YCbCr空间. 在YCbCr颜色空间中将Y亮度信息分离出来, 从一定程度上降低了光照的干扰.

(2) 通过高斯模型检测路标区域. 高斯模型应用统计学原理, 对大量目标区域的像素进行统计分析, 确定样本中CrCb的均值M和协方差C. 然后通过已经建立的高斯模型, 从而来判断采集图像中的像素属于目标模型的概率, 也就是根据每个像素点距离高斯分布中心点的距离, 来判断与目标颜色的相似度. 二维高斯模型的函数为:

$P(Cr,Cb) = \exp [ - 0.5\mathop {(x - M)}\nolimits^T \mathop C\nolimits^{ - 1} (x - M)]$ (16)

式中, x为每个像素点在YCbCr颜色空间下的值 $\mathop {(Cr,Cb)}\nolimits^T $ .

因此, 遍历采集图像, 通过式(16)将符合高斯模型的像素点的像素值设置为255, 其余为0, 从而对图像进行了二值化.

(3) 得到路标区域. 对二值化后的图像使用findContours获得轮廓向量, 然后通过轮廓宽高比和其包围的区域面积选择出目标轮廓, 得到目标轮廓的中心坐标. 通过大量的实验发现, 在采集图像中, 路标区域的轮廓宽高比在1左右(0.8-1.0), 而且在满足宽高比的条件下, 所围面积最大的轮廓即为路标所对应的轮廓. 新建一个黑色的遮罩图层, 通过drawContours操作将目标轮廓内部空间用白色填充, 然后用CopyTo将路标区域从采集图像中拷贝出来.

(4) 识别路标. 对路标区域使用canny操作获得其边缘轮廓, 然后再提取边缘轮廓的Hu不变矩的值 $(\mathop \gamma \nolimits_1' ,\mathop \gamma \nolimits_2' ,\mathop \gamma \nolimits_3' ,\mathop \gamma \nolimits_4' ,\mathop \gamma \nolimits_5' ,\mathop \gamma \nolimits_6',\mathop \gamma \nolimits_7' )$ . 本文定义两个Hu不变矩 $(\mathop \gamma \nolimits_1' ,\mathop \gamma \nolimits_2' ,\mathop \gamma \nolimits_3' ,$ $\mathop \gamma \nolimits_4' ,\mathop \gamma \nolimits_5' ,\mathop \gamma \nolimits_6' ,\mathop \gamma \nolimits_7' )$ $(\mathop \gamma \nolimits_1 ,\mathop \gamma \nolimits_2 ,\mathop \gamma \nolimits_3 ,\mathop \gamma \nolimits_4 ,\mathop \gamma \nolimits_5 ,\mathop \gamma \nolimits_6 ,\mathop \gamma \nolimits_7 )$ 的距离为:

$d = \sqrt {\sum\limits_{i = 1}^7 {\mathop {(\mathop \gamma \nolimits_i' - \mathop \gamma \nolimits_i )}\nolimits^2 } } $ (17)

依次按式(17)计算并比较路标标准库中的不变矩值与待识别的边缘不变矩的距离, 选取最小不变矩距离dmin且根据大量实验数据分析, 要求 $\mathop d\nolimits_{\min } < 5$ 进行路标识别, 这样就完成路标识别的任务了.

5 校正机器人导航偏差

对采用光电编码器里程计法进行导航中的机器人来说, 必须在短时间短距离内对机器人运动产生的航向偏差进行修正. 行进中的机器人在采集的图像中判断是否存在人工路标, 与标准库进行匹配识别, 当正确匹配识别后, 根据单目视觉摄像机的成像原理, 可以完成二维图像与三维空间的坐标转换, 确定机器人所处环境中的位置, 然后校正机器人的航向, 进一步降低系统的累积偏差.

在单目视觉室内机器人导航系统中, 机器人车体坐标系和相机坐标系是相对不变的, 于是将两者合成一个坐标系. 为了表示图像坐标系与世界坐标系的关系, 本文用 $(\mathop x\nolimits_w ,\mathop y\nolimits_w ,\mathop z\nolimits_w )$ $(\mathop x\nolimits_c ,\mathop y\nolimits_c ,\mathop z\nolimits_c )$ 分别表示世界坐标系、相机坐标系的三维坐标值, 用 $(u,v)$ 表示图像坐标系的二维坐标值. 根据单目摄像机的成像原理, 确定图像坐标系与世界坐标的转换关系为:

$\mathop z\nolimits_c \left[ {\begin{array}{*{20}{c}}\!\! u \!\! \\\!\! v \!\! \\\!\! 1 \!\!\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}\!\! {f/du}&0&{\mathop u\nolimits_0 }&0 \!\! \\\!\! 0&{f/dv}&{\mathop v\nolimits_0 }&0 \!\! \\\!\! 0&0&1&0\end{array}} \right]\left[ {\begin{array}{*{20}{c}}\!\! R&t \!\! \\\!\! {\mathop 0\nolimits_3^T }&1 \!\!\end{array}} \right]\left[ {\begin{array}{*{20}{c}}\!\! {\mathop x\nolimits_w } \!\! \\\!\! {\mathop y\nolimits_w } \!\! \\\!\! {\mathop z\nolimits_w } \!\! \\\!\! 1 \!\!\end{array}} \right]$ (18)

然后, 确定相机坐标系与世界坐标系存在如下的转换关系:

$\left[ {\begin{array}{*{20}{c}}{\mathop x\nolimits_{\rm{c}} }\\{\mathop y\nolimits_c }\\{\mathop z\nolimits_c }\\1\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}R&t\\{\mathop 0\nolimits_3^T }&1\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{\mathop x\nolimits_w }\\{\mathop y\nolimits_w }\\{\mathop z\nolimits_w }\\1\end{array}} \right]$ (19)

在式(18)、(19)中f为摄像机的焦距, dudv分别为每个像素在图像坐标系U轴、V轴的间距, $(\mathop u\nolimits_0 ,\mathop v\nolimits_0 )$ 是图像的中心点坐标, R为3×3旋转矩阵, t是三维平移向量, $\mathop 0\nolimits_3^T = \mathop {(0,0,0)}\nolimits^T $ .

本文机器人所携带的单目摄像机事先已经进行了标定[18], 在采集的图像中识别出人工路标, 通过式(18) 由人工路标中心点的坐标计算出该点对应的世界坐标, 然后使用式(19)计算出该点的摄像机坐标, 即该点相对摄像机的位置, 然后通过逆变换即可确定摄像机的世界坐标, 这样就能确定机器人在室内的位置了, 从而与光电编码器反馈的机器人位置进行比较, 就能达到纠正机器人航向偏差的目的了.

6 里程计导航与路标定位的融合

移动机器人采用里程计导航时, 光电编码器提供两次不同定位时刻之间的距离, 其航位推算方程为:

$\mathop P\nolimits_n = \mathop P\nolimits_{n - 1} + R\left[ {\begin{array}{*{20}{c}}{ \pm \mathop D\nolimits_i }\\0\\0\end{array}} \right]$ (20)
$\begin{array}{c}R = \left[ {\begin{array}{*{20}{c}}1&0&0\\0&{\cos (\varphi )}&{\sin (\varphi )}\\0&{\sin (\varphi )}&{\cos (\varphi )}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{\cos (\theta )}&0&{ - \sin (\theta )}\\0&1&0\\{\sin (\theta )}&0&{\cos (\theta )}\end{array}} \right]\\[7pt] \times \left[ {\begin{array}{*{20}{c}}{\cos (\varepsilon )}&{\sin (\varepsilon )}&0\\{ - \sin (\varepsilon )}&{\cos (\varepsilon )}&0\\0&0&1\end{array}} \right]\end{array}$ (21)

在上式中, $\mathop P\nolimits_n $ $\mathop P\nolimits_{n - 1} $ 为机器人两次定位时刻对应的位置坐标, R为从车体坐标系到世界坐标系的旋转矩阵, $\varphi $ $\theta $ $\varepsilon $ 为车体的3个姿态角, Di为两次定位时刻之间的距离.

本文的室内移动机器人采用里程计法作为主要的导航方式, 而基于单目视觉人工路标的定位方法作为辅助手段来对导航定位数据进行修正. 里程计误差主要包括系统误差和非系统误差两种. 系统误差是由于移动机器人设计结构不合理或者里程计精度不高导致的内部误差, 是一个与时间无关的近似零均值物理量[19]. 非系统误差主要是由车轮打滑造成的, 但它对里程计造成的误差是随机产生的, 可以当作零均值白噪声来处理[20]. 单目视觉人工路标的定位误差也是随机产生的, 进而也可以近似当作零均值白噪声来处理. 因此, 里程计误差和人工路标的定位误差都可以近似当作零均值的高斯白噪声来处理, 而且两者之间是相互独立的. 所以, 本文这里采用卡尔曼滤波(Kalman Filter)方式对位置信息进行融合. 机器人车体所在位置被定义为滤波的状态量, 用里程计法航迹推算公式(20)为预测模型, 从而来实现状态量的预测与更新, 单目视觉人工路标的定位方式规定为观测模型来提供观测值, 从而构建系统的状态方程与测量方程分别为:

$\mathop P\nolimits_k = \mathop {AP}\nolimits_{k - 1} + \widehat R\left[ {\begin{array}{*{20}{c}}{ \pm \mathop D\nolimits_{k - 1} }\\0\\0\end{array}} \right] + \mathop W\nolimits_k $ (22)
$\mathop {\rm{Z}}\nolimits_k = \mathop {HP}\nolimits_k + \mathop V\nolimits_k $ (23)

上式中, $\mathop P\nolimits_k $ $\mathop P\nolimits_{k - 1} $ 为机器人两次不同定位时刻对应的状态向量, $\mathop P\nolimits_k {\rm{ = [}}\mathop x\nolimits_k {\rm{,}}\mathop y\nolimits_k {\rm{,}}\mathop z\nolimits_k {\rm{,]}}$ , A为状态转移矩阵, $\mathop W\nolimits_k $ 为系统误差噪声, $\mathop {\rm{Z}}\nolimits_k $ 是观测值, 也就是人工路标的定位结果, H为观测矩阵, $\mathop V\nolimits_k $ 为观测过程中的测量误差噪声, 从而得出系统状态的更新方程为:

$\widehat {\mathop P\nolimits_k } = \widehat {\mathop P\nolimits_k^ - } + \mathop K\nolimits_k (\widehat {\mathop Z\nolimits_k } - H\widehat {\mathop P\nolimits_k^ - })$ (24)

上式中, $\mathop K\nolimits_k $ 为卡尔曼滤波器增益矩阵, $\widehat {\mathop P\nolimits_k^ - }$ 为由状态方程得到的已知的状态估计量, $\widehat {\mathop Z\nolimits_k }$ 为由观测方程得到的观测值, $\widehat {\mathop P\nolimits_k }$ 为融合后的位置信息.

7 实验论证

本文采用如图2所示的室内移动机器人来完成系统实验. 该机器人采用2HSS57-KH-XX混合式步进伺服驱动提供动力, 并采用每50微秒高速采样的光电编码器进行位置反馈. 机器人的运行速度为0.50 m/s, 并且采用100万像素的摄像头来采集图像, 并配备CPU为1.86 GHz、运行内存为2 GB的PC机. 移动机器人室内实验环境的导航路径是矩形(长为8.85 m, 宽为2.40 m), 如图3所示, 本次实验在实验区域设置8个人工路标(从数字1到数字8对应的人工路标).

7.1 路标识别的实验结果

人工路标导航方案的关键在于路标能否被较好识别[9], 因此下面将进行人工路标的识别准确性和实时性的实验. 为了不赘述, 本文只展示数字为1的路标在光线强度适中的实验效果, 如图4所示. 采集的图像如图4(a)所示; 进行上文第4节的步骤(1)、(2)、(3)后, 得到的路标区域如图4(b)所示; 按照上文第4节的步骤(4)进行canny操作后的边缘轮廓如图4(c)所示.

图 2 室内移动机器人

图 3 室内实验环境

图 4 实验结果展示

同时, 本文添加了背景干扰实验, 采集的图片如图5(a)所示; 进行上文第4节的步骤(1)、(2)后, 得到可能的路标区域如图5(b)所示; 进行上文第4节的步骤(3)后, 得到的路标区域如图5(c)所示, 按照上文第4节的步骤(4)进行canny操作后的边缘轮廓如图5(d)所示.

分别对图4(c)图5(d)所示的目标区域的边缘轮廓提取Hu不变矩的数值, 其结果和标准库中的数字1对应的人工路标满足不变矩距离d最小, 且 $\mathop d\nolimits_{\min } < 5$ , 故人工路标能被正确识别.

移动机器人在图3所示的室内环境中进行导航时, 人工路标的识别主要会受到光线、路标所在区域的背景复杂程度以及摄像头拍摄角度等因素的干扰. 因此, 本文在光线较暗、适中、较强三种不同条件下, 以及在人工路标背景简单、复杂两种情况下, 分别从不同的拍摄角度采集50幅含有人工路标的图像, 进行对比实验, 测试人工路标的识别速度和准确率, 表1给出了实验数据.

图 5 背景干扰实验

表 1 人工路标识别的实验数据

由此可以看出, 本文提出的人工路标识别对光照、背景复杂程度和拍摄角度的变化具有很强的鲁棒性, 而且平均识别准确率为88.67%, 平均识别时间为97 ms, 能够满足移动机器人进行自主导航的准确性和实时性要求.

7.2 辅助定位及数据融合实验结果

机器人在如图3所示的室内矩形场地进行自主导航时, 8个路标处均能被快速准确地识别. 移动机器人在采用里程计法导航时, 利用单目视觉人工路标定位的位置信息对里程计法推算的位置信息进行融合修正, 得到修正后的位置定位估计. 在此导航路径中进行机器人导航实验, 分别记录机器人运动轨迹的实测值、采用里程计导航的自定位数据以及路标定位和里程计定位进行融合后的定位数据, 机器人导航的定位数据分析对比如图6所示. 图中, 黑点为机器人导航运动轨迹的实测值. 红色“*”点对应的是里程计导航系统的定位数据, 与真实数据对比, 误差明显, 这些误差主要是由于轮子在地面上打滑、里程计导航系统本身的误差等诸多因素造成的, 由于定位误差的存在, 使得此系统的定位数据发生向外漂移的现象, 尤其在车体长距离移动后, 不断累积的误差使得这种漂移现象更加严重. 在融入视觉人工路标的定位信息修正后(绿色“+”对应的数据), 定位数据的精度得到了明显地提高, 使得定位数据明显趋近与真实测量数据, 整个导航系统的误差大幅度降低.

图 6 定位数据对比图

与此同时, 本文又以8个人工路标位置为间隔, 将机器人运动轨迹划分为8段进行逐段分析(分析数据如表2所示), 在表中, 序号1表示第1个路标到第2个路标的导航分段, 序号2表示第2个路标到第3个路标的导航分段, 以此类推; X为各个分段的机器人运动距离; E1E2分别为里程计导航和融合视觉人工路标定位算法在个导航分段的累积误差; R1R2分别为这两个误差占各个分段行驶距离的比例.

表2中的实验数据可以看出, 机器人采用里程计法导航时的误差主要发生在导航路径长且存在转向的分段5, 说明此导航路段误差主要是因为常量误差不断积累, 使得累积误差偏大, 而修正后的直行路段(如分段6)累积误差有限. 存在转向且导航距离较长的路段(如分段5和分段7)的累积误差明显高于其它导航路段, 但经过修正后, 均已得到明显改善, 说明人工路标定位信息的引入使得单点定位的误差明显改善, 车体航向的校正使得整个导航轨迹趋于正常, 两者结合后明显改善了导航系统的累积误差.

表 2 分段定位误差分析

8 结束语

在室内环境下, 针对室内移动机器人里程计法不适宜长距离导航的问题, 本文提出了一种基于单目视觉人工路标辅助机器人定位和导航的方法. 首先, 本文设计了一种新的数字人工路标, 并提出了相应快速准确的识别方法, 对采用里程计法导航的机器人进行运动航向偏差的修正, 最后通过卡尔曼滤波器有效地实现了定位数据的融合. 通过实验表明, 数字人工路标的识别对光照、背景复杂程度和拍摄角度的变化具有很强的鲁棒性, 且能够满足机器人导航准确性和实时性的要求, 该方法有效地降低了里程计法导航时的累积误差, 明显地提高了导航系统的精度和鲁棒性. 本文下一步将继续优化人工路标的识别方法, 提高人工路标在光线昏暗和强光情况下的正确识别率, 使机器人在室内更好地完成自主导航的任务.

参考文献
[1]
王志文, 郭戈. 移动机器人导航技术现状与展望. 机器人, 2003, 25(5): 470-474.
[2]
陆新华, 张桂林. 室内服务机器人导航方法研究. 机器人, 2003, 25(1): 80-87.
[3]
陈明芽, 项志宇, 刘济林. 单目视觉自然路标辅助的移动机器人定位方法. 浙江大学学报(工学版), 2014, 48(2): 285-291.
[4]
刘振宇, 姜楠, 张令涛. 基于人工路标和立体视觉的移动机器人自定位. 计算机工程与应用, 2010, 46(9): 190-192, 211.
[5]
唐琎, 白涛, 蔡自兴. 移动机器人的一种室内自然路标定位法. 计算机工程与应用, 2005, 41(15): 44-47, 185. DOI:10.3321/j.issn:1002-8331.2005.15.013
[6]
Sun YD, Ding N, Qian HH, et al. Real-time monocular visual self-localization approach using natural circular landmarks for indoor navigation. Proceedings of 2012 IEEE International Conference on Robotics and Biomimetics (ROBIO). Guangzhou, China. 2012. 495–500.
[7]
Lu Y, Song DZ. Visual navigation using heterogeneous landmarks and unsupervised geometric constraints. IEEE Transactions on Robotics, 2015, 31(3): 736-749. DOI:10.1109/TRO.2015.2424032
[8]
唐恒博, 陈卫东, 王景川. 基于多元M序列的人工路标设置方法. 机器人, 2014, 36(1): 29-35.
[9]
王孙平, 田乔, 傅世忱, 等. QR码导航的室内目标搜寻机器人研究. 计算机系统应用, 2014, 23(1): 193-196.
[10]
姜海涛, 田国会, 薛英花, 等. 新型人工地标的设计、识别、定位及应用. 山东大学学报(工学版), 2011, 41(2): 107-113, 118.
[11]
George L, Mazel A. Humanoid robot indoor navigation based on 2D bar codes: Application to the NAO robot. Proceedings of the 2013 13th IEEE-RAS International Conference on Humanoid Robots (Humanoids). Atlanta, GA, USA. 2013. 329–335.
[12]
Zhang S, Sun L, Dong L, et al. Initial location calibration of home service robot based on 2-dimensional codes landmarks. Proceedings of the 33rd Chinese Control Conference. Nanjing, China. 2014. 8315–8320.
[13]
Lee SJ, Tewolde G, Lim J, et al. QR-code based localization for indoor mobile robot with validation using a 3D optical tracking instrument. Proceedings of 2015 IEEE International Conference on Advanced Intelligent Mechatronics (AIM). Busan, Korea. 2015. 965–970.
[14]
丁娜娜, 田国会, 李国栋, 等. 基于人工地标的双足机器人视觉自定位. 山东大学学报(工学版), 2013, 43(4): 51-56.
[15]
Guo Y, Xu XH. Color landmark design for mobile robot localization. Proceedings of the Multiconference on " Computational Engineering in Systems Applications”. Beijing, China. 2006. 1868–1874.
[16]
Shen JL, Hu HS. Mobile robot navigation through digital landmarks. Proceedings of the 10th Chinese Automation & Computing Society Conference in the UK. Liverpool, England. 2004. 117–124.
[17]
Hu MK. Visual pattern recognition by moment invariants. IRE Transactions on Information Theory, 1962, 8(2): 179-187. DOI:10.1109/TIT.1962.1057692
[18]
Remondino F, Fraser C. Digital camera calibration methods: Considerations and comparisons. International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences, 2006, 36(5): 266-272.
[19]
杨晶东, 杨敬辉, 洪炳熔. 一种有效的移动机器人里程计误差建模方法. 自动化学报, 2009, 35(2): 168-173.
[20]
孙华, 李伟, 吴亚明. 基于里程计/地磁/GPS的导航系统设计. 微型机与应用, 2016, 35(1): 81-84, 87.