|
<FONT size=4>"飞思卡尔杯"全国大学生智能车辆邀请赛<BR>本次"飞思卡尔"智能车邀请赛规则中<BR>明确指出,智能车在赛道上连续跑两圈,并<BR>记其中最好圈成绩为比赛成绩.这个规则的<BR>确立使得赛道记忆算法成为了可行.<BR>如图1所示,赛道记忆算法在第一圈以最<BR>安全的速度缓慢驶过一圈,并将赛道信息保<BR>存下来,第二圈根据保存下来的信息进行车<BR>速和转角决策的相应最优化,从而在第二圈<BR>取得好成绩.无论智能车的传感器前瞻距离<BR>有多远,在跑圈时它都只能预测在一段有限<BR>距离内赛道的情况.而采用赛道记忆算法的<BR>智能车,在第二圈时已对整个赛道有了全面<BR>的认识,从而在相同条件下,将比不使用赛<BR>道记忆的智能车更具优势.<BR>算法实现前提<BR>要想成功实现赛道记忆算法,必须有以<BR>下几大前提:<BR>1.赛车在第一圈必须安全走完全程.在<BR>第一圈,赛车的最主要目的是采集赛道信息,<BR>使用赛道记忆算法的智能车,在第一圈一般<BR>都会采用较缓慢的匀速走完全程.<BR>2.赛车必须能明确分辨出赛道起点线和<BR>十字交叉线的区别.<BR>3.赛车必须能够有足够记录一圈赛道数<BR>据的内存空间.由于单片机芯片的Ram容量<BR>有限,算法研究者需要对算法进行优化处理,<BR>改变保存的格式以节省内存空间.<BR>4.在跑第一圈时,赛车需即时地对当前<BR>赛道数据进行处理,避免第二圈时还在进行<BR>数据处理而对赛车的控制实时性带来不良的<BR>影响.<BR>初圈记忆<BR>采用赛道记忆算法的智能车,第一圈的<BR>主要目的就是将赛道的重要特征按特定的格<BR>式记录下来,作为第二圈的参考.初圈最终<BR>要记录的数据的横坐标一般为行驶的路程,<BR>而纵坐标则为赛道此点的曲率半径.对于横<BR>坐标,由于初圈一般匀速驶完,一般可以直<BR>接用时间来表示,也可以用车速传感器的当<BR>前脉冲数来表示.而对于纵坐标,则无法第<BR>一时间取得当前点的曲率半径,它需要对采<BR>集到的原始数据进行相关处理后才能得出.<BR>在初圈中,我们能记录的只是当前的转角设<BR>智能车赛道记忆算法的研究<BR>The Research of Intelligent Vehicle Path-Memorization Arithmetic<BR>■ 清华大学汽车安全与节能国家重点实验室 周斌 刘旺 林辛凡 郝杰 黄开胜<BR>摘要: 本文对智能车基于赛道记忆的控制算法进行了研究,分别从<BR>赛道记忆算法的实现前提,初圈记忆,数据分析与处理以及<BR>如何充分利用记忆得到的信息四个方面进行介绍.实车试验<BR>表明,对于相对简单的比赛赛道,基于赛道记忆控制算法的<BR>智能车可以取得较好的成绩,随着赛道的日趋复杂,赛道记<BR>忆算法也有很大的潜力.<BR>关键词: 智能车;赛道记忆;控制算法<BR>图1 赛道记忆算法<BR>李健<BR>161www.eepw.com.cn<BR>2006.8<BR>栏目编辑 高 校 园 地<BR>"飞思卡尔杯"全国大学生智能车辆邀请赛<BR>定值,可用舵机占空比或者直接转换过来的<BR>角度值表示.<BR>数据分析与处理<BR>图2是在韩国比赛赛道中初圈记录下来<BR>的转角变化曲线图.对比图3的赛道图可以发<BR>现,真实赛道上的一些特征在记忆曲线图上<BR>是可以有所体现的.首先,赛道中的直道部<BR>分在曲线中的体现是值为0的直线,但会有一<BR>定的波动,如图2中的点A部分;弯道的旋<BR>转方向则体现在曲线中转角值的正负,例如<BR>B部分,则对应着赛道中大角度左转之前的<BR>一小段右转;弯道的曲率半径和弧度体现在<BR>曲线中转角值大小和长度上,如C部分,它<BR>的转角值较大,在正负之间短暂切换,在实<BR>际赛道中就是那段波浪曲线段(图3中C部分<BR>).综上所述,在第一圈时将转角值记录下来<BR>的变化曲线,如果对其加以分析和处理,它<BR>是完全可以体现赛道的特征的.<BR>虽然我们已经能够方便地从初圈记录下<BR>的曲线图中判断出赛道的特征,但是我们还<BR>需让单片机能自动识别出这些信息,并过滤<BR>掉一些毛刺和波动.经过反复的研究,我们<BR>已成功地找到了合适的处理方法,并将图2的<BR>曲线图处理为图4所示的路线图.在处理后的<BR>路线图中,处理值为0时表示此时车处于直道<BR>上;当处理值大于0时表示车处于向左转的弯<BR>道上,曲率半径与处理值成正比关系;反之<BR>亦然.这样,第二圈就可根据此信息进行相<BR>应的最优决策.<BR>第二圈策略<BR>对于使用赛道记忆算法的智能车来说,<BR>第二圈才是最关键和最吸引人的部分.在第<BR>二圈,如何充分利用根据第一圈收集的赛道<BR>信息,跑出最优的成绩,这个是仁者见仁的<BR>事情,这里只从车速策略,转角策略以及其<BR>他策略三部分简单地介绍一些思路,希望能<BR>起到抛砖引玉的作用.<BR>车速策略<BR>由于车本身的某些局限性,如舵机响应<BR>时间,赛道摩擦系数,轮胎抓地力,传感器<BR>布局等因素的影响,对于某种特定弯道,车<BR>是有它所谓的极限速度存在.如果我们利用<BR>初圈得到弯道的曲率半径后,在过各弯道时<BR>将车速调至它相应的极限速度,那么理论上<BR>这就是它所能跑出的最优成绩了.<BR>对于直道,特别是长直道,更能发挥赛道<BR>记忆算法的优势.例如,在初圈记忆后得到某<BR>段直道为2800个脉冲点长,那么在决策中就<BR>可在前2500个脉冲时启动电机用最大占空比<BR>加速,超过2500脉冲时直接减速,将速度调<BR>在下一个弯道的极限速度进行过弯.由于事<BR>先已经知道直道的长度,因此调速策略更能<BR>有的放矢.<BR>转角策略<BR>如果赛车采用的是一字型传感器布局的<BR>话,当你将中心点设偏的话,那么赛车也会<BR>出现一定的左右倾向性,从而给在弯道时"抄<BR>图2韩国大学生智能<BR>车比赛赛道初圈记忆<BR>曲线<BR>图3 2004年韩国大<BR>学生智能车比赛赛道<BR>图<BR>166<BR>李健<BR>166 www.eepw.com.cn<BR>2006.8<BR>栏目编辑高校园地<BR>Altera中国大学生电子设计竞赛专栏<BR>图7 新设备集成HAL<BR>流程<BR>II核中加入实时操作系统(RTOS),实现多任<BR>务的调度.运用Altera的SOPC技术可以高效<BR>快速的开发一个用户定制的片上系统.并且具<BR>有外围电路少,控制灵活方便,研发周期短等<BR>特点.<BR>参考文献<BR>1. 王彦. 基于FPGA的LCD驱动程序<BR>设计 [J]. 真空电子技术,2004(6):55<BR>2. Altera. Nios II Processor Reference<BR>Handbook [DB/OL]. 2005 May 2006<BR>(var6.0). http://www.altera.com.cn/lit-<BR>erature/hb/nios2/n2cpu_nii5v1.pdf<BR>3. Xiamen Ocular. GDM12864A [DB/<BR>OL]. 2005.http://www.xmocular.com/<BR>pdf/GDM12864A.pdf<BR>4. 潘松,黄继业. SOPC技术实用教材<BR>[M]. 北京:清华大学出版社,2005.<BR>5. GB2132-80,国家标准汉字字符集<BR>[S].<BR>6. Altera. Quartus II Version 6.0 Hand-<BR>book [DB/OL]. 2005 May (ver3.1).<BR>www.altera.com/literature/hb/qts/<BR>qts_qii5v2_01.pdf<BR>7. Altera. Avalon Bus Specification<BR>Reference Manual [DB/OL]. 2005 May<BR>(ver3.1). http://www.altera.com/litera-<BR>ture/manual/mnl_avalon_spec.pdf<BR>近路"奠定了基础.在初圈记忆后,赛车跑<BR>第二圈时可以直接得出下个弯道是左拐还是<BR>右拐.这样赛车就可以按比规定更小的曲率<BR>半径通过赛道,从而减少了经过路径,也节<BR>约了时间.同样,一般赛车在直道上高速行<BR>驶时经常会出现来回振荡的现象.如果经过<BR>初圈记忆,赛车判断自己正处于直道时,可<BR>以进行相应的措施,很好地解决这个问题.<BR>问题和展望<BR>图4 处理后路线图<BR>虽然赛道记忆算法可以大大提高赛车的<BR>成绩,但目前来讲,在实际使用过程中想取<BR>得好的成绩,还需要做更深入的研究工作.原<BR>因主要有以下两点:<BR>第一,目前大学生智能车比赛的赛道有<BR>着越来越复杂,越来越长的趋势,十字交叉<BR>线也将不只出现一个,这对于初圈的记忆和<BR>数据处理都产生了很大的挑战.<BR>第二,由于决赛之前赛道是不公布的,因<BR>此赛道记忆算法存在很大的风险,较保守和<BR>安全的算法在决赛中可能更有利.<BR>虽然赛道记忆算法存在一定的风险,但<BR>是它独特的思路却是值得继续发展下去的,<BR>有着很大的发展潜力.我们预测,在将来的比<BR>赛中,这种处理方式将得到广泛地应用,第一<BR>圈和第二圈将被区分开来,第二圈将在第一<BR>圈的基础上有所提高,而不是简单的重复.<BR>161<BR>何金玉<BR></FONT> |
|