Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

sample

Calcular muestras de estado utilizando el muestreador de estado de MPNnet

Desde R2023b

Descripción

states = sample(sampler) calcula una muestra de estado utilizando un muestreador de estado de Motion Planning Networks (MPNet).

states = sample(sampler,numsamples) calcula el número especificado de muestras de estado.

ejemplo

Ejemplos

contraer todo

Cargar MPNet previamente entrenado

Cargue un archivo de datos que contenga un MPNet previamente entrenado en el espacio de trabajo de MATLAB® . El MPNet ha sido entrenado en varios mapas de laberintos 2-D con anchos y alturas de 10 metros y resoluciones de 2,5 celdas por metro. Cada mapa de laberinto contiene un ancho de paso de 5 celdas de cuadrícula y un espesor de pared de 1 celda de cuadrícula.

data = load("mazeMapTrainedMPNET.mat")
data = struct with fields:
      encodingSize: [9 9]
       lossWeights: [100 100 0]
        mazeParams: {[5]  [1]  'MapSize'  [10 10]  'MapResolution'  [2.5000]}
       stateBounds: [3×2 double]
    trainedNetwork: [1×1 dlnetwork]

Crear mapa de laberinto para muestreo

Cree un mapa de laberinto aleatorio para tomar muestras. El tamaño de la cuadrícula (MapSize×MapResolution) debe ser el mismo que el de los mapas utilizados para entrenar MPNet.

map = mapMaze(5,1,MapSize=[10 10],MapResolution=2.5);

Especifique la pose inicial y la pose objetivo.

start = [1 1 0];
goal = [9 9 0];

Crear muestra de estado de MPNnet

Especifique los límites de estado y cree un objeto de espacio de estado SE(2).

x = map.XWorldLimits;
y = map.YWorldLimits;
z = [-pi pi];
stateBounds = [x; y; z];
stateSpace = stateSpaceSE2(stateBounds);

Configure el objeto mpnetSE2 para utilizar el MPNet entrenado previamente para predecir muestras de estado en un mapa aleatorio. Establezca los valores de la propiedad EncodingSize del objeto mpnetSE2 en los valores utilizados para entrenar la red.

mpnet = mpnetSE2(Network=data.trainedNetwork,StateBounds=stateBounds,EncodingSize=data.encodingSize);

Cree un muestreador de estado de MPNnet para los ejemplos de estado informático. Especifique el entorno del mapa, la pose inicial y la pose objetivo como entradas al muestreador de estado.

sampler = stateSamplerMPNET(stateSpace,mpnet,Environment=map,StartState=start,GoalState=goal);

Calcular muestras de estado y trazar resultados

Genere 40 muestras de estado utilizando el muestreador de estado de MPNet.

states = sample(sampler,40);

Trazar los datos de entrada y las muestras calculadas.

show(map)
hold on
plot(start(1),start(2),plannerLineSpec.start{:})
plot(goal(1),goal(2),plannerLineSpec.goal{:})
plot(states(:,1),states(:,2),plannerLineSpec.state{:})
hold off
legend(Location="bestoutside")

Figure contains an axes object. The axes object with title Binary Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 4 objects of type image, line. One or more of the lines displays its values using only markers These objects represent Start, Goal, State.

Argumentos de entrada

contraer todo

Muestreador de estado de MPNet, especificado como un objeto stateSamplerMPNET.

Número de muestras, especificado como un número entero positivo.

Tipos de datos: double

Argumentos de salida

contraer todo

Muestras de estado, devueltas como una matriz M por N de valores reales. M es el número de muestras de estado. N es el número de variables de estado. Cada fila de la matriz contiene variables de estado correspondientes al modelo de espacio de estados de entrada. Para el modelo de espacio de estados SE(2), N es 3 y cada fila tiene la forma [x y θ].

Tipos de datos: double

Capacidades ampliadas

expandir todo

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

Historial de versiones

Introducido en R2023b

Consulte también

Objetos

Funciones