1. 引言
随着人工智能与机器人技术的不断发展,利用机器视觉引导机械手臂、AVG或移动机器人自主乘梯是近年来的研究方向之一 [1] ,从工业控制领域到智能家居及安防等,在生活中也越来越得到普遍化。机械手臂或是机器人与视觉系统结合的研究始于1970年代,最初的研究是将视觉系统引入反馈控制回路,借由每一次回路的图像获取与处理,做为机械手臂对目标的位置补偿,称为视觉反馈控制回路。Hill和Park等人 [2] 首先提出视觉伺服系统,利用图像处理方法,导引机械手臂运动,完成动作指令。1980年Sanderson等人 [3] 将视觉伺服分成二大类:位置视觉伺服(PBVS)和图像视觉伺服(IBVS),PBVS需要精确的场景或是目标的三维坐标、CCD相机的模型参数,借助坐标系统转换估算目标的位置及方位,使机械手臂完成定位或追踪,因此计算量大,不利于实时控制;IBVS直接自二维图像中估算机械手臂的移动量,导引机械手臂定位或追踪,适合实时控制,然而经由图像处理得到的信息必须精确,即图像信息的精确度直接影响到机械手臂定位的精确度。范文杰等人 [4] 提出有次序目标点路径规划方法及基于云模型的自主乘梯机器人路径跟踪方法,能够保证机器人准确完成乘梯过程,但效率太低,机器人完成整个过程需要时间360~370 s。Kang等人 [5] 利用导航、路径规划并提出了相应算法来识别按钮、电梯运行方向和电梯楼层,但因为该自主乘梯机器人缺少机械手臂,需要人力介入才能完成自主乘梯过程。Juang等人 [6] 设计一种基于路径跟踪,基于颜色空间及视觉识别的轮式自主乘梯机器人,用来识别电梯的按钮,同样由于电梯及机器人之间缺乏通讯或是机器人缺少操控手臂,无法自主完成乘梯过程。2018年,上海云迹科技研发的智能商用机器人“润”,采用自主开发的“机器人电梯物联模块”,使得电梯与机器人之间有效通讯,完成机器人的自主乘梯而不需要人类的协助。
通过对大量国内外文献的分析,当前解决机器人自主乘梯问题的方法有两种,一种是基于物联网及自主导航的机器人,缺点是容易信号干扰;另一种基于机器视觉的机器人,不容易受外界干扰,行为完全自主决定,但是对技术要求更高。目前国内对自主乘梯机器人的研究较少,特别是基于立体视觉与机器运动相结合的方法,且能够尽少受信号干扰及人为辅助,就能独立完成自主乘梯的整个过程的机器人更少。因此,本文设计一种基于模糊逻辑控制及机器立体视觉的自主乘梯机器人,通过视觉定位,操控机械手臂等,使其能够独立完成自乘电梯。考虑到头部立体视觉系统自由度不高,容易受到机器手臂遮蔽而影响判断,所以本文设计在机械手臂的前端安装一个CCD像机,构成一个视觉识别与控制系统,在机器手臂的视觉系统采用IBVS架构,而移动机器人的头部视觉系统则采用PBVS架构 [7] 。
2. 立体视觉与图像处理
立体视觉一般常采用双目立体视觉测量系统 [8] ,为使两个CCD相机架设在已知相对距离与角度的位置,经过图像获取成对图像后,通过图像处理和识别得到目标物在图像中的坐标,再由立体视觉的几何关系即可计算得到目标物中心点相对于两个CCD的垂直深度,CCD之间的光学中心距离为b,几何关系如图1所示。假设有一目标物
于CCD相机坐标
,同时被两个CCD拍摄到形成两个图像中的对应点
及
;目标物
与两个CCD的光学中心线的水平投影距离分别为
及
,垂直投影距离为
;CCD相机焦距为
。利用几何关系可得:
(1)
(2)
(3)
3. 模糊控制
基于模糊控制系统规划机器人的运动路径,为使机器人的运动控制效率最优,采用二组平行架构的模糊控制器,一为SIRMs模糊控制器,另一个为KIDs模糊控制器。SIRMs具有控制规则简单、数目少、执行时间短和易于实现的优点 [9] ,但仅有一个SIRMs是不足以控制较复杂的系统,设计一个调整参数用的KIDs模糊控制器,用以调整SIRMs的输出。
3.1. 变量定义
头部视觉系统进行电梯门的识别时,可由图像得到机器人相对于电梯的位置误差
、
及角度误差
,通过模糊控制器补偿此处误差,使机器人到达目标位置与方向,如图2所示,
为机器人初始位置,
为目标位置,设目标方向为
轴方向,
即为
点的坐标,
为机器人与
轴夹角,通过
点且平行于
轴的射线设为
,设
与
轴交点为
,
为机器人与
线的夹角,
表示为:
(4)
3.2. 模糊控制系统架构
本文设计的模糊控制系统主要控制机器人的前进和方向,所以利用左右轮的脉冲数差来控制机器人前进的轨迹,共有三组误差补偿单元,即六个模糊控制器,如图3所示。
,
,
,
为模糊控制系统的输入,分别为
,
,
及
的标准化值,输出
为机器人左右驱动轮编码器输出脉冲数差值,
代表机器人右转,反之则左转,其定义为:
(5)
其中,
是SIRMi的输出,用于补偿误差;
为KIDi的输出,代表运动重要程度,用来调整
的输出比例;
为权重值,用于调整每组误差补偿单元输出的权重;
为输出比例因子,其中
与
的值是由反复测试得到的经验值。
3.3. 模糊集合与模糊规则库
本文中共有三个SIRM模糊控制器,输入分别为
,
,
,其模糊集合定义如图4、图5所示,其模糊规则及输出
,如表1所示。其中,NB代表负大,NS代表负小,ZE代表0,PS代表正小,PB代表正大。
另一方面,本文描述的三个KID模糊控制器中,KID1及KID2的输入为
,而KID3的输入为
。KID的模糊集合定义如图6所示,其模糊规则及输出
,如表2所示。其中,B代表大,M代表中等,S代表小。
由电梯门识别系统,可得到电梯相对于机器人的坐标误差
及角度误差
,SIRM1为补偿
误差;SIRM2为补偿
误差,而加入SIRM3补偿,可以使机器人的运动更顺畅,避免当
过小时,机器人无法到达目标方位。
4. 实验分析
4.1. 系统架构
自主乘梯机器人为四轮驱动搭载立体视觉系统的构架,硬件控制在Matlab/xPC Target环境下进行,由两台计算机构成主控端与受控端,主控端电脑进行CCD图像获取、图像处理及下达运行指令;受控端计算机接受主控端计算机的指令控制,将机器人的运行指令通过D/A转换和功率放大,驱动电机使机器人运动,其控制系统结构如图7所示。本文将机器人的控制分为机器人运动与机械手臂运动两个子系统,各搭配一组CCD相机信号反馈装置。其次,机器人运动系统的驱动轮使用两个具编码器功能的步进马达,与一个控制CCD相机转向的步进马达,编码器将反馈电机运行状态,由运动控制卡获取;而机械手臂运动系统则包含四个步进马达,机器人的控制系统构架如图7所示,自主乘梯机器人如图8所示。
Figure 7. Robot control system architecture
图7. 机器人控制系统架构图
机器人模拟定位实验结果如图9所示,不同目标方位下机器人运行轨迹图,箭头为目标方位,轨迹的获取时间间隔为0.2秒。模糊控制器参数B1= 2,B2= 2,B3= 0.5,OSF = 1500,驱动轮的脉冲频率为5000 pulse/s,当取样时间不变时,频率越大,则转速越快。
(a)(b)
Figure 9. Simulation positioning of the robot
图9. 机器人模拟定位
4.2. 图像识别
本文的图像处理及识别分为三个部分,一是电梯识别,二是电梯上下按钮的识别,三是电梯楼层按钮识别。
电梯识别目的在于判别电梯的方位,并逐步靠近。图10为图像处理与识别过程,图10(a)为输入图像;将彩色图像从RGB空间转换到HSI空间,经过颜色筛选过后的图像如图10(b)所示;经图像侵蚀处理后如图10(c)所示;右上角为噪声造成的“误判”,使用面积过滤即可滤除,如图10(d)所示;以上为图像处理的过程,取水平投影再设阀值即可找到电梯的左右边界,如图10(e)、图10(f)所示。
电梯上下按钮识别用于机器人停在电梯前时,使用机械手臂上的CCD相机拍摄电梯上下按钮后,识别目标按钮的位置,最后控制机械手臂碰触电梯按钮。图11为电梯上下按钮识别的过程,图11(a)为原始图像,灰阶化及二值化后,使用中通滤波将细微的噪声滤除 [10] ,如图11(b)所示;经过图像侵蚀滤除噪声 [11] ,如图11(c)所示;取出图11(c)中所有区域图像的面积与长宽比输入形状识别,辨别是否为电梯按钮,其结果如图11(d)所示;框选电梯按钮中的图形,如图11(e);将此两个图形与已知的电梯上下按钮图样做图形匹配即可分辨电梯上下按钮,识别的结果如图11(f)所示。
电梯楼层按钮识别用于机器人在电梯里,本文使用机械手臂上的CCD相机拍摄电梯按钮后,识别目标楼层按钮的位置,最后控制机械手臂碰触电梯按钮。图12为识别的过程,图12(a)为原始图像,灰阶化及二值化后,如图12(b)所示;使用图像闭合减少部分图像破洞的问题,再经过噪声消除后,如图12(c)所示;使用面积过滤,辨别出两排电梯按钮,其结果如图12(d)所示;框选两排电梯按钮,如图12(e);利用此两排电梯按钮的相对位置即可推测每个楼层按钮的位置,图12(f)为选择六楼为目标位置的结果。
4.3. 自主乘梯实验
本实验的目标,为建构自行搭乘电梯的机器人。在这个实验中,将机器人搭乘电梯的任务分为五个步骤:第一,控制机器人靠近电梯;第二,控制机械手臂触碰电梯按钮;第三,判断电梯是否开门,并走进电梯;第四,控制机械手臂触碰目标楼层按钮;第五,判断电梯是否到达目标楼层,并走出电梯。
第一步骤如图13所示,初始条件为机器人CCD相机可拍摄到电梯,撷取成对的图像,利用电梯识别判断电梯的方位,输入至模糊控制器规划机器人行进的路径。
Figure 13. Robot recognition elevator bearing process
图13. 机器人识别电梯方位过程
第二步骤为控制机械手臂触碰电梯按钮,如图14所示。虽然机械手臂可到达电梯按钮的定点,但有可能电梯按钮未被触发,因此再使用颜色筛选的方式判断电梯按钮是否已经被按下,否则就再控制机械手臂往前伸,直到判断机械手臂成功触发电梯按钮后,再收起机械手臂至初始位置。
第三步骤如图15所示,机器人停留在电梯前等待,使用颜色筛选的方式判断电梯是否开门,一旦开门即控制机器人走进电梯并转身到达可触碰到电梯楼层按钮的位置。
第四步骤如图16所示,其运作与第二步骤大致相同,差别于图像识别的部分改为电梯楼层按钮识别。最后一个步骤与第三步骤大致相同,如图17所示,通过实验分析,在无人干预下,本文设计的自主乘梯机器人大约在30秒内完成整个乘梯过程。
Figure 14. Robot identification process and the control arm to press the floor button
图14. 机器人识别及控制手臂按下楼层按钮过程
Figure 15. Robot in the process of the elevator
图15. 机器人进入电梯过程
Figure 16. Robot in recognition of the floors in the elevator and button process
图16. 机器人在电梯中识别楼层及按钮过程
5. 结语
本文设计了一种轮式移动机器人,通过建立模糊控制方法及机器视觉系统,成功导引机器人完成自主寻梯及自主乘梯的过程。基于图像处理与识别及立体视觉计算方法,获取电梯相对于机器人的方位与电梯按钮相对于机械手臂的坐标,在无人协助下,成功控制机器人完成自主乘梯的任务,其完成任务的时间约为30 s。由于本文已实现自主乘梯机器人的基本机械手结构与立体视觉控制系统架构,下一步需加强算法的健壮性,让机器人不易受外界因素干扰,可更好地提高机器人自主乘梯效率;同时,也为自主乘梯机器人的设计提供一种思路和参考。