41
BLAH BL Autonomization of a Remote Controlled Car Kishwar Basith and James Van Wagnen Macomb Mathematics Science Technology Center AP Physics Mr. Acre / Mr. McMillan / Mr. Supal / Mrs. Tallman January 5th, 2016

kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

BLAH BL

Autonomization of a Remote Controlled Car

Kishwar Basith and James Van Wagnen

Macomb Mathematics Science Technology Center

AP Physics

Mr. Acre / Mr. McMillan / Mr. Supal / Mrs. Tallman

January 5th, 2016

BLAH BLAH BLA

Page 2: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Autonomization of a Remote Controlled Car

The purpose of this project was to convert a remote controlled car to an

autonomous vehicle with the use of ultrasonic sensors. It was hypothesized that

with proper coding that the car could successfully navigate an ovular course

without crashing or veering off course.

Autonomous cars have been in development across many different

companies and are thought to be the future of transportation. They are a safer

and more convenient alternative to human drivers. More insight on improving

their design is needed before these cars can hit the market, however. This

project focused on ultrasonic sensors, which use high frequency sound waves

and their echoes to calculate distances.

The ultrasonic sensor used in this project was positioned at a 45° angle

from the front of the car. This allowed the car to detect the wall at its future

position. The distance found by the ultrasonic sensor was compared to a target

distance, and if there was a difference, the car adjusted its steering accordingly.

A PI code was used, allowing the car to adjust its steering based on its current

position and its trajectory.

The car completed thirty revolutions around the track and was rated on a

scale of 0 to 3 based on the deviation in its distance from the wall, with 0 being

poor and 3 being good. The average rating given to the car was a 2.95, meaning

the car completed the course with very little deviation. This result confirmed the

hypothesis that the car could successfully navigate the course.

Page 3: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Table of Contents

Introduction.................................................................................................1

Review of Literature....................................................................................3

Problem Statement.....................................................................................7

Experimental Design...................................................................................8

Data and Observations...............................................................................9

Data Analysis and Interpretation...............................................................11

Conclusion................................................................................................12

Appendix A: Construction of the Car.........................................................15

Appendix B: Programming the Car...........................................................19

Works Cited..............................................................................................24

Page 4: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Introduction

One of the largest industries on Earth is the automotive industry. Driving is

the principal form of transportation in all developed countries. However, driving is

also very dangerous and is the cause of millions of deaths worldwide. Several

companies such as Toyota and Google have taken the initiative to develop a self-

driving car with the intention of making roads safer (Bertoncello). Autonomous

vehicles do not suffer lapses in judgment nor do they get distracted like human

drivers. Autonomous vehicles would eliminate the need for extensive parking or

traffic regulations, as the cars would maneuver according to the positions of other

objects (Dubrow).

The concept behind autonomous vehicles is to maneuver roads using

sensors to detect and navigate through turns as well as avoid hazards (Chong).

With the technology available today, a completely autonomous car is not an

attainable goal. The solution is to develop new software and hardware.

Companies such as Google and Toyota have begun to develop cars that are able

to detect other cars and maneuver accordingly.

There are numerous factors that must be accounted for when

programming an autonomous vehicle. Steering, throttle, and turn duration are all

factors that must be controlled using several parameters. If any of these factors

are not controlled, it could result in injury or death. In order to control the

steering, angle measurements that changed according to sensor readings of

distance were used. Steering is the most essential part of hazard avoidance.

Page 5: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Without proper steering, a vehicle cannot take action to avoid a hazard or

execute a turn (Dubrow).

Throttle is the rate of rotation of the wheels (Singleton). Throttle is

controlled by a brushless motor. Controlling throttle ensures that the vehicle will

not over turn or under turn, both of which could be dangerous. If a turn is taken

without the proper throttle in place, the vehicle could lose contact with the ground

and spin out of control.

Turn duration is the amount of time the vehicle steers for (Singleton). Turn

duration is how long the wheels hold a certain position. This affects steering

because the longer the wheels hold a certain position, the farther the vehicle will

turn in that direction. If the timing is not correct, it could lead to hazardous results.

Turn duration was controlled by the master program.

The purpose of this particular experiment was to program an RC car to

navigate a rounded rectangular track using only ultrasonic sensors. A rating

scale from 0 to 3 was used based on how much deviation from the wall the car

had when navigating the track. The data found was analyzed qualitatively.

Page 6: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Review of Literature

