RobotBuilder 概述
警告
RobotBuilder is deprecated and will be removed for 2027 due to its declining usage and burden of updating for the 2027 control system.
RobotBuilder 是旨在帮助机器人开发过程的应用程序。 RobotBuilder 可以帮助您:
生成样板代码。
组织你的机器人并找出它的关键子系统是什么。
检查您的所有传感器和执行器是否有足够的通道。
生成接线图。
轻松修改您的操作员界面。
更多
通过遵循对于任何机器人都相同的几个步骤,使用RobotBuilder创建程序是非常简单的过程。本课描述了您可以执行的步骤。您可以在本文档的后续部分中找到有关每个步骤的更多详细信息。
备注
RobotBuilder 使用新的指令框架生成代码。有关新框架的更多详细信息,请参阅:ref:基于指令的编程 <docs/software/commandbased/index:Command-Based Programming>。
将机器人划分为不同的子系统

您的机器人是由许多较小的系统组成的,例如动力传动系统,手臂,射手,收集器,机械手,腕关节等。您应该研究一下机器人的设计并将其分解成较小的,可单独操作的子系统。在这个特定的例子中,有一个升降舵,一个小型机器人对准装置,一个抓具和一个摄像系统。另外,可能包括驱动器基座。机器人的这些部分中的每一个都受到单独控制。
有关更多信息,请参阅创建子系统<robotbuilder-creating-subsystem>。
将每个子系统添加到项目

每个子系统将被添加到RobotBuilder的“ Subsystems”文件夹中,并赋予一个有意义的名称。对于每个子系统,都有几个属性被填充以指定有关子系统的更多信息。另外,您可能要创建两种类型的子系统:
PIDSubsystems-通常希望使用PID控制器控制子系统的运行。这是程序中的代码,可使子系统,例如手臂角度,更快地到达所需位置,然后在到达所需位置时停止。 PIDSubsystems内置了PID控制器代码,通常比自己添加起来更方便。 PIDSubsystems具有确定设备何时到达目标位置的传感器和驱动至设定点的执行器(电动机控制器)。
常规子系统-这些子系统没有集成的PID控制器,用于没有PID控制的子系统来进行反馈,或者用于需要比默认嵌入式PID控制器更复杂的控制的子系统。
当您仔细阅读本文档的更多内容时,不同类型的子系统之间的差异将变得更加明显。
有关更多信息,请参见创建子系统<robotbuilder-creating-subsystem>和创建子系统<docs/software/wpilib-tools/robotbuilder/writing-code/robotbuilder-writing-subsystem-code:Writing the Code for a Subsystem>的代码。
向每个子系统添加组件

Each subsystem consists of a number of actuators, sensors, and controllers that it uses to perform its operations. These sensors and actuators are added to the subsystem with which they are associated. Each of the sensors and actuators comes from the RobotBuilder palette and is dragged to the appropriate subsystem. For each, there are usually other properties that must be set such as port numbers and other parameters specific to the component.
在此示例中,有一个升降舵系统,该子系统使用已拖动到电梯子系统的电动机和电位计(电动机和电位计)。
添加描述子系统目标的命令
指令是机器人将执行的不同目标。这些指令是通过拖动“命令”文件夹下的指令来添加的。创建指令时,有7种选择(如图左侧的调色板所示):
普通指令-这是最灵活的指令,您必须编写所有代码才能执行实现目标所需的所需动作。
定时指令 - 这些指令是在超时后结束的指令的简化版本
Instant commands - these commands are a simplified version of a command that runs for one iteration and then ends
指令组-这些指令是按顺序和并行运行的其他命令的组合。在您实现了许多基本指令之后,可以使用这些指令建立更复杂的操作。
设定设定值值指令-指令将PID子系统移动到固定的设定值或所需的位置。
PID 指令- 这些指令有一个内置的 PID 控制器,可与常规子系统一起使用。
条件指令 - 这些指令选择在初始化时运行的两个指令之一。
有关更多信息,请参见创建指令<robotbuilder-creating-command>和编写指令代码<docs/software/wpilib-tools/robotbuilder/writing-code/robotbuilder-writing-command-code:Writing the Code for a Command>。
测试每个命令

每个指令都可以从 Shuffleboard 或 SmartDashboard 运行。这对于在将指令添加到操作员界面或指令组之前测试命令非常有用。只要您选中“SmartDashboard 上的按钮”属性,就会在 SmartDashboard 上创建一个按钮。当您按下按钮时,该指令将运行,您可以检查它是否执行了所需的操作。
通过创建按钮,可以分别测试每个指令。如果所有指令可以单独运行,则可以确定机器人将可以整体运行。
有关更多信息,请参阅:doc:使用 Smartdashboard 进行测试。
添加操作界面组件

The operator interface consists of joysticks, gamepads, and other HID input devices. You can add operator interface components (joysticks, joystick buttons) to your program in RobotBuilder. It will automatically generate code that will initialize all of the components and allow them to be connected to commands.
将操作界面组件从面板拖到RobotBuilder程序中的“ Operator Interface”文件夹中。首先(1)将操纵杆添加到程序中,然后将按钮放在关联的操纵杆下方(2),并给它们起有意义的名称,例如ShootButton。
将指令连接到操作界面

可以将指令与按钮关联,以便在按下按钮时执行指令。在大多数情况下,此方法可以处理机器人程序的大部分远程操作部分。
只需通过(1)将指令添加到RobotBuilder程序中的JoystickButton对象,然后(2)设置运行指令的条件,即可完成此操作。
有关更多信息,请参见将操作界面连接到指令<robotbuilder-operator-interface-to-command>`。
开发自动命令

不同的指令使开发自动程序变得简单。您只需指定当机器人进入自动阶段应运行的指令,它将自动进行调度。如果您如上所述测试了指令,则只需选择要运行的指令即可。
选择 RobotBuilder 项目 (1) 根目录下的机器人,然后编辑自动阶段指令 属性 (2) 以选择要运行的指令。就是这么简单!
有关更多信息,请参阅:doc:设置自动阶段指令。
生成代码

在上述过程中的任何时候,您都可以让 RobotBuilder 生成一个 C++ 或 Java 程序来代表您创建的项目。这是通过在项目属性 (1) 中指定项目的位置,然后单击相应的工具栏按钮生成代码 (2) 来完成的。
有关更多信息,请参阅: Generating RobotBuilder Code “<docs/software/wpilib-tools/robotbuilder/writing-code/robotbuilder-generating-code:Generating Code for a Project>”