controllerPurePursuit
Cree un controlador para seguir un conjunto de waypoints
Descripción
controllerPurePursuit System object™ crea un objeto de controlador para que un vehículo tipo automóvil o con tracción diferencial siga un conjunto de waypoints. El objeto calcula la velocidad lineal y la curvatura del vehículo a partir de la pose actual dada. Las subsiguientes llamadas al objeto con poses actualizadas proporcionan comandos de velocidad actualizados para el vehículo. Utilice las propiedades MaxCurvature y DesiredLinearVelocity para actualizar la curvatura y la velocidad basándose en el rendimiento del vehículo.
La propiedad LookaheadDistance calcula un punto lookahead en la trayectoria, que es un objetivo local para el vehículo. El comando de curvatura se calcula a partir de este punto. Cambiar LookaheadDistance tiene un impacto significativo en el rendimiento del algoritmo. Una mayor distancia lookahead da como resultado una trayectoria más suave, pero puede provocar que el vehículo tome un atajo durante la trayectoria. Una distancia lookahead menor puede resultar en oscilaciones en el seguimiento de la trayectoria, lo que causaría un comportamiento inestable. Para obtener más información sobre el algoritmo Pure Pursuit, consulte Controlador de Pure Pursuit.
Para calcular los comandos de control de velocidad lineal y curvatura:
Cree el objeto
controllerPurePursuity configure sus propiedades.Llame al objeto con argumentos, como si fuera una función.
Para más información sobre el funcionamiento de los System objects, consulte ¿Qué son los System Objects?
Creación
Descripción
crea un objeto Pure Pursuit que utiliza el algoritmo de Pure Pursuit para calcular las entradas de velocidad lineal y curvatura para un vehículo tipo automóvil o con tracción diferencial.controller = controllerPurePursuit
crea un objeto de Pure Pursuit con opciones adicionales especificadas por uno o más pares controller = controllerPurePursuit(Name,Value)Name,Value. Name es el nombre de la propiedad y Value es el valor correspondiente. Name debe aparecer entre comillas simples (' '). Puede especificar varios argumentos de par nombre-valor en cualquier orden como Name1,Value1,...,NameN,ValueN. Las propiedades no especificadas conservan sus valores predeterminados.
Ejemplo: controller = controllerPurePursuit('DesiredLinearVelocity', 0.5)
Propiedades
Uso
Descripción
[ devuelve el punto lookahead, que es una ubicación en la trayectoria usada para calcular los comandos de velocidad y curvatura. El objeto de controlador calcula esta ubicación en la trayectoria utilizando la propiedad vel,curvature,lookaheadpoint] = controller(pose)LookaheadDistance.
Argumentos de entrada
Argumentos de salida
Funciones del objeto
Para usar una función de objeto, especifique el System object como el primer argumento de entrada. Por ejemplo, para liberar recursos de sistema de un System object llamado obj, utilice la siguiente sintaxis:
release(obj)
Ejemplos
Capacidades ampliadas
Historial de versiones
Introducido en R2019bConsulte también
binaryOccupancyMap | occupancyMap (Navigation Toolbox) | mobileRobotPRM
![Figure Pure Pursuit Waypoint Following With Velocity Commands contains 3 axes objects. Axes object 1 with title XY Pose (Trajectory), xlabel X [m], ylabel Y [m] contains 3 objects of type line. One or more of the lines displays its values using only markers These objects represent Waypoints, Vehicle Position, Trajectory. Axes object 2 with title Linear Velocity Command, xlabel Time [s], ylabel Linear Velocity [m/s] contains an object of type line. Axes object 3 with title Angular Velocity Command, xlabel Time [s], ylabel Angular Velocity [rad/s] contains an object of type line.](../../examples/nav_robotics/win64/FollowWaypointsUsingPurePursuitControllerExample_01.png)