一种基于局域网的模块化机器人控制系统的制作方法

文档序号:12369523阅读:558来源:国知局
一种基于局域网的模块化机器人控制系统的制作方法与工艺

本发明属于自动控制和机器人领域,具体涉及一种可在基于ROS(Robot Operating System,机器人操作系统)计算机上使用的模块化机器人控制系统。



背景技术:

机器人是一个集环境感知、动态决策与规划、行为控制与执行等多功能于一体的综合机电系统,能自动或半自动执行任务。目前机器人的功能需求不断扩大,单一的控制器控制整个机器人的运行变得越加困难,多个模块协同化控制机器人能大大提高机器人的控制性能。目前大部分的控制系统的无线网络模块着重于多机器人控制而非单个机器人的各个功能之间的使用,所涉及使用的ROS系统,较多的是无线网络通信,控制多机器人运动。现有大部分单机器人模块化的控制系统一般建立在一种有线的总线通信形式上,例如CAN总线,导致模块只能安装在机器人本体上;其次,如果想要对机器人远程控制,各个模块数据必须通过一个无线模块,并且将各个模块数据统一发送,大大降低了各个模块数据的使用效率和实时性。



技术实现要素:

本发明的目的是提供一种基于局域网的模块化机器人控制系统,实现将任意数量的基于ROS操作系统的控制器通过有线或者无线局域网方式建立成一种整体的机器人控制系统,在该系统下,还可以形成多种局域网结构的模块化控制。本发明可用于轮式机器人、足式机器人等常见多功能机器人。

本发明所述基于局域网的模块化机器人控制系统包括主控模块、扩展功能模块、局域网和远程控制模块。在机器人本体上安装有路由器,建立其局域网,实现局域网内数据的传输。主控模块、各扩展功能模块以及远程控制模块通过局域网进行数据传输。

主控模块安装于机器人本体,通过有线网线的方式和路由器相连。安装在机器人本体上的扩展功能模块,通过有线网线的方式和路由器相连。不安装在机器人本体上的扩展功能模块,通过无线网络连接到局域网内。远程控制模块过无线网络连接到局域网。

所述远程控制模块通过局域网发送主控指令给主控模块,发送控制指令给扩展功能模块;所述扩展功能模块解析控制指令并进行相应的扩展功能运算,产生实时的主控指令发送给主控模块,或产生实时的控制指令发送给其他扩展功能模块;所述主控模块解析主控指令,将当前无法执行的指令舍弃并且返回错误代码,将可执行主控指令的内容划分相应的指令优先级,在同时收到不同可执行的主控指令下,只执行优先级最高的指令,从而舍弃其他指令。

相对于现有技术,本发明的优点和积极效果在于:

(1)本发明基于局域网的思想,改变了较为简单地机器人系统,适合现有复杂功能的机器人系统。基于局域网的基本构架下,可以任意改变机器人的功能模块和传感器模块,而不破坏原有的机器人系统,大大提高了系统的通用性和模块可替换性。

(2)本发明基于局域网的思想,在各个模块使用了有线网络的连接方式,大大提高了各个模块之间的通信效率和稳定性。由于使用的路由器,保证了远程控制端无线网络的稳定性和较为远距离通信的能力。

(3)本发明基于局域网的思想,可以根据机器人作业的需求建立不同的模块之间的结构构架,适用于更多种类的机器人,对多功能机器人的各个模块之间可以更好地协调作业。

(4)本发明所使用的底层都是现有的开源的ROS系统,移植性好。

(5)对于不同的机器人,只要其系统按照本发明所述框架去设计,即使具体实现不同,只需创建相应的配置,即可采用同一客户端去控制,因此本发明为实现机器人控制系统提供了一种解决方案。

附图说明

图1是本发明基于局域网的模块化机器人控制系统的硬件连接的一个实例图;

图2是本发明基于局域网的模块化机器人控制系统的软件功能模块通信示意图;

图3是本发明实施例所提供的各模块的控制流程示意图;

