记一次无人车挑战赛

原创
2017/12/24 21:25
阅读数 220

就在昨天,我受邀参加了一次无人车(自动驾驶)大赛。比赛时间短,难度高,但队员们终于克服了重重障碍,坚持到了最后。我因身体原因中途便回家休息了,但队友们依然通宵奋战!攻克各种技术难点!他们忘我战斗的精神让我感动!就在今天,他们完成了比赛任务!取得了不错的成绩!我不禁想起10年前为了完成工作任务通宵达旦忘我工作!但比起现在这些敢闯敢拼的90后小伙们,似乎少了很多自我驱动力,更多的像是一种迫于公司的压力。

在这里记录下一些比赛的细节,希望当以后回顾时,会心存美好。

 

比赛任务:让小车在赛道上自动形式,并能识别交通指示灯,自动避障

比赛时间:当天现场完成

1.连不上的树莓派:

比赛开始,我们被随机分配到一组,我们是6组,一共4名队员,每组都能拿到一个树莓派小车,其他组都按照说明,陆续连上小车,开始进行基础环境的测试,而我们则一直被小车拒之门外,叫来工作人员,结果回复:看来只能进行玄学调试了😓,好吧,既然是这样,我们只能降低要求,直接通过ssh连接小车,上传修改小车代码。但就这么反复调试环境,半天已经过去了。

2.跑不直的小车:

但这样并未让我们气馁,紧接着我们便开始了基础API的测试,但我们发现基础API的测试结果竟然有问题,前进是原地打转,后退是左转...这让我们陷入了短暂的混乱:难道是哪里调错了?其他组好像都没有这个问题啊?无奈只好再次联系工作人员,结果回复:一个驱动轮的电路接反了😓😓,这时距离比赛规定的开赛时间已经很近了。但没人慌乱,大家都抱着一个信念,即使拿不到名次,也要把比赛完成!

3.测不准的赛道线:

吃一堑长一智,我们已经对基础环境保持审慎的态度,目前的智能硬件提供的实际环境并没有想像中稳定。然而,实际中遇到的困难依然超出了我们的预期:测试小车摄像头,使用opencv分析赛道线,结果赛道线提取不出来😱,这对于目前小车所具备的硬件条件来说,简直是致命的!小车可以探测赛道的唯一手段就是摄像头!

仔细分析了一下代码,发现opencv这块主要是通过霍夫变换来检测直线,然而赛道线很多地方是曲线,虽然霍夫变换具备一定检测曲线的能力,但如果参数设置不正确的话,也就提取不出合适的线段了。于是我们调大了霍夫变换的曲率,终于得到了满意的赛道线。

4.纠结的解决方案:

熟悉了基础环境和API后,我们开始讨论解决方案,按照任务,网上的主流解决方案都是基于神经网络的,但显然,目前的小车平台根本跑不动神经网络模型,那该怎么办?使用简单的强化学习模型?短时间内这个方案根本不可行,使用SLAM定位?这看起来也不可行,根本没有合适的定位装置,何况赛道看起来还是比较复杂的,使用PID Control?看起来时间好像不太允许。那好吧,那就用最简单的规则判断:根据两条赛道线的斜率对小车的方向进行控制,如果视野内没有赛道线,或者只有一条赛道线,则缓慢前进。看似高大上的任务,只好用一种原始的爬行的思路去解决了。

5.算不准的斜率:

到这里,我们都舒了口气,有了赛道线,接下来的工作应该简单很多了,接下来只需要根据两条赛道线的斜率之和,就能控制好小车了,但是(唉,这个世界总会有但是!都是套路啊!)小车并没有像我们预期的在赛道线上乖乖的龟速前进,而是像一只无头的小虫在赛道上到处乱穿!

为什么?

这下我们茫然了,但短暂的失望并不会影响我们挑战的决心!而且举办方宣布,鉴于各组的实际进度,将延长比赛时间!有了更多的时间,给了我们一颗定心丸。我们沉下心来慢慢调试,终于发现了罪魁祸首:摄像头返回的赛道线不是稳定的!赛道线会不断的抖动!这也许是摄像头没有安装牢固,自身在运行过程中抖动造成的!怎么办?一方面加固摄像头,一方面用傅立叶变换求最近的“滞后斜率”,这样同时解决了摄像头采集的图像“超前”的问题。

暮色西沉,不知不觉已经天黑了。而我也不得不要离开比赛现场了。但我们设想的方案还是未能正确执行。

6.悄悄的坚持:

我依依不舍的离开了,回想着在赛道上像跳霹雳舞的小车,心里还在不断盘算着解决方案,并在群里不断关注着最新的状态,为什么小车的表现这么笨拙?为什么小车不能按设想的转向?还有两位队友决心留下来继续奋战!在这里我陡然对这群年轻人肃然起敬,由衷的钦佩起来。晚上10点,大家设想使用PID Controller接管对小车的控制,PID确实是控制领域经典的解决方案,但时间上恐怕已不允许了。我仔细搜刮了一通PID的相关资料,只有一款还比较接近的开源PID组件。小代提出,目前的策略太粗糙了,必须更精细化一点,她给出了优化方案,并开始付诸实施。凌晨4点,小车终于能按既定策略执行了,其实到这里,本次挑战赛最难的一个环节已经攻克了!到这里我不得不提一下坚持到最后的我们的两个队友:小代和小孙,他们通宵达旦的攻克了巡线功能,并且继续追赶着其他队伍的脚步,开始继续攻克交通信号识别、避障……我很早就醒了,看到这个振奋的消息,不由得感慨成功不是偶然的,每次看似简单的成功背后,必定是有人在默默的坚持再坚持!这个胜利准确的说是属于坚持到最后的人!

后记:

未来的道路总是充满了曲折,正是因为有曲折才有挑战,正是因为坚持才能战胜困难,迎接挑战的胜利。虽然这次无人车挑战赛比起专业的无人驾驶还差很多,但给予更多的收获则是契而不舍战胜挑战的愉悦。未来,可爱的的年轻人们!感谢你们勇于拼搏的精神和斗志!我毫无吝啬的献上了我的祝福,祝福你们!愿你们在无人驾驶的道路上越走越远!

最后,祝大家圣诞快乐!

附:2017无人驾驶智能车挑战赛

http://mp.weixin.qq.com/s/HWY_DL0k5CVefu6TbJ5uiQ

更新升级:

1.升级了小车的控制程序为PID版本,PID的控制逻辑分两部分:

    a.通过小车方向感知功能,对小车的速度差进行控制;

    b.通过小车历史方向的方差和当前速度之比,构建小车稳定性指标,对小车的速度进行控制;

    简单的想了这两条策略,欢迎大家探讨!

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部