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.

show

Visualizar segmento de ruta

Descripción

show(pathSeg) traza el segmento de la ruta con las posiciones de inicio y destino y sus rumbos.

ejemplo

show(pathSeg,Name,Value) también especifica pares Name,Value para controlar la configuración de visualización.

Ejemplos

contraer todo

Cree un objeto dubinsConnection.

dubConnObj = dubinsConnection;

Define las poses de inicio y destino como vectores [x y theta].

startPose = [0 0 0];
goalPose = [1 1 pi];

Calcula un segmento de ruta válido para conectar las poses.

[pathSegObj, pathCosts] = connect(dubConnObj,startPose,goalPose);

Muestra la ruta generada.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 12 objects of type line, scatter. These objects represent Path, Heading, Start Position, Goal Position.

Cree un objeto reedsSheppConnection.

reedsConnObj = reedsSheppConnection;

Define las poses de inicio y destino como vectores [x y theta].

startPose = [0 0 0];
goalPose = [1 1 pi];

Calcula un segmento de ruta válido para conectar las poses.

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);

Muestra la ruta generada. Observe la dirección de los giros.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Heading, Start Position, Goal Position.

pathSegObj{1}.MotionTypes
ans = 1×5 cell
    {'L'}    {'R'}    {'L'}    {'N'}    {'N'}

pathSegObj{1}.MotionDirections
ans = 1×5

     1    -1     1     1     1

Deshabilite esta secuencia de movimiento específica en un nuevo objeto de conexión. Reduce MinTurningRadius si el robot es más maniobrable. Aumente el coste inverso para reducir la probabilidad de que se utilicen direcciones inversas. Conecta las poses nuevamente para obtener una ruta diferente.

reedsConnObj = reedsSheppConnection('DisabledPathTypes',{'LpRnLp'});
reedsConnObj.MinTurningRadius = 0.5;
reedsConnObj.ReverseCost = 5;

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1×5 cell
    {'L'}    {'S'}    {'L'}    {'N'}    {'N'}

show(pathSegObj{1})
xlim([0 1.5])
ylim([0 1.5])

Figure contains an axes object. The axes object contains 10 objects of type line, scatter. These objects represent Forward Path, Heading, Start Position, Goal Position.

Cree un objeto dubinsConnection.

dubConnObj = dubinsConnection;

Define las poses de inicio y destino como vectores [x y theta].

startPose = [0 0 0];
goalPose = [1 1 pi];

Calcula un segmento de ruta válido para conectar las poses.

[pathSegObj,pathCosts] = connect(dubConnObj,startPose,goalPose);

Muestra la ruta generada.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 12 objects of type line, scatter. These objects represent Path, Heading, Start Position, Goal Position.

Interpola poses a lo largo de la ruta. Haz una pose cada 0,2 metros, incluidas las transiciones entre giros.

length = pathSegObj{1}.Length;
poses = interpolate(pathSegObj{1},0:0.2:length)
poses = 32×3

         0         0         0
    0.1987   -0.0199    6.0832
    0.3894   -0.0789    5.8832
    0.5646   -0.1747    5.6832
    0.7174   -0.3033    5.4832
    0.8309   -0.4436    5.3024
    0.8418   -0.4595    5.3216
    0.9718   -0.6110    5.5216
    1.1293   -0.7337    5.7216
    1.3081   -0.8226    5.9216
    1.5010   -0.8743    6.1216
    1.7003   -0.8866    0.0384
    1.8980   -0.8590    0.2384
    2.0864   -0.7927    0.4384
    2.2578   -0.6904    0.6384
      ⋮

Utilice la función quiver para trazar estas poses.

quiver(poses(:,1),poses(:,2),cos(poses(:,3)),sin(poses(:,3)),0.5)

Figure contains an axes object. The axes object contains an object of type quiver.

Argumentos de entrada

contraer todo

Segmento de ruta, especificado como un objeto dubinsPathSegment o reedsSheppPathSegment.

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: 'Headings',{'transitions'}

Ejes sobre los que se trazará la ruta, especificados como un controlador Axes.

Ángulos de rumbo que se mostrarán, especificados como un arreglo de celdas de vectores de caracteres o escalares de cadena. Las opciones son cualquier combinación de 'start','goal' y 'transitions'. Para deshabilitar la visualización de todos los encabezados, especifique {''}.

Posiciones para mostrar, especificadas como 'both', 'start', 'goal' o 'none'. La posición inicial está marcada en verde y la posición de meta está marcada en rojo.

Longitud del encabezado, especificada como escalar numérico positivo. De forma predeterminada, el valor se calcula de acuerdo con los límites de los ejes x y y del gráfico.

Tipos de datos: double

Historial de versiones

Introducido en R2019b