Contenu principal

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

addPlanner

Ajouter un planificateur de chemin pour l'analyse comparative

Depuis R2022a

    Description

    addPlanner(plannerBM,planFcn) ajoute la fonction de plan d'un planificateur en tant que descripteur de fonction planFcn à l'objet plannerBenchmark .

    addPlanner(plannerBM,planFcn,initializationFcn) ajoute également la fonction d'initialisation d'un planificateur en tant que descripteur de fonction initializationFcn à l'objet plannerBenchmark .

    exemple

    addPlanner(___,Name=Value) spécifie les options utilisant un ou plusieurs arguments nom-valeur en plus de toute combinaison d'arguments d'entrée des syntaxes précédentes.

    exemple

    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.

    Arguments d'entrée

    réduire tout

    Benchmark du planificateur de chemin, spécifié comme objet plannerBenchmark .

    Fonction de plan du planificateur de chemin, spécifiée comme handle de fonction.

    Le handle de fonction doit être de la forme @(initOut,start,goal)planFcn(...), où initOut est la sortie de la fonction d'initialisation.

    Si l'entrée initializationFcn n'est pas spécifiée, le handle de fonction doit être @(env,start,goal)planFcn(...), où env est le Environment Propriétéde l'objet plannerBenchmark .

    La première sortie de planFcn doit être soit un objet navPath , m-by-2, ou m Matrice $$-par-3.

    Types de données : function_handle

    Fonction d'initialisation du planificateur de chemin, spécifiée comme handle de fonction.

    Le descripteur de fonction doit être de la forme @(env)initializationFcn(...), où env est la propriété Environment de plannerBenchmark. objet $ .

    La sortie de initializationFcn est la première entrée du handle de fonction planFcn .

    Types de données : function_handle

    Arguments nom-valeur

    réduire tout

    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.

    Avant R2021a, utilisez des virgules pour séparer chaque nom et valeur, et mettez Name entre guillemets.

    Exemple : addPlanner(pbo,plnFcn,plannerRRTSFcn,PlannerName="ppRRTStar")

    Nom du planificateur, spécifié sous forme de vecteur de caractères ou de chaîne scalaire.

    Le nom du planificateur par défaut dépend de l'un des éléments suivants :

    • Si le nom de la variable d'espace de travail initializationFcn et planFcn est initVar et planVar, respectivement, le planificateur par défaut le nom sera "initVar_planVar".

    • Si l'entrée facultative initializationFcn n'est pas spécifiée, le nom du planificateur par défaut sera "planVar".

    • Si les descripteurs de fonction sont spécifiés en tant que fonctions anonymes directement dans la fonction addPlanner , le nom du planificateur par défaut sera "CustomInitFcn_CustomPlanFcn".

    • Si l'entrée facultative initializationFcn n'est pas spécifiée et que le handle de fonction planFcn est spécifié directement en tant que fonction anonyme, alors le nom du planificateur par défaut sera "CustomPlanFcn".

    Types de données : char | string

    Nombre de résultats attendus de la fonction de plan, spécifié sous forme de scalaire positif.

    Types de données : single | double

    Historique des versions

    Introduit dans R2022a

    Voir aussi

    Objets

    Fonctions