Ruta de construcciónAvanzadoDos o tres fines de semana

Construcción de un rover autónomo por waypoints GPS

Un rover autónomo que recorre waypoints GPS en campo abierto con desvío inferior a un metro y parada automática de seguridad mediante geovalla.

Esquema técnico de Construcción de un rover autónomo por waypoints GPSLOOKAHEADGOAL POINTCOMMANDED PATH

Qué va a construir

Un robot al que le das una lista de coordenadas, lo pones en la hierba y te vas.

Todos los demás robots móviles de este sitio reaccionan a lo que tienen justo delante: una línea, una pared, un obstáculo, un borde. Este ejecuta un plan, en un mundo sin puntos de referencia, usando un sensor que le miente unas cuantas veces por minuto. Esa combinación es lo que lo convierte en la construcción móvil más difícil de aquí y en la que más enseña.

Las tres cosas que lo deciden

El seguidor es la parte fácil. Pure pursuit son doce líneas y un potenciómetro. Con una estimación de posición perfecta mantiene 0.09 m de error RMS en el recorrido del laboratorio.

La estimación de posición es todo el proyecto. El mismo controlador, con un fix de GPS a 1 Hz con ruido a escala de metro, mantiene 1.25 m — catorce veces peor — y gasta cuatro veces y media más de dirección en conseguirlo. El controlador aporta menos de una décima parte del error final.

Así que el orden de construcción es: seguidor en interiores, estimación en exteriores. Demuestra la dirección allí donde la posición es casi exacta, y después ve a pelearte con el sensor. Hacer ambas cosas a la vez produce un robot que deambula por razones que no puedes separar.

Lista de materiales

Componente Cant. Coste aprox. Notas
Arduino Uno o Mega 1 $5–12 Un Mega compensa: cuatro pines de interrupción para decodificación de encoder ×4 completa, más UART de sobra
Módulo GPS (NEO-6M) 1 $8–12 Un NEO-M8N es la mejor mejora de esta lista — multiconstelación y mejor geometría
MPU-6050 1 $2 Rumbo entre fixes. Sin él el rover no puede saber hacia dónde mira
Motores N20 con encoder 2 $16 Los encoders no son opcionales en esta construcción
TB6612FNG 1 $3
Chasis 2WD 1 $10–20 Las ruedas grandes ayudan fuera; la hierba no perdona a una rueda de 65 mm
Pack de baterías 1 $10 2×18650 protegidas, o 3S con regulador
Soporte alto para antena 1 $2 La antena de parche necesita cielo, no una línea de visión: metal por encima le cuesta satélites

Total: unos $55–80.

La pieza que más cambia el proyecto es el receptor. Un NEO-6M funciona y es lo que asumen casi todos los tutoriales; un NEO-M8N ve GPS más GLONASS y Galileo, lo que mejora la geometría de satélites y por tanto el HDOP. Cerca de edificios y árboles — donde un rover realmente se mueve — eso es una mejora real mayor de lo que sugiere la especificación de precisión.

No te saltes los encoders para ahorrar $12. Todo este proyecto es navegación por estima corregida por fixes ocasionales; sin encoders no hay nada con lo que hacer la estima, y el rover simplemente persigue el ruido del GPS.

Orden de construcción

1 — Ajusta el seguidor en el simulador. Una hora en el laboratorio de seguimiento de trayectorias a la velocidad que piensas conducir. Encuentra el lookahead donde la curva de error toca su mínimo; anota que se mueve cuando cambias la velocidad.

2 — Monta la tracción y pon la odometría a funcionar. Encoders dentro de la odometría de tracción diferencial, y luego recorre un cuadrado de 2 m para ver a qué distancia del origen terminas. Ese número es tu presupuesto de interiores.

3 — Fusiona un rumbo. Un giróscopo a la frecuencia del bucle, corregido por algo absoluto. El error de rumbo es el término que más pesa en ambos controladores, y es lo primero que la odometría pierde: el filtro complementario que estabiliza un robot de equilibrio hace aquí el mismo trabajo.

4 — Sigue un recorrido pegado con cinta en interiores. Sin GPS. Pega un camino en el suelo, ejecuta pure pursuit sobre la estimación por encoder y mide el error transversal con una regla en diez puntos. Si en interiores no baja de 10 cm, fuera no bajará de un metro.

5 — Añade el receptor y no lo conectes todavía al controlador. Registra fixes durante diez minutos con el rover quieto y haz una gráfica. Verás el ruido, la desviación ocasional, y cómo el HDOP sigue a las dos cosas. Esa gráfica vale más que cualquier cifra de un datasheet.

