Open Source Simulators for Cars
Today's transportation systems are complex entities operating within our hyperconnected society. Cars and other vehicles are internally controlled by networked computer systems. The control systems use sensors to read the surrounding environment to help inform the driver or make automated control decisions. This makes vehicles a cyber-physical system (CPS) where computer control causes physical actions and has an impact on the physical world. Then these CPS cars and vehicles are digitally connected, communicating with the external world through wireless data services. Vehicles interact with infrastructure and communicate with manufacturers' systems. Your smartphone, and other devices, can connect to vehicle systems. All this complexity can make it difficult to understand the detailed operation of a vehicle and its interaction with its local environment. In addition, the vehicle influences the wider transportation network, which in turn can affect the behaviour of all the vehicles in the super-system. Engineers and researchers rely on simulators to design these complex vehicles and the environments in which they operate. This article lists some freely available simulation tools for engineers and researchers who work with vehicle systems and the environments in which they need to operate.
From the CARLA home page: "CARLA has been developed from the ground up to support development, training, and validation of autonomous driving systems."
SUMO is Simulation of Urban MObility, an "open source, highly portable, microscopic and continuous multi-modal traffic simulation package designed to handle large networks".
From the SUMMIT introduction: "SUMMIT (Simulator for Urban Driving in Massive Mixed Traffic) is an open-source simulator with a focus on generating high-fidelity, interactive data for unregulated, dense urban traffic on complex real-world maps." and "SUMMIT adds on top of CARLA a set of capabilities to enable the simulation of sophisticated traffic behaviours on real-world maps".
From the Deepdrive home page: "Deepdrive is a simulator that allows anyone with a PC to push the state-of-the-art in self-driving" and is the "easiest way to experiment with self-driving AI". It is based on the Unreal engine and Tensorflow for AI.
The Duckietown home page states it is an ecosystem for learning robot autonomy. It originates from the Massachusetts Institute of Technology (MIT). Duckietown is a platform for delivering robotics and AI learning.
From the Webots home page: "Webots is an open source and multi-platform desktop application used to simulate robots. It provides a complete development environment to model, program and simulate robots." Webots can support vehicle simulation.
TORCS is the long-running Open Racing Car Simulator. On the SourceForge website, it says it is a highly portable multi-platform car racing simulator and is used as an ordinary car racing game, as an AI racing game and as a research platform.
On the AVstack website it states it is an "open-source, reconfigurable software solution for autonomous vehicle design, implementation, test, and analysis". It uses CARLA (see above) for the "sandbox".
Veins, the "Vehicles in Network Simulation" - It says on the Home Page that "Veins is an open source framework for running vehicular network simulations. It is based on two well-established simulators: OMNeT++, an event-based network simulator, and SUMO, a road traffic simulator". SUMO and OMNeT++ are listed in this article.
From the home page: "Plexe is a cooperative driving framework extending SUMO and Veins permitting the realistic simulation of platooning (i.e., automated car-following) systems."
The project documentation states that MetaDrive is a driving simulator with the following key features:
- Compositional: It supports generating infinite scenes with various road maps and traffic settings for the research of generalizable RL.
- Lightweight: It is easy to install and run. It can run up to 300 FPS on a standard PC.
- Realistic: Accurate physics simulation and multiple sensory inputs including Lidar, RGB images, top-down semantic map and first-person view images.
MetaDrive is a follow on from the PGDrive project and part of the MetaDriverse project for AI and autonomy research.
MATSim - Multi-Agent Transport Simulation
The MATSim home page states: "MATSim is an open-source framework for implementing large-scale agent-based transport simulations."
ROS is a widely used software system to run robots, which includes automated vehicles. The home page states: "The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source."
From the VISTA home page: "VISTA is a data-driven simulation engine for autonomous driving perception and control. The VISTA API provides an interface for transforming real-world datasets into virtual environments with dynamic agents, sensor suites, and task objectives." It is from MIT.
From the Flow home page: "A deep reinforcement learning framework for mixed autonomy traffic", developed by UC Berkeley.
OMNeT++ Discrete Event Simulator
From the OMNeT++ home page: "OMNeT++ is an extensible, modular, component-based C++ simulation library and framework, primarily for building network simulators."
OMNeT++ is used by some of the other simulators listed in this article. It is well established with Technical Articles and tutorials, for example, use of cloud computing to speed up computation.
The INET Framework is an open-source model library for the OMNeT++ simulation environment to provide protocols and agent models for researchers and students working with communication networks. For example, it could be used to configure and implement a Road Side Unit (RSU). The RSU is likely to be implemented as a node in OMNet++ with the use of the INET framework, and then linking it into Veins. The Veins FAQ mentions direct support for INET: "Veins can be configured using either the --with-inet
option to ./configure
or the corresponding OMNeT++ project features from the IDE." This could include adding a node in the simulation that then can be used to bridge to the real world, probably using one of the Omnet++ Ext interfaces. The RSU would then use the bridge as a proxy for the Internet. Though this may require Network Address Translation (NAT) if bridging to standard IP6/IP4.
Artery V2X Simulation Framework
From the home page: "Artery enables V2X simulations based on ETSI ITS-G5 protocols like GeoNetworking and BTP. Single vehicles can be equipped with multiple ITS-G5 services through Artery's middleware, which also provides common Facilities for these services. Some basic services, such as Cooperative Awareness (CAMs) and Decentralized Notification (DENMs), are already included." It builds upon the Veins simulator.
From the CityFlow project documentation: "CityFlow is a multi-agent reinforcement learning environment for large scale city traffic scenario."
Vanetza is "an open-source implementation of the ETSI C-ITS protocol suite".
GNS3 is a general data network simulator. Its home page states "software that empowers network professionals". Whilst more useful for general computer networks, it may be useful for simulating the backend systems and network infrastructure that vehicles use.
Along the lines of the similarly named GNS3, ns-3 (ns is for network simulator) is "a discrete-event network simulator for Internet systems, targeted primarily for research and educational use". You may want to look at NetSimulyzer in conjunction with ns-3.
The ONE project is an Opportunistic Network Environment simulator.
Other Links
You may find the following links useful, not necessarily open source or they are projects no longer in development.
- MATLAB - "MATLAB is a programming and numeric computing platform used by millions of engineers and scientists to analyze data, develop algorithms, and create models". There are add-ons for vehicles, the Vehicle Dynamics Blockset provides "fully assembled reference application models that simulate driving manoeuvers in a 3D environment". The Vehicle Network Toolbox "lets you communicate with in-vehicle networks using CAN, J1939, and XCP protocols".
- The Apollo website is in Chinese, it provides an open technology stack for self-driving capability.
- PTV VISSIM states on their home page that it is the "world's leading multimodal traffic simulation software".
- The Autoware Foundation is a "non-profit organization supporting open-source projects enabling self-driving mobility".
- Microsoft has Project AirSim for "aerial autonomy". They previously had the freely available and open AirSim, based on ROS.
- LG Silicon Valley Lab had developed a ROS-based simulator for AVs called SVL Simulator.
- The Virtual Terrain Project was implemented to enable the creation of 3D scenes, if has some information on vehicles.
- WaveFarer Automotive Radar Simulation Software - WaveFarer is "a high fidelity radar simulator".
- SimTraffic provides air traffic simulation data.
There are some related lists:
- List of computer simulation software on Wikipedia.
- The Wikipedia driving simulators category.
- Awesome Robotics Libraries on GitHub.
If you have any resources to add to this list or any corrections to suggest then send a comment using the form at the end of the article.
See Also
- For a full list of all the articles in Tek Eye see the full site alphabetical Index.
Author:Daniel S. Fowler Published: Updated: