0. OROCOS 简介

OROCOS,全称 Open Robot Control Software,即机器人开源控制软件;如张新宇老师在ROS史话36篇 | 20. ROS之KDL中所说:“OROCOS另外一个名称为 Open Realtime Control Services(开源实时控制服务),这个名称可能更能表述该软件库的本意和目标。OROCOS主要侧重于机器人底层控制器的设计,包括用于计算串联机械臂运动学数值解的KDL、贝叶斯滤波、实时控制等功能,当然还包括其它一些工具。”

和 ROS 类似,OROCOS 也是综合的机器人开源框架,只不过 ROS 侧重于上层的规划,而 OROCOS 侧重底层系统级的实时控制和通讯

关于 OROCOS 项目,参考官网和 Peter Soetens 的博士论文 A Software Framework for Real-Time and Distributed Robot and MachineControl


1. OROCOS 架构

orocos 软件架构
  • KDL( Kinematics and Dynamics Library)
The Kinematics and Dynamics Library (KDL) develops an application independent framework for modelling and computation of kinematic chains, such as robots, biomechanical human models, computer-animated figures, machine tools, etc.
It provides class libraries for geometrical objects (point, frame, line,... ), kinematic chains of various families (serial, humanoid, parallel, mobile,... ), and their motion specification and interpolation.

KDL 集成在 ROS 中了,作为 MoveIt! 默认的运动学求解器,能迭代求解逆运动学的数值解。

  • BFL(Bayesian Filtering Library)
The Bayesian Filtering Library (BFL) provides an application independent framework for inference in Dynamic Bayesian Networks, i.e., recursive information processing and estimation algorithms based on Bayes' rule, such as (Extended) Kalman Filters, Particle Filters (or Sequential Monte Carlo methods), etc. These algorithms can, for example, be run on top of the Realtime Services, or be used for estimation in Kinematics & Dynamics applications.

BFL(贝叶斯过滤集)由动态贝叶斯网络理论推导而来,可以做递归信息处理及基于贝叶斯规则的算法评估,例如卡尔曼滤波,粒子滤波算法等。

  • Orocos Toolchain
The Orocos Toolchain is the primary tool to create real-time robotics applications using modular, run-time configurable software components.

Toolchain 提供以下功能:

  • 跨平台;
  • 为其他机器人框架提供接口,如 ROS, Rock, Yarp
  • Code generators to transfer user-defined data between distributed components
  • Run-time & real-time configurable and scriptable components
  • Logging and reporting of system events and communicated data.

Toolchain 包含以下模块:

  • AutoProj:下载、编译必要库的工具(可选);
  • RTT:Real-Time Toolkit, 实时工具集;
  • OCL:Orocos Component Library, Orocos 组件库,某一特定的功能就是一个组件;
  • OroGen and TypeGen, tools to generate ready-to-compile-and-run code from existing headers or component description files

2. 安装使用(占坑,敬请期待。。。)

参考: