APP下载

双轮驱动智能小车循迹算法研究

2014-04-25周文军

河北软件职业技术学院学报 2014年2期
关键词:白条循迹十字

周文军

(南宁职业技术学院 机电工程学院,南宁 530008)

双轮驱动智能小车循迹算法研究

周文军

(南宁职业技术学院 机电工程学院,南宁 530008)

循迹是智能机器人小车所有动作的基础,循迹算法决定了循迹的准确性和稳定性。白条跟踪和十字交叉点检测是基于16路光电传感器的循迹小车的两大基本功能,通过对该两大功能的实现算法进行详细的分析研究及验证,提出一种全程高速扫描累计十字点PID控制算法。实验证明,此算法循迹稳定,对十字交叉点的检测准确。

循迹;算法;小车;两轮驱动;单片机

0 引言

智能循迹小车集环境感知、规划决策、自动行驶等功能于一体,可以准确沿设定路线自动行驶,广泛应用于科学勘探、工业控制和家用电器等领域。设计智能循迹小车已成为培养当代工科大学生动手能力、创新能力的首选工程实践训练项目之一。每年教育部都会举办全国高职院校技能竞赛——机器人竞赛,在该赛项中,两轮驱动机器人的循迹是比赛的关键和前提,整个比赛都是建立在循迹成功的基础之上的。

在实验过程中,机器人小车易出现偏离轨迹、漏检白条或多检白条等现象,难以保证循迹准确。这些问题在工厂自动焊接、自动取料、自动搬运等场所中的循迹小车均会出现,如何保证循迹的准确性是智能循迹小车设计需要研究的重要问题。本文基于比赛机器人小车平台,设计了一种全程高速扫描PID控制算法,采用该算法的机器人小车白条循迹准确稳定,并且对白条十字交叉点(以下简称“十字点”)的检测不会出现任何漏检或多检现象。

1 竞赛机器人小车循迹的平台及硬件基础

竞赛机器人小车比赛场地长12m,宽8m,底色为绿色,上贴30mm宽的白色引导条,白色引导条为纵横交错,纵向白条之间、横向白条之间的间隔均为500mm。比赛目标为:两轮驱动机器人小车在该场地上完成零件的智能选取、运输及装配。这就要求机器人小车首先必须能在场地中准确循迹。

图1 16路光电传感器

机器人小车循迹采用16路光电传感器,如图1所示。该光电传感器呈一字型排开,相邻传感器的间距为10mm。当传感器检测到白条时输出有效信号,而在白条之外时则输出无效信号。当白条位于与机器人小车行驶方向平行的中间轴线上时,一般会有4路传感器同时输出有效信号,即有4路传感器同时处于白条之上。该传感器能用于探测地面白条,以及白条十字点。十字点的检测用于循迹时确定机器人小车的位置,相当于平面坐标系中的坐标点。

机器人小车的两驱动轮采用24V直流减速电机,PWM方式驱动控制,可分别由单片机系统进行加减速、正反转控制。

2 全程高速扫描PID控制循迹算法设计

要使机器人小车行走准确,循迹必须完成两大任务。第一,对白条循迹,使机器人小车不偏离白条,并力求让白条居中。第二,检测并记录十字点,以此作为机器人小车在场地上的坐标。

2.1 白条循迹算法设计

2.1.1 简单五模式算法

比赛中部分队伍采用机器人小车原始平台提供的五模式白条循迹算法。该算法的基本原理是:通过16路传感器检测的信号判断出机器人小车的实时位置,并将位置分为五种情况,即居中、左偏大角度、左偏小角度、右偏大角度、右偏小角度,分别采用左右轮等速、左轮转速远大于右轮、左轮转速稍大于右轮、右轮转速远大于左轮、右轮转速稍大于左轮的五种方式来调节。

该方法简单,易于编程实现。但是实际测试发现机器人小车易偏离白条。只要有扰动,机器人小车便会在直线白条上走成“S”型,且无法将车身再摆正。

2.1.2 赋权值比例算法

