Contenido principal

unicycleKinematics

Modelo de vehículo monociclo

Descripción

unicycleKinematics crea un modelo de vehículo monociclo para simular dinámicas de vehículo tipo 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 del rumbo 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 rumbo, 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

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

ejemplo

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

Propiedades

expandir todo

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

El rango de velocidad de las ruedas del vehículo es un vector de dos elementos que proporciona las velocidades mínima y máxima del vehículo, [MinSpeed MaxSpeed], especificadas en radianes 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 rumbo, especificadas en radianes por segundo.

  • "VehicleSpeedHeadingRate": la velocidad del vehículo y la velocidad angular de rumbo, 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 el periodo de tiempo de la simulación en 1 s con unidades de tiempo de 0.05 s, los comandos de entrada en una velocidad de las ruedas de 10 rad/s y una velocidad angular de rumbo de pi/4 rad/s para hacer un 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 pi/4]; %Constant speed and turning left
[t,y] = ode45(@(t,y)derivative(kinematicModel,y,inputs),tspan,initialState);

Representar la trayectoria

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

expandir todo

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

Historial de versiones

Introducido en R2019b

expandir todo