230 likes | 406 Views
Smart phone controlled mission platform. Group May12-22 Members: Tyler Johnson - Isaac Kuecker - Jacob Moellers Tayler Todd - Paul Hovey. Team, Client, Advisor and Budget. -Client: Lockheed Martin -Contact: Jessica Miller -Advisor: Daji Qiao -Budget: $2,000
E N D
Smart phone controlled mission platform Group May12-22 Members: Tyler Johnson - Isaac Kuecker - Jacob Moellers Tayler Todd - Paul Hovey
Team, Client, Advisor and Budget -Client: Lockheed Martin -Contact: Jessica Miller -Advisor: Daji Qiao -Budget: $2,000 Team Breakdown -Hardware: Isaac Kuecker and Tyler Johnson -Software: Tayler Todd and Jacob Moellers -Networking: Paul Hovey
Problem Statement From the client, Lockheed Martin: Utilize a commercially available smart phone (for example an Android phone) to command and control a vehicle and its sensor. These capabilities are applicable to multiple scenarios including military missions, police surveillance and search and rescue activities. The prototype should be developed and demonstrated using commercially available products.
Project Goals • Priority 1 • Control a vehicle using a smart phone • Have vehicle respond to navigation commands triggered through a smartphone • Have vehicle avoid environment obstacles such as buildings • Maintain continuous wireless connectivity of mobile vehicle • Priority 2 • Control a vehicle sensor using a smartphone • Have sensors respond to commands triggered through a smartphone • Priority 3 • Integrate with "Re-configurable Ad-hoc Network to Track Mobile Vehicles" 2012 project
Design Constraints: • Design shall allow for integration with "Re-configurable Ad-hoc Network to Track Mobile Vehicles" 2012 project • Use inexpensive off-the-shelf products as much as possible ( for example, RC cars for "vehicle") • Testing - Open field on a clear day, test distance less than the range of a single domestic WIFI router • Budget of $2,000
Functional Requirements FR1 – Transmit all data between RC car and Android Phone up to a range of 70 unobstructed meters FR2 – Ability to determine location within 3 meter accuracy while stopped or 5 meters while moving. FR3 – Ability to process 240p streaming video at 15 fps minimum with 16 bit color (minimum color requirements for an android phone) FR4 – Use sonar sensors to detect obstacles larger than the radius of the wheels within 2 meters from the RC car. FR5 – Ability to autonomously drive within 3 meters of a given coordinate that is reachable with the current battery life
Functional Requirements FR6 – Control point of view of on-board camera with a lateral range of +/- 180 degrees from front of car and vertical range of +/- 45 degrees from a plane parallel to the car FR7 – Camera controller should be able to rotate 180 degrees in 1 second for both vertical and horizontal rotation FR8 – Must be able to maintain full operation for 30 minutes FR9 – The RC car must be able to maintain a minimum speed of 3.4 mph (standard march speed) FR10 – Climb a 1:6 incline assuming no loss of traction (max for temporary wheelchair ramp)
Non Functional Requirements NFR1 – RC car can weigh no more than 15lbs NFR2 – The RC car shall run on electric motors NFR3 – The user control system must use Android NFR4 – Communication protocol is IEEE 802.11n standard NFR5 – Location will be determined by GPS coordinates
System Components • On Vehicle: • Pandaboard • Video stream (gstreamer) • Talk to phone (TCP) • Talk to Microcontroller • Microcontroller (Arduino) • Controls the vehicle's sensors and motors • Phone: • Android • Talk to Pandaboard (TCP)
Networking • Medium and protocols • Use the IEEE 802.11n specification for WIFI connection • Use a TCP connection for all control signals (CSV) • Use a UDP connection for video streaming (RTSP) • C code running on Pandaboard controls connections • Video Streaming • Use gstreamer (gst-rtsp-server) for the video streaming • Scale the video so that there is enough bandwidth for all communication • Hardware • Android is acting as hotspot, Pandaboard is client
Phone • Samsung Galaxy Player • 5" screen • 1 GHz Hummingbird Processor • Android 2.3 • WiFi 802.11 n • Multi-touch • $210
User Interface Features implemented: • Joysticks • Combination of map and camera feed • Use both orientaitions • Large buttons Features not implemented: • Picture capture • Autonomous • Rich functionality and aesthetics Key issues: • Need for a custom map widget Designed Implemented
Test Requirements • Control vehicle with smartphone up to 70m on a WIFI connection (FR1) • Successfully drove the car 90m from a stationary operator • Car is able to determine its location via GPS with an accuracy of 3m for standstill and 5m while moving (FR2) • Success however GPS accuracy was not met. Actual location could vary up to 50 yards • Meet the streaming requirements (FR3) • Success. Latency was an issue although this wasn't in the requirements • Use sonar sensors to detect obstacles larger than the radius of the wheels within 2 meters from the RC car (FR4) • Success
Test Requirements • Autonomously drive to a give location (FR5) • Not implemented • Control point of view of on-board camera with a lateral range of +/- 180 degrees from front of car and vertical range of +/- 45 degrees from a plane parallel to the car (FR6) • Partially met. Hardware limits change the vertical range from parallel to the ground to straight vertical • Camera controller should be able to rotate 180 degrees in 1 second for both vertical and horizontal rotation (FR7) • Success • Meet the 30 minute battery life at full operation (FR8) • Success
Test Requirements • Maintain the minimum speed requirement (FR9) • Testing actually led to buying new hardware because car was too fast • Climb a 1:6 incline assuming no loss of traction (FR10) • Success • RC car can weight no more than 15lbs (NFR1) • Success • The RC car shall run on electric motors (NFR2)Success • The user control system must use Android (NFR3)Success • Communication protocol is IEEE 802.11n standard (NFR4)Success • Location will be determined by GPS coordinates (NFR5) • Success
Issues Hardware • Arduino • Originally planned to use Arduino Uno • Only one serial UART. Need a serial UART for USB communication to Pandaboard and a serial UART for GPS communication • Using a software serial UART library, PWM signal generation failed causing sporadic servo control • Switched to Arduino Mega • Contains 4 serial UART connections • More pins than needed • PCB throttle line trace rubs against the USB's ground shield, so it should be moved to a new location in a new revision
Issues Hardware • Do not apply reverse voltage on your voltage regulator • Do not short Li-Po batteries together • The battery mounts require a large amount of disassembly to swap the batteries, a more friendly system could be developed • Impossible to use the digital compass due to EMF interference from the electric motor
Issues Software • Panda Board • Used to have a race condition in TCP code (fork() issue) • Cross-compiling minimal Linux distribution • Slow boot time • Android • Video streaming lag
Milestone Timeline 11/2/2011 12/5/2011 12/1/2011 12/9/2011 12/16/2011 1/20/2012 1/30/2012 2/14/2012 3/5/2012 3/15/2012 4/6/2012 4/6/2012 4/25/2012 Project Plan Finished Design Document Finished Parts and supplies ordered (no phone/batteries) Sensor Communication (Servos, Compass) GUI skeleton created Establishing Communication between systems Manual Control of RC car's sensors/motors Phone and batteries ordered Object detection via sonar Hardware mounts and battery harness Custom PCB ready Completed integration, started testing Testing and verification finished
Expenditures • RC Car • $422 • Embedded PC • $226 • Android Device • $219 • Servos, Sensors • $272 • Miscellaneous • $75 • Total • $1215.35
Future Implementations • Custom streaming solution • Eliminate buffering • Better hardware mount • Improved Custom PCB • Arduino and all sensors could be mounted onto Pandaboard's expansion header to access one of the two extra USB's • Allows for smaller hardware mount as well • Integrate with ad-hoc network • Autonomous driving • Sensored ESC and motor • Will provide for smoother acceleration • Use 7.4V batteries instead of 11.1V • Will lower maximum speed for more controlability