智能车制作

标题: CCD记忆算法 [打印本页]

作者: 1504529166    时间: 2013-1-25 18:19
标题: CCD记忆算法

近期,看到一篇关于路径记忆的文章,至少给迷茫的我们指明了方向,感觉很不错,特拿出来分享一下!

由于光电传感器看到赛道的长度有限,不能很好地对赛道状况进行预测,因此,如果小车在跑第一圈的时候能够记下赛道全部路径信息,在第二圈的时候则能够根据第一圈的记忆信息辅助控制,在相同条件下将比不使用赛道记忆的智能车更具有优势。

v
成功实现赛道记忆算法,必须具备以下五个条件

§
赛车必须识别起跑线。

§
赛车需要在第一圈记下正确的赛道信息。

§
正确地滤波。

§
赛车必须拥有足够的存储空间。

§
赛车在第二圈如何应用第一圈记下的信息。



赛车如何在第一圈记下正确的赛道信息?

v
当起跑线被检测到后,开始对赛道进行记忆。我们采用的是分段式记忆算法,当黑线的位置在中间某个区域内则记为直道,在右面的区域则记为右弯道,在左面的区域则记为左弯道。我们利用编码器记录小车走过的路程,具体做法为:用PCAN1记录编码器的脉冲数,输入到计数器当中,进而采用计数器的溢出中断来对赛道进行定距离记忆,当计数器的脉冲数溢出时,这时计数器申请溢出中断,从而实现对赛道定距离记忆。当第二次检测到起始线时记忆结束。

v
正确的滤波

v
确的滤波对赛道记忆而言是至关重要的,它决定了在第二圈时赛车的运行路线和运行速度,对赛道滤波需要分两种情况,第一种就是在记忆过程中对赛道滤波,由于我们采用的是分段式记忆方法,当某一段记到的脉冲数小于某个数时,这时我们把它归为上一段。第二种就是在第二次检测到起始线后对赛道进行全局滤波,这时我们要从赛道中滤出小S道、大S道和连续弯道。

v
具体做法如下:首先我们必须先找出它们的特征,对于小S道,由于我们采用的是分段式记忆算法,如果当连续几段的脉冲数都很少时,我们可以把这几段看成一个整体,把它从赛道中滤出来,从而实现小S道直冲。当然这个脉冲数的阈值必须是通过大量的测试而得,否则将造成错误。大S道不能像小S道那样直接冲过去,否则小车将冲出跑道。我们必须将连续弯道提取出来,因为在第二圈回忆跑道时,连续弯道最容易出错。

v
赛车必须拥有足够的存储空间

v
由于赛车的RAM空间只有8 kb,所以EEPROM必然成为了存储赛道信息的最佳选择。

v
通过编写WriteEEPROMReadEEPRROM这两个函数,将EEPROM当作ROM来使用。这样就解决了存储空间不足的问题,而且EEPROM在程序复位和断电后数据不会丢失。

v
赛车在第二圈如何应用第一圈记下的信息

v
根据第一圈记录下来的信息,小车就可以提前预知直道还是弯道。对于直道,小车在道路的前段以常规的速度行驶,以便小车调整车身姿态,中段则以全速行驶,后段则提前减速到一个最佳的速度,为过弯道而做准备。在弯道中,小车会根据第一圈记下来的不同曲率,以设定速度匀速行驶。特别的是,在过小S弯时,可以人为地让小车减小调节舵机的大小,这样小车便能以近似直道冲过去。


作者: dlyt03    时间: 2013-1-25 19:05
谢谢分享
作者: AOE    时间: 2013-1-25 19:58
这算是对之前的想象进一步实体化了....
作者: 洋葱圈    时间: 2013-1-26 00:07
不是只跑1圈么?
作者: 十七岁不哭    时间: 2013-1-26 09:48
哥。。。。。你和翔宇同学的头像一样呃。。。。。
作者: liuyuliuyu1216    时间: 2013-1-26 09:54
谢谢楼主
作者: zyj    时间: 2013-3-16 10:46
表示真正实现还是很难的
作者: 辛少    时间: 2013-3-21 15:55

作者: guolei123    时间: 2013-3-21 16:59
机器学习?
作者: 走过的痕迹    时间: 2013-3-21 19:14
可否分享一下记忆算法程序啊!2360288135@qq.com
作者: Damphy    时间: 2013-3-27 00:46
!!!
作者: kido    时间: 2013-3-27 11:29
不错,但是不知道具体怎么下手
作者: 战怺竝!    时间: 2013-3-27 16:00
去年参加时就有人说,比赛时看好像没有用这种的,
作者: 忍冬草    时间: 2013-4-2 16:06
谢谢
作者: 水野清寒    时间: 2013-4-2 16:30
不好弄
作者: 1225781561    时间: 2013-4-2 16:44
有难度
作者: sky源鸣    时间: 2013-4-6 19:32
学习下!
作者: 曾经や云迹、    时间: 2013-4-8 22:58
具体写程序就难了吧,比赛里能用吗
作者: kido    时间: 2013-5-11 21:52
好像很厉害的样子
作者: guolei123    时间: 2013-5-11 22:01
问题是完整的跑完一圈就不让你跑了啊
作者: litaov2010    时间: 2013-5-11 23:23
嘿嘿,思路很好。。。
作者: tomlllttt    时间: 2013-5-12 19:29
这个是打算跑到终点就冲出赛道外吗
作者: 五月芬芳    时间: 2013-5-12 20:27
希望可以实现吧!
作者: 中华旺仔    时间: 2014-1-19 12:04
:lol:lol比较难啊




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2