Software Design

Our Innovative Design

1. Vision system

Our system is meticulously crafted to optimize the pilot's field of view, acknowledging the diverse demands of different missions involving Kratos -fig (1). It incorporates four carefully selected purchased CCTV cameras and one Blue Robotics camera, each fulfilling a specific role. The first camera, angled at 60°, offers a gripper view crucial for various missions. The second camera, positioned at a 90° angle, supervises the upper equipment retrieval box. The third camera is dedicated to capturing the bottom side of the pool, ensuring convenient viewing of tether. The fourth camera offers a backward-facing view to monitor the tether and avoid entanglement with the propellers. Lastly, the primary Blue Robotics camera is forward-facing, providing the pilot's perspective and primarily deployed in tasks such as Autonomous Transplanting and 3D modeling.

vision System
Figure 1: Camera Cones by SolidWorks

2. Topside Control Unit (TCU)

The control panel of Kratos -fig (2), various components including four video baluns, a DVR, and the main power outlet are accommodated. The DVR was repurposed to establish a connection with the surface laptop via a local network using RJ45. All elements are securely mounted, with distinct separation and labeling of AC and DC power supplies to prevent confusion. Cable management is meticulously handled, ensuring no exposed wires and proper strain relief for incoming cables.

Furthermore, the decision to purchase the joystick was made judiciously to minimize overall costs, with prior confirmation of its compatibility with QGround Control for transmitting signals to the ROV.

tcu
Figure 2: TCU

3. Software and Control System

Kratos software serves two primary functions: managing input from the joystick and commanding and directing the ROV using QGround Control and the vision system. Our software is divided into two major subsystems: the underwater system and the topside system.

a. Underwater System

Previously, Kratos' Underwater System, controlled by an Arduino-based architecture utilizing finite state machines, directed the ROV into specific axes based on received commands. The system has since undergone an upgrade to enhance reliability and versatility. The new configuration incorporates advanced components like the Pixhawk and Raspberry Pi 4, replacing the Arduino. This upgrade enables the implementation of innovative methodologies, including the utilization of probiotics for coral health restoration and the conservation of Lake Sturgeon populations.

1. Pixhawk

The Pixhawk 1 -Fig (3), serves as Kratos’ flight controller, having been procured to ensure stability for the ROV. Its primary pins are dedicated to controlling the ESCs and driving the thrusters, while auxiliary pins manage grippers and LEDs. Pixhawk 1 is essential for controlling Kratos' movement, ensuring stabilization, and supporting autonomous functionality by utilizing sensors to determine the ROV’s state. Equipped with numerous built-in sensors, including a gyroscope, accelerometer, and magnetometer, the Pixhawk enables the configuration of additional sensors such as the bar30, which we utilized instead of the built-in barometer. These sensors facilitate stabilization modes like altitude hold and stabilize flight modes supported by the Pixhawk. These flight modes have proven instrumental in Kratos' successful execution of various tasks.

The selection of Pixhawk 1 over Pixhawk 4 was influenced by its compatibility with essential pressure sensors like the bar30, crucial for Kratos' depth control, especially during flight modes requiring precise altitude management. Pixhawk was chosen over Arduino because of its compatibility limitations with sensors and the challenge of replicating Pixhawk's internal PID controller's efficiency. Additionally, the STM32 chip embedded in Pixhawk enables superior thruster control, compared to Arduino’s ATmega328P chip, due to its advanced computational capabilities and extensive peripheral support.

pixhawk
Figure 3: Pixhawk1
1. Raspberry pi

Our system utilizes BlueOS as the companion operating system deployed on Raspberry Pi 4 -fig (4) to seamlessly integrate with Pixhawk for operating an ROV. Making it better suited for handling the complex tasks required for ROV operation. With its superior computational capabilities, Raspberry Pi can effectively manage communication with Pixhawk, enabling precise control and navigation of the ROV. Additionally, Raspberry Pi offers a wider range of connectivity options, including long-distance communication via RJ45, enhancing the overall functionality and flexibility of our system.

Furthermore, Raspberry Pi handles the main camera stream enabling seamless transmission to the topside. With the camera directly connected to it, this setup ensures efficient management of the main camera stream and real-time video feed to the topside, enhancing control during ROV operations. Thus, Raspberry Pi proves to be the optimal choice for implementing BlueOS and ensuring seamless integration with Pixhawk in our ROV operations.

Raspberry-Pi-4
Figure 4: Raspberry pi 4 model B
a. Topside Software

Our topside software comprises two distinct modules, each serving a specific function to optimize user experience and enhance operational efficiency:

1. Control Unit

The Control Unit is housed within a pilot laptop and is responsible for operating the ROV using QGround Control. By connecting via RJ45 to the laptop, QGround Control can directly access the saved configuration of the joystick, enabling precise control of the ROV's movements. Additionally, the camera connected to the Raspberry Pi appears on QGround Control, providing real-time visual feedback to the pilot facilitating smooth operation during missions.

2. Graphical User Interface (GUI)

The GUI -fig (5) hosts a pilot interface while GUI -fig (6) hosts copilot interface Furthermore, the copilot GUI utilizes camera streams to generate 3D models, enhancing situational awareness and supporting mission planning and execution. Powered by the Matplotlib Python library for plotting and developed using PyQt5 and QtDesigner, the GUI complements the Control Unit by providing comprehensive visualization and monitoring functionalities throughout ROV operations.

QGROUND GUI
Figure 5: Pilot GUI
Copilot GUI
Figure 6: Copilot GUI