This was a project I worked on while doing a 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 used is overkill for the need of simulating a floor cleaner. The 3D simulator would suck up all resources available on a server, which allows at most two simulations can 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 Robot Operating System (ROS). The simulation environment and its objects are configured through YAML. A plugin system is provided for users to define custom behaviors. 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.