Car Simulator utilise le système de contrôle flou, l’algorithme génétique et l’optimisation des essaims de particules pour simuler le mouvement de la voiture autonome sur la carte. Il prend également en charge les appareils VR, voir ici pour plus de détails.
L'entrée contient les trois capteurs de distance de la voiture (avant, 45 degrés gauche et droite), qui peuvent être obtenus à partir de l'équation de mouvement définie, de la position de la voiture et de l'angle entre la voiture et l'axe horizontal. La sortie est l'angle de rotation du volant.
L'objectif est d'atteindre la ligne d'arrivée sans rencontrer le mur et de générer la trajectoire du mouvement (y compris la position de chaque instant, la valeur du capteur et l'angle de rotation du volant) sous forme de fichier texte, puis de l'afficher sur l'interface graphique.
L’équation du mouvement de la voiture simulée est la suivante :
Le système de contrôle flou utilise les sept règles floues personnalisées et le défuzzificateur de centre de gravité discret. Voir ici pour les détails.
Car Simulator utilise l'algorithme génétique à valeur réelle (GA) pour entraîner le réseau de fonctions de base radiale (RBFN) et la voiture sera contrôlée par RBFN. Le gène est défini comme les trois paramètres du RBFN (w, m, σ) d'un vecteur de dimensions mixtes. La fonction de fitness est la variance moyenne de la sortie attendue de l'ensemble de données et de la sortie RBFN dans le cas d'entrée spécifique. La valeur de fitness la plus basse est le meilleur paramètre RBFN.
La structure du réseau de fonctions de base radiale est la suivante :
Car Simulator peut également utiliser l’optimisation par essaim de particules (PSO) pour entraîner le RBFN. La coordonnée PSO est définie comme les trois paramètres du RBFN (w, m, σ) du vecteur de dimension mixte. La fonction de fitness est la variance moyenne de la sortie attendue de l'ensemble de données et de la sortie RBFN dans le cas d'entrée spécifique. La valeur de fitness la plus basse est le meilleur paramètre RBFN.
https://jasonnor.github.io/Car-Simulator/
Car Simulator prend également en charge le périphérique VR, veuillez ouvrir cette page.
InputA1 InputB1 InputC1 Output1
InputA2 InputB2 InputC2 Output2
...
Où EntréeA est la valeur du capteur de distance centrale, EntréeB est la valeur du capteur de distance droit, EntréeC est la valeur du capteur de distance gauche et la sortie est l'angle de rotation du volant. Les ensembles de données par défaut peuvent être trouvés ici.
InputA1 InputB1 InputC1 InputD1 InputE1 Output1
InputA2 InputB2 InputC2 InputD1 InputE1 Output2
...
Où EntréeA est la coordonnée X de la voiture, EntréeB est la coordonnée Y de la voiture, EntréeC est la valeur du capteur de distance centrale, EntréeD est la valeur du capteur de distance droit, EntréeE est la valeur du capteur de distance gauche et la sortie est l'angle de rotation du volant. Les ensembles de données par défaut peuvent être trouvés ici.
N'hésitez pas à l'utiliser si vous souhaitez résoudre des problèmes et contribuer directement à la base de code.
Car Simulator est publié sous licence MIT. Voir le fichier LICENSE pour plus de détails.