1.本技术主要涉及工业机器人领域,具体地涉及一种轨迹圆滑过渡方法、装置及计算机可读介质。
背景技术:2.工业机器人在工业自动化的发展中发挥的作用越来越突出,轨迹规划是机器人控制系统中的核心功能。工业机器人基本轨迹通常由直线轨迹、圆弧轨迹和关节空间点到点轨迹组成,而在实际应用中的各种复杂轨迹都是以基本轨迹依次组合衔接而成。前后两条轨迹的衔接点处通常存在不光滑拐角,因此机器人在衔接点处通常需要减速到停止,再沿后一条轨迹开始加速运行,否则会因速度和加速度的突变而产生严重的冲击,使机器人发生抖动甚至损坏机器人机械部件。然而在各种实际应用中,要求机器人轨迹平滑没有拐角,尽量避免速度上的波动或者以较高的速度通过衔接点以提高工作节拍。为了满足这样的实际需求,就需要在前后两条轨迹间插入一段过渡轨迹,并且要求这段过渡轨迹足够平滑,能够使得机器人能以一个较为平顺的速度从前段轨迹切入后段轨迹。
3.比较常见的轨迹圆滑过渡算法如圆弧过渡,即通过一段圆弧连接前后两条轨迹。圆弧分别与前一条轨迹和后一条轨迹相切于点s与点e,机器人沿前一条轨迹运行至s即切入圆弧形过渡轨迹,运行至e即切入后一条轨迹。圆弧过渡在过渡段与轨迹衔接处存在加速度的跳变,会导致机械震动,且圆弧只能解决两条共面轨迹间的过渡问题,当两条轨迹不共面或者两条轨迹只有姿态移动而无位置移动时,无法使用圆弧连接前后两条轨迹,限制了圆弧过渡的实际应用的范围。
技术实现要素:4.本技术所要解决的技术问题是提供一种轨迹圆滑过渡方法、装置及计算机可读介质,解决笛卡尔空间过渡算法难以处理两条轨迹不共面或者两条轨迹只有姿态移动而无位置移动时的圆滑问题。
5.为了解决上述技术问题,本技术提供一种轨迹圆滑过渡方法,包括:获取已规划完成的第一轨迹、第二轨迹、第一轨迹和第二轨迹的连接点以及过渡半径;以所述连接点为圆心,以所述过渡半径为半径确定球体,与所述第一轨迹相交于第一相交点,与所述第二轨迹相交于第二相交点;分别计算所述第一相交点在所述第一轨迹上对应的第一时刻和所述第二相交点在所述第二轨迹上对应的第二时刻;根据所述第一时刻和所述第二时刻设置过渡时间;将所述第一轨迹中最后运行时间为所述过渡时间的第一子轨迹与所述第二轨迹中开始运行时间为所述过渡时间的第二子轨迹进行轨迹融合,生成过渡段轨迹;将所述过渡段轨迹分别与所述第一相交点和所述第二相交点连接,生成整段连续运行轨迹。
6.在本发明一实施例中,通过二分法查找计算所述第一相交点在所述第一轨迹上对应的第一时刻和/或通过二分法查找计算所述第二相交点在所述第二轨迹上对应的第二时刻。
7.在本发明一实施例中,通过二分法查找计算所述第一相交点在所述第一轨迹上对应的第一时刻包括:
8.a.定义所述第一轨迹上的第一位置和第二位置,且设置所述第一位置为所述第一轨迹的起点,所述第二位置为所述连接点;
9.b.定义从所述第一位置运动到所述第二位置所需时间的一半定义为第一中间时刻,且定义所述第一中间时刻对应在所述第一轨迹上的位置为第一中间点;
10.c.根据所述第一中间点与所述连接点的坐标计算所述第一中间点与所述连接点之间的距离;
11.d.若所述距离大于所述过渡半径,则将所述第一中间点更新为所述第一位置,将所述第一中间时刻更新为所述第一位置对应的时刻,反之则将所述第一中间点更新为所述第二位置,将所述第一中间时刻更新为所述第二位置对应的时刻;
12.e.若所述第一位置和所述第二位置之间的距离小于第一允许误差范围,则将所述第一位置作为所述第一相交点,所述第一位置对应的时刻作为所述第一时刻,否则返回步骤b继续迭代。
13.在本发明一实施例中,通过二分法查找计算所述第二相交点在所述第二轨迹上对应的第二时刻包括:
14.a.定义所述第二轨迹上的第三位置和第四位置,且设置所述第三位置为所述连接点,所述第四位置为所述第二轨迹的终点;
15.b.定义从所述第三位置运动到所述第四位置所需时间的一半定义为第二中间时刻,且定义所述第二中间时刻对应在所述第二轨迹上的位置为第二中间点;
16.c.根据所述第二中间点与所述连接点的坐标计算所述第二中间点与所述连接点之间的距离;
17.d.若所述距离大于所述过渡半径,则将所述第二中间点更新为所述第四位置,将所述第二中间时刻更新为所述第四位置对应的时刻,反之则将所述第二中间点更新为所述第三位置,将所述第二中间时刻更新为所述第三位置对应的时刻;
18.e.若所述第三位置和所述第四位置之间的距离小于第二允许误差范围,则将所述第三位置作为所述第二相交点,所述第三位置对应的时刻作为所述第二时刻,否则返回步骤b继续迭代。
19.在本发明一实施例中,根据所述第一时刻和所述第二时刻设置过渡时间包括:取所述第一相交点到所述连接点的运行时间与所述连接点到所述第二相交点的运行时间中的较小值为过渡时间。
20.在本发明一实施例中,将所述第一轨迹中最后运行时间为所述过渡时间的第一子轨迹与所述第二轨迹中开始运行时间为所述过渡时间的第二子轨迹进行轨迹融合,生成过渡段轨迹包括:将所述连接点在笛卡尔空间的坐标代入所述第一轨迹之后反解得到其在关节空间的坐标;将所述第一子轨迹对应的时刻代入所述第一轨迹之后反解得到其在关节空间的第一运行状态信息,第一运行状态信息包括位置、速度和加速度;将所述第二子轨迹对应的时刻代入所述第二轨迹之后反解得到其在关节空间的第二运行状态信息,第二运行状态信息包括位置、速度和加速度;将所述第一运行状态信息和所述第二运行状态信息相加,生成过渡段轨迹。
21.在本发明一实施例中,将所述第一运行状态信息和所述第二运行状态信息相加,生成过渡段轨迹包括:将所述第一运行状态信息的位置和所述第二运行状态信息的位置相加再减去所述连接点在关节空间的坐标,得到所述过渡段轨迹的位置;将所述第一运行状态信息的速度和所述第二运行状态信息的速度相加得到所述过渡段轨迹的速度;将所述第一运行状态信息的加速度和所述第二运行状态信息的加速度相加得到所述过渡段轨迹的加速度。
22.在本发明一实施例中,还包括对所述过渡段轨迹做关节限位校核、电机转速校核与电机转矩校核,如果校核不通过,则减小过渡时间重新进行轨迹融合,之后再次校核,依次重复直到校核通过。
23.为了解决上述技术问题,本技术提供一种轨迹圆滑过渡装置,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如上所述的轨迹圆滑过渡方法。
24.为了解决上述技术问题,本技术提供一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的轨迹圆滑过渡方法。
25.本技术的技术方案相比现有技术的有益效果如下:
26.本技术的轨迹圆滑过渡方法通过在关节空间进行两条轨迹的相互融合,解决了笛卡尔空间过渡算法难以处理两条轨迹不共面或者两条轨迹只有姿态移动而无位置移动时的圆滑问题;通过迭代找到两段轨迹与过渡半径形成球体的交接点,解决了在不规则轨迹中无法找到轨迹段与过渡段的交界点的问题,使得过渡方法能够适用于任何轨迹中。
附图说明
27.为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
28.图1是本技术一实施例的两段轨迹融合生成过渡轨迹的示意图;
29.图2是本技术一实施例的轨迹圆滑过渡方法的流程图;
30.图3是本技术一实施例的轨迹圆滑过渡方法的时序图;
31.图4是本技术一实施例的第一子轨迹与第二子轨迹融合的流程图;
32.图5a~图5c是本技术一实施例的融合时间与过渡轨迹的速度曲线的关系图;
33.图6是本技术一实施例的轨迹圆滑过渡装置的系统框图。
具体实施方式
34.为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
35.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
36.如本技术和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备
也可能包含其他的步骤或元素。
37.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本技术的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
38.此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本技术保护范围的限制。此外,尽管本技术中所使用的术语是从公知公用的术语中选择的,但是本技术说明书中所提及的一些术语可能是申请人按他或她的判断来选择的,其详细含义在本文的描述的相关部分中说明。此外,要求不仅仅通过所使用的实际术语,而是还要通过每个术语所蕴含的意义来理解本技术。
39.本技术中使用了流程图用来说明根据本技术的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
40.图1是本技术一实施例的两段轨迹融合生成过渡段轨迹的示意图。如图1所示,在实际应用中的工业机器人的各种复杂轨迹都是以基本轨迹依次组合衔接而成,在本实施例中,工业机器人的轨迹由第一轨迹11和第二轨迹12衔接而成。第一轨迹11的起点为a,终点为b。第二轨迹12的起点为b,终点为c。第一轨迹11和第二轨迹12的连接点为b。连接点b处存在不光滑拐角,因此,机器人从a运动到b时通常需要减速到停止,再从b加速运动到c。否则会因速度和加速度的突变而产生严重的冲击,使机器人发生抖动甚至损坏机器人机械部件。为了使机器人从第一轨迹11圆滑过渡到第二轨迹12,需要在第一轨迹11和第二轨迹12之间插入过渡段轨迹13,并且过渡段轨迹13需要足够平滑,能够使得机器人能以一个较为平顺的速度从第一轨迹11切入第二轨迹12。
41.图2是本技术一实施例的轨迹圆滑过渡方法200的流程图。如图2所示,轨迹圆滑过渡方法200包括:
42.步骤s21:获取已规划完成的第一轨迹、第二轨迹、第一轨迹和第二轨迹的连接点以及过渡半径。
43.步骤s22:以连接点为圆心,以过渡半径为半径确定球体,与第一轨迹相交于第一相交点,与第二轨迹相交于第二相交点。
44.步骤s23:分别计算第一相交点在第一轨迹上对应的第一时刻和第二相交点在第二轨迹上对应的第二时刻。
45.步骤s24:根据第一时刻和第二时刻设置过渡时间。
46.步骤s25:将第一轨迹中最后运行时间为过渡时间的第一子轨迹与第二轨迹中开始运行时间为过渡时间的第二子轨迹进行轨迹融合,生成过渡段轨迹。
47.步骤s26:将过渡段轨迹分别与第一相交点和第二相交点连接,生成整段连续运行
轨迹。
48.下面将结合图1-2对步骤s21~s26进行详细说明。
49.在步骤s21~s22中,工业机器人已按照规划算法完成了第一轨迹和第二轨迹的规划。本技术对规划算法不作限制。如图1所示,第一轨迹11和第二轨迹12的连接点为b。获取连接点b在笛卡尔空间的坐标,以及获取过渡半径r。过渡半径r的值可以按需设置,并申请对过渡半径r的值不作限制。以连接点b为圆心,以过渡半径r为半径确定球体,与第一轨迹11相交于第一相交点s,与第二轨迹12相交于第二相交点e。第一相交点s为过渡段轨迹13的起点,第二相交点e为过渡段轨迹13的终点。
50.在步骤s23中,如果第一轨迹和/或第二轨迹是规则的空间曲线,则第一轨迹可表示为γ1(t),第二轨迹可表示为γ2(t)。将第一相交点在笛卡尔空间的坐标代入第一轨迹的表达式γ1(t)中,即可计算出第一相交点在第一轨迹上对应的第一时刻。将第二相交点在笛卡尔空间的坐标代入第二轨迹的表达式γ2(t)中,即可计算出第二相交点在第二轨迹上对应的第二时刻。
51.在一些实施例中,第一轨迹和/或第二轨迹可能是不规则的空间曲线,没有基于坐标的空间表达式,即机器人经过第一相交点与第二相交点的时刻并不能被简单的求得。因此需要不断迭代以逼近机器人经过第一相交点对应的第一时刻,以及不断迭代以逼近机器人经过第二相交点对应的第二时刻。在一些实施例中,通过二分法查找计算第一相交点在第一轨迹上对应的第一时刻。通过二分法查找计算第一相交点在第一轨迹上对应的第一时刻包括:
52.a.定义第一轨迹上的第一位置和第二位置,定义第一位置在第一轨迹上的对应的时刻为tm,定义第二位置在第一轨迹上的对应的时刻为tn。设置第一位置的初始位置为第一轨迹的起点,第二位置的初始位置为连接点。
53.b.定义从第一位置运动到第二位置所需时间的一半定义为第一中间时刻th,即th=(t
n-tm)/2。将第一中间时刻对应在第一轨迹上的位置定义为第一中间点。
54.c.根据第一中间点与连接点的坐标计算第一中间点与连接点之间的距离。
55.d.若距离大于过渡半径,则将第一中间点更新为第一位置,将第一中间时刻th更新为第一位置对应的时刻tm;反之则将第一中间点更新为第二位置,将第一中间时刻th更新为第二位置对应的时刻tn。
56.e.若第一位置和第二位置之间的距离小于第一允许误差范围,表示第一位置和第二位置足够接近第一相交点。可以将第一位置作为第一相交点,第一位置对应的时刻tm作为第一时刻,否则返回步骤b继续迭代。第一允许误差范围的值可以按需设置,本技术对此不作限制。
57.在一些实施例中,通过二分法查找计算第二相交点在第二轨迹上对应的第二时刻。通过二分法查找计算第二相交点在第二轨迹上对应的第二时刻包括:
58.a.定义第二轨迹上的第三位置和第四位置,定义第三位置在第二轨迹上的对应的时刻为t
x
,定义第四位置在第二轨迹上的对应的时刻为ty。设置第三位置的初始位置为连接点,第四位置的初始位置为第二轨迹的终点。
59.b.定义从第三位置运动到第四位置所需时间的一半定义为第二中间时刻tz,即tz=(t
y-t
x
)/2,且定义第二中间时刻对应在第二轨迹上的位置为第二中间点。
60.c.根据第二中间点与连接点的坐标计算第二中间点与连接点之间的距离;
61.d.若距离大于过渡半径,则将第二中间点更新为第四位置,将第二中间时刻tz更新为第四位置对应的时刻ty,反之则将第二中间点更新为第三位置,将第二中间时刻tz更新为第三位置对应的时刻t
x
;
62.e.若第三位置和第四位置之间的距离小于第二允许误差范围,表示第三位置和第四位置足够接近第二相交点。则将第三位置作为第二相交点,第三位置对应的时刻t
x
作为第二时刻,否则返回步骤b继续迭代。第二允许误差范围的值可以按需设置,本技术对此不作限制。
63.在步骤s24中,根据第一时刻和第二时刻设置过渡时间包括:将第一相交点对应的第一时刻记为ts,将第二相交点对应的第二时刻记为te。第一轨迹的运行时间为t1,则第一相交点到连接点的运行时间为t
1-ts,第二轨迹上连接点到第二相交点运行时间为te,设置过渡时间为t
1-ts与te二者中的较小值。
64.图3是本技术一实施例的轨迹圆滑过渡方法的时序图。如图3所示,第一轨迹11的运行时间为t1,第二轨迹12的运行时间为t2,过渡时间为t
se
。从时间轴上看,机器人在第一轨迹11上从0时刻开始运行直到t
1-t
se
,过渡时间从t
1-t
se
时刻开始运行直到t1,机器人在第二轨迹12上从t1时刻开始运行直到t1+t
2-t
se
。将第一轨迹中运行时间为[t
1-t
se
,t1]时间段内的第一子轨迹110与第二轨迹中运行时间为[t
1-t
se
,t1]时间段内的第二子轨迹120进行轨迹融合,生成过渡段轨迹。
[0065]
图4是本技术一实施例的第一子轨迹与第二子轨迹融合的流程图400。如图4所示,第一子轨迹与第二子轨迹融合的流程图400包括:
[0066]
步骤s401:将连接点在笛卡尔空间的坐标代入第一轨迹之后反解得到其在关节空间的坐标。反解是指机器人在笛卡尔空间的坐标已知的情况下,求机器人每个轴在关节空间中位置的过程。将连接点在笛卡尔空间的坐标代入第一轨迹之后,反解得到其在关节空间的坐标jb。
[0067]
步骤s402:将第一子轨迹对应的时刻代入第一轨迹之后反解得到其在关节空间的第一运行状态信息,第一运行状态信息包括位置、速度和加速度。第一子轨迹对应的时刻t属于[t1-tse,t1]区间内,将第一子轨迹对应的时刻t代入第一轨迹的表达式γ1(t)之后反解得到其在关节空间的第一运行状态信息,第一运行状态信息包括位置j1(t)、速度j1’
(t)和加速度j
1”(t)。
[0068]
步骤s403:将第二子轨迹对应的时刻代入第二轨迹之后反解得到其在关节空间的第二运行状态信息,第二运行状态信息包括位置、速度和加速度。第二子轨迹对应的时刻t也属于[t1-tse,t1]区间内,将第二子轨迹对应的时刻t-(t
1-t
se
)代入第二轨迹的表达式γ2(t)之后反解得到其在关节空间的第二运行状态信息,第二运行状态信息包括位置j2[t-(t
1-t
se
)]、速度j2’
[t-(t
1-t
se
)]和加速度j
2”[t-(t
1-t
se
)]。
[0069]
步骤s404:将第一运行状态信息和第二运行状态信息相加,生成过渡段轨迹。将第一运行状态信息和第二运行状态信息相加,生成过渡段轨迹包括:将第一运行状态信息的位置和第二运行状态信息的位置相加再减去连接点在关节空间的坐标,得到过渡段轨迹的位置j(t),即j(t)=j1(t)+j2[t-(t
1-t
se
)]-jb;
[0070]
将第一运行状态信息的速度和第二运行状态信息的速度相加得到过渡段轨迹的
速度j’(t),即j’(t)=j1’
(t)+j2’
[t-(t
1-t
se
)];
[0071]
将第一运行状态信息的加速度和第二运行状态信息的加速度相加得到过渡段轨迹的加速度j”(t),即j”(t)=j
1”(t)+j
2”[t-(t
1-t
se
)]。
[0072]
对于t∈[0,t
1-t
se
]时间段内的轨迹,直接代入γ1(t)即可得到。对于t∈[t1,t1+t
2-t
se
]时间段内的轨迹,直接代入γ2(t)即可得到。最终生成的整段连续运行轨迹的位置可表示为:
[0073]
j(t)=j1(t),t∈[0,t
1-t
se
]
[0074]
j(t)=j1(t)+j2[t-(t
1-t
se
)]-jb,t∈[t
1-t
se
,t1]
[0075]
j(t)=j2[t-(t
1-t
se
)],t∈[t1,t1+t
2-t
se
]
[0076]
生成的整段连续运行轨迹的速度可表示为:
[0077]
j’(t)=j1’
(t),t∈[0,t
1-t
se
]
[0078]
j’(t)=j1’
(t)+j2’
[t-(t
1-t
se
)],t∈[t
1-t
se
,t1]
[0079]
j’(t)=j2’
[t-(t
1-t
se
)],t∈[t1,t1+t
2-t
se
]
[0080]
生成的整段连续运行轨迹的加速度可表示为:
[0081]
j”(t)=j
1”(t),t∈[0,t
1-t
se
]
[0082]
j”(t)=j
1”(t)+j
2”[t-(t
1-t
se
)],t∈[t
1-t
se
,t1]
[0083]
j”(t)=j
2”[t-(t
1-t
se
)],t∈[t1,t1+t
2-t
se
]
[0084]
由于是通过关节空间的速度与加速度相加进行轨迹融合,只要第一轨迹和第二轨迹的速度、加速度是连续光滑的,融合后的过渡轨迹速度、加速度就一定是连续且光滑的。
[0085]
在一些实施例中,轨迹圆滑过渡方法还包括:
[0086]
对过渡段轨迹做关节限位校核,如果校核不通过,则减小过渡时间,重新进行轨迹融合,直到校核通过。
[0087]
对过渡段轨迹做电机转速校核,如果校核不通过,则减小过渡时间,重新进行轨迹融合,直到校核通过。
[0088]
对过渡段轨迹做电机转矩校核,如果校核不通过,则减小过渡时间,重新进行轨迹融合,直到校核通过。
[0089]
对轨迹融合后形成的过渡段轨迹进行关节限位校核、电机转速校核以及电机力矩校核,确保融合后的轨迹在关节限位范围之内,且不超过电机转速限制与力矩限制,提高了机器人运行的安全性。
[0090]
图5a~图5c是本技术一实施例的融合时间与过渡轨迹的速度曲线的关系图。如图5a所示,过渡时间t
se
比较小时,在机器人运行到过渡段轨迹时,速度曲线会先经历减速段511,然后转为匀速段512,再转为加速段515。当过渡时间t
se
较小时速度曲线不够平顺,仍然存在上下波动,机器人会经历减速再加速的过程,机器人无法以一个较为平顺的速度从第一轨迹切入第二轨迹。在图5c中,过渡时间t
se
比较大时,在机器人运行到过渡段轨迹时,速度曲线会先经历加速段551,然后转为匀速段552,再转为减速段555。当过渡时间t
se
较大时速度曲线不够平顺,仍然存在上下波动,机器人会经历加速再减速的过程,机器人无法以一个较为平顺的速度从第一轨迹切入第二轨迹。在图5b中,过渡时间t
se
适中,在机器人运行到过渡段轨迹时,速度曲线仅会经历匀速段521,可以使得机器人在过渡段轨迹运行速度波动很小,机器人以相当平滑的速度从第一轨迹切换到第二轨迹上。从图5a~5c可知,通过调整
过渡时间t
se
可以调整过渡段轨迹的形态,t
se
越小则过渡段轨迹越贴近原轨迹,t
se
越大则过渡段轨迹越偏离原轨迹。本技术的轨迹圆滑过渡方法通过迭代算法调整过渡时间,无需预估过渡时间,避免因引入了不合适的过渡时间而导致的机器人运行速度波动。
[0091]
本技术的轨迹圆滑过渡方法通过在关节空间进行两条轨迹的相互融合,解决了笛卡尔空间过渡算法难以处理两条轨迹不共面或者两条轨迹只有姿态移动而无位置移动时的圆滑问题;通过迭代找到两段轨迹与过渡半径形成球体的交接点,解决了在不规则轨迹中无法找到轨迹段与过渡段的交界点的问题,使得过渡方法能够适用于任何轨迹中。
[0092]
本发明还包括一种轨迹圆滑过渡装置,包括存储器和处理器。其中,该存储器用于存储可由处理器执行的指令;处理器用于执行该指令以实现前文所述的轨迹圆滑过渡方法。
[0093]
图6是本发明一实施例的轨迹圆滑过渡装置的系统框图。参考图6所示,该操作装置600可包括内部通信总线601、处理器602、只读存储器(rom)603、随机存取存储器(ram)604以及通信端口605。当应用在个人计算机上时,该操作装置600还可以包括硬盘606。内部通信总线601可以实现该操作装置600组件间的数据通信。处理器602可以进行判断和发出提示。在一些实施例中,处理器602可以由一个或多个处理器组成。通信端口605可以实现该操作装置600与外部的数据通信。在一些实施例中,该操作装置600可以通过通信端口605从网络发送和接受信息及数据。该操作装置600还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘606,只读存储器(rom)603和随机存取存储器(ram)604,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器602所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器处理的结果通过通信端口传给用户设备,在用户界面上显示。
[0094]
上述的操作方法可以实施为计算机程序,保存在硬盘606中,并可加载到处理器602中执行,以实施本技术的操作方法。
[0095]
本发明还包括一种存储有计算机程序代码的计算机可读介质,该计算机程序代码在由处理器执行时实现前文所述的用于数据库的操作方法。
[0096]
用于数据库的操作方法实施为计算机程序时,也可以存储在计算机可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(cd)、数字多功能盘(dvd))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(eprom)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
[0097]
应该理解,上文所描述的实施例仅是示意。本文描述的实施例可在硬件、软件、固件、中间件、微码或者其任意组合中实现。对于硬件实现,处理器可以在一个或者多个特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器和/或设计为执行本文所述功能的其它电子单元或者其结合内实现。
[0098]
本技术的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模
块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dapd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器或者其组合。此外,本技术的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带
……
)、光盘(例如,压缩盘cd、数字多功能盘dvd
……
)、智能卡以及闪存设备(例如,卡、棒、键驱动器
……
)。
[0099]
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
[0100]
同时,本技术使用了特定词语来描述本技术的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本技术至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本技术的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0101]
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本技术一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
[0102]
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本技术的限定。虽然此处并没有明确说明,本领域技术人员可能会对本技术进行各种修改、改进和修正。该类修改、改进和修正在本技术中被建议,所以该类修改、改进、修正仍属于本技术示范实施例的精神和范围。
技术特征:1.一种轨迹圆滑过渡方法,其特征在于,包括:获取已规划完成的第一轨迹、第二轨迹、第一轨迹和第二轨迹的连接点以及过渡半径;以所述连接点为圆心,以所述过渡半径为半径确定球体,与所述第一轨迹相交于第一相交点,与所述第二轨迹相交于第二相交点;分别计算所述第一相交点在所述第一轨迹上对应的第一时刻和所述第二相交点在所述第二轨迹上对应的第二时刻;根据所述第一时刻和所述第二时刻设置过渡时间;将所述第一轨迹中最后运行时间为所述过渡时间的第一子轨迹与所述第二轨迹中开始运行时间为所述过渡时间的第二子轨迹进行轨迹融合,生成过渡段轨迹;将所述过渡段轨迹分别与所述第一相交点和所述第二相交点连接,生成整段连续运行轨迹。2.如权利要求1所述的轨迹圆滑过渡方法,其特征在于,通过二分法查找计算所述第一相交点在所述第一轨迹上对应的第一时刻和/或通过二分法查找计算所述第二相交点在所述第二轨迹上对应的第二时刻。3.如权利要求2所述的轨迹圆滑过渡方法,其特征在于,通过二分法查找计算所述第一相交点在所述第一轨迹上对应的第一时刻包括:a.定义所述第一轨迹上的第一位置和第二位置,且设置所述第一位置为所述第一轨迹的起点,所述第二位置为所述连接点;b.定义从所述第一位置运动到所述第二位置所需时间的一半定义为第一中间时刻,且定义所述第一中间时刻对应在所述第一轨迹上的位置为第一中间点;c.根据所述第一中间点与所述连接点的坐标计算所述第一中间点与所述连接点之间的距离;d.若所述距离大于所述过渡半径,则将所述第一中间点更新为所述第一位置,将所述第一中间时刻更新为所述第一位置对应的时刻,反之则将所述第一中间点更新为所述第二位置,将所述第一中间时刻更新为所述第二位置对应的时刻;e.若所述第一位置和所述第二位置之间的距离小于第一允许误差范围,则将所述第一位置作为所述第一相交点,所述第一位置对应的时刻作为所述第一时刻,否则返回步骤b继续迭代。4.如权利要求2所述的轨迹圆滑过渡方法,其特征在于,通过二分法查找计算所述第二相交点在所述第二轨迹上对应的第二时刻包括:a.定义所述第二轨迹上的第三位置和第四位置,且设置所述第三位置为所述连接点,所述第四位置为所述第二轨迹的终点;b.定义从所述第三位置运动到所述第四位置所需时间的一半定义为第二中间时刻,且定义所述第二中间时刻对应在所述第二轨迹上的位置为第二中间点;c.根据所述第二中间点与所述连接点的坐标计算所述第二中间点与所述连接点之间的距离;d.若所述距离大于所述过渡半径,则将所述第二中间点更新为所述第四位置,将所述第二中间时刻更新为所述第四位置对应的时刻,反之则将所述第二中间点更新为所述第三位置,将所述第二中间时刻更新为所述第三位置对应的时刻;
e.若所述第三位置和所述第四位置之间的距离小于第二允许误差范围,则将所述第三位置作为所述第二相交点,所述第三位置对应的时刻作为所述第二时刻,否则返回步骤b继续迭代。5.如权利要求1所述的轨迹圆滑过渡方法,其特征在于,根据所述第一时刻和所述第二时刻设置过渡时间包括:取所述第一相交点到所述连接点的运行时间与所述连接点到所述第二相交点的运行时间中的较小值为所述过渡时间。6.如权利要求1所述的轨迹圆滑过渡方法,其特征在于,将所述第一轨迹中最后运行时间为所述过渡时间的第一子轨迹与所述第二轨迹中开始运行时间为所述过渡时间的第二子轨迹进行轨迹融合,生成过渡段轨迹包括:将所述连接点在笛卡尔空间的坐标代入所述第一轨迹之后反解得到其在关节空间的坐标;将所述第一子轨迹对应的时刻代入所述第一轨迹之后反解得到其在关节空间的第一运行状态信息,第一运行状态信息包括位置、速度和加速度;将所述第二子轨迹对应的时刻代入所述第二轨迹之后反解得到其在关节空间的第二运行状态信息,第二运行状态信息包括位置、速度和加速度;将所述第一运行状态信息和所述第二运行状态信息相加,生成过渡段轨迹。7.如权利要求6所述的轨迹圆滑过渡方法,其特征在于,将所述第一运行状态信息和所述第二运行状态信息相加,生成过渡段轨迹包括:将所述第一运行状态信息的位置和所述第二运行状态信息的位置相加再减去所述连接点在关节空间的坐标,得到所述过渡段轨迹的位置;将所述第一运行状态信息的速度和所述第二运行状态信息的速度相加得到所述过渡段轨迹的速度;将所述第一运行状态信息的加速度和所述第二运行状态信息的加速度相加得到所述过渡段轨迹的加速度。8.如权利要求1所述的轨迹圆滑过渡方法,其特征在于,还包括:对所述过渡段轨迹做关节限位校核、电机转速校核与电机转矩校核,如果校核不通过,则减小过渡时间,重新进行轨迹融合,之后再次校核,依次重复直到校核通过。9.一种轨迹圆滑过渡装置,包括:存储器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如权利要求1-8任一项所述的方法。10.一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如权利要求1-8任一项所述的方法。
技术总结本发明涉及一种轨迹圆滑过渡方法、装置及计算机可读介质。其中方法包括:获取已规划完成的第一轨迹、第二轨迹、第一轨迹和第二轨迹的连接点、及过渡半径;以连接点为圆心,以过渡半径为半径确定球体,与第一轨迹相交于第一相交点,与第二轨迹相交于第二相交点;分别计算第一相交点在第一轨迹上对应的第一时刻和第二相交点在第二轨迹上对应的第二时刻;根据第一时刻和第二时刻设置过渡时间;将第一轨迹中最后运行时间为过渡时间的第一子轨迹与第二轨迹中开始运行时间为过渡时间的第二子轨迹进行轨迹融合,生成过渡段轨迹。本发明解决两条轨迹不共面或者两条轨迹只有姿态移动而无位置移动时的圆滑问题。位置移动时的圆滑问题。位置移动时的圆滑问题。
技术研发人员:冯赟 贺岩 陈凯文
受保护的技术使用者:上海捷勃特机器人有限公司
技术研发日:2022.06.21
技术公布日:2022/11/1