I worked on this project while doing an internship at Avidbots. Avidbots is a company that produces fully autonomous commercial floor cleaners. To ensure systems are working correctly, it was constantly tested in simulated environments. The 3D simulator that was too computationally expensive for the need to simulate a floor cleaner. The 3D simulator would suck up all resources available on a server, which allows at most two simulations can be executed at the same time. The project is to implement a 2D simulator for faster simulation.
The simulator is built using the Box2D physics engine which is commonly used in games such as Angry Bird. It is integrated directly with the Robot Operating System (ROS). The simulation environment and its objects are configured through YAML. A plugin system is provided for users to define custom behaviours. Default plugins are also provided which include simulating laser, bumper sensors, and various drive systems.
The project is open-source, and it can be found here.