6 — Fusiona, no sigas. Haz la estima a la frecuencia del bucle; tira de la estimación suavemente hacia cada fix bueno. La aritmética y el filtrado están aquí. Rechaza cualquier cosa con estado void o HDOP por encima de unos 2.5.

7 — Geovalla y luego sal. Distancia máxima desde el origen, tiempo máximo de misión, corte físico. Después una misión corta, sobre hierba, con tú caminando al lado.

Notas de hardware que importan

Monta la antena arriba, mirando al cielo, lejos de todo. Una antena de parche cerámica bajo la chapa del chasis pierde satélites, y perder satélites es mala geometría en vez de ausencia de fix: una respuesta segura equivocada en lugar de un fallo evidente.

Ruedas más grandes de lo que te pide tu instinto de interiores. La hierba, la grava y el borde del césped son problemas de diámetro de rueda. También cambian tu factor de escala de odometría, así que recalibra sobre la superficie por la que vas a conducir de verdad.

Mantén el magnetómetro lejos de los motores, o déjalo. La corriente de motor produce un campo que aplasta el de la Tierra. Si no consigues 15 cm de separación, usa giróscopo más rumbo sobre el suelo y esquiva el problema.

Registra la misión. Un fallo en exteriores que no grabaste es un fallo que no puedes depurar: el robot estaba a 40 m y tú no mirabas el puerto serie. Una tarjeta SD o un log por Wi-Fi de pose, fix, HDOP y error transversal convierte cada salida en evidencia.

Espera que la primera salida al exterior termine antes de tiempo. Para eso está la geovalla, y es un éxito.

Qué significa hacerlo bien

Medida Siguiendo GPS crudo Fusionado con odometría
Error transversal, RMS 3–5 m 0.3–0.6 m
Error transversal, peor caso 8–12 m 1.0–1.5 m
Actividad de dirección Constante, correcciones grandes Suave, ocasional
Tolerancia de llegada a waypoint 5 m, y eso ya es optimista 0.5–1 m
Deriva de posición estática, quieto Nube de 2–4 m N/D — la odometría lo mantiene fijo

Esa primera columna no es un rover mal construido: es lo que le hace a un controlador que confía en él un fix de GPS de 2.5 m CEP a 1 Hz. La mejora de orden de magnitud de la segunda columna viene del estimador, no del controlador — el mismo código de pure pursuit, alimentado con una pose fusionada.

Antes de escribir una sola línea de navegación, haz esto una vez: deja el receptor quieto en exteriores durante diez minutos y registra cada fix. La nube que obtienes tiene varios metros de lado, y no se movía nada. Esa gráfica es lo más útil que vas a mirar en todo el proyecto, porque explica por qué seguir fixes crudos no puede funcionar y por qué el fix está aguas arriba del controlador.

Cuando va mal

Síntoma Causa habitual
Serpentea en línea recta fuera, bien dentro Está siguiendo fixes crudos en vez de fusionarlos
Serpentea también dentro Lookahead demasiado corto para el retardo; reajústalo en el laboratorio
Redondea todas las esquinas Lookahead demasiado largo: es el intercambio, no un fallo
Posición segura pero desviada decenas de metros Mala geometría de satélites; no filtraste por HDOP
Se mueve en dirección contraria desde parado Sin rumbo utilizable; el rumbo sobre el suelo es ruido por debajo de ~1 m/s
Deriva de forma constante hacia un lado Factor de escala de odometría o ancho de vía mal para esta superficie
No pasa nada los dos primeros minutos Arranque en frío del GPS. Muéstralo, no des por hecho el origen
Se salió del campo La geovalla no estaba escrita antes de la prueba

Seis de esas ocho son de percepción y no de control: la misma distribución que en el micromouse y el robot de cobertura, y por la misma razón: el algoritmo es la parte pequeña.

Para ver la secuencia completa en orden, sigue la ruta de seguimiento de trayectorias; para la versión en interiores del mismo problema, al robot de cobertura no le hace falta ni plan ni posición absoluta.

Hoja de ruta del proyecto

La ruta de construcción

Sigue el árbol tecnológico desde las piezas hasta un robot que funciona. Cada nodo se desbloquea cuando completas sus requisitos previos, y tu progreso se guarda en este dispositivo.

0 / 20 completados

100%
Componente

Selección de la placa de control

Componente

Ver componente
Componente

