pathDuration
Descripción
Ejemplos
Combine dos rutas cinedinámicos con controles para robot móvil
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
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
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
Argumentos de entrada
pathObj
— Objeto de ruta de control
navControlPath
objeto
Ruta de control, especificada como un objeto navPathControl
.
Tipos de datos: double
Argumentos de salida
totalTime
— Duración total de la ruta de control
escalar positivo
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
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)