智能拖地机器人,云鲸 NARWAL 0 引言
本网站官方群 工业工程5000人群号 249148633
工业机器人技术已经日趋成熟,美国、日本一直处于世界领先地位,机器人性能可靠,功能全面,智能化越来越高,越来越多的机器人已经应用于实际生活中。国内,机器人研究起步较晚,但是进步很快,已经生产出多种机器人。本文基于HCS12单片机设计了一种小车智能控制系统。基于摄像头获得跑道图像,同时通过黑线中心检测出黑线,预判前方的路况信息,进而控制小车的舵机转向和行驶速度。
本网站官方群 工业工程5000人群号 249148633
1 系统硬件设计
智能拖地机器人,云鲸 NARWAL 1.1 系统硬件总原理图
本网站官方群 工业工程5000人群号 249148633
本系统主要由MC9S12DGl28控制核心、电源管理单元、路径识别电路、车速检测模块、舵机控制单元和直流电机驱动单元组成,以飞思卡尔公司的16位单片机S12为控制核心,路径识别和车速的检测相结合,通过控制转向舵机和驱动电机,使智能巡线机器人系统达到所需的稳定性及快速性要求。原理图如图1所示。
本网站官方群 工业工程5000人群号 249148633
1.2 数字摄像头0V6620
本网站官方群 工业工程5000人群号 249148633
智能拖地机器人,云鲸 NARWAL 图1 系统硬件原理图
本网站官方群 工业工程5000人群号 249148633
1.2.1 工作原理及时序图
本网站官方群 工业工程5000人群号 249148633
摄像头分黑白和彩色两种,为达到循线目的,只需提取画面的灰度信息,而不必提取其色彩信息,所以本设计中只采用了数字摄像头OV6620的黑白辨别功能,这样可以减少单片机采样的负担。工作时序图如图2所示。
本网站官方群 工业工程5000人群号 249148633
VYNSC是判断是否一幅图像开始,周期是20ms,其中高电平持续时间很短,忽略;HREF是判断是否一行图像的开始,周期是639s左右,其中高电平持续时间为409s,低电平持续时间 239s,那么可以算一下一场有多少行:20ms/63ps=317 ,当然实际上没有这么多,消隐和无效信号去掉之后只有292行。另外要注意,场中断要通过下降沿捕捉,行中断要通过上升沿捕捉。
本网站官方群 工业工程5000人群号 249148633
本网站官方群 工业工程5000人群号 249148633
图2 OV6620时序图
本网站官方群 工业工程5000人群号 249148633
有效的灰度数据是在行中断之后的上升沿内,所以不要在行中断后的239s后采集,那是废数据。计算一下一行OV6620有多少个点:40ps/1 10ns=363,消隐和无效信号去掉之后只有356个点。
智能拖地机器人,云鲸 NARWAL 1.2.2 OV6620引脚使用情况
智能拖地机器人,云鲸 NARWAL 管脚9、10、儿、13、18、19x和32悬空,UV0-UV7管脚是OV6620计算彩色管脚,用不到彩色时悬空。VCC和GND接5V和地,地需要和单片机的地相联,而且OV6620摄像头自带了时钟电路,引脚图如图3所示。
智能拖地机器人,云鲸 NARWAL
智能拖地机器人,云鲸 NARWAL 图3 OV6620引脚图
智能拖地机器人,云鲸 NARWAL 1.2.3 摄像头电源电路
本网站官方群 工业工程5000人群号 249148633
由于选择的OV6620摄像头的电源为5V,为了达到这一电源要求,通过芯片LM2940将电池电压7.2V变为5V,供给摄像头使用。电源电路如图4所示。
本网站官方群 工业工程5000人群号 249148633
本网站官方群 工业工程5000人群号 249148633
图4 LM2940电源电路
智能拖地机器人,云鲸 NARWAL 在电路设计中,考虑到由于电机驱动所引起的电源不稳定(主要为瞬态脉冲),在电源输入端,各芯片电源引脚都加入了滤波电路。为了避免由于驱动电机转动时所引起的电磁干扰,在电路板设计中,在印制板上做了敷铜处理,将电路中的“地”与敷铜面相连接。分页1.3 电机驱动与制动电路
智能拖地机器人,云鲸 NARWAL
智能拖地机器人,云鲸 NARWAL 图5 电机驱动与制动电路
智能拖地机器人,云鲸 NARWAL 在电机驱动电路中采用了传统的MOSFET驱动,利用这样的经典电路能够保证驱动系统的稳定性。在电机制动,利用光耦来实现能耗制动的工作方式。R8为功率电阻,D1为续流二极管,Z7两端接直流电机。当制动信号输入端发出制动信号后,驱动光耦,使三极管导通,这样电机产生的多余能量就通过续流回路消耗在功率电阻上,实现制动。电路图如图5所示。
智能拖地机器人,云鲸 NARWAL 1.4 测速模块
智能拖地机器人,云鲸 NARWAL 为了使得机器人能够平稳地沿着路径运行,除了控制前轮转向舵机以外,速度的控制也是十分重要的,保证机器人在直道上全速行驶,在急转弯时速度不要过快而冲出跑道等,此时速度的检测显得尤为重要。可以通过控制驱动电机上的平均电压控制车速,可以通过摄像头检测图像黑线中心位置信息控制速度,但是如果开环控制电机转速,会有很多因素影响电机转速,例如电池电压、电机传动摩擦力、道路摩擦力和前轮转向角等。这些因素会造成不仅会造成机器人运行的不稳定,还会导致整体速度缓慢等。故而,需要通过速度检测,对速度进行闭环反馈控制,则可以在一定程度上消除上面各种因素的影响,使得机器人运行得更加精确。为了获取道路信息,若需要得到机器人的运动距离,这也可以通过速度的检测来实现。
本网站官方群 工业工程5000人群号 249148633
在测速模块中本设计采用了脉冲计数检测速度,在靠近机器人左轮的轴上装一16等分的黑白相问的自制编码盘,将测速传感器安装在编码盘垂直对应的车体上,这样当机器人前进,车轮转动时,编码盘跟随车轮同步转动,当一个黑色脉冲被红外传感器检测到时,速度传感器的输出就变为高电平,产生脉冲,送给单片机的ECT模块,ECT模块捕捉脉冲信号并对其进行计数,同样的,当白色被检测到时,也产生一脉冲,送以单片机计数,在一特定时间内读出脉冲总数,将该总数除以车轮转动一圈移过的脉冲数目,便可以计算出车轮的转动圈数,再乘以车轮周长,得到行驶路程,再除以计数时间,最后得到机器人的速度。
本网站官方群 工业工程5000人群号 249148633
2 软件设计
智能拖地机器人,云鲸 NARWAL
本网站官方群 工业工程5000人群号 249148633
图6 软件设计流程图
智能拖地机器人,云鲸 NARWAL 2.1 整体过程
本网站官方群 工业工程5000人群号 249148633
在摄像头采集的一帧数据中,将采集的数据分析处理提取每行的黑线中心位置,继续对该数据处理为后面控制策略作准备,准备工作结束,利用信息分别对直流电机和伺服电机实现闭环反馈控制。流程图如图6所示。
本网站官方群 工业工程5000人群号 249148633
2.2 图像采集
本网站官方群 工业工程5000人群号 249148633
2.2.1 图像采集流程
本网站官方群 工业工程5000人群号 249148633
本设计中,采用640×480的OV6620数字摄像头,虽然摄像头采集到的信息比较丰富,但是经过实验证明,只需采集一帧图像中的17行即可,太多的数据信息不仅会占用CPU时间,而且也不能带来有用的信息,故而,对得到的480行数据进行处理,每隔26行经取值得到最终的17行。但是由于摄像头性能不够理想,一帧图像所能够采集的行数和列数是有限的,最终能够供MCU分析的数据每帧仅为17行20列的数组。
本网站官方群 工业工程5000人群号 249148633
2.2.2 图像滤波
智能拖地机器人,云鲸 NARWAL 为了排除杂点,提取有效的黑线信息。经过多天的实验测试后,采用的窗口处理算法如下:先将采集的图像数据二值化,再使用3 X 3的窗口进行窗口线性滤波,既当一个窗口中含六个及以上个黑点时的中心为黑点,否则为白点。
智能拖地机器人,云鲸 NARWAL 2.2.3 路径黑线中心的提取
本网站官方群 工业工程5000人群号 249148633
在每帧的图像中,采用重心提取算法来实现黑线重心位置的提取。为了缓解CPU堆栈的压力,将图像采集到的数据存放在二维数组中,然后将重心位置重新存入一维数组中。由于所设路径上的白色底板和黑色引导线的灰度值相差较大,因此通过确定一个黑色和白色的阈值来区分黑白。判断相邻数据点灰度值的差值是否大于(或小于)该阈值,从而确定此处是否为黑线上的点。经过多次实验,最后确定阈值为128。从最左端的第一个有效数据点第7列(前6列数据为行消隐区,舍弃)开始依次向右根据阂值判断其是白点还是黑点。
本网站官方群 工业工程5000人群号 249148633
为了提高每帧图像处理速度,先对每帧图像的前两行数据进行处理,即在前两行寻找连续的两个黑点,且在列上也要有两个黑点,即为黑线其始处,以此为基本位置,再向下继续寻找黑线重心。若寻找失败则跳过此帧图像。由于实际采集数据中有相当数量的无效帧,所以此举节省了大量MCU资源。
智能拖地机器人,云鲸 NARWAL 在有效帧的每一行,得出每个黑点的位置值,然后将各黑点位置值相加再除以黑点数量,得出图像每行的黑点重心坐标。这样做虽然会在对黑线提取的精度上有所牺牲,但是经过除法后,相当于进行了一个较大的滤波,会使所提取的黑线的误差降低,保证了正确性。
智能拖地机器人,云鲸 NARWAL 在每帧窗口滤波后的图像中,如果有过多行重心“过轻”或者“过重” (即黑点过少或过多)则此帧图像视为无效。跳至处理下一帧图像。在寻找下一行重心时,寻找范围是在上一行的黑点重心的左右附近,若找不到下一行重心,便跳过此行往下寻找。累计出现一定数量的无效行时跳过此帧图像处理下一帧图像。
本网站官方群 工业工程5000人群号 249148633
2.3 舵机PID控制
本网站官方群 工业工程5000人群号 249148633
PID调节具有原理简单、易于实现、鲁棒性强和适用面广等优点,在实际应用中,根据实际工作经验在线整定PID各参数,往往可以取得较为满意的控制效果。数字PID控制则以此为基础,与计算机的计算与逻辑功能结合起来,不但继承了模拟PID调节的优点,而且由于软件系统的灵活性,PID算法可以得到修正而更加完善,更加灵活多样,更能满足生产过程中提出的各种控制要求。
本网站官方群 工业工程5000人群号 249148633
在实际调试过程中发现不可以加积分环节,因为积分环节的作用是消除静差,而运输时并不要求跟随得很紧密,只要不冲出所设定的路径就可以了。于是在直道行驶过程中会不断追求偏差的最小化,而导致不断震荡。于是,取消了I环节,使用PD控制。在选择P和D的参数时,发现如果P给得过大虽然响应很快,但很容易超调,这在偏差量比较小的时候尤为明显。于是,采用了分段PD控制,在偏差量小于一定值时使用小比倒量和小微分量,在偏差量较大的时候才使用大比例量和微分量。
智能拖地机器人,云鲸 NARWAL 另外,发现在速度较低的时候不需要很快的响应速度,过快反而容易导致超调,于是在分段的时候,还考虑了速度的因素,在速度较低的时候使用较小的比例量,在较高的时候采用较大的比例量。
本网站官方群 工业工程5000人群号 249148633
智能拖地机器人,云鲸 NARWAL 图7 PD控制器结构
智能拖地机器人,云鲸 NARWAL 3 结束语
智能拖地机器人,云鲸 NARWAL 本文设计了一个智能车控制系统,实现了快速自动循迹功能。在硬件上,以单片机MC9S12DGl28B作为核心控制单元,结合电源模块、路径识别模块、车速检测模块、舵机控制模块等工作。在软件上,采用图像滤波、二值化以及黑线重心中心提取算法和PD控制、在线PID算法实现对舵机转向和电机转速的控制。实验结果表明该巡线机器人系统响应快,动态性能良好,整体控制性能良好。
智能拖地机器人,云鲸 NARWAL
|