SubT Part 4: Cloudsim

Welcome to the fourth article in our five part SubT series. Today we will be covering Cloudsim, the open source application developed at Open Robotics to run Ignition on cloud infrastructure. Don’t miss our previous posts, starting with an overview of SubT.  

Cloud-based simulation has become a popular choice for robotic testing and development as it provides on-demand, scalable access to high-performance computing. Simulations can be computationally complex, limiting the number of concurrent simulations that can be run on a desktop computer. By bringing Ignition simulations to the cloud, developers can parallelize their efforts and enhance their productivity. Our first experience with cloud simulation occurred during the DARPA Robotics Challenge (DRC), which had significant overlap with SubT. Both competitions required fast execution of multiple simulations in a controlled and equitable environment. 

Cloudsim, the software system that runs and manages simulation instances, has been developed and deployed as both a practice and competition tool for SubT. Cloud machines provide a level playing field across all teams and we setup rules to eliminate access to ground truth simulation data and other exploits. As such, practice time was open 24/7 for all registered teams; the only limitation was the number of simultaneous submissions per team. For the actual competition event, simulations were run in batches, making use of as many cloud machines as possible in order to reduce turn around time.

While Cloudsim was originally developed to host competitions, it’s designed to be suitable for any number of applications. For example, Cloudsim has recently been used in a graduate level robotics class as an educational tool. By working in a simulation environment every student can have access to a state-of-the-art robot that would otherwise be prohibitively expensive. We continue to make user experience, reliability, and feature improvements to Cloudsim. I encourage you to reach out to us if you’re interested in running your own competition, class, or application on Cloudsim. 

We have put together an extensive list of tutorials about Cloudsim, which can be found at github.com/osrf/subt/wiki/Cloudsim. You’ll find information about Cloudsim’s architecture, how to mimic Cloudsim locally, and how to download and playback logs files produced from a Cloudsim run.

Cloudsim is primarily a web service that runs and manages Ignition on remote computers. While convenient, it’s difficult to access and visualize simulation state. During the first half of SubT, competitors had to wait for an Ignition simulation instance to complete and then review the state logs. While this was approach functional, the turn around time was slow. Fortunately, the situation was dramatically improved with the addition of a web visualization utility. This web visualizer is a websocket server running alongside Ignition that transmits simulation state information to a browser. A ThreeJS based embedded web application then interprets the simulation state information and renders Ignition’s state in real-time. This approach allowed competitors to quickly access information about their practice runs, greatly improving the development process. It’s also pretty fun to launch multiple simulation instances and watch robots run around subterranean environments!

Coming up in the final SubT blog are the competition results and how to continue using SubT after the challenge has ended.

Previous
Previous

SubT Part 5: Results and the Future

Next
Next

SubT Part 3: Ignition