490 likes | 675 Views
Team #5 - RoboSub. RoboSub System-Level Design . Overview. Jonathan Wong Chong. Mechanical System Electrical and Power System Software System Vision SLAM Task Manager Path Planning Decision Making Motion Control IMU/ Stabilization Budget , Schedule, Risks Questions.
E N D
Team #5 - RoboSub RoboSub System-Level Design
Overview Jonathan Wong Chong • Mechanical System • Electrical and Power System • Software System • Vision • SLAM • Task Manager • Path Planning • Decision Making • Motion Control • IMU/ Stabilization • Budget , Schedule, Risks • Questions
Project Management Jonathan Wong Chong • Matthew Neafie • Vision • Object Recognition/ Color Recognition • Path Planning • Mono- simultaneous localization and mapping (SLAM) • Daniel Cifredo • IMU • Data Acquisition for Hydrophones and IMU • Data Storage
Project Management Jonathan Wong Chong • Julius Cobb • Decision Controlling • Motion Controlling • Stabilization • Jonathan Wong Chong • Electrical and Power • Decision Controller/ PID • Torpedo Fire Controller/ Claw
Jonathan Wong Chong -- Team #5 - RoboSub Mechanical System
Mechanical System Jonathan Wong Chong • Reuse the Design from Last Year • Fixed Camera Cases
Jonathan Wong Chong -- Team #5 - RoboSub Power and Electrical
Power Components Jonathan Wong Chong • 14.8V Polymer Li-Ion Batteries • Only powering thrusters • 19v 4Ah Li-Ion External Laptop Battery • Powers main CPU unit • Lasts roughly 2-3 hours • Essentially powers all USB devices as well • 12v Li-Ion 18650 Box Battery • Regulated to power actuation system
Thruster System Jonathan Wong Chong
Final Product Jonathan Wong Chong
Matthew Neafie -- Team #5 - RoboSub Software System Design
Software Overview Matthew Neafie
Vision General Overview Matthew Neafie
Vision Matthew Neafie The vision system is the software module that satisfies all of the necessary image processing needs of the AUV. Modules from this system will be called when needed by the top-level control software. Written using OpenCV and Castle’s SLAM, this module will implement object recognition, a frequently occurring problem in the contest. Color Recognition and Tracking OpenCV Library • #include <cv.h> • #include <highgui.h> Calls SURF class Psuedo steps //capture image from camera //create windows for debugging purposes //cycle through each frame • //smooth the original image using Gaussian kernel • //Convert from BGR to HSV • //Create a binary image with the set color threshold • //smooth and clean image • The AUV will now have a color image which can be used for other purposes.
Vision Matthew Neafie SURF, Speeded Up Robust Features OpenCV Library • #include <features2d.hpp> • #include <highgui.hpp> • #include <imgproc_c.h> Calls SLAM • Psuedo steps //capture image from camera //create windows for debugging purposes //cycle through each frame • //Convert the RGB image obtained from camera into Grayscale • //Define sequence for storing surf keypoints and descriptors • //Extract SURF points by initializing parameters • //draw the keypoints on the captured frame • //compare keypoints from captured image to stored image • The AUV will now have compared the current visual image to that of the competition obstacles.
SLAM Overview Matthew Neafie
SLAM Matthew Neafie • Simultaneous Localization and Mapping • Robert Castle’s PTAMM (Parallel Tracking and Multiple Mapping) software • Libraries needed and why: • 1. TooN - a header library for linear algebra. • 2. libCVD - a library for image handling, video capture and computer vision. • 3. Gvars3 - a runtime configuration/scripting library, this is a subproject of libCVD. • 4. lib3ds - a library for handling 3DS model files. • Stores map into file system for access by other subsystems (Path planning and decision making). • Calls Task manager, Path Planning, and Decision-maker.
SLAM Matthew Neafie • Simultaneous Localization and Mapping • Robert Castle’s PTAMM (Parallel Tracking and Multiple Mapping) software • PTAMM RUNNING 3D Mapping Feature Images from Robert Castle
Task Manager Overview Matthew Neafie
Task Manager Matthew Neafie Stack of Tasks • Recognized by Vision and Mapped • Unrecognized TASKS Gate Parking Torpedo
Task Manager Matthew Neafie Stack of Tasks • Recognized by Vision and Mapped • Unrecognized TASKS Removed Gate Parking Torpedo
Task Manager Matthew Neafie public class StateStack Map<String, IState> mStates = new Map<String, IState>(); List<IState> mStack = List<IState>(); public void Update(float elapsedTime) public void Render() public void Push(String name) public IState Pop()
Path Planning Overview Matthew Neafie
Path Planning Matthew Neafie • The Path Planning algorithm can be viewed as a greedy algorithm because it always chooses the closest vertex in V - S to add to S. • //insert all vertices into priority queue • //Extract-min (first extraction is simply s) • //for each neighbor • //RELAX(u,v,w) • //update label of neighbor, • //decrease-key v.d in priority queue • Fibonacci Heap – O(|V|log|V| + E) time • Uses map from SLAM, Goal from Task Manager, calls decision-maker
DMCS Overview Matthew Neafie
Decision-making Control System Matthew Neafie • What to do and how to do it • Mission Planning • Path Planning • Deployment • Diagnose & Correct • Goal Directed • Obstacle Avoidance • Pose Holding • Depth Holding Weighted Total Output
Julius Cobb -- Team #5 - RoboSub Decision Making Control System - Continued
Decision Making Control System – A PID Julius Cobb • The DMCS module acts as an abstract Proportional Integral Derivative feedback controller • Two systems: Rational Behavior and Perceptual Behavior • One system uses sensory data from other threads to generalize the current behavior of the AUV • Second system uses the above as input to adjust process control parameters • sendDataToMotionControl()
Motion Control - Software Julius Cobb • Interpret commands sent from the DMCS • distributeThrust() – process input to the module and generate low-level commands to thrusters
Motion Control - Hardware Julius Cobb • Arduino Mega 2560 • Single microcontroller that will be used for thruster control • Currently tied to four separate motor controllers as well as the Inertial Measurement Unit • USB port is a power source from the MPU as well as the main UART serial communication port • Baud Rate: 19200 bit/s • Parity: None • Hardware Control Flow: None
Motion Control – Hardware Julius Cobb • L298 H-Bridge Motor Controller • Two different brands, very similar specs • Input voltage from 6 to at least 25V • 4A total drive current (2 x 2A) • Motor direction LEDs • Handles varied output by writing PWM signal to the ENABLE pin
Motion Control - Hardware Julius Cobb • Seabotix BTD-150 Thrusters • Max operating voltage of 19.1V • Max continuous current draw of 4.25A • Utilizing the two graphs, following conclusions can be drawn: • If motor controller running in normal mode, thrusters can achieve max of 1.05 lbs of thrust each (input voltage is 9.58V) • If motor controller running in bridged mode, thrusters can achieve max thrust of 2.01 lbs (input voltage is 14.8V)
Motion Control – Software to Hardware Julius Cobb • Arduino Mega waits for serial data from MPU containing new thrust level • Once the data is available, read the new thrust percentage and write the respective PWM signal to motor controller
Stabilization - Software Julius Cobb • Consists of two generic PID controllers implemented in C++ • One system for minimizing error in pitch • One system for minimizing error roll • For both systems, controller would: • Read state from IMU • Subtract measurement from desired reference to generate an error value • Adjust process inputs (thruster levels) to manage error • (P) proportional term “handles the present” • (I) integral term “recovers from the past” • (D) derivative term “anticipates the future”
Stabilization - Hardware Julius Cobb • IMU – Sparkfun Razor with 9 degrees of freedom • Interfaces directly with the Arduino Mega • Receives 3.3V input voltage from the Arduino’s 3.3V output pin • Establish UART serial communication link by connecting TX and RX pins to TX1 and RX1 on Arduino • Baud Rate MUST BE set at 56200 bit/s on both devices for optimal serial data transmission • Parity: None • Hardware Control Flow: None
Stabilization – Software to Hardware Julius Cobb • Arduino will read data from IMU at set intervals • Upon receiving data from IMU, Arduino then sends the data to MPU to be processed in Stabilization thread • IMU outputs all measurements (xyz gyroscope, xyz accelerometer and xyz magnetometer) so the serial stream will have to be parsed
Daniel Cifredo -- Team #5 - RoboSub Schedule, Budget, Risks
Schedule – Gantt Graph Daniel Cifredo
Schedule – Gantt Graph Daniel Cifredo
Schedule – Gantt Graph Daniel Cifredo
Budget Exercise Daniel Cifredo
Daniel Cifredo Budget Exercise
Daniel Cifredo Risk Assessment - Technical
Daniel Cifredo Risk Assessment - Technical
Daniel Cifredo Risk Assessment - Technical
Conclusion Jonathan Wong Chong • Continue Work on Thrusters, IMU, Vision • On Schedule • 1st Testing Demonstration to be completed by Spring • Thank You!