基于视觉的高速寻线机器人设计与实现
时间:2009-03-05 14:35:58 来源:中国传动网 作者:关军 杨明
在最近一些机器人竞赛中,对于机器人的寻线行走,除了要求精确之外,对机
器人寻线速度也提出了很高的要求,速度往往成为某些比赛制胜的关键。在最近教
育部推出的全国大学生智能汽车大赛中,更是将寻线速度定为比赛的主题。本文在
总结参加此类赛事的基础上,提出了一种将单片机作为核心控制器,利用低分辨率
摄像头代替通用光电传感器的机器人高速寻线行走机构设计方法。
1 车体机械设计
为了体现速度要求,采用仿真赛车模型作为车体机械平台。采用后轮驱动,
前轮转向的工作方式,实现高速转向运动;而如果采用两轮式结构,通过双电机差速
方式实现的转向运动,在高速转向情况下,对电机同步控制要求很高,难以实现。
前轮转向采用舵机驱动,后轮驱动通过直流电机传动到后轮轴,利用机械差速机构
避免转向打滑。其各主要部件安装位置如图 1 所示。
图 1 车体实物及结构示意图
机器人采用摄像头作为寻线传感器,为了使摄像头获得很好的前方视野,
将摄像头安装在车体前部高处,从而捕获车体前方足够丰富的路线信息,实现线路
预判,这是视觉方案在寻线速度上大大优于光电传感器方案的关键。
2 硬件电路设计
这里主要介绍作为核心控制器的单片机性能以及视频采集模块电路结构,
简要介绍其他模块硬件实现。系统整体结构如图 2 所示:
图 2 系统硬件结构设计图
2.1 核心控制器设计
为了实现视频采集,考虑综合性价比、设备安装等因素,核心控制器选用
Freescale 公司的 16 位高性能单片机——MC9S12DG128(以下简称 S12)。它的指
令处理时钟可以达到 38MHz,其 A/D 转换器的工作时钟可以达到 16MHz,用于采
集视频。同时它拥有 8 路 PWM 通道,控制舵机和直流电机完成转向和速度控制;8
路捕捉/比较通道获取作为速度传感器的编码器脉冲信号;串行通信接口用于无线调
试;多达 64 个 IO(通过 IO 复用方式)足够用于状态显示及参数设置。另外,其拥
有 128k 的 flash 存储空间,无需进行存储器扩展,在片内就可以实现视频数据存储
和调用。如图 2 所示,整个系统采用一块单片机,无需添加其他控制器、存储器,
成为真正的“单片”系统。
2.2 视频采集模块
由于单片机 A/D 速度限制,需要选用低分辨率的黑白摄像头。因为低分辨
率意味着视频单行扫描时间的增加,而黑白摄像头意味着只需要单路 A/D 就可以完
成视频采集工作。选择了 Omvision 生产的 ov5116 芯片为内核的 CMOS 黑白摄像
头,分辨率为 320×240,图像刷新频率 50Hz。同时选用 LM1881 视频同步信号分
离芯片提取视频信号中的行同步和场同步信号,连入 s12 的脉冲捕捉通道。通过捕
捉信号触发 AD 模块工作,采集存储视频数据。
图 3 视频采集电路原理图
2.3 电机控制及电源
选用 Mabuchi 公司生产的 RS-380SH 直流电机作为主驱动电机,通过
PWM 信号控制。选用 Freescale 公司的 MC33886 全桥驱动芯片,通过两路半桥实
现电机正反转。这里的电机反转并不为实现倒车,而主要用于车体减速。在进行电
机正反转切换时,电机驱动电流会随着负载增大而瞬间放大,因此需要增大稳压能
力,保证系统正常工作电压,避免单片机自动重启。在整个系统中,有多种电压需
求,单片机和舵机为 5V 供电;CMOS 摄像头为 6~9V。因此,为了方便开发,这里
选用最常用的 7.2V 充电电池组。只需在系统内加入 5V 稳压芯片,提供 5V 电压。
3 视频采集与处理
这里重点介绍用 s12 片内 A/D 实现视频采集和视频处理工作。
3.1 视频采集
S12 上 AD 标准工作时钟为 2MHz,而 AD 采样至少需要 14 个时钟周期。
由此可得,每采集一次需要 7us=14/2M。根据视频传输原理和 CMOS 摄像头参数,
视频单行扫描时间为 。因此,在默认时钟工作情况下,A/D 模块单行只可以采集 9
个视频点,采集效果如图 5。
图 4 2MHz A/D 时钟下视频采集效果
这种采集效果显然无法满足寻线控制要求,因此需要加快 AD 工作时钟,
将速度提高 8 倍,达到 16MHz,采样所需时间也同比视频加快 8 倍,理论上,单
行可以采集 77 个点。实际采集效果如图 5,精度达到 40×76 象素。这样的视频效
果足已达到寻线精度要求。(由于采集精度很高,其中每行视频中多个采样点位于
视频行消隐区,即图像两侧黑色区域)
图 5 16MHz A/D 时钟情况下视频采集和视频处理效果
3.2 视频处理
通过视频处理,提取视频中的黑线位置。由于视频图像简单,视频处理算
法采用边缘检测算法,即每行相邻两点数据做差,根据差值大小及正负,获取视频
图像中的“白变黑”和“黑变白”的黑线边缘位置。同时,通过计算两个边缘位置的距
离,判断“黑线”宽度,过滤其他干扰。视频处理效果见图 5。
为了节省系统资源,系统并没有将 320 行视频全部采集,而选取视频中的
40 行进行采集,仍然可以达到寻线控制要求。同时,利用非采集视频行的系统空闲
时间进行视频处理和运动控制工作,实现边采集边处理边控制。另外,这种方法并
不需要保存全部视频数据,而仅存储视频处理后的黑线位置数组,减少系统存储空
间占用和程序执行时间。
4 运动控制策略
该行走机器人主要设计目的是提高寻线行走速度。摄像头的使用,正是为
了增加前方线路探测距离,给运动控制提供充足的决策时间。因此,其运动控制策
略也基于此方案。本系统采用预瞄与 PID 相结合的方法实现速度和转向控制。
基于单片机采集的视频,判断车体前方道路情况,可以明显区分弯道直道
以及弯道曲率大小。而在不同道路情况下,车体受自身机械结构和电机特性等因素
影响,有不同的行驶表现。在弯道行驶中存在最佳入弯速度,弯道行驶速度以及弯
道行驶路线。而在直道行驶中,虽然车体速度越快越好,但是为了安全地完成直道
入弯道,必须进行入弯提前减速。这点是摄像头方案在速度上优于红外光电传感器
方案的关键:足够充分的预判距离,保证了足够充分的减速时间和距离,取得最快
入弯效果
控制算法说明如下:首先求取黑线位置数据方差,根据方差大小,判断黑
线弯曲程度,将赛道简单分成 3 种:直道、小弯道和大弯道。通过大量试验,获取
三种赛道的最佳车速,采用闭环 PID 控制实现车速控制。对于转向控制,由于追求
寻线速度并不追求精确横向控制,采用 PD 控制算法结合预瞄算法。根据线路情况,
动态调整转向控制距离。按照模糊控制模型,根据人驾驶车辆习惯,在直道运行时,
利用较远视频行进行横向控制,当进入弯道,采用近端视频行。转向公式如下:
根据此速度和转向控制策略,经过大量实际的试验,最终获得良好的车体寻线
运动效果, 平均寻线速度可以达到 2.5m/s,明显高于普通行走机器人设计方案。由
于本文重点阐述系统构建方案,而对于采用的控制算法部分,各个车体机械和电机
差异很大,试验数据不具备参考性价值,因此在此仅对算法策略进行说明。
5 总结与展望
本文设计了一个基于视觉的以高速寻线为目的的行走机器人系统。系统采
用一块高性能单片机,完成了从视频采集到视频处理,最终实现速度和转向控制的
一套寻线行走功能。系统轻便灵巧,无需存储器扩展和其他可编程器件配合,搭建
费用低。该方案在参加第一届全国大学生智能车大赛中,系统运行平稳,取得了非
常优异的成绩。
创新点:系统没有采用通用的红外光电对管,而采用低分辨率摄像头作为
寻线传感器。同时打破传统观念,仅利用一块单片机完成视频采集处理,由于视频
获取的路线信息比红外光电传感器方案要丰富的多,因此这种低成本的视频寻线解
决方案,使运动控制算法开发提供很高的灵活性。系统由于单片机速度限制,尚不
能实现彩色视频采集工作,因此无法实现复杂视频图像的寻线工作。
本系统方案,除了应用在某些机器人大赛中,还可以用于智能车辆的导航
算法研究上。系统实现简单和成本低正好解决了智能车辆研究中存在的相应问题。
同时,本系统也可以作为良好的教学平台,供控制理论和视频处理教学使用。