Decentralized Intersection Management Shawn Adams Dr. Matthew Rutherford Department of Computer Science, University of Denver
Research Context } Cooperative multi-agent path planning in and around common geographic locations (e.g. an intersection) } Using groups of autonomous vehicles navigating intersecting waypoint paths } Begin with structured intersections and paths } e.g. two 2-lane roads that intersect at right-angles } Interested in decentralized and distributed solutions } Initial research involves Peer to Peer directed diffusion } Expand into unstructured environments } e.g. hazardous site investigation with geographic obstacles
Robot Main Loop - Centralized yes yes no inters- reser- start arrived ection vation no no yes yes too decelerate adjust close stop heading & moving proceed no request start reservation over update pos & heading
Robot Main Loop - Decentralized yes yes no inters- reser- start arrived ection vation no no yes process msgs adjust stop heading & moving proceed yes too decelerate close no start over attempt reservation update pos & heading
Decentralized Message Exchange Robot Local State Peer List Peer Peer 3 7 2 4 ID’s ID’s Reservations ID SN Tile Res … Tile Res ID SN Tile Res … Tile Res … ID SN Tile Res … Tile Res
Reservations and Conflicts A Conflict Robot 1 Tile 1 Tile 3 Tile 2 T2 T3 Tile 1 Tile 0 Robot 0 bot 0 T0 T1 Time bot 1 } A Reservation is [ Robot ID, Sequence Number, [Tile, T entry , T exit ], … [Tile, T entry , T exit ] ] } A conflict occurs when different robots need the same tile at the same time and don’t know about each other } Centralized: No conflicts allowed, single reservation list } Decentralized: Conflicts are detected locally while merging or making new reservations
Decentralized Conflict Resolution } Two situations require conflict resolution } Making a new reservation } Merging a peer’s list of reservations into my list of reservations Make Reservation Merge Reservations Start Start Form Add New Reservation Get Conflicts Get Updated Resolve Conflicts End End
Decentralized - Conflict Resolution } Conflicts detected using local Start state } Each robot assigned a priority replace = true upon entering simulation } Priority used in conflict no res > all replace = false conflicts resolution } All robots use the same yes algorithm Cancel all End conflicts } Given the same information, all robots arrive at the same conclusion Insert res ‘res’ = the reservation to evaluate
Decentralized - Add New Reservations Start conflicts = yours - mine iter = conflicts iterator iter ! no = End end() yes Get conflicts Resolve Conflicts
Decentralized - Get Updated Reservations iter ! no Start = End end() yes y = yours.find(iter) updates = m = mine.find(iter) yours U mine y.seqNum no > iter = updates iterator m.seqNum yes Get Conflicts conflicts. no Resolve size == Conflicts 0 yes Update Reservation
Simulation Environment Webots Commercial Simulator SSIM Discrete Event Simulator } Replicated Traffic Light and } Implemented Overpass, Traffic Light, Overpass results Centralized Reservation, & } Good Built-in sensor suite Decentralized Reservation } Provided ready to use platform to } Very flexible test algorithms } Provided scalability and speed we } Simulation scalability limitations needed
Simulation Results
Next / Current Steps } Evaluate effect of realistic network conditions } Network Latency } Dropped Packets } Evaluate use of distributed hash table } Relax intersection constraints } Unstructured Intersection } Robots from any direction } Implement in actual robots
Questions?
Viewer Demonstration
Decentralized - Merge Peer Lists Start add = true no there is End room yes add 1 st new peer found
Recommend
More recommend