Final Presentation

advertisement
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
o Control a vehicle using a smart phone
o Have vehicle respond to navigation commands triggered
through a smartphone
o Have vehicle avoid environment obstacles such as
buildings
o Maintain continuous wireless connectivity of mobile
vehicle
• Priority 2
o Control a vehicle sensor using a smartphone
o Have sensors respond to commands triggered through a
smartphone
• Priority 3
o Integrate with "Re-configurable Ad-hoc Network to Track
Mobile Vehicles" 2012 project
Design Constraints:
• Design shall allow for integration with "Re-configurable Adhoc 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
o Video stream (gstreamer)
o Talk to phone (TCP)
o Talk to Microcontroller
• Microcontroller (Arduino)
o Controls the vehicle's sensors and motors
Phone:
• Android
• Talk to Pandaboard (TCP)
Hardware on Car
Networking
• Medium and protocols
o Use the IEEE 802.11n specification for WIFI connection
o Use a TCP connection for all control signals (CSV)
o Use a UDP connection for video streaming (RTSP)
o C code running on Pandaboard controls connections
• Video Streaming
o Use gstreamer (gst-rtsp-server) for the video streaming
o Scale the video so that there is enough bandwidth for all
communication
• Hardware
o Android is acting as hotspot, Pandaboard is client
Phone
• Samsung Galaxy Player
o 5" screen
o 1 GHz Hummingbird
Processor
o Android 2.3
o WiFi 802.11 n
o Multi-touch
o $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)
o 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)
o Success however GPS accuracy was not met. Actual
location could vary up to 50 yards
• Meet the streaming requirements (FR3)
o 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)
o Success
Test Requirements
• Autonomously drive to a give location (FR5)
o 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)
o 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)
o Success
• Meet the 30 minute battery life at full operation (FR8)
o Success
Test Requirements
• Maintain the minimum speed requirement (FR9)
o Testing actually led to buying new hardware because car
was too fast
• Climb a 1:6 incline assuming no loss of traction (FR10)
o Success
• RC car can weight no more than 15lbs (NFR1)
o 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)
o Success
Issues
Hardware
• Arduino
o 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
o 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
o Used to have a race condition in TCP code (fork() issue)
o Cross-compiling minimal Linux distribution
o Slow boot time
• Android
o Video streaming lag
Milestone Timeline
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
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
Expenditures
RC Car
• $422
Embedded PC
• $226
Android Device
• $219
Servos, Sensors
• $272
Miscellaneous
• $75
Total
• $1215.35
Future Implementations
• Custom streaming solution
o Eliminate buffering
• Better hardware mount
• Improved Custom PCB
o Arduino and all sensors could be mounted onto
Pandaboard's expansion header to access one of the two
extra USB's
o Allows for smaller hardware mount as well
• Integrate with ad-hoc network
o Autonomous driving
• Sensored ESC and motor
o Will provide for smoother acceleration
• Use 7.4V batteries instead of 11.1V
o Will lower maximum speed for more controlability
Questions
Download