pid算法在计算机视觉的应用,使用计算机视觉实现PID算法

我正在构建一个自动迷宫迷宫求解器,并使用网络摄像头来控制迷宫。

根据其他论坛的建议,我现在试图至少在一个方向上控制迷宫的球运动。因此,我试图控制球在两个坐标466,288和466,152之间的运动。步进电机控制板的输入是时间,每个轴(x和y)的旋转步数没有。

因此,为了在两个点之间移动,我是否应该在两个点之间创建多个航路点,即288和152(例如260 240 230 ... 150)并纠正我的球的运动?

我的图像处理算法跟踪球的速度不够快,以至于球只会旋转并掉入一个洞中。

一些人建议我使用以下视频中所示的标准模板,并更正我的球的运动以解决路径偏差:

我还遇到了一种图像处理工具,他们使用球的运动点解决了相同的问题。看到太多解决同一问题的方法,我完全困惑于解决问题。我知道我应该实现PID控制器。但是我应该如何逐步解决问题呢?我被困在寻找解决该问题的先机而感到沮丧。

我的设置如下所示:

TCgNK.jpg

...这是我的软件的屏幕截图:

n82Di.png

修订2:我现在还面临一个新问题:早些时候,我通过Arduino串行端口Java小程序控制步进电机。我可以使用小程序来驱动步进器。

每次尝试通过串行端口通信时,都必须重置板。同样,当没有命令发送给步进电机时,步进电机会以较小的间隔通电。当步进电机进入此模式时,如果不重置电路板,将无法控制我的电路板。任何援助将不胜感激。

修订版3:

现在,我对PID算法的执行速度有疑问。实际上,我的图像处理在200毫秒内完成一个周期,识别出一个球并将命令发送到步进电机控制器板上。即使向我的串行端口发送了切换方向的命令,我的步进器仍沿相同方向旋转。您可以在上面的视频中找到奇怪的行为。

我的想法是,我应该将PID值限制为一个上限,如果计算出的PID值大于100,我应该只发送100。我很希望听到您对此的看法。

我实现PID控制器的方式是,我使用模板匹配算法确定了模板的起点,并使用了另一个模板匹配算法确定了球。现在,我使球移至起点模板的质心。如何使用PID算法使其遵循直线?

修订4:

7vd9s.png

我已经隔离了轨迹,但是无法找到正确的功能来从起点打印正确的像素坐标。有什么想法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值