本文主要是介绍板球控制系统pid笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
整个板球系统分为两个部分:
1.图像处理:
图像处理利用了树莓派-OpenCV进行图像处理,将小球坐标进行实时反馈,使小球实际坐标和目标坐标进行对比,对偏差进行pid运算,计算出pwm值从而用来控制舵机。
图像处理的难点在于:
(1)怎么读取小球的坐标,可以利用面积法,将镜像中的面积小于一个值的物体提取出来(也可以根据颜色识别,不过这个对小球颜色要求很高,不能反光)
(2)难点2在于树莓派和单片机的通信,如何将坐标传给单片机,可以利用的是串口通信,将树莓派的坐标加上帧头帧尾,然后在单片机这边进行解码,就可以在单片机上面读取到小球的实时坐标。
2.pid的计算
pid运算是仿照着上个项目做的直流电机的调速系统的位置环写的,通过这个项目我发现了历年电赛好多共同点,板球系统,倒立摆,激光打靶的原理都是一样的,只不过是反馈的方式发生了变化而已,所以做这些项目的前提一定是将反馈的信号准确读取,这个是系统稳定工作的前提。
说一下做的时候遇到的一个问题,小球到达二号位置时,本来是在位置停止3秒再到5号位置,但是实际却是到达三号位置时,程序一直卡死,找原因找了很久才发现延时的时候程序跳不出来,一直在延时循环, 无奈最后自己写了一个延时函数 没有用HAL库里面的延时函数。
图片:
转自:
https://blog.csdn.net/biubiubiubiu233/article/details/80968096
这篇关于板球控制系统pid笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!