Autonomous Underwater Vehicle
McGill Robotics’ first and oldest project is designing an autonomous underwater vehicle for the AUVSI RoboSub Competition. An autonomous underwater vehicle (AUV) is a robot designed to travel underwater with no operator or pilot input. AUVs are categorized as unmanned underwater vehicles (UUV), and are very similar to remotely operated underwater vehicles (ROV), which are controlled and powered by an operator on the surface. Both vehicle systems are deployed in environments that are inhospitable and difficult to access by humans. Some applications include: mapping and oceanography, research and data collection, crash investigations like Air France Flight 447, and oil and gas pipeline planning, inspection, and maintenance.
This year, we are proud to say that we have accumulated nearly four years of experience with AUVs and we are currently building our fourth. This project was chosen largely because it necessitates a healthy balance of electrical, mechanical, and software development. We believe this provides a broader engineering education to our members, and instills the importance of system integration in them.
Every year, the McGill Robotics AUV Project competes at the International RoboSub Competition organized and hosted by AUVSI and ONR at the SSC Pacific TRANSDEC in San Diego, California. The competition attracts student teams from both universities and high schools around the world. The challenge presented by the competition is to build an autonomous underwater vehicle that can complete a series of tasks and maneuvers that are focused on visual and acoustic navigation. These tasks include recognizing and hitting buoys, firing torpedoes through specific targets, localizing to acoustic pingers, and moving objects around the pool.
The competition itself takes place in the US Navy’s anechoic pool testing facility, shown on the map to the right. Many notable companies from the robotics industry attend the competition to advertise the products they develop, as well as to network with the students competing. The top teams win prize money and the opportunity to connect with the most prominent companies in the industry. For more information, please see the competition website at AUVSIFoundation.org (hyperlink).
McGill Robotics has enjoyed a considerable amount of success at RoboSub considering our limited experience. In 2016, we made it to the final round of the competition and ranked second overall in static judging. In the past we have also ranked in the top three in static judging, and we have won awards for marketing and business integration.
The biggest goal of the McGill Robotics AUV Project is the continued development of our existing platform. This is achieved through iterative design and development of our current systems. To motivate this development and to provide a source of evaluation and feedback, we maintain a biweekly pool testing schedule for the entire robot. This has helped break down the timeline of our goals into much more manageable portions, and has improved our ability to work together as a team.
To create a bond within our project, we try to have a lot of fun together when we aren’t working on the robot. We put a big emphasis on Team Before Machine events, like going to Blues Pub together, or eating Soup Dumplings after successful pool tests. We believe that by strengthening our team, we will improve the quality of our work.
For the newest iteration of our autonomous underwater vehicle, we didn’t want to reinvent the wheel, mechanically speaking. Working closely with the software and electrical divisions we sought to improve upon our previous design while also maintaining the look and elegance that people have come to associate with McGill Robotics.
Our Main Hull design is always central to our AUV. Housing the CPU, cameras, power distribution boards, depth sensor, and many other components, our Main Hull for Bixby and Bradbury was tightly packed which made it hard to access any components we needed to get to. For our C-Class robot, we decided on a double extrusion design which allows our circuit boards to be spread further apart and our CPU and motherboard to be mounted directly inside the central ring. The electrical division was capable of making semi-circular printed circuit boards which allows space to be optimized within the Main Hull and makes it easier to mount all the boards on a single back-plane. To cool our CPU, we opted for convective cooling this year over liquid cooling as it saves space and simplifies the procedure; we ran through calculations and tests to ensure convective heat dissipation could adequately prevent heat build-up inside the Main Hull. Finally, having a symmetrical design for our central pressure vessel ensures weight and buoyancy distribution and centralization is significantly easier to achieve when affixing it to our frame.
Our new battery pressure vessel is rectangular to optimize spatial efficiency and reduce unnecessary buoyancy, a problem we’ve struggled with in the past. Latches on the sides allow easier and faster battery swapping. For our hydrophone pressure vessel, we decided to keep a cylindrical design, but we have drastically reduced the size to minimize buoyancy. A new sealing method also allows smoother assembly and disassembly which makes testing much smoother.
Designs for pneumatics have, much like the rest of our AUV, stayed largely the same. Torpedoes and marker droppers have remained largely the same to our earlier designs with a push towards 3D printed materials as they are lightweight, cheap, and easy to prototype to ensure ideal characteristics in our torpedoes and markers. The pneumatics manifold is significantly smaller this time around, and fully designed and manufactured by our mechanical division. The pressure regulator and valves are also contained within the pneumatics pressure vessel.
To connect all the various aspects of our robot we require a light-weight, sturdy, and durable frame. Pushing into new territory, we decided to weld our frame together and include a curved front panel to increase rigidity and eliminate fasteners and brackets. To make all the components within the frame accessible, we guaranteed that key holes in the side of our frame were large enough for a hand and tools to be able to pass through. Staying in classic McGill Robotics tradition, we cut unique geometric patterns into the sides of our frame to reduce weight and create a distinctive appearance.
Aluminum is our continual material of choice, being light-weight, inexpensive, easily machinable, and strong enough for our applications. Our battery pressure vessel and housing for our downward facing camera are both manufactured from Delrin this year and our forward-facing camera port is PVC to reduce weight.
The new mechanical design enforced some significant changes to the electrical system. Indeed, few electrical components could be recycled from Bradbury due to the new thinner main pressure vessel. We used this opportunity to redesign for better isolation, smaller total footprint and better power management, all in elegant semi circular shaped boards.
If our latest AUV electrical system improvements had to be described in one word, it would be modularity. What use to be two main boards in Bradbury is now divided in seven isolated ones distributed on two backplanes, one on each side of the main pressure vessel. Each board with a microcontroller has its own usb interface and status LED for swift debugging and can all be fully tested outside the main system. All these connect to our new smaller, faster and more energy efficient mini computer that can be removed from the main pressure vessel within seconds.
One of the main concern from Bradbury’s electrical system was motor induced noise contamination of the computer system. To help in this regard, an isolated battery was used for each system. This year, to further segregate our motor and sensor systems, the two powers are fully isolated through relays and isolation IC. Having 2 backplanes also allowed us to spatially distance sensitive sensor circuitry from unavoidable EMI caused by the motor controllers.
Extra autonomy has always been of crucial importance to the team. Bradbury suffered from reduced battery life due to one battery discharging twice as fast as the other. This year, a second motor battery was added to effectively double our total autonomy and also foolproof battery failure.
Of the sensing features of our robot, which include, inertial measurement unit, sonar, front and down facing camera, depth sensor and hydrophones, a new input of importance was added: the Doppler velocity log. This new sensor will contribute to precise odometry, which was difficult with our previous AUV. Our hydrophones system is also revamped with more gain to allow for more range and …
It goes without saying that this new iteration of the AUV will still be equipped with our custom LED strips, which have come to be known as a trademark. More than 100 LEDs distributed symmetrically on both sides of the main pressure vessel are used this year to signal to the diver different critical messages.
Nevertheless, the most exciting new feature of the C-class AUV is undoubtedly the new grabber arm. An dedicated board was designed to to interface with the four motors used to maneuver the arm. Hall effect magnetic encoders and a digital compass array coupled with permanent magnets allow precise feedback on the position of the arm.
The AUV software system is the brain of the robot. It combines information from our sensor network to intelligently build an understanding of our environment, make decisions and manage strategies.
Our software system is built on the Robot Operating System (ROS) which allows for a modular architecture composed of loosely coupled nodes. ROS is open-source software, which means we can take advantage of and contribute to ROS packages developed by the international robotics community. The code is written in both C++ and Python, and runs on Ubuntu.
The control system is responsible for moving the robot to desired targets by sending signals to the 8 thrusters. It is comprised of a PID loop in each of the robot's six degrees of freedom, which are tuned and subsequently controlled separately.
We've revamped our controls system to be modular and to have a smooth interface to receive commands from any node in the system. The force and torque necessary in each axis are calculated separately, combined into a single thrust command and then mapped to commands for each individual thruster.
Sensor Processing & Localization
Bradbury is equipped with various sensors used to process its environment: an inertial measurement unit (IMU), a sonar, four hydrophones, a downward and forward facing camera and a depth sensor. We synthesize the data from all these sensors to better understand our state.
We take advantage of the predetermined structure of the course to localize relative to each task sequentially. The attitude of the robot is derived absolutely from sensor data measured by our IMU. To then estimate the relative position of targets, we make use of the sonar and both cameras to detect objects of interest within the course.
We use various filtering methods from the OpenCV libraries to detect objects with simpler geometries and colours. We use a combination of edge detection and colour filtering methods, on top of preprocessing methods, to identify these objects including the lane and the target.
In order to detect objects with more complex, 3D geometries, such as the buoys, we chose to take advantage of the vast amount of data we’ve accumulated over the years and employ machine learning methods for object detection. We train a convolutional neural network architecture offline using annotated images. It is then able to identify a bounding box surrounding the object of interest in real-time.
The mission planner is a configurable package which commands the robot to complete tasks in an order predefined by the user. In addition, it can be configured to make decisions about which tasks to attempt based on sensor input. The strategy for each task is carried out by the mission planner, making use of the outputs of the localization and sensor processing packages to intelligently determine the state of the current task and act accordingly.