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.

stateSpaceReedsShepp

Espacio de estados para vehículos Reeds-Shepp

Desde R2019b

Descripción

El objeto stateSpaceReedsShepp almacena parámetros y estados en el espacio de estados de Reeds-Shepp, que se compone de vectores de estado representados por [x, y, θ]. x y y son coordenadas cartesianas y θ es el ángulo de orientación. El espacio de estados de Reeds-Shepp tiene un límite inferior en el radio de giro (especificado por la propiedad MinTurningRadius en el objeto) y costes directos e inversos (especificados por la ForwardCost y ReverseCost propiedades en el objeto) para navegar entre estados.

Creación

Descripción

ejemplo

space = stateSpaceReedsShepp crea un objeto de espacio de estados de Reeds-Shepp con límites de estado predeterminados para x, y y θ.

sapce = stateSpaceReedsShepp(bounds) especifica bounds para x, y y θ Los valores de estado más allá de los límites se truncan hasta los límites. La entrada, bounds, establece el valor de la propiedad StateBounds .

Propiedades

expandir todo

Nombre del espacio de estados, especificado como una cadena.

Esta propiedad o parámetro es de solo lectura.

Dimensión del espacio de estados, especificada como un entero positivo.

Límites de variables de estado, especificadas como una matriz de valor real de 3 por 2.

  • La primera fila especifica los límites inferior y superior para el estado x en metros.

  • La segunda fila especifica los límites inferior y superior para el estado y en metros.

  • La tercera fila especifica los límites inferior y superior para el estado θ en radianes.

Tipos de datos: double

Radio de giro mínimo en metros, especificado como escalar positivo. El radio de giro mínimo es para el círculo más pequeño que el vehículo puede hacer con la dirección máxima en una sola dirección.

Multiplicador de costes para el movimiento hacia adelante, especificado como un escalar positivo. Aumentar el coste para penalizar el avance.

Multiplicador de coste para movimiento inverso, especificado como un escalar positivo. Aumentar el coste para penalizar el movimiento inverso.

Funciones del objeto

copyCrear una copia profunda del objeto del espacio de estados
distanceDistancia entre dos estados
enforceStateBoundsReducir los límites de estado a estado
interpolateInterpolar entre estados
sampleGaussianEstado de muestra usando distribución gaussiana
sampleUniformEstado de la muestra usando distribución uniforme.

Ejemplos

contraer todo

Cree un espacio de estado de ReedsShepp.

ss = stateSpaceReedsShepp;

Cree un validador de estado basado en occupanyMap utilizando el espacio de estado creado.

sv = validatorOccupancyMap(ss);

Cree un mapa de ocupación a partir de un mapa de ejemplo y establezca la resolución del mapa en 10 celdas/metro.

load exampleMaps
map = occupancyMap(simpleMap,10);
sv.Map = map;

Establezca la distancia de validación para el validador.

sv.ValidationDistance = 0.01;

Actualice los límites del espacio de estados para que sean los mismos que los límites del mapa.

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits; [-pi pi]];

Cree el planificador de rutas y aumente la distancia máxima de conexión.

planner = plannerRRT(ss,sv);
planner.MaxConnectionDistance = 0.3;

Establezca los estados de inicio y objetivo.

start = [0.5,0.5,0];
goal = [2.5,0.2,0];

Planifique una ruta con la configuración predeterminada.

rng(100,'twister'); % repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

Visualiza los resultados.

show(map); 
hold on;
plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1), pthObj.States(:,2),'r-','LineWidth',2) % draw path

Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, line.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Historial de versiones

Introducido en R2019b