Main Content

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

plannerBenchmark

Planificateurs de parcours de référence à l'aide des métriques générées

Depuis R2022a

    Description

    L'objet plannerBenchmark évalue les planificateurs de chemin 2D en les exécutant sur un environnement spécifié avec des poses de départ et d'objectif spécifiées.

    L'objet plannerBenchmark calcule les métriques suivantes :

    • clearance — Distance minimale aux obstacles dans l'environnement

    • executionTime — Temps nécessaire à l'exécution de la fonction de plan

    • initializationTime — Temps nécessaire à l'exécution de la fonction d'initialisation

    • isPathValid — Si vrai, cela représente le chemin existant et sans collision

    • pathLength — Longueur du chemin généré

    • smoothness — Fluidité du parcours pour toutes les poses

    Les métriques telles que executionTime et initializationTime sont calculées lors de l'exécution des planificateurs. Les métriques telles que clearance, isPathValid, pathLength et smoothness sont calculées à partir des sorties de chemin résultantes. après avoir exécuté les planificateurs. Les mesures calculées sont résumées statistiquement sous forme de tableau et peuvent être visualisées sous forme de graphiques.

    Création

    Description

    exemple

    plannerBM = plannerBenchmark(environment,start,goal) crée un objet plannerBenchmark avec les objets environment, start et goal pose. Les entrées environment, start et goal définissent les Environment, Start Propriétés $ et Goal , respectivement.

    Propriétés

    développer tout

    Environnement pour les planificateurs de chemins d'analyse comparative, spécifié comme objet occupancyMap, binaryOccupancyMap ou validatorOccupancyMap .

    Pose de départ du chemin pour tous les planificateurs, spécifiée comme vecteur de la forme [x y] ou [x y theta].

    Types de données : single | double

    Pose d'objectif du chemin pour tous les planificateurs, spécifiée comme vecteur de la forme [x y] ou [x y theta].

    Types de données : single | double

    Ce propriété est en lecture seule.

    Sortie des planificateurs après exécution, renvoyée sous forme de structure contenant la sortie de la fonction d'initialisation et la sortie de la fonction de plan pour tous les planificateurs. Les champs de la structure sont nommés par le nom du planificateur spécifié dans la fonction addPlanner .

    Chaque structure contient une sortie d'initialisation et une sortie de fonction de plan. La sortie de la fonction de plan est en outre une structure contenant la sortie de la fonction de plan pour chaque exécution du planificateur.

    Types de données : struct

    Fonctions d'objet

    addPlannerAjouter un planificateur de chemin pour l'analyse comparative
    copyCréer une copie complète de l'objet PlannerBenchmark
    metricRetourner les métriques du planificateur de chemin
    reportCréer un rapport de référence
    runPlannerPlanificateurs de parcours
    showVisualize path planner metrics

    Exemples

    réduire tout

    Créez une carte d'occupation à partir d'un exemple de carte.

    load("exampleMaps.mat","simpleMap");
    map = occupancyMap(simpleMap);

    Créez un validateur d'état avec stateSpaceSE2 en utilisant la carte.

    sv = validatorOccupancyMap(stateSpaceSE2,Map=map);

    Spécifiez les états de départ et d’objectif.

    start = [5 8 pi/2];
    goal = [7 18 pi/2];

    Créez un objet plannerBenchmark .

    pbo = plannerBenchmark(sv,start,goal);

    Définissez les handles de fonction pour les fonctions d'initialisation des planificateurs.

    plannerHAFcn = @(sv)plannerHybridAStar(sv);
    plannerRRTSFcn = @(sv)plannerRRTStar(sv.StateSpace,sv);

    Définissez le handle de fonction pour la fonction de plan, qui est commun aux deux planificateurs.

    plnFcn = @(initOut,s,g)plan(initOut,s,g);

    Ajoutez les planificateurs de chemin pour l’analyse comparative.

    addPlanner(pbo,plnFcn,plannerHAFcn);
    addPlanner(pbo,plnFcn,plannerRRTSFcn,PlannerName="ppRRTStar");

    Définissez le rng pour des résultats répétitifs.

    rng('default')

    Exécutez les planificateurs de chemin le nombre de fois spécifié dans runCount pour collecter des métriques.

    runCount = 5;
    runPlanner(pbo,runCount)
    Initializing plannerHAFcn_plnFcn ...
    Done.
    Planning a path from the start pose (5 8 1.5708) to the goal pose (7 18 1.5708) using plannerHAFcn_plnFcn.
    Executing run 1.
    Executing run 2.
    Executing run 3.
    Executing run 4.
    Executing run 5.
    Initializing ppRRTStar ...
    Done.
    Planning a path from the start pose (5 8 1.5708) to the goal pose (7 18 1.5708) using ppRRTStar.
    Executing run 1.
    Executing run 2.
    Executing run 3.
    Executing run 4.
    Executing run 5.
    

    Métrique de longueur de chemin d’accès pour toutes les exécutions sur l’environnement.

    [pLenSummary,pLenData] = metric(pbo,"pathLength")
    pLenSummary=2×4 table
                                Mean     Median    StdDev     sampleSize
                               ______    ______    _______    __________
    
        plannerHAFcn_plnFcn    10.349    10.349          0        5     
        ppRRTStar               12.84      12.9    0.67112        5     
    
    
    pLenData=2×5 table
                                Run1      Run2      Run3      Run4      Run5 
                               ______    ______    ______    ______    ______
    
        plannerHAFcn_plnFcn    10.349    10.349    10.349    10.349    10.349
        ppRRTStar                13.8      12.9      12.2        12      13.3
    
    

    Visualisez toutes les mesures.

    show(pbo)

    Figure contains 6 axes objects. Axes object 1 with title clearance, xlabel Planner, ylabel clearance contains an object of type boxchart. Axes object 2 with title executionTime, xlabel Planner, ylabel executionTime contains an object of type boxchart. Axes object 3 with title initializationTime, xlabel Planner, ylabel initializationTime contains an object of type boxchart. Axes object 4 with title isPathValid, xlabel Planner, ylabel isPathValid (SuccessRate) contains an object of type bar. Axes object 5 with title pathLength, xlabel Planner, ylabel pathLength contains an object of type boxchart. Axes object 6 with title smoothness, xlabel Planner, ylabel smoothness contains an object of type boxchart.

    Inspectez attentivement la métrique de dégagement.

    figure
    show(pbo,"clearance")

    Figure contains an axes object. The axes object with xlabel Planner, ylabel clearance contains an object of type boxchart.

    Historique des versions

    Introduit dans R2022a