Descripción general de RobotBuilder

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

../../../../../_images/robotbuilder-overview-1.png

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

../../../../../_images/robotbuilder-overview-2.png

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:

  1. 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.

  2. 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

../../../../../_images/robotbuilder-overview-3.png

Cada subsistema consta de una serie de actuadores, sensores y controladores que utiliza para realizar sus operaciones. Estos sensores y actuadores se agregan al subsistema con el que están asociados. Cada uno de los sensores y actuadores proviene de la paleta RobotBuilder y se arrastra al subsistema apropiado. Para cada uno, generalmente hay otras propiedades que se deben configurar, como números de puerto y otros parámetros específicos del componente.

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

  • Comandos instantáneos - estos comandos son una versión simplificada de un comando que se ejecuta durante una iteración y luego termina

  • 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

../../../../../_images/robotbuilder-overview-4.png

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

../../../../../_images/robotbuilder-overview-5.png

La interfaz del operador consta de joysticks, gamepads y otros dispositivos de entrada HID. Puede agregar componentes de interfaz de operador (joysticks, botones de joystick) a su programa en RobotBuilder. Generará automáticamente un código que inicializará todos los componentes y permitirá que se conecten a los comandos.

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

../../../../../_images/robotbuilder-overview-6.png

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

../../../../../_images/robotbuilder-overview-7.png

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

../../../../../_images/robotbuilder-overview-8.png

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.