Factors needed to make a successful autonomous car include being able

to detect obstacles and knowing how to respond to each one. The car should

also be able to accelerate and turn safely with manually driven cars.

In order to detect obstacles, different types of sensors should be used.

Ultrasonic sensors emit 50 KHz sounds and uses echoes and time of flight to

determine distance. The distance is calculated by the equation:

d=12ct

In the equation above, the variable c stands for the speed of sound while the

variable t stands for time of flight. They are sensitive to small objects that are not

obstacles, like dirt, so they are not suited for rough terrain. Laser scanners

operate in a similar way by calculating time of flight, but use laser beams instead

of sounds. Cameras can also be used to detect obstacles, but the image needs

to be analyzed with computer vision for the obstacles to be recognized. The

vehicle also needs to recognize its position, not just the positions of obstacles. At

a minimum, a vehicle as at least an x, y, and z coordinate as well as a roll, pitch,

and yaw. Sensors that can measure these include GPS, accelerometers, and

gyroscopes (Hellstrom.)

A good algorithm is also needed to build an autonomous vehicle. In a

freeway driving algorithm developed by researchers at Carnegie Mellon

University, a prediction engine was used after the vehicle detected potential

Page 7: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

obstacles. The prediction used the perceived distances and velocities of up to 8

other vehicles and predicted where they would be within 5 seconds. This time

allowed the vehicle to “react” to these predictions. The equation assumed

constant velocity. It also predicts each vehicle’s reactions to their own

environment. After the predictions are made, a cost function library is utilized to

determine what the car should do. Distance to other vehicles, time, and

destination are taken into account. After a simulation, the algorithm was

determined to be functional and cost-efficient (Wei.)

One way to implement an autonomous algorithm is through Arduino.

Arduino is an open-source platform that is coded using C++ programming

language. Arduino boards can be connected to multiple inputs and outputs

(Arduino – Introduction). These boards can be programmed with an autonomous

algorithm to make an autonomous car.

A previous project that used Arduino was used by Team Pegasus at the

University of Gothenburg. In this project, the Arduino did not control the sensors

and instead communicated input and output data to an Android phone which

made decisions via Bluetooth. An electronic speed controller is used to drive the

motors. Ultrasonic sensors and infrared sensors are paired together for better

detection. A gyroscope is used to calculate angular displacement, but it is used

mainly for parking. Infrared arrays are pointed down to detect if the car crosses

road lines. Other materials include a 9 degrees of freedom, speed encoder, and

an RC receiver. The materials are connected in a way such that they are easy to

repair if needed. The android controls the vehicle with an app called CARduino,

Page 8: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

which drives the motors with the data is receives from the sensors (Platis.) This

project differs from the project performed in that it uses an Android to control the

motors, not the Arduino.

Many companies and corporations have considered autonomous vehicles

in the past, and many are currently working on projects. Japanese automaker

Toyota has an autonomous vehicle project in the works set to release before the

year 2020. The unique concept of the Toyota autonomous car is the integration

of vehicle-to-vehicle communication technology. Technology such as this helps

build the case for autonomous vehicles as safe, reliant alternatives to traditional

cars (Austin).

However, Toyota’s autonomous vehicle will only be a semi-autonomous

car, as truly autonomous vehicles are not possible with today’s technology. The

sensors and forms of autonomous communication available today are not

sufficient to operate a fully autonomous vehicle. Even in the near future,

autonomous vehicles are not predicted to be available to consumers.

Autonomous vehicles will probably be used in the industrial and commercial

sectors, as well as for military use. In this way, policies and glitches can be

worked out without affecting the public. It is also estimated that the price of the

first autonomous cars will be so high that the average consumer will not be able

to afford them. Autonomous vehicle will impact shipping services and military

defense and surveillance before anything else. Also, it is not possible to develop

autonomous vehicles from currently existing vehicle programs. In order to make

Page 9: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

a vehicle that is completely autonomous, an entirely new system of code must be

developed (Driverless Car Market Watch).

Lane changes, hazard detection systems and emergency backup systems

are questions that have baffled engineers for decades. As far as programming

goes, these are the most difficult functions to program. The question also

becomes what happens if the programs were to crash. The vehicles would then

become hazards on the road. One possible solution would be to program smaller

sub-robots, each with its own function. These sub-robots can then be wired to

simultaneously work together to operate the car. This ensures that if one system

fails, the entire car will not stop working. The only problem is that the sub-robot

