Main Content

unicycleKinematics

Modelo de vehículo monociclo

Descripción

unicycleKinematics crea un modelo de vehículo monociclo para simular dinámicas de vehículo similar a un automóvil simplificadas. El estado del vehículo se define como un vector de tres elementos, [x y theta], con la posición global xy especificada en metros, y el ángulo de dirección del vehículo, theta, especificado en radianes. Este modelo se aproxima a un vehículo monociclo con un determinado radio de la rueda, WheelRadius, que puede girar en su posición según un ángulo de dirección, theta. Para calcular los estados de las derivadas de tiempo del modelo, use la función derivative con comandos de entrada y el estado actual del robot.

Creación

Descripción

ejemplo

kinematicModel = unicycleKinematics crea un objeto de modelo cinemático de monociclo con valores de propiedad predeterminados.

kinematicModel = unicycleKinematics(Name,Value) establece las propiedades adicionales en los valores especificados. Puede especificar varias propiedades en el orden que desee.

Propiedades

expandir todo

El radio de las ruedas del vehículo, especificado en metros.

El rango de velocidad del vehículo es un vector de dos elementos que proporciona la velocidad mínima y máxima del vehículo, [MinSpeed MaxSpeed], especificada en metros por segundo.

La propiedad VehicleInputs especifica el formato de los comandos de entrada del modelo cuando se usa la función derivative. Las opciones se especifican como una de las siguientes cadenas:

  • "WheelSpeedHeadingRate": la velocidad de la rueda y la velocidad angular de la dirección, especificadas en radianes por segundo.

  • "VehicleSpeedHeadingRate": la velocidad del vehículo y la velocidad angular de la dirección, especificadas en radianes por segundo.

Funciones del objeto

derivativeDerivada de tiempo del estado del vehículo

Ejemplos

contraer todo

Crear un robot

Defina un robot y establezca la posición de partida inicial y la orientación.

kinematicModel = unicycleKinematics;
initialState = [0 0 0];

Simular el movimiento del robot

Establezca la escala de tiempo de la simulación en 1 s con intervalos de 0,05 s, los comandos de entrada en 10 m/s y giro a la izquierda. Simule el movimiento del robot utilizando el solver ode45 en la función derivative.

tspan = 0:0.05:1;
inputs = [10 1]; %Constant speed and turning left
[t,y] = ode45(@(t,y)derivative(kinematicModel,y,inputs),tspan,initialState);

Representar la ruta

figure
plot(y(:,1),y(:,2))

Figure contains an axes object. The axes object contains an object of type line.

Referencias

[1] Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control 1st ed. Cambridge, MA: Cambridge University Press, 2017.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b