视觉是人类感知外界信息的重要手段,视觉伺服系统是机器人获取环境信息的关键组成部分。本文主要讨论仿人机器人BHR-1的视觉伺服系统。首先介绍机器人头部的视觉总体结构方案,然后论述了基于立体视觉的信息处理和头部运动控制,最后通过目标跟踪和物体抓取实验说明了系统的可行性。
总体方案及控制系统
仿人机器人的视觉伺服系统要求能够根据具体环境和具体情况进行主动搜索,实时将摄像头转向目标,实现对空间目标的实时跟踪并获取物体的三维位置信息,从而控制手臂实现对物体的准确抓取。
BHR-1)的头部有2个自由度,面部放置两只CCD摄像头作为
视觉传感器来模拟人的眼睛。机器人的手臂也是模仿人类的上肢设计的,具有7个自由度,肩关节3个自由度,肘关节2个自由度,腕关节2个自由度,可以实现人类上肢的各种动作。机器人根据目标的三维位置信息实现对物体的抓取。
仿人机器人BHR-1的总体设计方案如图2所示。为了实现物体的快速定位,需要完成图像处理和运动控制的任务。一台计算机将难以满足快速定位的实时性要求,因此本文采用了双计算机处理和Memolink通信方式的系统结构,使用两台计算机分别负责双目立体视觉的信息处理和机器人的运动控制。Memolink是系统间进行快速通信的一种有效解决方案。
机器人的视觉跟踪以及目标抓取的实现都依赖运动控制计算机对机器人的运动控制。运动控制系统根据视觉处理系统的处理结果,控制机器人采取相应决策。例如:头部的两自由度转动,以跟踪目标的运动或者上肢手臂去抓取目标。运动控制子系统以RT-Linux实时操作操作系统作为软件平台,保证了机器人控制系统的实时性。
机器人的运动控制子系统的被控对象是机器人的各关节的角度,而关节是由电机带动的,因此被控对象实际上是带动关节转动的电机转动的角度,是一个位置伺服系统。
系统使用了一套多功能接口板,将所有的A/D转换、D/A转换、ENC、PWM、32位IO等多种功能都集成在该接口板上,提高了系统的集成性并减小了系统体积和重量。
在控制信号的输入方面,由于控制的目的是为了机器人的头部能够跟踪运动的目标,因此实际上输入量就是根据图像处理子系统的处理结果得到的,在图像处理的过程中,最终求得的目标的位置就是后面运动控制子系统的输入量。由于图像处理子系统的处理结果本身就是数字量,运动控制子系统所得到的位置信息也是数字信号,因此,这里不需要模数转换的过程。
在反馈信号的输入方面,因为被控对象是电机,确切的说是电机转动的角度,是位置控制,因此可以用电机上面的轴角
编码器的输出作为反馈信号。轴角编码器是一个测量电机所转过的角度的器件,它以脉冲的方式来反馈电机转过的角度,电机转过的角度越大,它输出的脉冲个数就越多,反之,输出的脉冲个数就越少。因此我们采用了接口板上的ENC(encoder)接口来作为反馈信号的输入通道,它可以测量轴角编码器的脉冲输出个数。机器人头部的运动控制子系统的结构框图如图3所示。
基于立体视觉的视觉信息处理
系统采用了基于立体视觉的解决方案,通过加入了深度信息,使得目标的搜索结果更加准确。系统使用了美国SRI人工智能中心所开发的一套高速的双目立体视觉系统SVS(small vision system)。
图像分割是物体识别的预处理阶段,是机器人视觉伺服系统的关键技术之一。该系统采用了基于颜色信息的阈值分割方法。理论分析和实验结果都表明,对同一颜色属性的物体,在光源种类、照度、物体反射特性等不同条件下,测得的RGB颜色值分布很分散,很难确定识别RGB的阈值范围。而HSV模型更接近人眼对颜色的感知,它将采集的颜色信息分为色调、饱和度和亮度三种属性量化,色调属性H能比较准确地反映颜色种类,对外界光照条件的变化敏感程度低,因此,HSV较之RGB更适合于用做识别处理的基础。本文采用HSV模型作为颜色识别处理的基础,选取其中的参数H和V作为识别处理的判别依据。RGB空间中一点到HSV空间中一点的具体转化关系如下:
V=max(r,g,b),V′= min(r,g,b);
If V= 0 or V = V′then H=0, S=0;
If r = V then H=(g-b)/(V-V′);
If g= V then H=2+ (b-r)/(V-V′);
If b = V then H=4+ (r-g)/(V-V′), H=H×60;
If H <0 then H=H+360, S=(V-V′)/V
系统首先离线采样目标图像区域,将该局部彩色图像从RGB模型转化为HSV模型,对其中H、S两个分量分别作直方图,得到选定区域的H、S阈值,这是一个离线的学习过程。在随后的实时图像识别中,H、S阈值根据前一个视觉周期的彩色图像实时更新以适应新的光照条件。
视觉处理系统的流程图如图4所示,系统使用摄像头来采集图像,在对图像进行一系列的预处理之后,对其进行区域分割,以得到多个区域,再搜索这些区域,根据已知目标特征找到目标所在的区域。如果找到,则控制机器人头部面向目标,同时更新目标的特征,以用来在下次搜索时使用,如果没有找到相匹配的目标,则可能目标被暂时隐藏或丢失,这时开始下一次处理,以等待目标再次出现。
因为视觉处理系统处理的是上一个周期的图像,所以得到的目标坐标也是上一个周期的坐标,如果用此方向坐标来作为运动控制的输入,则头部运动始终滞后一个周期。为了加快系统的速度,本文采用了比例微分控制,系统地输入输出函数为:
Iα(k+1)=kp eα(k)+kd(eα(k)-eα(k-1))
Iβ(k+1)=kp eβ(k)+kd(eβ(k)-eβ(k-1))
eα(k)=αk-αk’,eβ(k)=βk-βk’
式中Iα(k+1)和Iβ(k+1)为在t(k+1)时间上控制系统的输出;(αk,βk)表示在时间 t(k)目标的方向坐标;(αk’, βk’)该时刻二自由度机构的方向坐标;eα(k)和eβ(k) 分别表示该时刻头部位置与目标位置之间的偏差;kp和kd分别为控制系统的比例系数和微分系数。通过实验调节kp和kd,kd<<kp,系统可以既有较高的反应速度,同时又具有稳定性。
运动控制过程
根据前面的叙述,计算机控制系统的工作过程是一个循环的实时数据采集,实时决策,实时控制的过程,在本系统中,根据所选用器件的具体情况,假设对所有的控制环完成这样的一个循环大约需要m毫秒的时间左右。在视觉信息处理系统中,处理一帧图像平均需要n毫秒左右的时间,由于视觉处理和运动控制任务的特点的不同,n>>m,也就是说视觉处理的周期要远远大于运动控制的周期。在一个视觉处理的周期内,系统可以完成多个控制周期的处理。因此在一个视觉处理周期之后,系统应该做好下一个视觉处理周期之内的运动规划,也就是做好后面多个控制周期之内的运动规划,这样才能保证机器人的头部以均匀、平缓,同时又是准确的速度来跟踪目标。控制系统软件流程如图5所示。
在每一个运动控制周期内,程序都首先要查看Memolink,看视觉信息处理系统是否有新的处理结果通过Memolink传递到运动控制系统,如果没有,程序就按照预设的运动规划来控制机器人运动;如果有,程序就先要根据视觉系统的处理结果来修改运动规划。为了使机器人头部的运动平稳,我们把每次预设的运动规划所规划的时间定为略大于视觉处理的平均周期,这样就能够保证系统在每次新的视觉处理结果到来之时,原有的运动规划还没有执行完。从而使只要目标在不断运动,机器人头部便可以处于不断运动过程中,避免了机器人头部时转时停的现象。
随后程序分别读取规划和反馈,根据两者之差来求得控制量,再发出控制信号,控制机器人头部的转动。
对于控制量的求法程序采用了传统的PID算法,设t(k)为第k个运动控制周期时刻,在t(k)时间上,系统的输出量为Yk,运动规划的规划量为Xk,依据PID算法,在t(k+1)时间上,系统的输出Yk+1为Yk+1=KP(Xk-Yk)+Ki∑(Xk-Yk)+Kd(Xk-Yk-Xk-1+Yk-1)
上式中KP,Ki,Kd分别为比例系数,积分系数,微分系数。在一个控制系统中,一定大小积分系数可以使系统没有残差,但会降低响应速度;而一定大小的比例系数可以加快系统的响应速度,并能根据输入的变化提前做出响应,但可能导致系统不稳定。因此在结果可以接受的情况下,应该只使用比例系数,如果结果达不到要求再使用积分系数和微分系数。
实验
本系统中,视觉信息处理系统和运动控制系统分别适用Windows和RT-Linux作为软件开发平台。RT-Linux是实时操作系统,使用它可以满足运动控制的实时性,而Windows系统的强大的多媒体功能使其成为图像处理的平台。视觉信息处理计算机的CPU为PⅣ 2.4GB,内存512M;运动控制计算机的CPU为PⅢ 700MHz,内存256M;Memolink是连接视觉处理系统与运动控制系统的桥梁,我们选用的产品采用PCI接口,最大传输速率为1Mbytes/s。摄像头为SVS视觉处理系统,每秒钟采样15帧。
SVS视觉处理系统安装才2自由度的运动机构上,该机构在2个自由度方向的运动足以使其指向任何方向,因此可以实现跟踪物体。BHR-1的头部的三维尺寸为宽19cm,高27cm,深19cm,重量2.8kg,以上数据包括机械结构、轴承、电机、摄像机等。
利用该系统跟踪和定位物体时,图像的处理速度为每秒钟10帧,视觉伺服周期为100ms左右,运动控制系统的伺服周期是3ms,近距离的定位精度较高,最高精度为1m处3‰。
为进一步验证本文提出的视觉定位与动作规划的方法的有效性,BHR-1系统实现了对物体的抓取试验,机器人手臂是具有7个自由度的机器人的右臂,实验过程中,视觉系统将目标物体的三维信息通过memolink传递给运动控制计算机,运动控制计算机根据上面提出的方法规划数据并实现抓取物体。
结语
本文给出了一种基于双目视觉的物体的跟踪和定位方案。双目视觉用于获取目标物体的三维空间信息,实现物体的定位。这个系统采用了双计算机处理和Memolink 通讯方式,两台计算机分别进行视觉信息处理和运动控制,保证了系统具有较高的响应速度。