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.

show

Visualizar segmento de ruta

Desde R2019b

Descripción

ejemplo

show(pathSeg) traza el segmento de ruta con las posiciones inicial y final y sus rumbos.

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

Ejemplos

contraer todo

Cree un objeto dubinsConnection .

dubConnObj = dubinsConnection;

Defina las poses de inicio y objetivo 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;

Defina las poses de inicio y objetivo 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 = 1x5 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. Reducir el 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 = 1x5 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;

Defina las poses de inicio y objetivo 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
      ⋮

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

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.

Antes de R2021a, use comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'Headings',{'transitions'}

Ejes sobre los que trazar la ruta, especificados como un identificador 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 desactivar todas las visualizaciones de 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