model is incredibly difficult to program (Dubrow).

Autonomous vehicles have various benefits but also several potential

policy changes in insurance and lawmaking. Benefits of autonomous vehicles

include shipping that is more efficient, more mobility for the elderly and disabled,

less vehicle crashes, and more efficient traffic flow. To commemorate

autonomous vehicles, insurance companies would have to alter many of their

policies such as liability. With an autonomous vehicle, the question is whether

liability rests with the driver or the manufacturer. In order for autonomous

vehicles to be truly successful, these and other issues must be addressed

(Andersen).

Page 10: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Problem Statement

Problem:

To reprogram a radio-controlled racing car to autonomously maneuver

itself.

Hypothesis:

If the RC car is properly programmed, then it will be able to maneuver

through a predetermined course without colliding into the boundaries or leaving

the course.

Data Measured:

The RC car will be rated on a scale of 0 to 3 based on how well the car

navigates the course. Thirty trials will be performed. A rating of 0 means the car

did not complete the course, while a rating of 3 means the car completed the

course with little to no variation in its distance from the wall. The data will be

analyzed qualitatively.

Page 11: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Experimental Design

Materials:

Redcat Lightning STK RC CarArduino Uno BoardAdafruit Half-size Breadboard(3) HC-SR04 Ultrasonic Sensor(20) Hook up wire(3) 1 Ω Resistors Electrical switchFluxSolderSoldering iron(2) 2 x AA Battery Holder(4) Duracell Rechargeable Batteries

Rechargeable 7.2 V NiMH BatteryHot glue gunPower Supply CableUSB CableDuct TapeScotch TapeLaptop with Arduino IDEMeter stick(20) 2 yard wood planks4” x 4” plywoodGymnasium

Procedures:

1. Construct the car (See Appendix A.)

2. Program the car (See Appendix B.)

3. Arrange five wood planks in each corner in the gym in a shallow curve.

4. Place car about 60 cm from the wall, with the left edge facing the wall.

5. Turn on the steering and throttle of the car.

6. After the car has made a full lap around the track, turn off the steering and throttle and record observations.

7. If the car goes off track or crashes into the wall, turn off the steering and throttle and place the car back at its initial position. Repair the track if necessary.

8. Repeat steps 4-7 thirty times.

Page 12: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Data and Observations

In order to conduct trials, the car was released into a rounded rectangular

track. The track contained four turns, each with approximately equivalent

degrees of curvature.

Figure 1. Track

Figure 1 shows the rounded rectangular track that the car navigated. The

four turns had approximately equal degrees of curvature. The car traveled along

the inside of the track. The black dot represents the starting point of the car. The

arrow represents the direction of the car. One trial consisted of a full lap around

the track. The track was built using wooden planks that were approximately 6 ft.

long.

Table 1Rating Table

Rating Criteria0 Car crashed or car did not complete the track1 Car did not crash, but distance from the wall deviated greatly2 Car did not crash, but distance from the wall deviated moderately3 Car did not crash and distance from the wall only deviated slightly

Table 1 shows the rating system that was used to determine how well the

car did for each trial. The rating of the car for a trial was determined by how well

the car performed for that particular trial.

Page 13: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Table 2Data and Observations

Trial Observation Rating1 Car completed the course with some deviation 22 Car completed the course well 33 Car completed the course with some deviation 24 New code, car completed the course well 35 Car completed the course well 36 Car completed the course well 37 Car completed the course well 38 Car completed the course well 39 Car completed the course well 310 Car completed the course well 311 Car completed the course well 312 Car completed the course well 313 Car completed the course well 314 Car completed the course well 315 Car completed the course well 316 Car completed the course well 317 Car completed the course well 318 Car completed the course well 319 Car completed the course well 320 Car completed the course well 321 Car completed the course well 322 Car completed the course well 323 Car completed the course well 324 Car completed the course well 325 Car completed the course well 326 Car completed the course well 327 Car completed the course well 328 Car completed the course well 329 Car completed the course well 330 Car completed the course well 3

Average 2.95

Table 2 shows the rating and observations collected for each trial. Trials 1,

2, and 3 used an unrefined program, resulting in inaccurate readings. Trials 4 to

30 used the final refined program. The average rating of the car was 2.95,

meaning that on average, the car did not crash and the distance from the wall

deviated slightly.

Page 14: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Data Analysis and Interpretation

The data from this project was analyzed qualitatively. The observations

