Project Overview
To create a vehicle that autonomously follows a moving object
To design a low cost, mobile robot that can track objects based on image processing
Implement all of the parts using the Atmel microcontroller
Fire at target object when specified
Requirements
Autonomously track and follow a moving object using color detection
Operate on battery power and not other external source of power
Keep a minimum of 7 inches away from it target at all time.
Operate both indoor and outdoor Operate for more than one hour on a fully
charged battery. Have a dimension of no more than 14x7x7
inches
Optional Features
Autonomous weapons system Solar Power The AVR shall be able to
communicate and upload telemetry data to the user via Bluetooth
The AVR shall be able to map its surrounding and navigate to a designated target with GPS.
Top Level Diagram
CMUCam2+
Maxbotix LV-EZ2
IR Detector
Sensors
Manager
Guidance, Navigatio
n and Control
Actuators
Environment Images
UltrasonicSignals
Encoder Patterns
On-Off
Pulses
PWM
Centroid and Servo Location
Target Location
Target Range
ChassisVelocity
PWM
Software
Hardware
Environment
Target
Microcontroller - Arduino
ATMEGA328 USB Interface Cross-platform Easy to program Open source Well documented
Printed Circuit Board
PCB123 software
$100 student credit from sunstone
Prototyped on the Arduino board
2 layer design Using through
hole and surface mount techniques
CMUcam 2+ Vision Sensor
•Performs image processing duties for AVR
•Track user defined color blobs at up to 50 Frames Per Second (frame rate depends on resolution and window size settings)
•Track motion using frame differencing at 26 Frames Per Second
•Find the centroid of any tracking data
•Gather mean color and variance data
•Gather a 28 bin histogram of each color channel
•Process Horizontally Edge Filtered Images
Image Processing Requirements Color detection Motion detection Flexibility for programming Ability to distinguish between
specified color and other colors in environment
Work efficiently in well lit environment
Image Processing Techniques
Edge Detection Canny detection Edges are areas
where a jump in intensity from one pixel to the next occurs
Able to reduce the amount of data processed by filtering out useless information
Blob Detection
Middle Mass Determines if a group
of connecting pixels are related to each other by surroundings
Efficient in identifying separate objects in a scene
CMOS vs. CCD Sensor
CMOS CCD
Transistor based Flexible design Average picture
quality Low power
consumption Low Price
Analog device Rigid design Excellent picture
quality Power hungry Very Expensive
Choosing a Vision System
CMUcam1 CMUcam2 CMUcam3 AVRcam Logitech QuickCam Orbit AF Webcam
+ RoboRealm
CMUcam Comparison
Price Frame Rate Resolution RAM ROM SPEED
CMUcam1 $109.99 17 fps 80x143 136 bytes 2048 words 75 MHz
CMUcam2 $179.99 50 fps 176 x 255 263 bytes 4096 words 75 MHz
CMUcam3 $239.99 26 fps 352x288 64 KB 128 KB 60MHz
AVRcam $99.00 30 fps 88x144 700 bytes 512bytes 16MHZ
Why CMUcam2+
Compact Size Frame Buffering Affordable price Flexible Multiple Servo
Control User Support
Power NeedsVolts milliamps
Ultrasonic Sensor
2.5-5 2
Motor 2.5-5 30-60
Steering Servo
3-6 5x1
CMU Camera
5-12 200mA
CMU servos
3-6 5x1
Voltage Regulation
All parts on AVR can run off of 5volts DC
Stepping Down 7.4 volt battery
LM317 adjustable regulator
Ultrasonic Sensor Requirements Purpose is to keep AVR within 6
inches of target object Be able to fit on front bumper Will not loose the target object Low power consumption
Maxbotics Ultrasonic Sensor Maxbotics EZ1 Will easily fit on
bumper Only draws 2mA of
current Easy to interface
Chassis
RC car from ToysRus 4 wheels 2 front turning wheels 2 rear wheels for going back and
forward 2 DC motors Roomy
Sensors Manager
getRange() Returns range from Ultrasonic Sensor in
inches getVelocity()
Returns velocity from IR detector/reflector in inches/seconds
getCentroid() Returns centroid location of target in x
and y format
Sensors Manager
getPan() Returns location of panning servo
getTilt() Returns location of tilting servo
getTime() Returns microprocessor’s time
GNC CMUcam to Body alignment Body Frame, CMUcam Frame
β
Servo Positions
128, 0°
210, 90°46, -90°
β Servo Pos
Offset
-90° 46 -44
0° 128 0
90° 210 44
Offset = 44 sin( β )
Centroid_B = Centroid_C + Offset
GNCInitialization
ForwardStraight
Locate Centroi
d
Forward Right
yes
no
Target’s range
<=5 inches?
Centroid > 54
Forward Left
Centroid < 34
else
Stop
Navigation Flowchart
GNCP (Range)
D (Velocity)
Plant++
--
Input Output
Error
Proportional-Derivative Controller
• Variable speed depends on range from target and how fast the AVR is moving
• P and D gains need to be tuned• All control process is done through software• Sum of error terms multiplied by the gains translate to voltage to drive the
actuators(Error*Range) + (Error*Velocity) = Voltage
Testing
DC Motor/H-Bridge turning wheels test
IR Detector/Reflector test IR Detector/Reflector encoding wheel
test Chassis/Locomotion test with turning
wheels Locomotion test with IR
detector/reflector
Testing
Locomotion test with ultrasonic sensor stationary target
Locomotion test with ultrasonic sensor moving target
Locomotion test with CMUcam2++ with stationary target
Locomotion test with CMUcam2++ with moving target
Locomotion test with all sensors
BudgetPart
NumberPart Name Qty Cost Order Date Supplier Manufactur
erN/A Basic
Breadboard1 $11.95 6/30/09 SparkFun SparkFun
LV-EZ2 Ultrasonic Range Finder
Maxbotix LV-EZ2
1 $27.95 6/30/09 SparkFun Maxbotix
N/A Arduino Starter Kit
1 $49.95 6/30/09 SparkFun Arduino
LTE-302,LTR-301
Infrared Emitters
and Detectors
1 $1.95 6/30/09 SparkFun Lite-On Electronics
SN754410 H-Bridge 3 $12.00 7/21/09 Acroname Texas Instruments
R245-CMUCAM2+-
Plus
CMUcam2++
1 $169.00 7/21/09 Acroname Acroname
FT232R USB to Serial kit
1 $29.00 7/21/09 Acroname FTDI Chip
n/a Battery/charger
1 $55.45 8/28/09 Battery Junction
Tenergy
n/a RC servo 2 $25 9/3/09 Colonial Photo and
Hobby
n/a
Total Cost $383.25