Main Content

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

reedsSheppConnection

Type de connexion du chemin Reeds-Shepp

Depuis R2019b

Description

L'objet reedSheppConnection contient des informations permettant de calculer un objet reedsSheppPathSegment pour se connecter entre les poses. Un segment de chemin Reeds-Shepp relie deux poses sous la forme d'une séquence de cinq mouvements. Les options de mouvement sont :

  • Droit

  • Virage à gauche avec direction maximale

  • Virage à droite avec direction maximale

  • Pas de mouvement

Un segment de chemin Reeds-Shepp prend en charge à la fois le mouvement vers l'avant et vers l'arrière.

Utilisez cet objet de connexion pour définir les paramètres d'un modèle de mouvement de véhicule, notamment le rayon de braquage minimum et les options pour les types de trajectoire. Pour générer un segment de chemin entre les poses à l'aide de ce type de connexion, appelez la fonction connect .

Création

Description

exemple

reedsConnObj = reedsSheppConnection crée un objet en utilisant les valeurs de propriété par défaut.

exemple

reedsConnObj = reedsSheppConnection(Name,Value) spécifie les valeurs de propriété à l'aide de paires nom-valeur. Pour définir plusieurs propriétés, spécifiez plusieurs paires nom-valeur.

Propriétés

développer tout

Rayon de braquage minimum du véhicule, spécifié sous forme d'un scalaire positif en mètres. Le rayon de braquage minimum correspond au plus petit cercle que le véhicule peut parcourir avec une direction maximale dans une seule direction.

Types de données : double

Types de chemin à désactiver, spécifiés comme vecteur de chaînes scalaires ou cell array de vecteurs de caractères.

Type de mouvementDescription
"Sp", "Sn"Droit (p = avant, n = inverse)
"Lp", "Ln"

Virage à gauche à l'angle de braquage maximum du véhicule (p = avant, n = marche arrière)

"Rp", "Rn"

Virage à droite à l'angle de braquage maximum du véhicule (p = avant, n = marche arrière)

"N"Aucun mouvement

Si un segment de chemin comporte moins de cinq types de mouvement, les éléments restants sont "N" (pas de mouvement).

Pour voir tous les types de chemin disponibles, consultez la propriété AllPathTypes .

Exemple : ["LpSnLp","LnSnRpSn","LnSnRpSnLp"]

Types de données : cell

Ce propriété est en lecture seule.

Tous les types de chemin possibles, spécifiés sous forme de cell array de vecteurs de caractères. Cette propriété répertorie tous les types. Pour désactiver certains types, spécifiez les types de cette liste dans DisabledPathTypes.

Pour les connexions Reeds-Shepp, il existe 44 combinaisons possibles de types de mouvements.

Types de données : cell

Coût multiple pour avancer, spécifié sous la forme d'un scalaire numérique positif. Augmentez cette propriété pour pénaliser le mouvement vers l'avant.

Types de données : double

Coût multiple pour voyager en sens inverse, spécifié sous la forme d'un scalaire numérique positif. Augmentez cette propriété pour pénaliser le mouvement inverse.

Types de données : double

Fonctions d'objet

connectConnect pose pour un type de connexion donné

Exemples

réduire tout

Créez un objet reedsSheppConnection .

reedsConnObj = reedsSheppConnection;

Définissez les poses de début et d'objectif en tant que vecteurs [x y theta] .

startPose = [0 0 0];
goalPose = [1 1 pi];

Calculez un segment de chemin valide pour connecter les poses.

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);

Afficher le chemin généré.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Heading, Start Position, Goal Position.

Créez un objet reedsSheppConnection .

reedsConnObj = reedsSheppConnection;

Définissez les poses de début et d'objectif en tant que vecteurs [x y theta] .

startPose = [0 0 0];
goalPose = [1 1 pi];

Calculez un segment de chemin valide pour connecter les poses.

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);

Afficher le chemin généré. Notez la direction des virages.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Heading, Start Position, Goal Position.

pathSegObj{1}.MotionTypes
ans = 1x5 cell
    {'L'}    {'R'}    {'L'}    {'N'}    {'N'}

pathSegObj{1}.MotionDirections
ans = 1×5

     1    -1     1     1     1

Désactivez cette séquence de mouvements spécifique dans un nouvel objet de connexion. Réduisez le MinTurningRadius si le robot est plus maniable. Augmentez le coût inverse pour réduire la probabilité d’utilisation de directions inverses. Connectez à nouveau les poses pour obtenir un chemin différent.

reedsConnObj = reedsSheppConnection('DisabledPathTypes',{'LpRnLp'});
reedsConnObj.MinTurningRadius = 0.5;
reedsConnObj.ReverseCost = 5;

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1x5 cell
    {'L'}    {'S'}    {'L'}    {'N'}    {'N'}

show(pathSegObj{1})
xlim([0 1.5])
ylim([0 1.5])

Figure contains an axes object. The axes object contains 10 objects of type line, scatter. These objects represent Forward Path, Heading, Start Position, Goal Position.

Capacités étendues

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

Historique des versions

Introduit dans R2019b