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.

stateSpaceSE2

Espacio de estados SE(2)

Desde R2019b

Descripción

El objeto stateSpaceSE2 almacena parámetros y estados en el espacio de estados SE(2), 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 objeto utiliza la distancia euclidiana para calcular la distancia y utiliza la interpolación lineal para calcular la traslación y rotación del estado.

Creación

Descripción

ejemplo

space = stateSpaceSE2 crea un objeto de espacio de estados SE(2) con límites de estado predeterminados para x, y y θ.

space = stateSpaceSE2(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 del estado x en metros.

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

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

Tipos de datos: double

Peso aplicado al cálculo de distancias xey, especificado como un escalar real no negativo.

En el objeto, la distancia se calcula como:

d=(wxy(dx2+dy2))+wθdθ2

w xy es el peso aplicado a las coordenadas x y y , y w θ es el peso aplicado a la coordenada θ . d x , d y y d θ son las distancias en la dirección x, y y θ , respectivamente.

Tipos de datos: double

Peso aplicado al cálculo de distancia θ , especificado como un escalar real no negativo.

En el objeto, la distancia se calcula como:

d=(wxy(dx2+dy2))+wθdθ2

w xy es el peso aplicado a las coordenadas x y y , y w θ es el peso aplicado a la coordenada θ . d x , d y y d θ son las distancias en la dirección x, y y θ , respectivamente.

Tipos de datos: double

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 estados SE(2).

ss = stateSpaceSE2;

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'); % for repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

Visualiza los resultados.

map.show; 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