The Mechanical Subdivision works tirelessly to bring in every possible physical advancement in the vehicle. The main interests of the subdivision include planning, building and testing different parts, as well as designing, fabricating and waterproofing the entire vehicle.
Different parts, ranging in complexity from simple hooks to complicated actuators, undergo a rigorous process of Critical Design Reviews and are optimized to best suit our requirements. These designs are then tested via simulation software like ANSYS, to check the maximum temperature in hulls, static structural strength and drag estimations. After successfully passing all the design checkpoints, the part is manufactured using suitable techniques like laser cutting acrylic and 5 axis CNC for complicated parts like flanges, etc.
The mechanical subdivision also explores new and untouched domains to find better technologies to implement in the vehicle. The subdivision is currently pursuing research in topics involving hydrodynamic analysis, thermal management in closed hulls and multifunctional arms, amongst others.
The Electrical Subdivision is the link between the mechanical and software subdivisions, responsible for designing, manufacturing and managing the power requirements and controlling the thrusters and actuator 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 to avoid any minor mistakes before proceeding to manufacture. These custom boards are then soldered to fit the components. The microcontrollers in the PCBs are accoutred with codes developed to command them, implementation of which allows the microcontroller to incorporate I/O functions, servo control, data acquisition and transmission. 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, different parts are connected inside the respective hulls with the help of connectors and penetrators, where the Microcontrollers are loaded with their working algorithms.
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. 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.
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.
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 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 is the public face of the team, involved in aspects of
marketing, media, PR, web development, event management and design.
With an aim to publicize AUV amongst prospective customers, investors, partners and
stakeholders, we establish and maintain the team’s corporate relations.
Our responsibilities include: