PRE2016 1 Groep2
Updating the Current Intersection System to be Compatible with Autonomous Vehicles.
Group members
- Lisanne van Wincoop (0849855)
- Jeroen van Dongen (0889788)
- Sjoerd Westendorp (0864518)
- Rodger van der Heijden (0851985)
- Johan Hendriks (0824890)
Introduction
On day 1 our idea for a project was to build a small robot that could teach itself to walk by using self learning AI. This idea was quickly abandoned when it was brought to our attention that these already exist. We were also unable to combine lots of USE aspects with the idea.
The next idea was investigate algorithms of intersections with only autonomous vehicles and to build a simulation of it. We could compare different algorithms and decide in which was best in certain situations. The problem was that it didn't contribute to real world scenarios because lots of algorithms used unrealistic assumptions, including: all traffic must be autonomous and there is no packet-loss in communication between car and intersection,
After receiving feedback on our second idea, we had a long discussion with Mr. Borghuis. To address all the points in the criticism received: unrealistic assumptions, no contribution, little USE, why 100% autonomous cars. We came up with an idea to update current intersection systems to encorporate autonomous vehicles. The project idea allows a realistic intermediate solution in the process only allowing autonomous cars in traffic.
Focus
Our main focus area concerns: Automated traffic regulation (ATR).
Narrow that down is our specific focus: Updating the Current Intersection System to be Compatible with Autonomous Vehicles (Vehicle Intersection Control).
Restrictions on the focus area:
- Crossing has 4 directions.
- Traffic is randomly generated, the ratio between autonomous and normal cars will be changeable.
A multitude of traffic accidents happen at intersectionscitation needed. These are also the bottlenecks in terms of efficiency since human drivers have varying reaction times. Drivers can also get stressed behind the wheel and lose valuable time while commuting. Contemporary intersection could make traffic more efficient by utilizing data from sensors of autonomous cars and controlling autonomous cars passing the intersection. By making the intersections smarter, user comfort can be greatly increased. Also society will benefit from more efficient driving past intersections, since emissions can be greatly reduced, which benefits the environment. Enterprises will also be positively influenced, since people will be able to get to work quicker instead of being stuck at an intersection.
Objectives
Main objective:
- Optimizing traffic flow at intersections by making them compatible with autonomous vehicles.
Objectives:
- Using sensor data from autonomous cars to make traffic light algorithms more aware of current traffic
- Choose a suitable communication protocol between autonomous cars and the intersection.
- Find existing efficient algorithms for autonomous cars at intersection in a literary review.
- Combine said algorithm with current traffic light algorithms to optimize traffic flow of both normal and autonomous cars.
- Make sure the traffic flow is optimal, which results in less waiting time and less emission.
- Create a transition solution that can combine the use of autonomous cars with human drivers by using the current intersection system.
- Keep in mind the perception of safety and the actual safety of passengers inside the autonomous cars.
- Decrease the number of traffic accidents involving cars on crossings.
Approach
The approach that is chosen is research and simulation oriented. Most information on existing solutions must come from literature and ongoing research. By identifying the state of the art, we will try to combine traffic light algorithms with algorithms that only work with 100% autonomous cars at the intersection. When such combination has been made, a simulation will be created and tested, after which an evaluation will follow.
Literature review
Intersection algorithms now
article needs more references
There are multiple technologies possible for detecting cars; lasers, rubber hoses filled with air, but most commonly inductive loops. These loops work by detecting a change of inductance; the metal body of a waiting car changes the inductance. Around the world different algorithms are used in traffic light timings.
Fixed time control
The most basic model. There are 3 groups of traffic; three different modes, being:
- The main road
- The road that crosses it
- Pedestrians
Without checking anything, the lights just cycle through these possibilities. There aren’t any sensors required, only the actuators. It is possible to allocate different time periods to the three cycles, for instance keeping the light on a busy source road green for a longer period of time. Usually the intervals are about 30 seconds, but this depends on the region.
By making use of the sensors in pedestrian traffic lights, a small optimization can be used.
if (pedestrian_button == pushed) { cycle through three modes } else { cycle through mode #1 and #2 }
These methods can be of use in populated areas, where there (most likely) are cars waiting anyway to detection does not offer any benefit. Not using sensors for the cars makes these intersections cheaper and more fault-proof.
Vehicle Actuation
Only useful when one road has way more traffic than the road crossing it. Basically it’s green for the main road, until a car is detected on the side road.
while (!car detected from side road) { green light on main road } else { green light on side road }
Urban Traffic Control
A quite sophisticated system that is centrally controlled. The intervals can be altered in real-time. This is useful if there happens to be for example a concert ending, causing a sudden influx of traffic from one way. Or, during peak hours, increase the time intervals of all directions, to reduce the lost time during transitions. Additionally it is possible to create a “groene golf” by linking sites together. This system is used in, among others, London, New York (7660 intersections out of 12460) and 83% of Toronto intersections (15% using SCOOT).
Split Cycle Offset Optimisation Technique
This technique uses detectors away from the intersection, say 50 to 200 meter, which makes it possible to know what traffic is approaching the intersection before it is actually waiting. Apparently the alterations to the UTC are rather small timewise, but efficiency-wise they can make a big difference.
Interesting find: Ingolstadt, German city (audi) which uses intelligent traffic light system[1][2]. Via special equipment the vehicles communicate with the traffic lights. These lights send, for instance, the time until the next color change, allowing the vehicle to adjust their speed, even automatically when adaptive cruise control is present. Or, when already waiting for a red light, the traffic light can communicate the waiting time. As far as I can tell, it does not affect the time intervals on the traffic lights themselves.
Sensor and communicationsystems of autonomous cars
article needs more text and communications part
Following is a list of sensors and their properties, advantages and disadvantages.[3][4][5][6]
Sensors
Sensor goals:[7]
- Know where you are going
- See where you are going
- Get where you are going
Lidar: (Tesla does not have it, only uses camera/radar/sonar)
- Cannot detect lanes
- Cannot detect Traffic signs/lights
- Can detect humans
- Very high cost
- Lots of data
- Easier for algorithms to manipulate data
- 360 view
Radar:
- Cannot detect lanes
- Good at detecting motion
- Cannot detect traffic signs/lights
- Poor detection of pedestrians
- Cheap
- Even less data than camera
- Cannot detect standing objects
- Long range: Long range radar is a 20 degree arc out to 174m (~570 ft) updated every 50ms and handling object speeds from -100 m/s to +25 m/s (~220mph closure to ~55 mph separation,) medium range is a 90 degree arc out to 60m (~200ft) updated every 50 ms and handling object speeds from -100 m/s to +25 m/s.[8]
Camera:
- Cheapest
- Lots of data, albeit less than lidar
- Can detect lanes
- Can detect traffic signs/lights
- Can detect humans
- Needs advanced algorithms (deep learning) to correctly understand images
- Needs more cameras to get 360 view
GPS:
- Only send information about location
- Cheap
- Needs a clear view of the sky
Ultrasonic/sonar:
- Sensitive to smoke and dirt
- Very short range (max 5m)
- Very wide range
- Small devices
- Needs more devices for 360 view (12 sensors in Tesla)[9]
Odometer:
- Velocity from shaft encoders/gps
- Steering angle from wheels angle sensors
Questions regarding the project
A few important questions arise that are in need of answering for the project.
- Different cars will have different sensors, how will it be made compatible?
- Which sensordata is important for the intersection to acquire?
- Where will the interpretation of data be done? (Lidar is a lot of data!)
- The communication-module needs to compatible between the autonomous cars, how will be dealt with different updates and versions?
- How will packetloss be processed in the simulation and how can a protocol be made to minimize its effect.
Existing communication systems in traffic
As one of the objectives is to incorporate current technology into the design of the intersection that is compatible with autonomous vehicles, research has to be done to determine what communication systems are currently embedded in intersection systems.
VETAG/VECOM
These are systems that can be found in current intersections. VETAG stands for vehicle tagging and uses an induction-loop that is built into the crossing. This loop receives information from buses and ambulances through transponders that are built into the vehicle. [10]
The induction-loop sends out a signal every few time steps and if there is a vehicle with a transponder located above the induction-loop then the intersection will receive information on for example the bus number and bus line in order to know where the bus is going. The correct traffic lights can then become green. [10] [11]
Vecom stands for vehicle communication and is an extension of the Vetag technology. With Vecom, the induction-loop is able not only to receive information, but it can also give information to the vehicle itself; this can be a signal that indicates what crossing the vehicle is nearing. [10]
KAR
The KAR system stands for korte afstands radio in Dutch, which means short distance radio. This system is based on GPS signals, which permanently keeps track of the location of the vehicle by using location determination systems in the vehicle itself. This system eliminates the use of induction-loops, which is beneficial since these can be quite costly.[11][12]
USE Aspects
Initially, some choices have to be made regarding the consideration of the USE-aspects in order to start designing the algorithm and communication protocol. Here, the aspects regarding the initial choices will be discussed.
This is a USE-aspect from a society point of view. The crossing that is to be design should be compatible with the transition period after the introduction of autonomous cars on the market. In the beginning, the market-share of the autonomous cars will be relatively low compared to cars with human drivers. However, when the autonomous vehicles have been on the market for some time, the expectation is that the market-share will increase as society becomes more used to the presence of autonomous cars on the road. This means that the intersection should be usable for a minority as well as a majority of autonomous cars.[13]
In the design and the simulation the influence of this USE-aspect will be shown by a graph of the throughput of the crossing versus the percentage of autonomous cars on the crossing. The throughput is measured by the mean time that the cars spend on the crossing.'
As the percentage of autonomous cars on the crossing increase, this will impact the traffic situation. Human drivers might become a minority if the launch of autonomous cars is a success. This gives way for more advanced behavior from the autonomous vehicles. An example of this could be that when there are multiple autonomous cars subsequently nearing the crossing, they could use platooning to cross the intersection more efficiently. However, this is a hypothetical theory about the efficiency of autonomous cars that might be outside the scope of this research.
Viewing autonomous cars as lounge cars that adjust driving behavior to perfect timing and comfort
In the future, a plan for the autonomous cars is that they function as lounge cars for people to order to come and pick them up with the assignment to take them to the right destination at a certain arrival time. This image is envisioned by for example the CEO of Tesla, Elon Musk and the CEO of the taxi service Uber Travis Kalanick.[14]
However, it might be a more distant future image than is aimed for with this research. As previously mentioned, the full potential of this service might be reachable when the market-share of autonomous vehicles is increasing. Realizing a perfect solution for this aspect of autonomous driving when utilizing existing technology might therefore be outside the scope of this research.
Safety systems in communication between autonomous cars and the intersection
One of the keys to the customer acceptance of autonomous vehicles is decreasing the risk of hacking. Without means to stop this, customer acceptance will never be optimal.[14] However, the way to stop this lies in complicated software which would be a project alone to construct. It is possible however, to keep in mind the possibility of communication failure between the car and the crossing.
The risk of hacking however, is present in many modern technological applications. Personal computers are very sensitive to hacking and yet the majority of society has accepted the risk. A more recent example is the introduction of drones that are used in the airforce or modern surveillance technology. Although these technologies lead to many controversial debates, there is a large number of people who endorse the use of these systems.
In[15] it is argued that modern society itself is a “risk culture”. Society is constantly searching for new energy sources and technological advancement that can drive the earth forward. People are getting used to putting their trust in new systems since new technologies are increasingly being introduced into their lives. Risk nowadays also varies between social groups and cultures. This indicates that some groups will be more risk-taking than others and also that autonomous vehicles have a good chance of being accepted by the group that is most risk-taking and then gradually accepted by other cultures that are more apprehensive, despite the fact that the technology carries with it the risk of hacking.[15] This paints a more nuanced picture of the implementation of new technology into society, which many business and market studies do not consider.
Maximising the throughput while keeping in mind the safety of the users
When human drivers are passing the intersection, it will not feel safe to them if autonomous cars start planning ideal trajectories around them and overtake them on the right side of the road or cross right in front of their bumper because the autonomous car calculated that this would be possible. This is very risky since human drivers are easily scared and can react unpredictably and cause unavoidable collisions. When this occurs, another problem arises: how to collide as ethically correct as possible… Even if it might not be as efficient, autonomous cars will need to keep a certain distance to human drivers in mind.
However, one of the main advantages of autonomous driving is the predicted increased efficiency as well as safety. This indicates that a tradeoff has to be made between the efficiency of the autonomous cars and the safety and the perceived safety of the human drivers, in other words an optimization problem.
In the case of the perceived safety of human drivers, this is influenced by the way in which the autonomous cars plan their trajectory. If they plan their trajectories more aggressively (for example overtaking on the right), this will increase the discomfort of the human drivers. This aggression can be simulated by increasing or decreasing the constraints bound to the freedom of trajectory planning for the autonomous cars. What is less obvious is how to measure the level of discomfort of the human drivers, without the pitfall of resorting to simplified if-then reactions.
Efficiency or throughput however, is more easy to measure. For this, the mean time cars spend on a normal, autonomous car free crossing can be used. If after implementation of the new crossing this mean time decreases, the efficiency has increased.
The environmental factor
Society is involved in heavy environmental debate in which traffic plays an important role. The implementation of autonomous cars and taxi services, should decrease the CO2 -emission by their increased traffic efficiency. This means that if the throughput of the intersections is increased, society will benefit in environmental terms.
By using the mean carbon footprint of cars, the emission on the crossing can be measured. This will be an additional result to the optimization problem introduced above.
Conclusion
The market-share of autonomous cars will change rapidly in the transition period, which is the setting of this research. Therefore, it is important to consider the influence of this change when designing the intersection.
Focus is kept on the begin phase of the introduction of autonomous cars, which means that considering fully operational autonomous taxi services is outside the scope of this research.
The implementation of safety systems is an important factor in the introduction of autonomous vehicles. Even though the design of such software is subject matter for future work, in this design problem communication failure and the consequences of this can be considered.
An optimization problem is introduced when considering the (perceived) safety of human drivers and the efficiency of the intersection. The latter can be measured and identified, while the human factor of perceived safety leads to reactions that are more complicated to consider, without resorting to unrealistic simplifications.
Algorithm
Type of Algorithm
Explicit algorithm
When creating an algorithm where path-planning is involved, one can choose to use an explicit algorithm, but there is also the option to use a neural network to have the autonomous cars learn for themselves. For this project, the choice was made to use an explicit algorithm. This is because the neural network problem is very complex and not always ethically correct. When these networks become more and more complex, the origin and the strategy of the decisions become untraceable, since these networks can grow more and more complex beyond the level of human comprehension.[16]
Also manipulation is a large problem regarding neural networks, especially in the use of automated vehicles, since ethically there are a lot of stakeholders. Companies might prefer to manipulate the neural network in such a way that the people using their cars are prioritized in dangerous situations.[16]
An explicit network, however, is very transparent. Everything about the algorithm is known and therefore not as easily manipulated. To achieve reasonable results from a neural network, a large knowledge base has to be constructed. For this project however, a good quality result can be achieved without the use of complex neural networks that bring ethical problems. For these reasons the choice was made to use a transparent, explicit algorithm.
Proposed algorithm
Algorithm for controlling the lights
This algorithm tries to achieve two main goals:
- Better throughput due to usage of dynamically gathered estimations of traffic;
- Smoother driving experience and less pollution by telling autonomous vehicles when the light will go on green, so it arrives at the light just in time.
The latter point is not a very complex algorithm, but requires the algorithm of the former to know ahead of time what state it is going to be in.
More components can be added.
All possible combinations of light states
There are 18 possible combination of states:
- All pedestrians green, all car lights red;
- 4 rotations of one right turn car lane green, 2 pedestrian routes green;
- 4 rotations of two right turn car lane green, 1 pedestrian route green;
- All right turn car lanes green, all pedestrians red;
- 4 rotations of one left and straight car lane green, one right turn lane green and one pedestrian route green;
- 4 rotations of one left and straight car lane green, two right turn lanes green and all pedestrian routes red.
The number of combinations is very limited due to the fact that left turns block all but one straight car route, the only straight car route it does not block is located on the very same turn lane.
The concept of the algorithm
Using estimations of the lane usage, it is possible to determine for all 18 states how many cars would be given a green light by switching to that state. Then the algorithm simply selects the state with the highest number.
Including the user
The algorithm should not let any individual wait to long. As such there is an upper limit for both the cars and the pedestrians on how long they are expected to wait at most. If this threshold is reached, then the algorithm should always turn the associated light to green after the next state transition.
Cost function
The three elements, traffic, wait time, and wait limit have to be combined into one cost function: The cost of having a light remain red.
- [math]\displaystyle{ Cost_{Lane} = Cost_{traffic} + Cost_{wait time} + Cost_{wait limit} }[/math]
- [math]\displaystyle{ Cost_{Lane} = N \times A + C \times t + P \times (t\gt T) }[/math]
Where 'N' is the number of autonomous cars in the turn lane, 'A' the percentage of cars that is autonomous, 'C' an arbitrary constant that defines the importance of wait time, 't' the time since the first car started waiting in this lane, 'P' the cost penalty for having a lane wait too long (this value should be arbitrarily large), 'T' the maximum time a vehicle can be expected to wait at an intersection. Note that due to the way this cost function works 't' can slightly overshoot 'T' before the lane light goes on green, 'T' therefore need to be adjusted accordingly.
The formula for pedestrian lanes is similar:
- [math]\displaystyle{ Cost_{Lane} = Cost_{wait time} + Cost_{wait limit} }[/math]
- [math]\displaystyle{ Cost_{Lane} = C \times t + P \times (t\gt T) }[/math]
With its own values for C, T and P.
The the cost for each state is the sum of the costs of all lanes that remain red in that state. However, to reduce computation time, the algorithm will calculate the cost reduction instead: This is defined as the sum of the cost of all lanes that will become green in that state. The algorithm will then select the state that causes the biggest cost reduction.
RPC's
Requirements
The design has to satisfy any requirement you formulate. This means that a requirement needs to be specific/measurable!
- The algorithm concerns a common four-way intersection with two turn lanes; one for going right, the other one for going left/straight. This limits the combinations of green/red, which is a good thing.
- Without any autonomous cars, the intersection will behave like a normal intersection.
- Autonomous cars know the following data:
- Current position: Current speed and distance from intersection, entry direction and which lane. (Odometer/GPS/Camera/Compass)
- Knows if a car is present in a cone of +45 to -45 degrees max 5 meters to either side of the car, no speed measurement. (Sonar)
- Knows speed and distance of a car behind if it's distance is within 5 meters. (Sonar)
- Knows speed and distance of a car in front if it's distance is within 60 meters. (Radar/camera/sonar)
- Autonomous cars will respond to traffic, and will avoid collisions on its own. (Without intersection communication)
- Communication between autonomous cars and intersection contains:
- Handshake of communication.
- Intersection can change velocity of autonomous cars. Als dit de enige feedback mogelijkheid is, in hoeverre is hier dan efficientie uit te boeken? Misschien moet er wel een gewone weg ervoor worden geplakt zodat er ook nog lane veranderingen mogelijk zijn.
- Send locations and possible speeds of cars near the autonomous car and itself to the intersection.
- Acknowledge data received.
- Using the data of car locations, the algorithm is able to provide more throughput to the directions that has more waiting traffic, to increase efficiency.
- Traffic intensity can be adjusted for all four roads.
Preferences
These are likes and want-to-haves. Measurability is less important.
- The algorithm is able to know when packet loss occurs, and is able to deal with such situations. (Amount of % packetloss can be adjusted)
- When the algorithms notices multiple autonomous cars are together, it will send data for them to become a platoon. However, if there is an significant amount of normal cars, the algorithm will decrease the number of cars in the platoon.
Constraints
Necessary conditions, design choices are fixed from the start.
- Pedestrians are simulated but no cyclists. (They do not behave significantly different than pedestrians, as the roads can have cycling lanes instead of sidewalks.)
- Pedestrians have a maximal allowed waiting time. This cannot be exceeded.
- Emergency vehicles will not be simulated.
- Cars will be generated according to a Poisson distribution.
- Autonomous cars behave like human drivers.
Packetloss in the simulation
Since the intersection is filled with regular human driven cars that do not communicate, it is logical to make the default state of both the algorithm and the vehicles to be just like that:
- If a autonomous car can not contact the intersection, default to simple intersection behaviour.
- If an intersection can not contact a autonomous car, then it can not even know that it exists, so it will threat it like a normal human driven one.
- If communication fails halfway through, switch to the default behaviour.
This can be simulated by replacing the autonomous car with a human driven one, which means that simulating this scenario is pointless. However this is an extreme case of failure: The communication does not work at all.
Packet loss is a generic way to describe all communication transmissions that fail. If a set of data, called a packet, fails to be in any way or shape received correctly, the packet is considered lost. A 100% packet loss is what we have discussed so far, but realistically a system does not switch between 0% and 100%, but fluctuates somewhere in between. This can have many causes, from interference to hardware failures. It is important not to assume the cause of the losses. Therefore the algorithm can not assume anything about why a vehicle has stopped responding for a few seconds. Simulating packet loss can be done by rolling a dice every time the algorithm accesses data of an autonomous car or every time it tills a car something it has to do. In the code this will often result in a random generator being called before each communication, then if the random generator says it fails skipping then communication code. This is best described by an example: Lets say we have an algorithm that estimates how many cars there are on each lane, it does so by asking each autonomous car where they are. In the simulation code this would involve the algorithm to go over a list of cars and then accessing it coordinates. Packet loss would then be simulated by having the algorithm skip a vehicle. This means for the algorithm that it will underestimate the number of cars in that lane. However this estimate is still better than the old detection system that could detect at most one car. So here packet loss interferes but does not break the system. Note however that due to the (pseudo)-randomness of packet loss the estimate of number of cars in a lane will fluctuate, therefore the algorithm that uses this data must be able to cope with this.
Packet loss also occurs in the other direction: For example, when the intersection wants a vehicle to not drive through green. It could send it a message telling it not to drive through green. However due to packet loss it might not receive this message and as such it will just continue on its way. The algorithm can therefor not assume the vehicle actually does what it is told. At this point is might be obvious that any message telling a vehicle not to do something is bad design.
For safety purposes it might be necessary for all the communication to require acknowledgment responses. This way there is a significant chance the packet loss is detected and corrected by re-sending the message. However, remember that this acknowledgment message can get lost too. So even in this case it is still important that the algorithm does not make the assumption that communication succeeds.
Packet injection, or simply put: hacking.
For most part this is a matter of security. The only real way to prevent this is using encryption and other security techniques like obfuscation. For most part this would be integrated into the communication system. In this project we are going to assume this does not happen. If hacking does happen, then the ship is already lost. Putting our lives at the hands of systems that are hack-able is normal these days. From aviation to the military, the dangers of hacked communication are real, but also very complex. All in all, while relevant, this is far beyond the scope of this project.
Green Wave design choice
The “Groene golf” system works by synchronizing several intersections to allow large groups of cars to pass through the region in one go. Using communication with autonomous cars could allow these vehicles to set the pace of other cars behind them in order to improve the effectiveness of the system. However there are several issues that makes modifying the “Groene golf” system to use automatic cars both unpractical and unnecessary.
It is important to remember that the intersections need to be able to communicate with the vehicle. This requires communication systems to be placed along the roads between intersections. The point of our project is to not overhaul the road network, but to make minor hardware modifications to improve an intersection. Our project is focused on intersections. A multiple-intersection arrangement has its own complexities and its own goals, problems, and USE aspects. On top of that it important to remember that autonomous cars will follow the speed limit perfectly anyway, meaning that they will by default use the system the way its intended. It is therefore questionable that rather expensive communication upgrades will result in any significant benefit at all.
Gauging and Traffic Data
Every few years, some intersections - especially in the city - need to be gauged and updated to handle changing traffic flow. This is a problem our intersection would solve, since live traffic data is present to make efficient decisions. This leads to reduced costs for the municipality and an increases throughput in dynamic situations including holidays, rush hour and local events. Vergelijking met ons algorithme en normale kruissing bij het genereren van verkeer met een extreme Poisson curves
Hoe gaat verkeer precies gespawned worden?
Traffic data will be simulated by a poisson curve with a high sigma
Simulation
Here details and progress of the simulation will be kept up-to-date.
Junction Explanation
A common four way intersection with 2 turn lanes at each side, one for going right, one for going left and straight. Originally the intersection had no turn lanes, but this form of intersection is too uncommon to be representative of the general case. Besides this, an intersection with no turn lanes on any side could very easily be improved by allowing right turn on red for autonomous cars in some cases, but this is a trivial improvement to a simple scenario.
The intersection represents a common traffic light crossing between two one-lane roads. Besides this there is also a simulation of pedestrians, however there is no simulation of cyclists. No simulation of cyclist is needed as, from the intersection point of view, they do not behave differently enough from pedestrians to make a difference for our algorithm, as the roads can just have cycling lanes instead of sidewalks.
Code Explanation
The simulation is created in Java using NetBeans IDE.
Renderer: To display things on the screen Java's Swing. This is a relatively simple graphics library, however it has many limitations. One such limitation is its timer function, which had a hard time to trigger 60 times per second even at low computational loads. As such the generic Java Utility class Timer was used to reach the targeted 60 FPS. In reality since the timer uses a target 16 ms delay between frames, the real amount of a frames is slightly higher than that.
The Renderer class is used to obscure the inner workings of the graphical part from the algorithm. The advantage here is that the functioning of the algorithm is independent to the functioning of the graphical code. This means that changes to the graphical section will not change the behaviour of the algorithm and vice versa.
The Renderer class contains a JFrame, which is the window displayed on screen, and the JPanel. This JPanel is actually the RenderWorld class, which extends the JPanel with the features needed for this simulation, like the sliders. The RenderWorld class also implements key and mouse listeners, allowing for user input.
The Main class: Normally in java one would not define a main class, but in order to allowing for the separation of graphics and algorithm two classes are needed, one for the graphical side (Renderer) and one for the algorithm (Main).
The main class has three important functions: The constructor, this is where the simulation must be setup. The draw function, where the simulation tells the graphical section what has to be displayed. And the loop function, where all cars and pedestrians take one step and the algorithm does its calculations.
Draw and loop are explicitly separate. Although for most draws there is also one loop. Loops can be skipped if the simulation is paused, and draws can be skipped if the frame rate is too high for Swing to handle.
Note that a draw and loop counter exists. The loop counter is used as a in simulation time unit. This means that the vehicles in the simulation will report their time spent in the intersection in terms of computation steps rather than seconds. The latter method would make the results of the simulation frame rate dependent. With the former method the simulation can be done at any speed.
Pedestrians: The pedestrian simulation relies on different walking speed and drawing offset to make the crowds look like crowds. The difference in walking speed disperses the crowds once the traffic lights go on green. The drawing offset makes it so if multiple pedestrians are on one spot, they instead are drawn as a bunch of circles close together.
In the pedestrian simulation each pedestrian is a finite state machine: They have a state to walk towards the intersection, one to wait at the light, and one to walk away once the light is green. Since each pedestrians only want to go one of the four cardinal directions, each pedestrians need to cross at most one road. The effect pf pedestrians crossing multiple parts of the intersection is the same as simply increasing the number of pedestrians.
Cars: Although the fundamentals are ready, for a large part these are not implemented yet. However, the following is already set: A percentage of cars spawned is autonomous. Since autonomous cars is rather lengthy, it is shortened to “auto” in the code while normal cars are called “car”. An auto is just an different kind of car, where the difference is defined by a Boolean (true or false value).
Code
Code from Main.java; Main Java code, other source files will be uploaded later.
Sources and References
Sources
- A Multiagent Approach to Autonomous Intersection Management.[17]
- Decoupled Cooperative Trajectory Optimization for Connected Highly Automated Vehicles at Urban Intersections.[18]
- A review on agent-based technology for traffic and transportation.[19]
- Microsimulation analysis of automated vehicles on multiple merge junction highways[20]
- A Review of the Applications of Agent Technology in Traffic and Transportation Systems[21]
- Tesla specifications and sensors[22][23]
References
- ↑ http://www.autoevolution.com/news/how-do-traffic-light-control-systems-work-41839.html
- ↑ http://www.autoevolution.com/news/audi-travolution-project-explained-21294.html
- ↑ http://www8.cs.umu.se/kurser/5DV029/HT09/handouts/Sensors%20for%20autonomous%20vehicles%20.pdf
- ↑ https://www.sciencenewsforstudents.org/article/explainer-what-are-lidar-radar-and-sonar
- ↑ http://people.bath.ac.uk/as2152/cars/technology.htm
- ↑ http://www.eetimes.com/author.asp?section_id=36&doc_id=1330069
- ↑ http://nl.mouser.com/applications/autonomous-car-sensors-drive-performance/
- ↑ https://teslamotorsclub.com/tmc/threads/what-does-the-forward-facing-radar-see.44224/
- ↑ http://spectrum.ieee.org/cars-that-think/transportation/self-driving/teslas-model-s-will-offer-360degree-sonar
- ↑ 10.0 10.1 10.2 Techniek, S. (sd). VETAG/VECOM/SICS. Opgehaald van ssstechniek: http://www.ssstechniek.nl/?page_id=40
- ↑ 11.0 11.1 Crow, K. (2015). Selectieve detectoren. Opgehaald van Crow: http://www.crow.nl/vakgebieden/verkeer-en-vervoer/verkeersmanagement/verkeersregelinstallaties/regelingen-voor-specifieke-doelgroepen/verkeerslichten-en-hulpdiensten/selectieve-detectoren
- ↑ Gelderland-Midden, V. e. (sd). Ambulances sneller door KAR. Opgehaald van vggm: http://www.vggm.nl/ambulancezorg/over_de_ambulancezorg/nieuws_ambulancezorg/nieuwsarchief_ambulance/ambulances_sneller_door_kar
- ↑ Unknown. (2015, 08 18). Forecasts. Retrieved from Driverless-future: http://www.driverless-future.com/?page_id=384
- ↑ 14.0 14.1 Intelligence, M. (2016). Autonomous/Driverless Cars – Market Potential Estimation and Possible Competitive Landscape – Forecasts, Trends and Analysis (2016 - 2021). Retrieved from Mordorintelligence: http://www.mordorintelligence.com/industry-reports/autonomous-driverless-cars-market-potential-estimation?gclid=CJmT0Me6oM8CFYu6GwodhhABbw
- ↑ 15.0 15.1 Flynn R., Bellaby P. (2007). Risk and the Public Acceptance of New Technologies. New York: Pelgrave Macmillan.
- ↑ 16.0 16.1 Goodall, N. (2014). Ethical Decision Making During Automated Vehicle Crashes. Transportation Research Record: Journal of the Transportation Research Board, 2424(7), 58–65. http://doi.org/10.3141/2424-07
- ↑ Journal of Artificial Intelligence Research 31 (2008) 591-656. Submitted 11/07; published 3/08. A Multiagent Approach to. Autonomous Intersection Management.
- ↑ Krajewski, R., Themann, P., & Eckstein, L. (2016). Decoupled Cooperative Trajectory Optimization for Connected Highly Automated Vehicles at Urban Intersections. IEEE Intelligent Vehicles Symposium, (IV).
- ↑ Bazzan, A. L. ., & Klügl, F. (2013). A review on agent-based technology for traffic and transportation. The Knowledge Engineering Review, 29:3(May 2013), 375–403. http://doi.org/10.1017/S0269888913000118
- ↑ M. Antoniotti, A. Deshpande and A. Girault, "Microsimulation analysis of automated vehicles on multiple merge junction highways," Systems, Man, and Cybernetics, 1997. Computational Cybernetics and Simulation., 1997 IEEE International Conference on, Orlando, FL, 1997, pp. 839-844 vol.1.
- ↑ B. Chen and H. H. Cheng, "A Review of the Applications of Agent Technology in Traffic and Transportation Systems," in IEEE Transactions on Intelligent Transportation Systems, vol. 11, no. 2, pp. 485-497, June 2010. doi: 10.1109/TITS.2010.2048313
- ↑ https://www.tesla.com/support/model-s-specifications
- ↑ https://www.quora.com/What-kind-of-sensors-does-the-Tesla-Model-S-use-for-its-autopilot-auto-steering-features
Collaboration
Milestones
- Literature review
- Current intersection systems;
- Sensor and communication abilities of current autonomous vehicles;
- Communication systems that are already present in current intersections (busses and ambulances have the ability to control the traffic lights to a limited extent)
- Coupling between intersection and the autonomous car
- Simulation
- Algorithm (backend)
- Visualisation (frontend)
- Test
- USE aspects (to be considered with every decision that will be made). The considerations of the USE will be discussed throughout the report and delivered in an evaluation chapter at the end of the report.
- Evaluation of Simulation
- Wiki
- Presentation
- Final simulation
Planning
The planning has been divided in three phases that categorize the main elements of the project. During the startup phase, the goal is to create a good basis for the project by doing a literature review and make a (global) plan that can be a guideline for finalizing the project.
In the chart, the specific activities that belong to each phase have been listed. The green cells indicate when these activities will take place.
The USE aspects have not been mentioned specifically, since this is an integral element of the research and will have to be considered and reviewed every step of the way.
Task division
The tasks divided per week are an indication of the work that needs to be done by all the group members. The reserved hours for each task are mentioned in the schedule below.
Sjoerd
- Week 2:
- Brainstorming on subject an milestones. (5 hours)
- Work on simulation (8 hours)
- Researching: sensors and communicationsystems of autonomous cars. (7 hours).
- Week 3:
- Brainstorming on subject an milestones. (5 hours)
- Continue startup work on the simulation. (6 hours)
- Start on algorithm (the whole group is involved in this weeks decisions on the algorithm). (10 hours)
- Week 4:
- Finalize frontend of simulation. (6 hours)
- Start working on backend of simulation. (6 hours)
- Write part about why we are choosing not to simulate the "green wave" and investigate and write a piece about packet loss. (4 hours)
- Week 5:
- Work on backend of simulation (15 hours)
- Week 6:
- Finalize backend of simulation (15 hours)
- Visualize results of simulation. (3 hours)
- Week 7:
- Tweaking and evaluation backend algorithm. (10 hours)
Johan
- Week 2:
- Brainstorming on subject an milestones. (7 hours)
- Researching: Existing communication systems in traffic.(9 hours)
- Week 3:
- Final literature review (if still necessary after the work in week 2). (5 hours)
- Start on algorithm (the whole group is involved in this weeks decisions on the algorithm). (7 hours)
- Reporting on Existing communication systems in trafic. (6 hours)
- Week 4:
- Adjust the architecture of the code. (7 hours)
- Program collision detection. (7 hours)
- Research and write a text about our use of Poission distributions to generate traffic flow. (2 hours)
- Adjust planning and make a Gantt-chart. (2 hours)
- Week 5:
- Work on backend of simulation (15 hours)
- Week 6:
- Use literary review to adjust backend if neccesary. (10 hours)
- Week 7:
- Tweaking and evaluation backend algorithm. (10 hours)
Jeroen
- Week 2:
- Brainstorming on subject an milestones. (5 hours)
- Managing wiki. (2 hours)
- Work on planning. (4 hours)
- Evaluation of Simulation. (9 hours)
- Week 3:
- Finalize literature review (if still necessary after the work in week 2). (6 hours)
- Start on algorithm (the whole group is involved in this weeks decisions on the algorithm). (4 hours)
- Keep Wiki page updated. (4 hours)
- Week 4:
- Keep Wiki page updated. (4 hours)
- Combine all the literary review results in a comprehending summary. (12 hours)
- Week 5:
- Keep Wiki page updated. (4 hours)
- Help tweaking simulation. (8 hours)
- Week 6:
- Keep Wiki page updated. (4 hours)
- Evaluate USE aspects of the algorithm and simulation. (4 hours)
- Week 7:
- Final editing on Wiki page. (15 hours)
- Evaluate results simulation (3 hours)
Rodger
- Week 2:
- Brainstorming on subject an milestones. (5 hours)
- Researching: Intersection algorithms now. (10 hours)
- Week 3:
- Final literature review (if still necessary after the work in week 2) (4 hours)
- Start on algorithm (the whole group is involved in this weeks decisions on the algorithm). (4 hours)
- Evaluate USE aspects of the algorithm. (4 hours)
- Week 4:
- Report on Intersection algorithms now. (8 hours)
- Week 5:
- Evaluate frontend of simulation, adjust GUI. (8 hours)
- Week 6:
- Evaluate USE aspects of the algorithm and simulation. (4 hours)
- Week 7:
- Review the results of simulation and write report on it. (10 hours)
Lisanne
- Week 2:
- Brainstorming on subject an milestones. (5 hours)
- Work on presentation and planning. (8 hours)
- Week 3:
- Giving presentation. (1 hour)
- Final literature review (if still necessary after the work in week 2) (4 hours)
- Start on algorithm (the whole group is involved in this weeks decisions on the algorithm). (4 hours)
- Evaluate USE aspects of the algorithm. (4 hours)
- Week 4:
- Combine all the literary review results in a comprehending summary. (12 hours)
- Week 5:
- Evaluate frontend of simulation, adjust GUI. (8 hours)
- Help with managing wiki. (3 hours)
- Week 6:
- Preview the results of simulation and write report on it. (10 hours)
- Help with managing wiki. (3 hours)
- Week 7:
- Evaluate USE aspects of the algorithm and simulation. (4 hours)
- Help with final editing of Wiki page. (8 hours)