基于ROS和OROCOS的机器人控制系统技术方案

技术编号:15754863 阅读:137 留言:0更新日期:2017-07-05 01:12
本发明专利技术涉及一种基于ROS和OROCOS的机器人控制系统,包括:总控模块,用于根据预先配置的通信协议接口接收控制端输入的控制指令,选择调用机器人运动规划的控制指令触发函数;通过所述控制指令触发函数通过第一接口调用所述算法模块中相应的机器人运动规划的响应函数;算法模块,用于通过响应所述调用指令,从预存的机器人运动规划中选择相应的响应函数,计算控制指令数据,通过第二接口将控制指令数据发送至通信管理模块;总控模块,用于根据机器人的选择控制指令数据输出至所述控制主站。本发明专利技术的技术,可以构成一个完整的机器人控制器软件,降低机器人控制系统开发成本,提高控制效果。

【技术实现步骤摘要】
基于ROS和OROCOS的机器人控制系统
本专利技术涉及机器人控制
,特别是涉及一种基于ROS和OROCOS的机器人控制系统。
技术介绍
RobotOperatingSystem(ROS)是开源的机器人操作系统,可以为机器人开发者提供一个标准化的、开源的编程框架。但是ROS目前不支持实时线程操作。OpenRobotControlSoftware(OROCOS)也是一种开源的机器人控制软件编程框架,它的特点是支持实时的线程操作,但是它的开放性,通用性没有ROS好。因此,目前在一些应用方案中,在ROS上采用OROCOS,但现有技术方案在搭建的架构上,不能构成一个完整的机器人控制器软件,无法充分利用ROS和OROCOS的特性,系统开发成本高,控制效果差。
技术实现思路
基于此,有必要针对上述技术问题,提供一种基于ROS和OROCOS的机器人控制系统,降低系统开发成本,提高控制效果。一种基于ROS和OROCOS的机器人控制系统,包括:总控模块、算法模块和通信管理模块;所述总控模块,用于根据预先配置的通信协议接口接收控制端输入的控制指令;根据所述控制指令选择调用机器人运动规划的控制指令触发函数;通过所述控制指令触发函数通过第一接口调用所述算法模块中相应的机器人运动规划的响应函数;所述算法模块,用于通过响应所述调用指令,从预存的机器人运动规划中选择相应的响应函数;根据选择的响应函数计算控制指令数据;通过第二接口将控制指令数据发送至所述通信管理模块;所述总控模块,用于根据机器人的控制主站的指令缓存区的控制指令数据数量,选择控制指令数据输出至所述控制主站;其中,每个控制指令触发函数对应算法模块中的一种机器人运动规划的响应函数对应;所述第一接口、第二接口是基于ROS上创建OROCOS的实时输入/输出接口,第一接口用于总控模块与算法模块进行通信连接,第二接口用于算法模块与通信管理模块进行通信连接。上述基于ROS和OROCOS的机器人控制系统,利用OROCOS的实时输入/输出接口,实现总控模块、算法模块和通信管理模块之间的通信,总控模块通过预先配置的通信协议接口接收控制指令,通过控制指令触发函数,调用算法模块的机器人运动规划的响应函数,计算控制指令数据,并通过通信管理模块发送至机器人,实现控制指令的接收分发、解析和传输,可以构成一个完整的机器人控制器软件,降低机器人控制系统开发成本,提高控制效果。附图说明图1是本专利技术实施例的基于ROS和OROCOS的机器人控制系统结构示意图;图2是一种机器人控制系统的硬件结构模型;图3是基于ROS和OROCOS的机器人控制系统搭建的软件架构图;图4是控制器状态机的状态变化示意图;图5是设备状态机的状态变化示意图。具体实施方式下面结合附图阐述本专利技术的基于ROS和OROCOS的机器人控制系统的实施例。参考图1所示,图1是本专利技术实施例的基于ROS和OROCOS的机器人控制系统结构示意图,该系统包括:总控模块、算法模块和通信管理模块;所述总控模块,用于根据预先配置的通信协议接口接收控制端输入的控制指令;根据所述控制指令选择调用机器人运动规划的控制指令触发函数;通过所述控制指令触发函数通过第一接口调用所述算法模块中相应的机器人运动规划的响应函数;可以通过ICE(TheInternetCommunicationsEngine,互联网通信引擎)开发的通信协议建立与控制端的通信连接,通过调用所述通信协议的动态异步远程过程调用方法输入的控制指令。所述算法模块,用于通过响应所述调用指令,从预存的机器人运动规划中选择相应的响应函数;根据选择的响应函数计算控制指令数据;通过第二接口将指令缓存区中的控制指令数据发送至所述通信管理模块。所述通信管理模块,用于根据机器人的控制主站的指令缓存区的控制指令数据数量,选择控制指令数据输出至所述控制主站。其中,每个控制指令触发函数对应算法模块中的一种机器人运动规划的响应函数对应;所述第一接口、第二接口是基于ROS上创建OROCOS的实时输入/输出接口,第一接口用于总控模块与算法模块进行通信连接,第二接口用于算法模块与通信管理模块进行通信连接。上述基于ROS和OROCOS的机器人控制系统,利用OROCOS的实时输入/输出接口,实现总控模块、算法模块和通信管理模块之间的通信,总控模块通过预先配置的通信协议接口接收控制指令,通过控制指令触发函数,调用算法模块的机器人运动规划的响应函数,计算控制指令数据,并通过通信管理模块发送至机器人,实现控制指令的接收分发、解析和传输,可以构成一个完整的机器人控制器软件,降低机器人控制系统开发成本,提高控制效果。在一个实施例中,所述算法模块,还可以用于根据选择的响应函数计算控制指令数据,并保持在指令缓存区;通过第二接口将指令缓存区中的控制指令数据发送至所述通信管理模块;所述通信管理模块,还可以用于将所述控制指令数据保存到电机指令缓冲队列中;根据机器人的控制主站的指令缓存区的控制指令数据数量,从电机指令缓冲队列中选择控制指令数据输出至所述控制主站。如上所述,通过指令数据的缓存,便于控制指令数据的转发处理,增强控制效果。在一个实施例中,所述总控模块,还用于通过回调函数方式从所述第一接口接收算法模块传入的反馈信息,通过所述第三接口接收通信管理模块传入的反馈信息,并对所述反馈信息进行处理;所述算法模块,还用于利用所述第二接口接收通信管理模块传入的机器人的电机运行数据和诊断数据;并通过所述第一接口将所述电机运行数据和诊断数据上报至总控模块;其中,所述反馈信息包括事件报告信息、机器人电机运行的诊断数据;所述第三接口是基于ROS上创建OROCOS的实时输入/输出接口,用于总控模块与通信管理模块进行通信连接。在本实施例中,所述总控模块可以获取算法模块和通信管理模块的相关信息并进行处理。(1)总控模块可以通过回调函数方式,从所述第一接口接收算法模块传入的反馈信息;其中,所述反馈信息包括事件报告信息、机器人电机运行的诊断数据;包括生成错误的时间戳,事件级别等信息,并将事件信息,这些信息可以发送给控制端的人机交互界面显示;(2)总控模块可以通过所述第三接口接收通信管理模块传入的反馈信息;其中,所述第三接口是基于ROS上创建OROCOS的实时输入/输出接口,用于与通信管理模块进行通信连接;所述反馈信息包括事件报告信息、机器人电机运行的诊断数据;例如,位置、速度及加速度是否超限等等。在一个实施例中,所述总控模块,用于通过ICE开发的通信协议建立与控制端的通信连接,通过调用所述通信协议的动态异步远程过程调用方法输入的控制指令;在接收控制端输入的控制指令前,将控制端发起的控制指令与所述算法模块中相应的机器人运动规划的响应函数进行绑定;在接收控制端输入的控制指令后,获取所述控制指令的第一个参数,根据所述参数判断当前调用的运动规划类型,根据所述运动规划类型选择调用相应的运动规划的控制指令触发函数,调用算法模块中相应的响应函数计算控制指令参数。在一个实施例中,在系统进行初始化时:所述总控模块,还用于检测历史运行所记录的日志报告,若日志报告正常,通过事件报告接口接收相关信息并进行处理;若日志报告异常,则退出;所述算法模块,还用于检测历史运行所记录的日志报告,若日志报告正常,将本文档来自技高网...
基于ROS和OROCOS的机器人控制系统

