星空体育官方网站 智能车的探索与思考(三)

摩托组参加校赛失败了,与之有关联的探究于是暂且被搁置起来,没有再去进行修理。在后续的时候,在学长给予的协助之下,更换了组别,再次从头开始,我们对学长的帮助满怀感激之情,使得我们拥有机会能够继续投身于比赛之中。

新的组别是MicroPython组,对我们而言挑战颇大,其一,队友不掌握python语言,而我们整体时间仅余一个月,其二,库函数数量有限,部分功能无对应函数需自行编写,部分参数具体作用不明需加以尝试,其三星空·体育中国官方网,最为困扰的是,调试结果缺乏直观呈现,上位机无法使用,屏幕反应不灵敏,按键无法操作,仅在小车连接电脑时方能看到数据,小车开动后只能通过观察其运动进行推测进而修改 。

完赛

学长的代码里给出了CCD处理,给出了电机PID控制函数,给出了舵机控制函数,学长在这个基础之上引导我们写出了完赛的基本思路,通过CCD二值化结果完成边界寻线,把中线误差加到舵机控制上,进行实时修正,完成了小车慢速直行、转弯等基本功能。

中间线等于,左边线加上右边线,之后所得和,进行除以二操作 。

err=medium_line-64

a=int(5679-k*err)

#更新 PWM 输出,使舵机动

pwm_servo.duty_u16(a)

里面k属于参数,借由简单的调节进行确定,确定之后朝着后方的方向调整大小,k的数值越大,小车针对赛道中线的反应越发明显,也便是转向的幅度越大。

在进行提速这个过程当中,车辆的速度所处状态越趋向于快的方向,那么在转弯这个行为发生之时,所需要的k值就会呈现出越大的情况,然而与此同时,车辆行驶的直线状态会逐渐发生变抖的状况,基于这样的情况,所以引入了新的参数。

将5679减去舵机比例系数乘以误差,加上舵机积分系数乘以误差与上一次误差的差值,再加上陀螺仪Z轴值乘以舵机微分系数,所得结果赋值给a 。

kd的引入,是通过获取车身角速度来达成的,其目的在于对小车抖动幅度予以抑制,进而使得kp能够进一步增大,在速度较快的时候转弯会更加稳定。ki的引入星空体育app下载入口,增强了在p、d控制下直线的稳定性。

我们曾进行过动态参数探索,也就是针对直线、弯道等各异赛道元素去设定不同参数,然而由于调参难度偏高,且时间并不充裕,所以最终决定提升泛用性,仅仅采用一套舵机参数 。

轨道辨认范畴内,特别要素当中直线以及弯道情形以外的,涵盖十字形状、倾斜路段、阻碍之物、环形道路设施星空体育官方网站,最开始是针对英飞凌镜头群组的开源项目展开研习,并且针对当中所具备的辨认、判定、操控函数实施从C语言转变至python语言的移植,历经两个星期的学习与选用,这段时期之内也知晓过其他ccd群组的循路踪迹思维方式,然而最终结果都不算是很令人满意,大多数状况相比原本什么特别辨认都不添加的程序而言要差,所以到了最后一周之际决定自行创作 。

经多次调试却没有结果,我们察觉到诸多功能难以达成的缘由是单片机性能存在局限,有时无法带动,所以诸多复杂算法都得舍弃,数组也不能定义过多。经整理重组,得到了相对精简的代码。

第12届飞思卡尔智能车_MicroPython组挑战_摩托车组校赛失利

通过遍历与跳变点判断,实现终点停车。

第12届飞思卡尔智能车_摩托车组校赛失利_MicroPython组挑战

主控部分,通过中线误差完成舵机控制。

关键词:

客户评论

我要评论