赋权值比例算法的基本原理为赋予16路光电传感器的每一路一个权值,从左至右依次为:8、7、6、5、4、3、2、1、-1、-2、-3、-4、-5、-6、-7、-8。当某一路传感器位于白条上时输出高电平,给其赋对应权值,不在白条上时输出低电平,则赋其权值0。将16路的权值全部相加,其和反应了机器人小车与白条的相对位置,机器人小车相对白条的偏离量能由16路光电传感器的权值之和(以下简称“权值之和”)准确反应出来。例如,居中时则权值之和为0,所以左右轮等速;权值为负值时左调,而权值为正值时则右调。权值之和的绝对值决定具体的调节量。

简单五模式算法是将机器人小车偏离程度简单地分为五等,而赋权值比例算法已将机器人小车偏离程度具体量化,并将该量直接反馈到机器人小车左右轮的速度调节上,更符合实际。该方法实际测试效果明显比简单五模式算法优越。但是,使用该方法时,机器人小车仍会出现在直线白条上走成“S”型的现象。

2.1.3 PID控制算法

PID控制器是应用最广泛的工业控制器,由比例单元(P)、积分单元(I)和微分单元(D)组成。它的传递函数为:

其中Kp为比例系数,TI为积分时间常数,TD为微分时间常数。

本例PID控制算法是在赋权值比例算法的基础上,记录并实时更新机器人小车总共8个时刻的车身位置,综合起来考虑,计算出机器人小车的偏离趋势,将此趋势作为机器人小车左右轮速度调节的依据。

对于PID控制而言,参数的选择始终是一件非常烦杂的工作,需要经过不断的调整才能得到较为满意的控制效果。在本例算法中,整定PID参数具体实现方式和步骤如下所述。

同赋权值比例算法一样,先给16路光电传感器的每一路赋一个权值,不断检测并求出当前时刻权值之和且每隔一定时间就计算一次权值之和。经试验验证,相邻时刻时间间隔设定为3ms比较合适。这里每一时刻的权值之和可对应到PID传递函数中的s,而G(s)函数则是对应机器人小车两车轮的调速函数。

(1)确定比例系数Kp。此系数与赋权值比例算法中的比例系数可设为相同。一般可设定PID的比例系数Kp为当前值的70%。

(2)确定积分时间常数TI。比例系数Kp确定之后,设定一个较大的积分时间常数TI,然后逐渐减小TI,直至机器人小车循迹变得较差,然后再反过来,逐渐增大TI,直至机器人小车循迹能走得较稳定。记录此时的TI,一般可设定PID的积分时间常数TI为当前值的160%。

(3)确定微分时间常数TD,微分时间常数TD一般不用设定,为0即可,此时PID调节转换为PI调节。如需设定,则与确定Kp的方法相同,取机器人小车稳定循迹时其值的30%。

采用PID控制算法后,机器人小车对白条循迹稳定,极少发生跑偏现象,且人为扰动机器人小车后,3秒之内机器人小车就能自动校正,居中行驶。这种算法明显优于前述两种,但PID参数不易整定,当机器人小车平台改变后,需要重新整定PID参数。

2.2 白条十字交叉点检测算法设计

2.2.1 延时避盲区检测算法

比赛过程中,绝大部分队伍采用的是机器人小车原始平台提供的延时避盲区检测算法。该算法的基本原理是:始终循环检测16路光电传感器,当出现“超过8路传感器同时输出有效信号”,即同时有超过8路传感器位于白条之上时,则可认为已经检测到了十字点。为了降低误检几率,延时1毫秒后再次检测,若这时仍是超过8路传感器同时输出有效信号,则认为已经检测到了一个十字点。

为了避免多检,即不把一个十字点检测为两个或多个,在确认检测到一个十字点后,需延时20毫秒让传感器完全通过该十字点,之后才能开始下一个十字点的检测。

