During my PhD, I’ve developed a tool for automating robotics and agent-based modeling research: SIERRA (reSearch pIpEline for Reproducibility, Reusability, and Automation), which has saved me a TON of time, and I thought I would share it in case others found it useful. It is basically a mix-and-match plugin framework which allows you to run experiments you’ve defined targeting a platform of your choice (Gazebo, ROS, etc.), in an execution environment of your choice (real robots, SLURM, etc.), and it handles all the non-research aspects of research (like figuring out how to get your code to run on an HPC cluster) to allow you to focus on the fun bits–the science!
It automates the following common robotics research pipeline:
Generating experiments from arbitrary user specifications. Users can vary any aspect of a template .launch file and SIERRA will use the variations to generate experiments investigating parameters of interest (e.g., # robots). Users can specify variations directly on the command line or programmatically in python code.
Run the experiments on many different execution environments, including SLURM, PBS, and ad-hoc clusters.
Process the experimental outputs to generate use defined statistics.
Generate camera ready graphs and videos from processed experimental outputs.
The tool is by no means finished, and I’m posting this here in the hope that some people will try it out and I can get feedback on how to improve it and make it more useful to others in the community.