设定点指令

重要

RobotBuilder已更新,以支持新的基于命令的框架!不幸的是,该文档已过时,仅适用于旧的基于命令的框架。有兴趣更新此文档的人可以在`frc-docs <https://github.com/wpilibsuite/frc-docs>`__存储库上打开请求。

机器人程序中的一个常见用例是将执行器驱动到使用电位计或编码器测量的特定角度或位置。这种情况经常发生,以至于RobotBuilder中都有执行此任务的快捷方式。它被称为设定点指令,它是选板或右键单击上下文菜单中的选项之一,可以在“命令”下插入。

从PIDSubsystem开始

../../../../../_images/setpoint-command-1.png

假设在机器人中有一个带有电位器的腕关节,该电位器可测量角度。首先,创建一个PIDSubsystem <robotbuilder-writing-pidsubsystem-code>,其中包括用于移动腕关节的电动机和用于测量角度的电位计。 PIDSubsystem应该具有所有PID常数,并且可以正常工作。

设置 “ 公差 ” 参数是很重要的。这可以控制当前值与设定值之间的距离,并且可以将其视为目标。这是SetpointCommand用于移至下一个指令的条件。

创建设定点指令

../../../../../_images/setpoint-command-2.png

右键单击面板中的Commands文件夹,然后选择“添加设定点指令”。

设定点指令参数

../../../../../_images/setpoint-command-3.png

填写新指令的名称。 Requires字段是被驱动到设定点的PIDSubsystem,而Setpoint参数是PIDSubsystem的设定点值。无需为此指令填写任何代码,它由RobotBuilder自动创建。

每当调度此指令时,它会自动将子系统驱动到指定的设定值。当达到设定值在PIDSubsystem中指定的公差范围内时,该指令结束,下一条指令开始。在PIDSubsystem中,指定公差很重要,否则该指令可能永远不会结束,因为无法达到公差。

注解

有关PID控制的更多信息,请参阅高级控件简介<docs/software/advanced-controls/introduction/index:Advanced Controls Introduction>。