1、基于彩色码的清洁机器人定位技术 呼洪强 秦泽浩 石家庄学院计算机科学与工程学院 吉林大学计算机科学与技术学院 摘 要: 家用清洁机器人需要精确的导航, 而室内颜色、形状的特征提取很难.为此, 提出可在室内不同区域贴放多个水平彩色码的技术, 用摄像头拍摄易识别彩色码, 根据拍摄到的彩色码, 计算出清洁机器人在该彩色码的相对位置, 通过学习, 记住清扫区域的导航方案, 配合电子罗盘, 顺序清扫, 直至清扫全部区域, 从而实现对复杂的大面积区域的全部清扫, 做到依序、不重复、不漏扫, 是一种高效、实用、低成本的清扫导航技术.关键词: 清洁机器人; 易识别彩色码; 电子罗盘; 作者简介:呼洪强 (19
2、75-) , 男, 河北大名人, 讲师, 主要从事机器人技术研究.收稿日期:2017-09-12Cleaning Robot Localization Technology Based on Color CodeHU Hong-qiang QIN Ze-hao School of Computer Science School of Computer Science Abstract: Household cleaning robot requires precise navigation, while the interior color and shape feature extracti
3、on is very difficult. Therefore, this paper proposes that multiple level color code can be posted in different indoor areas; andaccording to the color code capturedbycamera shooting recognition, the relative position of cleaning machine in the color codeis calculated.Through learning, the robot reme
4、mbersthe cleaning navigation scheme of areas and electronic compass, and cleans in order all the areas without repetition or missing. Such is an efficient, practical, clean, low-cost navigation technology.Keyword: clean robot; easy identification color code; electronic compass; Received: 2017-09-120
5、 引言清洁机器人已逐渐走入家庭, 为家庭清扫带来便捷.衡量清洁机器人清扫质量有两个重要指标, 分别是导航定位策略和清扫效率.现有清洁机器人的导航定位主要依靠碰撞、红外、超生波等传感器实现障碍, 定位导航功能弱, 使得清洁效率低.如何有效提高清洁机器人的导航定位精确度和清洁效率, 是清洁机器人急待解决的核心问题.1 相关研究清洁机器人导航定位目前大多采用红外定位、超生波定位、无线电波定位、RFID 定位、电子罗盘定位、Zigbee 定位和基于视觉的图形图像识别定位导航等1.红外定位成本低廉, 方向性好, 能在短距离 (8 m 左右) 的可视空间内实现较好定位, 对于大空间需要布置更多红外探测点,
6、 从而导致成本高、探测点空间占用大.超生波定位精度低、方向性差, 在超声波可视距离 (0.5 m 左右) 内定位, 对大空间的定位粗糙.无线定位可以穿透物体, 但容易受周围环境 (如家用电器) 的干扰, 精度不稳定.RFID 分为有源和无源两种, 无源方案能够测出接触点的位置, 但距离太近, 有源方案能够测试到更远距离, 但没有方向性.基于视觉的图形图像定位因为具有距离远和有方向性的特点, 成为清洁机器人导航定位的常用技术.考虑清洁机器人产品成本、定位精确度等因素, 原有的图形图像识别算法复杂, 需要较高性能的芯片, 且算法精度差, 特别是在没有特征的图像区域内, 定位精度更难保证.为此, 笔
7、者采用摄像头拍摄某一易识别彩色码, 根据拍摄到的彩色码图片, 进行基于特征图像识别技术, 结合电子罗盘、左右两轮测速传感器2, 实现了以低成本核心芯片的清洁机器人精确导航定位.2 色彩码设计方案易识别彩色码是图像识别算法的关键.良好的图案设计能够减少计算量, 使得系统快速精确地识别出色彩码, 为清洁机器人后续行动方向提供决策信息.易识别彩色码的图标分为标志和信息两部分, 如图 1 所示, A, E 是标志部分, B, C, D 是信息部分.A-E5 部分高度、宽度相同, 水平放置, 当清洁机器人拍摄到前方水平处的图片后, 迅速读取出像素矩阵数据.A-E 具体为:A:红色;B:黄色、洋红或青色三
8、种颜色之一;C:黄色、洋红或青色三种颜色之一;D:黄色、洋红或青色三种颜色之一;E:绿色或蓝色.图 1 色彩码编码 下载原图其中各颜色的 RGB 值分别为红色 (255:0:0) , 绿色 (0:255:0) , 蓝色 (0:0:255) , 黄色 (255:255:0) , 洋红色 (255:0:255) , 青色 (0:255:255) , 这 6 种颜色区分度大, 识别该种颜色算法简单.标志部分和信息部分分开, 有利于迅速、唯一地找出色彩码部分.首先在图片中找出红色的开头位置, 然后再找绿色或蓝色的结尾位置, 最后计算 B, C, D 中心位置, 这 3 个中心点的颜色是黄色、洋红或青色
9、 3 种颜色之一就可以确认色彩码的身份 ID.红色开头绿色结束是普通彩色码, 红色开头蓝色结束是结束区彩色码.B, C, D代表 27 个不同清扫区域.这种基于色彩码的图像识别导航算法3简单、高效, 使得成本低、运算较慢的芯片能够轻松胜任机器人视觉定位的要求.3 系统架构清洁机器人系统功能见图 2.清洁机器人系统采用以 STM32F407 为核心的嵌入式系统, 视觉系统采用摄像头 OV2640 拍摄前面水平方向的图像, 外扩 SRAM IS62WV51216 芯片缓存拍摄到图像, 另外还包括电子罗盘、两侧轮的测速传感器等外围模块.为了节约核心计算时间, 通过不间断采集前面方向的图片, 找出特征
10、彩色码, 分析清洁机器人自己在彩色码前方具体位置, 机器人根据自己所在的相对位置结合电子罗盘方向信息, 驱动两轮依次清扫.图 3 为清洁机器人视觉图像识别处理流程.图 2 清洁机器人系统功能图 下载原图4 色彩码特征识别算法OV2640 的图像数据格式, 一般用两种输出方式:RGB565 和 JPEG.笔者采用RGB565 格式数据输出, 一个像素用 16 位表示, 格式是 RGB565, 然后缓存在外扩 SRAM IS62WV51216 芯片内, 依次通过以下步骤进行特征识别:1) 通过依次查询像素矩阵4每个像素寻找红色、绿色或蓝色像素, 考虑到室内环境光线的区别, 设定一定的颜色阈值变量,
11、 R, G, B 3 个颜色变量的阈值分别是 rt, gt, bt, 在阈值范围内得出相同颜色, 使得颜色比对准确、容错性好.采样颜色在范围255 (255-rt) :0gt:0bt为红色, 在范围0rt:255 (255-gt) :0bt为绿色, 依此类推, 蓝色范围0rt:0gt:255 (255-bt) , 黄色范围255 (255-rt) :255 (255-gt) :0bt, 洋红色范围255 (255-rt) :0gt:255 (255-bt) , 青色范围0rt:255 (255-gt) :255 (255-bt) ;图 3 色彩码识别流程 下载原图2) 计算红色、绿色或蓝色相同
12、颜色像素中中间位置的坐标, 得出红色像素中心点到绿色或蓝色像素中心点在二维矩阵中的距离, 通过下面公式计算 B, C, D部分中心点的坐标, 并取出这些坐标的颜色值.B 中心点的 x 坐标=x_RED+abs (x_RED-x_BLUE) /4;C 中心点的 x 坐标=x_RED+abs (x_RED-x_BLUE) /4*2;D 中心点的 x 坐标=x_RED+abs (x_RED-x_BLUE) /4*3;B 中心点的 y 坐标= (y_RED+y_BLUE) /2;C 中心点的 y 坐标= (y_RED+y_BLUE) /2;D 中心点的 y 坐标= (y_RED+y_BLUE) /2;
13、3) 计算出 B、C、D 中心点的坐标, 从二维矩阵中取出像素点, 判断像素是否在上面各个点的取值范围内, 若不在范围内, 就可判定色彩码判断出错, 3 个点都在范围内, 就可确定查找色彩码正确.以 C 中心点为整个色彩码的中心坐标.5 清洁机器人定位与导航算法1) 在室内要根据区域集中程度, 分为几个区域, 放置色彩码标志, 色彩码前面应该有足够的空间, 以便于清洁机器人能较为清晰地拍摄到.2) 在初次使用扫地机器人时, 要让清洁机器人学习清洁路径, 待机器人的电子罗盘定位成功, 用户用遥控器引导清洁机器人依次成功拍摄到所有的色彩码, 这样的训练便于清洁机器人学习记忆, 从而提高清洁机器人的
14、工作效率.3) 色彩码包含的信息包括 3 种类型的信息, 首先是普通色彩码还是结束色彩码, 普通色彩码是红色开头, 绿色结束, 结束色彩码是红色开头, 蓝色结束.这个信息决定清洁机器人下一个区域在什么位置, 相邻区域是逆时针相邻, 清洁完最后一个区域, 清洁机器人应该逆时针沿墙壁回归出发点, 结束清扫.4) 清洁机器人距色彩码远近距离不同, 拍摄到的色彩码大小不同, 因此根据此得出距离色彩码的距离, 配合超声波传感器、电子罗盘、测速传感器, 依次清洁, 在清扫过程中根据一定的时间间隔不断拍摄前面图像, 寻找色彩码, 计算色彩码位置和大小5, 根据位置决定清扫的顺序, 完成该区域内的清扫, 根据
15、学习记忆到的各个区域的方向及位置关系, 寻找下个区域, 直到完成所有区域的清扫.6 实验结果以彩色码为导航定位的清扫方案, 通过实验测试色彩码识别精度和距离定位精度, 实验结果见表 1、表 2.表 1 色彩码识别精度 下载原表 表 2 色彩码距离计算精度 下载原表 由表 1、表 2 的实验数据看, 色彩码识别精度和距离计算精度均较高.由此可见, 使用色彩码的导航定位方案, 在基于学习记忆型的机器人导航中, 有效地提高了导航精确度, 缩短了打扫时间, 具有较好的应用价值.参考文献1HORNUNG A, BENNEWITZ M, STRASDAT H.Efficient Vision-based
16、NavigationJ.Autonomous Robots, 2010, 29 (2) :137-149. 2王志刚, 孙培峰, 罗志增.基于视觉的足球机器人快速识别技术J.机电工程, 2003, 20 (6) :53-55. 3MARQUES C F, LIMA P U.A Localization Method for a Soccer Robot Using a Vision-based Omni-directional SensorC/Robo Cup 2000:Robot Soccer World Cup IV.Springer-Verlag, 2001:96-107. 4沈春生, 王耀南.移动机器人目标分割及测距方法研究J.计算机工程与应用, 2011, 47 (23) :181-183. 5张博, 汪剑鸣, 冷宇, 等.室内移动机器人新型视觉导航系统设计J.工业控制计算机, 2010, 23 (2) :31-33.