Beruflich Dokumente
Kultur Dokumente
Adaptive Cruise
Control
Adrian Meghoo
Sarah Miley
Fall 2015
system. The system will feature the basic functionally of an ordinary cruise control
system, such as maintaining a set speed regardless of load, coupled with an adaptive
layer. While in cruise control mode, this adaptive layer will dynamically reduce the
vehicles speed to maintain a safe distance between it and the slower moving vehicle in
front. The system will also feature an emergency braking feature which will
automatically stop the vehicle if it senses a collision is imminent. An LED panel will
indicate the status of the system to the user. The entire project will be modeled on a
system enables the driver to set a constant speed for the vehicle to maintain. This allows
the driver to relax more as they do not have to constantly manipulate the throttle. The
limitation of most of these modern systems is they do not adaptively adjust to a slower
vehicle in front. This forces the driver to intervene and adjust their vehicles speed
manually. With an adaptive cruise control system, the system would compensate for a
slower vehicle in front of it and automatically adjust its speed accordingly. For our
radio controlled car. The system will consist of a standard cruise control system with the
addition of a distance sensor necessary for the adaptive portion. The basic concept should
While there are a few adaptive cruise control systems available on consumer vehicles, it
is still not a standard or even common feature in vehicles. The objective of this project is
to design a system to solve the fundamental concept of an adaptive cruise control system.
While a commercial system will be a lot more complex due necessary redundancies and
fail safes for safety, our design will still cover the basics at the least. Due to the nature of
modeling the system on a hobby remote controlled car, the entire system, including the
standard cruise control will have to be built from the ground up. This means first
developing a cruise control system which can interface with the RC car components then
thinking and problem solving, along with circuit and signal understanding will all come
into play throughout the design and implementation of the project. Since the system will
components and how they function. After gaining this understanding it will be possible to
come up with ways to interface with the system. The next thing will be gaining an
understanding of the Arduino platform. This determines the limitations and approach
Its implementation by use of governors dates back as far as the 1700s in steam engines
and in a few early automobiles. The modern day cruise control system has had varying
A cruise control system's basic function is to maintain a constant speed set by the driver.
This allows the driver to drive without need out directly controlling the vehicle's throttle.
This is especially useful on long highway trips as it reduces driver fatigue by eliminating
something the driver has to focus on. Additionally cruise control can be useful with
reducing fuel consumption by maintaining a constant speed and smooth throttle control
essentially eliminating spikes in throttle input caused by a typical driver. This can be
equally beneficial to passengers if the driver is constantly tapping on the gas creating a
jerky and uncomfortable ride. Cruise control is also commonly used to avoid
subconsciously violating speed limits as once a speed is set by the driver, that speed is
A typical cruise control works by manipulating the throttle position of a car. This is done
with the throttle valve, the same device the gas pedal is connected to. Since the throttle
valve is what controls the power output of the engine, by manipulating it the cruise
control system can increase or decrease the speed of the car. A typical cruise control
system has a few inputs which are processed to produce its controlling output. The main
The steering wheel controls are used to set and adjust the system while the brake pedal
switch serves as a trigger to disengage the system if the brake pedal is pressed. The
vehicle speed signal is one of the most critical of all the inputs. The system takes this
signal and compares it with the desired speed and adjusts the throttle position
accordingly. For example it the car starts slowing down from going up a hill, the system
controller for its processing. This results in a specific response of the system which can
A conventional system does have a limitation and that is vehicles in front moving slower
than the set speed. In this event the driver would have to manually disengage the system
to avoid collision and then either set a new speed or wait for the slower vehicle to move
out of the way before manually reengaging the system. The solution to this is to
incorporate a distance sensor into the cruise control system to account for these slower
vehicles. An adaptive cruise control system takes the conventional system and adds
another dynamic layer dependent on distance. With this new input, the system can
account for vehicles moving at a slowing speed in front the drivers vehicle. As seen in
Figure 2: Adaptive Cruise Control Explanation, while cruise control is engaged, if our
vehicle comes up on a slower vehicle, the distance sensor would relay this information to
the control unit which would then dynamically reduce speed to prevent collision and
maintain a safe distance. After the slower vehicle moves out of the way, the system
about the throttle. In addition to slowing the vehicle if there is a slower one it front, the
system can also have the ability to emergency brake if it finds thats the only way to
avoid collision. An example of this would be if the vehicle in front slams on their brakes.
The system, being able to react much faster than a human, would reduce the possibility of
colliding with the other vehicle or object. This feature would extremely helpful to drivers,
especially on long drives when fatigue sets in and a driver isnt as focused or at night
Another major topic of the project specific to using an RC car is Pulse Width Modulation
PWM is common in almost all modern day electronics in one form or another. PWM
functions by varying how long a pulse is high in a given period. The signal is either fully
on or fully off in a PWM system. The longer the pulse is on in a given period, the higher
the average delivered power will be. For example if the pulse is on for 5ms in a 20ms
period, the average power delivered will be 25% of the fully on value since the pulse was
on for 25% of the entire period. So if the high value of the circuit was 5V, the average
voltage delivered in this example during that period would be 1.25V. Figure 3: PWM Duty
PWM is very useful in power control as you can use a digital system to vary how much
power is sent to a component by adjusting how long the pulse is high in each period. In
RC circuits PWM is used a little differently however. Instead of using PWM to vary
average voltage and in turn average power delivered, PWM is to send controls signals
instead. In most RC circuits a PWM with a period of 20ms is most commonly used.
Within this 20ms period, how long the pulse is high relays a certain message as shown in
pulse of 1.5ms long in the 20ms period is neutral for the car and will tell the electronic
speed control (ESC) in the car to send no power to the motor. A pulse of 1ms in the 20ms
period signifies full reverse while a pulse of 2ms signifies full forward. These signals
received by the ESC tells it how much power to send to the motor accordingly. With this
in mind, controlling the speed of the RC car revolves around varying the length of a pulse
A PID controller is the main component which determines the response of the control
system which will maintain the speed and distance of our vehicle. A PID controller is a
control loop feedback mechanism which consists of a proportional (P), integral (I), and
value which is the difference between the desired setpoint and the measured process
variable. The controller then aims to minimize this error by manipulating a control value,
in our cause throttle input. The adjustment of this control value is determined by the
proportional, integral, and derivative components of the controller. The P value accounts
for present values of the error (e.g. if the error is large and positive, the control variable
will be large and negative). The I value accounts for past values of the error (e.g. if the
output is not sufficient to reduce the size of the error, the control variable will accumulate
over time, causing the controller to apply a stronger action). While the D value accounts
for possible future values of the error, based on its current rate of change. Figure 6: The
Knowing how each parameter affects the system, one can effectively tune the system to
power management for the motor or engine, user input, and a controller. For this project,
effective and seamless implementation. The controller will read the signals coming from
the speed sensor, the distance sensor, and the user input and then do the necessary
processing then outputting to the motor controller. The controller will be designed around
reading the PWM signal from the receiver, interpreting this signal and then creating and
outputting its own PWM signal containing the desired information needed by the ESC. A
user interface with indicating lights will be attached to the car while a button on the
In most cars, the speed sensor is a part of the driveshaft. It essentially counts the
revolutions over time and then through a few calculations, determine the actual speed the
vehicle is traveling. For the car in this project, as custom speed sensor will have to be
fabricated. The sensor will be designed count the number of rotations the wheel has in a
given period of time. From this the controller will be able to calculate the cars relative
speed. This relative speed will be used in the processing of having the car maintain a set
speed when the cruise control system is active. When cruise control is set, a snapshot of
the current speed will be taken and stored as the desired speed. If the car finds itself in a
situation where it starts to deviate from the desired speed, the system will compensate for
this deviation by either decreasing or increasing power being sent to the motor. For
higher load on the motor but with no additional power sent to the motor. The controller
would recognize the car is losing speed and slowing down and in turn would increase
power to the motor to regain the desired speed. The project will not go as far as to
calculate the speed of the car in a known unit, but instead a unit specific to the car. For
example, if the car is traveling at a speed of 20 wheel revolutions per 100ms, this is the
actual unit of speed the system will try to maintain. The system will not be designed to
Next is the distance sensor which enable the adaptive layer of the adaptive cruise control.
The basic concept of most distance sensors is to send a signal through a transmitter and
then time how long it takes to be reflected back into the receiver. Taking this time and
running it through a simple calculation will provide how far away the object the signal
bounced off of is from our sensor. There is quite a selection of distance sensors on the
market in different price ranges or applications ranging from infrared detectors to laser or
radar detectors. The effective range of the sensor depends on the type of technology
being used. For example, an infrared distance sensor is only good up to a few centimeters
while a radar detector can be good up to a few miles. For this project, an ultrasonic
distance sensor was selected. The sensor was both cost efficient and also provided an
acceptable range of 5 meters for the project. Applying this system to a full size vehicle
would call for a sensor with a much better range such as laser or radar which can have
ranges of over 100 meters. This kind of range would be important as the vehicle would be
implementation, the system would take the value from the distance and then do the
necessary processing. The system would have a threshold distance to maintain between
our vehicle and the vehicle or object in front. This threshold distance would be a function
of the speed our vehicle is traveling. The faster the speed, the greater the distance will be
to give the system enough time to safely react. If the measured distance falls below this
threshold distance, the system will slow the car down until the measured distance is back
to being greater than or equal to the threshold distance. Once the vehicle in front either
moves out of the way or speeds up, the system will increase the speed of the car until
regains the desired speed set by the cruise control all while not allowing the measured
distance to not fall below the threshold distance. There will be some slight over and under
shoot present in the system but this will be minimized as best as possible.
understand how the Arduino functions, features it has available, and also its limitations.
After gaining this understanding, it was possible come up with a design to meet our
needs.
The Arduino will have to give a pulse to distance sensor to send a signal and then
measure that time it takes for the signal to be reflected back into the receiver. A picture of
the distance sensor used is seen below in Figure 7: Distance Sensor. The Vcc pin
provides 5 volts to the sensor while Gnd provides a return path for the current. The Trig
pin is what tells the sensor to transmit an ultrasonic sound while the Echo pin is what
bounces off the object and is received by the echo sensor, the Arduino stops counting and
records the time. Figure 8: Function of distance sensor, gives a good visual
representation of this.
With this time recorded, known as propagation delay dependent on distance, it is possible
receiver. These will be mounted inside a wheel which will have 6 white stickers equally
placed inside. As the wheel rotates, it will transition between the dark area of the wheel
and the white strips. As it passes over each white strip the sensor will go high producing a
pulse. Each time a pulse is received by the Arduino, it triggers and interrupt in the
a speed, the number of pulses will be counted by the Arduino in a period of time. For
example, 15 pulses per 100ms. This produces a relative speed for the Arduino to work
with in its processing. Figure 9: Speed Sensor below show our implementation of the
speed sensor.
The Arduino is the main controller of the system, it takes the input signals, processes
them accordingly, and then produces a certain output. Other than the speed and distance
sensors, the Arduino has to process the signals coming from the receiver. These signals
are specific PWM signals as described previously. To process these signals, the Arduino
must measure that time the pulse is high during their 20ms period to extract the data they
are carrying. This done by using the pulsein function in Arduino, specifically the one
which starts counting when the signal transitions from low to high. When the signal
transitions back from high to low the time is recorded. From this time, the Arduino can
know what data was being sent by the transmitter. For example, if the pulse was 2ms
long, the user is wanting the car to go full forward and previously explained. After the
Arduino has done its processing, it has to send information to the ESC telling it how
much power to send to the motor. The ESC however requires a PWM signal. So to
interface with the ESC, the Arduino has to produce a PWM signal of its own. Due to the
tight timing of this signal and all the other processing the Arduino is doing, it was
will receive how long the pulse in the 20ms period should be and then effectively
Another component which was designed was an indicator panel. This was done to give
the user a visual system status of the system. The blue led indicates the system is on and
led illuminates when the system has slowed the car down during cruise control due to a
slower moving vehicle in front. The red led signifies the emergency braking feature has
been activated due to an obstacle. The pushbutton serves to toggle between easy mode
and regular mode with the green led serving to indicate when is mode is activated. Easy
mode should be selected for notice drivers as it caps the maximum speed of the car.
Figure 10: Indicator Panel below shows the design of the panel.
then combining them into one system. Figure 11: Project Block Diagram below shows the
block diagram of our entire design Figure 12: Program Flow Diagram shows the flow
diagram of the Arduino Mega program and Figure 13: Trinket Flow Diagram shows the
flow Diagram for the Adafruit Trinket Program. The programs and design will be
the receiver and how it changed with changing the throttle. To do this, the output out the
receiver was connected to an oscilloscope which allowed us to see the actual waveform
of the signal. Next was figuring out how to read the width of the pulse with the Arduino
to decode the information within the signal. It was found the pulsein function was perfect
for this. It starts counting when the signal goes from low to high and stops when the
signal goes from high to low. The value it returns is how long the pulse was in
microseconds. This now allowed us to know the throttle position of the controller, with
neutral producing a pulse width of 1500 microseconds (1.5 milliseconds) and full forward
After this was completed, finding a way to reproduce this pulse was necessary since the
Arduino would need to do this to be able to communicate with the electronic speed
control (ESC). First we tried using the Servo Library for the Arduino and its
writeMicroseonds functions. This worked for the most part but at times would produce
and inconsistent pulse width leading to an unwanted surge in speed on the car. This was
attributed to the Arduino doing many other causing slight timing inconsistencies. As you
can imagine, a pulse ranging from 1 to 2 milliseconds is a very small amount of time.
Any, even slight, delay could alter the timing of the pulse leading to an incorrect signal
being sent to the ESC. To rectify this, a second microcontroller, known as the Adafruit
The Arduino Mega sends how long the pulse should be to the Trinket which then receives
that value and produces a PWM signal with the desired pulse width. To do this, the Servo
Library was no longer used, instead a simple loop was created. The loop takes the width
value it received and sets the output pin going to the ESC high for that amount out time.
Then it sets the pin low for the remaining amount of time within the 20ms period. While
the pin is set to high, interrupts are turned off to ensure the pulse width is not affected by
anything and is exactly as long as it's supposed to be. Interrupts are turned back on during
the low part of the signal as they are needed by the Arduino for other things such as
receiving data from the Mega. Another limitation is how the Arduino sends information
between another Arduinos. This is typically done using bytes which can only represent a
value of up to 255. The issue with this however is the highest number needed is 2000 as
this is the number of microseconds long the pulse should be to signify full forward. To
solve this while not making things too complicated, this value is divided by 10 (equaling
200) before being sent to the Trinket. Once received by the trinket, the value is then
multiplied by 10 (equaling the original 2000). The downside of this is some resolution is
lost by doing this, specifically the ones place, 1755 to 175 back to 1750 for example. This
write ups online. Our implementation consisted of using interrupts to determine distance.
When the ultrasonic signal is sent (trigger pin gets activated), an interrupt is triggered.
Within this interrupt the current time is recorded. When the signal is received by the Echo
pin, the interrupt is triggered again however this time it subtracts the previously recorded
time from the current time. This difference in time is how long it took the signal to leave
the sensor and return. With this time we are then able to calculate the distance of the
Currently the speed sensor uses an infrared led and infrared receiver. The original design
actually consisted of a yellow led and photoresistor which was found to be insufficient.
This was due to a capacitance effect with the photoresistor causing it to produce a usable
signal. The signal does not fully transition high to low, but instead stays somewhat
constant. This can be seen in Figure 14: Photoresistor Speed Sensor Response. This led
transistor which allows a faster and cleaner transition. This improvement can be seen in
Figure 15: Phototransistor Speed Sensor Response below. This then allowed the
interrupts to consistently trigger each time the receiver passed over a white strip.
Next are the PID controllers, one for distance and one for speed. For the speed PID
controller, it uses the speed recorded when cruise control was set as its setpoint and the
current speed as its process variable. The output of the controller is with width of the
PWM signal which tells the ESC how much power to send to the motor. The speed PID
controller serves to maintain the desired cruise control speed regardless of load and uses
negative feedback. It will increase power going to the motor if the car isnt going fast
enough and will decrease power going to the motor if the car is going faster than the set
The distance PID controller comes into play when the car is within a certain range of
another vehicle known as the safe distance threshold, 200cm for example. While within
this threshold, the speed PID is disabled and instead distance PID serves to maintain a
specific distance between itself and the vehicle in front, 100cm for example. To do this,
the controller takes 100cm as its setpoint and the current distance from the distance
sensor as the process variable but uses positive feedback unlike the speed PID. Like the
speed PID, output of the controller is with width of the PWM signal which tells the ESC
how much power to send to the motor. The maximum value of this output is capped to be
the maximum value previously generated by the speed PID. This ensures the vehicles
speed does not exceed the speed set by the cruise control while attempting to maintain to
100cm with the vehicle in front. So for example, if the current distance is below 100cm,
the controller will reduce power to the motor all the way down to sending no power at all
and essentially stopping the vehicle until the distance is greater than or equal to 100cm. If
the distance is greater than 100cm, the controller will increase power until either the
distance is less than or equal to 100cm, or the power cap set by the speed PID is reached,
whichever occurs first. If the distance becomes greater than the safe distance threshold of
200cm for this example, the distance PID is disabled and control is switched back over to
collision threshold distance, the system will automatically brake the car to prevent
collision with the vehicle of object in front. This is done by activating reverse on the ESC
for a specific amount of time. The brake will stay activated until the car both comes to a
stop and the throttle trigger is in the neutral position. If triggered, this will also
automatically deactivate the cruise control system requiring the user to manually
reactivate cruise control. Alternatively, if the user applies the brake while the cruise
control system is active, this action will also deactivate cruise control. The indicator
panel, seen again in Figure 16: Indicator Panel serves to indicate the current status of the
system.
it on a hobby remote controlled car. This project pulled on many concepts learned
throughout our courses such as microelectronics, control systems, digital design, and
circuit analysis to name a few. The system had to be designed from the ground up. First
starting with a standard cruise control system and then building on top of that with the
adaptive layer. One of the biggest challenges was using trial and error to tune the PID
controllers. Although this was very time consuming, eventually a sufficient response was
achieved.
While the project works as intended, it could use 2 main improvements to become more
polished. The first improvement being creating a more precise speed sensor. The current
iteration suffers from some variability in speed readings. This is attributed to the white
strips not being precisely cut or evenly spaced apart. This leads to a very slight
inconsistency in speed readings as the wheel rotates which in turn throws off the response
of the PID Controller as it thinks the speed of the car has changed when it reality it has
not. Also, decreasing the width of each white strip would allow additional strips to be
added resulting in a higher speed resolution. This higher speed resolution would improve
the performance of the PID controller as the input speed would be even more precise
leading to an even more controlled respond. The second improvement would be spending
more time tuning the PID controller to achieve an even more ideal response. Both of
these items combined together should enable a more consistent response of the system.
1. Environmental Impact
a. Energy & Pollution
In the United States 34% of the polluting energy sources are as a result of motor vehicles.
As more cars become equipped with the ACC system there will be less traffic congestion.
As a result, energy and pollution will decrease. Fuel efficiency will increase by 4-10%
when the vehicle is operated in the autonomous mode, acceleration and deceleration with
be a smoother process.
2. Social Impact
a. Driver Behavior in an Emergency
Drivers may become distracted and lose reaction time as a result of too much trust in the
automated system. The Adaptive Cruise System (ACC) is designed to maintain a desired
speed, so long as the distance and time intervals encoded in the system coincide. We as
one cannot be too relaxed, there is a slim margin of error in all systems. In the case
where this happens drivers need be prepared to activate the override system. Humans
must rely on commonsense and remember that these are machines and they are subject to
defect. It is important to remain aware and cautious of oncoming obstructions the ACC
adaptive cruise control. There is a strong possibility insurance premiums will decrease.
Research shows that cars with autonomous features are safer; there are fewer property,
liability, and other claims. If there are fewer accidents, insurance companies will paying
out fewer claims out. Inadvertent effect of this will be a reduction in insurance
premiums. Buyers that know there is a guaranteed reduction in insurance cost will be
encouraged to purchase vehicle with ACC and take advantage in the cut down on their
c. Driving Conditions
In congested traffic the ACC may not operate efficiently. It runs more efficiently with
large distance interval between impedances. ACC may have a helpful symptom,
emerging from the way that another impact of moderate human response times is to
Traffic jams begin when an auto eases back all of a sudden to permit, for instance,
another vehicle to enter the movement stream. Moderate response times imply that as
opposed to reacting easily, the drivers behind such a vehicle regularly wind up
pummeling on the brakes. That pummeling spreads in reverse, and after a short time the
movement is at a stop. So it bodes well that ACC would diminish impacts, as well as
clog.
The cars of tomorrow will progressively be furnished with ACC to bolster the driver in
the driving undertaking to enhance movement security, throughput, and/or the earth. The
ACC could be characterized as an augmentation of the CC and keeps up, other than a
certain set speed, a sure set separation as for the lead vehicle. To keep this set separation,
the ACC can quicken what's more, decelerate the vehicle. The increasing speed and
deceleration of the framework are constrained due to solace and lawful reasons. This
implies the driver needs to mediate if the framework is not ready to accomplish the
required needs. The ACC is fundamentally a solace framework that assumes control over
the auto taking after assignment. The driver stays in charge of controlling and crash
shirking. In the event that the deceleration of the ACC is not adequate to maintain a
strategic distance from a crash, then the ACC cautions the driver with a notice sound.
Considering the ACC just as an emotionally supportive network for the individual
driver's solace, it could likewise be useful at a totaled level, i.e., movement wellbeing,
constrained and hard to decide, activity reproduction models are frequently utilized to
examine the effect of the ACC on movement conduct. Activity reproductions have
demonstrated that the ACC could make strides activity security in light of better
separation keeping. This could bring about less auto collisions and may in this way
moreover be a change of the activity throughput. Full infiltration of the ACC may
diminish backside crashes by up to 17%. Moreover, it is normal that the ACC will
as it may, huge numbers of these ACC models in current activity reenactments just give
knowledge on the impact of the ACC framework for distinctive entrance levels under the
presumption that the ACC framework stays dynamic under just about all circumstances.
Specifically, as indicated by, the circumstances in which the driver needs to assume
control, i.e., exchanging in the middle of computerization and manual, could have a vast
ACC is a comfort framework and in that capacity, drivers must avoid getting to be
subject to the framework for braking reaction. For ACC to be successful, drivers need to
comprehend the capabilities of ACC, which rely on upon both braking and sensor
constraints. In view of this understanding, they must have the capacity to intercede when
the circumstance surpasses ACC abilities. In any case, drivers experience issues in seeing
how ACC capacities (Stanton and Marsden, 1996). Thus, they improperly depend on the
framework. For example, Nilsson (1995) found that when drawing closer a line of
vehicles, drivers neglected to intercede in light of the fact that they trusted that ACC
lead drivers to withdraw from the driving undertaking and defer reactions to changes in
lead vehicle (LV) speed. The affectability of the framework's braking reaction to
time, prompting a net security advantage of utilizing ACC over manual control.
Driver stress levels may increase with use of the ACC. Studies show that drivers become
fatigue from lack of simulation. Humans need their brains to be simulated to perform at
their best. Under challenging driving conditions drivers are forced to be attentive, if they
become too relaxed fatigue sets in. They call this task under-load rather than task
make the car systems intentionally demanding. However, this research counters the
benefits of installing an AAC to begin with, because it would not reduce the workload of
the driver. Driving in congested traffic will increases stress, which has been linked to
road traffic offences. Based on my interpretation of the data, using an ACC will reduce
3. Environmental Issues
a. Impacts of ACC on network efficiency
The testing has generally been set at or just above capacity to determine whether ACC
has a positive impact on capacity. The comparison test used assisted driving along side of
unassisted driving vehicles set with the ACC system. The driving time interval is minuet;
second in the average journey-time tested. The three lanes of the road way had adverse
The Slow lane: 15% of the traffic flow; Did not make use of the ACC so the speed
The middle lane: slight drop in average speed but those effects were not statistically
significant until 70% of vehicles were equipped with a system target headway of 1.5s.
The majority of the delay in the fast lane was as a result of other vehicles cutting each
other off the ACC vehicle. The driver was seen to resume control over the system when
the deceleration response of the system is inadequate. This in turn results in mini
shockwaves propagating down the outside lane until the gap between vehicles is large
were not found to be significant until greater than 20% of the vehicle fleet was equipped.
This highlights the relationship between the existing headway distributions; the target
headway for the ACC equipped vehicles and capacity. Less than 20% of vehicles
equipped, not all of which will be using the system at any one time, does not have a
significant impact on the overall headway distribution and therefore capacity. Above this
value and the effects become more significant, particularly as the difference between
mean headway and ACC target headway grows. One of the principal benefits that have
been shown from ACC has been the improvement in longitudinal control that the system
deviation of acceleration of between 46 and 52% for following events where the ACC
system is suitable for use. This implies reductions in fuel consumption and harmful
emissions as the engine can operate in a much more controlled manner with less severe
variations in combustion between cycles in the engine chamber. It seems likely that this
benefit will be achieved primarily outside of the peak hours when the system can be
4. Ethical Issues
Each time an auto heads out onto the street, drivers are compelled to settle on good and
moral choices that effect their wellbeing, as well as the security of others. Does the driver
go speedier than as far as possible to stay with the stream of activity? Will the driver take
her eyes off the street for a brief instant to modify the radio? Might the driver velocity up
These choices have both a down to earth and good segment to them, which is the reason
the issue of permitting driverless autoswhich utilize a blend of sensors and pre-
street to different vehicles, walkers, and cyclists, has made extensive shock among
engineers and ethicists. ACC will have more prominent insightful capacities, better
response times, and won't experience the ill effects of diversions (from eating or
So 90% of accidents are brought on, in any event to a limited extent, by human mistake,"
says Bryant Walker Smith, partner teacher in the School of Law and seat of the Emerging
Academies. "As perilous as driving seems to be, the trillions of vehicle miles that we
travel each year implies that crashes are in any case an uncommon occasion for most
drivers," Smith notes, posting speeding, driving inebriated, driving forcefully for
conditions, being languid, and being occupied as key supporters to mishaps. "The trust
however right now it is a trustis that robotization can fundamentally lessen these sorts
In that capacity, it shows up there is the ideal opportunity for makers to work through the
moral issues included with ACC. Moreover, expecting the innovative arrangements can
give upgraded mindfulness and wellbeing, the quantity of circumstances that require an
path keeping help, vehicle motion control, crisis braking and versatile journey control.
The innovation accessible makes it feasible for driver-less vehicles today to handle
motorways, given that these are long extends of continuous streets. In urban areas like
Singapore, be that as it may, this turns out to be practically incomprehensible. The streets
would be thick with diverse partners and contending street clients, including driver-less
An extremely useful record of obligation and protection suggestions of such driver help
frameworks is given by Syverud. He first quickly examines the current United States
enactment for car crashes and the resulting claims. With momentum example of mishaps,
the carelessness trials against proprietors or drivers of vehicles dwarf those against
producers on the other hand interstate proprietors. The potential lawful risk and cost of
obligation protection for the makers may debilitate the quick advancement and broad
measures can ease a large portion of the ebb and flow entanglements of such an
"endeavor." The accessible distributed exploration reports that examine the legitimate and
of the risk expenses of the mischances are paid via auto proprietors, through their own
particular obligation protection. Syverud clarifies how diverse driver help cautioning or
data frameworks may move the obligation dissemination toward the maker or parkway
proposes methods that makers can use to diminish the risk costs without monstrous tort
law changes:
The case is somewhat more entangled for vehicle control frameworks that mechanize
some driving errands. While such frameworks can for the most part enhance the
Framework makers also, thruway proprietors will probably be the respondents in a tort
vehicles bringing about various claims against producers and thruway proprietors.
-Gantt Chart
Component Price
RC Car 110
Arduino Mega 45
Adafruit Trinket 7
Wiring 4
IR Emitter and Detector 2
Distance Sensor 10
Protoboard for indicator panel 2
LEDs 5
Resistors 3
9V Battery Holder 4
Zip ties 2
White Label Strips 2
Chase Car 30
Batteries 10
Total 236
#include <TinyWireS.h>
#define pwm 1
int pwmamount = 1500;
int pwmamountbyte = 150;
unsigned long prevmicros;
digitalWrite(pwm, LOW);
interrupts();
}
#include <Wire.h>
#include <PID_v1.h>
#include <PID_AutoTune_v0.h>
#define pwm 12
#define throttlepin 5
#define setpin 6
#define led 13
#define trig 11
#define echo 10
#define onled 22
#define cruiseled 23
#define distancewarnled 24
#define ebrakeled 25
#define easymodeled 26
#define easymodepbutton 27
double Kp = 0.1;
double Ki = 0.1;
double Kd = 0.0;
double dKp = 1;
double dKi = .1;
double dKd = 0.1;
void setup()
{
Serial.begin(9600);
Wire.begin();
pinMode(throttlepin, INPUT);
pinMode(setpin, INPUT);
//pinMode(18, INPUT);
pinMode(led, OUTPUT);
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
//pinMode(easymodepbutton, INPUT);
pinMode(easymodeled, OUTPUT);
pinMode(onled, OUTPUT);
pinMode(cruiseled, OUTPUT);
pinMode(distancewarnled, OUTPUT);
pinMode(ebrakeled, OUTPUT);
digitalWrite(onled, HIGH);
speedPID.SetMode(AUTOMATIC);
speedPID.SetOutputLimits(min, max);
speedPID.SetSampleTime(200);
distancePID.SetMode(AUTOMATIC);
distancePID.SetOutputLimits(min, max);
distancePID.SetSampleTime(50);
setsig = pulseIn(setpin, HIGH);
if(setsig > 1900)
{setbuttonold = 1;}
if(setsig < 1100)
{setbuttonold = 0;}
distancewarn = safedistance + 100;
//attachInterrupt(4, distanceread, CHANGE);
attachInterrupt(5, speedcal, CHANGE);
attachInterrupt(4, easymode, FALLING);
}
void loop()
{
Serial.print("distance:");
Serial.println(distance);
if (avgcount == 5)
{avgwheelspeed = (wheelspeedsum/5);
wheelspeedsum = 0;
avgcount = 0;
}
Serial.print("avgwheelspeed:");
Serial.print(avgwheelspeed);
if(avgwheelspeed < 3)
{speedPID.SetTunings(4, 1, 0);}
else
{
digitalWrite(cruiseled, LOW);
digitalWrite(distancewarnled, LOW);
cruisespeedwdist = 0;
pwmamount = rxsig;
}
if(setbutton != setbuttonold)
{
if(cruiseset == 0)
{
cruiseset = 1;
cruisespeed = avgwheelspeed;
cruisespeedwdist = rxsig;
cruisespeedwspeed = rxsig;
pwmamount = rxsig;
}
else if (rxsig > pwmamount)
{
cruiseset = 1;
Serial.print("cruisespeed:");
Serial.print(cruisespeed);
//Emergency Braking
if(ebrake == 1)
{if ((rxsig < 1525) && (avgwheelspeed < 3))
{ebrake = 0;
digitalWrite(ebrakeled, LOW);}
else
{pwmamount = 1500;}
}
else if((distance < ebrakedistance) && (avgwheelspeed > 4))
if(pwmamount > 1470)
{cruiseset = 0;
ebrake = 1;
avgwheelspeed = 0;
Wire.beginTransmission(4); // transmit to device #4
Wire.write(165); // sends pwmamountbyte
Wire.endTransmission();
delay(60);
Wire.beginTransmission(4); // transmit to device #4
Wire.write(100); // sends pwmamountbyte
Wire.endTransmission(); // stop transmitting
digitalWrite(ebrakeled, HIGH);
delay(1000);
}
void speedcal()
{speedcount = speedcount + 1;}
void easymode()
{if((millis()-easymodemillis) > 2000)
{easymodemillis = millis();
if(easymodeon == 1)
{easymodeon = 0;}
else
{easymodeon = 1;}}
}
Maneuvers for Adaptive Cruise Control Vehicles IEEE Trans.Tech. vol 53., Sep 2004, pp.1573-
1585
[4] Daniel, C & Johan, S. Adaptive Cruise Control for Heavy Vehicles Hybrid Control and MPC,
Linkping University.
[1] S. Shladover, Review of the state of development of advanced vehicle control systems
(AVCS), Vehicle Syst. Dyn., vol. 24, pp. 551595, July 1995.
Japan, and the United States, in Proc. 1994 Vehicle Navigation and Information Systems Conf.,
[7] P. Varaiya, Smart cars on smart roads: Problems of control, IEEE Trans. Automat. Control,
[8] D. Swaroop and R. Huandra, Intelligent cruise control design based on a traffic flow
specification, Vehicle Syst. Dyn., vol. 30, pp. 319344, Nov. 1998.
[9] D. Swaropp and K. Rajagopal, Intelligent cruise control systems and traffic flow stability,
[13] H. Winner, S. Witte, W. Uhler, and B. Lichtenberg, Adaptive Cruise Control System: Aspects
[15] M. Persson, F. Botling, E. Hesslow, and R. Johansson, Stop and go controller for adaptive
cruise control, in Proc. 1999 IEEE Int. Conf. Control Applications and IEEE Int. Symp. Computer-
Aided Control System Design, Kohala Coast, HI, 1999, pp. 16921697.
[19] R. Deering and D. Viano, Critical Success Factors for Crash Avoidance Countermeasure
[20] J. Woll, Radar Based Adaptive Cruise Control for Truck Applications,, SAE Paper 973 184,
1997.
[21] P. Barber and N. Clarke, Advanced collision warning systems, in Proc. 1998 Inst. Elect.
Eng. Colloquium Industrial Automation and Control: Application in the Automotive Industry,
[22] J. Woll, Radar Based Collision Warning System,, SAE Paper 94CO36, 1994.
[23] P. Ioannou and H. Raza, Vehicle following control design for automated highway systems,
in Proc. 1997 IEEE Vehicular Technology Conf., Phoenix, AZ, 1997, pp. 904908.
[24] , Vehicle following control design for automated highway systems, IEEE Control Syst. Mag.,
[26] Sean OBryan. (2012, June 10). Arduino - Control ESC/Motor Tutorial [Online] Available:
http://techvalleyprojects.blogspot.com/2012/06/arduino-control-escmotor-tutorial.html
[27] Jan. (2011, February 9). Servo control interface in detail [Online] Available:
https://www.pololu.com/blog/17/servo-control-interface-in-detail
[28] (2011, December 18). Traction Control Part 1.1 - Monitoring Wheel Speed [Online]
Available: http://rcarduino.blogspot.com/2011/12/traction-control-part-11-monitoring.html
[29] Giorgos Lazaridis. (2009, March 10). PWM Modulation [Online] Available:
http://pcbheaven.com/wikipages/PWM_Modulation/
[31] Bishop, R.H. Intelligent Vehicle Technology and Trends Artech House Publishers 2005.
[32] Bosch,R. Bosch Acc Adaptive Cruise Control, Robert GmbH. 2003.
[33] Nice, Karim. (2001, January 15). How Cruise Control Systems [Online] Available:
http://auto.howstuffworks.com/cruise-control.htm
[35] (2012, January 20). How To Read an RC Receiver With A Microcontroller - Part 1 [Online]
Available: http://rcarduino.blogspot.ae/2012/01/how-to-read-rc-receiver-with.html
[37] Ben. (2014, June 6). Three Ways To Read A PWM Signal With Arduino [Online] Available:
http://www.benripley.com/diy/arduino/three-ways-to-read-a-pwm-signal-with-arduino/
[39] Banzi, Massimo. Getting Started with Arduino. Sebastopol, CA: O'Reilly, 2015. Print.