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.

Histograma de campo vectorial

El algoritmo de histograma de campo vectorial (VFH) calcula direcciones de dirección sin obstáculos para un robot basándose en las lecturas del sensor de distancia. Las lecturas del sensor de distancia se utilizan para calcular histogramas de densidad polar para identificar la ubicación y proximidad de los obstáculos. Según los parámetros y umbrales especificados, estos histogramas se convierten en histogramas binarios para indicar direcciones de dirección válidas para el robot. El algoritmo VFH tiene en cuenta el tamaño del robot y el radio de giro para generar una dirección de dirección para que el robot evite obstáculos y siga una dirección objetivo.

Dimensiones del robot

Para calcular las direcciones de dirección, debe especificar información sobre el tamaño del robot y sus capacidades de conducción. El algoritmo VFH requiere sólo cuatro parámetros de entrada para el robot. Estos parámetros son propiedades del objeto controllerVFH : RobotRadius, SafetyDistance, MinTurningRadius y DistanceLimits.

  • RobotRadius especifica el radio del círculo más pequeño que puede rodear todas las partes del robot. Este radio asegura que el robot evite obstáculos en función de su tamaño.

  • SafetyDistance opcionalmente especifica una distancia agregada además de RobotRadius. Puede utilizar esta propiedad para agregar un factor de seguridad al navegar por un entorno.

  • MinTurningRadius especifica el radio de giro mínimo para que el robot se desplace a la velocidad deseada. Es posible que el robot no pueda realizar giros bruscos a altas velocidades. Esta propiedad influye en la sorteación de obstáculos y le da suficiente espacio para maniobrar.

  • DistanceLimits especifica el rango de distancia que desea considerar para evitar obstáculos. Los límites se especifican en un vector de dos elementos, [lower upper]. El límite lower se utiliza para ignorar las lecturas del sensor que se cruzan con piezas del robot, las imprecisiones del sensor en distancias cortas o el ruido del sensor. El límite upper es el rango efectivo del sensor o se basa en su aplicación. Es posible que no desee considerar todos los obstáculos en el rango completo del sensor.

Nota

Toda la información sobre las lecturas del sensor de distancia supone que su telémetro está montado en el centro de su robot. Si el sensor de distancia está montado en otro lugar, transforme las lecturas del sensor de distancia del marco de coordenadas del láser al marco base del robot.

Ponderaciones de la función de coste

Los pesos de la función de coste se utilizan para calcular las direcciones de dirección finales. El algoritmo VFH considera múltiples direcciones de dirección en función de las direcciones actual, anterior y objetivo. Al configurar las propiedades CurrentDirectionWeight, PreviousDirectionWeight y TargetDirectionWeight , puede modificar el comportamiento de dirección de su robot. Cambiar estos pesos afecta la capacidad de respuesta del robot y cómo reacciona ante los obstáculos. Para hacer que el robot se dirija hacia su ubicación objetivo, establezca TargetDirectionWeight más alto que la suma de los otros pesos. Este valor alto de TargetDirectionWeight ayuda a garantizar que la dirección de dirección calculada esté cerca de la dirección objetivo. Dependiendo de su aplicación, es posible que necesite ajustar estos pesos.

Propiedades del histograma

El algoritmo VFH calcula un histograma basado en los datos del sensor de rango dado. Toma todas las direcciones alrededor del robot y las convierte en sectores angulares especificados por la propiedad NumAngularSectors . Esta propiedad no se puede ajustar y permanece fija una vez que se llama al objeto controllerVFH . Los datos del sensor de distancia se utilizan para calcular un histograma de densidad polar sobre estos sectores angulares.

Nota

El uso de un valor pequeño de NumAngularSectors puede hacer que el algoritmo VFH pase por alto obstáculos más pequeños. Los obstáculos perdidos no aparecen en el histograma.

Este histograma muestra los sectores angulares en azul y los umbrales del histograma en rosa. La propiedad HistogramThresholds es un vector de dos elementos que determina los valores del histograma enmascarado, especificado como [lower upper]. Los valores de densidad de obstáculos polares superiores al umbral superior se representan como espacio ocupado (1) en el histograma enmascarado. Los valores menores que el umbral inferior se representan como espacio libre (0). Los valores que se encuentran entre los límites se establecen en los valores del histograma binario anterior, siendo el valor predeterminado el espacio libre (0). El histograma enmascarado también tiene en cuenta MinTurningRadius, RobotSize y SafetyDistance.

El gráfico de densidad polar tiene el siguiente gráfico de histograma enmascarado correspondiente. Este gráfico muestra las direcciones del objetivo y de dirección, las lecturas de alcance y los límites de distancia.

Ajustar parámetros usando show

Al trabajar con un objeto controllerVFH , puede visualizar las propiedades y parámetros del algoritmo usando la función show . Este método muestra el gráfico de densidad polar y el histograma binario enmascarado. También muestra los parámetros del algoritmo y la dirección de dirección de salida para el VFH.

Luego puede ajustar los parámetros para ayudarle a crear un prototipo de su aplicación para evitar obstáculos. Por ejemplo, si ve que ciertos obstáculos no aparecen en el gráfico Histograma polar enmascarado (derecha), en el gráfico Densidad de obstáculos polares, considere ajustar los umbrales del histograma a los valores apropiados. Después de realizar los ajustes en el gráfico Histograma polar enmascarado, las lecturas del sensor de rango, que se muestran en rojo, deben coincidir con las ubicaciones en el histograma enmascarado (azul). Además, puede ver el objetivo y las direcciones de dirección. Usted especifica la dirección del objetivo. La dirección de dirección es el resultado principal del algoritmo VFH. Ajustar el Ponderaciones de la función de coste puede ayudarle a ajustar la salida de la dirección de dirección final.

Aunque puede utilizar el método show en un bucle, ralentiza la velocidad de cálculo debido al trazado gráfico. Si está ejecutando este algoritmo para aplicaciones en tiempo real, obtenga y muestre los datos de VFH en operaciones separadas.

Consulte también