Synchronizing Machine Learning Algorithms, Realtime Robotic Control and Simulated Environment with o80
Robotic applications require the integration of various modalities, encompassing perception, control of real robots and possibly the control of simulated environments. While the state-of-the-art robotic software solutions such as ROS 2 provide most of the required features, flexible synchronization between algorithms, data streams and control loops can be tedious. o80 is a versatile C++ framework for robotics which provides a shared memory model and a command framework for real-time critical systems. It enables expert users to set up complex robotic systems and generate Python bindings for scientists. o80's unique feature is its flexible synchronization between processes, including the traditional blocking commands and the novel “bursting mode”, which allows user code to control the execution of the lower process control loop. This makes it particularly useful for setups that mix real and simulated environments.
READ FULL TEXT