[0034] 下面结合附图和实例对本发明作进一步的详细说明。可以理解的是,此处所说明的具体实例仅仅用于解释本发明,而非对本发明的限定。附图中展示的是与本发明相关的部分,并非全部的内容。
[0035] 以下举例说明本发明整个过程的具体实施方式如下:
[0036] 步骤一、将摄像机安装在R型支架上,固定在一定高度,并确保摄像机镜面与定位区域水平,然后连接电源以及网线,进行拍摄,利用台式电脑端的上位机软件获取定位区域的原始色彩图像,如图1所示。
[0037] 步骤二、调节好镜头光圈以及聚好焦并保持不变,将标定板放置在定位区域,接着在镜头前不断变换标定板位姿,采集多幅图像,获取不同位姿下的标定板图像并保存。
[0038] 步骤三、当采集完成后,利用MATLAB处理标定板图像,进行相机标定,获取相机参数。
[0039] 步骤四、一般情况下,移动机器人自身由于外观不同,大小不一,不适合作为图像定位的目标,并且当移动机器人处于不同位置时,得到图形也不同,不具有不变性,需要通过矫正才能实现定位,这样既增加了处理的时间,还增添了矫正误差,不利于定位。所以在移动机器人上方设置矩形颜色区域作为定位目标。利用摄像机获取带有矩形颜色标识的机器人图像,再根据相机标定的参数,对图像做矫正处理。
[0040] 步骤五、先对矫正后的图像作预处理操作,再利用网格化的方法处理,获取目标机器人在图像中的位置坐标。
[0041] 步骤六、利用坐标转化将图像坐标转化为实际坐标。
[0042] 步骤七、针对运动状态下的移动机器人,通过无线通讯模块进行数据传输,利用移动机器人的速度、角度等位姿信息,完成移动机器人的动态定位,如图4所示。
[0043] 所述步骤三中,利用MATLAB处理标定板图像,进行相机标定,获取相机参数是指:
[0044] 利用已知长度的黑白标定板放置于定位区域,拍摄图像,获取多张不同位姿下的标定板图像并保存,利用MATLAB中的Camera Calibrator进行相机标定,获取摄像机的内外参数。
[0045] 所述步骤五中,先对矫正后的图像作预处理操作是指:
[0046] 1、获取待处理图像,选出感兴趣区域做下一步处理。
[0047] 2、将图像由RGB转化为HSV颜色空间。
[0048] 3、对图像作开闭操作,消除干扰,填充物体,使目标识别更精确。
[0049] 所述步骤五中,再利用网格化的方法处理,获取目标机器人在图像中的位置坐标是指:
[0050] 将图像分割为规则的网格形式,利用像素把目标机器人的图像分割成规则的方格。
[0051] 其中,i=1,...,M,J=1,...,N,M为水平分割线条数,N为竖直分割线条数。分割线之间的距离为等间隔的,长度为d,分割线之间的长度d由矩形颜色区域的像素大小决定。这样就将定位区域分割成了大小相同的小方格,如图2所示。
[0052] 1、将定位图像做网格化处理后,选取网格的中心点作为采样点,获取每个中心点处的像素信息,并与已知矩形颜色标识的像素信息作比对。
[0053] 2、当方格中心的像素信息与已知矩形颜色标识的像素信息一致时,我们就将该位置的小方格作为矩形颜色标识占据的网格,记为目标区域,反之,记为非目标区域,如图3所示。
[0054] 3、将定位区域的所有网格中心处的像素信息比对后,记录下所有目标区域的像素坐标,利用目标区域的像素坐标获取目标区域的质心坐标,即矩形颜色标识的像素坐标。
[0055] 质心的坐标(Cx,Cy)可以通过求解所有目标区域的中心点坐标的加权平均得到,即[0056]
[0057] 其中n为目标区域的个数,xi表示目标区域的中心点横坐标,yi表示目标区域的中心点纵坐标;
[0058] 所述步骤七中,针对运动状态下的移动机器人,通过无线通讯模块进行数据传输,利用移动机器人的速度、角度等位姿信息,完成移动机器人的动态定位是指:
[0059] 步骤五中采用的网格化图像处理方法虽然简化了图像颜色特征的获取,但对于采集到的整个图像来说,仍然要处理大量的像素点数据。若预处理得到的图像大小为530pixel*530pixel,为了提高动态处理的实时性,进一步加快颜色特征的获取过程,减少数据的处理量,我们将预处理图像中不包含有效目标特征的数据量排除掉,故使用动态窗口的方法来处理预处理图像,颜色矩形标记为15cm*18cm的长方形,需要在像平面内设置
100pixels*100pixels的窗口,对应运动平面上的窗口大小为33cm*33cm,动态窗口的中心位置由前一时刻获取的移动机器人的坐标、移动机器人的航向角和速度决定。
[0060] 利用移动机器人上各种传感器设备,获取需要的数据信息,如速度、方位角等信息;通过无线通信模块将传感器测得的数据传输给上位机;上位机通过当前时刻的速度、角度等位姿信息,预测出下一时刻的移动机器人位置,并对该位置进行目标识别,获取移动机器人的位置坐标,实现移动机器人的定位。
[0061] 其中,预测出下一时刻的移动机器人位置,是指为了提高动态处理的实时性,减小颜色特征的处理时间,提高数据量的处理速度,将不包含目标颜色特征的数据删减掉,设置合适大小的动态窗口进行目标识别,从而获取移动机器人的位置坐标。
[0062] 1、以t1、t2、t3时刻图像为例,利用网格化的方法获取t1、t2时刻图像的目标机器人坐标P1(x1,y1)、P2(x2,y2),(/区域为t1时刻的目标区域,\区域为t2时刻的目标区域),如图4所示。
[0063] 再根据t2时刻目标机器人的角速度w,角度θ,车轮半径d,图像采集周期T,推算出下一时刻t3的位置坐标P3(x3,y3)为:
[0064] x3=x2+w*d*T*cosθ
[0065] y3=y2+w*d*T*sinθ
[0066] 以该位置坐标为动态窗口的中心,对图像进行网格化处理,得到目标机器人的新坐标。
[0067] 2、以T1、T2、T3时刻两幅图像为例,先利用网格化的方法,获取目标机器人在图像中的坐标P1(x1,y1)、P2(x2,y2),(/区域为T1时刻的目标区域,\区域为T2时刻的目标区域),如图5所示。
[0068] 再通过无线模块获取T2时刻目标机器人的航向角θ以及左右轮的角速度wl、wr。推算出下一时刻T3的位置坐标,并以该位置坐标为动态窗口的中心,对图像进行网格化处理,得到目标机器人的新坐标。
[0069] 一般的轮式移动机器人的运动模型如图6所示。
[0070] 其中,左右轮速度和线速度角速度的关系如下:
[0071] vr=wr*d,vl=wl*d
[0072]
[0073]
[0074]
[0075] 推算出的T3时刻的P3(x3,y3)应满足:
[0076] x3=x2‑(r‑r*cos(wT+θ‑π/2))
[0077] y3=y2+r*sin(wT+θ‑π/2)
[0078] 若在新的窗口中没有找到目标,则以T2时刻的目标坐标为中心,2*v*T为长度的窗口中寻找目标,重新跟踪目标。
[0079] 不断循环操作,实现对动态目标的定位。