Simule un modelo de robot móvil que utilice la dirección de Ackermann con restricciones en su ángulo de dirección. Durante la simulación, el modelo mantiene el ángulo de dirección máximo después de alcanzar el límite de dirección. Para ver el efecto de la saturación de la dirección, se compara la trayectoria de dos robots, una con las restricciones del ángulo de dirección y la otra sin ninguna restricción de dirección.
Definir el modelo
Defina el modelo cinemático de Ackermann. En este modelo tipo automóvil, las ruedas delanteras están a una distancia determinada. Para que giren en círculos concéntricos, las ruedas tienen diferentes ángulos de dirección. Al girar, las ruedas delanteras reciben la entrada de la dirección como velocidad de cambio del ángulo de dirección.
Configurar los parámetros de la simulación
Establezca el robot móvil para que siga una velocidad lineal constante y reciba una tasa de dirección constante como entrada. Simule el robot restringido durante un período más largo para demostrar la saturación de la dirección.
Crear la estructura de opciones para un solver EDO
En este ejemplo, se pasa una estructura de options como argumento al solver EDO. La estructura de options contiene la información sobre el límite del ángulo de dirección. Para crear la estructura de options, utilice la opción Events de odeset y la función de evento creada, detectSteeringSaturation. detectSteeringSaturation establece el ángulo de dirección máximo en 45 grados.
Para una descripción de cómo definir detectSteeringSaturation, consulte Definir la función de evento al final de este ejemplo.
Simular el modelo con un solver EDO
Luego, se utiliza la función derivative y un solver EDO, ode45, para resolver el modelo y generar la solución.
Detectar la saturación de la dirección
Cuando el modelo alcanza el límite de dirección, registra una marca de tiempo del evento. El tiempo que se tarda en alcanzar el límite se almacena en te.
Steering angle limit was reached at 0.785 seconds
Simular un robot restringido con nuevas condiciones iniciales
Utilice ahora el estado del robot restringido antes de terminar la integración como condición inicial para la segunda simulación. Modifique el vector de entrada para representar la saturación de la dirección, es decir, establezca la tasa de dirección en cero.
Representar los resultados
Represente la trayectoria del robot usando plot y los datos almacenados en pose.
El robot sin restricciones sigue una trayectoria en espiral con radio de curvatura decreciente, mientras que el robot restringido sigue una trayectoria circular con radio de curvatura constante una vez alcanzado el límite de dirección.
Definir la función de evento
Establezca la función de evento de manera que la integración termine cuando el 4º estado, theta, sea igual al ángulo de dirección máximo.