智能车信标组控制策略_2018第十三届智能车创意组步步为营记录

321a7b16bcad49b5d3b6b0ae6d8fab4b.png

2018年8月,我参与了第十三届全国大学生智能车竞赛。

说是比赛,其实更像是一个完整的工程。规则是2018年3月底出来的,要求我们做出一个无人智能搬运小车,能独立的在4m*4m的共64个方格的大棋盘上,搬运八个随机摆放的棋子使其满足八皇后条件。满足八皇后条件就是在64个格子的棋盘上,每个棋子所在的行和列还有斜线方向上没有棋子。

我们当时花半个月的时间在讨论理论方案,即用什么样的算法规划路径才能让车子走最少的路完成任务。当时我们正向思考,就在想怎么才能把八个棋子摆成八皇后的位置,但算法过于复杂,代码实现十分困难。但后来逆向思考,我们把满足八皇后条件的解先算出来,共92种解。我们就把这92种解一一的与当前随机拜访的棋子计算总距离,也就是让所有棋子和它的目标位置的距离总和最小。这个算出来之后理论部分的路径规划就完成了。期间还有一些别的方案,逻辑简单,但总路程更长。

算法实现到工程上,又是另一个问题。首先是载体,即车子。上面的算法算出来的是直线距离,我们一般了解到的实际中的车子是需要转弯的。最终我们了解到了麦克纳姆轮,全向轮移动平台,它的轮毂是斜着的,可以360度无死角运动,不需要转弯。之后是识别问题,要让车子按照规划的路径跑,这时首先要解决的问题就是车子如何知道自己在哪。棋盘格子上是有数字的,一共64个数字,我们的第一个方案是识别格子中的数字然后计算车体离数字中心的距离,但这样要识别好多数字,还要考虑数字会不会被摆放的棋子盖住,如果视野中没有数字该怎么办。最终我们决定让车子以棋盘格子的线条为参照物,移动方向与视野中的线条数目达成对应关系,视野中始终有足够数目的线条,然后计算车子视野中线条与中心的距离,从而算出车子当前处于哪个区域的哪个具体位置。最后要解决的问题就是检测线条了,用的霍夫变换,问题就这样被一步步分解、解决。但写完程序之后又出现了一些意想不到的难题:摄像头反光,某些区域啥都看不见,全是白光。最后组委会觉得比赛对于本科生来说太难了,就去掉了反光元素。我们车子的摄像头视角比较大,所以反光造成的影响不是特别大,虽然某些区域还是会反光。

最终我们用23s的时间完成了任务,获得了国家二等奖。不足的地方就是交互做的太差了,还有反光问题。汽车上的行车记录仪基本上不反光,可能是因为我们的摄像头太差了把。

收获很大,第一次写出完整的工程代码。我最起初特别自信,把程序全写完才去DEBUG,500多行初始代码,没有注释的DEBUG,后来学乖了,就写了注释,把大部分组件封装起来。收获还有队友与合作,真正的体会到了1+1远大于2的效果。当时我们几个队员全都是大二的,大三没有人参加这个组别,因为他们觉得太难了,做不出来,但我们几个人合力把它做出来了。那段时间我们开会交流特别频繁,基本上三天完成一个阶段性任务。上厕所的时间我们都在交流问题。队友也都特别好,就事论事,代码不好就得改,我们用投票原则修改方案,每个人都可以提出自己的方案然后与大家讨论,也相当于开组会了。

真的很怀念当时做比赛的时光,做自己喜欢做的事情,是多么美好的一件事情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值