一种工业机器人控制系统的软件架构的制作方法

未命名 07-15 阅读:141 评论:0


1.本发明涉及工业机器人领域,具体涉及一种工业机器人控制系统的软件架构。


背景技术:

2.如图1所示,工业机器人(也称机械臂)是一种自动化设备,具备仿人手臂的特点,广泛应用于自动化生产线,是智能制造,柔性制造的核心执行单元。控制系统软件是工业机器人的核心模块,是机器人所有功能的运算核心、决策核心,其软件质量直接影响工业机器人的基本功能和智能化程度。
3.工业机器人的使用场景和功能需求也日趋复杂,为了解决需求和功能的复杂度,降低控制系统软件开发难度,减短控制系统软件的更新迭代周期,“软件架构”作为软件工程中的“顶层设计”角色起着重要的作用。


技术实现要素:

4.本发明的目的在于提供一种工业机器人控制系统的软件架构,其具备组件独立的特点,易于扩充功能组件,同时能够有效保证控制系统的实时性。
5.为实现上述目的,本发明采用的技术方案是:
6.一种工业机器人控制系统的软件架构,其包括上层组件和下层组件,上层组件和下层组件连接,下层组件单向向上层组件发出请求,上层组件响应下层组件的请求;
7.所述上层组件包括通讯接口类组件、数据类组件、状态类组件、算法类组件,下层组件包括行为类组件;所述行为类组件包括监控示教器指令组件、用户程序执行组件、轨迹规划与插补组件、数据自动上传组件、报警处理组件和用户程序解析组件;
8.所述监控示教器指令组件连接通信接口类组件、数据类型组件和状态类组件,该监控示教器指令组件实现的功能为:在控制系统运行期间,持续监控示教器下发的键值信息和文件,并根据键值信息,执行对应的行为;
9.所述用户程序解析组件连接数据类组件和状态类组件,该用户程序解析组件实现的功能是:解析示教器下发的文本格式的用户程序,并转换成自定义的“用户指令”序列和“用户数据”序列,并存放到组件中,供“用户程序执行组件”逐条执行;
10.所述用户程序执行组件连接数据类组件、状态类组件和算法类组件,该用户程序执行组件实现的功能是:逐条从“用户程序解析组件”中取出“用户指令”和对应本指令的“用户数据”,并与数据类组件、状态类组件、算法类组件协作,执行其对应的行为;
11.所述轨迹规划和插补组件连接通信接口类组件、数据类组件和算法类组件,该轨迹规划和插补组件实现的功能是:根据接收的机器人用户指令,响应其中的运动指令;调用算法类组件,再根据机器人当前的运行状态,对运动指令进行轨迹规划和细分插补计算;与通信接口类组件协作,将细分插补得到的机械臂的各个关节值下发给电机伺服驱动系统;
12.所述数据自动上传组件连接通信接口类组件、数据类组件和状态类组件,该数据自动上传组件实现的功能是:周期性地将一部分数据上传到示教器;
13.报警处理组件连接通信接口类组件、状态类组件,该报警处理组件实现的功能是:当控制系统内出现异常,报警处理组件查询到,并且做出相应的行为。
14.所述算法类组件包括机器人算法库组件,该机器人算法库组件实现的功能是:用于实现机械臂执行各种运动所涉及的算法。
15.所述通信接口类组件包括io组件、网络通信组件和ethercat总线组件;
16.所述io组件的功能为:负责接收和输出数字信号、模拟信号,该io组件支持了系统与外部传感器、外部执行器交互的功能;
17.所述网络通信组件的功能为:基于ethernet和tcp/ip通信协议,将控制系统设为网络服务器或者网络客户端,负责建立、保持与示教器或外部网络设备的通信;
18.所述ethercat总线组件的功能为:负责建立、保持与电机伺服驱动器的通信。
19.所述数据类组件包括机器人配置参数组件、用户程序数据组件和过程数据组件;
20.所述机器人配置参数组件的功能为:该组件维护着机器人的所有类型的配置参数;
21.所述用户程序数据组件的功能为:维护由“用户程序解析组件”解析得到的“用户指令”序列和“用户数据”序列;
22.所述过程数据组件的功能为:维护着由“轨迹规划和插补组件”计算得到的关节值,将要输出的数字信号值,模拟信号值。
23.所述状态类组件包括机器人状态组件,该机器人状态组件的功能为:维护机器人在运行中可能会被改变的状态数据;对控制系统定义了多个控制系统的静态状态和动态状态:坐标系设置状态、用户程序设置状态、伺服数据设置状态、插补执行状态、用户程序执行状态;行为类组件在运行过程中需要共享的状态数据存放在该状态类组件中。
24.所述软件架构中设有三个实时线程任务,分别为线程1任务,线程2任务,线程3任务;三个线程任务的优先级从高到低分别设置为1、2、3,且线程的执行顺序为:线程1任务->线程2任务->线程3任务;
25.所述线程1任务中分配的组件:用户程序执行组件、轨迹规划与插补组件、报警处理组件;
26.线程2任务中分配的组件:监控示教器指令组件、用户程序解析组件;
27.线程3任务中分配的组件:数据自动上传组件。
28.所述线程1任务、线程2任务、线程3任务的总平均运行时间之和为周期时间段pt的4/5。
29.采用上述方案后,本发明将软件架构分成上层组件和下层组件两个层级,下层组件单向向上层组件发出请求,上层组件响应下层组件的请求。该架构具备“组件独立”的特点,易于对各个功能组件进行修改,易于扩充功能组件,有利于可以缩短控制系统产品开发周期。
30.另外,为保证控制系统运行的实时性,本发明在架构中建立三个实时线程任务,即优先级由高到低的线程1、线程2和线程3,其中,线程1任务中分配用户程序执行组件、轨迹规划与插补组件和报警处理组件,线程2任务分配监控示教器指令组件、用户程序解析组件,线程3任务分配数据自动上传组件。
附图说明
31.图1为工业机器人整体的结构图;
32.图2为本发明的软件架构层级关系图;
33.图3为本发明的软件架构各组件连接示意图;
34.图4为本发明的软件架构中各组件的性能说明图;
35.图5为线程1任务执行流程图;
36.图6为线程2任务执行流程图;
37.图7为线程3任务执行流程图;
38.图8为情形1的时序图;
39.图9为情形2的时序图。
具体实施方式
40.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
41.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
43.如图1-4所示,本发明揭示了一种工业机器人控制系统的软件架构,其包括上层组件和下层组件,上层组件和下层组件连接,下层组件单向向上层组件发出请求,上层组件响应下层组件的请求。
44.上层组件包括通讯接口类组件、数据类组件、状态类组件、算法类组件,下层组件包括行为类组件。该行为类组件包括监控示教器指令组件、用户程序执行组件、轨迹规划与插补组件、数据自动上传组件、报警处理组件和用户程序解析组件。
45.其中,监控示教器指令组件连接通信接口类组件、数据类型组件和状态类组件。该监控示教器指令组件实现的功能为:在控制系统运行期间,持续监控示教器下发的键值信息和文件,并根据键值信息,执行对应的行为。
46.监控示教器指令组件也是用户的交互组件,因为键值是用户在操作示教器过程中,主动按示教器上的按键生成的,文件是用户在操作示教器过程中,主动编辑文件生成的。
47.用户程序解析组件连接数据类组件和状态类组件,该用户程序解析组件实现的功能是:解析示教器下发的文本格式的用户程序,并转换成自定义的“用户指令”序列和“用户数据”序列,并存放到组件中,供“用户程序执行组件”逐条执行。
48.用户程序执行组件连接数据类组件、状态类组件和算法类组件,该用户程序执行组件实现的功能是:逐条从“用户程序解析组件”中取出“用户指令”和对应本指令的“用户
数据”,并与数据类组件、状态类组件、算法类组件协作,执行其对应的行为。
49.轨迹规划和插补组件连接通信接口类组件、数据类组件和算法类组件,该轨迹规划和插补组件实现的功能是:根据接收的机器人用户指令,响应其中的运动指令,包括笛卡尔空间直线轨迹、笛卡尔空间圆弧轨迹、关节空间轨迹等;调用机器人算法库组件,再根据机器人当前的运行状态,对运动指令进行轨迹规划和细分插补计算;与ethercat总线组件协作,将细分插补得到的机械臂的各个关节值下发给电机伺服驱动系统。
50.数据自动上传组件连接通信接口类组件、数据类组件和状态类组件,该数据自动上传组件实现的功能是:周期性地将一部分数据上传到示教器。
51.报警处理组件连接通信接口类组件、状态类组件,该报警处理组件实现的功能是:当控制系统内出现异常,报警处理组件可以查询到,并且做出相应的行为,例如与通信接口类组件协作,实现蜂鸣器蜂鸣和指示灯闪烁。
52.算法类组件包括机器人算法库组件,该机器人算法库组件实现的功能是:工业机器人控制系统,尤其是机械臂执行各种运动所涉及的算法,包括各种机器人的正解算法、逆解算法、轨迹规划算法、动力学算法、机器人工艺包算法等。
53.通信接口类组件包括io组件、网络通信组件和ethercat总线组件。
54.io组件的功能为:也称输入输出组件,负责接收和输出数字信号、模拟信号,该组件支持了系统与外部传感器、外部执行器交互的功能。
55.网络通信组件的功能为:基于ethernet和tcp/ip通信协议,将控制系统设为网络服务器或者网络客户端,负责建立、保持与示教器或外部网络设备的通信。
56.ethercat总线组件的功能为:负责建立、保持与电机伺服驱动器的通信。
57.数据类组件包括机器人配置参数组件、用户程序数据组件和过程数据组件。
58.机器人配置参数组件的功能为:该组件维护着机器人的所有类型的配置参数,包括机器人本体的尺寸参数、伺服驱动器参数、轨迹规划类型与参数、坐标系参数等。
59.用户程序数据组件的功能为:维护由“用户程序解析组件”解析得到的“用户指令”序列和“用户数据”序列。
60.所述过程数据组件的功能为:维护着由“轨迹规划和插补组件”计算得到的关节值,将要输出的数字信号值,模拟信号值。
61.状态类组件包括机器人状态组件,该机器人状态组件的功能为:该组件维护着机器人在运行中可能会被改变的状态数据(也可称为模式、类型)。对控制系统定义了多个控制系统的静态状态和动态状态:坐标系设置状态、用户程序设置状态、伺服数据设置状态、插补执行状态、用户程序执行状态。行为类组件在运行过程中需要共享的状态数据存放在此组件中。
62.为保证控制系统运行的实时性,本发明设定一个固定的时间段pt,这个时间段称为控制系统的周期时间段,在一个周期时间段内,系统必须在周期时间段结束前完成某些关键任务,这称为控制系统的实时性。在本发明中,将这些关键任务指定为“用户程序执行组件”、“轨迹规划与插补组件”、“报警处理组件”中的行为。
63.如图5-7所示,为了实现控制系统的实时性,本发明采用多线程方案:在架构中共建立三个实时线程任务(线程任务为计算机操作系统的概念,是最小的任务调度单元),分别为线程1任务,线程2任务,线程3任务。三个线程任务的优先级从高到低分别设置为1、2、
3。线程的优先级机制及抢占机制是由计算机操作系统保证的:即高优先级的线程任务执行完成后,剩下低优先级的线程任务中的最高优先级的线程任务会开始执行。高优先级的线程任务会抢占低优先级的线程任务执行。
64.在本发明中,由计算机操作系统保证,在控制系统正常运行时,计算机会周期性触发线程1任务开始执行,这个触发时间间隔设定为上述的周期时间段pt。由于线程1的优先级最高,所以这事实上确定并保证了每一个周期都是以线程1任务开始的,且线程的执行顺序为:线程1任务->线程2任务->线程3任务。
65.线程1任务中分配的组件:“用户程序执行组件”、“轨迹规划与插补组件”、“报警处理组件”。
66.线程2任务分配的组件:“监控示教器指令组件”、“用户程序解析组件”。
67.线程3任务分配的组件:“数据自动上传组件”。
68.上述线程任务的优先级和组件分配方案的原因是:线程1中的三个组件执行一次所需时间是固定的,这三个组件中执行的任务是控制系统在每个周期内必须完全执行完毕的。线程2的两个组件执行一次所需时间是不固定的,不能作为最高优先级来执行,否则会挤占线程1任务的时间。将数据自动上传组件分配到线程3中,该组件中需要上传的数据结果依赖线程1和线程2的执行结果。
69.线程1任务->线程2任务->线程3任务,按顺序依次执行完成一次,称为一次“完整执行序列”。
70.为了确定一个合理的控制系统周期时间pt,尽量保证“完整执行序列”在一个周期时间段内被执行完毕。采用以下步骤:
71.(1)首先确定要使用的计算机硬件和操作系统;
72.(2)将各个组件部署到该计算机硬件中,并保证各个组件能够在计算机上正确运行;
73.(3)多次运行线程1任务,线程2任务,线程3任务,获得并记录其平均运行时间,分别为mt1、mt2、mt3。
74.(4)确定周期时间为pt=5*(mt1+mt2+m3)/4,即保证线程1任务,线程2任务,线程3任务的总平均运行时间之和为周期时间段的4/5。
75.多个线程任务在运行时存在以下几种情形:
76.情形1:如图8所示,线程1~线程3的总时间小于周期时间,即上述时序图1描述的情形。横坐标为绝对时间轴,t0~t4为一个周期时间段,当周期时间开始时(t0),线程1任务被计算机操作系统调度开始执行,执行完毕后,时间到达t1,此时线程2被调度开始执行,执行完毕后时间到达t2,此时线程3被调度开始执行,执行完毕后,时间到达t3。由于还未到达t4,即还未到达周期截止事件,此时cpu处于空闲状态。
77.情形2:如图9所示,线程2的运行时间较大,导致执行一个“完整执行序列”的总时间大于周期时间段,即上述时序图2描述的情形。t0~t4、t4~t6各为一个周期时间段,当周期时间开始时(t0),线程1被计算机操作系统调度开始执行,执行完毕后,时间到达t1,此时线程2被调度开始执行,当时间到达t2即周期结束,但是线程2还未执行完毕,此时由于线程1的优先级大于线程2,所以线程1会抢占计算机cpu资源开始继续执行,当执行完毕到t3,此时上个周期被抢占的线程2继续执行至时间t4,随后线程3继续执行至t5,随后此时cpu处于
空闲状态直至周期时间结束。
78.综上,本发明将软件架构分成上层组件和下层组件两个层级,下层组件单向向上层组件发出请求,上层组件响应下层组件的请求。该架构具备“组件独立”的特点,易于对各个功能组件进行修改,易于扩充功能组件,有利于可以缩短控制系统产品开发周期。
79.另外,为保证控制系统运行的实时性,本发明在架构中建立三个实时线程任务,即优先级由高到低的线程1、线程2和线程3,其中,线程1任务中分配用户程序执行组件、轨迹规划与插补组件和报警处理组件,线程2任务分配监控示教器指令组件、用户程序解析组件,线程3任务分配数据自动上传组件。
80.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
81.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术特征:
1.一种工业机器人控制系统的软件架构,其特征在于:包括上层组件和下层组件,上层组件和下层组件连接,下层组件单向向上层组件发出请求,上层组件响应下层组件的请求;所述上层组件包括通讯接口类组件、数据类组件、状态类组件、算法类组件,下层组件包括行为类组件;所述行为类组件包括监控示教器指令组件、用户程序执行组件、轨迹规划与插补组件、数据自动上传组件、报警处理组件和用户程序解析组件;所述监控示教器指令组件连接通信接口类组件、数据类型组件和状态类组件,该监控示教器指令组件实现的功能为:在控制系统运行期间,持续监控示教器下发的键值信息和文件,并根据键值信息,执行对应的行为;所述用户程序解析组件连接数据类组件和状态类组件,该用户程序解析组件实现的功能是:解析示教器下发的文本格式的用户程序,并转换成自定义的“用户指令”序列和“用户数据”序列,并存放到组件中,供“用户程序执行组件”逐条执行;所述用户程序执行组件连接数据类组件、状态类组件和算法类组件,该用户程序执行组件实现的功能是:逐条从“用户程序解析组件”中取出“用户指令”和对应本指令的“用户数据”,并与数据类组件、状态类组件、算法类组件协作,执行其对应的行为;所述轨迹规划和插补组件连接通信接口类组件、数据类组件和算法类组件,该轨迹规划和插补组件实现的功能是:根据接收的机器人用户指令,响应其中的运动指令;调用算法类组件,再根据机器人当前的运行状态,对运动指令进行轨迹规划和细分插补计算;与通信接口类组件协作,将细分插补得到的机械臂的各个关节值下发给电机伺服驱动系统;所述数据自动上传组件连接通信接口类组件、数据类组件和状态类组件,该数据自动上传组件实现的功能是:周期性地将一部分数据上传到示教器;报警处理组件连接通信接口类组件、状态类组件,该报警处理组件实现的功能是:当控制系统内出现异常,报警处理组件查询到,并且做出相应的行为。2.根据权利要求1所述的一种工业机器人控制系统的软件架构,其特征在于:所述算法类组件包括机器人算法库组件,该机器人算法库组件实现的功能是:用于实现机械臂执行各种运动所涉及的算法。3.根据权利要求1所述的一种工业机器人控制系统的软件架构,其特征在于:所述通信接口类组件包括io组件、网络通信组件和ethercat总线组件;所述io组件的功能为:负责接收和输出数字信号、模拟信号,该io组件支持了系统与外部传感器、外部执行器交互的功能;所述网络通信组件的功能为:基于ethernet和tcp/ip通信协议,将控制系统设为网络服务器或者网络客户端,负责建立、保持与示教器或外部网络设备的通信;所述ethercat总线组件的功能为:负责建立、保持与电机伺服驱动器的通信。4.根据权利要求1所述的一种工业机器人控制系统的软件架构,其特征在于:所述数据类组件包括机器人配置参数组件、用户程序数据组件和过程数据组件;所述机器人配置参数组件的功能为:该组件维护着机器人的所有类型的配置参数;所述用户程序数据组件的功能为:维护由“用户程序解析组件”解析得到的“用户指令”序列和“用户数据”序列;所述过程数据组件的功能为:维护着由“轨迹规划和插补组件”计算得到的关节值,将要输出的数字信号值,模拟信号值。
5.根据权利要求1所述的一种工业机器人控制系统的软件架构,其特征在于:所述状态类组件包括机器人状态组件,该机器人状态组件的功能为:维护机器人在运行中可能会被改变的状态数据;对控制系统定义了多个控制系统的静态状态和动态状态:坐标系设置状态、用户程序设置状态、伺服数据设置状态、插补执行状态、用户程序执行状态;行为类组件在运行过程中需要共享的状态数据存放在该状态类组件中。6.根据权利要求1所述的一种工业机器人控制系统的软件架构,其特征在于:所述软件架构中设有三个实时线程任务,分别为线程1任务,线程2任务,线程3任务;三个线程任务的优先级从高到低分别设置为1、2、3,且线程的执行顺序为:线程1任务->线程2任务->线程3任务;所述线程1任务中分配的组件:用户程序执行组件、轨迹规划与插补组件、报警处理组件;线程2任务中分配的组件:监控示教器指令组件、用户程序解析组件;线程3任务中分配的组件:数据自动上传组件。7.根据权利要求6所述的一种工业机器人控制系统的软件架构,其特征在于:所述线程1任务、线程2任务、线程3任务的总平均运行时间之和为周期时间段pt的4/5。

技术总结
本发明涉及一种工业机器人控制系统的软件架构,其包括上层组件和下层组件,上层组件和下层组件连接,下层组件单向向上层组件发出请求,上层组件响应下层组件的请求;所述上层组件包括通讯接口类组件、数据类组件、状态类组件、算法类组件,下层组件包括行为类组件;所述行为类组件包括监控示教器指令组件、用户程序执行组件、轨迹规划与插补组件、数据自动上传组件、报警处理组件和用户程序解析组件。本发明的软件架构具备“组件独立”的特点,易于对各个功能组件进行修改,易于扩充功能组件,有利于可以缩短控制系统产品开发周期。利于可以缩短控制系统产品开发周期。利于可以缩短控制系统产品开发周期。


技术研发人员:郭鹏 郑凯航 吴勇毅 谢双胜 王浪
受保护的技术使用者:伯朗特机器人股份有限公司
技术研发日:2023.05.22
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