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.

pathDuration

Duración total transcurrida de la ruta de control

Desde R2021b

Descripción

ejemplo

totalTime = pathDuration(pathObj) devuelve la duración total transcurrida de la ruta de control.

Ejemplos

contraer todo

Establecer parámetros de estado y propagador de estado

Cargue una matriz de mapa ternario y cree un objeto occupancyMap .

load("exampleMaps","ternaryMap")
map = occupancyMap(ternaryMap,10);

Cree un propagador de estado para un modelo cinemático de bicicleta usando el mapa.

propagator = mobileRobotPropagator(Environment=map);

Establezca los límites estatales en el espacio de estados según los límites del mundo del mapa.

propagator.StateSpace.StateBounds(1:2,:) = [map.XWorldLimits; 
                                            map.YWorldLimits];

Planificar ruta

Cree el planificador de ruta a partir del propagador de estado.

planner = plannerControlRRT(propagator);

Especifique los estados de inicio y objetivo.

start = [10 15 0];
goal  = [40 30 0];

Planificar una ruta entre los estados. Para obtener resultados repetibles, reinicie el generador de números aleatorios antes de planificar.

rng("default")
path = plan(planner,start,goal);

Verifique la duración total transcurrida de la ruta de control.

pathDuration(path)
ans = 102.4000

Interpola la ruta al tamaño del paso de control del propagador.

interpolate(path)

Visualiza la ruta.

figure
show(map)
hold on
plot(start(1),start(2),"rx")
plot(goal(1),goal(2),"go")
plot(path.States(:,1),path.States(:,2),"b")
hold off

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

Planificar la ruta de regreso

Planifique una segunda ruta desde el final de la ubicación de la ruta anterior hasta el inicio.

path2 = plan(planner,path.States(end,:),start);

Verifique la duración total transcurrida de la segunda ruta.

pathDuration(path2)
ans = 100.3000

Visualiza la ruta.

figure
show(map)
hold on
plot(start(1),start(2),"rx")
plot(goal(1),goal(2),"go")
plot(path2.States(:,1),path2.States(:,2),"m")
hold off

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

Combinar rutas

Extraiga la secuencia de movimientos de la segunda ruta.

states = path2.States(2:end,:);
controls = path2.Controls;
targets = path2.TargetStates;
durations = path2.Durations;

Agregue esta secuencia al final de la primera ruta.

append(path,states,controls,targets,durations)

Interpola los nuevos segmentos en la ruta original.

interpolate(path)

Consulta la duración total transcurrida de la ruta final.

pathDuration(path)
ans = 102.4000

Visualiza la ruta.

figure
show(map)
hold on
plot(start(1),start(2),"rx")
plot(goal(1),goal(2),"go")
plot(path.States(:,1),path.States(:,2),"b")
hold off

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

Argumentos de entrada

contraer todo

Ruta de control, especificada como un objeto navPathControl .

Tipos de datos: double

Argumentos de salida

contraer todo

Duración total de la ruta de control, devuelta como un escalar positivo en segundos.

Tipos de datos: double

Historial de versiones

Introducido en R2021b

Consulte también

Objetos

Funciones