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.

interpolate

Interpolar la ruta de referencia en las longitudes de arco proporcionadas

Descripción

pathPoints = interpolate(refPath,arclengths) interpola la ruta de referencia en las longitudes de arco proporcionadas y devuelve los puntos interpolados en la ruta en coordenadas globales.

ejemplo

Ejemplos

contraer todo

Genere una ruta de referencia a partir de un conjunto de puntos de referencia.

waypoints = [0 0; 50 20; 100 0; 150 10];
refPath = referencePathFrenet(waypoints);

Crea un objeto trajectoryGeneratorFrenet a partir de la ruta de referencia.

connector = trajectoryGeneratorFrenet(refPath);

Genera una trayectoria de cinco segundos entre el origen de la ruta y un punto a 30 metros de la ruta como afirma Frenet.

initCartState = refPath.SegmentParameters(1,:);
initFrenetState = global2frenet(refPath,initCartState);
termFrenetState = initFrenetState + [30 zeros(1,5)];
frenetTraj = connect(connector,initFrenetState,termFrenetState,5);

Convierta la trayectoria a los estados globales.

globalTraj = frenet2global(refPath,frenetTraj.Trajectory);

Muestra la ruta de referencia y la trayectoria.

show(refPath);
axis equal
hold on
plot(globalTraj(:,1),globalTraj(:,2),'b')

Especifique puntos globales y busque los puntos más cercanos en la ruta de referencia.

globalPoints = waypoints(2:end,:) + [20 -50];
nearestPathPoint = closestPoint(refPath,globalPoints);

Muestra los puntos globales y los puntos más cercanos en la ruta de referencia.

plot(globalPoints(:,1),globalPoints(:,2),'r*','MarkerSize',10)
plot(nearestPathPoint(:,1),nearestPathPoint(:,2),'b*','MarkerSize',10)

Interpola entre las longitudes de arco de los dos primeros puntos más cercanos a lo largo de la ruta de referencia.

arclengths = linspace(nearestPathPoint(1,6),nearestPathPoint(2,6),10);
pathStates = interpolate(refPath,arclengths);

Muestra los waypoints interpolados.

plot(pathStates(:,1),pathStates(:,2),'g')
legend(["Waypoints","Reference Path","Trajectory to 30m",...
        "Global Points","Closest Points","Interpolated Path Points"])

Figure contains an axes object. The axes object contains 6 objects of type line. One or more of the lines displays its values using only markers These objects represent Waypoints, Reference Path, Trajectory to 30m, Global Points, Closest Points, Interpolated Path Points.

Argumentos de entrada

contraer todo

Ruta de referencia, especificada como un objeto referencePathFrenet.

Distancias a lo largo de la ruta de referencia, especificadas como un vector de elementos N. N es el número de longitudes de arco en las que se muestrearán los puntos. Cada distancia está en metros.

Argumentos de salida

contraer todo

Puntos en la ruta de referencia, devueltos como una matriz numérica N por 6 con filas de formato [x y theta kappa dkappa s], donde:

  • x y y theta — estado SE(2) expresado en coordenadas globales, con x y y en metros y theta en radianes

  • kappa — Curvatura, o inversa del radio, en m-1

  • dkappa — Derivada de la curvatura con respecto a la longitud del arco en m-2

  • s — Longitud del arco, o distancia a lo largo de la trayectoria desde el origen de la trayectoria, en metros

N es el número de puntos muestreados a lo largo de la ruta de referencia.

Capacidades ampliadas

expandir todo

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

Historial de versiones

Introducido en R2020b