【ROS2】PID电机控制

一、说明

        几个月前,我已经有一个功能齐全的速度控制课程,但我决定在这里演示之前必须对其进行一些重大清理。在这篇文章中,我将简要解释我的电机控制程序是如何构建的,然后给出一些关于其中的控制理论的背景,然后我将解释该理论是如何在实际代码中实现的。

        您可以在以下位置找到源代码和示例草图github.com/1988kramer/motor_control.


二、程序结构

        我构建了我的程序以尽可能接近地镜像硬件,因此我创建了两个类,电机和编码器,来处理电机和编码器的低级功能。 “速度控制”类使用“电机”和“编码器”类来精确控制电机的速度。 有关库结构的详细说明,请参见下图。

        GDE 错误:检索文件时出错 - 如有必要,请关闭错误检查(404:未找到)

        您会注意到上图中有两个类使用 SpeedControl 的功能:PositionControl 和 Differential Drive。PositionControl使用SpeedControl的实例来提供位置控制功能,Differential Drive使用两个PositionControl实例为像Colin这样的差速器驱动机器人提供高级控制。

        我今天只是要讨论SpeedControl课程,但你可以期待在接下来的几周内关于PositionControl和Differential Drive的帖子。


三、控制回路基础知识

        在我的

猜你喜欢

转载自blog.csdn.net/gongdiwudu/article/details/131938516