著录项信息
专利名称 | 一种模块动态调度的机器人控制器 |
申请号 | CN201410185298.8 | 申请日期 | 2014-05-04 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2014-07-16 | 公开/公告号 | CN103926928A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G05D1/02 | IPC分类号 | G;0;5;D;1;/;0;2查看分类表>
|
申请人 | 威海正棋机电技术有限公司 | 申请人地址 | 山东省威海市环翠区张村镇昆仑路126-7号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 威海新北洋正棋机器人股份有限公司 | 当前权利人 | 威海新北洋正棋机器人股份有限公司 |
发明人 | 姚庭;刘会英;林建林;巩相峰;黄海忠 |
代理机构 | 北京商专永信知识产权代理事务所(普通合伙) | 代理人 | 葛强;邬玥 |
摘要
本发明提供了一种模块动态调度的机器人控制器,其包括控制器母板,在控制器母板上设置有中央处理器和存储单元,该中央处理器为控制器母板上的核心硬件装置,此外,在控制器母板上还设置有外部设备硬件接口,其中,在中央处理器内设置有多个独立处理单元,每个处理单元配置地被绑定不同的软件模块以用于调取。采用本机器人控制器,能够最大化地将硬件资源空余出来,为未知的控制及交互任务提供最大化的资源,以提高系统的稳定性及鲁棒性。
1.一种模块动态调度的机器人控制器,其包括控制器母板,在控制器母板上设置有中央处理器和存储单元,该中央处理器为控制器母板上的核心硬件装置,此外,在控制器母板上还设置有外部设备硬件接口,其中,在中央处理器内设置有多个独立处理单元,每个独立处理单元与运动控制模块、通信资源管理器模块、外部设备统一管理模块、实时调度模块、可编辑逻辑模块和实用程序模块中的一个或多个绑定以用于调取程序,通信资源管理器模块配置地用于管理各模块之间的通信,以及用于获取机器人的运动轨迹,这样的轨迹是通过对机器人示教,对机器人语言程序解析获得的,其中运动轨迹包括机器人的关节空间或者笛卡儿空间的位置信息,此外,通信资源管理器模块还能获取当前机器人的真实关节位置,通信资源管理器模块在统一协调管理机器人控制器的控制器母板中的各个软件模块之间的通信中,利用了高速高带宽的实时内部总线传递交互信息,保证通信的稳定性,并在此总线上针对不同的通信对象进行了特殊的构建协议设计,通信资源管理器模块还具有初等的数据计算及转换能力,能够执行一些简单的数据处理任务,同时保证模块运行的高速性及实时性,还能够对源数据进行格式转换,使转换后的数据能够在被传递给后续模块后直接使用,其中,特殊的构建协议设计包括针对高速实时性字符类数据,采用直接传递无检验的方式;针对低速重要信息,收发双方持有握手协议;针对信息量比较大的块数据,采用数据块缓存后集中收发的方式。
2.根据权利要求1所述的模块动态调度的机器人控制器,其特征在于:独立处理单元的数量为四个,其中三个独立处理单元分别与运动控制模块、通信资源管理器模块、外部设备统一管理模块绑定,而实时调度模块、可编辑逻辑模块和实用程序模块与第四个独立处理单元集成绑定,其中,实时调度模块配置地用于动态地加载,卸载和调度机器人控制器内的各个模块,这些模块都需在实时调度模块中预先注册,实时调度模块还能够实时地查询监控当前控制器中所有硬件资源的状态,包括各个模块的运行状态,其中这些硬件资源不但包括所有独立处理单元,还包括中央处理器、存储单元以及外部设备硬件接口,实时调度模块还能配置地用于动态地释放掉被占有的,又被闲置了一段时间的资源,再将需要使用这些资源的模块调度进入使用。
3.根据权利要求2所述的模块动态调度的机器人控制器,其特征在于:独立处理单元的数量大于等于六个,其中,运动控制模块、通信资源管理器模块、外部设备统一管理模块、实时调度模块、可编辑逻辑模块和实用程序模块分别与单独的独立处理单元相绑定。
4.根据权利要求1-3中任一项所述的模块动态调度的机器人控制器,其特征在于:外部设备统一管理模块被配置用于与外部设备硬件接口相连接并进行通信,外部设备硬件接口是所述机器人控制器与外部硬件设备连接的交互通道,所有的外部设备都通过该外部设备硬件接口接入所述机器人控制器,并通过外部设备统一管理模块来集中管理信息交换,其中当使用所述外部设备时,首先将机器人控制器所拥有的外部设备注册在该外部设备统一管理模块中,同时提供与该设备相关的基本信息,外部设备统一管理模块利用这些基本信息分别为这些外部设备编写独立的底层设备驱动,然后将这些驱动封装在一起,并给外部使用者提供标准化的操作函数,实现对所有硬件的统一抽象和标准化操作。
5.根据权利要求4所述的模块动态调度的机器人控制器,其特征在于:所述外部设备是控制机器人所必有的设备,其包括数字及模拟量输入输出接口,机器人示教器。
6.根据权利要求5所述的模块动态调度的机器人控制器,其特征在于:运动控制模块以一定的周期运行,其配置地首先从通信资源管理器模块处获得机器人运动轨迹,然后要根据给定的速度指令,对运动轨迹进行采样及插补计算以获得机器人伺服层级的目标位置,再通过解算机器人运动学逆解方式获得机器人对应各个关节轴的对应位置,作为机器人伺服系统所须接受的目标控制命令,同时还需计算得到机器人在关节空间和笛卡尔空间中的速度及加速度值,以供伺服系统使用,最后将所计算结果通过通信资源管理器模块再传递给外部设备统一管理模块,从而驱动实际的物理设备,同时该模块也从通信资源管理器模块处获得当前机器人的真实关节位置,通过解算机器人运动学正解方式获得机器人位置信息,以监控机器人的运行状态。
7.根据权利要求6所述的模块动态调度的机器人控制器,其特征在于:可编辑逻辑模块是协同控制机器人运动控制任务及外部事件的核心单元,它以比运动控制低一个优先级的状态运行,同时运行周期也比运动控制任务长一个数量级,该模块配置地用于协调外部事件与控制器内的运动控制任务,外部事件信号将被路由到该可编辑逻辑模块,从而将这些事件与机器人运动控制任务按照用户程序要求同步到机器人程序中去,此外,在该模块的外围,设置多个安全环节,对各个物理输入输出量进行实时的监控。
8.根据权利要求5-7中任一项所述的模块动态调度的机器人控制器,其特征在于:应用程序模块配置地用于加载用户交互应用程序到机器人控制器中,所述应用程序是实用工艺辅助程序,这些应用程序模块只执行非实时任务,在完成指定任务后,将被卸载出机器人控制器,释放所占资源,此外,在阶段性的工作任务完成后,又可被加载到控制器,执行工艺性任务,最终驱动机器人完成指定任务。
一种模块动态调度的机器人控制器\n技术领域\n[0001] 本发明涉及一种机器人控制器,特别地涉及一种模块动态调度的机器人控制器。\n背景技术\n[0002] 机器人控制领域的通用运动控制器,正沿着从纯硬件实现运动控制算法到纯软件实现的道路发展,在每个不同的时间段内,运动控制器均具有比较鲜明的特色。在最早期,运动控制器由纯粹的模拟电路搭建而成,后来应用了运动控制专用芯片,由此实现了实时运动控制卡加上通用计算机构成的完整运动控制器,再进一步,运动控制芯片为更加通用的数字信号处理器所代替。\n[0003] 当前,得益于通用计算平台的高性能,使得纯软件实现通用运动控制成为了可能。\n但是,目前大多数的此类控制器,均由比较复杂的、耦合性比较强的庞大软件构成,甚至采用多操作系统协作的方式实现,例如中国专利CN1867895B,从而使得使用和维护变得极其困难。同时,由于这种运动控制器必须具有和外部不确定环境交互的能力,这就使控制器所接受到的信息具有相当的随机性,而系统又紧密耦合在一起,一旦发生交互出错,将导致整个系统崩溃,从而导致危险。最后,这样的耦合系统无法区分各个功能模块,为了保持系统的稳定性,运行控制必须长期占有大量的计算资源,这将严重影响系统对外部事件的响应,同时也是对硬件计算资源的一种浪费。\n发明内容\n[0004] 为了解决上述问题,改进现有的纯软件实现的运动控制器,本发明提供一种模块动态调度的机器人控制器,其包括控制器母板,在控制器母板上设置有中央处理器和存储单元,该中央处理器为控制器母板上的核心硬件装置,此外,在控制器母板上还设置有外部设备硬件接口,其中,在中央处理器内设置有多个独立处理单元,每个处理单元配置地被绑定不同的软件模块以用于调取程序。\n[0005] 优选的是,独立处理单元的数量为四个,其中三个独立处理单元分别与运动控制模块、通信资源管理器模块、外部设备统一管理模块绑定,而实时调度模块、可编辑逻辑模块和实用程序模块与第四个独立处理单元集成绑定,其中,实时调度模块5配置地用于动态地加载,卸载和调度机器人控制器内的各个模块,这些模块都需在实时调度模块中预先注册,实时调度模块还能够实时地查询监控当前控制器中所有硬件资源的状态,包括各个模块的运行状态,这些硬件资源不但包括所有独立处理单元,还包括中央处理器、存储单元以及外部设备硬件接口,实时调度模块还能配置地用于动态地释放掉被占有的,又被闲置了一段时间的资源,再将需要使用这些资源的模块调度进入使用。\n[0006] 优选的是,独立处理单元的数量大于等于六个,其中,运动控制模块、通信资源管理器模块、外部设备统一管理模块、实时调度模块、可编辑逻辑模块和实用程序模块分别与单独的独立处理单元相绑定。\n[0007] 优选的是,外部设备统一管理模块配置地用于与外部设备硬件接口相连接并进行通信,外部设备硬件接口是所述机器人控制器与外部硬件设备连接的交互通道,所有的外部设备都通过该外部设备硬件接口接入所述机器人控制器,并通过外部设备统一管理模块来集中管理信息交换。当使用所述外部设备时,首先将机器人控制器所拥有的外部设备注册在该外部设备统一管理模块中,同时提供与该设备相关的基本信息,外部设备统一管理模块利用这些基本信息分别为这些外部设备编写独立的底层设备驱动,然后将这些驱动封装在一起,并给外部使用者提供标准化的操作函数,实现对所有硬件的统一抽象和标准化操作。\n[0008] 优选的是,所述外部设备是控制机器人所必有的设备,其包括数字及模拟量输入输出接口,机器人示教器。\n[0009] 优选的是,通信资源管理器模块配置地用于管理各模块之间的通信,以及用于获取机器人的运动轨迹,这样的轨迹是通过对机器人示教,对机器人语言程序解析获得的,其中运动轨迹包括机器人的关节空间或者笛卡儿空间的位置信息,此外,通信资源管理器模块还能获取当前机器人的真实关节位置,通信资源管理器模块在统一协调管理机器人控制器的控制器母板中的各个软件模块之间的通信中,其利用了高速高带宽的实时内部总线传递交互信息,保证通信的稳定性,并在此总线上针对不同的通行对象进行了特殊的构建协议设计,通信资源管理器模块还具有初等的数据计算及转换能力,能够执行一些简单的数据处理任务,同时保证模块运行的高速性及实时性,还能够对源数据进行格式转换,使转换后的数据能够在被传递给后续模块后直接使用。\n[0010] 优选的是,特殊的构建协议设计包括针对高速实时性字符类数据,采用直接传递无检验的方式;针对低速重要信息,收发双方持有握手协议;针对信息量比较大的块数据,采用数据块缓存后集中收发的方式。\n[0011] 优选的是,运动控制模块以一定的周期运行,其配置地首先从通信资源管理器模块处获得机器人运动轨迹,然后要根据给定的速度指令,对运动轨迹进行采样及插补计算以获得机器人伺服层级的目标位置,再通过解算机器人运动学逆解方式获得机器人对应各个关节轴的对应位置,作为机器人伺服系统所须接受的目标控制命令,同时还需计算得到机器人在关节空间和笛卡尔空间中的速度及加速度值,以供伺服系统使用,最后将所计算结果通过通信资源管理器模块再传递给外部设备统一管理模块,从而驱动实际的物理设备,同时该模块也从通信资源管理器模块处获得当前机器人的真实关节位置,通过解算机器人运动学正解方式获得机器人位置信息,以监控机器人的运行状态。\n[0012] 优选的是,可编程逻辑控制模块是协同控制机器人运动控制任务及外部事件的核心单元,它以比运动控制低一个优先级,运行周期也比运动控制任务长一个数量级。该模块配置地用于协调外部事件与控制器内的运动控制任务,外部事件信号将被路由到该逻辑控制模块,从而将这些事件与机器人运动控制任务按照用户程序要求同步到机器人程序中去,此外,因此在该模块的外围,设置多个安全环节,对各个物理输入输出量进行实时的监控。\n[0013] 优选的是,应用程序模块配置地用于加载和用户直接交互的应用程序到机器人控制器中,所述应用程序是实用工艺辅助程序,这些应用程序模块作为非实时任务运行,在完成指定任务后,将被卸载出机器人控制器,释放所占资源,此外,在阶段性的工作任务完成后,又可被加载到控制器,执行工艺性任务,最终驱动机器人完成指定任务。\n[0014] 本发明的核心是将机器人系统中所包含的核心框架内容以模块的形式提取出来,同时将用户工艺性程序也设计为独立模块,以方便调度单元调度,尤其是专门设计了一种特殊用途的模块调度单元,其可以获取当前各个中央处理单元的运行状态和资源占有情况,从而实现将模块任务合理地分配给适合的处理单元,最大化地将硬件资源空余出来,为未知的交互任务提供最大化的资源,以提高系统的稳定性及鲁棒性。\n附图说明\n[0015] 图1是根据本发明中一个代表性实施例的机器人控制器的结构示意图。具体实施方式\n[0016] 其中:\n[0017] 1-控制器母板;2-中央处理器;3-外部设备硬件接口;4-处理单元;5-实时调度模块;6-运动控制模块;7-可编程逻辑模块;8-通信资源管理器模块;9-外部设备统一管理模块;10-实用程序模块;11-数字及模拟量输入输出接口;12-机器人示教器;15-存储单元。\n具体实施方式\n[0018] 下面将参考附图1对本发明中一个详细的代表性实施例进行描述。\n[0019] 图1是本发明所述的一种模块动态调度的机器人控制器的一个优选实施例,在该实施例中,机器人控制器包括控制器母板1,该控制器母板1可以利用普通工业计算机用主板建立,在控制器母板1上设置有中央处理器2和存储单元15,该中央处理器2为控制器母板\n1上的核心硬件装置,此外,在控制器母板1上还设置有外部设备硬件接口3。为了实现对机器人的控制,在中央处理器2内设置有多个独立的处理单元4,这里所谓的“独立”,就是可以在一个计算单元4上独立运行单个用户线程或程序,以保证较高的处理速度和处理能量,对本发明涉及的机器人及机器人控制器而言,对在中央处理器2上设置处理单元的数量上限是没有要求,基本的原则是在保证足够的效能情况下,尽可能多地配置这样的独立处理单元,但是对于这个数值下限是有确切要求的,一般来讲需要至少四个这样的独立处理单元\n4,在本实施例中,为了维护系统的稳定性和高效性,在中央处理器2上设置四个独立处理单元4,每个处理单元配置地被绑定不同的软件模块以用于调取程序,具体地,在其中三个独立处理单元4上分别绑定运动控制模块6、通信资源管理器模块8以及外部设备统一管理模块9,这三个模块是维持系统稳定运行所必需的模块,剩余的其他任务模块,例如实时调度模块5、可编程逻辑模块7和实用程序模块10可将被动态地调度到第四个处理单元上,在更为优选的实施例中,如果独立处理单元4的数量多于六个,则能保证每个运行模块都能与单一的独立处理单元绑定,这样可以使这些任务模块获得更多且独立的计算及硬件资源,更加丰富的硬件配置是会带来更为直接、高效的解决方案。\n[0020] 下面将具体介绍上述机器人控制器中的中央处理器2所搭载的模块以及各模块之间的工作方式,其中:\n[0021] 外部设备统一管理模块9配置地用于与外部设备硬件接口3相连接并进行通信,外部设备硬件接口3是机器人控制器与外部硬件设备连接的交互通道,所有的外部设备都通过该外部设备硬件接口3接入机器人控制器,并通过外部设备统一管理模块9来集中管理信息交换,这些外部设备包括一些控制机器人所必有的设备,例如数字及模拟量输入输出接口11,机器人示教器12等。需要指出的是,这里某些外部设备还可以通过转接的形式接入到控制器内部,其中机器人示教器就是一个典型的代表。具体而言,在使用这些外部设备时,首先将机器人控制器所连接的外部设备注册在该外部设备统一管理模块9中,同时提供与该设备相关的一些基本信息,例如:硬件固件信息,尤其重要的是硬件中断号等,利用这些信息,外部设备统一管理模块9分别为这些外部设备编写独立的底层设备驱动,然后将这些驱动封装在一起,并给外部使用者提供标准化的操作函数,实现对所有硬件的统一抽象和操作标准化。\n[0022] 通信资源管理器模块8配置地用于管理各模块之间的通信,以及用于获取机器人的运动轨迹,这样的轨迹是通过对机器人示教,对机器人语言程序解析获得的,其中包括了机器人的关节空间或者笛卡儿空间的位置信息,还能获取当前机器人的真实关节位置。此外,通信资源管理器模块8配置地用于统一协调管理机器人控制器的控制器母板1中的各个软件模块之间的通信,其利用了高速高带宽的实时内部总线传递交互信息,保证通信的稳定性。此外,在此总线上构建了的协议针对不同的通行对象进行了特殊的设计,例如对于高速实时性字符类数据,采用直接传递无检验的方式,对于低速重要信息,收发双方须有握手协议,对于信息量比较大的块数据,采用数据块缓存后集中收发的方式。通信资源管理器模块8还具有一些初等的数据计算及转换能力,能够执行一些简单的数据处理任务,同时保证模块运行的高速性及实时性,还可以对源数据进行格式转换,使转换后的数据能够在被传递给后续模块后直接使用。\n[0023] 运动控制模块6是整个机器人控制器中的核心模块之一,以一定的周期运行,其首先从通信资源管理器模块8处获得机器人运动轨迹,然后要根据给定的速度指令,对运动轨迹进行采样及插补计算以获得机器人伺服层级的目标位置,再通过解算机器人运动学逆解获得机器人对应各个关节轴的对应位置,作为机器人伺服系统所须接受的目标控制命令,同时还需计算得到机器人在关节空间和笛卡尔空间中的速度及加速度值,以供伺服系统使用,最后将所计算结果通过通信资源管理器模块8再传递给外部设备统一管理模块9,从而驱动实际的物理设备,如:机器人伺服电机,机器人减速器等,同时该模块也从通信资源管理器模块8处获得当前机器人的真实关节位置,通过解算机器人运动学正解方式获得机器人位置信息,以监控机器人的运行状态。\n[0024] 可编程逻辑控制模块7是协同控制机器人运动控制任务及外部事件的核心单元,它以比运动控制低一个优先级,运行周期也比运动控制任务长一个数量级。该模块的主要功是能协调外部事件与控制器内的运动控制任务。获得的外部事件信号将被路由到该逻辑控制模块7,从而将这些事件与机器人运动控制任务按照用户程序要求同步到机器人程序中去。所编写的这样的程序,一旦被下载到控制器中,就将接管整个机器人物理系统的动作逻辑,如果出现不当将造成严重后果,因此在该软件模块的外围,设置多个安全环节,对各个物理输入输出量进行实时的监控。\n[0025] 通过上述对机器人控制器的描述不难发现,整个机器人控制器的核心部分是靠软件或其搭载的模块来实现的,机器人控制器中的各种核心功能被以模块的形式抽象出来后以模块的形式实现在控制器中,同时为了使机器人的功能更为优化,设计了多种用户工艺性实用性程序并集成实现为实用程序模块10,以供使用和调度。\n[0026] 实时调度模块5配置地用于动态地加载,卸载和调度机器人控制器内的各个基础架构模块及应用程序模块。这些基础架构模块和应用程序模块都需在实时调度模块5中预先注册,实时调度模块5还能够实时地查询监控当前控制器中所有硬件资源的状态,包括各个模块的运行状态,其中这些硬件资源不但包括所有独立处理单元,还包括中央处理器2、存储单元15,外部设备硬件接口3及其他硬件。实时调度模块5不但能够将基础框架内的三个关键模块加载到三个独立处理单元上之外,还能动态地释放掉一些被占有的,又被闲置了一段时间的资源,再将需要使用这些资源的模块调度进入使用,一些高优先级,使用资源周期长的模块任务,还可以被绑定至一些特殊资源,尤其是计算资源,从而保证其任务运行的稳定性。\n[0027] 实用程序模块10配置地用于加载和用户直接交互的应用程序到机器人控制器中,这些应用程序可以是实用工艺辅助程序,并以模块形式体现,例如是机器人焊接工艺模块、机器人喷涂工艺模块、机器人装配模块等。由于这些应用程序模块一般只在机器人控制器运行前期工作,因此在完成指定任务后,可被卸载出机器人控制器,释放所占资源。在阶段性的工作任务完成后,又可被加载如控制器,执行工艺性任务,最终驱动机器人完成指定任务。在一个机器人控制器框架内,可以衍生出多种具有行业性导向的特殊机器人控制器,节约机器人控制器硬件开发成本,调高开发柔性及效率。\n[0028] 本发明的一个代表性实施例参照附图得到了详细的描述。这些详细的描述仅仅给本领域技术人员更进一步的相信内容,以用于实施本发明的优选方面,并且不会对本发明的范围进行限制。仅有权利要求用于确定本发明的保护范围。因此,在前述详细描述中的特征和步骤的结合不是必要的用于在最宽广的范围内实施本发明,并且可替换地仅对本发明的特别详细描述的代表性实施例给出教导。此外,为了获得本发明的附加有用实施例,在说明书中给出教导的各种不同的特征可通过多种方式结合,然而这些方式没有特别地被例举出来。
法律信息
- 2016-08-17
- 2015-07-22
专利申请权的转移
登记生效日: 2015.06.30
申请人由威海正棋机电技术有限公司变更为威海新北洋正棋机器人股份有限公司
地址由264209 山东省威海市高区沈阳路108号科技公寓201室变更为264203 山东省威海市环翠区张村镇昆仑路126-7号
- 2014-08-13
实质审查的生效
IPC(主分类): G05D 1/02
专利申请号: 201410185298.8
申请日: 2014.05.04
- 2014-07-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-09-19
|
2012-05-23
| | |
2
| |
2012-07-18
|
2012-02-10
| | |
3
| | 暂无 |
2010-01-15
| | |
4
| |
2008-10-15
|
2008-04-24
| | |
5
| |
2010-09-15
|
2010-04-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |