题记:这是一场因为规则审慎问题,导致取消成绩的失败方案,但并不是完全没有一些参考的意义和价值。以车会友,一直是智能车比赛的初衷,也是我们一直奋斗的目标。这个方案稳定度高,并且获得(470,500)的还算不错的成绩。
总览
整个车成本约1800上下:这里选用了四个脉轮,以及2mm钢板作为底板,确保强度,亚克力/铝板的话可能强度不够,重就重些吧。 在家里打线上赛的大佬去美团打工,并在考虑edgeboard这个开发所需要时间和算力的情况下,我们选择让edgeboard,利用opencv,进行一个基础的识别,也就是这里,和卓老师个人公众号内容有所冲突,导致了最后的违规。
结构框图
概述
本次比赛主要就是巡线、抓物块、打靶子、放球,亮亮灯。
巡线
巡线这里不得不提到主办方精妙的设计,如果你利用OpenCV进行处理,他的黄色色块、宿营地、甚至地面上米黄色的城墙图,都会在不同亮度的情况下,对整个视觉产生巨大影响。 在这个场地中,如果摄像头不进行近处扫描,则四轮的脉轮会因为过早扫到前面的赛道进行漂移,如果扫的过近,则会V字弯道、U形弯道过不去。十字弯道如果盲目补线,则有可能打靶姿势不好纠正,连续双打靶,应该就是为了看你在丢失视野的情况下可不可以自己纠错,这篇需要好好写一下,将会交由我队友写的博客来进行详解。
打靶子
打靶子这块可以说十分简单,靶子高17,于是我们把笔尖固定在17cm高度,那么靶子就只需要做横向处理就行。抓住靶子特征,红色,原型。很好,openMV直接在靶心附近扫描红色圆心色块中心,并且设定一定的弧度、大小,来去除干扰,然后通过脉轮前后微调,使得这个圆心设定在屏幕中心,啪,打上去了。 这个采取的步进电机的方式,主控给设备命令,步进电机转动,把笔伸出去缩回来,又快又好,步进电机驱动可以购买,小步进电机也是(买个好的,防烧毁),然后openmv可以给个pwm波进行控制,搞定。
举旗子
说实在举旗子这个方针,我们用了个三百六十度舵机,使他能够让三个旗子通过一个舵机来控制。
底部识别
这里涉及比赛漏洞之一,既然大致顺序是定的,我们就只要识别出白色色块就行,唯一变化的城池顺序,是吧,写个菜单,能用按键按下去就能换代码中config顺序,然后config九个内容,每次识别到一个就+1,执行下一个任务,很好,底部识别没了,变成识别白色块了。打灯,搞个led灯光带,蒙张纸,然他漫反射,减少环境光源影响。openMV识别白色块,调调阈值,参数啥的,好了,又快又稳的底部识别完成了。到对应的位置,还可以通过色块中心点微调一下位置,稳稳当当的完成任务识别。
抓物块
爪子大一些,两舵机,一个控制下抓角度,一个抓取就行
控制好距离、抓取角度、抓取位置,一抓即中。 利用edgeboard侧面识别赛道线相对距离,从而控制每次抓取时的固定位置。
放球
同理,通过底部openmv大致校准后,用edgeboard的侧边距离控制好,角度锁死,结束。
驱动
驱动直接用iic与树莓派通信,就时不时掉线有点烦。直接pid写死在驱动板上,然后就靠iic给他传数值,然后他执行转速即可。自己画个驱动板就行,后续挣得队友同意会把pcb放上去。
图
结论
分析到这里,整个比赛已经没什么难度了。 巡线部分由于赛道很有水平,等我队友睡醒了会详细写如何处理赛道中各种线各种情况,到时候会附上链接。 代码和3d建模,PCB,将会在征得队友同意后一起奉上。 希望这个思路,能给大家一定的参考。 感谢在比赛场上鼓励我的车友,以及和我一起靠兴趣做车的队友们。
|