一种基于嵌入式控制器的机器人控制方法和装置制造方法
【专利摘要】本发明适用于机器人控制领域,提供了一种基于嵌入式控制器的机器人控制方法和装置,所述基于嵌入式控制器的机器人控制方法包括:接收上位机的G代码;根据所述G代码,采用三次样条插值算法生成至少两个插值点;根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,所述第一插值点和所述第二插值点为相邻的所述插值点;输出所述脉冲个数的脉冲以控制所述机器人的机械手移动,依次类推,直到移动到目标插值点并控制机械手在该目标插值点执行动作。
【专利说明】—种基于嵌入式控制器的机器人控制方法和装置
【技术领域】
[0001]本发明属于机器人控制领域,尤其涉及一种基于嵌入式控制器的机器人控制方法和装置。
【背景技术】
[0002]エ业机器人是面向エ业领域的多关节机械手或多自由度的机器人。エ业机器人是自动执行工作的机器装置,是靠自身动カ和控制能力来实现各种功能的ー种机器。它可以接受人类指挥,也可以按照预先编排的程序运行,现代的エ业机器人还可以根据人工智能技术制定的原则纲领行动。因此,应用エ业机器人可以有效地提高工业生产率,实现エ业自动化。
[0003]目前,主流的用于エ业机器人的运动控制器由个人计算机(Personal Computer,PC)和运动控制卡组成;其中,PC作为上位机,用于人机交互(例如:接收录入的參数,显示机器人工作状态;另外,还用于把控制机器人的机械手动作的运动控制命令通过通讯总线传送至下位机);其中,运动控制卡作为下位机,用于接收控制机器人的机械手动作的运动控制命令,并机器人运动。对于目前采用PC和运动控制卡组成的运动控制器,该种运动控制器是机器人控制系统普遍采用的控制器,相对比较成熟、可靠。同时,研究采用嵌入式控制器的机器人对于以低成本、数字化、柔性化等为基本要求的机器人系统显得尤为合适,但是目前仍然没有ー套比较完善的采用嵌入式控制器的机器人的解决方案。
【发明内容】
[0004]本发明的目的在于提供一种基于嵌入式控制器的机器人控制的方法,以解采用PC和运动控制器卡组成的运动控制器,成本高的问题。
[0005]—方面,本发明提供一种基于嵌入式控制器的机器人控制方法,所述基于嵌入式控制器的机器人控制方法包括:
[0006]接收上位机的G代码;
[0007]根据所述G代码,采用三次样条插值算法生成至少两个插值点;
[0008]根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,所述第一插值点和所述第二插值点为相邻的所述插值点;
[0009]输出所述脉冲个数的脉冲以控制所述机器人的机械手移动。
[0010]一方面,本发明还提供一种基于嵌入式控制器的机器人控制装置,所述基于嵌入式控制器的机器人控制装置包括:
[0011]G代码接收単元,用于接收上位机的G代码;
[0012]插值点生成単元,用于根据所述G代码,采用三次样条插值算法生成至少两个插值点;
[0013]脉冲个数计算单元,用于根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,所述第一插值点和所述第二插值点为相邻的所述插值点;[0014]机械手移动单元,用于输出所述脉冲个数的脉冲以控制所述机器人的机械手移动。
[0015]一方面,本发明还提供ー种嵌入式控制器,所述嵌入式控制器包括上述的基于嵌入式控制器的机器人控制装置。
[0016]本发明的有益效果:在上位机上编写G代码;然后,嵌入式控制器下载该G代码并采用三次样条插值算法生成至少两个插值点;然后,根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,向电机输出所述脉冲个数的脉冲以控制所述机器人的机械手移动,依次类推,直到移动到目标插值点并在该目标插值点执行动作。
【专利附图】
【附图说明】
[0017]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的ー些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018]图1是本发明实施例一提供的基于嵌入式控制器的机器人控制方法的实现流程图;
[0019]图2是本发明实施例ニ提供的基于嵌入式控制器的机器人控制装置的组成结构图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进ー步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021]为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0022]需要说明的是,本发明实施例采用嵌入式控制器包括ARM处理器。上位机为PC。
[0023]实施例一:
[0024]图1示出了实施例一提供的基于嵌入式控制器的机器人控制方法的工作流程,其实现流程详述如下:
[0025]作为本发明ー实施例,在步骤Sll之前,针对每个机械手,PC预先将机械手的參数发送至嵌入式控制器,所述參数包括:关节齿轮传动比、伺服电机电子齿轮比、伺服电机编码器脉冲数以及关节臂长等。这样,待嵌入式控制器完成该机械手的參数设置之后,嵌入式控制器可以断开与PC的通信(降低PC与机械手的耦合)。
[0026]另外,在PC上进行G代码编写,对G代码进行语法检查以及译码;优选的是,PC还提供语法检查功能,以对编辑好的G代码进行语法编译检错,例如:命令号输入错误、非法字符输入、命令參数输入错误、命令參数格式错误等;一旦检查到语法错误,PC会在信息提示框中弹出错误命令行号和错误类型,然后,用户可以根据这些提示改正G代码。待完成译码后,将译码生成的G代码转换成通信代码以便于PC将该通信代码发送至嵌入式控制器;优选的是,PC可以通过串ロ将该通信代码发送至嵌入式控制器;优选的是,PC可以通过远程终端装置(Remote Terminal Unit, RTU)传输方式将该通信代码发送至嵌入式控制器。完成上述操作后,执行步骤SI I。
[0027]作为本发明ー实施例,步骤S11,接收上位机的G代码。
[0028]需要说明的是,嵌入式控制器将接收到的该通信代码转换会编译后的G代码以完成接收PC的G代码。
[0029]作为本发明ー实施例,所述嵌入式控制器还具有存储器,该存储器用于存储编译后的G代码(包括G代码的命令段和G代码的參数段),还用于存储机械手參数、脉冲个数以及运动时间单位等參数。优选的是,所述存储器为FLASH闪存。
[0030]步骤S12,根据所述G代码,采用三次样条插值算法生成至少两个插值点。
[0031]需要说明的是,采用三次样条插值算法分别生成的插值点包括:当前插值点(当前机械手所在的位置)和目标插值点(待执行动作的位置)。
[0032]在本实施例中,在控制机械手执行动作时,需要采用三次样条插值算法计算出该机械手从当前插值点需要经过哪些插值点到达待执行动作的目标插值点以执行动作。以五自由度的机械手为例,其中,计算出分别在第一自由度、第二自由度以及第三自由度上需要经过的插值点以控制机械手按照预设轨迹(由依次经过的插值点连接组成)到达目标点,然后确定在第四自由度和第五自由度需要经过的插值点以完成操作。
[0033]优选的是,通过三次样条插值算法计算出从当前插值点到目标插值点需要经过的插值点以实现直线插值或圆弧插值等。
[0034]优选的是,为了保证机械手从当前插值点移动到目标插值点的连续性和平滑性,所述三次样条插值算法为:五段三次样条插值算法或七段三次样条插值算法。
[0035]值得说明的是,采用七段三次样条插值算法生成从当前插值点到目标插值点的插值点,从而,从当前插值点到目标插值点的移动过程分为七段:加加速段、匀加速段、减加速段、匀速段、加減速段、匀减速段以及减減速段;其中,移动过程中的七段分别包括至少ー个插值点,需要说明的是,为了更精确地到达目标插值点,匀速段包含的插值点较少,而隔当前插值点近的加加速段和隔目标插值点近的减减速段包含的插值点均较多。
[0036]步骤S13,根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,所述第一插值点和所述第二插值点为相邻的所述插值点。
[0037]在本实施例中,待确定好从当前插值点到目标插值点而需经过的插值点后,针对从所述第一插值点到所述第二插值点的过程,根据运动学逆解算法确定脉冲个数,通过向电机输出该脉冲个数的脉冲以控制机械手从所述第一插值点移动到所述第二插值点。依次类推,将机械手从当前插值点到目标插值点。
[0038]作为本发明ー实施例,所述根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数的步骤,还包括:
[0039]接收上位机的所述机器人的机械手參数;
[0040]通过所述机器人运动学逆解算法处理所述机械手參数以计算出从第一插值点移动到第二插值点的脉冲个数。
[0041]需要说明的是,所述机械手參数包括:电机通过ー个脉冲控制机械手移动的距离、机械手的大小等。
[0042]这样,对于不同的机器人,该机器人可能具有不同的机械手,因此,电机输出的一个脉冲控制机械手移动的距离也不同。因此,用户可以预先通过PC设置机械手參数,然后嵌入式控制器从PC接收该机械手參数并存储在存储器中。
[0043]与此同时,在根据所述机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数时,针对所述机械手參数确定出正确的脉冲个数以将机械手从第一插值点精确移动到第二插值点。
[0044]作为本发明ー实施例,所述脉冲个数包括:所述机器人的机械手具有至少ー个自由度,根据机器人运动学逆解算法计算出的从第一插值点移动到第二插值点的每个所述自由度的脉冲个数。
[0045]在本实施例中,嵌入式处理器控制至少ー个机械手,每ー个机械手也至少具有一个自由度;例如:四自由度的エ业机器人,该エ业机器人的第一自由度和第二自由度用于定位运动轨迹,该エ业机器人的第三自由度和第四自由度用于控制机械手包含的执行器执行动作。因此,当需要移动机械手到目标插值点以执行动作时,针对每个自由度,需要计算出用于控制机械手在每个自由度移动的脉冲个数。
[0046]步骤S14,输出所述脉冲个数的脉冲以控制所述机器人的机械手移动。
[0047]在本实施例中,嵌入式控制器向电机输出所述脉冲个数的脉冲以控制机械手从第一插值点移动到第二插值点,待依次经过每个插值点后实现将机械手从当前插值点移动到目标插值点。
[0048]作为本发明ー实施例,所述根据所述G代码,采用三次样条插值算法生成至少两个插值点的步骤具体为:
[0049]根据所述G代码,采用三次样条插值算法生成至少两个插值点和运动时间单位;
[0050]于此同时,对于嵌入式控制器向电机输出的所述脉冲个数的脉冲包含的姆个脉冲,所述脉冲具体为:一个所述脉冲的持续时间为所述运动时间单位的脉冲。
[0051]在本实施例中,根据所述G代码确定需要在目标插值点执行的动作后,采用三次样条插值算法确定从当前插值点到目标插值点需要经过的插值点,还确定嵌入式控制器向电机输出的单个脉冲的持续时间(运动时间单位)。由于ー个脉冲的持续时间増加或减小,相应地,该脉冲维持最大值的时间也增加或减小。从而,向电机输出的ー个脉冲,以控制机械手移动的距离也相应地增加或减小。
[0052]作为本发明一优选实施例,根据机械手參数调整所述运动时间单位,因此,通过调整所述运动时间单位以控制所述电机通过ー个脉冲控制机械手移动的距离。从而,可以根据不同的机械手參数调整所述运动时间单位,控制机械手按照轨迹精确移动从第一插值点移动到第二插值点。
[0053]作为本发明一优选实施例,对于嵌入式控制器向电机输出的所述脉冲个数的脉冲包含的每个脉冲,每个所述脉冲的脉冲宽度由所述运动时间单位确定。具体地,每个所述脉冲保持最大值的持续时间为所述运动时间单位。
[0054]实施例ニ:
[0055]需要说明的是,本实施例提供的基于嵌入式控制器的机器人控制装置与实施例一提供的基于嵌入式控制器的机器人控制方法相互适用。
[0056]图2示出了本发明实施例ニ提供的基于嵌入式控制器的机器人控制装置的组成结构,为了便于描述,仅示出了与本发明实施例相关的部分。
[0057]本实施例提供的基于嵌入式控制器的机器人控制装置,所述基于嵌入式控制器的机器人控制装置包括:
[0058]G代码接收単元21,用于接收上位机的G代码;
[0059]插值点生成単元22,用于根据所述G代码,采用三次样条插值算法生成至少两个插值点;
[0060]脉冲个数计算单元23,用于根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,所述第一插值点和所述第二插值点为相邻的所述插值点;
[0061]机械手移动单元24,用于输出所述脉冲个数的脉冲以控制所述机器人的机械手移动。
[0062]作为本发明ー实施例,为了保证机械手从当前插值点移动到目标插值点的连续性和平滑性,所述三次样条插值算法为:五段三次样条插值算法或七段三次样条插值算法。
[0063]作为本发明ー实施例,所述插值点生成単元22包括:
[0064]插值点和运动时间单位生成単元221,用于根据所述G代码,采用三次样条插值算法生成至少两个插值点和运动时间单位;
[0065]于此同时,对于嵌入式控制器向电机输出的所述脉冲个数的脉冲包含的姆个脉冲,所述脉冲具体为:一个所述脉冲的持续时间为所述运动时间单位的脉冲。
[0066]作为本发明ー实施例,所述脉冲个数计算单元23包括:
[0067]机械手參数単元231,用于接收上位机的所述机器人的机械手參数;
[0068]脉冲个数计算子単元232,用于通过所述机器人运动学逆解算法处理所述机械手參数以计算出从第一插值点移动到第二插值点的脉冲个数。
[0069]作为本发明ー实施例,所述脉冲个数包括:
[0070]所述机器人的机械手具有至少ー个自由度,根据机器人运动学逆解算法计算出的从第一插值点移动到第二插值点的每个所述自由度的脉冲个数。
[0071]作为本发明ー实施例,本发明还提供ー种嵌入式控制器,所述嵌入式控制器包括实施例二所述的基于嵌入式控制器的机器人控制装置。
[0072]在本实施例中,所述嵌入式控制器还提供一些辅助功能,包括:暂停功能、各轴点动功能以及回原点功能。优选的是,每个辅助功能分别通过外接的开关实现,该开关通过I/0接ロ与嵌入式控制器连接;当用户触发某一开关时,启动嵌入式控制器中的相应辅助功倉^:。
[0073]优选的是,暂停功能由一个按钮开关控制,用于暂停机械手运动;改变该按钮开关的状态后,可以继续控制机械手运动。
[0074]优选的是,各轴点动功能由多个常开开关(常开开关的个数根据自由度而定)控制,例如:控制第一自由度进行正转、控制第一自由度进行反转、控制第二自由度正转、控制第二自由度反转。
[0075]优选的是,回原点功能由一个常开开关控制,用于控制机械手从任意位置回到原始起点(原始起点可以通过编程预先设定)。
[0076]在本发明实施例中,在上位机上编写G代码;然后,嵌入式控制器下载该G代码并采用三次样条插值算法生成至少两个插值点;然后,根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,向电机输出所述脉冲个数的脉冲以控制所述机器人的机械手移动,依次类推,直到移动到目标插值点并在该目标插值点执行动作。[0077]本领域技术人员可以理解为上述实施例ニ包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能単元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0078]本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于ー计算机可读取存储介质中,所述的存储介质,包括R0M/RAM、磁盘、光盘等。
[0079]以上内容是结合具体的优选实施方式对本发明所作的进ー步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属【技术领域】的普通技术人员来说,在不脱离本发明构思的前提下做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明由所提交的权利要求书确定的专利保护范围。
【权利要求】
1.一种基于嵌入式控制器的机器人控制方法,其特征在干,所述基于嵌入式控制器的机器人控制方法包括: 接收上位机的G代码; 根据所述G代码,采用三次样条插值算法生成至少两个插值点; 根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,所述第一插值点和所述第二插值点为相邻的所述插值点; 输出所述脉冲个数的脉冲以控制所述机器人的机械手移动。
2.如权利要求1所述的基于嵌入式控制器的机器人控制方法,其特征在于,所述三次样条插值算法为:五段三次样条插值算法或七段三次样条插值算法。
3.如权利要求1所述的基于嵌入式控制器的机器人控制方法,其特征在于,所述根据所述G代码,采用三次样条插值算法生成至少两个插值点的步骤具体为: 根据所述G代码,采用三次样条插值算法生成至少两个插值点和运动时间单位; 所述脉冲具体为:一个所述脉冲的持续时间为所述运动时间单位的脉冲。
4.如权利要求1所述的基于嵌入式控制器的机器人控制方法,其特征在于,所述根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数的步骤,还包括: 接收上位机的所述机器人的机械手參数;` 通过所述机器人运动学逆解算法处理所述机械手參数以计算出从第一插值点移动到第二插值点的脉冲个数。
5.如权利要求1所述的基于嵌入式控制器的机器人控制方法,其特征在于,所述脉冲个数包括:所述机器人的机械手具有至少ー个自由度,根据机器人运动学逆解算法计算出的从第一插值点移动到第二插值点的每个所述自由度的脉冲个数。
6.一种基于嵌入式控制器的机器人控制装置,其特征在干,所述基于嵌入式控制器的机器人控制装置包括: G代码接收単元,用于接收上位机的G代码; 插值点生成単元,用于根据所述G代码,采用三次样条插值算法生成至少两个插值点; 脉冲个数计算单元,用于根据机器人运动学逆解算法计算出从第一插值点移动到第二插值点的脉冲个数,所述第一插值点和所述第二插值点为相邻的所述插值点; 机械手移动单元,用于输出所述脉冲个数的脉冲以控制所述机器人的机械手移动。
7.如权利要求5所述的基于嵌入式控制器的机器人控制装置,其特征在干,所述三次样条插值算法为:五段三次样条插值算法或七段三次样条插值算法。
8.如权利要求5所述的基于嵌入式控制器的机器人控制装置,其特征在于,所述插值点生成单元包括: 插值点和运动时间单位生成単元,用于根据所述G代码,采用三次样条插值算法生成至少两个插值点和运动时间单位; 所述脉冲具体为:一个所述脉冲的持续时间为所述运动时间单位的脉冲。
9.如权利要求5所述的基于嵌入式控制器的机器人控制装置,其特征在干,所述脉冲个数计算单元包括: 机械手參数単元,用于接收上位机的所述机器人的机械手參数;脉冲个数计算子単元,用于通过所述机器人运动学逆解算法处理所述机械手參数以计算出从第一插值点移动到第二插值点的脉冲个数。
10.如权利要求5所述的基于嵌入式控制器的机器人控制装置,其特征在于,所述脉冲个数包括: 所述机器人的机械手具有至少ー个自由度,根据机器人运动学逆解算法计算出的从第一插值点移动到第二插值 点的每个所述自由度的脉冲个数。
【文档编号】B25J9/18GK103552072SQ201310495900
【公开日】2014年2月5日 申请日期:2013年10月21日 优先权日:2013年10月21日
【发明者】何凯, 汪正东, 方海涛, 杜如虚 申请人:深圳先进技术研究院