show
Visualizar trayectorias
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. La gráfica también incluye el modo datatip, que se puede utilizar para visualizar el vector de viabilidad y el índice de la trayectoria desde la propiedad TrajectoryList.
show(
especifica opciones adicionales utilizando uno o más argumentos de par planner
,Name,Value
)Name,Value
.
Ejemplos
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];
Convertir 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')
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
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.
En versiones anteriores a R2021a, use comas para separar cada nombre y valor, y encierre Name
entre comillas.
Ejemplo: 'Trajectory','all'
Opción de visualización de trayectoria, especificada como el par separado por comas que consta de 'Trajectory'
y 'optimal'
o 'all'
.
Opción de visualización de ruta de referencia, especificada como el par separado por comas que consta de 'ReferencePath'
y 'on'
o 'off'
.
Opción de visualización del color de la 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
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- 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)