的背景
我最近设计了云台相机模块,它利用步进电机控制相机运动,并利用 Jetson Xavier NX 进行物体识别。
工作流程很简单:
- 用 Python 编写的程序正在分析视频输入并寻找对象。
- 当找到对象时,它会计算图像中心和对象位置(在 X 和 Y 轴上)之间的差异并启用电机。
- 当物体远离中心时,它会为电机设置更大的速度。当它关闭时,它以最低速度运行电机。
重要提示:程序不知道屏幕上的距离与步进电机到中心的步数之间的关系。它只是启用步进电机并不断检查,直到中心和物体之间的差异非常小。也许这个方法是错误的......
问题
我读过关于应用 PID 控制器来解决这类问题以最大限度地减少偏差,但我不明白如何在我的情况下应用。当我们想要达到一个绝对值(例如伺服电机的角度)时,它似乎更简单。PyImageSearch.com 有一个很好的例子,如何使用 PID 控制器来最小化基于伺服电机的云台模块的偏差。PID 控制器根据当前误差(物体位置与相机框架中心之间的差异)不断计算角度值并调整角度。
问题
我想问我如何考虑 PID 控制器(如果可能的话),当我只有速度变量来控制电机而不是像伺服系统中的角度时。
也许我必须改变它的工作方式并实现可以为我提供有关当前步进电机位置信息的功能(如伺服系统中的角度)?