板球控制系统pid笔记

    xiaoxiao2022-07-02  195

    整个板球系统分为两个部分:

    1.图像处理:

    图像处理利用了树莓派-OpenCV进行图像处理,将小球坐标进行实时反馈,使小球实际坐标和目标坐标进行对比,对偏差进行pid运算,计算出pwm值从而用来控制舵机。

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

    最新回复(0)