I would also like to mention Webots (even though this a very old thread) just because Webots solves most of the problems mentioned above. It is an open-source general robot simulator, but it has support for automobile simulation as well.
A few years ago, sponsored by Renault Technocentre and a few other projects, Webots has received improved automobile support.
Here are a few points related to the problems raised in the thread:
- The installation process is very straightforward (native support for Linux, Windows, and macOS + you can install it through apt, snap, or brew).
- It is under Apache license and there are no proprietary parts.
- It is deterministic.
- You can control it step-by-step and it easily runs faster than real-time.
- You can run in CI (we have been running Webots in GitHub Actions and we used to run it in Travis and AppVeyor).
- A sensor noise can be specified. Besides the basic white noise supported by all sensors, there are e.g. motion blur camera or look-up table for distance sensor.
- It has a ROS interface (ROS 1 and ROS 2).
- We have recently tested 10 VGA cameras at 30Hz and 3 HDL Lidars running faster than real-time (on a laptop).
- It doesn’t use a lot of RAM.
- A map can be imported from OpenStreetMaps.
- A traffic can be simulated through SUMO.
- It is very easy to script a pedestrian behavior (or any world changes) using Webots API (C/C++/Python/MATLAB/Java) and integrated IDE.
- Rendering is very realistic due to the extensive use of shaders and PBR rendering.
- It includes many calibrated vehicles.