Multi-Vehicle Path Planning In Dynamically Changing Environments - 2012-11-19
1. Multi-Vehicle Path Planning In
Dynamically Changing
Environments
Prepared by
Aritra Sarkar
Kosuru Sai Malleswar
Rajil Ramesh A
2. Introduction
Active research area in robotics and road
traffic management
Find the optimal path between any two
locations on a map, taking into account
the traffic intensity along the road as well
as the movement of other vehicles
Key algorithm: Dijkstra’s shortest path
3. Traffic Generation Models
Study of interactions between vehicles,
drivers, and infrastructure including
highways and traffic control devices
Wardrop's first principle:“The journey
times in all routes actually used are equal
and less than those which would be
experienced by a single vehicle on any
unused route.”
Wardrop's second principle:“At
equilibrium the average journey time is
minimum.”
5. Traffic Generation Models
Vehicles do not interact simply following the
laws of mechanics
Show phenomena of cluster formation and
shock wave propagation, both forward and
backward, depending on vehicle density in a
given area
"Optimum density" for US: 40–50 vehicles
per mile per lane
Jam density:185–250 vehicles per mile per
lane
7. Traffic stream properties: Speed
Speed in traffic flow is defined as the
distance covered per unit time
Speed measured by keeping time as
reference:time mean speed
Speed measured by keeping space
reference:space mean speed.
Time mean speed is always greater than
space mean speed
8. Traffic stream properties: Density
Density (k) is defined as the number of
vehicles per unit area of the roadway
Two most important densities: Critical
density (kc) and jam density (kj)
Maximum density achievable under free flow
is kc, while kj is the maximum density
achieved under congestion
Jam density is seven times the critical density
Inverse of density is spacing (s), which is the
center-to-center distance between two
vehicles.
9. Traffic stream properties: Flow
Flow (q) is the number of vehicles passing
a reference point per unit of time,
vehicles per hour
Inverse of flow is headway (h), which is
the time that elapses between the ith
vehicle passing a reference point in space
and the (i+1)th vehicle
In congestion,h remains constant.As a
traffic jam forms,h approaches infinity
11. Fundamental diagram of traffic flow
The more vehicles are on a road, the slower their
velocity will be.
To prevent congestion and to keep traffic flow stable,
the number of vehicles entering the control zone has to
be smaller or equal to the number of vehicles leaving
the zone in the same time
At a critical traffic density and a corresponding critical
velocity the state of flow will change from stable to
unstable
If one of the vehicles brakes in unstable flow regime the
flow will collapse
Flow = Speed * Density
12. Traffic bottlenecks
Localized disruption of
vehicular traffic on a
street, road or highway
Result of a specific
physical condition,often
the design of the road,
badly timed traffic lights,
or sharp curves
16. Solution to the single-source shortest path problem in
graph theory
Works on both directed and undirected graphs.
However, all edges must have nonnegative weights.
Input: Weighted graph G={E,V} and source vertex v∈V,
such that all edge weights are nonnegative
Output: Lengths of shortest paths (or the shortest paths
themselves) from a given source vertex v∈V to all
other vertices
Dijkstra's algorithm
17. dist[s] ←0 (distance to source vertex is zero)
for all v ∈ V–{s}
do dist[v] ←∞ (set all other distances to infinity)
S←∅ (S, the set of visited vertices is initially empty)
Q←V (Q, the queue initially contains all vertices)
while Q ≠∅ (while the queue is not empty)
do u ← mindistance(Q,dist) (select the element of Q with the min. distance)
S←S∪{u} (add u to list of visited vertices)
for all v ∈ neighbors[u]
do if dist[v] > dist[u] + w(u, v) (if new shortest path found)
then d[v] ←d[u] + w(u, v) (set new value of shortest path)
(if desired, add traceback code)
return dist
Dijkstra's algorithm Pseudocode
19. Program Flow
Step 1:Accept Map from User (jpeg file)
Step 2:Accept number of Cars
Step 3: Derive grid size based on Map size
Step 4: Extract map mask of roads based on colour thresholding and
display it
Step 5: Create equidistant square grid on motorable roads mask and
display it
Step 6: Generate adjacency matrix by connecting 8 surrounding
nodes
Step 7: Generate Congestion matrix and update edge costs based on
congestion
Step 8:Accept source and destination coordinates for each car by
GUI mouse click on map
Step 9: Derive each car’s source and destination nodes from accepted
coordinates
Step 10: Loop till all cars reach their respective destinations
20. Program Flow
Step 10.1: For present clock tick, loop through all cars
Step 10.1.1: If current car has reached its destination, skip to
processing next car
Step 10.1.2: If current car has not reached the destination, check if
there is an obstacle flag (or for 1st time)
Step 10.1.2.1: For each car, calculate Dijkstra's path through nodes
that are accessible from current node
Step 10.1.2.2: Back-trace Dijkstra’s path from destination to source
and save it, clear obstacle flag
Step 10.1.3: If no obstacle flag up, move car to next location in stored
path
Step 10.1.4: Display movement in map, with different colour for each
car
Step 10.1.5: if car's next location same as destination, raise reached
flag for that car
Step 10.2: Check if other cars coming in as obstacle, raise flag if yes
Step 11: End of program
21.
22. Output for 3 vehicles with different source and
destination nodes
23. Limitations
Dijkstra's algorithm has time complexity
of order (n2).
For bigger maps,huge number of nodes
are to be processed introducing a time
complexity of its own.
Directivity of vehicles are not shown in
map.
Traffic congestion has been modelled as a
random process since real world data was
not available.