目前存在一些开源的控制系统方案,例如ROS、Orocos、OpenRTM、Beremiz、OpenPLC、XBotCore、ArmarX、ORCA、AMiRo-OS。 PLCopen定义了伺服和运动控制的一些标准,包括编程语言、运动控制基础函数块(FunctionBlock)、输入输出接口的参数等,并没有给出具体的实现代码细节,这个是由各个厂家提供的。
ROS
ROS的前身Zui早可以追溯到2007年斯坦福大学的博士生Eric Berger和KeenanWyrobek的工作,主要开发语言是C++。ROS的名字听起来是一个机器人操作系统,但其实它不是。ROS是一个中间件,它安装在真正的计算机操作系统之上。刚开始,ROS有点像一个大杂烩,包括一些通信用的组件、可视化和仿真组件、坐标系管理组件。很多人将ROS描述为软件框架,但笔者尽量避免使用这些抽象而又吓人的名词,因为大多数人并不熟悉机器人软件系统,它容易让本来就稀里糊涂的读者更摸不着头脑。
ROS提供的功能有:
1 节点定义和节点间的通信方式:节点是一个应用程序模板,用户将自己的算法代码添加进去,剩下的交给ROS
2 基本工具:机器人常用的函数库(运动规划、SLAM、逆运动学)、可视化工具、数据记录等机器人开发常用的功能3 设备驱动:用户拿到硬件不再需要从零开发,节省时间
ROS在工业界用的并不多,这一点也不奇怪,因为它在设计之初考虑更多的是通用性和代码重用能力,不太关心可靠性、实时性等。Zui开始百度公司在其无人驾驶车辆上使用了ROS作为平台,当时的考虑可能是快速完成无人驾驶算法的验证。随后,意识到ROS自身的一些问题,百度无人车团队尝试对其进行改造。他们Zui终放弃了转而选择重新搭建一套软件——ApolloCyber RT。
ROS变得像今天这么火完全出乎设计者的意料,他们并没想到ROS会被用在各种各样的机器人上。中国也有一些人计划设计自己的机器人软件系统,例如上海交通大学中国科学院的micROS。
Orocos