图4是本发明实施例所提供的各模块的分层主从结构示意图;

图5是本发明实施例所提供的各模块的星型结构示意图;

图6是本发明实施例所提供的各模块的复合分层结构示意图;

图7是本发明所实施例提供的具体应用在六足机器人的主程序框架示意图。

具体实施方式

下面结合附图和实施例来说明本发明技术方案的实现。

本发明实施例实现的一种基于局域网的模块化机器人控制系统中,所有的控制板使用的操作系统均为Ubuntu12.04版本,系统是基于Hydro的ROS版本,所用的集成开发环境是QT4。所述的基于局域网的模块化机器人控制系统包括主控模块、扩展功能模块、局域网和远程控制模块。设扩展功能模块有N个,N为正整数。

如图1所示,在机器人本体上安装有路由器,用于建立起局域网,实现局域网内数据的传输。如图2所示,主控模块、N个扩展功能模块和远程控制模块通过局域网进行通信。

主控模块位于机器人本体,主控模块的电路板通过有线网线与路由器连接。主控模块运行ROS系统内核和主控制程序。扩展功能模块位于机器人本体时,扩展功能模块的电路板通过有线网线与路由器连接。路由器通过无线网络与远程控制模块通信。位于机器人本体的扩展功能模块,可以实现的是一种具体的任务,比如是导航定位模块,手势识别模块,人机交互功能等。扩展功能模块不安装在机器人本地时,通过无线网络连接到局域网内。扩展功能模块可以是一种实现某种功能的算法或者运算,例如是机器人稳定裕度运算模块、大数据的云端运算、最优化控制模块等,机器人工作可以根据功能需求进行不同扩展功能模块的使用,实现机器人的控制运动。

在主控模块中,运行ROS内核并且局域网的网关为主控模块,保证整个局域网的ROS系统和通信机制正常运行。主控模块解析主控指令,协调各个扩展功能模块以最终决定机器人的实际运动,控制电机或者舵机进行运动,完成作业。主控模块主要有命令分析模块、主程序执行模块和状态发布模块。命令分析模块只针对局域网内主控指令进行解析,判断是否可以执行,并且返回执行结果,命令分析模块在主程序中为中断式的接受指令。主程序执行模块主要根据主控指令进行机器人的运动学正反解的运算,机器人机身整体运动的控制规划,发送电机或舵机的控制指令,判断机器人状态等基础功能。状态发布模块主要将机器人的各个状态通过广播的方式发送出去,各个状态包括机器人的数据参数和机器人的错误状态数据,在局域网内共享机器人状态数据。机器人本体通过所载传感器,获取机器人本体与环境信息。主程序执行模块和状态发布模块为实时运行。机器人可搭载摄像头、麦克风、气压计、高度计、温度计等采集环境信息,搭载GPS、IMU(惯性导航单元)、加速度计等获取机器人本体各个状态信息。主控模块解析主控指令,将当前无法执行的指令舍弃并且返回错误代码,将可执行主控指令的内容划分相应的指令优先级,在同时收到不同可执行的主控指令下,只执行优先级最高的指令,从而舍弃其他指令。

扩展功能模块可以实现机器人的扩展性功能要求,可以通过有线的方式直接安装在机器人本体上,也可以通过无线的方式远程控制运算,对于多功能机器人,它可以是导航定位功能、人机交互功能、最优化算法功能、自适应算法等功能。它主要有状态接收模块,命令分析模块,主程序执行模块,命令发布模块,以及状态发布模块。状态接收模块主要接收机器人本体和其他扩展功能模块运算的状态,以便于本扩展功能模块的运算;命令分析模块只要针对局域网内对本模块控制指令进行解析,并且分析是否可以执行;主程序执行模块主要根据指令对机器人进行扩展的功能运算,并且产生实时的主控指令或者其他扩展模块的控制指令;命令发布模块主要将产生的实时产生的控制指令通过局域网发送出去;状态发布模块主要将机器人的功能运算结果和状态通过广播的方式发送出去。

