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.

stateSpaceDubins

Espacio de estados para vehículos Dubins

Desde R2019b

Descripción

El objeto stateSpaceDubins almacena parámetros y estados en el espacio de estados de Dubins, 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 Dubins tiene un límite inferior en el radio de giro (especificado por la propiedad MinTurningRadius en el objeto) para navegar entre estados y utiliza la curva más corta factible para conectar estados.

Creación

Descripción

ejemplo

space = stateSpaceDubins crea un objeto de espacio de estados Dubins con límites de estado predeterminados para x, y y θ.

space = stateSpaceDubins(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, le permite establecer 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.

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 Dubins y establezca el radio de Turing mínimo en 0.2.

ss = stateSpaceDubins;
ss.MinTurningRadius = 0.2;

Cree un validador de estado basado en occupancyMap 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