Projets

Projets mécaniques


Impression 3D

S.O.N.I.A. utilise l'impression 3D afin de fabriquer les supports internes pour tenir les composantes électroniques. L'impression 3D nous sert aussi à imprimer quelques pièces pour concevoir nos accessoires sur les sous-marins. (Outils: Simplify3D)

Usinage

Afin de concevoir des sous-marins de qualité, l'équipe mécanique joint ses efforts pour fabriquer différentes pièces précises pour nos prototypes. L'usinage permet à notre équipe de matérialiser ses idées. (Outils: CATIA)

Design Mécanique

Que ce soit pour concevoir un nouveau sous-marin, concevoir des supports de composantes électroniques ou concevoir des accessoires sur les sous-marins. L'équipe mécanique a besoin d'idées créatives pour développer des nouveaux concepts. (Outils: SolidWorks)

Simulation Mécanique

Une étude hydrodynamique du sous-marin peut nous permettre de trouver de l'information très pertinente pour concevoir des sous-marins de qualité. L'information recueillie peut aussi être utiliser pour obtenir un modèle le plus réaliste possible pour notre simulateur. (Outils: ANSYS)

Projets électriques


Entrées et sorties

Des accessoires tels que des lance torpilles, un bras robotique et des «droppers» son positionnés sur le sous-marin. Pour assurer le bon fonctionnement de ces derniers, un bon fonctionnement du côté électrique est de mise.

Power

Les systèmes électroniques modernes nécessitent souvent une régulation de tension pour fonctionner. Dans le cas des sous-marins de S.O.N.I.A., la tension des batteries (normalement autour de 16 V) doit être diminuée à une valeur plus adaptée aux composants électroniques.

Conception de PCB

L'équipe électrique conçoit plusieurs PCB pour différents systèmes sur le sous-marin. Ils passent par les étapes de conception du schéma électrique, la conception du PCB, la commande, la soudure ainsi que les tests. (Outils : Altium)

Embedded systems

Les systèmes embarqués du sous-marin reposent sur des microcontrôleurs STM32F4 roulant Mbed OS. Les programmes des microcontrôleurs ont tous été conçus et testé par des membres du club.

Hydrophones

En général, les hydrophones permettent de calculer le délai entre la réception d'un ping de la référence aux 3 autres hydrophones. Avec la différence de phase, nous pouvons obtenir l'angle (cap) pour la référence X sur le sous-marin et l'angle entre le plan X et Y et le pinger. Ces 2 angles permettent de naviguer à 2 positions. Seul le cap serait nécessaire pour la compétition, mais le système est plus fiable avec les 2 angles et il est plus facile de confirmer le mouvement du sous-marin.

Projets logiciels


Contrôle

Le sous-marin autonome doit être capable d'exécuter des trajectoires de suivi, d'alignement de vision, d'alignement acoustique et plus encore. Tout cela est possible grâce à une chose... un bon contrôle ! Notre équipe travaille sur un algorithme de contrôle modulaire pour contrôler leurs prototypes. Nous utilisons également le contrôle pour déplacer manuellement le sous-marin dans son environnement. (Outils et/ou langages utilisés : Matlab, Simulink, ROS)

Deep learning

Il est essentiel pour qu'un sous-marin autonome interagisse bien avec son environnement qu'il dispose de modèles et de logiciels d'apprentissage automatique performants. Pour nous aider, nous utilisons Apache-Airflow pour automatiser notre pipeline de machine learning et nos pipelines de transformation de données (ETL) sont entièrement automatisés. Nous utilisons également les fonctionnalités d'étiquetage de Labelbox pour étiqueter toutes les images que nous obtenons durant nos tests. (Outils et/ou langages : Airflow, Labelbox, Google Cloud, Tensorflow)

Développement Docker

L'architecture logicielle de S.O.N.I.A. est principalement basée sur plusieurs conteneurs Docker. Chaque nœud est développé et exécuté dans des conteneurs pour réduire les temps de maintenance, de développement et de test. Nous utilisons Docker Compose pour exécuter les multiples conteneurs sur le sous-marin. (Outils et/ou langages utilisés : Docker, Docker Compose)

FlexBE (missions)

FlexBE est un outil qui aide S.O.N.I.A. pour créer des missions complexes pour les sous-marins sans les programmer manuellement. L'application FlexBE est utilisée pour créer les machines d'état, les exécuter et les surveiller. Pendant les tests, il est également possible de collaborer avec le sous-marin pendant l'exécution de la mission. (Outils et/ou langages utilisés : ROS, Python)

Providers et Procs

Les «providers» sont les pilotes qui communiquent avec les modules S.O.N.I.A. bas niveaux, les capteurs et actionneurs sur les sous-marins en utilisant différents protocoles. Les données sont transmises vers les «procs» via ROS pour traiter les informations. Ces informations seront interprétées et utilisées par la télémétrie, les autres nœuds «procs» ou les missions. (Outils et/ou langages utilisés : ROS, C++, Python, TCP/IP, Communication série)

Simulation

L'équipe développe son propre environnement de simulation pour tester différentes tâches à l'intérieur d'un environnement virtuel. Cette simulation doit être la plus précise possible car nous voulons tester la majorité de nos missions à l'intérieur. (Outils et/ou langages utilisés : Unity, ROS, C#)

Télémétrie

La télémétrie est un cadre rqt basé sur Qt pour contrôler et surveiller les sous-marins pendant nos tests. Il est portable et permet à l'équipe de se connecter à partir de n'importe quel appareil de son choix. Il comprend un tas de modules dont nous avons besoin pour surveiller les sous-marins comme le module de propulseur, le module d'actionneurs, la visionneuse de caméra, etc. (Outils et/ou langages utilisés : python, ROS)

Vision

La conception d'algorithmes de vision qui détectent de manière fiable les objets peut être extrêmement difficile à réaliser. La tâche nécessite une connaissance approfondie de la théorie de la vision par ordinateur ; la technologie utilisée pour le développement (langage de programmation et système d'exploitation) ainsi que l'environnement dans lequel il doit être utilisé. Cela nécessite également des tests fastidieux sur divers ensembles de données pour confirmer l'applicabilité du résultat final. (Outils et/ou langages : ROS, OpenCV, CUDA, C++)