远程控制模块主要有状态接收模块,模拟仿真模块,主程序执行模块,命令发布模块,人机交互模块。状态接收模块主要接收机器人本体和各个扩展功能模块的状态,包括它们的错误状态信息,以便于显示;模拟仿真模块通过接收到的数据,可以通过ROS的RVIZ仿真模块进行真实仿真或者虚拟仿真,可以在远程端对机器人的3D状态有较为清晰的显示;主程序执行模块主要对人机交互模块接收的一些命令和显示进行处理,产生实时的主控指令或者扩展功能的控制指令;人机交互模块主要接收人的行为指令,较为简单地方式就是普通的按键控制界面;命令发布模块主要将产生的实时的主控指令或者控制指令发送出去。

如图3所示,主控模块、扩展功能模块和远程控制模块所涉及的命令分析模块、状态接收模块、主程序执行模块、命令发布模块、状态发布模块中的流程。其中主控模块、扩展功能模块和远程控制模块中的命令分析模块均为单独的中断程序,针对所有的指令进行分析解析最终得出一个可执行的指令。扩展功能模块和远程控制模块中的状态接收模块均为单独的中断程序,针对所有的接受状态存入全局变量中,准备给主程序执行模块使用。扩展功能模块中的主程序执行模块、命令发布模块和状态发布模块为顺序执行,如图3中的最右侧图,在主程序执行模块运行计算出结果后,针对其他模块发布命令和状态。主控模块的主程序执行模块和状态发布模块为顺序执行,流程为图3中的最右侧图中对应模块。远程控制模块的主程序执行模块和命令发布模块为顺序执行,流程为图3中的最右侧图中对应模块。

局域网可以采用主控模块和路由器两种方式建立。在使用主控模块建立局域网的模块的方式下,可以使用主控模块的无线网卡建立热点和主控模块本身的有线网口建立局域网。此方式建立的局域网由于受到主控模块功率和接口等影响只能有一个扩展功能模块使用有线连接,并且不需要增加局域网模块建立的设备,简单可行,所以此方式适合小型并且功能简单的机器人。对于使用无线网卡的方式,需要将有线连接的局域网建立成无线网卡形成的无线网的子网,并且需要将网络的搜索IP地址包含两个网络的IP地址,具体实施方案需要将有线网的DNS设立成无线网卡的IP地址,并且主控板上无线网卡和有线网络的IP必须不相同。在使用路由器建立局域网模块的方式下,可以将主控模块连接到路由上建立局域网,由于路由的功率和接口的能力,在这种方式下远程控制端的无线连接更加稳定,可以接入的功能模块可以更多,因此这个方法更加适合大型并且复杂的机器人。局域网内的各个模块具有唯一的IP地址,在通信过程中利用IP地址可以进行指定的指令发送。在具体实施时候,需要将路由的DNS设立为主控运行的ROS的IP地址。

本发明基于局域网功能模块的特点,可以根据实际需求形成多种物理拓扑结构。例如采用分层主从结构、星型结构、复合分层结构等。

如图4所示,为分层主从结构,根据功能需求,可以从上层的远程控制模块经过分层的各个扩展功能模块最终控制主控模块。在此结构中,最上层的扩展功能模块通过无线连接到远程控制模块,最下层的扩展功能模块通过有线网络与主控模块连接,相邻上下层的扩展功能模块通过有线网线连接。各个扩展功能模块功能明确,每层的扩展功能模块可以通过下层的扩展功能模块的状态,进行错误识别,形成多层错误监测机制,可以有效地提高执行的成功率。由于机器人本体的各个扩展功能模块是有线连接到局域网,所以传输容错率底,适用于较为重要的机器人安全作业中。

如图5所示,为星型结构,各个扩展功能模块和主控模块都分别通过无线网络连接到远程控制模块,可以同时使用多个扩展功能模块同时运行,大大提高了运行效率,能够更好地协调各个模块的工作,实现了效益最大化的运作,并且一个扩展功能模块发生故障不会影响整个机器人的工作。在这种模式下,机器人的复杂算法可以使用多个芯片同时运算,可以大大提高运算效率,这种结构适用于高效率需求或者算法复杂的机器人中。