were used to determine how smoothly the car ran the track.

0 1 2 30

5

10

15

20

25

30

Number of Ratings

Rating

Num

ber o

f Tria

ls

Figure 2. Bar Graph of All Trials

Figure 2 is a column graph showing the number of trials that produced

each rating. There were 28 trials rated a 3 and 2 trials rated a 2.

Page 15: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Conclusion

The purpose of this experiment was to program an RC car to drive

autonomously around a rounded rectangular track. The hypothesis that if the RC

car is properly programmed, then it will be able to maneuver through a

predetermined course without colliding into obstacles was confirmed. The car not

only avoided obstacles but also it navigated the track with very little deviation

from its course, with the widest discrepancy measured to be three centimeters.

Several programs were combined and refined in order to achieve one final

program that accomplished this task.

To determine the success rate of the car, it was noted how well the car

performed during each individual trial as well as how much of the course was

completed. Based on its performance, the car was given a rating. These ratings

were then averaged to assign the car an average success rating. The average

success rating given to the car was a 2.95.

There were many problems during the course of designing the car. One

big problem was the fact that the 7.2 volt battery could not power both the

steering and the throttle. The voltage would vary; therefore the speed of the car

would vary. This led to the car being almost impossible to program because the

speed could not be predicted. Another problem was the lack of control in the car.

Originally, the code was written so the car would turn a certain number of

degrees based on its distance from the wall. With this code, the car’s distance

from the wall deviated immensely and it would constantly run into the curves or

lose sight of the course. This problem was solved by introducing the PI

Page 16: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

(proportion – integral) adjustment into the code. With the PI adjustment, the car

would adjust its steering based on its position and its previous movement instead

of its position alone.

Some lurking variables could have affected the performance of the car

during experimentation. The batteries lost voltage over the course of

experimentation. This slowed the car slightly, and could have made the sensor

readings more accurate. The wooden planks were meant to simulate a smooth

curve, but they created six large angles instead of one smooth curve. Also, the

planks were made from a different material than the gym wall. The sensor could

have been able to detect one surface better than the other. Finally, the sensor

did not stick well to the chassis of the car. This led to tape having to be used to

secure the sensor in place during experimentation.

Further improvements can be made on the design of the car. The sensors

on the front and right can be activated to allow a greater range for the car. The

circuit for the throttle can be rearranged to allow the Arduino board to control the

speed of the car without a varying voltage. This would also allow the car to go

backwards. A GPS system can be integrated into the car to allow it to seek

waypoints. The ultrasonic sensors would be used to help the car avoid obstacles.

An RC car that is able to maneuver autonomously is very useful in the

commercial sector as well as in military operations. In the commercial sector, an

autonomous RC car can be used for deliveries. Also, it can be used to move

parts in a factory or assembly line process. This can speed up many production

sequences and possibly lower the cost of products and increase output. In

Page 17: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

military operations, an autonomous RC car can be fitted with explosives and sent

into enemy hideouts. Likewise, an autonomous RC car could be fitted with a

microphone and/or a video camera and used for surveillance and espionage. It

could also be used to deliver ammunition and medical supplies to troops on the

front lines, areas where having unnecessary personnel might lead to defeat.

Page 18: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Appendix A: Construction of the Car

Procedures:

1. Remove the plastic covering from the Redcat Lightning STK. Ensure the battery is present.

2. Unplug the wires from the radio receiver.

3. Remove the section of the breadboard containing the voltage and the ground.

4. Hot glue the bottom of the Arduino and the voltage section of the breadboard to the 4” x 4” plywood.

5. Hot glue the bottom of the plywood to the chassis of the car, above the radio receiver.

6. Attach a hookup wire to the voltage part of the breadboard and the 5v pin on the Arduino.

7. Attach a hookup wire to the ground part of the breadboard and the GND pin on the Arduino.

8. Use the hook up wires to wire an ultrasonic sensor to the Arduino. The trig wire goes to pin 5 and the echo wire goes to pin 6. The Vcc and the GND go to the voltage and ground parts of the breadboard, respectively.

9. Hot glue the ultrasonic sensor above the front left spring on the car, positioned 45 degrees from the horizontal. No parts of the car should obstruct the sensor’s path.

10.Use the hookup wires to wire the servo motor to the Arduino. Voltage and ground go to the breadboard and the servo is attached to pin 7 on the Arduino.

11.Unplug the motor from the ESC.

