Sanchez, Al Alothman O2P/VIP Members: Kaitie Wood, Jake...
Transcript of Sanchez, Al Alothman O2P/VIP Members: Kaitie Wood, Jake...
RoboSub 2017-2018Jordan 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 SubteamRyan Harty
Jake HannafiousDaniel 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
Propulsion SubteamJordan Lankford
Moeez MalikMarta 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 System Design
Work that was done this semester
● Part Modifications● Current Monitoring● Motor Control
○ Direct Control: PS2 Controller○ Indirect Control: Arduino + Pi
interfacing
Part Modifications
HobbyKing 60A ESC
HobbyKing 30A ESC
UAV Brushless Motor: Max Power 430 Watts
T200 Thruster: Fwd Max: 11 lbs Bkwd: 9 lbs
2016/17 Thruster: Max Fwd/Bkwd: about 5 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 draining too quickly ACS712 Hall Effect Sensor
Motor ControlDirect 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 temperature
Play Station 2 Gaming Controller
Indirect Motor Control - Arduino + Raspberry Pi
Arduino Mega- Slave controller that receives motor state and PWM values from a Master Controller so as to:
● Attach/Detach motors from power
● Supply a PWM signal to each motor dictating motor speed
Master Controller
Motor State, PWM1,..,PWM6
Motors 1-6
PWM
Power
Disarm (0)
Arm (1)
Error (2)
Error C
lear
Current V
alues
Moving Forward…..
PCB Layout for Propulsion Systems...
Raspberry Pi
Arduino Mega
Hall Effect Sensor
Spring 2018 Main Goal
Complete onboard motor control and actuation with
some sensor data, hall effects and Pi-Arduino communications
Look Ma, no hands!
Sensors Subteam
Oren Pierce Ross DobitzBilly Phillips
There are five things the AUV needs to know
1. Current location 2. Depth3. Desired location4. Orientation5. Audio signals
a. Next semester
Overview
Sensors Hardware
Vision Processing, Primary Controller
Nvidia Jetson TX2
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”● 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
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
Circle
Environment
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
Controls● Control System Constraints
○ How does everything fit together
● Goals● Current Work
○ How to implement our Sensors○ How we control the AUV
● Next Semester
Jeremy NaeveNick Baron
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
Goals
● Collaborate with sensor to develop an interface for communicating information between AUV systems
● Design autonomous control hierarchy to streamline information transfer between sub team systems
● Work with propulsion to reliably control the motors● Begin development of basic automatic control systems.
Control System Constraints
● We had to create the structure for the team● There was a need to define all the intercommunications of the AUVs
systems● Where does controls go?
○ We are working on raspberry pi for now○ There is a transition to a main processing unit○ The control board (Jetson TX2) will be the “brain” of the system
Current Work
● Design a robust control system to help meet the requirements of competition
○ Vision■ Cameras
○ Vehicle Control■ IMU■ Pressure Transducers■ Stabilization
Implementation of Sensors
● Overall hierarchy of sensors systems○ IMU - depending on accuracy after conducting underwater testing○ Cameras
■ Identification of competition targets■ Used to “zero” our current direction
○ Pressure Transducer■ Should be able to accurately measure depth■ Should be able to help account for drift of the sub
How we control the AUV
● Through serial connections we will connect sensors and propulsion● Using feedback loops and input analysis
○ Know where we are in the process○ Know what tasks we still need to accomplish○ Know when the tasks are completed and to return “home”
● Complications so far○ Identification of multiple targets○ Decision making algorithms
Next Semester
● Integrate sensors systems with autonomous control● Generate reliable method of autonomous control● Get the vehicle in the water running on its own
○ Pool testing○ Set up a course in Horsetooth Reservoir and dive with the sub
● Test early - test often○ As the subteams complete their tasks, we will need to test the integration of these systems○ Develop good testbench setup
Conclusion
● Continuation project with the end goal of competing in the RoboSub competition
● Mechanical ○ New AUV○ Continued testing○ Development of competition implements
● Propulsion○ New thrusters○ More efficient system○ Hall effects○ Continue towards complete autonomy
● Sensors○ Decisions made on hardware○ IMU○ Vision
● Controls○ Subteam integration○ Robust control system○ Just keep coding
Questions?