如图6所示,为复合分层结构,扩展功能模块采用分层结构,最上层的扩展功能模块通过无线连接到远程控制模块,最下层的扩展功能模块通过有线网络与主控模块连接,位于机器人本体的相邻上下层的扩展功能模块通过有线网线连接,同时,对于要求高效运行的扩展功能模块,通过无线网络连接到远程控制模块。这种结构既保留了分层结构的稳定性,又能够协同各个模块实现较为高效地运行,在复合分层结构中,各个扩展功能模块的算法编写较为复杂,但是通信模块不需要改变,错误检查较为严谨,这个结构更加适合具有较为复杂功能并且具有需要高效性的机器人。

本发明所述的基于局域网的模块化机器人控制系统中,由于各个扩展功能模块和主控模块都是有线或者无线的方式直接接入局域网,所以可以实现机器人系统模块化的组合和拆分,只需要对程序逻辑进行修改就可以在不改变原有机器人的系统下加入或者消除一些功能模块,大大提高的机器人的功能模块的可替代性。由于各个模块的状态数据也是广播的方式发送到局域网内,所以提高了信息的共享性,保证各个模块都可以相互获取需求的信息,而不增加过多的通信协议。

本发明所述的基于局域网的模块化机器人控制系统中,主控模块使用的操作系统为Ubuntu下的ROS操作系统,由于ROS的开源性和可移植性好,下层通信使用的是网口通信,通信层使用的ROS的服务与消息功能,可以实现各种所需要的通信需求,无需再进行通信底层的设计和编程。通信方式既可以是广播形式的数据流,比如发布机器人的各个关节的状态,不需要在特定的模块之间再进行特定的通信,共用一个广播消息,大大提高了信息的使用效率;也可以是一对一之间的特定通信,比如需要机器人的特定运算功能,保证了数据的安全性。在ROS系统下可以使用QT等页面化编程环境,远程控制模块可以根据需求设计,完全可以定制所需要的功能。

将本发明控制系统应用于六足机器人中,按照本发明所述的系统框架,建立了复合分层结构作为六足机器人的物理拓扑结构。以六足机器人为实例的系统中,主要有三块单板机构成,分别为主控模块,导航定位模块和远程控制模块。主控模块和导航定位模块安装于机器人上,导航定位模块和主控模块通过有线进行连接,远程控制端通过无线和局域网相连。导航定位模块还通过无线连接如局域网。整个控制系统的框架如图7所示。

以六足机器人为实例的系统中,主控模块的状态消息定义为MainState,其内容包括主控制状态参数,步态参数,手臂控制参数,关节角和机身参数。主控模块的被控制指令定义为MainControl,其内容包括控制指令,步态指令,手臂指令。导航定位模块的状态消息定义为SlamState,其内容包括六足机器人的定位坐标和周围的地图映射;导航定位的被控制指令定义为SlamControl,其内容包括自主导航定位的目标位置和手臂操作的参数。

以六足机器人为实例的系统中,主控模块通过得到的MainControl指令和机器人的惯性导航传感器,规划机器人的步态和手臂操作功能,进行机器人的反解运算,得出机器人的各个关节角度,发送控制舵机的指令使得机器人运动,之后发送机器人各个关节状态和机器人本体的位姿状态。导航定位模块通过机器人本体的双目视觉和惯性导航传感器,建立局部地图,通过定位和路劲规划计算出机身运动的离散化数据,发送给主控模块,通过主控模块的状态和主控模块进行交互。远程控制端,通过接受到MainState和SlamState实时监控,并且可以根据远程控制需求进行混合控制。

对于不同的机器人,只要其系统按照本发明所述框架去设计,即使具体实现不同,只需创建相应的配置,即可采用同一客户端去控制,因此本发明为实现机器人控制系统提供了一种解决方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1