【技术保护点】
一种基于ROS和OROCOS的机器人控制系统,其特征在于,包括:总控模块、算法模块和通信管理模块;所述总控模块,用于根据预先配置的通信协议接口接收控制端输入的控制指令;根据所述控制指令选择调用机器人运动规划的控制指令触发函数;通过所述控制指令触发函数通过第一接口调用所述算法模块中相应的机器人运动规划的响应函数;所述算法模块,用于通过响应所述调用指令,从预存的机器人运动规划中选择相应的响应函数;根据选择的响应函数计算控制指令数据;通过第二接口将控制指令数据发送至所述通信管理模块;所述通信管理模块,用于根据机器人的控制主站的指令缓存区的控制指令数据数量,选择控制指令数据输出至所述控制主站;其中,每个控制指令触发函数对应算法模块中的一种机器人运动规划的响应函数对应;所述第一接口、第二接口是基于ROS上创建OROCOS的实时输入/输出接口,第一接口用于总控模块与算法模块进行通信连接,第二接口用于算法模块与通信管理模块进行通信连接。

【技术特征摘要】
1.一种基于ROS和OROCOS的机器人控制系统,其特征在于,包括:总控模块、算法模块和通信管理模块;所述总控模块,用于根据预先配置的通信协议接口接收控制端输入的控制指令;根据所述控制指令选择调用机器人运动规划的控制指令触发函数;通过所述控制指令触发函数通过第一接口调用所述算法模块中相应的机器人运动规划的响应函数;所述算法模块,用于通过响应所述调用指令,从预存的机器人运动规划中选择相应的响应函数;根据选择的响应函数计算控制指令数据;通过第二接口将控制指令数据发送至所述通信管理模块;所述通信管理模块,用于根据机器人的控制主站的指令缓存区的控制指令数据数量,选择控制指令数据输出至所述控制主站;其中,每个控制指令触发函数对应算法模块中的一种机器人运动规划的响应函数对应;所述第一接口、第二接口是基于ROS上创建OROCOS的实时输入/输出接口,第一接口用于总控模块与算法模块进行通信连接,第二接口用于算法模块与通信管理模块进行通信连接。2.根据权利要求1所述的基于ROS和OROCOS的机器人控制系统,其特征在于,所述算法模块,还用于根据选择的响应函数计算控制指令数据,并保持在指令缓存区;通过第二接口将指令缓存区中的控制指令数据发送至所述通信管理模块;所述通信管理模块,还用于将所述控制指令数据保存到电机指令缓冲队列中;根据机器人的控制主站的指令缓存区的控制指令数据数量,从电机指令缓冲队列中选择控制指令数据输出至所述控制主站。3.根据权利要求1所述的基于ROS和OROCOS的机器人控制系统,其特征在于,所述总控模块,还用于通过回调函数方式从所述第一接口接收算法模块传入的反馈信息,通过所述第三接口接收通信管理模块传入的反馈信息,并对所述反馈信息进行处理;所述算法模块,还用于利用所述第二接口接收通信管理模块传入的机器人的电机运行数据和诊断数据;并通过所述第一接口将所述电机运行数据和诊断数据上报至总控模块;其中,所述反馈信息包括事件报告信息、机器人电机运行的诊断数据、机器人的关节和末端的位置、速度和加速度;所述第三接口是基于ROS上创建OROCOS的实时输入/输出接口,用于总控模块与通信管理模块进行通信连接。4.根据权利要求1所述的基于ROS和OROCOS的机器人控制系统,其特征在于,所述总控模块,用于通过ICE开发的通信协议建立与控制端的通信连接,通过调用所述通信协议的动态异步远程过程调用方法输入的控制指令;在接收控制端输入的控制指令前,将控制端发起的控制指令与所述算法模块中相应的机器人运动规划的响应函数进行绑定;在接收控制端输入的控制指令后,获取所述控制指令的第一个参数,根据所述参数判断当前调用的运动规划类型,根据所述运动规划类型选择调用相应的运动规划的控制指令触发函数,调用算法模块中相应的响应函数计算控制指令参数。5.根据权利要求1所述的基于ROS和OROCOS的机器人控制系统,其特征在于,在初始化时:所述总控模块,还用于检测历史运行所记录的日志报告,若日志报告正常,通过事件报告接口接收相关信息并进行处理;若日志报告异常,则退出;所述算法模块,还用于检测历史运行所记录的日志报告,若日志报告正常,将相关信息通过事件报告接口传递给总控模块;若日志报告异常,则退出;以及检测电机运行数据的通道,若通道存在电机运行数据,将所述电机运行数据通过事件报告接口传递给总控模块;若日志报告异常,则退出;所述通信管理模块,还用于检测历史运行所记录的日志报告,若日志报告正常,将相关信息通过事件报告接口传递给总控模块;若日志报告异常,则退出。6.根据权利要求1至5任一项所述的基于ROS和OROCOS的机器人控制系统,其特征在于,所述运动规划包括:点到点运动,直线运动,圆弧运动,手动示教,回到原点、暂停、恢复或急停。7.根据权利要求6所述的基于ROS和OROCOS的机器人控制系统,其特征在于,所述总控模块,还用于根据接收到的控制指令的类型,向控制器状态机写入状态事件;根据所述状态事件控制所述算法模块和通信管理模块的运行状态;所述算法模块,还用于根据用户设定的频率,实时读取控制器状态机的状态信息;根据所述状态信息选择的响应函数,利用所述响应函数计算控制指令数据,并控制指令数据保持在指令缓存区的指令队列中;根据指令队列中的控制指令数据的数量,依据队列的顺序将控制指令数据发送至通信管理模块,并更新控制器状态机的状态;所述通信管理模块,还用于根据用户设定的频率读取设备状态机的状态信息,根据所述状态信息执行控制指令数据的发送操作;读取电机状态,计算机械臂关节以及末端运动状态信息,并反馈至算法模块与总控模块;检测控制主站的诊...

【专利技术属性】
技术研发人员:阳方平
申请(专利权)人:广州视源电子科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1