The mechanical subdivision works tirelessly to bring in all the possible mechanical advancements in the new vehicles. The main interests of the subdivision are to plan, build and test all the parts of the vehicle. These parts range in complexities from something as simple as a hook, to highly complicated actuators like the arm. The entire designing , fabrication and waterproofing of the vehicle rests on the mechanical subdivision. Every part we design undergoes a rigorous process of Critical Design Reviews and is optimized to best suit the requirements of the vehicle. These designs are then tested in simulation softwares like ANSYS where we check the part for static structural strength, maximum temperature in hulls and rough drag estimations. After successfully passing all the design checkpoints, the part is then manufactured using suitable manufacturing techniques like laser cutting acrylic, 5 axis CNC for the complicated parts like flanges, etc. Along with vehicle design and fabrication, the mechanical subdivision also tries to explore new and untouched domains to find better technologies to implement in the vehicle. Currently the subdivision is pursuing research in hydrodynamic analysis, thermal management in closed hulls, a multifunctional arm and more. In thermal management we have managed to create a solution which increases contact with hull walls which transfer heat via conduction to the surrounding water which is at a lower temperature. We have also isolated major heat generating components into a separate hull to prevent damage to other components. Coming to the arm, this year, we decided to make a universal arm that can be used for any task with the minimum number of improvements. This arm is aimed at being completely autonomous, having 3 DoF and gripping feedback. We also plan to have a replaceable end effector that can be designed explicitly for the task involved. We are also exploring topology optimization which can be used to solve for structures with minimum material and sufficient strength.


The electrical sub-division is the link between mechanical and software sub-divisions. We are responsible for managing the power requirements, controlling thrusters and actuation systems with the help of customized PCBs. A schematic of the board is prepared from the pre-designed circuit diagram, after which the designing of the PCB layout is done. The design review of these boards is carried out multiple times to ensure the correctness and avoidance of any minor mistakes before proceeding them to manufacturing. These custom boards are then soldered to fit the components. The microcontrollers in the PCBs are accoutred with the codes developed to command them. Implementation of these codes allows the microcontroller to incorporate I/O functions, servo control, data acquisition and transmission. The battery and power management is the most crucial task for the vehicle. The power distribution is regulated and the batteries are cut off when a kill function is implemented. During an occasion of fault detection or malfunctioning, emergency steps are taken to deal with them while preserving the critical components from damage. We control the course of power and magnitude of speed provided to the thrusters. During the run, the dropping of markers and torpedo shooting is accomplished by us. With the help of communication protocols, we interface the codes of drivers and sensors with the vehicle and its milieu. Once we have all the electrical hardware components, they are verified for their functioning by testing them without being placed in Matsya. After ensuring their regular operation, the parts are connected inside the respective hulls with the help of connectors and penetrators, where the Microcontrollers are loaded with their working algorithms. The fully equipped Matsya is deployed in the swimming pool, where a check of significant activities like waterproofing, electrical stack working, data-logging, etc., is done. There have been instances of water leakage inside hulls which led to replacing the total electrical stack with new components resulting in numerous night-outs solving the issues, which engulfed us in a lot of fun activities, mid-night snacks, treats and created lifelong memories.


The Software Subdivision is responsible for making Matsya Autonomous! The software stack is written majorly in C, C++ and Python. The main packages in the software stack include drivers, localisation, controller, navigator, simulator, state machine, mission planner, vision and acoustics, all of which have been written from scratch with the help of libraries such as Robot Operating System (ROS) for inter-process communication and OpenCV for image processing. All these packages combined provide autonomous capabilities to the vehicle, making it capable of taking its own decisions. The overall architecture of the stack is highly object-oriented and majorly independent of the vehicles. The code conforms to the LLVM standard and PEP 8 style guide, supported by inbuilt tests and extensive documentation. The tasks and environment are simulated in Gazebo to test any code we write. Post testing in the simulator, another important task for the subdivision is real-life testing, where the code is physically tested on the vehicle in-water. Thus, the main aim of the software subdivision is to write software that is generic and error-free, in order to get the vehicles working at their full potential.

Controller and Navigator

This module is responsible for autonomous control of the vehicle's motion. The Controller is responsible for the vehicle achieving given positions and velocities in all 6 Degrees Of Freedom using feedback from localization. The controller uses a PID Controller (Proportional-Integral-Derivative) and an allocator which divides the forces among our thrusters. We are currently working on more advanced Optimal Control Laws and Improved Modelling of Vehicle’s Dynamics. The Navigator helps our vehicle traverse the pool via complex paths. It features an Artificial Potential Fields Based Obstacle Avoidance and Trajectory Following Algorithms. It is responsible for commanding the required positions and velocities from the controller. This module allows our vehicle to navigate complex underwater environments

Localization And Perception

Our vehicle relies heavily on knowledge of its current location to be able to control itself , find underwater tasks and make autonomous decisions. The Localization module achieves this by combining data from our sensors to get a good estimate of localization. We are currently working on sensor fusion algorithms that can combine sensor data with our knowledge of the vehicle's dynamics for better estimation. Vehicle Autonomy requires that the vehicle is able to see and hear its environment and use that information to identify and locate key objects and tasks. We use both ML based Yolo V3 and classical Computer Vision techniques to identify objects in the environment. A Time Difference Of Arrival (TDOA) based algorithm is applied on hydrophone data to locate underwater pingers.


This module handles all communication with our sensors, namely the IMU, DVL, Pressure Sensors, Camera and Hydrophones. The main task of our custom serial and socket drivers is to read sensor data and pass it on to the localization and perception module. We have also developed an in-house calibration software for the IMU, so the drivers also occasionally write the calibration matrices to the sensors.

After the force outputs to the 8 thrusters are calculated in the controller, they need to be sent to the thrusters. For this, they are first converted to Pulse-Width Modulation (PWM) Values, using a mapping calculated from the thruster manufacturer’s data. These PWM Values are then written onto the CAN Bus, which carries the signals to the individual thrusters. The CAN Bus also carries the actuation signal for the arm, sent directly by the mission planner.

State and Mission Planner

State and Mission Planner collectively act as the brain of our vehicle. After receiving the current location of matsya from the localization package, State sends the data to the mission planner which decides the next task to do. This data is then sent back to State, which in conjunction with the Navigator, goes through the 4 sub-states (Scan, Transition, Execution and Post-Execution), returning back to a previous state in case of a failure at any particular sub-state. Task completion and success checks are performed in the post-execution state.


The Business Subdivision also known as the Non-Technical Subdivision where six sub departments namely Events, Design, Marketing, Media, PR and Web form its backbone. The aim of Business Team is to inform the public, prospective customers, investors, partners, employees, and other stakeholders and ultimately persuade them to maintain a positive or favorable view about the AUV. We establish and maintain relationships with AUV target audience, the media, relevant trade media, and other opinion leaders. Our common responsibilities include designing communications campaigns, writing news release and other content for news, working with the press, arranging interviews for company spokespeople, acting as an AUV's spokesperson, media interviews and speeches, writing website and social media content, managing AUV’S reputation, managing internal communications, and marketing activities like awareness about AUV and competitions in which we participate and related event management.

Made by AUV-IITB