Title: Sponsors:
1A Convoy of Autonomous Vehicles
A Convoy of Autonomous Vehicles
Using a Method of Light Detection
Using a Method of Light Detection
System
Abstract
Troubleshooting
An autonomous vehicle is any vehicle that can
drive itself from one location to another without
the use of human interference. When put in a
convoy, several autonomous vehicles can follow
one lead vehicle and mimic its movements. This
can have many uses in the private, commercial,
and government sectors. By using a CMUcam2, an
Arduino Microprocessor, a Motorshield, and three
Remote Controlled (RC) cars, we were successfully
able to create a prototype autonomous convoy
based on light detection technology. One of the
three RC cars remained unchanged. This car would
act as the Lead Vehicle the vehicle that the
autonomous vehicles would follow. The other two
would be interfaced with a CMUcam2, an Arduino
Microprocessor, and a Motorshield. These cars
would become the two autonomous follower
vehicles. The autonomous vehicles worked in
several steps. First, the Arduino Microprocessor
would send a command to the CMUcam2 telling it to
track a certain color. Next, it would send
another command asking for information about the
color it is tracking. This information would be
sent back to the Arduino, where it would be
processed and used to determine the turning angle
and velocity. After the calculations, the
Arduino would send command to the servo motors
controlling the angle of the front wheels and the
Motorshield controlling the rear wheels. The
Motorshield would read the commands, and vary the
voltage going to the DC motor controlling the
rear wheels, and thus control the speed of the
vehicle.
The first several weeks of research were spent
troubleshooting the CMUcam2, the Arduino
Microprocessor, and the motorshield then getting
them to work independently. Once we accomplished
that goal, we began to integrate two parts at a
time and got them working with each other. Once
that was done, we fully integrated all three
major parts and attempted to get that working.
The first major steps we took were reading over
many manuals in relation to the separate parts
and previous years work on similar projects.
The next step involved working with our Arduinos
(previously Arduino BTs, or Bluetooth, but since
then we have upgraded to an Arduino Duemilanove
because it was twice as powerful) and learning
how to upload basic programs. Afterwards, we
began working with our Motor control and
integrating them with the Arduinos. Once that
was successfully completed, we turned to our
CMUcam2, which proved to be one of the hardest
challenges. We began by focusing the camera
through its Graphical User Interface and sending
it commands through a terminal emulator called
HyperTerminal - both of these functions were done
on a computer. Finally, we began sending it
commands from the Arduino instead of a computer.
After much work, all of these tasks were
accomplished and integration between all three
component was successful and programming could
begin.
The convoy is made up of three main parts the
lead car, the first follower, and the second
follower. The lead car is a normal RC car with
relatively few changes to it. This is the car
that the autonomous cars will be following. On
the back of the lead car, a red ping pong ball
with an LED light inside is attached. The two
follower vehicles, the autonomous vehicles, will
track and follow this ping pong ball. As the
ping pong ball moves within their range of sight,
they will make corrections and follow it.
Programming
Once all the components had been integrated
together, programming could begin. The program
had to send a command to the camera telling it to
track a certain color. Next, the program would
take in data from the camera, store it, and
convert it to a usable form. It would then
process the data and send it out to the motors
and the Motor controller. Below is a section of
the code.
Goals
- Develop a working convoy of autonomous vehicles
using light - detection technology.
- Look into other forms of autonomous tracking
including GPS and - accelerometers.
void loop() camera.print("TC 100 180 10 50 0
23 \r") delay(time) test() ack()
data() convert() if (x1gt0)
///// STEERING ///// hi(float)
y2-y1 wi(float) x2-x1
Dhohs/(2.0hitanthetah) dxD-Deq
dxchangedxold-dx Vxdxchange/(time/1000)
xi((((float) x2-x1)/2)(float)x1)-(ws/2)xcali
b xo(2Dtanthetawxi)/ws dyxo
dychangedyold-dy Vydychange/(time/1000)
alphaatan((2tanthetawxi)/ws)
alphadeg(alpha/3.1416)180
delta(int)alphadeg deltachange2(deltaold-d
elta) posposolddeltachange
posoldpos deltaolddelta
dxolddx dyolddy ///// VELOCITY
///// Vsqrt(pow(Vx,2)pow(Vy,2))
///// FORWARD ///// if (dxgt0.2)
steering.write(pos) delay(10)
output(int)(12dx) if (outputgt200)
motor.setSpeed(200)
delay(10) else if(outputlt200)
motor.setSpeed(output)
delay(10) motor.run(FORWARD)
///// BACKWARD ///// else if (dxlt-0.2)
posdiffpos-90 posback90-posdiff
steering.write(posback) delay(10)
output(int)(8dx) if
(outputgt200) motor.setSpeed(200)
delay(10) else
if(outputlt200) motor.setSpeed(outp
ut) delay(10)
motor.run(BACKWARD) /////
EQUILIBRIUM DISTANCE ///// if (dxgt-0.2
dxlt0.2) motor.run(RELEASE)
Serial.println(alphadeg) Serial.printl
n(dx)
Sponsors
National Aeronautics and Space Administration
(NASA)
NASA Goddard Space Flight Center (GSFC)
NASA Goddard Institute for Space Studies (GISS)
Future Goals
NASA New York Research Initiative (NYCRI)
Rutgers University (RU)
References
- Continue refining autonomous tracking based on
light detection - technology.
- Further research other forms of autonomous
tracking including GPS - and accelerometers.
- Leave a working blueprint for future research.
Contributors
Chukrallah, Bashir, David Laslo, Michael Ma, Sean
Murphy, and Stefan Novak. Autonomous Vehicle
Control Systems. Rutgers University, 1 May 2006.
Web. Gartzman, Steve, Marifae Tibay, Thien Win,
Steve Agudelo, Christian Cuentas, and Adekola
Adesina. A Convoy of Autonomous Vehicles.
Rutgers University, 24 Apr. 2009. Web. Henlich,
Jonathan D. "Mobile Robot Navigation."
Information Systems Engineering (1997) 1-29.
Print. Rowe, Anthony, Charles Rosenberg, and
Illah Nourbakhsh. CMUcam2 Vision Sensor User
Guide. 2003. Print.
Dr. Haim Baruh, Ph. D., P.I.
Alexey Titovich, Graduate Student
Kelvin Quarcoo, High School Teacher
David Kelly, High School Student