12.Solder the three resistors to the black wire from the motor in parallel.

13.Connect the switch to the resistors by soldering a hookup wire to the resistors and the switch.

14.Solder both red wires from the battery holders to the other side of the switch.

Page 19: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

15.Solder both black wires from the battery holders to the red wire on the motor to complete the circuit.

16.Hot glue both battery holders to the back of the car and insert fully charged batteries.

Diagrams:

Figure 1. Completed Car

Figure 1 shows three different angles of the completed car. Three

ultrasonic sensors are on the car; however, only the left sensor is necessary.

Page 20: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Figure 2. Arduino Diagram

Figure 2 shows a diagram of how everything is hooked up to the Arduino.

The voltage is provided by the 7.2 volt battery and is shared by the servo,

Arduino, and ultrasonic sensor via the breadboard. The second row on the

breadboard shares ground from the Arduino with the servo and the ultrasonic

sensor. The trig, echo, and servo are connected directly with the Arduino on pins

5, 6, and 7 respectively.

Page 21: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Figure 3. Circuit Diagram for the Motor

Figure 3 shows a circuit diagram for the motor. Three resistors are added

to the circuit in parallel to decrease the voltage provided to the motor slightly. A

switch is used to turn the motor on and off. Three volts is the total voltage

provided by one battery holder, which is two AA batteries connected in series.

Appendix B: Programming the Car

Page 22: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

The car was programmed using the Arduino IDE software. Other

programs found online were used as guidance for the code during the process.

The first step taken in programming the car was programming the steering. The

steering was programmed by using a servo code.

Figure 1. Code to Control the Servo

Figure 1 shows the basics of the code used to control the servo steering

the car. First the servo library was included. This provided the Arduino the code

necessary to control the servo motor, which was declared as ‘steering.’ Within

the setup code, it was attached to pin 7 of the Arduino. An integer called steer is

the variable used to determine the angle of the wheels. A value of 90 signifies 90

degrees and would make the wheels go straight. Any value lower than 90 makes

the wheels turn right and any value greater than 90 makes the wheels turn left,

with the degree of the turn being the difference between that value and 90. The

car is physically limited to 30 degree turns on either side.

Page 23: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Figure 2. Code to Detect Distance

Figure 2 shows the basics of the code used to control the ultrasonic

sensors. The ultrasonic sensor has two pins: a trig and an echo. The trig sends

out a high frequency sound wave and the echo receives the wave after it

bounces off an object. The pins are declared as an output and an input in the

setup code, respectively. For this example, the serial monitor is initialized in order

to print the distances received. The loop calls the subroutine

‘readUltrasonicSensors’ to determine the distance away from the wall. The trig is

emitting a sound when it is high and it stops emitting a sound when it is set to

low. It must be at high for at least 10 microseconds in order to get a good

reading. The value given by the echo pin is the ultrasonicDuration. That value is

Page 24: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

divided by 6 to give the distance from the wall in millimeters. In this example, the

distance is printed to the serial monitor and the code waits 200 milliseconds (1/5

second) before repeating the code.

Page 25: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its
Page 26: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

Figure 3. Autonomous Car Code

Figure 3 shows the full code used for programming the car. Readings from

the sensor are taken every 20 milliseconds and the steering is derived from the

Page 27: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

readings using a PI control. All of the variables are printed out for debugging

purposes if necessary.

Works Cited

Anderson, James M., Nidhi Kalra, and Karlyn D. Stanley. "Self-Driving Vehicles

Offer Potential Benefits, Policy Challenges for Lawmakers." RAND

Corporation Public Research. RAND Corporation, 6 Aug. 2015. Web. 25

Sept. 2015. <http://www.rand.org/pubs/research_reports/RR443-1.html>.

"Arduino - Introduction." Arduino - Introduction. Arduino, n.d. Web. 02 Oct. 2015.

<https://www.arduino.cc/en/Guide/Introduction>.

"Arduino - Reference." Arduino - Reference. Arduino, n.d. Web. 21 Sept. 2015.

<https://www.arduino.cc/en/Reference/HomePage>. 

Austin, Michael. "Hop in Toyota's Semi-Autonomous Cars." Popular Mechanics.

Popular Mechanics, 10 Oct. 2013. Web. 24 Sept. 2015.

<http://www.popularmechanics.com/cars/a9588/toyotas-semi-

autonomous-cars-hit-the-real-road-16024804/>.Litman,

