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.
翻译:机器人应用需要整合多种模态,涵盖感知、真实机器人控制以及可能的仿真环境控制。尽管ROS 2等先进的机器人软件解决方案提供了大多数所需功能,但算法、数据流与控制循环之间的灵活同步仍可能十分繁琐。o80是一个面向机器人的多功能C++框架,它为实时关键系统提供了共享内存模型和命令框架,使专家用户能够搭建复杂的机器人系统,并为科研人员生成Python绑定。o80的独特之处在于其进程间的灵活同步机制,包括传统的阻塞式命令以及新颖的"突发模式",后者允许用户代码控制底层进程控制循环的执行。这一特性使其特别适用于混合真实环境与仿真环境的系统搭建。