1.本申请涉及控制技术领域,特别涉及一种机械臂的控制方法、装置、电子设备及存储介质。
背景技术:2.随着工业机器人技术日趋成熟,工业机器人的典型应用包括搬运机器人、焊接机器人、涂胶机器人、工件装卸机器人等。其中,大多数机器人有存在有多个机械臂,控制器通过依次把机械臂各个轴对应的控制指令下发到通讯总线,电机接收到对应指令后执行,使得机械臂完成一次运动行为。
3.然而,在整个控制过程中,由于操作系统时钟的不准确,往往会导致控制器下发控制指令的时间不准确,导致电机执行时间不能完全符合用户预想,从而使得机械臂在执行过程中出现抖动、路径变形等问题,甚至导致机械臂出现碰撞损坏,亟待解决。
4.申请内容
5.本申请提供一种机械臂的控制方法、装置、电子设备及存储介质,以解决相关技术中因操作系统时钟的不准确,导致控制器下发控制指令的时间不准确,从而导致机械臂在执行过程中出现抖动、路径变形,甚至出现机械臂碰撞损坏等问题。
6.本申请第一方面实施例提供一种机械臂的控制方法,所述机械臂具有控制所述机械臂对应部位件的多个电机控制器,其中,所述方法包括以下步骤:
7.接收用户输入的目标坐标数据;
8.根据所述目标坐标数据生成所述多个电机控制器的每个电机控制器的控制指令和执行时间;以及
9.在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至所述任一电机控制器,以执行对应动作。
10.可选地,所述根据所述目标坐标数据生成所述多个电机控制器的每个电机控制器的控制指令和执行时间,包括:
11.根据所述目标坐标数据计算所述机械臂的插补数据集,其中,所述插补数据集的每个插补点包括至少一个电机控制器的控制指令和执行时间。
12.可选地,所述发送对应控制指令至所述任一电机控制器,包括:
13.发送所述对应控制指令至通讯总线,以使所述任一电机控制器从所述通讯总线接收所述对应控制指令。
14.可选地,还包括:
15.根据用户的身份标识生成所述目标坐标数据的通讯标志;
16.将所述通讯标志发送至每个电机控制器,以根据所述通信标志接收所述对应控制指令。
17.可选地,所述接收用户输入的目标坐标数据,包括:
18.接收所述用户的控制程序;
19.根据所述控制程序识别所述目标坐标数据。
20.本申请第二方面实施例提供一种机械臂的控制装置,所述机械臂具有控制所述机械臂对应部位件的多个电机控制器,其中,所述装置包括:
21.第一接收模块,用于接收用户输入的目标坐标数据;
22.第一生成模块,用于根据所述目标坐标数据生成所述多个电机控制器的每个电机控制器的控制指令和执行时间;以及
23.发送模块,用于在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至所述任一电机控制器,以执行对应动作。
24.可选地,所述生成模块包括:
25.计算单元,用于根据所述目标坐标数据计算所述机械臂的插补数据集,其中,所述插补数据集的每个插补点包括至少一个电机控制器的控制指令和执行时间。
26.可选地,所述发送模块包括:
27.发送单元,用于发送所述对应控制指令至通讯总线,以使所述任一电机控制器从所述通讯总线接收所述对应控制指令。
28.可选地,在一些实施例中,上述的机械臂的控制装置,还包括:
29.第二生成模块,用于根据用户的身份标识生成所述目标坐标数据的通讯标志;
30.第二接收模块,用于将所述通讯标志发送至每个电机控制器,以根据所述通信标志接收所述对应控制指令。
31.可选地,在一些实施例中,所述接收模块,包括:
32.接收单元,用于接收所述用户的控制程序;
33.识别单元,用于根据所述控制程序识别所述目标坐标数据。
34.本申请第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的机械臂的控制方法。
35.本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的机械臂的控制方法。
36.可以根据用户输入的目标坐标数据生成多个电机控制器的每个电机控制器的控制指令和执行时间,从而在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至任一电机控制器,以执行对应动作。由此,通过实时下发控制指令,保证机械臂可准确执行每个插补点,整体运动流畅并规避执行过程中碰撞导致本体损坏的风险,解决了相关技术中因操作系统时钟的不准确,导致控制器下发控制指令的时间不准确,从而导致机械臂在执行过程中出现抖动、路径变形,甚至出现机械臂碰撞损坏等问题。
37.本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
38.本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
39.图1为根据本申请实施例提供的一种机械臂的控制方法的流程图;
40.图2为根据本申请一个实施例的机械臂的控制方法的流程图;
41.图3为根据本申请一个实施例的插补数据集的示意图;
42.图4为根据本申请一个实施例的时钟周期与控制指令相对应示意图;
43.图5为根据本申请一个实施例的进行线程通讯的示意图;
44.图6为根据本申请一个实施例的机械臂的控制系统的架构示意图;
45.图7为根据本申请实施例的机械臂的控制装置的示意图;
46.图8为根据本申请实施例的电子设备的示意图。
具体实施方式
47.下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
48.下面参考附图描述本申请实施例的机械臂的控制方法、装置、电子设备及存储介质。针对上述背景技术中心提到的因操作系统时钟的不准确,导致控制器下发控制指令的时间不准确,从而导致机械臂在执行过程中出现抖动、路径变形,甚至出现机械臂碰撞损坏等问题,本申请提供了一种机械臂的控制方法,在该方法中,可以根据用户输入的目标坐标数据生成多个电机控制器的每个电机控制器的控制指令和执行时间,从而在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至任一电机控制器,以执行对应动作。由此,通过实时下发控制指令,保证机械臂可准确执行每个插补点,整体运动流畅并规避执行过程中碰撞导致本体损坏的风险,解决了相关技术中因操作系统时钟的不准确,导致控制器下发控制指令的时间不准确,从而导致机械臂在执行过程中出现抖动、路径变形,甚至出现机械臂碰撞损坏等问题。
49.具体而言,图1为本申请实施例所提供的一种机械臂的控制方法的流程示意图。该实施例中,机械臂具有控制机械臂对应部位件的多个电机控制器。
50.如图1所示,该机械臂的控制方法包括以下步骤:
51.在步骤s101中,接收用户输入的目标坐标数据。
52.可选地,在一些实施例中,接收用户输入的目标坐标数据,包括:接收用户的控制程序;根据控制程序识别目标坐标数据。其中,目标坐标数据即为机械臂完成一系列动作时的路径位置坐标,如机械臂走直线时的路径位置坐标,再如机械臂画圆弧时的路径位置坐标等。
53.可以理解的是,控制机械臂的方式有很多,假设本申请实施例通过fpga(field programmable gate array,现场可编程逻辑门阵列)控制机械臂上的每一个电机。
54.具体地,用户可以根据用户可以根据自己的需求在上位机进行编写控制程序,其中,上位机可以为pc(personal computer,个人计算机)或手机,然后建立上位机与fpga之间的通信连接,上位机选择与fpga之间的数据发送协议,将控制程序发送至fpga,本申请实施例可以对接收到的控制程序进行解析,从而即可得到目标坐标数据。
55.需要说明的是,上述示例仅为示例性的,不作为对本申请的限制,本领域技术人员可以根据实际情况进行设计,在此不做具体限定。
56.在步骤s102中,根据目标坐标数据生成多个电机控制器的每个电机控制器的控制指令和执行时间。
57.可选地,在一些实施例中,根据目标坐标数据生成多个电机控制器的每个电机控制器的控制指令和执行时间,包括:根据目标坐标数据计算机械臂的插补数据集,其中,插补数据集的每个插补点包括至少一个电机控制器的控制指令和执行时间。
58.可以理解的是,如图2所示,在根据步骤s101从控制程序中识别出目标坐标数据后,本申请实施例的机械臂程序的控制方法可以包括:
59.s201,接收用户输入的目标坐标数据。
60.s202,判断目标坐标数据是否具有合法性,如果是,则执行步骤s203,否则结束程序。
61.可以理解的是,本申请实施例可以对目标坐标数据的合法性进行判断,例如判断该数据是否符合预设数据规则。其中,预设数据规则可以由本领域技术人员根据实际情况进行设定,在此不做具体限定。
62.s203,对目标坐标数据进行计算,以得到机械臂的路径。
63.也就是说,如果目标坐标数据满足预设条件,本申请实施例可以根据预设的算法模块对目标坐标数据进行计算,以得到机械臂的路径。
64.s204,输出插补数集。
65.可以理解的是,在得到机械臂的路径后,即可根据该路径得到机械臂的插补数据集。例如,如图3所示,图3为本申请一个实施例的插补数据集的示意图,其中,每个插补点中可以包含有多个电机的控制器的控制指令和执行时间,控制指令可以为电机控制参数,如图3所示,插补点1中包含有插补时间和电机控制参数,例如,电机控制参数可以为转角的大小和方向信息。
66.s205,通过依次按照插补时间发送每个插补点到电机,并判断插补点是否发送完毕,如果是,则执行步骤s207,否则执行步骤s206。
67.s206,发送下一个插补点,并跳转执行步骤s205。
68.s207,进行下一阶段的程序执行。
69.在步骤s103中,在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至任一电机控制器,以执行对应动作。
70.可选地,在一些实施例中,发送对应控制指令至任一电机控制器,包括:发送对应控制指令至通讯总线,以使任一电机控制器从通讯总线接收对应控制指令。其中,通讯总线可以为canopen、ethercat或其他通讯总线,在此不做具体限定,通过设置有稳定的总线通讯,不会因电气、硬件等条件导致通讯不稳定或者通讯失败,还可以有效解决线程调用过程中导致的时钟抖动。
71.可以理解的是,如图4所示,图4中clk表示每个设置的执行时间时钟周期,p1、p2、p3
……
px表示插补数据集里面的电机控制指令数据包,共x个数据包,执行时钟周期t为每个插补点里的插补时间。
72.其中,本申请实施例可以在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至通讯总线,以使得任一电机控制器从通讯总线接收对应控制指令,从而保证机械臂每个轴的电机都在规定时间间隔开始执行新的动作。也就是说,本申请实施例可以
在一个执行时钟周期内完成控制指令的发送和控制电机执行。
73.举例而言,如图5所示,在根据目标坐标数据计算机械臂的插补数据集后,本申请实施例可以在t1时间内发送对应控制指令至通讯总线,并在t2时间内发送对应控制指令至任一电机控制器,以及在t3时间内电机进行执行。其中,执行时钟周期t=t1+t2+t3,t1为线程通讯时间,t2为驱动调用时间。
74.需要说明的是,本申请实施例的预设的算法模块可以稳定在t1时间内将数据发送对应控制指令至通讯总线,即可以在不被系统其他线程打断情况下,连续的把数据包中每个电机数据发到通讯总线上。由于插补时间t的计时器是准确的,所以最后电机执行时间t3也可以确定。由此,保证了机械臂每个插补点都可以在规定的时间内发送到电机控制器,被电机控制器接收后可在规定时间内执行,保证整个动作轨迹与计算轨迹也完全吻合。
75.可选地,在一些实施例中,还包括:根据用户的身份标识生成目标坐标数据的通讯标志;将通讯标志发送至每个电机控制器,以根据通信标志接收对应控制指令。由此,如通过设置用户的身份标识,使得同一个网络中的程序通讯不会相互干涉,不仅方便使用多个运动控制节点,实现不同的动作,而且在整个控制过程中,多个控制节点不会出现冲突,可以优先完成当前动作而不被打断。
76.为使得本领域技术人员进一步了解本申请实施例的机械臂的控制方法,下面以一个具体实施例进行详细阐述。
77.如图6所示,node1~node4为不同的用户控制程序,机械臂控制器通过下发指令到通讯总线上,控制电机控制器1~电机控制器n,从而控制各个电机执行运动。
78.其中,本申请为实时分布式系统,控制程序node1~node n可在不同的控制器上,通过跨域通讯与机械臂控制器通讯,控制机械臂执行运动;每个控制程序node可监控机械臂实时状态和控制机械臂运动,不但可以保证机械臂动作的连续,还可以方便使用多个运动控制节点、实现不同的动作实现,并且在控制过程中多个控制节点并发不会冲突,会优先完成当前动作不被打断。
79.本申请的通讯方式可选择广播式通讯和同步通讯,如机械臂状态信息广播到各个node,每个node都可以实时获取;node控制机械臂运动则使用同步通讯,每次只能有一个node控制机械臂运动并直到本次运动完成;本申请是实施例还可设置域标识,只有同个域的node可以通讯,保证同个网络中程序通讯不会互相干涉,具体地,本申请的node可以随时创建和销毁,创建时可被其他的node发现,销毁同时通知其他node下线;并且在各个节点上,只要在同个通讯域,都可以监控和控制,无需增加通讯组件,如tcp(transmission control protocol,传输控制协议)/ip(internet protocol,网际互连协议)、grpc(google remote procedure call,google远程过程调用)等,大大降低了开发的难度。
80.根据本申请实施例提出的机械臂的控制方法,可以根据用户输入的目标坐标数据生成多个电机控制器的每个电机控制器的控制指令和执行时间,从而在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至任一电机控制器,以执行对应动作。由此,通过实时下发控制指令,保证机械臂可准确执行每个插补点,整体运动流畅并规避执行过程中碰撞导致本体损坏的风险,解决了相关技术中因操作系统时钟的不准确,导致控制器下发控制指令的时间不准确,从而导致机械臂在执行过程中出现抖动、路径变形,甚至出现机械臂碰撞损坏等问题。
81.其次参照附图描述根据本申请实施例提出的机械臂的控制装置。
82.图7是本申请实施例的机械臂的控制装置的方框示意图。该实施例中,机械臂具有控制机械臂对应部位件的多个电机控制器。
83.如图7所示,该机械臂的控制装置10包括:接收模块100、生成模块200和发送模块300。
84.其中,第一接收模块100用于接收用户输入的目标坐标数据;
85.第一生成模块200用于根据目标坐标数据生成多个电机控制器的每个电机控制器的控制指令和执行时间;以及
86.发送模块300用于在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至任一电机控制器,以执行对应动作。
87.可选地,在一些实施例中,生成模块200包括:计算单元。
88.其中,计算单元用于根据目标坐标数据计算机械臂的插补数据集,其中,插补数据集的每个插补点包括至少一个电机控制器的控制指令和执行时间。
89.可选地,在一些实施例中,发送模块300包括:发送单元。
90.其中,发送单元,用于发送对应控制指令至通讯总线,以使任一电机控制器从通讯总线接收对应控制指令。
91.可选地,在一些实施例中,上述的机械臂的控制装置,还包括:第二生成模块和第二接收模块。
92.其中,第二生成模块根据用户的身份标识生成目标坐标数据的通讯标志;
93.第二接收模块将通讯标志发送至每个电机控制器,以根据通信标志接收对应控制指令。
94.可选地,在一些实施例中,接收模块100,包括:接收单元和识别单元。
95.其中,接收单元用于接收用户的控制程序;
96.识别单元根据控制程序识别目标坐标数据。
97.需要说明的是,前述对机械臂的控制方法实施例的解释说明也适用于该实施例的机械臂的控制装置,此处不再赘述。
98.根据本申请实施例提出的机械臂的控制装置,可以根据用户输入的目标坐标数据生成多个电机控制器的每个电机控制器的控制指令和执行时间,从而在当前时间达到任一电机控制器的执行时间时,发送对应控制指令至任一电机控制器,以执行对应动作。由此,通过实时下发控制指令,保证机械臂可准确执行每个插补点,整体运动流畅并规避执行过程中碰撞导致本体损坏的风险,解决了相关技术中因操作系统时钟的不准确,导致控制器下发控制指令的时间不准确,从而导致机械臂在执行过程中出现抖动、路径变形,甚至出现机械臂碰撞损坏等问题。
99.图8为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:
100.存储器1201、处理器1202及存储在存储器1201上并可在处理器1202上运行的计算机程序。
101.处理器1202执行程序时实现上述实施例中提供的机械臂的控制方法。
102.进一步地,电子设备还包括:
103.通信接口1203,用于存储器1201和处理器1202之间的通信。
104.存储器1201,用于存放可在处理器1202上运行的计算机程序。
105.存储器1201可能包含高速ram存储器,也可能还包括非易失性存储器(non
‑
volatile memory),例如至少一个磁盘存储器。
106.如果存储器1201、处理器1202和通信接口1203独立实现,则通信接口1203、存储器1201和处理器1202可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
107.可选的,在具体实现上,如果存储器1201、处理器1202及通信接口1203,集成在一块芯片上实现,则存储器1201、处理器1202及通信接口1203可以通过内部接口完成相互间的通信。
108.处理器1202可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本申请实施例的一个或多个集成电路。
109.本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的机械臂的控制方法。
110.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
111.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
112.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
113.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装
置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或n个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
114.应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
115.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
116.此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
117.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。