Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

Vector Field Histogram

Évitez les obstacles à l'aide de l'histogramme de champ vectoriel

Depuis R2019b

  • Vector Field Histogram block

Bibliothèques :
Navigation Toolbox / Control Algorithms

Description

Le bloc Vector Field Histogram (VFH) permet à votre véhicule d'éviter les obstacles en fonction des données du capteur de distance. À partir d'une lecture du capteur de distance en termes de distances et d'angles, et d'une direction cible vers laquelle se diriger, le contrôleur VFH calcule une direction de direction sans obstacle.

Pour plus d'informations sur les détails de l'algorithme, voir Histogramme de champ vectoriel sous Algorithmes.

Limites

  • Les entrées Ranges et Angles sont limitées à 4000 éléments lors de la génération de code pour les modèles qui utilisent ce bloc.

Ports

Saisir

développer tout

Valeurs de plage à partir des données d'analyse, spécifiées sous forme de vecteur de scalaires en mètres. Ces valeurs de plage correspondent aux distances d'un capteur à des angles spécifiés. Le vecteur doit avoir la même longueur que le vecteur Angles correspondant.

Valeurs d'angle issues des données d'analyse, spécifiées sous forme de vecteur de scalaires en radians. Ces valeurs d'angle sont les angles spécifiques des plages spécifiées. Le vecteur doit avoir la même longueur que le vecteur Ranges correspondant.

Direction cible du véhicule, spécifiée sous forme de scalaire en radians. La direction avant du véhicule est considérée comme zéro radian, avec des angles positifs mesurés dans le sens inverse des aiguilles d'une montre. Vous pouvez utiliser la sortie TargetDir du bloc Pure Pursuit lors de la génération de contrôles à partir d'un ensemble de waypoints.

Sortir

développer tout

Direction de direction du véhicule, spécifiée sous forme de scalaire en radians. Cette direction sans obstacle est calculée sur la base de l'algorithme VFH+. La direction avant du véhicule est considérée comme zéro radian, avec des angles positifs mesurés dans le sens inverse des aiguilles d'une montre.

Paramètres

développer tout

Principal

Nombre de groupes utilisés pour créer les histogrammes, spécifié sous forme de scalaire. Ce paramètre n'est pas réglable. Vous pouvez définir ce paramètre uniquement lorsque l'objet est initialisé.

Limites des lectures de portée en mètres, spécifiées comme un vecteur de scalaires à deux éléments. Les lectures de plage saisies ne sont prises en compte que si elles se situent dans les limites de distance. Utilisez la limite de distance inférieure pour ignorer les faux positifs dus à de mauvaises performances du capteur à des portées inférieures. Utilisez la limite supérieure pour ignorer les obstacles trop éloignés du véhicule.

Seuils pour le calcul d'un histogramme binaire, spécifié comme un vecteur de scalaires à deux éléments. L'algorithme utilise ces seuils pour calculer l'histogramme binaire à partir de la densité d'obstacles polaires. Les valeurs de densité d'obstacles polaires supérieures au seuil supérieur sont représentées sous forme d'espace occupé (1) dans l'histogramme binaire. Les valeurs inférieures au seuil inférieur sont représentées par de l'espace libre (0). Les valeurs comprises entre les limites sont définies sur les valeurs d'un histogramme binaire calculé précédent s'il en existe un lors des itérations précédentes. Si aucun histogramme précédent n'existe, la valeur est définie comme espace libre (0).

Rayon du véhicule, spécifié sous forme de scalaire en mètres. Cette dimension définit le plus petit cercle pouvant circonscrire votre véhicule. Le rayon du véhicule est utilisé pour tenir compte de la taille du véhicule lors du calcul de la direction sans obstacle.

Distance de sécurité laissée autour de la position du véhicule en fonction de vehicle radius, spécifiée sous forme d'un scalaire en mètres. Le rayon du véhicule et la distance de sécurité sont utilisés pour calculer la direction sans obstacle.

Rayon de braquage minimum pour le véhicule se déplaçant à sa vitesse actuelle, spécifié sous forme d'un scalaire en mètres.

  • Code generation — Simulez le modèle à l'aide du code C généré. La première fois que vous exécutez une simulation, Simulink® génère du code C pour le bloc. Le code C est réutilisé pour les simulations ultérieures, tant que le modèle ne change pas. Cette option nécessite un temps de démarrage supplémentaire mais la vitesse des simulations ultérieures est comparable à Interpreted execution.

  • Interpreted execution — Simulez le modèle à l'aide de l'interpréteur MATLAB® . Cette option réduit le temps de démarrage mais a une vitesse de simulation plus lente que Code generation. Dans ce mode, vous pouvez déboguer le code source du bloc.

 Accordable :  Non

Pondérations des fonctions de coût

Pondération de la fonction de coût pour se déplacer vers la direction cible, spécifiée sous forme de scalaire. Pour suivre une direction cible, définissez ce poids pour qu'il soit supérieur à la somme de Current direction weight et Previous direction weight. Pour ignorer le coût de la direction cible, définissez ce poids sur 0 .

Poids de la fonction de coût pour déplacer le véhicule dans la direction actuelle, spécifié sous forme de scalaire. Des valeurs plus élevées de ce poids produisent des chemins efficaces. Pour ignorer le coût de direction actuel, définissez ce poids sur 0 .

Poids de la fonction de coût pour se déplacer dans la direction de direction précédemment sélectionnée, spécifié sous forme de scalaire. Des valeurs plus élevées de ce poids produisent des chemins plus fluides. Pour ignorer le coût de la direction précédente, définissez ce poids sur 0 .

Algorithmes

développer tout

Capacités étendues

Génération de code C/C++
Générez du code C et C++ avec Simulink® Coder™.

Historique des versions

Introduit dans R2019b

Voir aussi

Blocs

Classes