一种计算机械臂臂角范围的方法、机械臂及机器人
技术领域
本发明实施例涉及机械臂控制技术领域,特别是涉及一种计算机械臂臂角范围的方法、机械臂及机器人。
背景技术
机器人是指模拟人类行为或思想与模拟其他生物的机械。而随着人工智能技术、机械设计技术的发展,机器人的灵活越来越高,智化能程度也越来越高,从而使得机器人应用范围越来越广泛。
本发明的发明人在实现本发明的过程中,发现:现有机器人的机械臂通常是多个关节组成,每个关节可以在一个方向进行转动,多个关节联动即可实现机械臂的运动,而在实际应用中,机械臂的关节通常会设置关节的旋转极限,而不是360度自由旋转,例如:关节只能在0-270度之间旋转,又或者,关节只能在0-300度之间转动。在转动机械臂的过程中,如果该关节需要的转动范围超过臂角范围时,会造成其它关节需要转动到其旋转极限范围之外,从而会造成其它关节出现损坏的情况。因此,确定关节的臂角范围是很有必要的,但是目前尚没有出现确定关节的臂角范围的方法。
发明内容
针对现有技术的上述缺陷,本发明实施例的主要目的在于提供一种计算机械臂臂角范围的方法、装置、计算设备、计算机存储介质、机械臂及机器人,确定臂角范围,避免了选取的臂角在关节极限外的情况。
为解决上述技术问题,本发明实施例采用的一个技术方案是:提供一种计算机械臂臂角范围的方法,包括确定所述机械臂末端位置的位姿;判断所述臂角为180°时,肘关节的角度是否在其限位内;若是,使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵;使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵;根据所述第一位置矩阵和第二位置矩阵,计算满足位置关节的极限的第一臂角可行域,其中,所述位置关节为在所述机械臂之中转动会影响所述肘关节的位置的其它关节;判断所述机械臂是否存在次级位置关节,其中,所述次级位置关节为在所述机器臂之中转动对所述肘关节的位置无影响的其它关节;若不存在,则将所述计算得到的第一臂角可行域取交集,得到臂角范围。
可选的,若所述机械臂存在次级位置关节,则将所述计算得到的第一臂角可行域取交集,得到初级臂角范围;在所述初级臂角范围内,对所述肘关节的臂角进行迭代计算,找到在满足次级位置关节的角度限位时的最终的臂角范围。
可选的,所述使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵,进一步包括:根据所述肘关节在所述机械臂中的位置,将所述机械臂中其它关节分为前端关节和后端节关;使用所述前端关节的DH参数来参数化所述肘关节的位置;使用所述后端关节的DH参数来参数化所述肘关节的位置。
可选的,所述使用前端关节的DH参数来参数化所述肘关节的位置,进一步包括:获取基于DH参数为所述机械臂构建的关节变换矩阵;根据所述关节变换矩阵,确定在所述前端关节中各关节的位置矩阵;根据在所述前端关节中各关节的位置矩阵,并且结合正运动学公式0 iT=i i-1T*i-1 0T,计算出所述肘关节在原点坐标系上的位置矩阵,得到用所述前端关节的DH参数表示的肘关节位置的三坐标。
可选的,所述使用后端关节的DH参数来参数化所述肘关节的位置,进一步包括:获取基于DH参数为所述机械臂构建的关节变换矩阵;根据所述关节变换矩阵,确定在所述后端关节中各关节的位置矩阵;根据所述后端关节中各关节的位置矩阵,并且结合正运动学公式i 0T=i-1 iT*0 i-1T计算出所述肘关节在原点坐标系上的位姿矩阵,得到使用所述后端关节的DH参数表示的肘关节位置的三坐标。
可选的,所述使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵,进一步包括:基于空间圆C并且结合所述臂角构建表征所述肘关节的第一位置矩阵,其中,所述空间圆C由所述位姿确定,所述第一位置矩阵如下:
[Pc(1)+R*cos(Phi)*u(1)+R*sin(Phi)*v(1);
Pc(2)+R*cos(Phi)*u(2)+R*sin(Phi)*v(2);,
Pc(3)+R*cos(Phi)*u(3)+R*sin(Phi)*v(3)]
其中,Pc(1)、Pc(2)和Pc(3)是末端位置在原点坐标上的三坐标,Phi是臂角,R是所述肘关节到坐标原点和末端位置连线的最短距离,u是所述肘关节和其与坐标原点和末端位置连线垂直的垂点连线的方向向量,v是所述垂点和坐标原点连线的方向向量与所述u的乘积。
可选的,所述根据所述第一位置矩阵和第二位置矩阵,计算在满足位置关节的极限下的第一臂角可行域,进一步包括:联立所述第一位置矩阵和第二位置矩阵,得到所述肘关节的臂角的求解方程;将所述位置关节的极限分别代入所述求解方程,得到所述肘关节对应的臂角的可行域。
为解决上述技术问题,本发明实施例采用的另一个技术方案是:提供一种计算机械臂臂角范围的装置,包括确定模块,用于确定所述机械臂末端位置的位姿;第一判断模块,用于判断所述臂角为180°时,肘关节的角度是否在其限位内;第一构建模块,用于使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵;第二构建模块,用于使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵;计算模块,用于根据所述第一位置矩阵和第二位置矩阵,计算满足位置关节的极限的第一臂角可行域,其中,所述位置关节为在所述机械臂之中转动会影响所述肘关节的位置的其它关节;第二判断模块,用于判断所述机械臂是否存在次级位置关节,其中,所述次级位置关节为在所述机器臂之中转动对所述肘关节的位置无影响的其它关节;第一得到模块,用于将所述计算得到的第一臂角可行域取交集,得到臂角范围。
可选的,所述装置还包括:第二得到模块,用于将所述计算得到的第一臂角可行域取交集,得到初级臂角范围;第三得到模块,用于在所述初级臂角范围内,对所述肘关节的臂角进行迭代计算,找到在满足次级位置关节的角度限位时的最终的臂角范围。
可选的,所述第二构建模块包括:区分单元,用于根据所述肘关节在所述机械臂中的位置,将所述机械臂中其它关节分为前端关节和后端节关;第一参数化单元,用于使用所述前端关节的DH参数来参数化所述肘关节的位置;第二参数化单元,用于使用所述后端关节的DH参数来参数化所述肘关节的位置。
可选的,所述第一参数化单元用于使用所述前端关节的DH参数来参数化所述肘关节的位置,具体包括:获取基于DH参数为所述机械臂构建的关节变换矩阵;根据所述关节变换矩阵,确定在所述前端关节中各关节的位置矩阵;根据在所述前端关节中各关节的位置矩阵,并且结合正运动学公式0 iT=i i-1T*i-1 0T,计算出所述肘关节在原点坐标系上的位置矩阵,得到用所述前端关节的DH参数表示的肘关节位置的三坐标。
可选的,所述第二参数化单元用于使用所述后端关节的DH参数来参数化所述肘关节的位置,具体包括:数来参数化所述肘关节的位置,进一步包括:获取基于DH参数为所述机械臂构建的关节变换矩阵;根据所述关节变换矩阵,确定在所述后端关节中各关节的位置矩阵;根据所述后端关节中各关节的位置矩阵,并且结合正运动学公式i 0T=i-1 iT*0 i-1T计算出所述肘关节在原点坐标系上的位姿矩阵,得到使用所述后端关节的DH参数表示的肘关节位置的三坐标。
可选的,所述第一构建模块用于使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵,具体包括:基于空间圆C并且结合所述臂角构建表征所述肘关节的第一位置矩阵,其中,所述空间圆C由所述位姿确定,所述第一位置矩阵如下:
[Pc(1)+R*cos(Phi)*u(1)+R*sin(Phi)*v(1);
Pc(2)+R*cos(Phi)*u(2)+R*sin(Phi)*v(2);,
Pc(3)+R*cos(Phi)*u(3)+R*sin(Phi)*v(3)]
其中,Pc(1)、Pc(2)和Pc(3)是末端位置在原点坐标上的三坐标,Phi是臂角,R是所述肘关节到坐标原点和末端位置连线的最短距离,u是所述肘关节和其与坐标原点和末端位置连线垂直的垂点连线的方向向量,v是所述垂点和坐标原点连线的方向向量与u的乘积。
可选的,所述计算模块包括:联立单元,用于联立所述第一位置矩阵和第二位置矩阵,得到所述肘关节的臂角的求解方程;得到子单元,用于将所述位置关节的极限分别代入所述求解方程,得到所述肘关节对应的臂角的可行域。为解决上述技术问题,本发明实施例还提供了一种机械臂,所述机械臂的臂角范围由上述方法求得。
为解决上述技术问题,本发明实施例采用的另一个技术方案是:提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述一种计算机械臂臂角范围的方法对应的操作。
为解决上述技术问题,本发明实施例采用的另一个技术方案是:提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述一种计算机械臂臂角范围的方法对应的操作。
为解决上述技术问题,本发明实施例还提供了一种机器人包括上述机械臂。
本发明实施例的有益效果是:区别于现有技术的情况,本发明实施例通过分别用臂角参数和其它关节的DH参数来表征机械臂关节在同一坐标系下的位置,可以得到臂角和其它关节角度的关系,代入其它关节转角的上下极限可以计算出臂角的可行域,对求得的所有可行域取交集即可得到臂角范围。所以在进行轨迹规划和控制机械手臂时就可以在臂角范围内选取臂角,这样可以保证所有关节均在关节极限范围内从而避免发生机械臂运动过程中断的问题。
附图说明
为了更清楚地说明本发明具体实施例或现有技术中的技术方案,下面将对具体实施例或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制
图1是本发明一种计算机械臂臂角范围的方法实施例的流程图;
图2是本发明一种计算机械臂臂角范围的方法实施例中机械臂的示意图;
图3是本发明一种计算机械臂臂角范围的方法中臂角的示意图;
图4是本发明一种计算机械臂臂角范围的方法实施例中一种带偏置的机械臂的示意图;
图5是本发明一种计算机械臂臂角范围的方法实施例中使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵的流程图;
图6是本发明一种计算机械臂臂角范围的方法实施例中使用前端关节的DH参数来参数化所述肘关节的位置的流程图;
图7是本发明一种计算机械臂臂角范围的方法实施例中使用后端关节的DH参数来参数化所述肘关节的位置的流程图;
图8是本发明一种计算机械臂臂角范围的方法实施例中根据所述第一位置矩阵和第二位置矩阵,计算满足位置关节的极限的第一臂角可行域的流程图;
图9是本发明另一个实施例一种计算机械臂臂角范围的方法的流程图;
图10是本发明一种计算机械臂臂角范围的装置实施例的功能框图;
图11是本发明一种计算机械臂臂角范围的装置另一实施例的功能框图;
图12是本发明一种计算设备实施例的功能框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
机械臂是多个关节组成的,通过关节之间的联动,可以实现机械臂的转动。臂角是指机械臂肩关节、肘关节和腕关节三点构成的平面绕肩关节和腕关节的连线摆动的角度。
如图1所示,图1为本发明一种计算机械臂臂角范围的方法实施例的流程图。该方法包括以下步骤:
步骤S101:确定所述机械臂末端位置的位姿。
机械臂末端位置是指机械臂末端关节的位置。如图2和图3所示,以七自由度机械臂为例,七自由度机械臂总共有7个关节,每个关节都可以绕一个方向旋转,其中,关节五105、关节六106和关节七107位于机械臂的最末端,因此,关节五105、关节六106和关节七107的位置为机械臂末端位置。
在一些实施例中,可以根据人体的结构对关节进行定义,例如:关节一101、关节二102和关节三103位于人体的肩部,可以定义为肩关节303,关节四104位于人体的肘部,可以定义为人体的肘关节,关节五105、关节六106和关节七107位于人体的腕部,可以定义为腕关节304,而末端位置是腕关节304所在的位置。
步骤S102:判断所述臂角为180°时,肘关节的角度是否在其限位内。若是,则执行步骤S103。
如图2和图4所示,对于有偏置的机械臂,臂角为180°时,所求得的关节四104的角度为其极限值,若此极限值满足关节四104的限位要求,其它臂角值下所求得的关节四104的角度必然满足其限位要求。也说明在步骤S101中选取的末端位置下,臂角为0-360°任意值都满足关节四104即肘关节的限位要求。而对于无偏置的机械臂,当末端位置确定时,无论臂角是多少,关节四104的角度都为一固定值,只需判断该固定值是否满足其限位要求即可。因此,对于有偏置或无偏置的机械臂,本方法都适用。但是如果关节四104的角度不满足其限位要求,则需要重新选定末端位置。
步骤S103:使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵;
具体的,第一位置矩阵是基于空间圆C和臂角确定得到的,如下:
[Pc(1)+R*cos(Phi)*u(1)+R*sin(Phi)*v(1);
Pc(2)+R*cos(Phi)*u(2)+R*sin(Phi)*v(2);
Pc(3)+R*cos(Phi)*u(3)+R*sin(Phi)*v(3)],
其中,Pc(1)、Pc(2)和Pc(3)是末端位置在原点坐标上的三坐标,Phi是关节的臂角,R所述肘关节到坐标原点和末端位置连线的最短距离,u是所述肘关节和其与坐标原点和末端位置连线垂直的垂点连线的方向向量,v是所述垂点和坐标原点连线的方向向量与所述u的乘积。
为了方便读者理解臂角的定义,如下,又从空间角度进行说明,如图3所示,臂角为参考平面301和臂角面302之间的夹角。参考平面301定义为:关节二102与关节四104平行,关节三103角度为0时,该关节角度下,各关节在同一平面,所述同一平面为参考平面301。当有关节旋转时,肘关节即关节四104会偏离参考平面301,与肩关节303和腕关节304会构成新的平面,其定义为臂角面302。
若各个关节无限位,即各关节角度均可在0-360°范围内随意设置,且末端位置确定时,如图4所示,由于肩关节303与固定端连接,而腕关节304属于末端位置,其位姿已经在步骤S101中确定,所以肘关节即关节四104可以绕肩关节303和腕关节304的连线为轴线旋转360°,形成空间圆C。通过空间圆C的半径及其位置,再结合臂角就可以得到由臂角表征的肘关节的位置,即第一位置矩阵。在所述一位置矩阵中,Phi为臂角值,u为CE方向向量,v为CO向量叉乘CE向量得到的向量,R为空间圆C的半径。此外,u(1)、u(2)和u(3)表示向量u在原点坐标系中三个坐标方向的分量;同理,v(1)、v(2)和v(3)也是表示向量v在原点坐标系中三个坐标方向的分量。
步骤S104:使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵。
在本步骤中,所述其它关节是指机械臂中除了该关节外的关节,在图2和图3中,即除关节四104以外的所有关节。
在一些实施例中,如图5所示,使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵的流程图,具体包括以下步骤:
步骤S501:根据所述肘关节在所述机械臂中的位置,将所述机械臂中其它关节分为前端关节和后端节关。
前端关节是指靠近机械臂的原点坐标的关节,后端节关是指靠近机械臂末端的关节,在图2和图3之中,关节一101、关节二102和关节三103是前端关节,关节五105、关节六106和关节七107是后端关节。关节四104分别与前端和后端相连。
步骤S502:使用前端关节的DH参数来参数化所述肘关节的位置。
在一些实施例中,如图6所示,使用前端关节的DH参数来参数化所述肘关节的位置的流程图,具体包括以下步骤:
步骤S601:获取基于DH参数为所述机械臂构建的关节变换矩阵。
在本步骤中,变换矩阵为
其中i+1 iT表示关节i和关节i+1之间的变换矩阵,qn、αn、an和dn都是关节i的DH参数,而qn可以理解为关节的角度。
步骤S602:根据所述关节变换矩阵,确定在所述前端关节中各关节的位置矩阵;
该位置矩阵是代表各个关节在其相邻关节的坐标系中的位置,并不是在机械臂原点坐标系中的位置。
步骤S603:根据在所述前端关节中各关节的位置矩阵,并且结合正运动学公式0 iT=i i-1T*i-1 0T,计算出所述肘关节在原点坐标系上的位置矩阵,得到用所述前端关节的DH参数表示的肘关节位置的三坐标;
通过步骤S603的转换之后得到的关节的第二位置矩阵代表关节在机械臂原点坐标系中的位置,该第二位置矩阵与第一位置矩阵是相同的。
以下以计算图4中一种带偏置的七自由度机械臂的关节四104的位置为例进行说明:1 0T、2 1T、3 2T、4 3T分别代表关节一101、关节二102、关节三103、关节四104在各个坐标系中的位置矩阵,而关节一101是起始关节,因此,关节一101的坐标系为机械臂的原点坐标系,而关节四104在原点坐标系的位置为经过正运动学公式0 iT=i i-1T*i-1 0T运算之后得到,具体如下:
la2*sin(q1)*sin(q2)-la1*cos(q2)*sin(q1);
-la1*sin(q2)-la2*cos(q2)]
其中,la1为OS长度,la2为SE长度,q1为关节一101的角度,q2为关节二102的角度。la1和la2都是可以通过关节一101、关节二102和关节三103的DH转换的来历。从位置中可以发现,关节四104的位置和关节三103的角度无关。这是因为关节三103是以SE为轴线而转动,其只能改变关节四104的姿态而非位置。但是关节三103的其它DH参数与la1和la2的值有关。
当然,对于无偏置或者其它结构形式的机械手臂也可以采用上述方法,此处不再一一赘述。
步骤S503:使用后端关节的DH参数来参数化所述肘关节的位置。
需要说明的是:步骤S503和步骤S502无绝对的先后顺序,其顺序可以交换。
在一些实施例中,如图7所示,使用后端关节的DH参数来参数化所述肘关节的位置的流程图,具体包括以下步骤:
步骤S701:获取基于DH参数为所述机械臂构建的关节变换矩阵。
步骤S702:根据所述关节变换矩阵,确定在所述后端关节中各关节的位置矩阵。
步骤S701和步骤S702的具体过程与步骤S601和步骤S602的过程类似,此处不再一一赘述,不同之处在于,步骤S701和步骤S702是逆向从后端关节求中间关节的位置,以图4中的关节四104为例,关节四的位置4 7T=5 6T6 7T4 5T,其中5 6T、6 7T和4 5T分别为关节五105、关节六106和关节四104的在其相邻关节的坐标系上的位置矩阵。
步骤S703:根据所述后端关节中各关节的位置矩阵,并且结合正运动学公式i 0T=i-1 iT*0 i-1T计算出所述肘关节在原点坐标系上的位姿矩阵,得到使用所述后端关节的DH参数表示的肘关节位置的三坐标。
由于是对关节四104逆向求解,所以本步骤用到的正运动学公式和步骤S602中的正运动学公式略有不同。已知7 0T为末端位置矩阵,对其求逆得到0 7T通过运动学公式4 0T=47T*0 7T求得4 0T,再对其求逆,即可求得关节四104在原点坐标系上的位置。
步骤S105:根据所述第一位置矩阵和第二位置矩阵,计算满足位置关节的极限的第一臂角可行域,其中,所述位置关节为在所述机械臂之中转动会影响所述肘关节的位置的其它关节。
在本步骤中,所述位置关节可以理解为图2或图4中的关节一101、关节二102、关节六106和关节七107,这些关节的角度会对关节四104的位置造成影响。
在一些实施例中,如图8所示,根据所述第一位置矩阵和第二位置矩阵,计算满足位置关节的极限的第一臂角可行域的流程图,具体包括以下步骤:
步骤S801:联立所述第一位置矩阵和第二位置矩阵,得到所述肘关节的臂角的求解方程。
通过联立第一位置矩阵和第二位置矩阵,可以得到臂角与位置关节角度,即关节一101、关节二102、关节六106和关节七107的角度的关系。在所述方程中,其它参数,例如末端位置和关节之间连杆的长度,故而可以通过输入位置关节的角度,得到臂角值。
步骤S802:将所述位置关节的极限分别代入所述求解方程,得到所述肘关节对应的臂角的可行域。
在上述实施例中,机械臂被分为前端和后端部分,所以可以得到两个第二位置矩阵,从而得到两个求解方法。对于前端部分的求解方程,可以先输入关节一101和关节二102角度的上极限,得到臂角的上限;之后再输入关节一101和关节二102角度的下极限,得到臂角的下限,从而得到臂角的一个可行域。同理,对于后端部分的求解方程,也通过输入关节六106和关节七107角度的上下极限,得到臂角的另一个可行域。
步骤S106:判断所述机械臂是否存在次级位置关节,其中,所述次级位置关节为在所述机器臂之中转动对所述肘关节的位置无影响的其它关节。若不存在,则执行步骤S107。
在本步骤中,所述次级位置可以理解为图2和图4中的关节三103和关节五105,它们的角度无法对关节四104的位置造成影响,所以无法通过解析法建立它们的角度和臂角的方程。
步骤S107:将所述计算得到的第一臂角可行域取交集,得到臂角范围。
在步骤S802中求出了臂角的两个可行域,对它们取交集即可得到臂角在关节一101、关节二102、关节六106和关节七107角度的限制下的臂角范围。
在一些实施例中,除了位置关节以外,机械臂还包括次级位置关节,例如图2和图4中的关节三103和关节五105,其角度无法对关节四104的位置造成影响,所以无法通过解析法来求得臂角和它们的角度的关系,需要进行迭代运算,求得次级位置关节的角度限位对臂角范围的限定。
请参阅图9,图9是本发明另一个实施例一种计算机械臂臂角范围的方法的流程图,本实施例与上述实施例的不同之处在于,在步骤S106判断次级位置关节存在后,方法还包括:
步骤S901:将所述计算得到的第一臂角可行域取交集,得到初级臂角范围。
步骤S902:在所述初级臂角范围内,对所述肘关节的臂角进行迭代计算,找到在满足次级位置关节的角度限位时的最终的臂角范围。
在本步骤中,所述次级位置关节无法通过解析法来求得臂角和它们的角度的关系。所以,这里采用迭代法,在所述臂角范围内,一个个地选取臂角,通过臂角计算出次级位置关节角度,找到满足次级位置关节角度限位的臂角范围。这个臂角范围就是满足所有关节的角度限位的最终臂角范围。当然,也可以直接先对臂角进行迭代,找到满足次级位置关节角度限位的臂角可行域,再与步骤S106中求得的臂角范围取交集,得到最终臂角范围,但这种方式显然计算量更大。
在本发明实施例中,通过分别用臂角参数和其它关节的DH参数来表征机械臂关节在同一坐标系下的位置,可以得到臂角和位置关节角度的关系,代入位置关节转角度的极限可以计算出臂角的可行域,对求得的所有可行域取交集即可得到臂角范围。之后在臂角范围内对臂角进行迭代得到满足次级位置关节角度限位的最终臂角范围,所以在进行轨迹规划和控制机械手臂时就可以在最终臂角范围内选取臂角,这样可以保证所有关节均在关节极限范围内从而避免发生机械臂运动过程中断的问题。
本发明提供的一种计算机械臂臂角范围的装置实施例,如图10所示,计算机械臂臂角范围的装置包括确定模块401、第一判断模块402、第一构建模块403、第二构建模块404、计算模块405、第二判断模块406和第一得到模块407
确定模块401,用于确定所述机械臂末端位置的位姿。
第一判断模块402,用于判断所述臂角为180°时,肘关节的角度是否在其限位内。
第一构建模块403,用于使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵。
第二构建模块404,用于使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵。
计算模块405,用于根据所述第一位置矩阵和第二位置矩阵,计算满足位置关节的极限的第一臂角可行域,其中,所述位置关节为在所述机械臂之中转动会影响所述肘关节的位置的其它关节。
第二判断模块406,用于判断所述机械臂是否存在次级位置关节,其中,所述次级位置关节为在所述机器臂之中转动对所述肘关节的位置无影响的其它关节。
第一得到模块407,用于将所述计算得到的第一臂角可行域取交集,得到臂角范围。
请参阅图11,图11是本发明另一个实施例的一种智计算机械臂臂角范围的装置图,本实施例与上述实施例的不同之处在于,装置还包括:第二得到模块501和第三得到模块502。
第二得到模块501,用于将所述计算得到的第一臂角可行域取交集,得到初级臂角范围。
第三得到模块502,用于在所述初级臂角范围内,对所述肘关节的臂角进行迭代计算,找到在满足次级位置关节的角度限位时的最终的臂角范围。
在一些实施例中,第二构建模块404包括:区分单元4041、第一参数化单元4042和第二参数化单元4043。
区分单元4041,用于根据所述肘关节在所述机械臂中的位置,将所述机械臂中其它关节分为前端关节和后端节关。
第一参数化单元4042,用于使用所述前端关节的DH参数来参数化所述肘关节的位置。
第二参数化单元4043,用于使用所述后端关节的DH参数来参数化所述肘关节的位置。
进一步,所述第一参数化单元4042用于使用所述前端关节的DH参数来参数化所述肘关节的位置,具体包括:获取基于DH参数为所述机械臂构建的关节变换矩阵;根据所述关节变换矩阵,确定在所述前端关节中各关节的位置矩阵;根据在所述前端关节中各关节的位置矩阵,并且结合正运动学公式0 iT=i i-1T*i-1 0T,计算出所述肘关节在原点坐标系上的位置矩阵,得到用所述前端关节的DH参数表示的肘关节位置的三坐标。
进一步,所述第二参数化单元4043用于使用所述后端关节的DH参数来参数化所述肘关节的位置,具体包括:数来参数化所述肘关节的位置,进一步包括:获取基于DH参数为所述机械臂构建的关节变换矩阵;根据所述关节变换矩阵,确定在所述后端关节中各关节的位置矩阵;根据所述后端关节中各关节的位置矩阵,并且结合正运动学公式i 0T=i- 1 iT*0 i-1T计算出所述肘关节在原点坐标系上的位姿矩阵,得到使用所述后端关节的DH参数表示的肘关节位置的三坐标。
进一步,所述第一构建模块403用于使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵,具体包括:基于空间圆C并且结合所述臂角构建表征所述肘关节的第一位置矩阵,其中,所述空间圆C由所述位姿确定,所述第一位置矩阵如下:
[Pc(1)+R*cos(Phi)*u(1)+R*sin(Phi)*v(1);
Pc(2)+R*cos(Phi)*u(2)+R*sin(Phi)*v(2);,
Pc(3)+R*cos(Phi)*u(3)+R*sin(Phi)*v(3)]
其中,Pc(1)、Pc(2)和Pc(3)是末端位置在原点坐标上的三坐标,Phi是臂角,R是所述肘关节到坐标原点和末端位置连线的最短距离,u是所述肘关节和其与坐标原点和末端位置连线垂直的垂点连线的方向向量,v是所述垂点和坐标原点连线的方向向量与u的乘积。
在另一些实施例中,计算模块405包括:联立单元4051和得到子单元4052。
联立单元4051,用于联立所述第一位置矩阵和第二位置矩阵,得到所述肘关节的臂角的求解方程。
得到子单元4052,用于将所述位置关节的极限分别代入所述求解方程,得到所述肘关节对应的臂角的可行域。
关于上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的计算机械臂臂角范围的方法。
图12为本发明计算设备实施例的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图12所示,该计算设备可以包括:处理器(processor)902、通信接口(Communications Interface)904、存储器(memory)906、以及通信总线908。
其中:
处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。
通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器902,用于执行程序910,具体可以执行上述计算机械臂臂角范围的方法实施例中的相关步骤。
具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器906,用于存放程序910。存储器906可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序910具体可以用于使得处理器902执行以下操作:
确定所述机械臂末端位置的位姿;
判断所述臂角为180°时,肘关节的角度是否在其限位内;
若是,使用所述位姿和臂角构建表征所述肘关节的第一位置矩阵;
使用所述机械臂的其它关节的DH参数构建所述肘关节的第二位置矩阵;
根据所述第一位置矩阵和第二位置矩阵,计算满足位置关节的极限的第一臂角可行域,其中,所述位置关节为在所述机械臂之中转动会影响所述肘关节的位置的其它关节;
判断所述机械臂是否存在次级位置关节,其中,所述次级位置关节为在所述机器臂之中转动对所述肘关节的位置无影响的其它关节;
若不存在,则将所述计算得到的第一臂角可行域取交集,得到臂角范围。
在一种可选的方式中,程序910具体可以进一步用于使得处理器902执行以下操作:
若所述机械臂存在次级位置关节,则将所述计算得到的第一臂角可行域取交集,得到初级臂角范围;
在所述初级臂角范围内,对所述肘关节的臂角进行迭代计算,找到在满足次级位置关节的角度限位时的最终的臂角范围。
在一种可选的方式中,程序910具体可以进一步用于使得处理器902执行以下操作:
根据所述肘关节在所述机械臂中的位置,将所述机械臂中其它关节分为前端关节和后端节关;
使用所述前端关节的DH参数来参数化所述肘关节的位置;
使用所述后端关节的DH参数来参数化所述肘关节的位置。
在一种可选的方式中,程序910具体可以进一步用于使得处理器902执行以下操作:
获取基于DH参数为所述机械臂构建的关节变换矩阵;
根据所述关节变换矩阵,确定在所述前端关节中各关节的位置矩阵;
根据在所述前端关节中各关节的位置矩阵,并且结合正运动学公式0 iT=i i-1T*i- 1 0T,计算出所述肘关节在原点坐标系上的位置矩阵,得到用所述前端关节的DH参数表示的肘关节位置的三坐标。
在一种可选的方式中,程序910具体可以进一步用于使得处理器902执行以下操作:
获取基于DH参数为所述机械臂构建的关节变换矩阵;
根据所述关节变换矩阵,确定在所述后端关节中各关节的位置矩阵;
根据所述后端关节中各关节的位置矩阵,并且结合正运动学公式i 0T=i-1 iT*0 i-1T计算出所述肘关节在原点坐标系上的位姿矩阵,得到使用所述后端关节的DH参数表示的肘关节位置的三坐标。
在一种可选的方式中,程序910具体可以进一步用于使得处理器902执行以下操作:
联立所述第一位置矩阵和第二位置矩阵,得到所述肘关节的臂角的求解方程;
将所述位置关节的极限分别代入所述求解方程,得到所述肘关节对应的臂角的可行域。
本发明还提供了一种机械臂,其臂角范围由一种计算机械臂臂角范围的方法求得。所述方法与上述实施例中方法的内容一致,对于方法的内容可参阅上述实施例,此处不再一一赘述。
本发明还提供了一种机器人,包括一种机械臂。所述机械臂与上述实施例中机械臂的结构与功能一致,对于机械臂的结构与功能可参阅上述实施例,此处不再一一赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施例的权利要求书由此明确地并入该具体实施例,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的计算机械臂臂角范围装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。