Main Content

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

plannerLineSpec.heading

Spécifications pour tracer l'angle de cap

Depuis R2023b

    Description

    exemple

    spec = plannerLineSpec.heading spécifie les propriétés par défaut de la couleur, de la ligne et du marqueur pour tracer l'angle de cap.

    exemple

    spec = plannerLineSpec.heading(Name=Value) 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,structData] = plannerLineSpec.heading(___) 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.

    Exemples

    réduire tout

    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.

    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.

    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.

    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.

    Arguments d'entrée

    réduire tout

    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.heading(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 Specify Plot Colors.

    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.

    MarqueurDescriptionMarqueur résultant
    "o" Cercle

    Sample of circle marker

    "+" Signe plus

    Sample of plus sign marker

    "*" Astérisque

    Sample of asterisk marker

    "." Indiquer

    Sample of point marker

    "x" Croix

    Sample of cross marker

    "_" Ligne horizontale

    Sample of horizontal line marker

    "|" Ligne verticale

    Sample of vertical line marker

    "square" Carré

    Sample of square marker

    "diamond" diamant

    Sample of diamond marker

    "^" Triangle pointant vers le haut

    Sample of upward-pointing triangle marker

    "v" Triangle pointant vers le bas

    Sample of downward-pointing triangle marker

    ">" Triangle pointant vers la droite

    Sample of right-pointing triangle marker

    "<" Triangle pointant vers la gauche

    Sample of left-pointing triangle marker

    "pentagram" Pentacle

    Sample of pentagram marker

    "hexagram" Hexagramme

    Sample of hexagram marker

    "none" Pas de marqueursN'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 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 Specify Plot Colors.

    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 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 Specify Plot Colors.

    Étiquette à inclure dans la légende, spécifiée sous forme de vecteur de caractères ou de chaîne scalaire.

    Arguments de sortie

    réduire tout

    Spécifications de couleur, de ligne et de marqueur pour tracer l’angle de cap, 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