Descripción de Tutorial de Trayectoria

Nota

Antes de seguir este tutorial, es útil (pero no necesario) estar familiarizado con las características de WPILib PID control, feedforward, y trajectory

Nota

El código del robot en este tutorial usa el marco de trabajo command-based. El espacio de trabajo basado en comandos es altamente recomendado para equipos principiantes.

El objetivo de este tutorial es proporcionar instrucciones de «principio a fin» para implementar una rutina autónoma de seguimiento de la trayectoria para un robot diferencial. Al seguir este tutorial, los lectores aprenderán cómo:

  1. Caracterizar con precisión la cadena de tracción de su robot para obtener cálculos precisos de avance y ganancias aproximadas de retroalimentación.

  2. Configure un subsistema de unidad para rastrear la pose del robot utilizando la biblioteca de odometría de WPILib.

  3. Generar una trayectoria simple a través de un conjunto de waypoints usando la clase TrajectoryGenerator de WPILib.

  4. Seguir la trayectoria generada en una rutina autónoma usando la clase RamseteCommand de WPILib con las ganancias calculadas de feedforward/feedback.

Este tutorial está hecho para que sea accesible para equipos que no tengan tanta experiencia en programación. Mientras que la librería de WPILib ofrece una flexibilidad significativa en la forma en la que se implementan sus características de seguimiento de trayectoria, seguir la implementación de este tutorial debería proporcionar a los equipos una solución relativamente simple, limpia y repetible para el movimiento autónomo.

El código de robot completo para este tutorial se puede encontrar en el RamseteCommand Example Project (Java, C++).

¿Por qué seguir la trayectoria?

Los juegos en FRC® a menudo presentan tareas autónomas que requieren que un robot se mueva de manera efectiva y precisa desde un lugar de inicio conocido a un lugar de puntuación conocido. Históricamente, la solución más común para este tipo de tareas en FRC ha sido un enfoque «drive-turn-drive», es decir, conducir hacia adelante por una distancia conocida, girar por un ángulo conocido y conducir hacia adelante por otra distancia conocida.

Aunque el enfoque «conducir-girar-impulsar» es ciertamente funcional, en los últimos años los equipos han comenzado a rastrear trayectorias que requieren que el robot conduzca y gire al mismo tiempo. Aunque se trata de una tarea técnica fundamentalmente más complicada, ofrece importantes beneficios: en particular, dado que el robot ya no tiene que detenerse para cambiar de dirección, las trayectorias pueden ser recorridas mucho más rápido, lo que permite al robot anotar más piezas de juego durante el período autónomo.

Desde 2020, WPILib suministra ahora a los equipos soluciones de código de trabajo avanzadas para la generación de trayectorias y el seguimiento, educiendo significativamente la «barrier-to-entry» para este tipo de movimiento autónomo avanzado y efectivo.

Equipo Requerido

Para seguir este tutorial, necesitarás acceso a los siguientes materiales:

  1. A differential-drive robot (such as the AndyMark AM14U5), equipped with:

  • Codificadores de cuadratura para medir la rotación de la rueda de cada lado de la unidad.

  • Un giroscopio para medir la dirección del robot.

  1. Una computadora driver-station configurada con: