Seguimiento de trayectorias en robótica: ruta guiada
Podrá suministrar una lista de puntos de paso (waypoints) al robot, guiarlo con rigor cinemático y cuantificar en metros su desviación transversal real.
Planificar y seguir son problemas distintos, y casi todo el material de robótica enseña solo el primero. A* le da una ruta; nada en él le dice a las ruedas qué hacer. Esta ruta es ese peldaño que falta: todo lo que hay entre una lista de waypoints y un robot que realmente los recorre.
Recorra los nodos en orden. Cada uno es algo que el siguiente da por supuesto, y saltarse cualquiera de ellos produce un robot que deambula por una razón que usted no puede aislar.
Antes de empezar
Necesita un robot de tracción diferencial que ya sepa mandar: dos motores, un driver y un bucle que se ejecute a un ritmo constante. La ruta de control de motores cubre todo eso y esta la espera primero. No se requiere teoría de control; pure pursuit es geometría, no un PID.
Lo que podrá hacer
- Convertir las cuentas de los encoders de rueda en una postura, y decir cuánto deriva esa postura por metro avanzado en su propio suelo.
- Fusionar un giróscopo con una referencia absoluta en un rumbo que no se vaya alejando a lo largo de una misión.
- Implementar pure pursuit a partir de la fórmula de curvatura, en unas doce líneas, y explicar cada una de ellas.
- Elegir la distancia de mira a partir del retardo de control medido en su robot en vez de por prueba y error, y programarla en función de la velocidad.
- Medir el error transversal contra la verdad de campo e informar de RMS, del peor caso y de dónde a lo largo de la ruta vive ese error.
- Decir por qué el mismo controlador es catorce veces peor sobre una posición GPS en bruto, y arreglarlo sin tocar el controlador.
Dónde se atasca la gente
Ajustar el controlador cuando el problema es la estimación. Si el robot cree que está sobre la ruta, informa de error cero y gira con confianza hacia un seto. Mida contra algo externo antes de tocar una ganancia: una cinta métrica sirve.
Creerse una simulación sin retardo. Un pure pursuit perfectamente cinemático mejora al acortar la distancia de mira, así que un modelo sin retardo recomienda precisamente el ajuste que oscila en el hardware real. Ponga una constante de tiempo de dirección y un retardo de sensado en cualquier modelo contra el que ajuste.
Una búsqueda global del punto más próximo. Es la implementación obvia, y falla en silencio en cualquier ruta que se doble sobre sí misma, emparejándose con un tramo por el que el robot pasó hace un minuto. Lleve la longitud de arco, busque en una ventana a su alrededor, y nunca deje que el progreso retroceda.
Resolver un empate de vértice a favor del segmento entrante. Pasada una esquina, los dos segmentos adyacentes se proyectan al mismo punto a la misma distancia. Si se queda con el equivocado, un controlador que gira sobre el rumbo y el error lateral ve aproximadamente cero de ambos mientras se va recto fuera del recorrido. Es el error más silencioso de esta página.
Constrúyalo como el rover por waypoints GPS, que sigue esta secuencia exactamente: primero en interiores con encoders, después en exteriores con una posición fusionada.
Qué necesita
| Qué | Por qué lo necesita esta ruta | Notas |
|---|---|---|
| Encoders en ambas ruedas | La estimación de postura que consume todo lo demás | Aquí no son opcionales: esta ruta va de saber dónde está |
| Un giróscopo o IMU | Las ruedas no pueden medir una rotación por la que han patinado | Un MPU-6050 basta |
| Un bucle estable | Tanto el estimador como el controlador integran en el tiempo | Intervalo fijo, o pase el tiempo real transcurrido |
| Algo contra lo que medir | No se puede ajustar el seguimiento sin verdad de campo | Una línea de tiza y una cinta métrica superan a cualquier cantidad de telemetría |
| Un módulo GPS (solo la mitad de exteriores) | Los dos últimos nodos | En interiores no arregla nada en absoluto |
Por qué la ruta sigue este orden
Esta ruta es inusual en que los primeros cinco nodos no tratan de dirigir en absoluto. Construyen la estimación de postura, porque un controlador de ruta que actúa sobre una postura equivocada falla de una forma que parece exactamente un controlador mal ajustado: el robot informa de error cero mientras se meta en un seto. Acertar primero la estimación significa que cuando por fin ajuste una ganancia podrá creerse lo que mida.
Encoders, después odometría, después patinazo, en ese orden. Cada uno corrige el optimismo del anterior. Los encoders le dicen que la rueda giró; la odometría convierte dos movimientos de rueda en una postura; el patinazo le dice cuánta parte de esa postura es ficción, y en concreto que el error sistemático crece linealmente con la distancia mientras que el error aleatorio solo crece con su raíz cuadrada.
La IMU se une antes que el controlador porque el rumbo es la parte de la postura que más le importa a un seguidor de ruta y la parte que peor calculan las ruedas. Un giro sobre el sitio arrastra ambos neumáticos casi por definición, así que la maniobra que más cambia el rumbo es la que peor mide la odometría. Un filtro complementario fusiona la buena velocidad a corto plazo del giróscopo con la buena media a largo plazo de una referencia absoluta, y el resultado es un rumbo que no se va alejando.
Los perfiles de movimiento van antes que pure pursuit porque un seguidor de ruta manda velocidad de forma continua, y una orden de velocidad que da un escalón produce un robot que se sacude y patinaza, reintroduciendo justo el error de odometría que usted lleva tres nodos controlando.
Pure pursuit, después el laboratorio, después el error transversal. El controlador son unas doce líneas y su geometría es fácil; lo difícil es elegir la distancia de mira y saber si el resultado es bueno. El laboratorio existe para que pueda ver cómo ocurre el compromiso de la distancia de mira, y el nodo de error transversal existe para que «conduce bien» se convierta en un número con RMS y peor caso.
El GPS al final, y solo al final. No cambia nada del controlador y todo de la estimación. Hacerlo al final significa que cuando el seguimiento se degrade catorce veces usted ya sabe con total seguridad que el controlador no es el motivo.
Puntos de control: cómo saber que una etapa caló
| Etapa | La comprobación | Qué es un aprobado |
|---|---|---|
| Encoders | Empujar el robot 2 m con la mano a lo largo de una línea de tiza | Las cuentas convertidas dan 2000 mm con un margen del 2 %, en ambas ruedas |
| Odometría | Recorrer un cuadrado de 1 m y volver al punto de partida | La postura informada cierra con unos pocos centímetros de error, y puede decir el error por metro |
| Patinazo | Hacer un giro sobre el sitio y comparar el rumbo del giróscopo con el de la odometría | Difieren, y puede decir en cuánto: esa diferencia es el arrastre |
| Fusión con la IMU | Girar el robot 360° despacio y después dejarlo quieto dos minutos | El rumbo vuelve a su punto de partida, y no deriva mientras está quieto |
| Perfiles de movimiento | Mandar un cambio de velocidad en escalón y después con perfil | El movimiento con perfil no chirría los neumáticos; el que da el escalón sí |
| Pure pursuit | Seguir una línea recta con un arranque desplazado 0.5 m | Converge sin sobreimpulso, y puede nombrar su distancia de mira en metros |
| Ajuste de la distancia de mira | Reducir a la mitad la distancia de mira a propósito | Oscila: ahora conoce el modo de fallo, y por qué un simulador sin retardo lo esconde |
| Error transversal | Recorrer un ocho y registrar el error contra la verdad de campo | Puede informar del RMS y del peor error, y decir dónde a lo largo de la ruta vive el peor |
| GPS | Registrar una posición estática durante diez minutos sin moverse | Puede ver la deriva, en metros, que su controlador seguiría de otro modo |
Dónde termina esta ruta
Esta ruta toma una ruta dada y la recorre. No produce la ruta: eso es la planificación de rutas y el mapeo, y juntas forman la pila de navegación completa.
También se queda corta de tres cosas. La evasión de obstáculos mientras se sigue una ruta, es decir, reaccionar a algo que aparece en una ruta con la que ya se ha comprometido, necesita un planificador local corriendo por debajo del seguidor, y ese es un problema genuinamente más difícil que cualquiera de las dos mitades por separado. La dirección Ackermann y omnidireccional cambia la geometría: a pure pursuit se le adapta bien un robot tipo coche, pero el paso de curvatura a velocidad de rueda de aquí es específicamente tracción diferencial; para una base que puede desplazarse lateralmente, empiece por tracción holonómica, y tenga en cuenta que un robot holonómico puede hacer estrictamente mejor que cualquiera de los dos controladores de aquí, porque puede corregir posición sin gastar rumbo. Y el GPS RTK, que lleva la posición de exteriores de metros a centímetros, es lo que hace que el seguimiento de rutas en exteriores sea realmente preciso: conviene saber que existe antes de concluir que la navegación en exteriores simplemente es inexacta.
Ruta de aprendizaje
La ruta
Sigue los nodos en orden: cada uno desbloquea el siguiente cuando lo completas. Tu progreso se guarda en este dispositivo.
0 / 11 completados
Preguntas comunes
Preguntas frecuentes
¿Cuál es la diferencia entre planificación y seguimiento de caminos?
La planificación genera una ruta geométrica admisible; el seguimiento gobierna los actuadores para recorrerla. Un planificador como A* devuelve una lista ordenada de waypoints sin considerar dinámica, aceleraciones ni desviaciones reales. El seguimiento resuelve esa mitad práctica: conocida la postura estimada y la geometría del camino, calcula las velocidades angulares óptimas instantáneas de cada rueda.
¿Cómo se calcula la distancia de mira (lookahead) en pure pursuit?
A partir del retardo de respuesta dinámico del robot, nunca por ensayo y error. La distancia de mira debe ser suficientemente amplia para que el chasis alcance la trayectoria dado su tiempo de respuesta en guiñada: un lookahead demasiado corto induce oscilaciones violentas, mientras que uno excesivo recorta las curvas. Multiplique el retardo medido de giro por la velocidad de avance y programe una ganancia escalada con la velocidad.
¿Por qué el algoritmo funciona en simulación pero oscila en el robot físico?
Porque casi con total seguridad la simulación asume dinámica ideal sin retardos. En un modelo puramente cinemático sin latencia, el error decae monótonamente al acortar el lookahead, recomendando valores minúsculos que en hardware físico provocan inestabilidad inmediata. Todo entorno de pruebas debe incorporar la constante de tiempo de dirección y la latencia sensorial.
¿Pure Pursuit o controlador Stanley: cuál conviene implementar?
Pure pursuit es preferible para robots diferenciales y caminos suaves por su estabilidad intrínseca, a costa de cortar esquinas cerradas. El controlador Stanley evalúa conjuntamente el error de orientación y el error transversal en el eje delantero, logrando un ceñimiento más riguroso pero con menor tolerancia al ruido de pose. En plataformas móviles estándar de interior, pure pursuit es la opción predilecta.
¿Por qué el seguimiento empeora drásticamente en exteriores con GPS?
Porque el controlador opera correctamente pero la estimación de postura es errática. Un GPS comercial tiene una incertidumbre de varios metros y tasa de 1 a 10 Hz, mientras que la odometría ofrece resolución centimétrica a alta frecuencia. Si el controlador persigue saltos de 2 metros en cada muestra, zigzagueará erráticamente. La solución radica en fusionar el GPS con odometría y giróscopo para suavizar la trayectoria observada.
¿Por qué el robot pierde el rumbo justo al superar un vértice o esquina?
Por la ambigüedad geométrica en vértices. Justo al sobrepasar una esquina, ambos segmentos contiguos proyectan a la misma distancia euclidiana; una búsqueda ingenua del punto más cercano puede emparejar con el tramo ya superado. Al hacerlo, el controlador cree encontrarse perfectamente alineado mientras se aleja del trayecto. Debe parametrizarse la longitud de arco y restringir la búsqueda hacia adelante.