Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

Controlador de Pure Pursuit

Pure Pursuit es un algoritmo de seguimiento de rutas. Calcula el comando de velocidad angular que desplaza al robot desde su posición actual para alcanzar un punto look-ahead situado delante de él. La velocidad lineal se asume constante, por lo que puede modificar la velocidad lineal del robot en cualquier momento. Luego, el algoritmo desplaza el punto look-ahead por la ruta en función de la posición actual del robot hasta el último punto de la ruta. Es como si el robot estuviera persiguiendo un punto que tiene delante. La propiedad LookAheadDistance decide a qué distancia se coloca el punto de anticipación.

El objeto controllerPurePursuit no es un controlador tradicional, pero actúa como un algoritmo de seguimiento para seguir rutas. El controlador es único para una lista de waypoints especificada. Puede especificar la velocidad lineal y la velocidad angular máximas que desee. Estas propiedades se determinan en función de las especificaciones del vehículo. Dada la pose (posición y orientación) del vehículo como entrada, el objeto se puede usar para calcular los comandos de las velocidades lineales y angulares del robot. La forma en que el robot utiliza estos comandos depende del sistema que use, de modo que considere cómo los robots pueden ejecutar un movimiento con estos comandos. La última propiedad importante es LookAheadDistance, que le dice al robot hasta qué punto debe seguir la ruta. Esta propiedad se explica con más detalle en una de las secciones que aparecen luego.

Sistema de coordenadas de referencia

Es importante comprender el marco de coordinadas de referencia que el algoritmo Pure Pursuit usa para las entradas y las salidas. La siguiente figura muestra el sistema de coordenadas de referencia. Los puntos de referencia de entrada son coordenadas [x y] , que se utilizan para calcular los comandos de velocidad del robot. La pose del robot se compone de una posición xy y un ángulo de la forma [x y theta]. Las direcciones positivas x y y están en las direcciones derecha y arriba respectivamente (azul en la figura). El valor theta es la orientación angular del robot medida en el sentido contrario a las agujas del reloj en radianes desde el eje x(el robot actualmente está en 0 radianes) .

Distancia look-ahead

La propiedad LookAheadDistance es la propiedad de ajuste principal para el controlador. La distancia look-ahead es la distancia a la que el robot debería mirar desde su ubicación actual para calcular los comandos de velocidad angular. La siguiente figura muestra el robot y el punto look-ahead. Como muestra esta imagen, tenga en cuenta que la ruta real no coincide con la línea directa entre los waypoints.

La modificación de este parámetro puede afectar a la forma en que el robot sigue la ruta. Hay dos objetivos principales: recuperar la ruta y mantener la ruta. Para recuperar rápidamente el camino entre los puntos de referencia, un pequeño LookAheadDistance hará que su robot se mueva rápidamente hacia el camino. Sin embargo, como muestra la siguiente figura, el robot rebasa la ruta y oscila a lo largo de la ruta deseada. Para reducir las oscilaciones a lo largo de la ruta, establezca una distancia look-ahead mayor. Sin embargo, esto podría provocar curvaturas mayores cerca de las esquinas.

La propiedad LookAheadDistance debe ajustarse para su aplicación y sistema de robot. Esta respuesta también dependerá de la velocidad lineal y la angular. Considere estas velocidades para el controlador de seguimiento de rutas.

Limitaciones

Existen algunas limitaciones que debe tener en cuenta respecto al algoritmo Pure Pursuit:

  • Como se ha indicado anteriormente, el controlador no puede seguir las rutas directas entre waypoints con exactitud. Los parámetros deben ajustarse para optimizar el rendimiento y converger con la ruta a lo largo del tiempo.

  • El algoritmo Pure Pursuit no estabiliza el robot en un punto. En la aplicación, debe aplicar un umbral de distancia a una ubicación objetivo para detener el robot cerca del objetivo deseado.

Referencias

[1] Coulter, R. Implementation of the Pure Pursuit Path Tracking Algorithm. Carnegie Mellon University, Pittsburgh, Pennsylvania, Jan 1990.

Consulte también

|