Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

addPlanner

Agregar un planificador de rutas para realizar evaluaciones comparativas

Desde R2022a

    Descripción

    addPlanner(plannerBM,planFcn) agrega la función de planificación de un planificador como un identificador de función planFcn al objeto plannerBenchmark.

    addPlanner(plannerBM,planFcn,initializationFcn) también agrega la función de inicialización de un planificador como un identificador de función initializationFcn al objeto plannerBenchmark.

    ejemplo

    addPlanner(___,Name=Value) especifica las opciones mediante uno o más argumentos nombre-valor, además de cualquier combinación de argumentos de entrada de las sintaxis anteriores.

    ejemplo

    Ejemplos

    contraer todo

    Cree un mapa de ocupación a partir de un mapa de ejemplo.

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

    Cree un validador de estado con stateSpaceSE2 usando el mapa.

    sv = validatorOccupancyMap(stateSpaceSE2,Map=map);

    Especifique los estados de inicio y objetivo.

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

    Cree un objeto plannerBenchmark.

    pbo = plannerBenchmark(sv,start,goal);

    Defina los identificadores de funciones para las funciones de inicialización de los planificadores.

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

    Defina el identificador de función para la función del plan, que es común para ambos planificadores.

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

    Agregue los planificadores de ruta para realizar evaluaciones comparativas.

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

    Establezca rng para obtener resultados repetitivos.

    rng('default')

    Ejecute los planificadores de rutas la cantidad de veces especificada en runCount para recopilar métricas.

    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.
    

    Acceda a la métrica de longitud de ruta para todas las ejecuciones en el entorno.

    [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
    
    

    Visualiza todas las métricas.

    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.

    Inspeccione de cerca la métrica de espacio libre.

    figure
    show(pbo,"clearance")

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

    Argumentos de entrada

    contraer todo

    Punto de referencia del planificador de rutas, especificado como un objeto plannerBenchmark.

    Función de planificación del planificador de rutas, especificada como identificador de función.

    El identificador de la función debe tener el formato @(initOut,start,goal)planFcn(...), donde initOut es la salida de la función de inicialización.

    Si no se especifica la entrada initializationFcn, el identificador de función debe ser @(env,start,goal)planFcn(...), donde env es la propiedad Environment del objeto plannerBenchmark.

    La primera salida de planFcn debe ser un objeto navPath, una matriz m por 2 o m por 3.

    Tipos de datos: function_handle

    Función de inicialización del planificador de ruta, especificada como identificador de función.

    El identificador de la función debe tener el formato @(env)initializationFcn(...), donde env es la propiedad Environment del objeto plannerBenchmark.

    La salida de initializationFcn es la primera entrada al identificador de función planFcn.

    Tipos de datos: function_handle

    Argumentos de par nombre-valor

    contraer todo

    Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.

    En versiones anteriores a R2021a, use comas para separar cada nombre y valor, y encierre Name entre comillas.

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

    Nombre del planificador, especificado como vector de caracteres o escalar de cadena.

    El nombre del planificador predeterminado depende de uno de los siguientes:

    • Si los nombres de las variables del espacio de trabajo initializationFcn y planFcn son initVar y planVar, respectivamente, el nombre del planificador predeterminado será "initVar_planVar".

    • Si no se especifica la entrada opcional initializationFcn, el nombre del planificador predeterminado será "planVar".

    • Si los identificadores de función se especifican como funciones anónimas directamente dentro de la función addPlanner, el nombre del planificador predeterminado será "CustomInitFcn_CustomPlanFcn".

    • Si no se especifica la entrada opcional initializationFcn y el identificador de función planFcn se especifica directamente como una función anónima, el nombre del planificador predeterminado será "CustomPlanFcn".

    Tipos de datos: char | string

    Número de resultados esperados de la función del plan, especificado como un escalar positivo.

    Tipos de datos: single | double

    Historial de versiones

    Introducido en R2022a

    Consulte también

    Objetos

    Funciones