Contenido principal

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

bicycleKinematics

Modelo de vehículo bicicleta

Desde R2021b

Descripción

bicycleKinematics crea un modelo de vehículo bicicleta para simular dinámicas de vehículos similares a un automóvil. Este modelo representa un vehículo con dos ejes separados por una distancia, WheelBase. Estado del vehículo se define como un vector de tres elementos, [xy theta], con la posición global xy especificada en metros, y el ángulo de giro del vehículo, theta, especificado en radianes. La rueda delantera se puede girar con el ángulo de giro psi. La dirección del vehículo theta está definida en el centro del eje trasero. 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.

Diagram of a bicycle vehicle model.

Creación

Descripción

kinematicModel = bicycleKinematics crea un objeto de modelo cinemático de bicicleta con valores de propiedad predeterminados.

ejemplo

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

Propiedades

expandir todo

Distancia entre ejes hace referencia a la distancia entre los ejes delantero y trasero del vehículo, especificada 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.

El ángulo de giro máximo, psi, hace referencia al ángulo máximo en que se puede girar el vehículo hacia la derecha o la izquierda, especificado en radianes. Un valor de pi/2 proporciona al vehículo un radio de giro mínimo de 0. Esta propiedad se usa para validar la entrada de estado proporcionada por el usuario.

Esta propiedad de solo lectura devuelve el radio de giro mínimo del vehículo en metros. El radio mínimo se calcula a partir de la distancia entre ejes y el ángulo de giro máximo.

La propiedad VehicleInputs especifica el formato de los comandos de entrada del modelo cuando se usa la función derivative. Propiedad tiene dos opciones válidas, especificadas como una cadena o un vector de caracteres:

  • "VehicleSpeedSteeringAngle": velocidad del vehículo y ángulo de giro

  • "VehicleSpeedHeadingRate": velocidad del vehículo y velocidad angular de la dirección

Funciones del objeto

derivativeDerivada temporal del modelo de vehículo bicicleta.

Ejemplos

contraer todo

Cree un robot y establezca su posición inicial y orientación.

kinematicModel = bicycleKinematics;
initialState = [0 0 0];

Establezca la escala de tiempo de la simulación en 1 s con unidades de tiempo de 0,05 s, los comandos de entrada en 2 m/s para la velocidad del vehículo y pi/4 radianes para el ángulo de giro para crear un giro a la izquierda. Simule el movimiento del robot utilizando el solucionador ode45 en la función derivative.

tspan = 0:0.05:1;
inputs = [2 pi/4]; %Turn left
[t,y] = ode45(@(t,y)derivative(kinematicModel,y,inputs),tspan,initialState);

Traza 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.

[2] Corke, Peter I. Robotics, Vision and Control: Fundamental Algorithms in MATLAB. Springer, 2011.

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 R2021b

Consulte también

Temas