找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2669|回复: 1
收起左侧

技术回忆录九之飞思卡尔智能车华南赛

[复制链接]
ID:50962 发表于 2013-7-20 22:06 | 显示全部楼层 |阅读模式
    经过6个月艰苦的校内选拔赛,我终于可以进入校队,代表学校参加飞思卡尔华南赛。接下来就是两个月的备赛阶段。上一录说到,我被分到一个牛人的队伍里面。面对完全不同等级的合作伙伴,首先我就必须得花时间熟悉人家队伍之前的车模情况,了解整体硬件架构,以及他们的控制算法。智能车的控制系统,其实是个典型的非线性不对称控制系统,代码量已近万行。其实自己写算法的难度并不高,难的是看别人的代码,领悟别人的算法。由于函数编写的习惯大家都各不一样,有些人喜欢用大量的条件编译,有些人喜欢用结构体,有些人喜欢把变量写得这一块那一块,嵌套地调用、跨文件地调用,有些人喜欢指针有些人不喜欢用,更多的是不会用。很多人写程序的时候,不会刻意地去注释,上万行的程序就这么读下来,我用了大概两天的时间才弄明白整体的控制思想。     为了更加迅速地磨合和提高效率,我充当着一个辅助的角色,帮着他优化和调试他写好的路况识别算法和控制算法。这位牛人的研发能力和研发技巧真的让我大开眼界,他为了加快研发的速度,通过将上百张各种路况的图片经串口上传至电脑,然后使用MATLAB写好的图像识别算法,处理一张一张的图片,调试好滤波、检索范围的参数等等,最后得到一个良好的效果以后,再将MATLAB语言转化成C语言,写入单片机里面。这样的做法既不用一直蹲在车的旁边低着头看,也不用一边推着车一边检查自己写的算法究竟效果好不好,只需要手指轻击鼠标不断地切换图片文件,在电脑前就可以调试。在现在看来,这种方法对与我而言已经不算什么新鲜了,因为我现在经常用这种方法去做项目,但是如果没有跟着他偷师,现在估计还是不知道如何使用这种技术和方法。
    我学到的远远不止这些,还有调试的技巧,一开始我按照以前我自己的调试方法帮他调试PID,可是却被他说我在瞎调,没办法,他再一次教会了我怎么调试是最有效率的,叫我怎么看速度的变化曲线,调节参数的方向选定等等。写到这里,大家都会觉得我一点贡献都没有吧!其实不然,我还是挺有贡献的。
    我们两个当时遇到的问题是车体在减速入弯的严重甩尾现象,他之前也一直没有解决这个问题,无论怎么换轮胎加大摩擦,又或者使用后桥舵机实时调整车体重心,都无济于事!于是,他在PID里面采用了积分限幅来削弱电机得到的能量,以放弃硬加速为代价,保证了车体转弯的准确性,但是整体的速度控制就变得很软,速度一直上不去。于是,我提出了一种方案,就是通过判断当前路况的斜率动态地调整积分限幅的力度,让车子在直道的时候控制变硬,转弯的时候才变软。另外,我们还发现车体的左右转弯的控制不怎么对称,有些时候转左正常转右就偏大了,对于这些问题,我又提出了不对称参数补偿的方法。但是,遗憾的是,我们一直都没有解决入弯甩尾的问题。直到上火车去厦门参赛的前一天,我发现,当我将车子的落地测速轮拆掉之后,让车子快速地开环跑,车子竟然没有任何甩尾现象,我便提出改成差速轮测速的方法,但是他并没有采纳,而是我们通宵修改落地测速轮的机械结构,虽然有所改善,但是速度依然不乐观,直到上火车前的2个小时,我们只好收拾东西,无耐地坐上参赛的火车,听天由命吧!
    在火车上,我就在想,其实牛人也有错的时候,牛人他也有做得不好的地方。不过,也恨自己没有早点发现这个重大的问题。幸运的是,我们还是拿了华南赛二等奖,但是我一点都不开心:这8个月来,我走得好辛苦,为什么别的队可以拿一等奖而我不能?不过,总算松了一口气,那天晚上,我睡得挺自在,虽然没有大喜,却8也没有大悲。
    8个月的呕心沥血,让我真正地成长了。它让我明白,一项工程,并不是一道数学题、一套试卷那么简单,需要的是耐性、智慧、毅力以及勇气。得到的,不是那个空洞成绩,而是人生的价值!

回复

使用道具 举报

ID:72781 发表于 2015-2-1 15:38 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表