Main Content

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

plannerBenchmark

Planificadores de ruta de referencia utilizando métricas generadas

Desde R2022a

    Descripción

    El objeto plannerBenchmark compara los planificadores de rutas 2-D ejecutándolos en un entorno específico con poses de inicio y objetivo específicas.

    El objeto plannerBenchmark calcula las siguientes métricas:

    • clearance — Distancia mínima a obstáculos en el entorno

    • executionTime — Tiempo que tarda la función del plan en ejecutarse

    • initializationTime — Tiempo que tarda la función de inicialización en ejecutarse

    • isPathValid — Si es verdadero, representa que la ruta existe y está libre de colisiones

    • pathLength — Longitud de la ruta generada

    • smoothness — Suavidad de la ruta para todas las poses

    Las métricas como executionTime y initializationTime se calculan durante la ejecución de los planificadores. Las métricas como clearance, isPathValid, pathLength y smoothness se calculan a partir de las salidas de ruta resultantes. después de ejecutar los planificadores. Las métricas calculadas se resumen estadísticamente en forma de tabla y se pueden visualizar como gráficos.

    Creación

    Descripción

    ejemplo

    plannerBM = plannerBenchmark(environment,start,goal) crea un objeto plannerBenchmark con el environment, start y goal especificados. $ poses. Las entradas environment, start y goal establecen el Environment, Start y Goal propiedades, respectivamente.

    Propiedades

    expandir todo

    Entorno para la evaluación comparativa de los planificadores de rutas, especificado como occupancyMap, binaryOccupancyMap o validatorOccupancyMap objeto.

    Pose inicial de la ruta para todos los planificadores, especificada como un vector de la forma [x y] o [x y theta].

    Tipos de datos: single | double

    Pose objetivo de la ruta para todos los planificadores, especificada como un vector de la forma [x y] o [x y theta].

    Tipos de datos: single | double

    Esta propiedad o parámetro es de solo lectura.

    Salida de los planificadores después de la ejecución, devuelta como una estructura que contiene la salida de la función de inicialización y la salida de la función de plan para todos los planificadores. Los campos de la estructura se nombran según el nombre del planificador especificado en la función addPlanner .

    Cada estructura contiene una salida de inicialización y una salida de función de plan. La salida de la función del plan es además una estructura que contiene la salida de la función del plan para cada ejecución del planificador.

    Tipos de datos: struct

    Funciones del objeto

    addPlannerAgregar un planificador de rutas para realizar evaluaciones comparativas
    copyCrear una copia profunda del objeto PlannerBenchmark
    metricMétricas del planificador de ruta de retorno
    reportCrear informe de referencia
    runPlannerEjecutar planificadores de rutas
    showVisualice las métricas del planificador de rutas

    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 rutas para realizar evaluaciones comparativas.

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

    Configure el rng para 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 xlabel Planner, ylabel clearance contains an object of type boxchart.

    Historial de versiones

    Introducido en R2022a