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.

plannerLineSpec.goal

Especificaciones para trazar el estado objetivo

Desde R2023b

    Descripción

    ejemplo

    spec = plannerLineSpec.goal especifica las propiedades predeterminadas de color, línea y marcador para trazar el estado objetivo.

    ejemplo

    spec = plannerLineSpec.goal(Name=Value) especifica nuevos valores para las propiedades de color, línea y marcador mediante el uso de uno o más argumentos de nombre-valor.

    [spec,structData] = plannerLineSpec.goal(___) devuelve las propiedades y sus valores como una estructura utilizando cualquier combinación de entradas de las sintaxis anteriores.

    Ejemplos

    contraer todo

    Mapa de ocupación de carga

    Cargue una cuadrícula de probabilidad de ocupación en el espacio de trabajo de MATLAB® .

    load("exampleMaps.mat","simpleMap")

    Cree un mapa de ocupación a partir de la cuadrícula de ocupación de entrada.

    map = occupancyMap(simpleMap);

    Defina los límites inferior y superior de las variables del espacio de estados x, y y theta del mapa de ocupación.

    x = map.XWorldLimits;
    y =  map.YWorldLimits;
    theta = [-pi pi];

    Especifique el estado inicial y el estado objetivo para la planificación de rutas.

    start = [2 5 0];
    goal = [22 22 0];

    Mostrar el mapa de ocupación.

    figure
    show(map)
    hold on

    Estados de inicio y objetivo de la trama

    Utilice las funciones plannerLineSpec.start y plannerLineSpec.goal para trazar los estados inicial y objetivo, respectivamente.

    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.

    Configure el planificador de rutas Bi-RRT y encuentre la ruta entre dos estados

    Cree un objeto SE(2) de espacio de estados utilizando las variables de espacio de estados especificadas.

    stateSpace = stateSpaceSE2([x; y; theta]);

    Verifique la validez de los estados en el espacio de estados de entrada utilizando un validador de estados.

    stateValidator = validatorOccupancyMap(stateSpace,Map=map);

    Configure el planificador de rutas Bi-RRT.

    planner = plannerBiRRT(stateSpace,stateValidator);

    Calcule la ruta entre el punto inicial y el punto objetivo utilizando el planificador de rutas Bi-RRT.

    [path,info] = plan(planner,start,goal)
    path = 
      navPath with properties:
    
          StateSpace: [1x1 stateSpaceSE2]
              States: [306x3 double]
           NumStates: 306
        MaxNumStates: Inf
    
    
    info = struct with fields:
              IsPathFound: 1
                 ExitFlag: 1
            NumIterations: 294
            StartTreeData: [569x3 double]
             GoalTreeData: [710x3 double]
        StartTreeNumNodes: 189
         GoalTreeNumNodes: 236
    
    

    Trazar árboles de búsqueda

    Utilice la función plannerLineSpec.tree para trazar el árbol de búsqueda directa.

    startTree = plannerLineSpec.tree;
    plot(info.StartTreeData(:,1),info.StartTreeData(:,2),startTree{:})

    Utilice la función plannerLineSpec.goalTree para trazar el árbol de búsqueda desde el estado objetivo hasta el estado inicial. Establezca el color de la línea para trazar el árbol de búsqueda desde el objetivo hasta el inicio hasta cyan.

    goalTree = plannerLineSpec.goalTree(color="cyan");
    plot(info.GoalTreeData(:,1),info.GoalTreeData(:,2),goalTree{:})
    legend

    Trazar ruta calculada

    Utilice la función plannerLineSpec.path para trazar la ruta derivada.

    plot(path.States(:,1),path.States(:,2),plannerLineSpec.path{:})
    legend(Position=[0.8 0.11 0.2 0.2])

    Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 6 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal, Tree, Goal Tree, Path.

    Mapa de ocupación de carga

    Cargue una cuadrícula de probabilidad de ocupación en el espacio de trabajo de MATLAB® .

    load("exampleMaps.mat","simpleMap")

    Cree un mapa de ocupación a partir de la cuadrícula de ocupación de entrada.

    map = occupancyMap(simpleMap);

    Defina los límites inferior y superior de las variables del espacio de estados x, y y theta del mapa de ocupación.

    x = map.XWorldLimits;
    y =  map.YWorldLimits;
    theta = [-pi pi];

    Mostrar el mapa de ocupación.

    figure
    show(map)
    hold on

    Especifique el estado inicial y el estado objetivo para la planificación de rutas.

    start = [2 5 0];
    goal = [22 22 0];

    Estados de inicio y objetivo de la trama

    Utilice las funciones plannerLineSpec.start y plannerLineSpec.goal para trazar los estados inicial y objetivo, respectivamente.

    plot(start(1),start(2),plannerLineSpec.start{:})

    Establezca el color para trazar el estado objetivo en red y trace el estado objetivo.

    goalState = plannerLineSpec.goal(MarkerEdgeColor="red",MarkerFaceColor="red");
    plot(goal(1),goal(2),goalState{:})

    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.

    Configurar el planificador de rutas RRT

    Cree un objeto SE(2) de espacio de estados utilizando las variables de espacio de estados especificadas.

    stateSpace = stateSpaceSE2([x; y; theta]);

    Verifique la validez de los estados en el espacio de estados de entrada utilizando un validador de estados.

    stateValidator = validatorOccupancyMap(stateSpace,Map=map);

    Configure el planificador de rutas RRT.

    planner = plannerRRT(stateSpace,stateValidator);

    Encuentre la ruta entre dos estados

    Calcule la ruta entre el punto inicial y el punto objetivo utilizando el planificador de ruta RRT.

    [path,info] = plan(planner,start,goal)
    path = 
      navPath with properties:
    
          StateSpace: [1x1 stateSpaceSE2]
              States: [320x3 double]
           NumStates: 320
        MaxNumStates: Inf
    
    
    info = struct with fields:
          IsPathFound: 1
             ExitFlag: 1
             NumNodes: 1192
        NumIterations: 1331
             TreeData: [3578x3 double]
    
    

    Trazar árboles de búsqueda

    Utilice la función plannerLineSpec.tree para trazar el árbol de búsqueda directa. Establezca el color para trazar el árbol de búsqueda en green.

    Además, establezca la etiqueta de leyenda en "Forward search tree".

    startTree = plannerLineSpec.tree(Color="green",DisplayName="Forward search tree");
    plot(info.TreeData(:,1),info.TreeData(:,2),startTree{:})

    Trazar ruta calculada

    Utilice la función plannerLineSpec.path para trazar la ruta derivada.

    plot(path.States(:,1),path.States(:,2),plannerLineSpec.path{:})
    legend(Position=[0.6 0.11 0.2 0.2])

    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, Forward search tree, Path.

    Argumentos de entrada

    contraer todo

    Argumentos de par nombre-valor

    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.

    Ejemplo: plannerLineSpec.goal(Color="Red")

    Color de línea, especificado como uno de estos valores:

    • Triplete RGB: especifique las intensidades de los componentes rojo, verde y azul del color como un vector de tres elementos en el orden [R G B]. Cada intensidad debe estar en el rango [0, 1]. Por ejemplo, puede especificar un tono de rosa como [1 0.5 0.8].

    • Vector de caracteres o cadena escalar: especifique el código de color hexadecimal, el nombre del color o el nombre corto del color.

    Para obtener más información sobre los tipos de valores de color y cómo especificarlos, consulte Especificar colores de gráfica.

    Estilo de línea, especificado como uno de estos valores:

    • "-" — Para una línea continua.

    • "--" — Para una línea discontinua.

    • ":" — Para una línea de puntos.

    • "-." : para una línea de puntos y guiones.

    • "none" — Para sin línea. Este es el valor predeterminado.

    Ancho de línea, especificado como un escalar numérico positivo.

    Símbolo de marcador, especificado como uno de los valores enumerados en esta tabla.

    MarcadorDescripciónMarcador resultante
    "o" Círculo

    Sample of circle marker

    "+" Signo de más

    Sample of plus sign marker

    "*" Asterisco

    Sample of asterisk marker

    "." Punto

    Sample of point marker

    "x" Cruz

    Sample of cross marker

    "_" Linea horizontal

    Sample of horizontal line marker

    "|" Linea vertical

    Sample of vertical line marker

    "square" Cuadrado

    Sample of square marker

    "diamond" Diamante

    Sample of diamond marker

    "^" Triángulo que apunta hacia arriba

    Sample of upward-pointing triangle marker

    "v" Triángulo que apunta hacia abajo

    Sample of downward-pointing triangle marker

    ">" Triángulo que apunta hacia la derecha

    Sample of right-pointing triangle marker

    "<" Triángulo que apunta hacia la izquierda

    Sample of left-pointing triangle marker

    "pentagram" Pentagrama

    Sample of pentagram marker

    "hexagram" hexagrama

    Sample of hexagram marker

    "none" Sin marcadoresNo aplica

    Tamaño del marcador, especificado como un escalar numérico positivo.

    Color del contorno del marcador, especificado como uno de estos valores:

    • Triplete RGB: especifique las intensidades de los componentes rojo, verde y azul del color como un vector de tres elementos en el orden [R G B]. Cada intensidad debe estar en el rango [0, 1]. Por ejemplo, puede especificar un tono de rosa como [1 0.5 0.8].

    • Vector de caracteres o cadena escalar: especifique el código de color hexadecimal, el nombre del color o el nombre corto del color.

    Para obtener más información sobre los tipos de valores de color y cómo especificarlos, consulte Especificar colores de gráfica.

    Color de relleno del marcador, especificado como uno de estos valores:

    • Triplete RGB: especifique las intensidades de los componentes rojo, verde y azul del color como un vector de tres elementos en el orden [R G B]. Cada intensidad debe estar en el rango [0, 1]. Por ejemplo, puede especificar un tono de rosa como [1 0.5 0.8].

    • Vector de caracteres o cadena escalar: especifique el código de color hexadecimal, el nombre del color o el nombre corto del color.

    Para obtener más información sobre los tipos de valores de color y cómo especificarlos, consulte Especificar colores de gráfica.

    Etiqueta que se incluirá en la leyenda, especificada como un vector de caracteres o una cadena escalar.

    Argumentos de salida

    contraer todo

    Especificaciones de color, línea y marcador para trazar el estado objetivo, devueltas como un arreglo de celdas de tamaño 1 por 16.

    Tipos de datos: cell

    Especificaciones para el gráfico, devueltas como una estructura con campos Color, LineStyle, LineWidth, Marker, MarkerSize, MarkerEdgecolor, MarkerFaceColor y DisplayName. Cada campo contiene el valor especificado para el argumento nombre-valor correspondiente.

    Tipos de datos: struct

    Historial de versiones

    Introducido en R2023b