controllerPurePursuit
Créer un contrôleur pour suivre un ensemble de waypoints
Depuis R2019b
Description
Le controllerPurePursuit
System object™ crée un objet contrôleur utilisé pour faire en sorte qu'un véhicule à entraînement différentiel suive un ensemble de points de cheminement. L'objet calcule les vitesses linéaires et angulaires du véhicule en fonction de la pose actuelle. Des appels successifs à l'objet avec des poses mises à jour fournissent des commandes de vitesse mises à jour pour le véhicule. Utilisez les propriétés MaxAngularVelocity
et DesiredLinearVelocity
pour mettre à jour les vitesses en fonction des performances du véhicule.
La propriété LookaheadDistance
calcule un point d'anticipation sur le chemin, qui est un objectif local pour le véhicule. La commande de vitesse angulaire est calculée en fonction de ce point. Changer LookaheadDistance
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 faible distance de prévision 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.
Pour calculer les commandes de contrôle de vitesse linéaire et angulaire :
Créez l'objet
controllerPurePursuit
et définissez ses propriétés.Appelez l'objet avec des arguments, comme s'il s'agissait d'une fonction.
Pour en savoir plus sur le fonctionnement des objets système, voir What Are System Objects?
Création
Description
crée un objet de poursuite pure qui utilise l'algorithme de poursuite pure pour calculer les entrées de vitesse linéaire et angulaire pour un véhicule à entraînement différentiel.controller
= controllerPurePursuit
crée un objet de poursuite pure avec des options supplémentaires spécifiées par une ou plusieurs paires controller
= controllerPurePursuit(Name,Value)Name,Value
. Name est le nom de la propriété et Value est la valeur correspondante. Le nom doit apparaître entre guillemets simples (' '
). Vous pouvez spécifier plusieurs arguments de paire nom-valeur dans n'importe quel ordre comme Name1,Value1,...,NameN,ValueN
. Les propriétés non spécifiées conservent leurs valeurs par défaut.
Exemple : controller = controllerPurePursuit('DesiredLinearVelocity', 0.5)
Propriétés
Utilisation
Description
[
renvoie le point d'anticipation, qui est un emplacement sur le chemin utilisé pour calculer les commandes de vitesse. Cet emplacement sur le chemin est calculé à l'aide de la propriété vel
,angvel
,lookaheadpoint
] = controller(pose
)LookaheadDistance
sur l'objet controller
.
Arguments en entrée
Arguments de sortie
Fonctions d'objet
Pour utiliser une fonction objet, spécifiez le System object comme premier argument d'entrée. Par exemple, pour libérer les ressources système d'un System object nommé obj
, utilisez cette syntaxe :
release(obj)
Exemples
Capacités étendues
Historique des versions
Introduit dans R2019b
Voir aussi
binaryOccupancyMap
(Robotics System Toolbox) | occupancyMap
| binaryOccupancyMap
| occupancyMap
| controllerVFH