基于激光传感器的智能车自主导航系统设计

2014-04-23 10:09邱广萍
电脑知识与技术 2014年7期

邱广萍

摘要:从硬件电路设计和软件设计两大方面入手,分析基于激光传感器的智能车自主导航系统的设计过程。通过分析基于激光传感器芯片制作的自主导航智能车的设计原理和方案,从机械结构设计,硬件电路设计,程序算法设计以及调试经验等四个方面全面介绍智能车的制作及调试过程。经过实验对比和竞赛,表明测速模块、电机驱动模块及激光传感器的设计和选择,软件程序的编写和算法的选择有效地实现了智能车的高速自主导航。

关键词:激光传感器;智能车;自主导航

中图分类号:TP273 文献标识码:A 文章编号:1009-3044(2014)07-1586-03

该车主要由两个摇头伺服电机和激光传感器构成的道路检测随动子系统,驱动电机以及机械传动齿轮构成的动力子系统,连杆机构以及转向伺服电机构成的转向子系统,速度检测系统以及以单片机MC9S12XS128为中心的电路子系统构成。结合数字PID控制理论完成了智能车自主巡线的功能。

在调试过程中主要应用 LABVIEW 处理无线串口模块发回的数据可以使调试过程更加得心应手。

1 硬件-激光传感器

1.1 激光檢测原理

激光传感器是使用激光传感器检测路面的颜色信息,由激光发射二极管发射一定波长的激光,经赛道路面反射到接收管(赛道是由一条黑线粘贴在白色板中央制成)。由于激光发射二极管对于黑色和白色的反射系数不同,所以接收到的反射光的强度是不一样的——激光发射到黑色路面后大部分光线被吸收,而发射到白色路面后则可以反射回大部分光线。针对反射后接收到的信息,将激光特性曲线产生的变化导出为输出端的电压变化,就可以区分路面的颜色信息[1]。图1为激光传感器原理图。

激光传感器的原理和普通的光电传感器原理相同,不同的是激光传感器的前瞻远远大于普通的光电传感器,能够稳定在40cm至70cm之间。 组委会规定每支车模传感器数量不超过16个,光电传感器接收单元计为1个传感器,发射单元不计算。即便如此,我们的传感器也不能使用太多的发射单元,因为舵机的灵活性会随着其负载的增大而降低。所以最初我们使用9个发射管,3个接收管,3对1的模式。后期为了增加分辨率采用12个发射管,3个接收管,4对1的模式。 激光传感器分为发射部分和接收部分。发射部分发射管按“一”字均匀排布,但是这样发射管两两之间可能产生干扰,所以我们传感器发光采用了分时点亮的策略。使用一片74LS138,由单片机控制,一次点亮若干个激光管[2]。由于接收部分使用的是专用的激光接收管,该接收管在接收相应波长和相应频率范围的光时效果做好,所以我们将发射管的频率调制成200kHz,并且这样也能减小外界光线的干扰。为了能更好的接收反射回来的光,可以在接收管上套一个透镜,这样接收管接收效果最好,提高前瞻。

1.2 激光传感器的组成

2 车模各部分硬件调整

2.1 前轮调整

模型车在行驶过程中,主要靠调整前轮来控制速度和转弯调速,因此调整前轮是非常重要的步骤。调整前轮分为以下3个步骤:前轮的调整直接关系到小车在直道是否顺畅,在弯道转向是否灵活。前轮调整主要从主销后倾、主销内倾、前轮外倾和前轮前束4个方面着手。以下是具体的调整:

1) 纠正车轮回力矩的偏转角度。通过实验测试,该偏转角度越大,模型车的速度越高,但回力矩过大,会导致车轮转向不灵活,因此把主销后倾角调整为2°。

2) 提高车轮转向灵敏度。由于模型车整体重量轻,车的重心非常低,为了使模型车在转弯时提高灵敏度,将主销内倾角调整为2°。

3) 减少车轮阻力。车轮在行驶过程中与路面产生摩擦阻力,会降低模型车速度。两个车轮之间是需要设置成一定的角度,这样可以使模型车行进过程更加平稳。通过实验对比,将小车前轮调成“八”字型,这样调整可以使小车转向时候更加平稳[4]。

2.2 重量和重心调整

重量和重心关系着小车的极限速度,当小车速度达到一定程度时,这个问题尤为突出。

重量方面,我们在不影响小车正常行驶的情况下,尽量减少小车上一些可有可无的配件,并且在做电路板时,尽量选择简单且稳定的电路。经过这几步,小车的重量有了明显的下降。

