Main Content

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

Pure Pursuit

Commandes de contrôle de vitesse linéaire et angulaire

Depuis R2019b

  • Pure Pursuit block

Bibliothèques :
Robotics System Toolbox / Mobile Robot Algorithms
Navigation Toolbox / Control Algorithms

Description

Le bloc Pure Pursuit calcule les commandes de vitesse linéaire et angulaire pour suivre un chemin en utilisant un ensemble de points de cheminement et la pose actuelle d'un véhicule à entraînement différentiel. Le bloc prend des poses mises à jour pour mettre à jour les commandes de vitesse permettant au véhicule de suivre un chemin le long d'un ensemble souhaité de points de cheminement. Utilisez les paramètres Max angular velocity et Desired linear velocity pour mettre à jour les vitesses en fonction des performances du véhicule.

Le paramètre Lookahead distance calcule un point d'anticipation sur le chemin, qui est un objectif local instantané pour le véhicule. La commande de vitesse angulaire est calculée en fonction de ce point. Changer Lookahead distance a un impact significatif sur les performances de l'algorithme. Une distance de vision plus élevée se traduit par une trajectoire plus fluide pour le véhicule, mais peut amener le véhicule à prendre des virages le long du chemin. Une distance d'anticipation trop faible peut entraîner des oscillations dans le suivi de la trajectoire, provoquant un comportement instable. Pour plus d'informations sur l'algorithme de poursuite pure, voir Pure Pursuit Controller.

Ports

Saisir

développer tout

Pose actuelle du véhicule, spécifiée comme un vecteur [x y theta] , qui correspond à la position et à l'angle d'orientation x-y , theta. Les angles positifs sont mesurés dans le sens inverse des aiguilles d'une montre à partir de l'axe positif x.

Points de cheminement, spécifiés sous la forme d'un tableau n-par 2 de paires [x y] , où n est le nombre de points de cheminement. Vous pouvez générer les points de cheminement à l'aide de planificateurs de chemin comme mobileRobotPRM (Robotics System Toolbox) ou les spécifier sous forme de tableau dans Simulink®.

Sortir

développer tout

Vitesse linéaire, renvoyée sous forme de scalaire en mètres par seconde.

Types de données : double

Vitesse angulaire, renvoyée sous forme de scalaire en radians par seconde.

Types de données : double

Direction cible du véhicule, renvoyée sous forme de scalaire en radians. La direction avant du véhicule est considérée comme zéro radian, avec des angles positifs mesurés dans le sens inverse des aiguilles d'une montre. Cette sortie peut être utilisée comme entrée du port TargetDir pour le bloc Vector Field Histogram .

Dépendances

Pour activer ce port, sélectionnez le paramètre Show TargetDir output port .

Paramètres

développer tout

Vitesse linéaire souhaitée, spécifiée sous forme scalaire en mètres par seconde. Le contrôleur suppose que le véhicule roule à une vitesse linéaire constante et que la vitesse angulaire calculée est indépendante de la vitesse linéaire.

Vitesse angulaire maximale, spécifiée sous forme de scalaire en radians par seconde. Le contrôleur sature la sortie de vitesse angulaire absolue à la valeur donnée.

Distance d'anticipation, spécifiée sous forme d'un scalaire en mètres. La distance d'anticipation modifie la réponse du contrôleur. Un véhicule avec une distance de vision plus élevée produit des trajectoires fluides mais prend des virages plus longs dans les virages. Un véhicule avec une distance de vision plus petite suit le chemin de près et prend des virages serrés, mais oscille le long du chemin. Pour plus d'informations sur les effets de la distance d'anticipation, voir Pure Pursuit Controller.

Sélectionnez ce paramètre pour activer le port de sortie TargetDir . Ce port donne la direction cible sous forme d'angle en radians à partir de la position avant, avec des angles positifs mesurés dans le sens inverse des aiguilles d'une montre.

  • Interpreted execution — Simulez le modèle à l'aide de l'interpréteur MATLAB® . Cette option réduit le temps de démarrage mais a une vitesse de simulation plus lente que Code generation. Dans ce mode, vous pouvez déboguer le code source du bloc.

  • Code generation — Simulez le modèle à l'aide du code C généré. La première fois que vous exécutez une simulation, Simulink génère du code C pour le bloc. Le code C est réutilisé pour les simulations ultérieures, tant que le modèle ne change pas. Cette option nécessite un temps de démarrage supplémentaire, mais la vitesse des simulations ultérieures est comparable à Interpreted execution.

Ajustable : No

Capacités étendues

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

Historique des versions

Introduit dans R2019b