Controlador de potencia para motores

Componente

Ver componente
Componente

Sensor inercial para orientación angular

Componente

Ver componente
Componente

Motorreductores con encoders magnéticos

Componente

Ver componente
Componente

Batería y suministro eléctrico

Componente

Ver componente
Componente

Chasis robusto para exteriores

Componente

Ver componente
Tutorial

Balance energético y caídas de tensión

30 min

Abrir tutorial
Tutorial

Conversión de pulsos en postura cartesiana

15 min

Abrir tutorial
Tutorial

Comprender la pérdida de tracción en el terreno

30 min

Abrir tutorial
Ruta de aprendizaje

Ruta de seguimiento de trayectorias

Ruta de aprendizaje

Abrir ruta
Tutorial

Algoritmo de seguimiento Pure Pursuit

30 min

Abrir tutorial
Simulador

Sintonización interactiva en el simulador

Interactivo

Abrir simulador
Tutorial

Evaluación objetiva del error transversal

25 min

Abrir tutorial
Montaje

Validación del guiado en interiores

Montaje

Tutorial

Fusión sensorial frente a guiado directo

30 min

Abrir tutorial
Montaje

Geovallado de seguridad antes del ensayo

Montaje

Objetivo

Misión autónoma por waypoints completada

Meta

Componentes

Tutoriales de esta ruta

Practica antes de cablear

Ajústalo en el simulador en vivo

La ruta de construcción pasa por un laboratorio en el navegador. Consigue aquí el comportamiento correcto y luego traslada tus ajustes al robot real.

Preguntas frecuentes

¿Por qué validar el seguidor en interiores antes de conectar el GPS?

Porque si se ensayan ambos simultáneamente y el vehículo zigzaguea, es imposible discernir si el fallo radica en el lazo cinemático o en el ruido del sensor. En interiores sobre suelo liso con encoders, la estimación posicional tiene precisión centimétrica sobre una pista marcada, de modo que cualquier oscilación proviene exclusivamente de las ganancias del controlador. Una vez calibrada la distancia de mira con regla métrica, se incorpora el receptor GPS sabiendo que la cinemática es correcta.

¿Qué precisión real de seguimiento puede esperarse de un rover GPS educativo?

Aproximadamente un metro de error transversal RMS en condiciones atmosféricas despejadas, límite impuesto por el receptor GPS comercial y no por el código de control. En simulador con postura perfecta el algoritmo Pure Pursuit logra 0.09 m de error RMS, mientras que una muestra de GPS a 1 Hz con ruido típico arroja 1.25 m. Mejorar esta cota exige receptores multifrecuencia multiconstelación y corrección diferencial RTK, no reajustar ganancias.

¿Se necesita un magnetómetro además del giróscopo?

Se requiere una referencia angular absoluta. Un magnetómetro la proporciona en reposo pero exige calibración de hierro duro y blando y sufre interferencias severas junto a los motores. El rumbo por curso sobre el terreno (course-over-ground) del GPS es exacto pero solo tiene validez con el robot en marcha a más de 1 m/s. La estrategia adoptada consiste en emplear el giróscopo para el lazo rápido de control, corrigiendo su deriva lenta con el rumbo del GPS en cuanto el vehículo adquiere velocidad.

¿A qué velocidad lineal conviene desplazar el rover?

A una velocidad moderada, significativamente inferior al máximo de los motores. El error transversal mínimo alcanzable se incrementa con la velocidad lineal independientemente de la sintonización: en laboratorio un error de 0.05 m a 1 m/s pasa a 0.23 m a 3 m/s con estimación perfecta. En exteriores el ruido de satélites predomina; comience fijando una consigna suave de 0.5 m/s.

¿Cómo se evita que el robot escape hacia una vía pública o agua?

Mediante una geovalla (geofence) por software programada antes de salir al campo: un radio máximo estricto respecto al punto de partida verificado en cada iteración del bucle, el cual corta la excitación de los motores inmediatamente si se rebasa. Añada un tiempo máximo de misión y un pulsador físico de parada de emergencia en el chasis.

¿Es aconsejable emplear una placa ESP32 en lugar de un Arduino Uno?

Sí, es sumamente ventajoso. La ESP32 aporta puertos serie UART adicionales por hardware para el receptor GPS (eliminando SoftwareSerial), amplia memoria RAM para almacenar secuencias extensas de waypoints, coprocesador de coma flotante y conectividad Wi-Fi para transmitir telemetría en tiempo real hacia un ordenador portátil.