plannerLineSpec.path
Syntaxe
Description
spécifie les propriétés de couleur, de ligne et de marqueur par défaut pour tracer le chemin avant.spec
= plannerLineSpec.path
spécifie de nouvelles valeurs pour les propriétés de couleur, de ligne et de marqueur en utilisant un ou plusieurs arguments nom-valeur.spec
= plannerLineSpec.path(Name=Value
)
[
renvoie les propriétés et leurs valeurs sous forme de structure utilisant n'importe quelle combinaison d'entrées des syntaxes précédentes.spec
,structData
] = plannerLineSpec.path(___)
Exemples
Charger la carte d'occupation
Chargez une grille d'occupation de probabilité dans l'espace de travail MATLAB® .
load("exampleMaps.mat","simpleMap")
Créez une carte d'occupation à partir de la grille d'occupation d'entrée.
map = occupancyMap(simpleMap);
Définissez les limites inférieure et supérieure des variables de l'espace d'état x
, y
et theta
à partir de la carte d'occupation.
x = map.XWorldLimits; y = map.YWorldLimits; theta = [-pi pi];
Spécifiez l'état de départ et l'état final pour la planification du chemin.
start = [2 5 0]; goal = [22 22 0];
Afficher la carte d'occupation.
figure
show(map)
hold on
Début du tracé et états d’objectif
Utilisez les fonctions plannerLineSpec.start
et plannerLineSpec.goal
pour tracer les états de début et d'objectif, respectivement.
plot(start(1),start(2),plannerLineSpec.start{:}) plot(goal(1),goal(2),plannerLineSpec.goal{:})
Configurer le planificateur de chemin Bi-RRT et rechercher le chemin entre deux états
Créez un objet SE(2) d'espace d'état à l'aide des variables d'espace d'état spécifiées.
stateSpace = stateSpaceSE2([x; y; theta]);
Vérifiez la validité des états dans l'espace d'état d'entrée à l'aide d'un validateur d'état.
stateValidator = validatorOccupancyMap(stateSpace,Map=map);
Configurez le planificateur de chemin Bi-RRT.
planner = plannerBiRRT(stateSpace,stateValidator);
Calculez le chemin entre le point de départ et le point d'arrivée à l'aide du planificateur de chemin Bi-RRT.
[path,info] = plan(planner,start,goal)
path = navPath with properties: StateSpace: [1x1 stateSpaceSE2] States: [306x3 double] NumStates: 306 MaxNumStates: Inf
info = struct with fields:
IsPathFound: 1
ExitFlag: 1
NumIterations: 294
StartTreeData: [569x3 double]
GoalTreeData: [710x3 double]
StartTreeNumNodes: 189
GoalTreeNumNodes: 236
Tracer les arbres de recherche
Utilisez la fonction plannerLineSpec.tree
pour tracer l'arborescence de recherche directe.
startTree = plannerLineSpec.tree; plot(info.StartTreeData(:,1),info.StartTreeData(:,2),startTree{:})
Utilisez la fonction plannerLineSpec.goalTree
pour tracer l'arborescence de recherche de l'état objectif à l'état de départ. Définissez la couleur de la ligne pour tracer l'arborescence de recherche de l'objectif au début à cyan
.
goalTree = plannerLineSpec.goalTree(color="cyan");
plot(info.GoalTreeData(:,1),info.GoalTreeData(:,2),goalTree{:})
legend
Tracer le chemin calculé
Utilisez la fonction plannerLineSpec.path
pour tracer le chemin dérivé.
plot(path.States(:,1),path.States(:,2),plannerLineSpec.path{:}) legend(Position=[0.8 0.11 0.2 0.2])
Charger la carte d'occupation
Chargez une grille d'occupation de probabilité dans l'espace de travail MATLAB® .
load("exampleMaps.mat","simpleMap")
Créez une carte d'occupation à partir de la grille d'occupation d'entrée.
map = occupancyMap(simpleMap);
Définissez les limites inférieure et supérieure des variables de l'espace d'état x
, y
et theta
à partir de la carte d'occupation.
x = map.XWorldLimits; y = map.YWorldLimits; theta = [-pi pi];
Afficher la carte d'occupation.
figure
show(map)
hold on
Spécifiez l'état de départ et l'état final pour la planification du chemin.
start = [2 5 0]; goal = [22 22 0];
Début du tracé et états d’objectif
Utilisez les fonctions plannerLineSpec.start
et plannerLineSpec.goal
pour tracer les états de début et d'objectif, respectivement.
plot(start(1),start(2),plannerLineSpec.start{:})
Définissez la couleur pour tracer l'état de l'objectif sur red
et tracez l'état de l'objectif.
goalState = plannerLineSpec.goal(MarkerEdgeColor="red",MarkerFaceColor="red"); plot(goal(1),goal(2),goalState{:})
Configurer le planificateur de chemin RRT
Créez un objet SE(2) d'espace d'état à l'aide des variables d'espace d'état spécifiées.
stateSpace = stateSpaceSE2([x; y; theta]);
Vérifiez la validité des états dans l'espace d'état d'entrée à l'aide d'un validateur d'état.
stateValidator = validatorOccupancyMap(stateSpace,Map=map);
Configurez le planificateur de chemin RRT.
planner = plannerRRT(stateSpace,stateValidator);
Trouver le chemin entre deux états
Calculez le chemin entre le point de départ et le point d'arrivée à l'aide du planificateur de chemin RRT.
[path,info] = plan(planner,start,goal)
path = navPath with properties: StateSpace: [1x1 stateSpaceSE2] States: [320x3 double] NumStates: 320 MaxNumStates: Inf
info = struct with fields:
IsPathFound: 1
ExitFlag: 1
NumNodes: 1192
NumIterations: 1331
TreeData: [3578x3 double]
Tracer les arbres de recherche
Utilisez la fonction plannerLineSpec.tree
pour tracer l'arborescence de recherche directe. Définissez la couleur de traçage de l'arborescence de recherche sur green
.
De plus, définissez l'étiquette de la légende sur "Forward search tree"
.
startTree = plannerLineSpec.tree(Color="green",DisplayName="Forward search tree"); plot(info.TreeData(:,1),info.TreeData(:,2),startTree{:})
Tracer le chemin calculé
Utilisez la fonction plannerLineSpec.path
pour tracer le chemin dérivé.
plot(path.States(:,1),path.States(:,2),plannerLineSpec.path{:}) legend(Position=[0.6 0.11 0.2 0.2])
Arguments nom-valeur
Spécifiez des paires d'arguments facultatives sous la forme Name1=Value1,...,NameN=ValueN
, où Name
est le nom de l'argument et Value
est la valeur correspondante. Les arguments nom-valeur doivent apparaître après les autres arguments, mais l'ordre des paires n'a pas d'importance.
Exemple : plannerLineSpec.path(Color="Red")
Couleur de ligne, spécifiée comme l'une de ces valeurs :
Triplet RVB — Spécifiez les intensités des composantes rouge, verte et bleue de la couleur sous la forme d'un vecteur à trois éléments dans l'ordre
[R G B]
. Chaque intensité doit être comprise dans la plage [0, 1]. Par exemple, vous pouvez spécifier une nuance de rose sous la forme[1 0.5 0.8]
.Vecteur de caractères ou scalaire de chaîne — Spécifiez le code de couleur hexadécimal, le nom de la couleur ou le nom abrégé de la couleur.
Pour plus d'informations sur les types de valeurs de couleur et comment les spécifier, voir Spécifier les couleurs des tracés.
Style de ligne, spécifié comme l'une de ces valeurs :
"-"
— Pour une ligne continue. C'est la valeur par défaut."--"
— Pour une ligne pointillée.":"
— Pour une ligne pointillée."-."
— Pour une ligne en pointillés."none"
— Pour aucune ligne.
Largeur de ligne, spécifiée sous forme de scalaire numérique positif.
Symbole de marqueur, spécifié comme l'une des valeurs répertoriées dans ce tableau.
Marqueur | Description | Marqueur résultant |
---|---|---|
"o" | Cercle |
|
"+" | Signe plus |
|
"*" | Astérisque |
|
"." | Indiquer |
|
"x" | Croix |
|
"_" | Ligne horizontale |
|
"|" | Ligne verticale |
|
"square" | Carré |
|
"diamond" | diamant |
|
"^" | Triangle pointant vers le haut |
|
"v" | Triangle pointant vers le bas |
|
">" | Triangle pointant vers la droite |
|
"<" | Triangle pointant vers la gauche |
|
"pentagram" | Pentacle |
|
"hexagram" | Hexagramme |
|
"none" | Pas de marqueurs | N'est pas applicable |
Taille du marqueur, spécifiée sous forme de scalaire numérique positif.
Couleur du contour du marqueur, spécifiée comme l'une de ces valeurs :
Triplet RVB — Spécifiez les intensités des composantes rouge, verte et bleue de la couleur sous la forme d'un vecteur à trois éléments dans l'ordre
[R G B]
. Chaque intensité doit être comprise dans la plage [0, 1]. Par exemple, vous pouvez spécifier une nuance de rose sous la forme[1 0.5 0.8]
.Vecteur de caractères ou scalaire de chaîne — Spécifiez le code de couleur hexadécimal, le nom de la couleur ou le nom abrégé de la couleur.
Pour plus d'informations sur les types de valeurs de couleur et comment les spécifier, voir Spécifier les couleurs des tracés.
Couleur de remplissage du marqueur, spécifiée comme l'une de ces valeurs :
Triplet RVB — Spécifiez les intensités des composantes rouge, verte et bleue de la couleur sous la forme d'un vecteur à trois éléments dans l'ordre
[R G B]
. Chaque intensité doit être comprise dans la plage [0, 1]. Par exemple, vous pouvez spécifier une nuance de rose sous la forme[1 0.5 0.8]
.Vecteur de caractères ou scalaire de chaîne — Spécifiez le code de couleur hexadécimal, le nom de la couleur ou le nom abrégé de la couleur.
Pour plus d'informations sur les types de valeurs de couleur et comment les spécifier, voir Spécifier les couleurs des tracés.
Étiquette à inclure dans la légende, spécifiée sous forme de vecteur de caractères ou de chaîne scalaire.
Arguments de sortie
Spécifications de couleur, de ligne et de marqueur pour tracer le chemin avant, renvoyées sous forme de cell array de taille 1 sur 16.
Types de données : cell
Spécifications du tracé, renvoyées sous forme de structure avec les champs Color
, LineStyle
, LineWidth
, Marker
, MarkerSize
, MarkerEdgecolor
, MarkerFaceColor
et DisplayName
. Chaque champ contient la valeur spécifiée pour l'argument nom-valeur correspondant.
Types de données : struct
Historique des versions
Introduit dans R2023b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)