Projects

Mechanical projects


3D Printing

S.O.N.I.A. uses 3D printing to manufacture the internal supports to hold the electronic components. 3D printing is also used to print some parts to create our accessories on submarines. (Tools: Simplify3D)

CFD Simulation

An hydrodynamic study of the submarine can allow us to find very relevant information to design quality submarines. The information collected can also be used to obtain the most realistic model for our simulator. (Tools: ANSYS)

Machining

To design quality submarines, the mechanical team is joining forces to manufacture various precise parts for our prototypes. Machining allows our team to materialize their ideas. (Tools: CATIA)

Mechanical Design

Whether it is to design a new submarine, an electronic component support or an accessorie on submarines. The mechanical team needs creative ideas to develop new concepts. (Tools: SolidWorks)

Electrical projects


Inputs and Outputs

Accessories such as torpedo launchers, robotic arm and "droppers" are positioned on the submarine. To ensure the correct functioning of the latter, proper operation of the electrical side is essential.

Power

Modern electronic systems often require voltage regulation to function properly. In the case of S.O.N.I.A.’s submarines, the voltage of the lithium-polymer batteries needs to be reduced to a level suitable for low-power electronic components. The power system also needs to manage the distribution of power to all eight motors.

PCB Design

The electrical team designs several PCBs for different systems on the submarine. They go through the design stages of the electrical diagram, the design of the PCB, the ordering, the soldering as well as the tests. (Tools : Altium)

Embedded systems

All embedded systems on the submarine run Mbed OS on STM32F4 microcontrollers. The programs for these microcontrollers are developed and tested by members of the team.

Hydrophones

In general, the hydrophone are used to calculate the delay between the reception of a ping from the reference to the 3 other hydrophones. With the phase difference, we can get the angle (heading) for the X reference on the submarine and the angle bewteen the X and Y plan and the pinger. These 2 angles are used to navigate at 2 positions. Only the heading would be necessary for the competition, but the system is more reliable with the 2 angles and it is easier to confirm the mouvement of the submarine.

Software projects


BehaviorTree (missions)

BehaviorTree is a tool that helps S.O.N.I.A. to creates complex missions for the submarines without manually coding everyone of them. BehaviorTree is used to create the behavior trees, execute and monitor them. During the tests, it's also possible to collaborate with the submarine during the mission execution. (Tools and/or languages used: ROS, C++, Groot2)

Control

The AUV must be able to execute trajectories following, vision alignment, acoustic alignment and more. All of this is possible because of one thing... a good control! Our team is working on a modulable control algorithm to control their prototypes. We are using the control to manually move the submarine in his environment as well. (Tools and/or languages used: Matlab, Simulink, ROS)

Providers and Procs

The providers are the drivers that communicate with low levels S.O.N.I.A. modules, sensors and actuators on the AUVs using different protocols. The data is passed towards the procs via ROS to process the information. This information will be interpreted and used by the telemetry, the other proc nodes or the mission. (Tools and/or languages used: ROS, C++, Python, TCP/IP, Serial communication)

Simulation

The team develop his own simulation environment to test different tasks virtual environnment. This simulation need to be the most accurate as possible because we want to test the majority of our missions inside of it. (Tools and/or languages used: Unity, ROS, C#)

Telemetry

The telemetry is a rqt Qt-based framework to control and monitor the submarines during our tests. It is portable and allow the team to connect from any device they want. It includes a bunch of modules that we need to monitor the submarines like thruster’s module, actuators module, camera viewer, etc. (Tools and/or languages used: python, ROS)

Vision

Vision is an essential capability for an autonomous vehicle, as detecting and recognizing objects around it then enables the vehicle to interact with its environment. To perform this task in our submarines, we use a neural network model (YOLOv8n or YOLOv10n). This model needs to be highly reliable, lightweight and require very little training data. This is why we have chosen to train a highly specialized model for the RoboSub competition environment. Additionally, all our images are hand-labeled using Labelbox, giving us more accurate labels. (Tools and/or languages used: CUDA, Labelbox, OpenCV, Python, Pytorch, ROS, Ultralytics)