controllerVFH
Evite obstáculos usando el histograma de campo vectorial
Descripción
El controllerVFH
System object™ permite que su vehículo evite obstáculos según los datos del sensor de distancia 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 libre de 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 establezca sus propiedades.Llame al objeto con argumentos, como si fuera una función.
Para obtener más información sobre cómo funcionan los System objects, consulte What Are System Objects?
Creación
Descripción
devuelve un objeto de histograma de campo vectorial que calcula la dirección de dirección libre de 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. El nombre debe aparecer entre comillas simples (' '
). Puede especificar varios argumentos de pares 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 libre de obstáculos utilizando el algoritmo VFH+ para la entrada steeringDir
= vfh(scan
,targetDir
)lidarScan
objeto, 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 utilizar una función de objeto, especifique System object como primer argumento de entrada. Por ejemplo, para liberar recursos del sistema de un System object llamado obj
, use esta 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.
Capacidades ampliadas
Historial de versiones
Introducido en R2019b