RoboSub 2017-2018 Jordan Lankford, Ryan Harty, Jake Hannafious, Daniel Mansfield, Marta Camacho, Moeez Malik, Billy Phillips, Ross Dobitz, Oren Pierce, Jeremy Naeve, Nick Baron O2P/VIP Members: Kaitie Wood, Jake Harmon, Samual McCallum, Angel Sanchez, Al Alothman
Acknowledgements ● Advising Professor: Dr. Anthony Maciejewski Graduate Advisors: Christopher Robbiano, Megan Emmons ● Industry Advisors: Dr. Jacob Sauer and Torie Hadel with Ball Aerospace ● Distinctive Welding Inc.
Budget and Finance
What is the RoboSub Project? ● Competition put on by the U.S. Navy and Robonation at the TRANSDEC facility in San Diego California ● Autonomous Underwater Vehicle (AUV) must be fully autonomous No communication with the AUV is allowed ● during competition ● All teams are required to build and design the vehicle from the ground up
Last Year ● Project officially started last year Researched parts ● ● First chassis design ● Thruster Testing ● Began work on vision and sensor components Propulsion & Power, Vision & Sensors, and Mechanical ● Subteams
This Year’s Team ● Propulsion & Power, Vision & Sensors, Mechanical, and Controls Subteams ● 11 seniors and 5 underclassmen ● Underclassmen perform testing and validation role Semester goal was to have the AUV in the water ● and able to track a line
Mechanical Subteam Ryan Harty Jake Hannafious Daniel Mansfield
What We Started With Testing previous team’s design ● ○ Thermal generation and dissipation ■ Internal temperature reached hazardous levels Forward and lateral hydrodynamic drag ○ ■ Top speed was below acceptable levels Mass and buoyancy measurements ○ ■ Too heavy to compete when loaded to neutral buoyancy ■ (>160lbs, must be <125lbs) Internal volume and electronics layout ○ measurements ■ Electronics difficult to access and limited in space
Where We Went from There ● Fixed Points and Focus Reduce buoyancy and mass ○ ○ Hydrodynamics Electronics layout and accessibility ○ ○ Increase thermal dissipation Improvements ● Top speed increased ○ ■ ~0.6m/s to >2m/s Net buoyancy % reduced ○ ■ ~67% to <15% Dry weight reduced ○ ■ ~110lbs to ~45lbs Thermal Dissipation ○ ■ No data yet, subjectively better
Where We’re Going Next CNC machining chassis v2 ● ● New arm to adapt to new challenges Golf ball grabbing/dispensing ○ ○ Golf ball storage/transport magazine Packaged into fairings ○ ● Torpedo launcher Accuracy improvements ○ ○ Packaging into fairings Ballast system ● ○ Reduce dry weight Integrated mandatory safety system ○ ● Casting fairings for hydrodynamic improvement
Testing Video
Propulsion Subteam Jordan Lankford Moeez Malik Marta Camacho
Propulsion System Constraints As per the Robosub Competition Rules: ● AUV must be able to: ○ Sense and maneuver in the area using on board resources Be battery powered with all batteries sealed ○ ● Open circuit voltage of any battery or battery system in the vehicle cannot exceed 60V DC All vehicles must contain a clearly marked kill switch that will remove power ● to the motors and send AUV to surface
2016 - 2017 Summary Investigating Systems - What are other teams doing? ● Major Part Selection ● ○ Motors Electronic Speed Controllers (ESC) ○ ○ Battery Testing ● ○ Motor Load Testing: Heat up and power dissipation under load ○ Underwater Motor Testing ■ Outward thrust of motors and power dissipation ● Design Battery Management System (BMS) ○ ○ Printed Circuit Board (PCB)
Transfer of Knowledge - Continuing Tasks ● Battery Management System (BMS) ○ Design around the power requirements of the larger motors ○ Decided to change course due to lack of need ● Propulsion Controls and Feedback ○ Controls Subteam formation Propulsion Drive ● ○ Motor actuation and chassis mobility CAD File of BMS Circuit Layout
Propulsion Part Modifications ● ● Current Monitoring System Design ● Motor Control Direct Control: PS2 Controller ○ ○ Indirect Control: Arduino + Pi Work that was done this interfacing semester
Part Modifications UAV Brushless Motor: Max 2016/17 Thruster: Max Power 430 Watts HobbyKing 60A ESC Fwd/Bkwd: about 5 lbs T200 Thruster: Fwd HobbyKing 30A ESC Max: 11 lbs Bkwd: 9 lbs M200: Max Power 350 Watts
Current Monitoring ● Hall Effect sensors will sense the amount of current drawn by the motors ● Enable the Arduino to alert the Raspberry Pi to reduce the thrust to prevent the battery from ACS712 Hall Effect Sensor draining too quickly
Motor Control Direct and Indirect
Direct Control: Motor Control Testing with Gaming Controller Control all 6 motors ● Movements mapped to a specific ● button ● Ability to move forward/backward, left/right, up/down Roll, pitch, and yaw ● ● Allows us to record current draw for each motor as well as internal Play Station 2 Gaming temperature Controller
Indirect Motor Control - Arduino + Raspberry Pi Master Arduino Mega- Slave Controller controller that receives motor Disarm (0) Motor State, state and PWM values from a PWM1,..,PWM6 Master Controller so as to: Error Clear Power ● Attach/Detach motors from Arm (1) power PWM ● Supply a PWM signal to each motor dictating motor speed Current Values Error (2) Motors 1-6
Moving Forward….. PCB Layout for Raspberry Pi Propulsion Systems... Arduino Mega Hall Effect Sensor
Look Ma, no hands! Spring 2018 Main Goal Complete onboard motor control and actuation with some sensor data, hall effects and Pi-Arduino communications
Sensors Subteam Oren Pierce Ross Dobitz Billy Phillips
Overview There are five things the AUV needs to know 1. Current location 2. Depth 3. Desired location 4. Orientation 5. Audio signals a. Next semester
Sensors Hardware Nvidia Jetson TX2 Vision Processing, Primary Controller
Sensors Hardware GoPro Hero 4 Black Raspberry PiCam Cameras Raspberry Pi Pressure Transducer Precision A/D Converter Depth Measurement
Inertial Measurement Unit (IMU) Why use an IMU? ● Keep the AUV’s balance ○ Crucial for correct movement Feedback ● ○ Check to see if the commands to the motor are being executed ● Dead reckoning
Dead Reckoning Knowing where you are relative to where you started How is this done? ● Take in Accelerometer and Gyroscope data Change the acceleration axis into a world view ● ○ Will not use magnetometers ● From the corrected acceleration, we can get position This is the hard part due to noise ○
Vision - The Eyes of the AUV ● Software Language - Python ○ ○ Operating System - Ubuntu 16.04 (Linux) Image Processing - OPENCV ○ ○ Code is developed on the same platform the AUV will be using ● The Code Repository All code is updated to the RoboSub ○ GitHub All code is documented with Doxygen ○ ○ Used to ensure the code can be found and worked on by multiple programmers with ease
Building an Object “Profile” Circle ● Object Classification Certain attributes are used to describe an ○ object An object can be a buoy, target, line, etc. ○ ● Shape and Location Detection What constitutes a shape? ○ ○ How do humans know that a circle is a Environment circle? ○ AUV uses Normalized Cross-Correlation Color Detection ● ○ To a computer, color is defined on an RGB scale ○ The average color of the object is found from the frame returned by cross-correlation
What is Next for Vision Functionality for Multiple Object Types ● ○ Once code is fully functional for buoys, modify to include lines, targets, gates, etc. ● Add Recursion Current code processes only one frame ○ ○ Code will be modified to process images taken by the camera at a certain frame rate ● Tracking and Updating Objects As the AUV moves, the average color and ○ location of an object will change Has an object already been identified? ○ ○ How many different objects are in a frame at once
The Role of Computer Vision ● Since the cameras and image processing units are making decisions, they have a job ● Controls tells Vision what information we need to find and return to them Vision carries out their task and returns ● feedback to controls ● Think of Controls as the Captain of a Ship and Vision as a Forward Observer
● Control System Constraints ○ How does everything fit together Controls Goals ● ● Current Work ○ How to implement our Sensors Jeremy Naeve ○ How we control the AUV Nick Baron ● Next Semester
Overview ● Controls wasn’t a part of the previous year project Became a subteam this year because of progress made last year in both ● sensors and propulsion ● Necessity as controls will tie everything together in the sub ● Lots of coding necessary Have to have a functioning knowledge of both other subteams ●
Recommend
More recommend