
图1(清洁机器人的传动结构草图)
自从周二考完MT(医疗技术)以后,就开始忙着继续清洁机器人的项目。
经过2天的忙碌,基本上算是解决了机器人的定位问题。经过这段时间的实践,慢慢的有了点小小体会。下面结合一下这2天的进度,进行个小总结。
随着信息处理技术的发展,现在几乎大部分的技术问题都最终可以转换成数学问题加以解决。
通常的步骤是:
步骤1,通过传感器,将实际的物理或化学信息转换为数字信号;
步骤2,对步骤1中所获得的数字信号,根据物理特征的数学含义进行数学变换,提取出所需要的数学特征;
步骤3,将提取出的数学特征再重建为具有物理或化学意义的信息。
结合这几个小时做的一点尝试,做个简单介绍:
技术问题的描述:
图2(机器人定位示意图) 我们的机器人系统分为两部分,一部分是如图1所示的机器人主体,里面包括自主运动单元,清洁单元和通信单元,另一部分就是面对黑板的视觉部分,包括通信单元和视觉单元。如图2所示,为视觉单元中的摄像头拍摄下的图片。其中黑板上有三个黑圈的白纸代表我们的小机器人(其中单独黑圈的方向为机器人的头部,即前进方向。)。现在,我们要通过这样的图片,来识别出机器人,求出机器人所在的空间位置,再将此空间位置通过通信单元发给机器人主体,以实现机器人的自主运动的控制。
所以,问题的关键是机器人的识别和定位。在上个学期的最后一段时间,已经解决了图片像素和实际物理空间坐标间的转换问题。也就是说,我只要知道了图片中某一点的像素,那我就知道,该像素所对应的点,在实际的3D物理空间中的位置。这涉及到计算机视觉最主要的任务,3D场景重建。不过我们用了个比较取巧的方法,用8个已知像素及物理空间对应关系的点来求图片中任意一点的空间位置。这里相当于解决了上面所述的3个步骤中的步骤3(将提取出的数学特征再重建为具有物理或化学意义的信息。)。具体的算法就不介绍了,效果还是不错的,误差基本上在几毫米,属于可以允许的范围之内。
而现在我们要解决的问题就是:如何从图2中识别出,哪一部分是机器人。即,得到机器人的像素坐标。这就是所述的步骤2。 对步骤1中所获得的数字信号(即,图2这样的数码照片),根据物理特征的数学含义进行数学变换,提取出所需要的数学特征; 好了,现在我们需要考虑,机器人在视觉/光学上有什么样的特征? 通过观察图2,我们可以发现,通常,黑板是大片的某种颜色,其上的字迹是其他颜色,但多为细长的线条,几乎没有大片相同颜色的图案出现。所以如果我们将机器人设计成为,具有大片的和黑板不同颜色的上表面的话,那我们的机器人就具有和黑板及笔迹不一样的物理特征了。例如在图2中,背景为白板。那我们可以让机器人采用黑色的上表面颜色。 这样我们就只需要过滤掉颜色浅的部分,和细的线段就可以得到干净的几乎只剩下机器人的图片了。 图3a(原始图片) 图3b(经过处理后的图片) 如图3所示,是经过一些处理步骤前后的图片对比。可以看的出来,几乎所有的背景和笔迹都被清除掉了。排除了其他干扰,现在我们只需要想办法取得机器人的像素就可以了。好了,继续寻找物理特征。我们可以观察到,机器人上的点有这样的特性,是黑色的,且周边有大片黑色点。据此,我们引入1个阀值(threshold),和一个固定大小的窗口(window)。只要以某一点为中心的窗口内,灰度值(gray value)之和超过这个阀值,我们就判定,该点属于机器人。那么,我们从图片的四个角开始搜索,所搜索到的头四个符合要求的点就是我们机器人的四个角。例如在图3b中,四个角的像素坐标分别是P1(534,1191),P2(567,1392),P3(711,1176),P4(732,1380)。得到了四个坐标,再用上面提到的步骤3的算法,就可以算出,机器人在真实世界中的位置了。至此,算是基本解决了上面提到的技术问题。
当然,还有很多其他的方法来解决这个问题。例如,因为机器人是运动的,而背景,如笔迹,黑板则是基本静止的。那么,我们在同一地点,不同时间拍下的照片,变化特别大的部分则是机器人所在的区域了。其实,在实际的项目过程中,会遇到各种各样的问题和麻烦,有的时候,只是因为一些没办法解决的小问题,而不得不放弃很棒的创意。 谨用此文纪念一下进行清洁机器人项目的时光。希望接下来能进展顺利,早点见到我们的机器人“聪明”的清扫黑板。
照片描述:深夜依然画图试图解决像素和空间位置的坐标转换问题。
|