一种模块化嵌入式多足机器人运动控制器的制作方法

文档序号:6282052阅读:321来源:国知局
专利名称:一种模块化嵌入式多足机器人运动控制器的制作方法
技术领域
本发明属于机器人技术领域,具体涉及一种模块化嵌入式多足机器人运动控制器。
背景技术
机器人控制器是机器人系统中最重要、最关键的部分。机器人控制器性能的好坏直接决定着机器人的运动性能。现有的机器人系统多是专用系统,只能适应于特定结构的机器人,一旦机器人的结构改变,其控制器也得重新设计,从而限制了机器人根据任务和工作环境的要求进行变更或扩展的能力。且现有的控制器不具有容错功能,机器人的某些关节一旦遭到破坏整个机器人系统立刻陷入瘫痪状态。
目前存在的各种开放式结构机器人控制器虽然做到了可移植性,可扩展性等,但大多采用工业控制计算机作为控制器,硬件结构无法改变,且成本高,体积大,无法做到嵌入式控制。

发明内容
本发明的目的在于克服已有控制器的不足之处,提供一种模块化嵌入式多足机器人运动控制器,该控制器软件系统灵活、稳定,是一种具有可重构、可容错的嵌入式控制器。
本发明提供的模块化嵌入式多足机器人运动控制器,其特征在于该控制器包括PC模块、机身控制模块和分别位于各条足上的足单元控制模块;其中,PC模块包括操作软件模块和第一通信模块,操作软件模块用于实现环境识别、路径规划和步态规划功能,并将计算出的数据传送给第一通信模块;第一通信模块具有处理机身总线数据的功能,将机身控制模块与PC模块通过USB总线连接;机身控制模块包括第二PC通信模块、状态显示模块和机身控制器;第二PC通信模块用于与第一通信模块通信,并将数据传送给机身控制器;机身控制器采用ARM处理器对数据进行处理后再将处理后的数据转发到各足单元控制器,机身控制器的状态通过状态显示模块予以显示;足单元控制模块包括足单元控制器、髋关节控制模块、膝关节控制模块、踝关节控制模块和传感器模块;足单元控制器协调控制一条足内的三个关节的协调运动,并向机身控制模块反馈整条足的运动状态;髋关节控制模块、膝关节控制模块、踝关节控制模块结构相同,均由关节控制器和足关节电机构成;关节控制器根据机身控制模块通过CAN_Bus传送的运动数据,采用单片机控制足关节电机进行预定的运动,通过足关节传动链将运动传递到关节机构本体,各关节的协调运动形成机器人的整体运动,再通过传感器模块将关节的运动状态进行反馈,实现闭环控制。
本发明所提出的模块化嵌入式机器人控制器采用分层式控制方式,由数据运算层、以ARM微处理器为控制核心的机身控制层和单片机为控制核心的关节控制层组成。数据运算层建立在PC机上,计算机器人的步态数据。机身控制层以ARM处理器为控制核心,可存储机器人的步态数据,实现机器人的离线运动,也拥有与PC机的无缝联接接口,由PC机对机器人实现在线调试,关节控制层则由单片机为控制核心。具体而言,本发明具有以下技术效果(1)本发明所提出的机器人控制器具有可重构能力,当机器人根据任务和工作环境的要求进行变更或扩展时,只须将关节控制器加入到机身控制器的CAN总线网络或从网络中删除即可。
(2)当机器人在运行中遭到破坏,机身控制器会自动识别并关闭该关节,直接跳出对该关节的操作,拥有一定的容错能力。
(3)机身控制层扩展关节,增添其他设备可实现即插即用,自动识别ID号。
(4)本发明可以用于机器人的控制,也可以用于其他运动系统的控制。


