controllerVFH
Evite obstáculos usando el histograma de campo vectorial
Descripción
El controllerVFH
System object™ permite que su vehículo evite obstáculos basándose en los datos del sensor de alcance utilizando histogramas de campo vectorial (VFH). Dadas las lecturas del escaneo láser y una dirección objetivo hacia la cual conducir, el objeto calcula una dirección de dirección libre de obstáculos.
controllerVFH
utiliza específicamente el algoritmo VFH+ para calcular una dirección sin obstáculos. Primero, el algoritmo toma los rangos y ángulos de los datos del escaneo láser y construye un histograma polar para las ubicaciones de los obstáculos. Luego, los umbrales del histograma de entrada se utilizan para calcular un histograma binario que indica las direcciones ocupadas y libres. Finalmente, el algoritmo calcula un histograma enmascarado, que se calcula a partir del histograma binario en función del radio de giro mínimo del vehículo.
El algoritmo selecciona múltiples direcciones de dirección en función del espacio abierto y las posibles direcciones de conducción. Una función de coste, con ponderaciones correspondientes a las direcciones anterior, actual y objetivo, calcula el coste de diferentes direcciones posibles. Luego, el objeto regresa a una dirección libre de obstáculos con un coste mínimo. Usando la dirección libre de obstáculos, puede ingresar comandos para mover su vehículo en esa dirección.
Para utilizar este objeto para su propia aplicación y entorno, debe ajustar las propiedades del algoritmo. Los valores de las propiedades dependen del tipo de vehículo, el sensor de distancia y el hardware que utilice.
Para encontrar una dirección de dirección libre de obstáculos:
Cree el objeto
controllerVFH
y configure sus propiedades.Llame al objeto con argumentos, como si fuera una función.
Para más información sobre el funcionamiento de los System objects, consulte ¿Qué son los System Objects?
Creación
Descripción
devuelve un objeto de histograma de campo vectorial que calcula la dirección sin obstáculos utilizando el algoritmo VFH
= controllerVFHVFH+
.
devuelve un objeto de histograma de campo vectorial con opciones adicionales especificadas por uno o más pares VFH
= controllerVFH(Name
,Value
)Name,Value
. Name es el nombre de la propiedad y Value es el valor correspondiente. Name debe aparecer entre comillas simples (' '
). Puede especificar varios argumentos de par nombre-valor en cualquier orden como Name1,Value1,...,NameN,ValueN
. Las propiedades no especificadas conservan sus valores predeterminados.
Propiedades
Uso
Descripción
encuentra una dirección de dirección sin obstáculos utilizando el algoritmo VFH+ para el objeto de entrada steeringDir
= vfh(scan
,targetDir
)lidarScan
, scan
. Se proporciona una dirección de destino en función de la ubicación del objetivo.
Para habilitar esta sintaxis, debe establecer la propiedad UseLidarScan
en true
. Por ejemplo:
mcl = monteCarloLocalization('UseLidarScan',true); ... [isUpdated,pose,covariance] = mcl(odomPose,scan);
define el escaneo LiDAR con dos vectores: steeringDir
= vfh(ranges
,angles
,targetDir
)ranges
y angles
.
Argumentos de entrada
Argumentos de salida
Funciones del objeto
Para usar una función de objeto, especifique el System object como el primer argumento de entrada. Por ejemplo, para liberar recursos de sistema de un System object llamado obj
, utilice la siguiente sintaxis:
release(obj)
Ejemplos
Referencias
[1] Borenstein, J., and Y. Koren. "The Vector Field Histogram - Fast Obstacle Avoidance for Mobile Robots." IEEE Journal of Robotics and Automation. Vol. 7, Number 3, 1991, pp.278–88.
[2] Ulrich, I., and J. Borenstein. "VFH : Reliable Obstacle Avoidance for Fast Mobile Robots." Proceedings. 1998 IEEE International Conference on Robotics and Automation. (1998): 1572–1577.