append
Descripción
append(
agrega una secuencia de estados pathObj
,states
,controls
,targets
,durations
)states
, controla controls
, apunta a targets
y duraciones durations
, hasta el final de la ruta. Si la ruta está vacía, la entrada states
debe tener una fila más que los otros vectores y matrices de entrada. Si la ruta ya contiene puntos, la función aplica el primer control al último estado de la ruta actual.
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
— Ruta de control
navControlPath
Ruta de control, especificada como un objeto navPathControl
.
Tipos de datos: double
states
— Serie de estados para la ruta.
n-por- m matriz
Serie de estados para la ruta, especificada como una matriz n-por- m . n es el número de puntos a agregar a la ruta. m es la dimensión del vector de estado.
Nota
Si el objeto de ruta está vacío, la entrada states
debe ser una matriz (n+1)-por- m .
Tipos de datos: double
controls
— Entrada de control para cada estado.
n-por- m matriz
Entrada de control para cada estado, especificada como una matriz n-por- m . n es el número de puntos a agregar a la ruta. m es la dimensión del vector de estado.
Tipos de datos: double
targets
— Estado objetivo para cada estado en la ruta
n-vector de elemento en segundos
Estado objetivo para cada estado en la ruta, especificado como una matriz n-por- m . n es el número de puntos a agregar a la ruta. m es la dimensión del vector de estado.
Tipos de datos: double
durations
— Duración de cada entrada de control
n-vector de elemento en segundos
Duración de cada entrada de control, especificada como un vector de elemento n en segundos. n es el número de puntos a agregar a la ruta.
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)