图1为模块化可重构机器人各逻辑层与物理实现的对应关系图;图2为本发明模块化嵌入式多足机器人运动控制器的结构示意图;图3操作软件模块流程图;图4为机身控制器硬件结构框图;图5为机身控制器软件系统框图;图6为关节控制器硬件框图;图7为关节控制器软件三层抽象图8为关节控制器软件流程图;图9为ID识别流程图。
具体实施例方式
下面结合附图和实例对本发明提出的一种模块化嵌入式机器人控制器作进一步详细的说明。
本发明中的模块化嵌入式机器人能够实现类似于普通步行机器人的步行运动,而且能够通过向机器人平台添加新的模块为机器人提供扩展功能。因此该控制器需要实现两方面的功能(1)控制机器人完成诸如步行、转向等基本动作;(2)支持模块化的功能,即为机器人的扩展模块提供标准、便利的接口,实现“即插即用”功能。为了实现模块化的功能,需要具体实现(1)将控制系统划分为不同的逻辑层级,(2)在每一逻辑层中实现一类功能,(3)在逻辑层之间使用标准接口进行交互。
在实现了具有模块化特征的控制系统后,通过分析机器人运动控制策略,可以将机器人的运动控制进行细分,并将其按照功能的不同划分入控制系统逻辑层中。如图1所示,具体逻辑层包括场景规划层,单机规划层,单元模块层和设备实现层。场景规划层通过识别机器人所处环境,对机器人进行路径规划,并对机器人进行正逆运动学计算。场景规划层主要对机器人所在环境进行识别,并根据环境决定机器人的下一步动作,在物理实现上为步态生成器。单机规划层主要对多个关节控制器进行协调控制,并对机身总线和关节总线进行操作,对应于物理实现上的机身控制器。单元模块层主要负责各个模块间的通信,处理CAN_Bus数据,在物理实现上为多个关节控制器。设备实现层负责执行命令,具体为驱动执行器电动机按指定运动参数运动,在物理实现上为电机控制电路、执行机构和传感器。
如图2所示,根据上述思路,本发明中的模块化嵌入式多足机器人运动控制器包括PC模块1、机身控制模块2和若干个足单元控制模块3。PC模块1用于识别机器人所处环境,根据高级算法确定机器人的下一步动作并将数据传送给机身控制模块2。机身控制模块2用于将该数据处理成为具体运动数据,再将数据通过机身总线分发到各足单元控制模块3。
一、PC模块1PC模块1位于PC机内,它对应于分层控制逻辑层中的场景规划层,其软件模块包括操作软件模块11和第一通信模块12。操作软件模块11用于实现环境识别、路径规划和步态规划功能。如图3所示,操作软件模块11的工作流程为(1)获取工作任务进行任务规划,生成子任务序列。并获取子任务优先级及子任务信息。
(2)根据各子任务的优先级调处优先级最高的子任务作为当前任务。
(3)调入子任务信息,进行处理生成运动指令序列,将该序列传送给第一通信模块12后,继续调用下一个子任务,直到完成所有的运动任务。
(4)当所有任务完成后根据机身控制模块的反馈数据总结决策经验,并更新决策库。
操作软件模块11将计算出的数据传送给第一通信模块12,第一通信模块12具有处理机身总线数据的功能,将机身控制模块2与PC模块1连接起来。机身控制模块2与PC模块1通过USB总线连接。
二、机身控制模块2机身控制模块2对应于分层控制逻辑层中的单机规划层。机身控制模块2的功能如下1)在离线运动时进行生成步态,并协调控制多个关节控制器完成运动。2)在与PC联调时存储转发PC上层软件生成的运动数据,并协调各个关节控制器的运行。
机身控制模块2由第二PC通信模块21、状态显示模块22和机身控制器23组成。第二PC通信模块21与PC模块1中的第一通信模块12通信,并将数据传送给机身控制器23。机身控制器23对数据进行处理后再将处理后的数据转发到各足单元控制器。机身控制器23的状态通过状态显示模块22显示出来方便调试以及错误诊断。
如图4所示,机身控制器23包括USB_Bus控制模块231、传感器模块接口232、串口通信模块233、ARM微处理器234和CAN_Bus驱动模块235。机身控制器23采用ARM微处理器234作为控制核心。与工业控制计算机相比,ARM嵌入式微处理器具有体积小,重量轻,成本低及可靠性高的优点。在ARM的外围加上USB_Bus控制模块231用于接受来自PC模块1通过USB_Bus传送的运动指令数据,并将机器人运动状态返回给PC模块1。传感器模块接口232用于为足单元模块3中的传感器3提供接口。串口通信模块233传送和发送通过串口来自PC模块1的数据,主要在调试过程中使用。CAN_Bus驱动模块235连接到CAN_Bus网络,为ARM微处理器234中的CAN控制器提供与物理总线之间的物理接口。
由于机身控制层的数据流量大,任务繁多,存在多层中断嵌套,对实时性要求比较高,因此再采用传统的前后台系统的软件结构显然不能满足要求。如图5所示,ARM微处理器234通过移植嵌入式操作系统μC/OS-II可以使机身控制程序能够利用多线程、动态内存分配等高级功能完成更加复杂的任务。ARM微处理器234的程序结构可分成两层操作系统和应用程序。操作系统是在ARM启动后首先执行的背景程序,应用程序则是在操作系统之上的各个任务,操作系统根据各个任务的要求,进行资源管理,消息管理,任务调度及异常处理等工作。μC/OS-II是一个源码公开,可移植,可固化,可裁剪及占先式的实时多任务操作系统,绝大部分源码使用ANSIC写的,与微处理器硬件相关的部分是使用汇编语言编写。因此操作系统包括μC/OS-II内核,μC/OS-II任务设置,μC/OS-II系统移植代码。μC/OS-II内核提供所有的系统服务。内核将应用程序与底层硬件有机的结合成一个实时系统。与处理器相关的代码(μC/OS-II移植代码)可以看作是内核与硬件之间的中间层,它实现了同一内核应用于不同硬件体系中。μC/OS-II任务设置则是与应用程序相关的对操作系统的设置。
应用程序由多个任务组成,每个任务都有唯一的优先级,实时操作系统根据各个任务的优先级,动态的切换各个任务,保证对实时性的要求。USB_Bus数据处理任务优先级最高,用于接收来自PC机的运动数据,以及返回机器人控制器的各种状态信息。CAN_Bus数据处理任务处理机身总线上的数据,向关节控制层的多个控制器分发运动指令,并实时监控各关节控制器的状态,当出现有关节控制器出错,或有新ID注册时,让出错分析处理任务或ID识别记录任务处于就绪态,并进行任务调度。系统指令处理任务负责将PC发送的数据进行分析,处理,并分发。当要进行离线运行时离线数据运行任务读取存储器中运动数据进行机器人的运行控制。串口数据处理任务及显示模块任务都是为了方便调试而设置的,其优先级最低,只在无其他任务时运行。
三、足单元控制模块3步行机器人通常由多只足构成,每只足上设有一个足单元控制模块。足单元控制模块对应于分层控制逻辑层中的单元模块层和设备实现层。本发明中的足单元控制模块3包括足单元控制器30、髋关节控制模块3 1、膝关节控制模块32、踝关节控制模块33和传感器模块34。髋关节控制模块31位于髋关节,膝关节控制模块32位于膝关节,踝关节模块位于踝关节。
足单元控制器30负责协调控制一条足内的三个关节的协调运动,并向机身控制模块2反馈整条足的运动状态。由于每条足在结构和功能上都相同,因此各条足上的足单元控制器也相同。为了充分利用关节控制器的剩余能力,在不增加硬件成本的基础上实现了足单元控制器的功能,可以将每条足中的髋关节控制器31的功能进行扩充,使其具备足单元控制器30的功能。
髋关节控制模块31、膝关节控制模块32和踝关节控制模块33的硬件结构也相同,均由关节控制器和足关节电机构成。
关节控制器根据机身控制模块2通过CAN_Bus传送的运动数据控制足关节电机进行预定的运动,通过足关节传动链将运动传递到关节机构本体,多个关节的协调运动则形成机器人的整体运动,通过传感器模块34将关节的运动状态进行反馈,以达到闭环控制的效果。
关节控制器是模块化思想中的关键。如图6所示,关节控制器由三个模块组成,分别是单片机控制模块61,电机控制和驱动模块62以及CAN通信模块63。单片机控制模块61由单片机最小系统611、电源监控模块612和显示模块613构成。其中,单片机最小系统611保证单片机能完成最简单的功能,电源监控模块612使单片机在外接电源发生波动时仍能正常运行,显示模块613实时显示关节控制器的运行状态,方便调试。
电机控制和驱动模块62根据CAN通信模块63接受的运动数据控制驱动电机运行,它包括电机控制器621和电机驱动器622。电机控制器621采用专用的运动控制处理器,对于关节控制器的主CPU单片机来说,要控制电动机的运动状态,只需要设定电机的位置、速度以及加速度等相关参数,减轻了CPU的负担,简化了控制方法,提高了控制效率。电机控制部分产生控制电机的运动的信号,而电机的实际运动需要有驱动部分来实现。本发明中电机驱动器622采用集成化的功率驱动电路来实现,由电机控制器输出PWM波来控制电机驱动器,达到功率放大的作用。电机驱动器622直接与直流电机623相连完成运动要求。由于在电机控制器621和电机驱动器623之间存在着较大的电磁干扰,采用光耦624进行隔离。
CAN通信模块63负责关节控制器与机身控制器的通信,接受机身控制模块2发送的运动数据,并实时返回关节的运动状态。CAN是到目前为止唯一拥有国际标准的现场总线,具有抗干扰强、传输速度快和传输距离长等特点,只需通过对报文的标示符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,因此我们采用CAN总线作为机身总线。使用CAN总线能够很好地支持模块化的结构。CAN总线通信模块也分为CAN总线控制器631和CAN总线驱动器632两部分,CAN总线控制器631以一块可编程芯片上的逻辑电路的组合来实现网络层次结构中数据链路层和物理层的功能。CAN总线驱动器632提供了物理总线与CAN总线控制器631之间的接口。CAN总线控制器631和CAN总线驱动器632均采用专用芯片来实现。由单片机对其进行编程实现控制。
关节控制器6通过单片机最小系统611的软件编程实现其控制,其体系结构包括三层抽象软件即硬件相关层(底层)、自定义函数层(中间层)和应用层(最高层),如图7所示。其中自定义函数层和应用层也可称为与硬件无关层。层与层之间是单向调用的关系,即只能由上一层调用下一层函数,但是下一层却不能调用上一层的函数。而且调用只能在相邻层之间,而不能跨层调用,比如应用层不能跳过自定义函数层去调用硬件相关层中的函数。使用这样的三层结构设计的好处是当硬件系统改变以后,只需要更改硬件相关层,而中间层和应用层不需要进行多大的改变就可以适应新的硬件平台。这样的体系结构提高了软件的开放性和可移植性。
由于关节控制层的任务数较少,且关节控制层中微控制器的存储容量有限,因此关节控制层的整体流程采用前后台方式,应用程序是一个无限循环。循环中调用相应的函数完成相应的操作,中断服务程序处理异步事件。事件相关性很强的关键操作靠中断服务程序保证。其具体流程如图8所示。当系统上电复位后,由系统初始化程序初始化单片机,电机控制器,CAN总线控制器及设置中断方式和优先级。然后由ID识别模块识别出该关节的ID值并向机身控制器进行枚举。进入主循环,查询CAN总线事件发生标志,电机到位标志,电机堵转标志,以及CAN网络出错标志。当有标志位置位时则调用相应的函数进行处理。当有中断到来时,在中断处理程序中并不马上进行处理,只是改变该标志位,在主循环中再进行处理。这样可以防止进入中断时间过长,相应其他中断的速度变慢而使得系统整体中断响应时间变长。
ID自识别是机器人实现可重构和可容错的关键点。当机器人需重构时,只要将要添加或更改的关节ID用拨码开关的方式改变,并复位具体的关节控制器,无须对机身控制器操作即可实现ID自动更新,实现即插即用。ID自识别的流程如图9所示,当关节控制器复位后,首先读出拨码开关所指示的ID号,控制器先以0x00为ID号,向机身控制器发出枚举信号,等待机身控制其响应后,将读出的ID号发送给机身控制器,机身控制器首先判断该ID号是否已经存在,若不存在,则在其关节ID链表中添加该ID号,并向关节控制器发送确认祯,关节控制器受到确认祯后将该ID号设为CAN总线ID号进行通讯。若该ID号在机身控制器中已存在,则通知关节控制器ID出错,并报警。
权利要求
1.一种模块化嵌入式多足机器人运动控制器,其特征在于该控制器包括PC模块(1)、机身控制模块(2)和分别位于各条足上的足单元控制模块(3);其中,PC模块(1)包括操作软件模块(11)和第一通信模块(12),操作软件模块(11)用于实现环境识别、路径规划和步态规划功能,并将计算出的数据传送给第一通信模块(12);第一通信模块(12)具有处理机身总线数据的功能,将机身控制模块(2)与PC模块(1)通过USB总线连接;机身控制模块(2)包括第二PC通信模块(21)、状态显示模块(22)和机身控制器(23);第二PC通信模块(21)用于与第一通信模块(12)通信,并将数据传送给机身控制器(23);机身控制器(23)采用ARM处理器对数据进行处理后再将处理后的数据转发到各足单元控制器,机身控制器(23)的状态通过状态显示模块(22)予以显示;足单元控制模块(3)包括足单元控制器(30)、髋关节控制模块(31)、膝关节控制模块(32)、踝关节控制模块(33)和传感器模块(34);足单元控制器(30)用于协调控制一条足内的三个关节的协调运动,并向机身控制模块(2)反馈整条足的运动状态;髋关节控制模块(31)、膝关节控制模块(32)、踝关节控制模块(33)结构相同,均由关节控制器和足关节电机构成;关节控制器根据机身控制模块(2)通过CAN_Bus传送的运动数据,采用单片机控制足关节电机进行预定的运动,通过足关节传动链将运动传递到关节机构本体,各关节的协调运动形成机器人的整体运动,再通过传感器模块(34)将关节的运动状态进行反馈,实现闭环控制。
2.根据权利要求1所述的模块化嵌入式多足机器人运动控制器,其特征在于所述足单元控制器(30)和髋关节控制模块(31)合为一体。
3.根据权利要求1或2所述的模块化嵌入式多足机器人运动控制器,其特征在于机身控制器23包括USB_Bus控制模块(231)、传感器模块接口(232)、串口通信模块(233)、ARM微处理器(234)和CAN_Bus驱动模块(235);其中,ARM微处理器(234)采用移植嵌入式操作系统μC/OS-H,根据各个任务的要求,进行资源管理,消息管理,任务调度及异常处理工作,并初始化和处理来自USB_Bus控制模块(231)、传感器模块接口(232)、串口通信模块(233)CAN_Bus驱动模块(235)的数据;USB_Bus控制模块(231)用于接受来自PC模块(1)通过USB_Bus传送的运动指令数据,并将机器人运动状态返回给PC模块;传感器模块接口(232)用于为足单元模块(3)中的传感器模块(34)提供接口;串口通信模块(233)传送在调试过程中来自PC模块(1)的数据;CAN_Bus驱动模块(235)连接到CAN_Bus网络,为ARM微处理器(234)中的CAN控制器提供与物理总线之间的物理接口。
4.根据权利要求3所述的模块化嵌入式多足机器人运动控制器,其特征在于所述关节控制器由单片机控制模块(61),电机控制和驱动模块(62)以及CAN通信模块(63)构成;其中,单片机控制模块(61)用于控制单片机正常工作,接受CAN通信模块(63)的总线数据,处理后的数据传入电机控制驱动模块(62)控制和驱动电机按指令运动;并接受来自电机驱动模块(62)的电机运行状态数据,分析后生成关节运动状态数据通过CAN通信模块(63)发送到总线上;电机控制和驱动模块(62)接受单片机控制模块(61)的运动指令数据,控制和驱动电机,并将电机运行状态返回到单片机控制模块(61);CAN通信模块(63)接受CAN总线上的数据且传送给单片机控制模块(61),将单片机控制模块(61)返回的关节状态发送到CAN总线上。
5.根据权利要求4所述的模块化嵌入式多足机器人运动控制器,其特征在于单片机控制模块(61)由单片机最小系统(611)、电源监控模块(612)和显示模块(613)构成;其中,单片机最小系统(611)用于单片机完成最基本的的功能,电源监控模块(612)使单片机在外接电源发生波动时仍能正常运行,显示模块(613)实时显示关节控制器的运行状态。
6.根据权利要求4所述的模块化嵌入式多足机器人运动控制器,其特征在于电机控制和驱动模块(62)包括电机控制器(621)和电机驱动器(622),电机控制器(621)用于控制电机工作,出PWM波来控制电机驱动器(622)工作,达到功率放大的作用,电机驱动器(622)与直流电机(623)相连完成运动要求,电机控制器(621)和电机驱动器(623)之间采用光耦(624)进行隔离。
7.根据权利要求4所述的模块化嵌入式多足机器人运动控制器,其特征在于CAN总线通信模块(63)由CAN总线控制器(631)和CAN总线驱动器(632)构成,CAN总线控制器(631)实现网络层次结构中数据链路层和物理层的功能,CAN总线驱动器(632)用于提供物理总线与CAN总线控制器(631)之间的接口。
全文摘要
本发明公开了一种模块化嵌入式多足机器人运动控制器,包括PC模块、机身控制模块和分别位于各条足上的足单元控制模块。PC模块用于识别机器人所处环境,确定机器人的下一步动作并将数据传送给机身控制模块。机身控制模块用于将该数据处理成为具体运动数据,再将数据通过机身总线分发到各足单元控制模块。本发明采用分层式控制方式,由数据运算层、机身控制层和关节控制层组成。数据运算层建立在PC机上,根据机器人的正逆运动学、动力学计算出机器人的步态数据。机身控制层以ARM处理器为控制核心。机身控制层有较大的存储空间,可存储机器人的步态数据,实现机器人的离线运动,也拥有与PC机的无缝联接接口,由PC机对机器人实现在线调试。
文档编号G05B19/418GK101020313SQ200710051629
公开日2007年8月22日 申请日期2007年3月8日 优先权日2007年3月8日
发明者陈学东, 蒲华燕, 孙翊, 贾文川, 曾理湛, 何学明, 赵军 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1