Hybrid Routing Algorithms for Navigation Control of a Semi-Autonomous Robotic Platform Faculty Advisors: Dr. Charles Liu Dr. Helen Boussalis 3/18/2016 NASA Grant URC NCC NNX08BA44A Student Assistants: Airs Lin Garth Herman Aleksander Milshteyn Evan Tsai 1 Presentation Overview • Design of a Semi-Autonomous Robotic Platform – Background – Specification of a Mobile, Networked, and Intelligent Platform • Overview of System Architecture – Kinematics, Networking, Intelligence, and Data Acquisition Interface – Hardware and PSoC Firmware Implementation • Hybrid Routing Overview – Host PC Software Implementation of Level Maps – D* (Dynamic A*) Routing Algorithm • Conclusion 3/18/2016 NASA Grant URC NCC NNX08BA44A 2 Project Background • International Lunar Networking (ILN) is a proposed network of robotic landing stations. Each station will monitor geological activity, while robots investigate the Lunar environment. • Mars Science Laboratory/Curiosity, landed on August 6th, 2012 and is an automated Mars rover vehicle exploring the Martian surface. Rovers present advantages over stationary nodes including directed observation and autonomous orientation to sunlight during winter. • The proposed design envisions a network of multiple Semi-Autonomous Multi-Mission mobile platforms to provide real-time data acquisition and communication relays. 3/18/2016 NASA Grant URC NCC NNX08BA44A 3 Overview of System Architecture Control Center • Environmental mapping • Environmental data collection • Multimedia acquisition 3/18/2016 NASA Grant URC NCC NNX08BA44A 4 3/18/2016 NASA Grant URC NCC NNX08BA44A 5 Specification of a Mobile, Networked, Intelligent Platform • Sensors for kinematics and obstacle detection: – Sonar, Infrared, Accelerometer, Magnetometer, Gyroscope, Motor Shaft Encoders • On-board wireless communications: – Wixel – Nordic RF24 • Sensors for Environmental/Atmospheric Conditions: – Radiation, Temperature, Gas, Acoustic, etc • Sensors for 3D environmental Observation and Mapping: – Microsoft Kinect – Headtracking Virtual Reality Stereoscopic Camera • Embedded System: – A full but miniature-size computer system to do heavy-general computing including a PC and Programmable System on a Chip. 3/18/2016 NASA Grant URC NCC NNX08BA44A 6 Prototype Architecture Implementation Distance Sensors Programmable System On a Chip (PSoC) Kinematic Sensors Motor Controllers This mobile unit shall allow semi-autonomous and remote-controlled navigation. 3/18/2016 NASA Grant URC NCC NNX08BA44A 7 List of Sensors Ultrasonic Infrared Accelerometer/Magnetometer Gyroscope 3/18/2016 NASA Grant URC NCC NNX08BA44A Encoder 8 Kinect Hardware • 4 Microphones • 1 IR Transmitter • 1 visual-spectrum camera • 1 IR camera for depth detection • 1 Motor (pitch-only) 3/18/2016 NASA Grant URC NCC NNX08BA44A 9 What is a Programmable System-on-Chip (PSoC)? • • • • 32-bit ARM Cortex-M3 CPU @ 67MHz Digital, Analog, and Communication Interfaces • ADC/DAC, Digital Filter, PWM, Timers, I2C, SPI, UART, USB, DMA, Interrupt, basic logic gates… Voltage levels of I/O: 5V, 3.3V, 1.8V, and user defined All Pins can be configured as Digital, Analog (Input or Output) 3/18/2016 NASA Grant URC NCC NNX08BA44A 10 Top-level UDB Routing Diagram UDBs are utilized when implementing multiple digital components with different internal settings. • UARTs • PWMs • Separate SPI / I2C Masters 3/18/2016 NASA Grant URC NCC NNX08BA44A 11 PSoC Components Motors Communications / Digital Sensors Motor Encoders Analog Sensors 3/18/2016 NASA Grant URC NCC NNX08BA44A Servo Turret Control 12 PSoC Raw Data Output Raw Data Values: ~85 updates/sec over cable Serial UART @ 115200bps Servo Position 3/18/2016 Infrared Gyro X-Axis Gyro Y-Axis NASA Grant URC NCC NNX08BA44A Gyro Z-Axis Sonar (analog) 13 PSoC Converted Data Output 3/18/2016 NASA Grant URC NCC NNX08BA44A 14 Overview of System Architecture Control Center Visually interactive, real-time maps. 3/18/2016 NASA Grant URC NCC NNX08BA44A 15 Hybrid Routing Overview L1: 1 km x 1km L2 Three levels of mapping are used: • A L1 map is composed of 100 L2 (10000 sq. meter) L3: 10 m x 10 m maps. • An L2 map is composed of 100 L3 (100 sq. meter) maps. • An L3 map is composed of 100 (1 sq. meter) blocks. L2 3/18/2016 NASA Grant URC NCC NNX08BA44A 16 Great-Circle Distance • a are geographical latitude and longitude of two points. • Radius of the Earth, r = 6,371,009 m • is the central angle between these two points • Law of cosines: 3/18/2016 NASA Grant URC NCC NNX08BA44A 17 3/18/2016 NASA Grant URC NCC NNX08BA44A 18 Static Mapping on a L1 Map • UAV captures an image and transmits it to the operator. • Operator plots the observed obstacle placement. • Obstacle data is wirelessly transmitted to the Host PC. 3/18/2016 NASA Grant URC NCC NNX08BA44A 19 Static Mapping on a L1 Map • This application will provide communication with the operating station and the robot platform. • It accumulates sensor values, maps the environment, and provides algorithmic control. 3/18/2016 NASA Grant URC NCC NNX08BA44A 20 Obstacle Information Acquisition and Sensor Ranges on the L2 block (L3 Map) Infrared Microsoft Kinect Ultrasonic Sensor Scale: Each square = 1 sq. m. • Each sensor will be utilized to inform the controlling PC of obstacles at specific distances, based on the unit capabilities (sensor range, amount of sensor units) 3/18/2016 NASA Grant URC NCC NNX08BA44A 21 Integration of 3rd party Kinect Module 3/18/2016 02/22/13 NASA Grant URC NCC NNX08BA44A 22 What is an A * Algorithm? • A* is based on an approximate cell-decomposition approach, that fills grid-based world model as more information about structural surrounding environment is gathered. • It is an extension of Edsger Dijkstra's 1959 algorithm. Three computer scientists in the field of artificial intelligence - Peter Hart, Nils Nilsson and Bertram Raphael first described the algorithm in 1968 • Dijkstra's algorithm, is a graph search algorithm that solves the single-source shortest path problem for a graph with nonnegative edge path costs, producing a shortest path tree. This algorithm is often used in routing and as a subroutine in other graph algorithms. 3/18/2016 NASA Grant URC NCC NNX08BA44A 23 Dijkstras Algorithm 12 0+2 F A 3 2 7 2 0 0+5 5 S 4 B 5 T D 1 1 3 4 7 4 C E 0+4 3/18/2016 NASA Grant URC NCC NNX08BA44A 24 Dijkstras Algorithm 12+2 12 2 F A 3 2 2 7 0 2+2 5 0+5 S 2+7 4 B 5 T D 1 1 3 4 7 4 C E 0+4 3/18/2016 NASA Grant URC NCC NNX08BA44A 25 Dijkstras Algorithm 12+2 12 2 F A 3 2 2 7 0 4 5 0+5 S 2+7 4 B 5 T D 4+4 1 1 3 4 4+1 0+4 3/18/2016 C 4+3 7 4 E NASA Grant URC NCC NNX08BA44A 26 Dijkstras Algorithm 12+2 12 2 F A 3 2 2 7 0 4 5 S 2+7 4 B 5 T D 4+4 1 1 3 4 4+3 7 4 4 C E 4+4 3/18/2016 NASA Grant URC NCC NNX08BA44A 27 Dijkstras Algorithm 12+2 12 2 F A 3 2 2 7 0 4 5 S 2+7 4 B D 5 T 7+1 4+4 7+7 1 1 3 4 7 7 4 4 C E 4+4 3/18/2016 NASA Grant URC NCC NNX08BA44A 28 Dijkstras Algorithm 12+2 12 2 F A 3 2 2 7 0 4 5 S 4 B 8+5 2+7 D 5 T 8 8 8+7 1 1 3 4 7 7 4 4 C E 4+4 3/18/2016 NASA Grant URC NCC NNX08BA44A 29 Dijkstras Algorithm Unsolved Node 12 2 F A 3 2 2 7 0 4 13 5 S 4 B 5 D T 8 8 Shortest Routes: 1 1 3 4 Incomplete Route 4 3/18/2016 7 7 4 C 1)S-A-B-D-T 2)S-A-B-E-D-T E NASA Grant URC NCC NNX08BA44A 30 A* Variables • G – The movement cost to move from the starting point to a given square cell on the grid, following the path generated to get there. • H – The estimated movement cost (heuristic) to move from that given square on the grid to the final destination. The H scores are calculated by estimating the Manhattan distance to the target square, moving only horizontally and vertically and ignoring the obstacles in between. • F=G+H – The path is generated by repeatedly going through the open square cell list and selecting the cell with the lowest F score. 3/18/2016 NASA Grant URC NCC NNX08BA44A 31 A* Determining Adjacent Cell Costs Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 3/18/2016 80 10 70 S 80 10 70 74 14 O 60 60 10 O 50 74 14 60 T O NASA Grant URC NCC NNX08BA44A 32 A* Determining Adjacent Cell Costs Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 3/18/2016 80 10 70 S 80 10 70 74 14 O 60 60 10 O 50 74 14 60 T O NASA Grant URC NCC NNX08BA44A 33 A* Determining Adjacent Cell Costs Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 3/18/2016 80 10 70 S 80 10 70 74 20 O 60 60 10 O 50 74 20 60 T O NASA Grant URC NCC NNX08BA44A 34 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 94 10 80 10 70 94 14 80 94 10 50 60 10 60 10 3/18/2016 74 20 60 74 24 60 10 50 60 20 40 70 80 20 60 74 24 50 50 60 10 50 60 10 70 S O 50 O T O 50 60 10 50 NASA Grant URC NCC NNX08BA44A 35 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 3/18/2016 80 10 70 S 80 10 70 94 14 O 60 74 24 50 60 10 O 50 60 20 40 94 14 60 74 24 50 T O NASA Grant URC NCC NNX08BA44A 36 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 3/18/2016 80 10 70 60 74 24 50 60 20 40 74 20 60 74 24 50 108 38 70 94 34 60 88 38 114 34 114 44 108 48 60 60 10 S 80 10 74 14 70 80 O 50 O T O 70 50 NASA Grant URC NCC NNX08BA44A 37 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 80 10 70 S 80 10 70 74 14 60 74 24 60 10 50 60 20 40 74 14 60 74 24 50 70 94 34 80 114 44 94 24 114 34 3/18/2016 O 50 O T O 60 88 38 70 108 48 60 50 NASA Grant URC NCC NNX08BA44A 38 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 80 10 60 74 24 60 10 50 60 20 40 70 74 14 60 74 24 50 80 94 24 70 88 34 80 122 52 70 70 S 80 10 100 20 74 14 114 34 3/18/2016 O 50 O T O 60 88 38 108 48 82 52 30 50 88 48 40 60 102 52 50 NASA Grant URC NCC NNX08BA44A 39 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 80 10 60 74 24 60 10 50 60 20 40 70 74 14 60 74 24 50 80 94 24 70 88 34 80 122 52 70 70 S 80 10 100 20 74 14 114 34 3/18/2016 O 50 O T O 60 88 38 108 48 82 52 30 50 88 48 40 60 102 52 50 NASA Grant URC NCC NNX08BA44A 40 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 80 10 60 74 24 60 10 50 60 20 40 70 74 14 60 74 24 50 80 94 24 70 88 34 80 122 52 70 70 S 80 10 100 20 74 14 114 34 3/18/2016 O 50 O O 60 88 38 108 48 82 62 82 52 20 76 66 10 30 82 62 20 40 94 64 30 50 88 48 60 102 52 50 NASA Grant URC NCC NNX08BA44A T 41 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 80 10 60 74 24 60 10 50 60 20 40 70 74 14 60 74 24 50 80 94 24 70 88 34 80 122 52 70 70 S 80 10 100 20 74 14 114 34 3/18/2016 O 50 O O 60 88 38 108 48 82 62 82 52 20 76 66 10 30 82 62 20 40 94 64 30 50 88 48 60 102 52 50 NASA Grant URC NCC NNX08BA44A T 42 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 94 14 80 80 10 60 74 24 60 10 50 60 20 40 70 74 14 60 74 24 50 80 94 24 70 88 34 80 122 52 70 70 S 80 10 100 20 74 14 114 34 3/18/2016 O 50 O O 60 88 38 108 48 82 62 82 52 20 76 66 10 30 82 62 20 40 94 64 30 50 88 48 60 102 52 50 NASA Grant URC NCC NNX08BA44A T 43 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 80 10 70 S 74 14 60 10 60 74 24 O 50 50 60 20 40 O 110 80 30 96 76 82 62 76 66 20 20 90 80 10 10 76 76 0 T 94 14 3/18/2016 80 80 10 100 20 70 74 14 60 74 24 80 O 50 94 24 70 88 34 60 114 34 80 122 52 70 82 52 30 82 62 20 40 94 64 30 88 38 50 88 48 108 48 60 102 52 50 NASA Grant URC NCC NNX08BA44A 90 80 10 44 A* Calculating and Selecting Lowest Cost Cell Red = G, Blue = H, White = F 94 14 80 80 10 70 80 10 70 S 74 14 60 10 60 74 24 O 50 50 60 20 40 O 110 80 30 96 76 82 62 76 66 20 20 90 80 10 10 76 76 0 T 94 14 3/18/2016 80 80 10 100 20 70 74 14 60 74 24 80 O 50 94 24 70 88 34 60 114 34 80 122 52 70 82 52 30 82 62 20 40 94 64 30 88 38 50 88 48 108 48 60 102 52 50 NASA Grant URC NCC NNX08BA44A 90 80 10 45 A* Tracing Best Path(s) Red = G, Blue = H, White = F O O O 3/18/2016 NASA Grant URC NCC NNX08BA44A 46 A* Summary 1) Add the starting square (or node) to the open list. 2) Repeat the following: a) Look for the lowest F cost square on the open list (i.e. Current Cell) b) Switch it (Current Cell) to the closed list. c) For each of the 8 squares adjacent to this current square; If the cell is not reachable, or if the cell is on the closed list, ignore it. Otherwise do the following. i) If the cell is not on the open list, add it to the open list. ii) Make the current square the parent of this square. iii) Record the F, G, and H costs of the square. iv)If it is on the open list already, check to see if this path to that square is better, using G or F score d) Stop when: • Target square is added to the closed list, or • Open list is empty. In this case, there is no path. 3) Save the path. Trace path backwards from the target square, go from each square to its parent square until the starting square is reached. That is the optimal path. 3/18/2016 NASA Grant URC NCC NNX08BA44A 47 Tangent Bug Algorithm Algorithm developed by Ishay Kamon, Elon Remon, and Ehud Rivlin in 1995 to determine path through previously unknown terrains. Its approach relies on the incremental creation of a “roadmap” within the visible region. Conditions: – The path must not intersect any obstacles (correctness). – Robot must reach the goal in a finite amount of time (completeness) or determine that the goal is unreachable. 3/18/2016 NASA Grant URC NCC NNX08BA44A 48 Tangent Bug Algorithm • • Uses Local Tangent Graph (LTG), which consists of nodes including Robot’s Location (xR), endpoints of sensed obstacles, and edges between the robot and the sensed obstacle endpoints. An optional Tg node is added on the line segment xRxG if and only if the line does not intersect any obstacles and d(xR, xg) > R. Modes of Operations: 1) Motion to Goal Mode: Decreases the distance to the goal 2) Boundary Following Mode: Escapes Local Minima in the distance to goal function 3/18/2016 NASA Grant URC NCC NNX08BA44A 49 Tangent Bug Algorithm Modes of Operations: 1) Motion to Goal (MtG) Mode: Robot selects locally optimal path to goal until A. Goal is Reached. B. Local Minimum of the distance to goal function is detected. Switch to Boundary Following Mode. 2) Boundary Following (BF) Mode: Robot moves around the obstacle in the direction it last recently traveled using MtG, while updating minimum distances from new nodes to the goal. A. The goal is reached B. Goal is unreachable. C. Escapes BF Mode if the local minimum condition is met 3/18/2016 NASA Grant URC NCC NNX08BA44A 50 A* and Tangent Bug Conclusion • The A* algorithm and Tangent Bug are useful in unbounded environments. • The A* and Tangent Bug produce “locally optimal” solutions, that is, the resultant paths are the shortest length possible given the use of solely local information. 3/18/2016 NASA Grant URC NCC NNX08BA44A 51 Simulation Results using A*: L2 Map • • • • 45 degrees Turn = 0.68 s Sensor Sweep Time = 1.36 s Velocity (no load) = 0.325 m/s Velocity (with load) = 0.293 m/s Estimated Travel Time = (Turn Time x # of turns) + (Sensor Sweep Time x # of sweeps) + (Distance Traveled / Velocity with Load) 3/18/2016 NASA Grant URC NCC NNX08BA44A 52 Simulated Distance Performance 3/18/2016 NASA Grant URC NCC NNX08BA44A 53 Simulated Time Performance 3/18/2016 NASA Grant URC NCC NNX08BA44A 54 Simulation Performance Metrics 3/18/2016 NASA Grant URC NCC NNX08BA44A 55 Ongoing Research • • • • • • Localization Problem Complimentary Filter Kalman Filter Virtual-Reality Head-Tracking Vision Control Multitasking Problem RTOS 3/18/2016 NASA Grant URC NCC NNX08BA44A 56 Mobile Robot Localization Problem Localization – Determination of robot’s true location and orientation calculated based on the information from its sensor data fusion. Dead Reckoning – Technique using odometry for sensor measurements and trigonometry with kinematic equations for calculating robot’s new position. Requirements: 1) Knowledge of robot’s initial position 2) Accuracy decreases over time as error accumulates 3/18/2016 NASA Grant URC NCC NNX08BA44A 57 Complimentary Filter Approach based on DCM • Objective: Fusing gyroscope, accelerometer, and magnetometer (compass) data in order to create an estimation of the device orientation in space. • Alternatively referred to as “Simplified Kalman Filter” • Gyroscopes will determine more precise orientation, then the one estimated directly from the accelerometer and magnetometer direct readings which are subject to a lot of noise in form of external (nongravitational) inertial forces (i.e. acceleration) or magnetically forces that are not caused by the earth’s magnetic field. • Complimentary filter is an algorithm that combines the readings from all three devices in order to create best estimate regarding the device orientation in space 3/18/2016 NASA Grant URC NCC NNX08BA44A 58 DCM (Direction Cosine Matrix) Algorithm • To calculate the device orientation in the space using gyroscope and accelerometer data: – Roll: The angle between the Yb axis and the horizontal plane – Pitch: The angle between the Xb axis and the horizontal plane – Yaw (Heading): The angle with respect to the magnetic north pole 3/18/2016 NASA Grant URC NCC NNX08BA44A 59 DCM Procedure 1. 2. 3. 4. 5. 6. 7. Data Acquisition via I2C from gyroscope and accelerometer Data Acquisition via I2C from Magnetometer Determining Magnetic Heading Update DCM Matrix a. Update DCM values b. Add Proportional and Integrator terms Normalization and Renormalization to enforce orthogonality conditions Drift Correction a. Calculate magnitude of the vectors b. Perform Dynamic Weighting Determine Euler Angles (roll, pitch, yaw) from DCM Matrix 3/18/2016 NASA Grant URC NCC NNX08BA44A 60 Kalman Filter Approach • In navigation systems, Kalman filters are based on the complementary filtering principle. • It is an optimal estimator – infers parameters from indirect, inaccurate, and uncertain observations. • It is recursive – new measurements are processed as they are available 3/18/2016 NASA Grant URC NCC NNX08BA44A 67 Kalman Filter Recursive Processing 1) State Estimation A) B) C) D) E) Known are x(k|k ), u(k ), P(k|k ) and the new measurement z(k+1). State Prediction (Time Update) Measurement Prediction: (Time Update) Measurement Residual: (Measurement Update) Updated State Estimate: (Measurement Update with Kalman Gain) 2) State Covariance Estimation A) B) C) D) State prediction covariance Measurement prediction covariance Filter Gain Updated State Covariance 3) Matrix Riccati Equation 3/18/2016 NASA Grant URC NCC NNX08BA44A 68 Localization Sensor Fusion Filtered and Combined Outputs & States Robot Localization Fusion Center Error State Covariance Update State Estimate Update GPS 3/18/2016 Compass Gyroscope NASA Grant URC NCC NNX08BA44A Accelerometer 69 ITV Goggles Display Specs: • • • • Equivalent Virtual Screen Size(In 2M): 80'' inch Resolution: 640 x 480, 920k pixels Color Depth: 24bit Angel of View: 35 degrees User Adjustable Features: • • • • Volume Brightness Contrast Switch between 2D/3D 3/18/2016 NASA Grant URC NCC NNX08BA44A 70 VR Head-Tracking Vision Control Specifications Three servo motors ITV Goggles 3/18/2016 Accelerometer Arduino Board Servo Controller Wireless Camera NASA Grant URC NCC NNX08BA44A 71 VR Head-Tracking Vision Control • Human Controlled Real-Time Remote Observation • On-demand Multimedia Retrieval • Automatic Remote Surveillance 3/18/2016 NASA Grant URC NCC NNX08BA44A 72 Head-tracking Standalone Demonstration 3/18/2016 NASA Grant URC NCC NNX08BA44A 73 Multitasking Problem • A single threaded design prevents real-time sensor feedback since executing tasks cannot be interrupted. • Communications may be dropped if the processor is handling a previous command. • Task switching between interrupt handlers is not prioritized. 3/18/2016 NASA Grant URC NCC NNX08BA44A 74 RTOS Micrium Implementation Solution • A PSoC-5 compatible build of μC/OS-III exists. • Feedback control loops must be implemented to integrate sensor outputs. • Multithreading will allow commands to be issued at any time. • Interrupts can be prioritized to respond to sensor triggered events. 3/18/2016 NASA Grant URC NCC NNX08BA44A 75 Conclusion and Future Work • • • • • • • • Continue with current Hybrid Routing Algorithm Model implementation Survey and implement a library of navigational algorithms for various path-finding scenarios. Incorporate natural environment sensors into the system to retrieve scientific data. Information tagging to the corresponding coordinate location. Implementation of Control Algorithms for stability and localization. Wireless Head-tracking Controlled 3D Stereoscopic Observation Reconfiguration of embedded systems. Investigate the concepts of Robotic Network for large area sensor coverage. 3/18/2016 NASA Grant URC NCC NNX08BA44A 79 ACC Team Timeline Summer 2012 – Spring 2013 2013 Summer 2012 Fall 2012 Winter 2013 Spring 2013 Evan Tsai Low-level PSoC 5 & Sensor Implementation PSoC 5 Hardware & Software Implementation PSoC 5 Hardware & Software Implementation & Robot Construction PSoC 5 Hardware & Software Implementation Aleks Milshteyn Kinect Research and Host PC Software Development Robot Interface / Host PC Software Development Robot Navigational Algorithms and Kinect Integration Robot Navigational Algorithms and Host PC Interface Development Airs Lin PSoC-5 and Host PC Interface Development Data Structure and Communication Protocols PSoC 5 & Host PC Interface Development Embedded Host PC Interface Development Gabriel Nunez PSoC-5 and Host PC Interface Development Robot Navigational Algorithms and Host PC Interface Development Gregory Carter PSoC and FPGA Research Sergio Mendoza PSoC and FPGA Research PSoC 5 Data Acquisition and Formatting PSoC 5 Data Processing, Host PC Interface, Kinect Testing 80 Garth Herman 3/18/2016 NASA Grant URC NCC NNX08BA44A ACC Team Timeline Summer 2013 – Spring 2014 2013 Summer 2013 Fall 2013 Winter 2014 Spring 2014 Evan Tsai PSoC 5 Hardware & Sensor Implementation PSoC 5 Hardware & Software Implementation PSoC 5 Hardware & Software Implementation PSoC 5 Hardware & Software Implementation Aleks Milshteyn Kinect and Host PC Software Development Robot Interface / Host PC Software Development Robot Navigational Algorithms and Host PC Interface Development Robot Navigational Algorithms Airs Lin PSoC-5 and Host PC Interface Development Data Structure and Communication Protocols PSoC 5 & Host PC Interface Development Embedde Host PC Interface Development Garth Herman PSoC-5 Data Acquisition and Filtering, RTOS Implementation PSoC-5 Data Filtering and Host PC Integration, RTOS Implementation PSoC-5 and Host PC Integration, RTOS Implementation PSoC-5 and Host PC Integration, RTOS Implementation 3/18/2016 NASA Grant URC NCC NNX08BA44A 81 References • • • [1] "International Lunar Network" NASA URL: <http://iln.arc.nasa.gov/ > [2] “Mars Science Laboratory Curiosity Rover" NASA URL: <http://mars.jpl.nasa.gov/msl/> [3] “PSoC5: CY8C55 Family Datasheet: Programmable System-on-Chip (PSOC)”, Cypress URL: <http://www.cypress.com/?docID=34815> • [4] XL- MaxSonar® - EZ0™ (MB1200) Sonar Range Finder with High Power • Output, Noise Rejection, Auto Calibration & Long-Range Wide Detection Zone URL: <http://www.maxbotix.com/documents/MB1200-MB1300_Datasheet.pdf> • [5] Sharp GP2Y0A21YK0F Distance Measuring Sensor Unit Measuring distance: 10 to 80 cm Analog output type URL: < http://www.pololu.com/file/0J85/gp2y0a21yk0f.pdf> • [6] LSM303DLM Sensor module: 3-axis accelerometer and 3-axis magnetometer URL: <http://www.pololu.com/file/0J514/LSM303DLM.pdf> • [7] L3G4200D MEMS motion sensor: ultra-stable three-axis digital output gyroscope URL: <http://www.pololu.com/file/0J491/L3G4200D.pdf> • [8] Rover 5 URL http://www.pololu.com/file/0J467/Rover%205.pdf • [9] A. Stentz, “Optimal and Efficient Path Planning for Partially-Known Environments,” in Proc. IEEE • Conf. Robotics Automat., 1994. • [10] 5.0 A Throttle Control H-Bridge URL: <http://www.pololu.com/file/0J233/MC33926.pdf> • [11] Pololu Wixel User’s Guide URL: http://www.pololu.com/docs/pdf/0J46/wixel.pdf • [12] nRF24L01 Single Chip 2.4GHz Transceiver URL: www.nordicsemi.com/eng/nordic/download_resource/8041/1/87271851 • [13] Lindsay Kleeman. Understanding and Applying Kalman Filtering. URL: http://www.cs.cmu.edu/~motionplanning/papers/sbp_papers/integrated3/kleeman_kalman_basics.pdf • [14] Student Dave’s Tutorials: Kalman Filter. URL: http://studentdavestutorials.weebly.com/kalman-filter-withmatlab-code.html •3/18/2016 [15] William Premerlani and Paul Bizard. Cosine IMU: Theory. URL: NASADirection Grant URC NCCMatrix NNX08BA44A 82 gentlenav.googlecode.com/files/DCMDraft2.pdf Any Questions? 3/18/2016 NASA Grant URC NCC NNX08BA44A 84 Simulated Platform Application 3/18/2016 NASA Grant URC NCC NNX08BA44A 85