plannerLineSpec.state
Syntaxe
Description
spécifie les propriétés de couleur, de ligne et de marqueur par défaut pour tracer les états génériques dans l'espace d'état d'entrée.spec = plannerLineSpec.state
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.state(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.state(___)
Exemples
Définissez la valeur de départ du nombre aléatoire pour garantir la répétabilité.
rng(100,"twister")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![Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains an object of type image.](visualizeprmplanneroutputusingpredefinedplotspecexample_01_fr.png)
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{:})
plot(goal(1),goal(2),plannerLineSpec.goal{:})![Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal.](visualizeprmplanneroutputusingpredefinedplotspecexample_02_fr.png)
Configurer le planificateur de chemin PRM
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. Définissez la distance de validation sur 0,01.
stateValidator = validatorOccupancyMap(stateSpace,Map=map); stateValidator.ValidationDistance = 0.01;
Configurez le planificateur de chemin PRM.
planner = plannerPRM(stateSpace,stateValidator);
Recherchez les états génériques (ou nœuds) à partir du graphique de réseau.
digraphObj = graphData(planner); nodes = table2array(digraphObj.Nodes);
Recherchez l'arbre de recherche à partir du graphique du réseau.
edges = table2array(digraphObj.Edges); edgeLine = []; for i = 1:size(edges,1) state1 = nodes(edges(i,1),:); state2 = nodes(edges(i,2),:); edgeLine = [edgeLine; state1(1:2); state2(1:2); NaN NaN]; end
Tracer l'arbre de recherche et les états génériques
Utilisez la fonction plannerLineSpec.tree pour tracer l'arborescence de recherche.
plot(edgeLine(:,1),edgeLine(:,2),plannerLineSpec.tree{:})Utilisez la fonction plannerLineSpec.state pour tracer les états génériques. Définissez la taille du marqueur pour tracer les états génériques sur 3.
gstate = plannerLineSpec.state(MarkerSize=3);
plot(nodes(:,1),nodes(:,2),gstate{:})![Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 5 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal, Tree, State.](visualizeprmplanneroutputusingpredefinedplotspecexample_03_fr.png)
Trouver le chemin entre deux états et l'angle de cap
Calculez le chemin entre le point de départ et le point d'arrivée.
[path,info] = plan(planner,start,goal);
Calculez l'angle de cap entre les points XY et le chemin.
inpath=[path.States(:,1) path.States(:,2)]; heading = headingFromXY(inpath);
Tracer la trajectoire calculée et l'angle de cap
Utilisez les fonctions plannerLineSpec.path et plannerLineSpec.heading pour tracer respectivement la trajectoire calculée et l'angle de cap. Modifiez la couleur de la ligne pour tracer l'angle de cap en cyan.
if info.IsPathFound plot(path.States(:,1),path.States(:,2),plannerLineSpec.path{:}) headingplot = plannerLineSpec.heading(Color="cyan"); quiver(path.States(:,1),path.States(:,2),cos(heading),sin(heading),0.2,headingplot{:}) else disp("Path not found") end legend(Position=[0.82 0.1 0.15 0.15])
![Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 7 objects of type image, line, quiver. One or more of the lines displays its values using only markers These objects represent Start, Goal, Tree, State, Path, Heading.](visualizeprmplanneroutputusingpredefinedplotspecexample_04_fr.png)
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.state(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 entre [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."--"— Pour une ligne pointillée.":"— Pour une ligne pointillée."-."— Pour une ligne en pointillés."none"— Pour aucune ligne. C'est la valeur par défaut.
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" | Aucun marqueur | 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 les états génériques, 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 des 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)














