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.

Vector Field Histogram

Evite obstáculos usando el histograma de campo vectorial

Desde R2019b

  • Vector Field Histogram block

Bibliotecas:
Navigation Toolbox / Control Algorithms

Descripción

El bloque Vector Field Histogram (VFH) permite que su vehículo evite obstáculos según los datos del sensor de distancia. Dada una lectura del sensor de rango en términos de rangos y ángulos, y una dirección objetivo hacia la cual conducir, el controlador VFH calcula una dirección de dirección libre de obstáculos.

Para obtener más información sobre los detalles del algoritmo, consulte Histograma de campo vectorial en Algoritmos.

Limitaciones

  • Las entradas Ranges y Angles están limitadas a 4000 elementos al generar código para modelos que usan este bloque.

Puertos

Entrada

expandir todo

Valores de rango de datos de escaneo, especificados como un vector de escalares en metros. Estos valores de rango son distancias desde un sensor en ángulos específicos. El vector debe tener la misma longitud que el vector Angles correspondiente.

Valores de ángulo de datos de escaneo, especificados como un vector de escalares en radianes. Estos valores de ángulos son los ángulos específicos de los rangos especificados. El vector debe tener la misma longitud que el vector Ranges correspondiente.

Dirección de destino del vehículo, especificada como escalar en radianes. La dirección de avance del vehículo se considera cero radianes, con ángulos positivos medidos en sentido contrario a las agujas del reloj. Puede utilizar la salida TargetDir del bloque Pure Pursuit al generar controles a partir de un conjunto de puntos de referencia.

Salida

expandir todo

Dirección de dirección del vehículo, especificada como escalar en radianes. Esta dirección libre de obstáculos se calcula según el algoritmo VFH+. La dirección de avance del vehículo se considera cero radianes, con ángulos positivos medidos en sentido contrario a las agujas del reloj.

Parámetros

expandir todo

Principal

Número de contenedores utilizados para crear los histogramas, especificados como escalar. Este parámetro no se puede ajustar. Puede establecer este parámetro solo cuando se inicializa el objeto.

Límites para lecturas de rango en metros, especificados como un vector de escalares de dos elementos. Las lecturas de rango ingresadas solo se consideran si se encuentran dentro de los límites de distancia. Utilice el límite de distancia inferior para ignorar falsos positivos debidos a un rendimiento deficiente del sensor en rangos inferiores. Utilice el límite superior para ignorar obstáculos que estén demasiado lejos del vehículo.

Umbrales para calcular el histograma binario, especificados como un vector de escalares de dos elementos. El algoritmo utiliza estos umbrales para calcular el histograma binario a partir de la densidad de obstáculos polares. Los valores de densidad de obstáculos polares superiores al umbral superior se representan como espacio ocupado (1) en el histograma binario. 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 de un histograma binario calculado previamente, si existe uno de iteraciones anteriores. Si no existe un histograma anterior, el valor se establece como espacio libre (0).

Radio del vehículo, especificado como escalar en metros. Esta dimensión define el círculo más pequeño que puede circunscribir su vehículo. El radio del vehículo se utiliza para tener en cuenta el tamaño del vehículo al calcular la dirección libre de obstáculos.

Distancia de seguridad que se deja alrededor de la posición del vehículo además de vehicle radius, especificada en escalar en metros. El radio del vehículo y la distancia de seguridad se utilizan para calcular la dirección libre de obstáculos.

Radio de giro mínimo para el vehículo que se mueve a su velocidad actual, especificado como escalar en metros.

  • Code generation : simula el modelo utilizando el código C generado. La primera vez que ejecuta una simulación, Simulink® genera código C para el bloque. El código C se reutiliza en simulaciones posteriores, siempre que el modelo no cambie. Esta opción requiere tiempo de inicio adicional, pero la velocidad de las simulaciones posteriores es comparable a Interpreted execution.

  • Interpreted execution — Simula el modelo usando el intérprete MATLAB® . Esta opción acorta el tiempo de inicio pero tiene una velocidad de simulación más lenta que Code generation. Este modo permite depurar el código fuente del bloque.

Sintonizable: No

Ponderaciones de la función de coste

Peso de la función de coste para moverse hacia la dirección objetivo, especificado como un escalar. Para seguir una dirección objetivo, establezca este peso para que sea mayor que la suma de Current direction weight y Previous direction weight. Para ignorar el coste de la dirección objetivo, establezca este peso en 0 .

Peso de la función de coste para mover el vehículo en la dirección del rumbo actual, especificado como un escalar. Los valores más altos de este peso producen rutas eficientes. Para ignorar el coste de dirección actual, establezca este peso en 0 .

Peso de la función de coste para moverse en la dirección de dirección seleccionada previamente, especificado como un escalar. Los valores más altos de este peso producen rutas más suaves. Para ignorar el coste de dirección anterior, establezca este peso en 0 .

Algoritmos

expandir todo

Capacidades ampliadas

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

Historial de versiones

Introducido en R2019b

Consulte también

Bloques

Clases