Todd. Autonomous Vehicle Implementation Predictions. Tech. Victoria:

Victoria Transport Policy Institute, 2015. Victoria Transport Policy Institute.

Web. 24 Sept. 2015. <http://www.vtpi.org/avip.pdf>.

Bertoncello, Michele, and Dominik Wee. "Ten Ways Autonomous Driving Could

Redefine the Automotive World." McKinsey & Company. McKinsey &

Company, June 2015. Web. 24 Sept. 2015.

Page 28: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

<http://www.mckinsey.com/insights/automotive_and_assembly/ten_ways_

autonomous_driving_could_redefine_the_automotive_world>.

Chong, Bonnie, Rick Yan, and Albert Li. "ECE 4760: The Autonomous Driving

Car." ECE 4760 The Autonomous Driving Car. Cornell University, 2 May

2011. Web. 22 Sept. 2015.

<http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/

s2011/bcc44_acl84_my259/bcc44_acl84_my259/>.

Dubrow, Aaron. "Programming Safety into Self-Driving Cars." National Science

Foundation. National Science Foundation, 2 Feb. 2015. Web. 24 Sept.

2015. <http://www.nsf.gov/discoveries/disc_summ.jsp?cntn_id=134033>.

Guizzo, Erico. "How Google's Self-Driving Car Works." IEEE Spectrum. IEEE, 18

Oct. 2011. Web. 23 Sept. 2015.

<http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/how-

google-self-driving-car-works>.

Hellstrom, Thomas. Sensors for Autonomous Vehicles. Umea: Umea University,

2009. PDF.

<http://www8.cs.umu.se/kurser/5DV029/HT09/handouts/Sensors%20for

%20autonomous%20vehicles%20.pdf>.

Page 29: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

House, Nathan. "Arduino Wall Follower." YouTube. FoxyTronicsLLC, 21 Mar.

2013. Web. 23 Dec. 2015. <https://www.youtube.com/watch?

v=VShBzFMmcMk>.

Kuchinskas, Susan. "Crash Course: Training the Brain of a Driverless Car."

Scientific American Global RSS. Scientific American Magazine, 11 Apr.

2013. Web. 25 Sept. 2015.

<http://www.scientificamerican.com/article/autonomous-driverless-car-

brain/>.

Lerner, Preston. "The Hurdles Facing Autonomous Vehicles." Automobile.

Automobile Magazine, 22 June 2015. Web. 25 Sept. 2015.

<http://www.automobilemag.com/features/magazine/1508-the-hurdles-

facing-autonomous-vehicles/>.

Lin, Patrick. "The Ethics of Autonomous Cars." The Atlantic. Atlantic Media

Company, 08 Oct. 2013. Web. 24 Sept. 2015.

<http://www.theatlantic.com/technology/archive/2013/10/the-ethics-of-

autonomous-cars/280360/>.

Litman, Todd. Autonomous Vehicle Implementation Predictions. Tech. Victoria:

Victoria Transport Policy Institute, 2015. Victoria Transport Policy Institute.

Web. 24 Sept. 2015. <http://www.vtpi.org/avip.pdf>.

Platis, Dmitri. "Build Your Own Android-Powered Self Driving R/C Car | Make:."

MakeZine. Gothenburg University, n.d. Web. 02 Oct. 2015.

Page 30: kishwarbasith.weebly.com · Web viewThe ultrasonic sensor used in this project was positioned at a 45 angle from the front of the car. This allowed the car to detect the wall at its

<http://makezine.com/projects/build-android-powered-autonomous-rc-

car/>.

Singleton, David. "How I Built a Self-driving (RC) Car!" Web log post. David

Singleton. N.p., 11 Jan. 2013. Web. 24 Sept. 2015.

<http://blog.davidsingleton.org/nnrccar/>.

""Top Misconceptions of Autonomous Cars and Self-driving Vehicles." Driverless

Car Market Watch. N.p., 1 July 2015. Web. 24 Sept. 2015.

<http://www.driverlessfuture.com/?page_id=774>.

Wei, Junqing, and John M. Dolan. "A Robust Autonomous Freeway Driving

Algorithm." 2009 IEEE Intelligent Vehicles Symposium (2009): n. pag. The

Robotics Institute. Carnegie Mellon University, 19 Nov. 2010. Web. 24

Sept. 2015. <https://www.ri.cmu.edu/pub_files/2009/6/IV09_Final.pdf>.