重心也影响着小车的性能。重心过前,增加转向阻力,引起转向迟滞。另外,如果小车速度很快的情况下,上下坡道的时候会造成前轮首先着地,很可能造成小车意外事故。重心过后,则会使小车前轮抓地不足,造成过弯非常不稳定。实际调整以重心在减震弹簧固定座处为准,保持各部分重量均衡。重心还应尽量低,在高速情况下,过高的重心会引起小车侧翻,可通过降低小车底盘高度来降低重心[5]。

2.3 差速器调整

模型车后轮如果差速器调整不恰当,会产生抖动和噪声过大。首先需要检查轴的方向是否平直,在螺丝安装的地方有没有松动。其次就是调整差速器,恰当的角度和松紧度可以提高模型车转弯时的速度。另外螺丝在调整过程中不要上得太紧,因为需要多次调试,螺丝上得太紧会容易导致齿轮滑牙。在调整过程中,要结合模型车的重量,反复调整几次,见好就收。差速器也需要适当上油,保证其转动平滑。

2.4 其它调节

1) 模型车灵敏度调试:可通过车速闭环调试的方法来检测模型车的灵敏度。调试方式是使用MATLAB记录模型车由静止到加速到稳速之间的速度值,绘画出特性曲线。根据曲线的变化来调试。

2) 模型车转弯振荡调试:为了确保模型车转弯时不至于翻车或者脱轨,需要计算转角。但该转角比较难测试出来,因此借鉴了第一届大赛中一等奖队伍的方法,就是在模型车前轮添加一个激光发射电筒,依据三角函数的关系,计算出转角。当该部分调试完后,把激光发射电筒拆卸。

3) 模型车稳定性调试:首先调试模型车的重心。模型车的重心关乎驱动力、转向力。因此该部分的调试采用“悬线法”,以观察模型车的稳定性。

3 软件设计

程序及算法设计是该智能车系统的核心之一,程序设计的理念保持简洁、高效、稳定、适应性强,切不可仅仅追求某一特殊弯道而忽略整体,同时要考虑实验室赛道类型不足,不可只针对某一赛道类型而设计程序。程序的设计、调试、修改都需综观全局,仔细考虑每一行代码是否有副作用,整体逻辑是否有矛盾、漏洞以及欠妥之处。总的来说即控制车模在符合大赛规则前提下,以最短的时间跑完整个赛道并能停在起跑线3M以内。

3.1 數据的采集

4 结束语

1) 采用了激光传感器。普通光电传感器,如ST188,有效距离最大为30cm,而且容易受到外界光线的干扰。而激光传感器则不同,其有效距离最大能达到80cm,由于其接收管只能接受一定频率和波长范围内的光,所以不容易受到外界光的干扰。

2) 采用了双摇头的策略。使用激光传感器后,小车的前瞻有了明显的增大,但大的前瞻却带来了许多问题。比如在过弯的时候,激光光斑扫到赛道外面,出现盲区,这对小车的行驶是非常不利的。所以我们采用了摇头这一策略来缓解了这个问题。另外,大前瞻的激光小车在上坡的时候,光斑被抬高,也会出现盲区,这样又带来了许多不确定因素,于是我们又增加了小前瞻。

3) 采用红外对管检测坡道。采用下排方案后,需要提前检测坡道,这样便于传感器及时切换下排。所以我们使用对管来提前检测坡道。

由于制作时间仓促,所以该智能车还有一些不足,例如:

1) 早期忽视了机械结构的重要性。在智能车制作过程中,在机械结构上花费时间较少。当小车速度达到一定程度后,出现了左右转向不对称的问题,这个问题在最后也未能很好的解决。

2) 电机驱动性能低下,加减速不能及时响应且容易发热。

3) 激光模块功耗过大,整体模块去干扰性能差。

4) 算法不够完善,很多不稳定性。

参考文献:

[1] 赵继聪,周盼,秦魏.激光传感器原理及其应用[J].科技致富向导,2011,9(1):101-102.

[2] 臧杰,阎岩.汽车构造[M].北京:机械工业出版社,2005.

[3] 张伟.Protel DXP高级应用[M].北京:人民邮电出版社,2002.

[4] 周斌,李立国,黄开胜. 智能车光电传感器布局对路径识别的影响研究[J].电子产品世界,2006,9(5):139-140.

[5] 安鹏,马伟.S12单片机模块应用及程序下载调试[J].电子产品世界.2006,28(12):162-163.

[6] 科昊.PID控制原理——PID调节器分析[EB/OL]. [2012-11-07]. http://www.gongkong.com/company/paper/2-b38e-27c3638fe52f.htm.