您的位置:首页 > 运维架构

OpenCV实现机器人的单目寻线

2008-01-31 13:15 190 查看
OpenCV实现机器人的单目寻线
[align=center]BY 郭世龙[/align]
[align=left] [/align]
[align=left] 前一段时间实验室组队参加学校第一届机器人设计大赛。很有希望的前三甲因为场地灯光的原因没拿到,只[/align]
[align=left]获得了一个安慰心里的创意奖。[/align]
[align=left][/align]
[align=left];[/align]
[align=left][/align]
[align=left][/align]

[align=justify]1. 比赛内容、要求 [/align]
[align=justify] 以电子电路(含模拟和数字电路)应用设计为主要内容,可以涉及模-数混合电路、单片机、可编程器件、EDA软件工具和PC机(主要用于开发)等方面的应用。 [/align]
[align=justify]考察要点:电机控制、传感器的设计或使用、控制算法。 [/align]
[align=justify]参赛器材:一辆智能小车;主控MCU以及外围电路; 可以识别黑色和白色的传感器; 其它必要的设备。 [/align]
[align=justify]竞赛要求: [/align]
[align=justify](1)机器人从起跑线A处出发(车体不得超过起跑线),沿引导线运行。在始发点A处铺设的引导线下埋有1块宽度为10cm的薄铁片。机器人运行两圈后,检测到铁片,立即停止。 [/align]
[align=justify](2)机器人从起跑线A处出发,沿引导线运行轨道两圈,最后返回A处。 返回位置与出发位置误差应最小(出发位置A为机器人的中心点位置)。 [/align]
[align=justify](3)机器人完成上述任务后应立即停止但全程行驶时间不能大于5分钟。[/align]
[align=justify]场地示意图:[/align]



[align=left] [/align]

总体感觉这次大赛中的小车设计没有有什么创意,尤其是探测黑线的传感器基本都是探测可见光传感一字或弧形阵列。于是有了这个用视觉寻线的机器人小车。
[align=justify]2.硬件结构[/align]
[align=justify]笔记本电脑1台:Core Duo T2350 1.86GHz , 896M 内存;[/align]
[align=justify]普通摄像头80万像素1个;[/align]
[align=justify]PIC单片机组成的控板1个;[/align]



3.寻线方法
首先我们看看机器人小车“眼”中的黑线







以上三张图分别是“直行”,“右转”,“左转”的图像。

从图像上我们注意到实际上我们之需处理黑白两种颜色就可以了,所以我们首先将采集到的图像二值化,如何二值化就看你自己的选择了,简单的你可以自己定义一个阈值,复杂的可以使用自适应的阈值方法。阈值之后图像有可能或有些瑕点,可以通过腐蚀、膨胀的的图像处理方法去除。

4.指令形成

指令的形成有多种方法,其一就是将图像分成左中右三个部分,然后计算黑线的质心,质心在图像的右侧则右转,质心在左侧怎左转,质心在中间则直行。我采用的方法是将图像分为左右两部分,分别统计在图像左侧黑线像素的个数以及在图像右侧个个数,当左侧图像的个数明显多于右侧时,则左转,相反则右转,基本相当时则执行。为了方便处理将二指图像反转处理。

阈值反转后的图像如下



5.寻线







注:如需要工程文件请留言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: