Descripción general de RobotBuilder
Advertencia
RobotBuilder is deprecated and will be removed for 2027 due to its declining usage and burden of updating for the 2027 control system.
RobotBuilder es una aplicación diseñada para ayudar al proceso de desarrollo de robots. RobotBuilder puede ayudarlo a:
Generación de código boilerplate.
Organice su robot y averigüe cuáles son sus principales subsistemas.
Compruebe que tiene suficientes canales para todos sus sensores y actuadores.
Generar diagramas de cableado.
Modifique fácilmente su interfaz de operador.
Más…
La creación de un programa con RobotBuilder es un procedimiento muy sencillo al seguir pocos pasos que son los mismos para cualquier robot. Esta lección describe los pasos que puede seguir. Puede encontrar más detalles sobre cada uno de estos pasos en las secciones siguientes del documento.
Nota
RobotBuilder genera código utilizando el nuevo marco de trabajo de comandos. Para más detalles sobre el nuevo marco de trabajo, consulte Command Based Programming.
Dividir el robot en subsistemas

Su robot se compone naturalmente de varios sistemas más pequeños como drive trains, brazos, disparadores, recolectores, manipuladores, articulaciones de muñeca, etc. Debe observar el diseño de su robot y dividirlo en subsistemas más pequeños operados por separado. En este ejemplo particular, hay un ascensor, un dispositivo de alineación de minibot, una pinza y un sistema de cámara. Además, se podría incluir la base de la unidad. Cada una de estas partes del robot se controla por separado y son buenas candidatas para subsistemas.
Para obtener más información, consulte :doc:`Creating a Subsystem<robotbuilder-creating-subsystem> `.
Agregar cada subsistema al proyecto

Cada subsistema se agregará a la carpeta «Subsystems» en RobotBuilder y se le dará un nombre significativo. Para cada uno de los subsistemas hay varios atributos que se completan para especificar más información sobre los subsistemas. Además, hay dos tipos de subsistemas que quizás desee crear:
SubsistemasPID - a menudo es deseable controlar la operación de un subsistema con un controlador PID. Este es un código en su programa que hace que el elemento del subsistema, por ejemplo el ángulo del brazo, sea más rápido hasta una posición deseada y luego se detenga al alcanzarla. Los SubsistemasPID tienen el código del controlador PID incorporado y a menudo son más convenientes que agregarlo usted mismo. Los SubsistemasPID tienen un sensor que determina cuando el dispositivo ha alcanzado la posición deseada y un actuador (controlador de motor) que es conducido al punto de ajuste.
Subsistema regular - estos subsistemas no tienen un controlador PID integrado y se utilizan para subsistemas sin control PID para retroalimentación o para subsistemas que requieren un control más complejo que el que se puede manejar con el controlador PID integrado predeterminado.
A medida que lea más de esta documentación, las diferencias entre los tipos de subsistemas se harán más evidentes.
Para obtener más información, consulte Creación de un subsistema y Escritura de código para un subsistema.
Agregar componentes a cada uno de los subsistemas

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.
En este ejemplo, hay un subsistema Elevator que utiliza un motor y un potenciómetro (motor y potenciómetro) que se han arrastrado al subsistema Elevator.
Agregar comandos que describen los objetivos del subsistema
Los comandos son distintos objetivos que el robot realizará. Estos comandos se añaden arrastrando el comando bajo la carpeta «Comandos». Al crear un comando, hay 7 opciones (mostradas en la paleta de la izquierda de la imagen):
Comandos normales - estos son los comandos más flexibles, debe escribir todo el código para realizar las acciones deseadas necesarias para lograr el objetivo.
Comandos temporizados - estos comandos son una versión simplificada de un comando que termina después de un tiempo de espera
Instant commands - these commands are a simplified version of a command that runs for one iteration and then ends
Grupos de comandos - estos comandos son una combinación de otros comandos que se ejecutan tanto en orden secuencial como en paralelo. Úselos para crear acciones más complicadas después de haber implementado una serie de comandos básicos.
Comandos de punto de ajuste - los comandos de punto de ajuste mueven un subsistema PID a un punto de ajuste fijo o la ubicación deseada.
Comandos PID - estos comandos tienen un controlador PID incorporado para ser utilizado con un subsistema regular.
Comandos temporizados - estos comandos son una versión simplificada de un comando que termina después de un tiempo de espera
Para obtener más información, consulte Creación de un comando y Escritura del código de comando.
Probar cada comando

Cada comando se puede ejecutar desde SmartDashboard. Esto es útil para probar comandos antes de agregarlos a la interfaz del operador o a un grupo de comandos. Siempre que deje marcada la propiedad «Botón en SmartDashboard», se creará un botón en SmartDashboard. Cuando presiona el botón de inicio, el comando se ejecutará y podrá verificar que realiza la acción deseada.
Al crear botones, cada comando se puede probar individualmente. Si todos los comandos funcionan individualmente, puede estar bastante seguro de que el robot funcionará como un todo.
Para obtener más información, consulte Testing with Smartdashboard.
Adición de componentes de la interfaz del operador

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.
Los componentes de la interfaz del operador se arrastran desde la paleta a la carpeta «Interfaz del operador» en el programa RobotBuilder. Primero (1) agregue Joysticks al programa, luego coloque botones debajo de los joysticks asociados (2) y asígneles nombres significativos, como ShootButton.
Conexión de los comandos a la interfaz del operador

Los comandos se pueden asociar con botones para que cuando se presione un botón, el comando esté programado. Esto debería, en su mayor parte, manejar la mayor parte de la parte teleoperada de su programa de robot.
Esto se hace simplemente (1) agregando el comando al objeto JoystickButton en el programa RobotBuilder, luego (2) estableciendo la condición en la que está programado el comando.
Para obtener más información, consulte Conexión de la interfaz del operador a un comando.
Desarrollo de comandos autónomos

Los comandos simplifican el desarrollo de programas autónomos. Simplemente especifique qué comando debe ejecutarse cuando el robot ingrese al período autónomo y se programará automáticamente. Si ha probado comandos como se mencionó anteriormente, esto debería ser simplemente una cuestión de elegir qué comando debe ejecutarse.
Seleccione el robot en la raíz del proyecto RobotBuilder (1), luego edite la propiedad Autonomous Command (2) para elegir el comando a ejecutar. ¡Es así de simple!
Para obtener más información, consulte Setting the Autonomous Commands.
Generar código

En cualquier punto del proceso descrito anteriormente, puede hacer que RobotBuilder genere un programa C++ o Java que representará el proyecto que ha creado. Esto se hace especificando la ubicación del proyecto en las propiedades del proyecto (1), luego haciendo clic en el botón apropiado de la barra de herramientas para generar el código (2).
Para obtener más información, consulte Generación del código de RobotBuilder.