Simulation and driving with Context-POMDP in SUMMIT (click to see video):
Information on the Installation Steps and Technical User Guides of Context-PODMP can be located on our wiki.
This repository contains the code for the Context-POMDP planner for driving among dense urban traffic simulated by the SUMMIT simulator.
The algorithm was initially published in our ICRA (paper):
Cai, P., Lee, Y., Luo, Y. and Hsu, D.,. SUMMIT: A Simulator for Urban Driving in Massive Mixed Traffic. International Conference on Robotics and Automation (ICRA) 2020.
Existing driving simulators do not capture the full complexity of real-world, unregulated, densely-crowded urban environments, such as complex road structures and traffic behaviors, and are thus insufficient for testing or training robust driving algorithms. SUMMIT aim to fill this gap. It is a high-fidelity simulator that facilitates the development and testing of crowd-driving algorithm extending CARLA to support the following additional features:
-
Real-World Maps: generates real-world maps from online open sources (e.g. OpenStreetMap) to provide a virtually unlimited source of complex environments.
-
Unregulated Behaviors: agents may demonstrate variable behavioral types (e.g. demonstrating aggressive or distracted driving) and violate simple rule-based traffic assumptions (e.g. stopping at a stop sign).
-
Dense Traffic: controllable parameter for the density of heterogenous agents such as pedestrians, buses, bicycles, and motorcycles.
-
Realistic Visuals and Sensors: extending off CARLA there is support for a rich set of sensors such as cameras, Lidar, depth cameras, semantic segmentation etc.
Context-POMDP is an expert planner in SUMMIT that explicitly reasons about interactions among traffic agents and the uncertainty on human driver intentions and types. The core is a POMDP model conditioned on humman didden states and urban road contexts. The model is solved using an efficient parallel planner, HyP-DESPOT. A detailed description of the model can be found in our paper.
The repository structure has the following conceptual architecture:
To briefly explain the core sub-systems:
-
Summit the SUMMIT simulator.
-
Summit Connector A python package for communicating with SUMMIT. It publishes ROS topics on state and context information.
-
Crowd Pomdp Planner The POMDP planner package. It receives ROS topics from the Summit_connector package and executes the belief tracking and POMDP planning loop.
-
Car Hyp Despot A static library package that implements the context-based POMDP model and the HyP-DESPOT solver. It exposes planning and belief tracking functions to be called in crowd_pomdp_planner.