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.

validatorVehicleCostmap

Validador de estado basado en mapa de costes 2-D

Desde R2019b

Descripción

El objeto validatorOccupancyMap valida estados y movimientos discretizados en función del valor en un mapa de costes 2-D. Una ubicación ocupada en el mapa se interpreta como un estado no válido.

Creación

Sintaxis

Descripción

validator = validatorVehicleCostmap crea un validador de mapa de costes de vehículos asociado con un espacio de estado SE2 con configuración predeterminada.

ejemplo

validator = validatorVehicleCostmap(stateSpace) crea un validador en la definición de espacio de estados dada derivada de nav.StateSpace.

validator = validatorVehicleCostmap(stateSpace,Name,Value) especifica las propiedades Map o XYIndices usando argumentos de par Name,Value .

Propiedades

expandir todo

Espacio de estados para validar estados, especificado como una subclase de nav.StateSpace. Los objetos del espacio de estados proporcionados incluyen:

Mapa utilizado para validar estados, especificado como un objeto vehicleCostmap (Automated Driving Toolbox) .

Intervalo para el muestreo entre estados y la verificación de la validez del estado, especificado como un escalar numérico positivo.

Mapeo de variables de estado para xy-coordenadas en el vector de estado, especificado como un vector de dos elementos, [xIdx yIdx]. Por ejemplo, si un vector de estado se proporciona como [r p y x y z], las coordenadas xy son [4 5].

Mapeo de variables de estado para la coordenada theta en el vector de estado, especificada como un entero positivo. Por ejemplo, si un vector de estado se proporciona como [x y theta], la coordenada theta es 3.

Funciones del objeto

copyCrear una copia profunda del objeto del validador de estado
isStateValidComprobar si el estado es válido
isMotionValidComprobar si la ruta entre estados es válida

Ejemplos

contraer todo

Este ejemplo muestra cómo validar rutas a través de un entorno.

Cargar mapas de ejemplo. Utilice el mapa simple para crear un mapa de costes de vehículos. Especifique un radio de inflación de 1 metro.

load exampleMaps.mat
map = vehicleCostmap(double(simpleMap));
map.CollisionChecker = inflationCollisionChecker("InflationRadius",1);
plot(map)

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 2 objects of type image, patch. This object represents Inflated Areas.

Especifique una ruta aproximada a través del mapa.

path = [3 3 pi/2; 8 15 0; 17 8 -pi/2];
hold on
plot(path(:,1),path(:,2),"--o")

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 3 objects of type image, patch, line. This object represents Inflated Areas.

Cree un validador de estado utilizando la definición stateSpaceSE2 . Especifique el mapa y la distancia para interpolar y validar segmentos de ruta.

validator = validatorVehicleCostmap(stateSpaceSE2);
validator.Map = map;
validator.ValidationDistance = 0.1;

Compruebe que los puntos de la ruta sean estados válidos. Los tres puntos están en el espacio libre, por lo que se consideran válidos.

isValid = isStateValid(validator,path)
isValid = 3x1 logical array

   1
   1
   1

Verifique el movimiento entre cada estado de ruta secuencial. La función isMotionValid interpola a lo largo de la ruta entre estados. Si un segmento de ruta no es válido, trace el último punto válido a lo largo de la ruta.

startStates = [path(1,:);path(2,:)];
endStates = [path(2,:);path(3,:)];
    for i = 1:2
        [isPathValid, lastValid] = isMotionValid(validator,startStates(i,:),endStates(i,:));
        if ~isPathValid
            plot(lastValid(1),lastValid(2),'or')
        end
    end
hold off

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains 4 objects of type image, patch, line. One or more of the lines displays its values using only markers This object represents Inflated Areas.

Capacidades ampliadas

Historial de versiones

Introducido en R2019b