因无法确定传感器是否已经完全通过了十字点,这20毫秒的时间段内CPU只能处于等待状态,无法对车速进行调整,即盲走。这样问题就来了,当刚转弯90度后,车速较慢,20ms可能还不足以让传感器完全通过十字点,就会造成多检。而当连续直行时,速度很快,盲走20ms可能已经通过了下一个十字点,就会造成漏检,且极易偏离白条。

2.2.2 全程高速扫描累计十字点算法

为了完全避免延时避盲区检测算法中出现多检或漏检十字点的问题,可采用全程高速扫描累计十字点算法,该算法全程采用高速扫描,高速累计十字点,可完全防止环境对十字点检测的干扰。高速扫描的同时进行实时调速,全程无盲走区域。

图2 全程高速扫描PID控制算法

将PID控制循迹算法和全程高速扫描十字点检测算法整合在一起,具体流程如图2所示。程序开始声明变量“Line_Temp”,以记录“超过8路传感器同时输出有效信号”的次数。然后程序始终循环读取16路光电传感器信号,每两次循环的间隔小于1ms,所以PID调节左右车轮速的频率大于1000Hz。根据16路光电传感器输出有效信号的个数分为“Num=0”、“0<Num<8”、“Num>8”三种情况处理。第一种情况,调用向左或向右完全偏离纠偏程序;第二种情况,先执行“Line_Temp减5”,以保证在无十字点位置让Line_Temp快速归零,再执行PID调速程序;第三种情况,先执行“Line_Temp加1”,若Line_Temp>200,则此时至少已经连续200次检测到十字点了,可确保已经准确检测到一个十字点,同时给Line_Temp赋值“-1000”,以确保不把一个十字点检测成多个。

相比延时避盲区检测算法,全程高速扫描累计十字点算法扫描速度快,扫描一次即调整一次两轮速度。机器人小车全程无盲走区域,既可以保证循迹的稳定性,又可以保证十字点检测的准确性。

3 结论

通过实验,对简单五模式、赋权值比例、PID控制等三种算法进行对比分析,确定了PID控制算法为机器人小车对白条循迹的最优算法。通过对比分析延时避盲区检测算法和全程高速扫描算法,确定了全程高速扫描累计十字点算法为检测十字点的最优算法。实际编程中将PID控制循迹算法和全程高速扫描十字点检测算法整合在一起,机器人小车的整体循迹稳定、准确,反应速度快。

[1]徐建明.PID控制器及其设计方法研究[D].杭州:浙江工业大学,2002.

[2]孙增圻.智能控制理论与技术[M].北京:清华大学出版社,2007:364-365.

[3]陈东,向巍.基于光电管的智能车模设计[J].机床与液压,2007(7):51-54.

[4]李科.温控系统的智能PID控制算法研究[D].武汉:华中科技大学,2006.

Research on Tracking Algorithm for Intelligent Car Driven by Two Wheels

ZHOU Wen-jun
(College of Mechanical and Electrical Engineering,Nanning College for Vocational Technology,Guangxi Nanning 530008,China)

Tracking is the basis of all the actions for intelligent robot car.The tracking algorithm determ ines the tracking accuracy and stability.Line tracking and cross point detection are the basic functions of tracking robot car which is based on 16 photoelectric sensors.Analysis and verification in detail are given for the algorithm of the two functions,and an intelligence PID control algorithm which using high-speed scan to cumulative cross point is presented in this paper.This algorithm is good for Line tracking and cross point detection.

tracking;algorithm;robot car;two-wheel drive;single chipm icrocomputer

TP2

A

1673-2022(2014)02-0058-03

2013-11-25

周文军(1981-),男,湖南祁东人,讲师,工程师,硕士,主要从事焊接机器人焊缝自动跟踪研究及机电一体化专业教学。

猜你喜欢

白条循迹十字
基于DFT算法的电力巡检无人机循迹检测系统设计
张竹君与中国赤十字会
白 露
十字棋
如何关闭花呗白条等金融服务
2018车企进阶十字诀
基于单片机的智能循迹小车的设计
巧用十字相乘法解题
智能差分循迹小车设计
不同商品等级甘肃白条党参质量比较研究