orocos开源项目简介

Orocos (Open Robot Control Software ) 是一个用来构建实时控制软件的C++框架,适合开发机器人或者机器的控制软件。Orocos 实时工具包提供了一个基础框架,以快速开发可运行在实时操作系统的应用,如RTAIXenomai ,当然它也支持 Linux 系统。这个计划的目的是要开发一种通用的,免费的模块化架构,用于机器人控制。Orocos计划用四个C++库组成:实时工具集,运动学与动力学算法集,贝叶斯过滤库 及 Orocos组件库。


时实工具集RTT)不仅是一个应用程序,还提供了基础机能来支持使用C++来构建机器人应用。善长在实时,在线交互与基于组件式的应用。

Orocos组件库OCL)提供了一些现成的控制模块。如硬件接口模块,控制模块 及 模块的管理功能组件。

运动与动力学组件(KDL)是一个C++的函数库。提供了时实的动力学约束计算。

贝叶斯过滤库(BFL)提供了一种特别的应用。他是由动态贝叶斯网络理论所推导出的。这个理论可以做递归信息处理及基于贝叶斯规则的算法评估,例如卡尔曼滤波,粒子滤波算法等。

 

此外,现在orocos项目还提供一个用于仿真的Simulation Toolbox

不考虑贝叶斯过滤的情况下,主要包括KDL和RTT两个namespace,而KDL又包括kdl family和motion两个module,主要针对机器人本体模型。RTT工具链是最核心的,KDL可视作其框架中脚本文件的属性(properties and in script files of the Orocos Real-Time Toolkit framework),KDL对此提供了相应的类KDL::KDLToolkitPlugin.从编程的角度,rtt中的类提供了kdl中变量的type信息和composer,decomposer方法。

一个用于底层构建,一个用于上层编程?

OCL包含在RTT中,它提供了与硬件和应用无关的组件,不同task之间的data flow port,也提供了sensor,motor的hardware interface,应该是可以构建类似于ABB的虚拟控制器Virtual IRC5及对应的与硬件关联的实际控制器。

RTT提供了一个实时引擎作为应用程序和操作系统之间的适配层,不同的component从软件的角度看就是不同的task,相互之间存在通信。RTT除支持C++,还支持script language(优点是易于扩展和不需重新编译)。编程时涉及到task之间的进程调度。

如果组件采取分布式,则在network上用corba协议通信。

你可能感兴趣的:(开源项目)