A fork of MATSIM's DVRP module [1] for rebalancing of self-driving vehicles in an Autonomous Mobility on Demand (AMoD) framework. Implements the rebalancing algorithms presented in [2] and [3]. The framework was used for simulations in [4].
JRE (for MATSim), MATLAB (for the rebalancing algorithms in [2] and [3]), a MATLAB LP solver. The current LP solver is IBM ILOG CPLEX: a different LP solver (e.g. Gurobi or MATLAB's linprog
) can be used by modifying the file run_optimization.m
in MATLAB_utils
.
Prepare a configuration file to specify the problem parameters. Sample configuration files are provided in src/main/resources/configs
- the relevant sample problem inputs are also provided in this repository, but you may have to specify absolute paths to them.
Specify the location of the configuration file in src/main/java/RunAMoDExample.java
.
Configure the location of the road map in the MATLAB optimizer by editing the file MATLAB_utils/runOptimization.m
(line ~52). A sample road map of New York City is provided in LoadRoadGraphNYOSM.m
. Note that the capacity of the roads in LoadRoadGraphNYOSM
do not necessarily match the capacity of the roads in the MATSim configuration file (which are reduced to account for exogenous traffic). To ensure that MATLAB and MATSim employ the same road capacities, edit line ~89 in LoadRoadGraphNYOSM.m
.
Ensure that 1. the road maps used by MATLAB and by MATSim are identical (use networkwriter.py to generate a MATSim map from the MATLAB map - see the User Guide for further information) and 2. the path of the optimization output in MATLAB is correctly specified in the configuration file.
Run src/main/java/RunAMoDExample.java
to start the simulation.
The User Guide in the root folder provides a more detailed introduction to the matsim-AMoD package.
[1] M. Maciejewski, J. Bischoff, S. Hörl, K. Nagel (2017) Towards a testbed for dynamic vehicle routing algorithms; submitted to PAAMS-TAAPT.
[2] Zhang R, Pavone M (2016) Control of robotic Mobility-on-Demand systems: A queueing-theoretical perspective. Int. Journal of Robotics Research 35(1-3):186--203
[3] Zhang R*, Rossi F*, Pavone M (2016) Routing Autonomous Vehicles in congested transportation networks: structural properties and coordination algorithms. In Robotics: Science and Systems. Ann Arbor, MI, July, 2016.
[4] Rossi F, Zhang R, Hindy Y, Pavone M (2017) Routing Autonomous Vehicles in congested transportation networks: structural properties and coordination algorithms. Submitted to Autonomous Robots.