Contenu principal

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

bicycleKinematics

Modèle de véhicule à deux roues

Depuis R2021b

Description

bicycleKinematics crée un modèle de véhicule à deux roues pour simuler la dynamique simplifiée d'un véhicule semblable à une voiture. Ce modèle représente un véhicule à deux essieux séparés par une distance, WheelBase. L'état du véhicule est défini comme un vecteur à trois éléments, [x y theta], de global. xy-position, spécifiée en mètres, et un angle de cap du véhicule, theta, spécifié en radians. La roue avant peut être tournée avec l'angle de braquage psi. Le cap du véhicule, theta, est défini au centre de l'essieu arrière. Pour calculer les états dérivés dans le temps du modèle, utilisez la fonction derivative avec les commandes d'entrée et l'état actuel du robot.

Diagram of a bicycle vehicle model.

Création

Description

kinematicModel = bicycleKinematics crée un objet modèle cinématique de vélo avec des valeurs de propriété par défaut.

exemple

kinematicModel = bicycleKinematics(Name,Value) définit des propriétés supplémentaires sur les valeurs spécifiées. Vous pouvez spécifier plusieurs propriétés dans n'importe quel ordre.

Propriétés

développer tout

L'empattement fait référence à la distance entre les essieux avant et arrière du véhicule, exprimée en mètres.

La plage de vitesse du véhicule est un vecteur à deux éléments qui fournit les vitesses minimale et maximale du véhicule, [MinSpeed MaxSpeed], spécifiées en mètres par seconde.

L'angle de braquage maximum, psi, fait référence à l'angle maximum auquel le véhicule peut être dirigé vers la droite ou la gauche, spécifié en radians. Une valeur de pi/2 donne au véhicule un rayon de braquage minimum de 0. Cette propriété est utilisée pour valider l’entrée d’état fournie par l’utilisateur.

Cette propriété en lecture seule renvoie le rayon de braquage minimum du véhicule en mètres. Le rayon minimum est calculé à partir de l'empattement et de l'angle de braquage maximum.

La propriété VehicleInputs spécifie le format des commandes d'entrée du modèle lors de l'utilisation de la fonction derivative . La propriété a deux options valides, spécifiées sous forme de chaîne ou de vecteur de caractères :

  • "VehicleSpeedSteeringAngle" — Vitesse du véhicule et angle de braquage

  • "VehicleSpeedHeadingRate" — Vitesse du véhicule et vitesse angulaire de cap

Fonctions d'objet

derivativeDérivée temporelle du modèle de véhicule vélo

Exemples

réduire tout

Créez un robot et définissez sa position de départ et son orientation initiales.

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

Réglez la durée de la simulation sur 1 s avec des pas de temps de 0,05 s et les commandes d'entrée sur 2 m/s pour la vitesse du véhicule et pi/4 rad pour l'angle de braquage afin de créer un virage à gauche. Simulez le mouvement du robot en utilisant le solveur ode45 sur la fonction derivative .

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

Tracez le chemin.

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

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

Références

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

Capacités étendues

développer tout

Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.

Historique des versions

Introduit dans R2021b

Voir aussi

Rubriques