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.

interpolate

Interpolar poses a lo largo del segmento de ruta

Desde R2019b

Descripción

poses = interpolate(pathSeg) interpola a lo largo del segmento de ruta en las transiciones entre tipos de movimiento.

ejemplo

poses = interpolate(pathSeg,lengths) interpola a lo largo del segmento de ruta en las longitudes especificadas a lo largo de la ruta. Las transiciones entre tipos de movimiento siempre se incluyen.

[poses,directions] = interpolate(___) también devuelve la dirección del movimiento a lo largo de la ruta para cada sección como un vector de 1s (hacia adelante) y –1s (hacia atrás) usando las entradas anteriores.

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.

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 .

Longitudes a lo largo de la ruta para interpolar, especificadas como un vector numérico positivo. Por ejemplo, especifique [0:0.1:pathSegObj{1}.Length] para interpolar cada 0,1 metros a lo largo de la ruta. Las transiciones entre tipos de movimiento siempre se incluyen.

Argumentos de salida

contraer todo

Esta propiedad o parámetro es de solo lectura.

Poses interpoladas a lo largo del segmento de ruta, especificadas como una matriz [x, y, Θ]. Cada fila de la matriz corresponde a una pose interpolada diferente a lo largo de la ruta.

x y y están en metros. Θ está en radianes.

Direcciones de movimiento para cada segmento de la ruta interpolada, especificadas como un vector de 1s (hacia adelante) y –1s (hacia atrás).

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b