In order to challenge a competition as complex as Robosub we needed to start from the very beginning.
We learned the basics of underwater robotics with the use of Seaperches. When we first started, the majority of the team had no experience with robotics, let alone underwater robotics. This is why the first couple of weeks were filled with pvc pipes, electrical tape, wax, pool noodles, and 12 volt batteries as we were building Seaperches (beginner ROV's made of PVC pipe). After building these, we then analyzed exactly how they worked, from the electronics to the buoyancy.
After the team had a basic introduction to underwater robotics, we then moved onto the next step of engineering, which is microcontrollers and 3d modeling. Through lessons, eventually the team had a basic understanding of the microcontroller Arduino and its software. We also had a couple of quick lessons on 3d modeling (Tinkercad) which would prove useful in the future.
Once we had all our fundamentals down, we began the process of building the BlueROV2 which is an "affordable high-performance underwater ROV." Though, this underwater robot can not only be used as an ROV, but an AUV, which is why it was used for Robosub.
The first steps began with wiring the connections for the electronics. This helped us learn the basics of high-powered electronics with terminal blocks. We also learned how to use powerful lipo-batteries. Before using our lipo batteries in any way, we first had a safety presentation in order to ensure standard protocol and safety.
The next step after wiring was assembling the frame. Following the guides on the internet, we used threadlocker to secure the screws.
After all this, we combined the electronics with the frame and tested the robots electronics outside of water first.
Finally, before the robot entered the water, we made sure the robot was water tight by pressure testing, regreasing the O-rings, re-tightening the penetrators, and by re-tightening the screws. Nervously, we looked inside the acrylic housing for any leaks as we slowly lowered the robot into the water inch by inch until finally the robot was fully submerged in the water with no leaks!
Modifications And Programing
Part of the requirements of Robosub is to have a kill switch on the robot which "must disconnect the batteries from all propulsion components and devices on the AUV." As almost all our ideas start with a simple explanation or drawing, we sketched out a rough design. Our kill switch works by using a magnetic limit switch which is connected to an antispark switch. Therefore, if a magnet was moved into the specific range of the sensor, our battery would be disconnected. In order to test the magnetic limit switch, the most convenient and easiest way was to use a breadboard with an LED. This would help with the wiring portion.
Using our newly learned skills of 3d modeling, we took the dimensions of the electronics enclosure and used Tinkercad to 3d model a kill switch that would push a magnet into the magnetic limit switch which would disconnect the battery. We 3d printed the parts for the kill switch at our local library.
After working with QGroundControl using our robot as a ROV, we started to make the transition into autonomy. The programming sub team has been learning openCV, which is a heavily used library for programming which specializes in computer vision. Currently we are working on connecting openCV programs with our robot which will be used in competition.