CN113733107B - 机器人拖动示教的方法、机器人及计算机存储介质 - Google Patents
机器人拖动示教的方法、机器人及计算机存储介质 Download PDFInfo
- Publication number
- CN113733107B CN113733107B CN202010414850.1A CN202010414850A CN113733107B CN 113733107 B CN113733107 B CN 113733107B CN 202010414850 A CN202010414850 A CN 202010414850A CN 113733107 B CN113733107 B CN 113733107B
- Authority
- CN
- China
- Prior art keywords
- teaching
- robot
- variable array
- program
- system variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0081—Programme-controlled manipulators with master teach-in means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Abstract
本申请公开了机器人拖动示教的方法、机器人及计算机存储介质。该方法包括:获取机器人被执行拖动示教时所生成的多个示教程序,以及将多个示教程序的文件路径存储在机器人的系统变量数组中,系统变量数组为全局变量数组;获取第一调用指令;将第一调用指令对应的第一示教程序的文件路径传输至执行函数;通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。通过上述方式,实现不同示教动作之间的对比调试;在工作中需要更换动作时,从多个示教程序中进行选择,无需再进行示教,提高工作效率。
Description
技术领域
本申请涉及机器人技术领域,特别是涉及一种机器人拖动示教的方法、机器人及计算机存储介质。
背景技术
工业机器人是面向工业领域的多关节机械手或多自由度的机器装置,它能自动执行工作,是靠自身动力和控制能力来实现各种功能的一种机器。随着经济的快速发展,机器人在工业现场的应用越来越广泛,已经成为了降低生产成本,提高生产效率和提升工业制造能力,实现智能制造的重要推动力。
机器人顺利工作前的重要步骤是机器人的示教。目前,机器人的示教工作主要是依赖于工人操作示教器来完成的。机器人拖动示教,就是操作员直接拖着机器人各关节,运动到理想的姿态,记录下来。然后进行轨迹复现。
不足之处在于,在进行拖动示教动作回放的时候,只能将上一次拖动示教的动作进行回放。
发明内容
为了解决上述问题,本申请提供一种机器人拖动示教的方法、机器人及计算机存储介质,使用户根据需求选择相应的示教程序进行示教回放,便于不同示教动作之间的对比调试;在工作中需要更换动作时,从多个示教程序中进行选择,无需再进行示教,提高工作效率。
本申请采用的一种技术方案是提供一种机器人拖动示教的方法,该方法包括:获取机器人被执行拖动示教时所生成的多个示教程序,以及将多个示教程序的文件路径存储在机器人的系统变量数组中,系统变量数组为全局变量数组;获取第一调用指令;将第一调用指令对应的第一示教程序的文件路径传输至执行函数;通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。
其中,机器人包括人机界面;获取第一调用指令,包括:在人机界面显示系统变量数组中有效元素对应的按钮;响应于对目标按钮的选择,获取与目标按钮对应的第一调用指令;
其中,将第一调用指令对应的第一示教程序的文件路径传输至执行函数,包括:解析第一调用指令,以调用执行函数,以及从系统变量数组中获取与第一调用指令对应的第一示教程序的文件路径;将文件路径作为参数传输至执行函数;通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作,包括:通过执行函数基于文件路径加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。
其中,将多个示教程序的文件路径存储在机器人的系统变量数组中,包括:获取当前一个示教程序的文件路径;判断系统变量数组的有效元素数量是否等于系统变量数组的长度;若是,将系统变量数组的第一个元素删除,剩余的元素在系统变量数组的位置依次前移,将文件路径作为字符串赋值给系统变量数组中未赋值的元素;若否,将文件路径作为字符串赋值给系统变量数组中第一个未初始化的元素。
其中,获取机器人被执行拖动示教时所生成的多个示教程序之前,该方法还包括:获取机器人被执行拖动示教时的多个连续位置的位置信息;对多个连续位置的位置信息进行处理,以生成多个示教程序。
其中,获取机器人被执行拖动示教时的多个连续位置的位置信息,包括:获取位置记录指令;基于位置记录指令,判断机器人被拖动执行动作时的当前位置与前一位置的距离是否大于设定阈值;
若是,则记录当前位置的位置信息,以进一步获取到多个连续位置的位置信息。
其中,对多个连续位置的位置信息进行处理,以生成多个示教程序,包括:将多个连续位置的位置信息转换为动作指令;将动作指令添加至示教程序模板中,以生成多个示教程序。
其中,获取机器人被执行拖动示教时的多个连续位置的位置信息,还包括:在获取机器人被执行拖动示教时的多个连续位置的位置信息时,获取机器人的控制指令;对多个连续位置的位置信息进行处理,以生成多个示教程序,包括:对多个连续位置的位置信息和控制指令进行处理,以生成多个示教程序。
本申请采用的另一种技术方案是提供一种机器人,该机器人包括处理器以及与处理器连接的存储器;存储器用于存储程序数据,处理器用于执行程序数据,以实现上述方案中提供的方法。
本申请采用的另一种技术方案是提供一种计算机存储介质,计算机存储介质用于存储程序数据,程序数据在被处理器执行时,用于实现上述方案中提供的方法。
本申请的有益效果是:区别于现有技术的情况,本申请的一种机器人拖动示教的方法,该方法包括:获取机器人被执行拖动示教时所生成的多个示教程序,以及将多个示教程序的文件路径存储在机器人的系统变量数组中,系统变量数组为全局变量数组;获取第一调用指令;将第一调用指令对应的第一示教程序的文件路径传输至执行函数;通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。通过上述方式,利用系统变量数组是全局变量数组的特性来存储示教程序的文件路径,以使用户可根据需求选择相应的示教程序进行示教回放,便于不同示教动作之间的对比调试;在工作中需要更换动作时,从多个示教程序中进行选择,无需再进行示教,提高工作效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的机器人拖动示教的方法第一实施例的流程示意图;
图2是本申请提供的生成示教程序的流程示意图;
图3是本申请提供的人机界面的显示界面示意图;
图4是本申请提供的步骤14之后的流程示意图;
图5是本申请提供的机器人拖动示教的方法第二实施例的流程示意图;
图6是步骤51的具体流程示意图;
图7是步骤54的具体流程示意图;
图8是本申请提供的机器人一实施例的结构示意图;
图9是本申请提供的计算机存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1是本申请提供的机器人拖动示教的方法第一实施例的流程示意图,该方法包括:
步骤11:获取机器人被执行拖动示教时所生成的多个示教程序,以及将多个示教程序的文件路径存储在机器人的系统变量数组中。
其中,系统变量数组为全局变量数组。
其中,多个示教程序是根据机器人被拖动示教执行动作生成并添加在指定文件中的。
具体地,参阅图2,对示教程序的生成进行说明:
步骤21:获取机器人被执行拖动示教时的多个连续位置的位置信息。
在一些实施例中,在机器人被拖动示教执行动作时,通过机器人的传感器采集每个关节的位置信息,以得到多个连续位置的位置信息。传感器可以是机器人关节或电机端的编码器,以获取关节的位置信息。
进一步通过对位置信息进行处理,可以获取到机器人被拖动示教执行动作时的速度。
在一些实施例中,在获取机器人被执行拖动示教时的多个连续位置的位置信息时,获取机器人的控制指令。
可以理解,机器人的拖动示教是为了是机器人更好的进行工作,所以在机器人运动过程中会存在许多其他的控制指令。例如在拖动到某一角度时,需要打开气阀开关,则产生相应的气阀开启控制指令。
步骤22:对多个连续位置的位置信息进行处理,以生成多个示教程序。
在一些实施例中,在机器人获得多个连续位置的位置信息后,拖动停止时按照机器人程序的语法规则将多个连续位置的位置信息转换为运动指令,写入到设定的示教程序模板中,生成当前示教程序;每一次的拖动示教时都按照上述方式进行位置信息的采集,并转换为运动指令,写入到设定的示教程序模板中,则可形成多个示教程序。
在一些实施例中,在获取机器人被拖动示教执行动作时的多个连续位置的位置信息时,获取机器人的控制指令,对多个连续位置的位置信息和控制指令进行处理以生成当前示教程序。
步骤23:将示教程序添加至指定文件中。
在一些实施例中,该指定文件只用于存储示教程序;在示教程序添加至指定文件后,将该示教程序的文件路径存储在机器人的系统变量数组中。
举例说明:
在此例中,机器人的位置信息为机器人的工具中心点的位置信息。可以理解,机器人可以是具有多个轴的机械手臂。要想要让机器人完成指定的生产任务,通常需要在机器人的末端固定一个工具,比如焊接机器人的焊枪、涂胶机器人的胶枪、搬运机器人的夹具等。而工具中心点则是代表了整个工具。当用户以拖动的方式让机器人去接近空间的某一点时,其本质是让工具中心点去接近该点。因此可以说机器人的轨迹运动就是工具中心点的运动。同一机器人可以因为挂载不同的工具,而有不同的工具中心点;但是同一时刻,机器人只能处理一个工具中心点。
因此,在机器人被拖动示教执行动作时,获取多个连续位置的工具中心点的位置信息,将多个位置信息进行处理以生成目标示教程序。将目标示教程序添加至指定文件,以使指定文件中的多个示教程序中的任意一示教程序可被调用执行。被调用的示教程序在执行时回放该示教程序生成时的拖动轨迹。
步骤12:获取第一调用指令。
在一些实施中,机器人包括人机界面,用户可通过人机界面对机器人进行操作。当机器人被拖动示教执行完成后,会生成相应的示教程序。或者是机器人中已经存在很多之前由拖动产生的相应的示教程序。人机界面可以按照多个示教程序的生成时间进行排序并显示,当用户选择其中任一示教程序时,响应于对该示教程序的选择,获取该示教程序的第一调用指令。
步骤13:将第一调用指令对应的第一示教程序的文件路径传输至执行函数。
在一些实施例中,根据第一调用指令从系统变量数组找到对应的文件路径,并将文件路径传输至执行函数。
步骤14:通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。
执行函数根据该文件路径在指定文件中找到该示教程序,然后加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。
在一些实施例中,执行函数可以是系统函数。
参阅图3,图3是机器人的人机界面的显示示意图,对步骤12-步骤 14进行说明:
在人机界面上有一个回放按钮,当用户需要进行示教程序回放时,触控回放按钮,会相应的出现如图3中所示的多个触控按钮,触控按钮 以示教程序生成的时间先后顺序按照降序的方式进行排列。其中,触控按钮对应的显示示教程序的描述和生成时间,如“示教程序A、10月 25日晚上”、“示教程序B、10月25日下午”、“示教程序C、10月 25日上午”、“示教程序D、10月24日晚上”、“示教程序E、10月 24日下午”、“示教程序F、10月24日上午”、“示教程序G、10月 23日晚上”、“示教程序H、10月23日下午”、“示教程序I、10月 23日上午”、“示教程序J、10月22日上午”。用户根据需要对上述的按钮进行选择,在检测到对目标按钮的选择,则获取对应目标按钮调用指令,调用执行函数并将与目标按钮关联的示教程序的文件路径作为参数传给执行函数,以使执行函数通过该文件路径从指定文件中加载示教程序,并执行步骤14。其中,示教程序的文件路径存放于系统变量数组中,在用户触控目标按钮时,会获取系统变量数组中对应的元素,即文件路径。
进一步,参阅图4,对步骤14之后的方法进行说明:
步骤41:在第一示教程序执行完成后,响应于对多个示教程序中的第二示教程序的选择,获取第二示教程序的第二调用指令。
步骤42:根据第二调用指令在示教程序库的多个示教程序中调用第二示教程序。
步骤43:执行第二示教程序,以使机器人执行第二示教程序对应的拖动示教动作。
步骤41-43的技术方案与上述方案相似或相同,这里不做赘述。
结合图3,对步骤41-42进行说明:
在用户选择了一个示教程序进行回放后,可以再次在如图3所示界面选择另一个按钮进行回放,执行如上述的步骤,以使用户对两个示教程序进行比较。
区别于现有技术的情况,本申请的一种机器人拖动示教的方法,该方法包括:获取机器人被执行拖动示教时所生成的多个示教程序,以及将多个示教程序的文件路径存储在机器人的系统变量数组中,系统变量数组为全局变量数组;获取第一调用指令;将第一调用指令对应的第一示教程序的文件路径传输至执行函数;通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。通过上述方式,利用系统变量数组是全局变量数组的特性来存储示教程序的文件路径,以使用户可根据需求选择相应的示教程序进行示教回放,便于不同示教动作之间的对比调试;在工作中需要更换动作时,从多个示教程序中进行选择,无需再进行示教,提高工作效率。
参阅图5,图5是本申请提供的机器人拖动示教的方法第二实施例的流程示意图,该方法包括:
步骤51:获取机器人被执行拖动示教时的多个连续位置的位置信息。
具体地,参阅图6,对步骤51进行说明:
步骤511:获取位置记录指令。
在拖动机器人时,激活位置记录指令,以记录机器人被拖动示教时的位置信息。
步骤512:判断机器人被拖动示教执行动作时的当前位置与前一位置的距离是否大于设定阈值。
可以理解,当机器人被拖动示教时产生的位置移动距离太小,在不影响整个动作的情况下,不做记录。
以空间坐标XYZ为例,机器人当前位置A的坐标为(x1,y1,z1),前一位置B的坐标为(x2,y2,z2),则A和B点之间的距离可以通过下列公式计算:
当A和B点之间的距离大于设定阈值时,执行步骤513。当A和B 点之间的距离小于或等于设定阈值时,不记录A点为坐标信息。
步骤513:记录当前位置的位置信息,以进一步获取到多个连续位置的位置信息。
记录当前位置的位置信息,当移动到下一位置时,判断下一位置的位置信息与当前位置的位置信息的距离是否大于设定阈值,若是则记录下一位置的位置信息。在拖动示教过程中如此往复判断并记录,以获取到多个连续位置的位置信息。
步骤52:对多个连续位置的位置信息进行处理,以生成多个示教程序。
在一些实施例中,将多个连续位置的位置信息转换为动作指令;将动作指令添加至示教程序模板中,以生成示教程序。如:获取到的机器人工具中心点的坐标为(x,y,z,a,b,c),转换为动作指令是Lin p:(x, y,z,a,b,c),将动作指令添加至示教程序模板中,以生成示教程序。当后续执行此示教程序中的动作指令时即可将机器人移动至此坐标位置。可以理解,示教程序模板是一个包括执行此示教程序的结构化的内容,如包括指令开始代码、指令结束代码。只需要将实际的动作指令加入示教程序模板中的对应位置,就可构成完整的示教程序。
步骤53:将示教程序添加至指定文件中。
举例说明:
在此例中,拖动机器人产生的运动可以为关节运动、线性运动、圆弧运动。关节运动是指机器人的工具中心点从一个位置移到另一个位置,两个位置之间的路径不一定是直线。线性运动是机器人的工具中心点从起点到终点之间的路径始终保持为直线。圆弧运动是机器人的工具中心点以圆弧移动方式运动至目标点。
在机器人被拖动过程中,检测到当前获取的多个位置信息形成的轨迹为关节运动,则将多个位置信息转换为关节运动指令;检测到当前获取的多个位置信息形成的轨迹为线性运动,则将多个位置信息转换为线性运动指令;检测到当前获取的多个位置信息形成的轨迹为圆弧运动,则将多个位置信息转换为圆弧运动指令;在拖动示教停止时,将得到的运动指令加入示教程序模板中,将示教程序添加至指定文件中。
在一些实施例中,不同的示教程序存储在不同的指定文件中,也可以将不同的示教程序存储在相同的指定文件中。如,一个指定文件夹中有很多子文件,这些子文件就表示这些示教程序。
可选的,在生成指定文件名时,可以以当前的系统时间作为文件名的一部分,如生成指定文件的时间为2020年04月30日13时50分,则文件名可以为:XXXX202004301350。
步骤54:将多个示教程序的文件路径存储在机器人的系统变量数组中。
在一些实施例中,将示教程序所在的指定文件的文件路径赋值给系统变量数组中的元素。
具体地,参阅图7对步骤54进行说明:
步骤541:获取当前一个示教程序的文件路径。
在一些实施例中,在目标示教程序存储至指定文件中后,获取此目标示教程序的文件路径。可以理解,这里的文件路径可以是绝对路径,也可以是相对路径。
步骤542:判断系统变量数组的有效元素数量是否等于系统变量数组的长度。
在一些实施例中,在构建系统变量数组时已确定系统变量数组的长度。数组的长度值与数组中的设定元素数量值相同。在数组中已经赋值的元素为有效元素。
数组的类型可以是字符串类型、数值类型、布尔类型等。本实施例的数组为字符串类型。
当判断系统变量数组的有效元素数量等于系统变量数组的长度时,则执行步骤543;当判断系统变量数组的有效元素数量小于系统变量数组的长度时,则执行步骤544。
步骤543:将系统变量数组的第一个元素删除,剩余的元素在系统变量数组的位置依次前移,将文件路径作为字符串赋值给系统变量数组中未赋值的元素。
在构造系统变量数组时,每当机器人被拖动示教执行动作完成时,将对应的指定文件的文件路径以字符串形式赋值给系统变量数组的未赋值的元素。当生成新的指定文件路径时,且系统变量数组中的元素均已赋值,则将系统变量数组的第一个元素删除,剩余的元素在系统变量数组的位置依次前移,将文件路径作为字符串赋值给系统变量数组中未赋值的元素。
举例说明:
当前系统变量数组A的长度10,类型为字符串类型,当前每个元素从第一个到第十个依次为“C:\Users\001”、“C:\Users\002”、“C:\Users\003”、“C:\Users\004”、“C:\Users\005”、“C:\Users\006”、“C:\Users\007”、“C:\Users\008”、“C:\Users\009”、“C:\Users\010”。此时生成的指定文件的文件路径为“C:\Users\011”。则删除系统变量数组A的第一个元素“C:\Users\001”,将剩余元素的位置依次前移,此时则第十个元素未赋值,则将“C:\Users\011”赋值给第十个元素,生成新的系统变量数组A。此时系统变量数组A的每个元素从第一个到第十个依次为“C:\Users\002”、“C:\Users\003”、“C:\Users\004”、“C:\Users\005”、“C:\Users\006”、“C:\Users\007”、“C:\Users\008”、“C:\Users\009”、“C:\Users\010”、“C:\Users\011”。
步骤544:将文件路径作为字符串赋值给系统变量数组中第一个未初始化的元素。
举例说明:
当前系统变量数组A的长度10,类型为字符串类型,而此时系统变量数组A中的有效元素为5个,此时这五个元素从第一个到第五个依次为“C:\Users\001”、“C:\Users\002”、“C:\Users\003”、“C:\Users\004”、“C:\Users\005”。此时生成的指定文件的文件路径为“C:\Users\006”。则将“C:\Users\006”赋值给第6个元素(此时的未赋值的第六个元素即为系统变量数组A中第一个未初始化的元素),生成新的系统变量数组 A。此时系统变量数组A的有效元素依次为“C:\Users\001”、“C:\Users\002”、“C:\Users\003”、“C:\Users\004”、“C:\Users\005”、“C:\Users\006”。当在生成文件路径“C:\Users\007”时,则赋值给系统变量数组A中的第7个元素。
可以理解,本实施例中系统变量数组的长度根据实际需求进行设置,上述的长度仅为示例,不做具体限定。
步骤55:在人机界面显示系统变量数组中有效元素对应的按钮。
在一些实施例中,在人机界面显示的按钮是虚拟的触控按钮,按钮的个数为系统变量数组中的有效元素的数量。在按钮下方可以显示对应有效元素生成的时间,以供用户参考。
在一些实施例中,按钮的个数以预设数量进行显示。预设数量小于或等于系统变量数组的长度。如系统变量数组的长度为10,预设数量可以为8。当系统变量数组中的有效元素的数量小于预设数量,则显示有效元素的数量个按钮,当系统变量数组中的有效元素的数量大于或等于预设数量,则按照有效元素的生成时间降序排列,从前到后选择预设数量元素进行按钮显示。
步骤56:响应于对目标按钮的选择,获取与目标按钮对应的第一调用指令。
在一些实施例中,当人机界面上的任意按钮被选择,则会触发相应的指令,在这里,目标按钮对应的系统变量数组中的元素。在目标按钮的第一调用指令时,也会获取目标按钮对应的系统变量数组中的元素。
步骤57:解析第一调用指令,以调用执行函数,以及从系统变量数组中获取与第一调用指令对应的第一示教程序的文件路径。
在本实施例中,执行函数为系统函数。例如:调用的系统函数为RCF (Remote CallFramework,远程调用框架)接口函数。从系统变量数组中获取与第一调用指令对应的第一示教程序的文件路径的方式是对调用指令解析可获得一个系统变量数组中数组下标,此数组下标对应的内容为数组中的对应元素,即文件路径。
步骤58:将文件路径作为参数传输至执行函数。
在本实施例中,执行函数是一个有参函数,其中可以传入两个参数,一个是为系统变量数组,一个为整型数值。其中,整型数值大于等于0 且小于系统变量数组的长度。系统函数根据整型数值从系统变量数组中找到对应数值的元素的值,因元素的值为文件路径,则可根据此路径找到第一目标示教程序。如人机界面有10个按钮,依次对应的是系统变量数组中的10个元素,当选择第6个按钮时,则会生成一个整型数值5 与系统变量数组一同传入执行函数,然后执行函数根据整型数值5找到系统变量数组中的第6个元素。
在本实施例中,执行函数是一个有参函数,其中可以传入一个参数,这个传输的参数指的是系统变量数组中的元素的值。这个元素的值是在选择目标按钮时从系统变量数组中得到的,因元素的值为文件路径,则可根据此路径找到第一示教程序。
步骤59:通过执行函数基于文件路径加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。
在一些实施例中,系统函数在得到文件路径后,对文件路径对应的第一目标示教程序进行加载,即将第一目标示教程序的存放至执行结构体中并进行执行,以使机器人执行对应于第一目标示教程序生成时被拖动的动作。
通过上述方式,利用系统变量数组存放多个示教程序的文件路径,并使人机界面上提供的多个与示教程序相关的按钮,在任一按钮被选择后,将其对应的系统变量数组的元素传入执行函数,通过执行函数执行示教程序进行拖动示教动作的回放,实现了对多个示教程序的存放以及可供选择性的回放或执行,便于不同示教动作之间的对比调试,以及在工作中需要更换动作时,无需再进行示教,可从多个按钮中进行选择,提高工作效率。
参阅图8,图8为本申请提供的机器人一实施例的结构示意图,机器人80包括处理器81以及与处理器81连接的存储器82;存储器82用于存储程序数据,处理器81用于执行程序数据,用于实现以下方法:
获取机器人被执行拖动示教时所生成的多个示教程序,以及将多个示教程序的文件路径存储在机器人的系统变量数组中,系统变量数组为全局变量数组;获取第一调用指令;将第一调用指令对应的第一示教程序的文件路径传输至执行函数;通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。
可以理解,处理器81用于执行程序数据时,还用于实现上述任一实施例的方法,具体步骤请参考上述实施例,这里不做赘述。
参阅图9,图9是本申请提供的计算机存储介质一实施例的结构示意图,计算机存储介质90用于存储程序数据91,程序数据91在被处理器执行时,用于实现以下的方法步骤:获取机器人被执行拖动示教时所生成的多个示教程序,以及将多个示教程序的文件路径存储在机器人的系统变量数组中,系统变量数组为全局变量数组;获取第一调用指令;将第一调用指令对应的第一示教程序的文件路径传输至执行函数;通过执行函数加载第一示教程序,以使机器人执行第一示教程序对应的拖动示教动作。
可以理解的,程序数据91在被处理器执行时,还用于实现上述任一实施例的方法。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等) 或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (9)
1.一种机器人拖动示教的方法,其特征在于,所述机器人包括人机界面,所述方法包括:
获取机器人被执行拖动示教时所生成的多个示教程序,以及将所述多个示教程序的文件路径存储在所述机器人的系统变量数组中,所述系统变量数组为全局变量数组;
在所述人机界面显示所述系统变量数组中有效元素对应的按钮;
响应于对目标按钮的选择,获取与所述目标按钮对应的第一调用指令;
将所述第一调用指令对应的第一示教程序的所述文件路径传输至执行函数;
通过所述执行函数加载所述第一示教程序,以使所述机器人执行所述第一示教程序对应的拖动示教动作。
2.根据权利要求1所述的方法,其特征在于,
所述将所述第一调用指令对应的第一示教程序的所述文件路径传输至执行函数,包括:
解析所述第一调用指令,以调用所述执行函数,以及从所述系统变量数组中获取与所述第一调用指令对应的所述第一示教程序的所述文件路径;
将所述文件路径作为参数传输至所述执行函数;
所述通过所述执行函数加载所述第一示教程序,以使所述机器人执行所述第一示教程序对应的拖动示教动作,包括:
通过所述执行函数基于所述文件路径加载所述第一示教程序,以使所述机器人执行所述第一示教程序对应的拖动示教动作。
3.根据权利要求1所述的方法,其特征在于,
所述将所述多个示教程序的文件路径存储在所述机器人的系统变量数组中,包括:
获取当前一个示教程序的文件路径;
判断所述系统变量数组的有效元素数量是否等于所述系统变量数组的长度;
若是,将所述系统变量数组的第一个元素删除,剩余的元素在所述系统变量数组的位置依次前移,将所述文件路径作为字符串赋值给所述系统变量数组中未赋值的元素;
若否,将所述文件路径作为字符串赋值给所述系统变量数组中第一个未初始化的元素。
4.根据权利要求1所述的方法,其特征在于,所述获取所述机器人被执行拖动示教时所生成的多个示教程序之前,所述方法还包括:
获取所述机器人被执行拖动示教时的多个连续位置的位置信息;
对所述多个连续位置的位置信息进行处理,以生成所述多个示教程序。
5.根据权利要求4所述的方法,其特征在于,
所述获取所述机器人被执行拖动示教时的多个连续位置的位置信息,包括:
获取位置记录指令;
基于所述位置记录指令,判断所述机器人被拖动示教执行动作时的当前位置与前一位置的距离是否大于设定阈值;
若是,则记录所述当前位置的位置信息,以进一步获取到所述多个连续位置的位置信息。
6.根据权利要求4所述的方法,其特征在于,
所述对所述多个连续位置的位置信息进行处理,以生成所述多个示教程序,包括:
将所述多个连续位置的位置信息转换为动作指令;
将所述动作指令添加至示教程序模板中,以生成所述多个示教程序。
7.根据权利要求4所述的方法,其特征在于,
所述获取所述机器人被执行拖动示教时的多个连续位置的位置信息,还包括:
在获取所述机器人被执行拖动示教时的多个连续位置的位置信息时,获取所述机器人的控制指令;
所述对所述多个连续位置的位置信息进行处理,以生成所述多个示教程序,包括:
对所述多个连续位置的位置信息和所述控制指令进行处理,以生成所述多个示教程序。
8.一种机器人,其特征在于,所述机器人包括处理器以及与所述处理器连接的存储器;
所述存储器用于存储程序数据,所述处理器用于执行所述程序数据,以实现如权利要求1-7任一项所述的方法。
9.一种计算机存储介质,其特征在于,所述计算机存储介质用于存储程序数据,所述程序数据在被处理器执行时,用于实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414850.1A CN113733107B (zh) | 2020-05-15 | 2020-05-15 | 机器人拖动示教的方法、机器人及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010414850.1A CN113733107B (zh) | 2020-05-15 | 2020-05-15 | 机器人拖动示教的方法、机器人及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113733107A CN113733107A (zh) | 2021-12-03 |
CN113733107B true CN113733107B (zh) | 2022-10-18 |
Family
ID=78723565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010414850.1A Active CN113733107B (zh) | 2020-05-15 | 2020-05-15 | 机器人拖动示教的方法、机器人及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113733107B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113946156A (zh) * | 2021-12-20 | 2022-01-18 | 广州朗国电子科技股份有限公司 | 一种轮式机器人的运动路径示教控制方法及控制系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5687377A (en) * | 1995-10-06 | 1997-11-11 | Electronic Data Systems Corporation | Method for storing variables in a programming language |
CN107322571A (zh) * | 2017-08-11 | 2017-11-07 | 广州亮点装备技术有限公司 | 一种串并联拖动示教机器人 |
CN107544311A (zh) * | 2017-10-20 | 2018-01-05 | 高井云 | 工业机器人手执示教的辅助装置和方法 |
CN110271009B (zh) * | 2019-05-30 | 2021-01-19 | 杭州电子科技大学 | 基于plc仿机器人指令实现机械手示教功能方法 |
CN110561421B (zh) * | 2019-08-09 | 2021-03-19 | 哈尔滨工业大学(深圳) | 机械臂间接拖动示教方法及装置 |
-
2020
- 2020-05-15 CN CN202010414850.1A patent/CN113733107B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113733107A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1310844B1 (en) | Simulation device | |
Ostanin et al. | Interactive robot programing using mixed reality | |
US10521522B2 (en) | Robot simulator and file generation method for robot simulator | |
JP6343353B2 (ja) | ロボットの動作プログラム生成方法及びロボットの動作プログラム生成装置 | |
US20150151431A1 (en) | Robot simulator, robot teaching device, and robot teaching method | |
EP2129498A1 (en) | Method and apparatus for programming an industrial robot | |
CN114932555B (zh) | 机械臂协同作业系统及机械臂控制方法 | |
CN113733107B (zh) | 机器人拖动示教的方法、机器人及计算机存储介质 | |
CN109807896B (zh) | 运动控制方法和系统、控制设备及存储介质 | |
CN110000753B (zh) | 用户交互方法、控制设备及存储介质 | |
CN109807898B (zh) | 运动控制方法、控制设备及存储介质 | |
CN109910004B (zh) | 用户交互方法、控制设备及存储介质 | |
CN109048928B (zh) | 一种机器人控制程序的生成方法及装置 | |
WO2020066949A1 (ja) | ロボットの経路決定装置、ロボットの経路決定方法、プログラム | |
JP7151713B2 (ja) | ロボットシミュレータ | |
CN115703227A (zh) | 机器人的控制方法、机器人以及计算机可读存储介质 | |
Riedl et al. | A fast robot playback programming system using video editing concepts | |
CN110000775B (zh) | 设备管理方法、控制设备及存储介质 | |
Pichler et al. | Towards robot systems for small batch manufacturing | |
Wojtynek et al. | Assisted planning and setup of collaborative robot applications in modular production systems | |
CN110666804B (zh) | 一种用于双机器人协作的运动规划方法及系统 | |
CN115816459A (zh) | 机器人控制方法、装置、计算机设备、存储介质和产品 | |
CN113043250B (zh) | 一种机器人控制系统及方法 | |
CN110253568B (zh) | 机器人控制方法、系统、设备及存储介质 | |
WO2020059342A1 (ja) | ロボットシミュレータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |