Réglementation des véhicules utilisant SCANeR et ROS

Par INSA & Software Labs Groupe Renault

CONTEXTE

L’industrie automobile autonome est devenue de plus en plus importante au cours des dernières années. Les entreprises automobiles déterminées à développer leur propre voiture autonome doivent garantir la sécurité de leurs clients. Par conséquent, il implique de nombreuses procédures d’essai avec des prototypes qui peuvent être très coûteux. Dans ce contexte, la simulation apparaît comme un moyen abordable de faire des tests plus tôt dans le processus de développement, ce qui laisse également plus de place aux erreurs. L’approche en boucle permet aux entreprises d’être le plus près possible de la réalité, en testant le comportement d’un véhicule simulé avec un logiciel dédié tel que SCANeR. Pour aller encore plus loin, SCANeR peut être combiné avec un cadre flexible appelé ROS, Robotic Operating System. Il s’agit d’un intergiciel utilisé en robotique pour interfacer différentes entités qui pourraient nous aider à recueillir des informations à partir de SCANeR, les traiter pour réguler le comportement du véhicule et renvoyer des données au simulateur afin d’observer l’efficacité de notre réglementation.

CHALLENGE

Comme SCANeR fonctionne sous Windows et ROS sous Linux, la faisabilité de notre réglementation dépend fortement d’une communication bidirectionnelle fiable entre eux. Nous devons également mettre en place un programme de réglementation sur ROS qui est en mesure de s’intégrer avec le pont pour contrôler un véhicule simulé dans SCANeR.

 

SOLUTION

Développer un pont fonctionnel entre le simulateur de SCANeR et les programmes de ROS afin qu’ils puissent échanger des données et traiter de façon synchrone. Un programme de réglementation est mis en place dans ros afin de contrôler le comportement du véhicule.

 

PROCHAINES ÉTAPES

Maintenant, nous pouvons aller encore plus loin avec un tel système, en incluant un environnement réel dans notre boucle de test. Nous allons essayer de télécharger ce code sur un microcontrôleur à carte unique comme un PI framboise, qui pourrait piloter un modèle miniature d’une voiture autonome, disponible dans notre université. Une première réalisation pourrait être de conduire en ligne droite dans le corridor, sans heurter les murs.

 

AVANTAGES

SCANeR studio, fourni par AVSimulation, est un logiciel puissant dédié à la simulation de véhicules autonomes dans des situations de circulation réalistes. L’utilisateur peut agir sur les paramètres de la voiture et de créer un scénario qui convient le mieux à leurs tests. L’objectif final de notre projet consistait en une régulation de vitesse et grâce à SCANeR, nous sommes en mesure de suivre la vitesse d’un véhicule se déplaçant vers l’avant sur une route, et d’extraire les données nécessaires pour calculer notre contrôleur PID sur ROS.

Un partenariat avec Renault Software Labs nous a menés à ce projet novateur qui faisait partie d’une de nos unités de formation. Initiation de Recherche (P.I.R.) » à notre école d’ingénierie « INSA Toulouse ». Notre objectif principal était de communiquer entre deux les logiciels qui fonctionnent sur deux systèmes d’exploitation différents : SCANeR studio 1.8 et ROS fonctionnent respectivement sur Windows 10 et Ubuntu 16.04.

La première étape de nos recherches a été de comprendre comment SCANeR studio 1.8 a fonctionné et comment le faire interagir avec un environnement externe. Nous avons donc suivi une initiation à la formation supervisée par deux ingénieurs de Renault Software Labs. Grâce à leur expertise, nous avons appris les principales fonctionnalités offertes par ce simulateur qui fournissent un moyen facile de mettre en œuvre des processus externes, fonctionnant sur différents langages de programmation. En ce qui concerne notre projet, nous avons eu SCANeR en cours d’exécution sur un PC Windows et ROS en cours d’exécution sur une machine virtuelle linux core. Ensuite, nous avons créé une configuration afin d’interfacer les noeuds SCANeR et ROS qui ont été implémentés en C++. Nous avons également dû installer les exigences SCANeR sur notre machine Ubuntu (comme le démon SCANeR Studio pour Linux et différents paquets). Grâce à un dossier partagé, nous avons pu communiquer entre SCANeR, sous Windows, et les processus de ROS sur Ubuntu.

Avant d’être en mesure d’écrire du code fonctionnel pour extraire des données de SCANeR, nous devions comprendre l’API du SCANeR. C’est pourquoi nous avons dû analyser attentivement la documentation fournie dans .html réseau. Nous avons particulièrement étudié les interfaces IVehicle et ISensor afin de mieux comprendre les fonctions et les données que nous voulions manipuler. De plus, nous avions un échantillon d’un pont existant, capable de transmettre la vitesse d’une voiture contrôlée par SCANeR modelhandler vers ROS. Donc, en premier lieu, nous avons obtenu avec succès la vitesse sur ROS, montrant que le pont travaillait de SCANeR à ROS. Ensuite, nous avons utilisé un outil de visualisation ROS appelé RVIZ afin d’afficher un marqueur se déplaçant à mesure que la vitesse changeait dans SCANeR.

La prochaine étape de notre projet a été de renvoyer de l’information à SCANeR pour contrôler la vitesse du véhicule à partir de ROS. En analysant l’API SCANeR pour voir comment les fonctions de réception et de transmission des données fonctionnaient, nous avons appris à définir des paramètres de véhicule tels que la vitesse.
Cela implique un autre changement à la configuration de SCANeR, qui n’a pas été en mesure de régler la vitesse du véhicule. Nos relations externes
Ros agit comme une entrée externe pour le simulateur qui nous permet de contrôler la vitesse du véhicule.

Finalement, la dernière étape consistait à combiner la réception et les fils d’émission : nous voulions changer le comportement du véhicule en fonction de l’environnement et des données des capteurs simulés. Notre module de contrôle sur ROS se compose de trois parties différentes. Un premier programme qui reçoit les données des capteurs du véhicule sur SCANeR et les transmet à une calculatrice. La deuxième est une calculatrice, qui traite les données reçues et calcule les ordres pour obtenir le comportement désiré. Ce règlement a été mis en œuvre avec un contrôleur PID. Le dernier programme renvoie les données de la calculatrice à SCANeR pour finalement régler le véhicule. Par exemple, avec ce système, on pouvait voir un véhicule fonctionnant sur SCANeR qui adapte sa vitesse en fonction de la distance perçue avec le véhicule précédent.

Ainsi, ce projet nous a donné l’occasion d’utiliser SCANeR studio 1.8, un simulateur efficace destiné à un usage professionnel, afin de créer un banc d’essai intégré à ROS, qui est en mesure d’inclure divers programmes tels qu’un régulateur de vitesse. Nous avons connu certains des défis auxquels les industriels sont souvent confrontés en ce qui concerne les simulations et nous comprenons maintenant à quel point cette étape est importante dans le processus de développement.