What is ScenarIO

ScenarIO is a C++ abstraction layer to interact with simulated and real robots.

It mainly provides the following C++ interfaces:

These interfaces can be implemented to operate on different scenarios, including robots operating on either simulated worlds or in real-time.

ScenarIO currently fully implements Gazebo ScenarIO (APIs), a simulated back-end that interacts with Ignition Gazebo. The result allows stepping the simulator programmatically, ensuring a fully reproducible behaviour. It relates closely to other projects like pybullet and mujoco-py.

A real-time backend that interacts with the YARP middleware is under development.

ScenarIO can be used either from C++ (Core APIs, Gazebo APIs) or from Python (core, gazebo).

If you’re interested to know the reasons why we started developing ScenarIO and why we selected Ignition Gazebo for our simulations, visit the Motivations section.