show
Descripción
show(
visualiza la ruta de referencia y la trayectoria de los candidatos generados por la función planner
)plan
. La trayectoria se muestra como un gráfico de líneas. El gráfico también incluye el modo de información de datos, que se puede utilizar para visualizar el vector de viabilidad y el índice de la trayectoria de la propiedad TrajectoryList .
show(
especifica opciones adicionales usando uno o más planner
,Name,Value
)Name,Value
argumentos de par.
Ejemplos
Planificación óptima de trayectoria en el espacio Frenet
Este ejemplo muestra cómo planificar una trayectoria óptima utilizando un objeto trajectoryOptimalFrenet
.
Crear y asignar mapa al validador de estado
Cree un objeto de validación de estado para verificar colisiones.
stateValidator = validatorOccupancyMap;
Crea un mapa de cuadrícula de obstáculos.
grid = zeros(50,100); grid(24:26,48:53) = 1;
Crea un binaryOccupancyMap
con el mapa de cuadrícula.
map = binaryOccupancyMap(grid);
Asigne el mapa y los límites estatales al validador estatal.
stateValidator.Map = map; stateValidator.StateSpace.StateBounds(1:2,:) = [map.XWorldLimits; map.YWorldLimits];
Planificar y visualizar la trayectoria
Cree una ruta de referencia para que la siga el planificador.
refPath = [0,25;100,25];
Inicialice el objeto del planificador con la ruta de referencia y el validador de estado.
planner = trajectoryOptimalFrenet(refPath,stateValidator);
Asigne valores de estado terminal longitudinal, desviación lateral y aceleración máxima.
planner.TerminalStates.Longitudinal = 100; planner.TerminalStates.Lateral = -10:5:10; planner.FeasibilityParameters.MaxAcceleration = 10;
Especifique el valor de compensación de desviación cerca del estado terminal lateral izquierdo para priorizar los cambios de carril izquierdo.
planner.DeviationOffset = 5;
Planificación de trayectoria
Estado cartesiano inicial del vehículo.
initCartState = [0 25 pi/9 0 0 0];
Convierta el estado cartesiano del vehículo al estado de Frenet.
initFrenetState = cart2frenet(planner,initCartState);
Planifique una trayectoria desde el estado inicial de Frenet.
plan(planner,initFrenetState);
Visualización de trayectoria
Visualiza el mapa y las trayectorias.
show(map) hold on show(planner,'Trajectory','all')
Partición de estados terminales longitudinales en la generación de trayectorias
Este ejemplo muestra cómo dividir los estados terminales longitudinales en la planificación de trayectoria óptima utilizando un objeto trajectoryOptimalFrenet
.
Crear y asignar mapa al validador de estado
Cree un objeto de validación de estado para verificar colisiones.
stateValidator = validatorOccupancyMap;
Crea un mapa de cuadrícula de obstáculos.
grid = zeros(50,100); grid(25:27,28:33) = 1; grid(16:18,37:42) = 1; grid(29:31,72:77) = 1;
Crea un binaryOccupancyMap
con el mapa de cuadrícula.
map = binaryOccupancyMap(grid);
Asigne el mapa y los límites estatales al validador estatal.
stateValidator.Map = map; stateValidator.StateSpace.StateBounds(1:2,:) = [map.XWorldLimits; map.YWorldLimits];
Planificar y visualizar la trayectoria
Cree una ruta de referencia para que la siga el planificador.
refPath = [0,25;30,30;75,20;100,25];
Inicialice el objeto del planificador con la ruta de referencia y el validador de estado.
planner = trajectoryOptimalFrenet(refPath,stateValidator);
Asigne valores de estado terminal longitudinal, desviación lateral y aceleración máxima.
planner.TerminalStates.Longitudinal = 100; planner.TerminalStates.Lateral = -5:5:5; planner.FeasibilityParameters.MaxAcceleration = 10;
Asigne el número de particiones para el estado terminal longitudinal.
planner.NumSegments = 3;
Planificación de trayectoria
Estado Frenet inicial del vehículo.
initFrenetState = zeros(1,6);
Planifique una trayectoria desde el estado inicial de Frenet.
plan(planner,initFrenetState);
Visualización de trayectoria
Visualiza el mapa y las trayectorias.
show(map) hold on show(planner,'Trajectory','all') hold on
Generar límites de carril
Calcule el final de la ruta de referencia como estado de Frenet.
refPathEnd = cart2frenet(planner,[planner.Waypoints(end,:) 0 0 0 0]);
Calcule los desplazamientos de carril en ambos lados de los estados terminales laterales con un valor de ancho de medio carril.
laneOffsets = unique([planner.TerminalStates.Lateral+2.5 planner.TerminalStates.Lateral-2.5]);
Calcular posiciones de carriles en estado cartesiano.
numLaneOffsets = numel(laneOffsets); xRefPathEnd = ceil(refPathEnd(1)); laneXY = zeros((numLaneOffsets*xRefPathEnd)+numLaneOffsets,2); xIndex = 0; for laneID = 1:numLaneOffsets for x = 1:xRefPathEnd laneCart = frenet2cart(planner,[x 0 0 laneOffsets(laneID) 0 0]); xIndex = xIndex + 1; laneXY(xIndex,:) = laneCart(1:2); end xIndex = xIndex + 1; laneXY(xIndex,:) = NaN(1,2); end
Trazar los límites de los carriles.
plot(laneXY(:,1),laneXY(:,2),'LineWidth',0.5,'Color',[0.5 0.5 0.5],'DisplayName','Lane Boundaries','LineStyle','--')
Argumentos de entrada
planner
— Planificador de trayectoria óptimo en el espacio Frenet.
trajectoryOptimalFrenet
objeto
Planificador de trayectoria óptima en el espacio Frenet, especificado como un objeto trajectoryOptimalFrenet
.
Argumentos de par nombre-valor
Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de los otros argumentos, pero el orden de los pares no importa.
Antes de R2021a, utilice comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: 'Trajectory','all'
Trajectory
— Opción de visualización de trayectoria
'optimal'
(predeterminado) | 'all'
Opción de visualización de trayectoria, especificada como el par separado por comas que consta de 'Trajectory'
y 'optimal'
o 'all'
.
ReferencePath
— Opción de visualización de ruta de referencia
'on'
(predeterminado) | 'off'
Opción de visualización de ruta de referencia, especificada como el par separado por comas que consta de 'ReferencePath'
y 'on'
o 'off'
.
TrajectoryColor
— Opción de visualización en color de trayectoria
'velocity'
(predeterminado) | 'acceleration'
| 'cost'
| 'none'
Opción de visualización en color de trayectoria, especificada como el par separado por comas que consta de 'TrajectoryColor'
y uno de los siguientes:
'acceleration'
'cost'
'velocity'
'none'
Establezca esta propiedad para mostrar la trayectoria especificada como un degradado de color a lo largo de la ruta especificada.
Argumentos de salida
Historial de versiones
Introducido en R2019b
Consulte también
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)