CN113084791B - 机械臂控制方法、机械臂控制装置及终端设备 - Google Patents

机械臂控制方法、机械臂控制装置及终端设备 Download PDF

Info

Publication number
CN113084791B
CN113084791B CN201911339758.7A CN201911339758A CN113084791B CN 113084791 B CN113084791 B CN 113084791B CN 201911339758 A CN201911339758 A CN 201911339758A CN 113084791 B CN113084791 B CN 113084791B
Authority
CN
China
Prior art keywords
joint
target
joints
angle value
angle
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
Application number
CN201911339758.7A
Other languages
English (en)
Other versions
CN113084791A (zh
Inventor
林泽才
安昭辉
陈金亮
刘益彰
庞建新
熊友军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ubtech Robotics Corp
Original Assignee
Ubtech Robotics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ubtech Robotics Corp filed Critical Ubtech Robotics Corp
Priority to CN201911339758.7A priority Critical patent/CN113084791B/zh
Publication of CN113084791A publication Critical patent/CN113084791A/zh
Application granted granted Critical
Publication of CN113084791B publication Critical patent/CN113084791B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning

Abstract

本申请提供的一种机械臂控制方法包括:获取所述机械臂的目标位姿信息,所述目标位姿信息包括所述机械臂的末端的期望位姿的信息;根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值;根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值;若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂。通过上述方法,能够解决在对具有冗余自由度的机械臂进行逆运动学求解时,获得解析解的难度较大,计算效率较低,从而影响了对机械臂的有效控制的问题。

Description

机械臂控制方法、机械臂控制装置及终端设备
技术领域
本申请属于机械臂技术领域,尤其涉及机械臂控制方法、机械臂控制装置、终端设备及计算机可读存储介质。
背景技术
由于其较好的灵活性和适应性,具有冗余自由度的机械臂在多种应用场合得到广泛的应用。
在对具有冗余自由度的机械臂的逆运动学求解过程中,通常分为基于速度的数值解和基于位置的解析解。其中,基于位置的解析解在用于控制所述机械臂时,较为灵活,可以适应多种应用场景,但是,获得具有冗余自由度的机械臂的基于位置的解析解的难度较大,计算效率较低,从而大大影响了对机械臂的有效控制。
发明内容
本申请实施例提供了机械臂控制方法、机械臂控制装置、终端设备及计算机可读存储介质,可以解决在对具有冗余自由度的机械臂进行逆运动学求解时,获得解析解的难度较大,计算效率较低,从而大大影响了对机械臂的有效控制的问题。
第一方面,本申请实施例提供了一种机械臂控制方法,其中,机械臂具有N个冗余自由度和M个关节,所述M个关节分别控制所述机械臂在对应的M个自由度上运动,所述N和M均为大于0的整数,且N小于M,所述机械臂控制方法包括:
获取所述机械臂的目标位姿信息,所述目标位姿信息包括所述机械臂的末端的期望位姿的信息;
根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,所述指定夹角为目标平面与参考平面之间的夹角,所述参考平面为所述M个关节处于指定状态时所对应的平面,所述目标平面与所述目标位姿信息相关联,所述优化函数根据第一矩阵和第二矩阵得到,所述第一矩阵根据第一关节集合构建得到,所述第二矩阵根据第二关节集合构建得到,所述第一关节集合包括所述M个关节中的K个关节,所述第二关节集合包括所述M个关节中的L个关节,所述L个关节与所述K个关节不同,所述K和L均为大于0的整数;
根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值;
若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂。
第二方面,本申请实施例提供了一种机械臂控制装置,其中,机械臂具有N个冗余自由度和M个关节,所述M个关节分别控制所述机械臂在对应的M个自由度上运动,所述N和M均为大于0的整数,且N小于M,所述机械臂控制装置包括:
获取模块,用于获取所述机械臂的目标位姿信息,所述目标位姿信息包括所述机械臂的末端的期望位姿的信息;
第一处理模块,用于根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,所述指定夹角为目标平面与参考平面之间的夹角,所述参考平面为所述M个关节处于指定状态时所对应的平面,所述目标平面与所述目标位姿信息相关联,所述优化函数根据第一矩阵和第二矩阵得到,所述第一矩阵根据第一关节集合构建得到,所述第二矩阵根据第二关节集合构建得到,所述第一关节集合包括所述M个关节中的K个关节,所述第二关节集合包括所述M个关节中的L个关节,所述L个关节与所述K个关节不同,所述K和L均为大于0的整数;
第二处理模块,用于根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值;
控制模块,用于若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器、显示器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面所述的机械臂控制方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的机械臂控制方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中所述的机械臂控制方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,通过获取所述机械臂的目标位姿信息,可以获取到所述机械臂的末端的期望位置的信息,从而根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,该指定夹角可以体现所述机械臂的冗余自由度,可以通过考虑不同关节的情况,对关节进行组合,可以得到关于所述指定夹角的优化函数,以确定所述指定夹角的目标夹角值,再根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值,并在各个关节的目标角度值分别满足对应的关节限制条件时,根据各个关节的目标角度值,控制所述机械臂;此时,可以通过所述指定夹角和所述优化函数,使得所述机械臂的各个关节的运动具有确定的解析解,降低了获得具有冗余自由度的机械臂的运动学逆解的计算量,提升了计算效率,并更好地规划所述机械臂的运动,从而更合理高效地控制所述机械臂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的第一种机械臂控制方法的流程示意图;
图2是本申请一实施例提供的目标平面和参考平面的一种示意图;
图3是本申请一实施例提供的机械臂的一种示意图;
图4是本申请一实施例提供的机械臂的结构的一种等效示意图;
图5是本申请一实施例提供的一种机械臂控制装置的结构示意图;
图6是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
具体地,图1示出了本申请实施例提供的一种机械臂控制方法的流程图。
本申请实施例提供的机械臂控制方法可以应用于机械臂,也可以应用于与机械臂耦合地连接的其他终端设备,例如,可以应用于服务器、手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,并通过该其他终端设备,实现对机械臂的控制。本申请实施例对终端设备的具体类型不作任何限制。
该机械臂控制方法中,机械臂具有N个冗余自由度和M个关节,所述M个关节分别控制所述机械臂在对应的M个自由度上运动,所述N和M均为大于0的整数,且N小于M。
本申请实施例中,所述机械臂可以具有多个自由度,如可以具有4个自由度、5个自由度、6个自由度或者7个自由度等等。所述冗余自由度为所述机械臂在完成指定操作时所需的自由度之外所具有的多余自由度。其中,所述机械臂在每一个自由度方向上的运动可以通过关节来实现,并且,所述M个关节分别控制所述机械臂在对应的M个自由度上运动,其中,可以是每一个关节对应一个自由度。所述关节可以依次连接,也可以其中几个关节合并在一处,所述关节可以包括旋转轴、线性轴、连杆等多种结构形式中的一种或多种。所述关节的设置方式可以有多种,并且,所述关节的结构形式也可以有多种,在此不做限制。例如,所述机械臂可以具有7个自由度,此时,所述机械臂可以包括7个关节;而所述机械臂的末端自由度可以具有6个自由度,例如末端自由度可以具有沿x轴线性运动的自由度、沿x轴旋转运动的自由度、沿y轴线性运动的自由度、沿y轴旋转运动的自由度、沿z轴线性运动的自由度以及沿z轴旋转运动的自由度,此时,所述机械臂具有的自由度相较所述机械臂末端运动所需要的自由度多出一个自由度,因此,所述机械臂可以为具有一个冗余自由度的、并且具有七个自由度的机械臂。
该机械臂控制方法包括:
步骤S101,获取所述机械臂的目标位姿信息,所述目标位姿信息包括所述机械臂的末端的期望位姿的信息。
本申请实施例中,所述机械臂的末端可以根据具体应用场景需要进行设置,例如,所述机械臂的末端可以包括执行器,如旋拧装置、夹紧装置、压力装置、仿人手的装置等等具有一定功能的工具,从而通过控制所述机械臂的末端执行一定的功能。其中,所述机械臂的末端的期望位姿的信息可以为包括具有三个自由度的信息,从而确定所述机械臂的末端在空间中所期望达到的状态。
本申请实施例中,所述机械臂的目标位姿信息的获取方式可以有多种,例如,可以是执行本申请实施例的终端设备通过预设信息传输方式,从其他设备(如传感设备、服务器等)获取得到,也可以是该终端设备通过自带的模块(如红外检测模块、其他传感设备、摄像头等)获取到。
步骤S102,根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,所述指定夹角为目标平面与参考平面之间的夹角,所述参考平面为所述M个关节处于指定状态时所对应的平面,所述目标平面与所述目标位姿信息相关联,所述优化函数根据第一矩阵和第二矩阵得到,所述第一矩阵根据第一关节集合构建得到,所述第二矩阵根据第二关节集合构建得到,所述第一关节集合包括所述M个关节中的K个关节,所述第二关节集合包括所述M个关节中的L个关节,所述L个关节与所述K个关节不同,所述K和L均为大于0的整数。
本申请实施例中,所述参考平面和所述目标平面可以与所述目标位姿信息相关联。其中,所述指定状态可以由所述目标位姿信息来确定。例如,所述指定状态可以指所述机械臂的末端处于期望位姿,且所述机械臂中的指定关节处于指定角度时,所述M个关节所处的状态。所述目标平面可以指所述机械臂中的每个关节均处于期望的角度值时所对应的平面,在一些实施例中,该期望的角度值可以是对应的目标角度值。
需要说明的是,本申请实施例中,所述目标夹角值可以包括正值以及负值,此时,所述目标夹角值的正负可以指示所述目标夹角的方向,如相对于基准线的顺时针方向或者逆时针方向。
下面以一个具体示例来对所述目标平面和所述参考平面进行说明。
如图2所示,为所述目标平面和所述参考平面的一种示例。其中,所述机械臂为具有一个冗余自由度的,并且具有七个自由度的机械臂。当所述机械臂的末端处于期望位姿时,第一关节、第二关节、第三关节的交点为特征点S,第五关节、第六关节、第七关节的交点为特征点W。其中,所述机械臂中的第三关节的角度值为0时,第四关节对应的特征点为E0;所述机械臂中的每个关节均处于目标角度值时,第四关节对应的特征点为E,那么,特征点S、特征点E和特征点W所组成的平面为目标平面,特征点S、特征点E0和特征点W所组成的平面为目标平面。
本申请实施例中,所述优化函数可以预先根据所述第一矩阵和第二矩阵推导得到。其中,所述优化函数可以根据所述M个关节在所述机械臂上的位置和所述M个关节所分别对应的关节限制条件等,来进行推导得到。
例如,若与机械臂的末端距离最近的若干个关节的活动范围均较小,而除该若干个关节之外的其他关节活动范围较大,则,可以设置该若干个关节尽量保持初始姿态,而其他关节可以为对应的期望的姿态。此时,可以分别构建关于该若干个关节的坐标系变换情况的第一矩阵,以及关于其他关节的坐标系变换情况的第二矩阵,并根据所述第一矩阵的对角线的元素和和所述第二矩阵的对角线元素和,获得所述优化函数。此时,根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值。
步骤S103,根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值。
本申请实施例中,所述M个关节中的每一个关节与所述指定夹角的关系,可以根据所述机械臂的几何特性、坐标系之间的转换关系等信息,通过Denavit–Hartenberg建模方法等方式,预先推导得到。根据所述M个关节中的每一个关节与所述指定夹角的关系,在确定所述指定夹角值以及所述机械臂的末端的期望位姿的情况下,可以获得各个关节的目标角度值。
本申请实施例中,所述M个关节中的每一个关节与所述指定夹角的关系可以根据所述机械臂的关节的具体情况来确定。需要说明的是,所述目标角度值可以包括正值以及负值,此时,所述目标角度值的正负可以指示所述目标角度的方向。
步骤S104,若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂。
本申请实施例中,各个关节的关节限制条件可以根据实际场景来确定。例如,可以根据所述关节本身的运动范围、所述目标物体的运动特性、环境因素等等来确定。
本申请实施例中,由于所述机械臂具有冗余自由度,因此在常规情况下关节角度与机械臂的末端的期望位姿不存在一一对应的关系,对于固定的机械臂的末端的期望位姿,可以对应关节的多种目标角度。而本发明实施例中,通过所述指定夹角可以体现所述冗余自由度,同时可以针对相应的目标位姿信息,有针对性地获取到所述机械臂的各个关节的运动可以有确定的解,以更合理地控制所述机械臂的运动。
在一些实施例中,所述若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂,包括:
若各个关节的目标角度值分别满足对应的关节限制条件,则若存在至少一个具有偏置的关节,则获取所述具有偏置的关节的偏置角度值;
根据所述具有偏置的关节的偏置角度值和所述具有偏置的关节的目标角度值,计算所述具有偏置的关节的等效角度值;
根据具有偏置的关节的等效角度值和除所述具有偏置的关节之外的其他关节的目标角度值,控制所述机械臂。
其中,具有偏置的关节会导致所述关节的目标角度值出现偏差,因此,本申请实施例中,可以对所述具有偏置的关节进行补偿,以获得补偿后的等效角度值。其中,所述偏置角度值所具体对应的夹角可以根据所述关节的几何特性来确定。例如,可以确定所述目标角度值时所对应的实际特征点,并确定所述关节的等效位置,从而通过所述偏置角度值,指示所述实际特征点与所述等效位置之间的偏差情况。
在一些实施例中,根据各个关节在所述机械臂上的位置,将所述M个关节划分为上部关节、中部关节以及下部关节,所述上部关节的位姿由所述M个关节中的A个关节的位姿等效得到,所述中部关节的位姿由所述M个关节中的B个关节的位姿等效得到,所述下部关节的位姿由所述M个关节中的C个关节的位姿等效得到,所述A个关节、所述B个关节和所述C个关节相互不同,所述A、B、C分别为不小于1的整数;
所述若各个关节的目标角度值分别满足对应的关节限制条件,则若存在至少一个具有偏置的关节,则获取所述具有偏置的关节的偏置角度值,包括:
若各个关节的目标角度值分别满足对应的关节限制条件,则若所述中部关节具有偏置,则根据中部关节与所述上部关节和所述下部关节之间的位置关系,获取所述具有偏置的关节的偏置角度值,所述偏置角度值包括第一偏置角度值和第二偏置角度值,所述第一偏置角度值为所述中部关节相对于所述上部关节的补偿值,所述第二偏置角度值为所述中部关节相对于所述下部关节的补偿值,其中,
Figure BDA0002331750530000101
Figure BDA0002331750530000102
φ为所述第一偏置角度值,所述β为所述第二偏置角度值,lse为上部关节到中部关节的距离,lew为中部关节到下部关节的距离,lsw为上部关节到下部关节的距离,所述lse1为上部关节到中部关节所对应的等效位置的距离,所述lee1为中部关节到中部关节所对应的等效位置的距离,所述le1w为下部关节到中部关节所对应的等效位置的距离;
所述根据所述具有偏置的关节的偏置角度值和所述具有偏置的关节的目标角度值,计算所述具有偏置的关节的等效角度值,包括:
根据所述中部关节的第一偏置角度值和第二偏置角度值,计算所述中部关节的等效角度值,其中,所述中部关节的等效角度值q4为:
q4=arc cos((lse 2+lew 2-lsw 2)/2lselew)-π-φ-β;
所述根据具有偏置的关节的等效角度值和除所述具有偏置的关节之外的其他关节的目标角度值,控制所述机械臂,包括:
根据所述中部关节的等效角度值q4和除所述中部关节之外的其他关节的目标角度值,控制所述机械臂。
本申请实施例中,所述上部关节、中部关节以及下部关节的划分方式可以有多种。例如,所述上部关节、中部关节以及下部关节的划分可以以所述关节在所述机械臂上,与特定特征点(如机械臂的基准点)的距离远近等来划分,也可以根据所述关节的具体功能、所述目标物体的特性等信息来划分。例如,若所述机械臂用于模仿人的手臂,那么,所述上部关节可以对应人的肩部,此时,所述上部关节可以为与所述机械臂的基准点距离最近的三个关节;所述下部关节可以对应人的腕部,此时,所述下部关节可以为与所述机械臂的基准点距离最远的三个关节;所述中部关节可以对应人的肘部,此时,所述中部关节可以包括除所述A个关节和B个关节之外的一个关节。
其中,在一些实施例中,所述中部关节有结构的设置方式等原因,往往存在一定的偏置,导致目标角度值与所述中部关节本身实际的期望的角度值之间存在偏差,因此,可以通过对所述M个关节进行划分,并获得划分后的上部关节、下部关节的位置以及所述中部关节所对应的等效位置,从而可以对所述机械臂的结构进行简化,并根据几何特性,获得所述第一偏置角度值和第二偏置角度值,从而获得所述中部关节的等效角度值。其中,所述中部关节的等效位置可以指所述中部关节的目标角度所对应的位置。
如图3所示,为所述机械臂的一种示例图,其中,所述机械臂为具有一个冗余自由度的,并且具有七个自由度的机械臂,所述机械臂具有第一关节q1、第二关节q2、第三关节q3、第四关节q4、第五关节q5、第六关节q6以及第七关节q7。其中,第四关节具有偏置。
在一种具体示例中,根据各个关节在所述机械臂上的位置,将所述七个关节划分为上部关节、中部关节以及下部关节,所述上部关节的位姿由第一关节、第二关节、第三关节的位姿等效得到,所述中部关节的位姿即所述第四关节的位姿,所述下部关节的位姿由第五关节、第六关节、第七关节的位姿等效得到。
如图4所示,为所述机械臂的结构的一种等效示意图。其中,所述机械臂为具有一个冗余自由度的,并且具有七个自由度的机械臂。当所述机械臂的末端处于期望位姿时,第一关节、第二关节、第三关节的交点为特征点S,第五关节、第六关节、第七关节的交点为特征点W。第四关节对应的等效位置为E1;第四关节实际的位置为E,那么,所述第一偏移角度值可以指示所述中部关节相对于上部关节的角度偏移,所述第二偏移角度值可以指示所述中部关节相对于下部关节的角度偏移。在此基础上,可以获得所述中部关节的等效角度值q4
通过根据所述目标角度值,对所述具有偏置的关节进行补偿,可以使得对所述机械臂的控制更为准确。
在一些实施例中,在获得各个关节的目标角度值之后,还包括:
若存在至少一个关节的目标角度值不满足对应的关节限制条件,则相对于所述目标夹角值,在预设角度区间内,以一定的角度间隔,依次获得待检测夹角,并且每次获得一个待检测夹角时,对于所述待检测夹角,基于所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的关节角度,直到存在一个待检测夹角,所述待检测夹角所对应的各个关节的关节角度分别满足对应的关节限制条件,或者,遍历所述预设角度区间;
若存在一个待检测夹角,使得所述待检测夹角所对应的各个关节的关节角度分别满足对应的关节限制条件,则根据分别满足对应的关节限制条件的各个关节的关节角度,控制所述机械臂。
本申请实施例中,若存在至少一个关节的目标角度值不满足对应的关节限制条件,则可以按照一定的角度间隔,在预设角度区间内,依次查找使得关节的目标角度值满足对应的关节限制条件的指定夹角的值。所述预设角度区间可以根据对应的关节的关节限制条件以及具体的场景等信息来进行设置。
其中,查找所述待检测夹角的方向可以根据需要来确定,例如,可以在所述第一预设角度区间内,沿正向角度方向以一定的角度间隔依次获得待检测夹角,沿反向角度方向以一定的角度间隔依次获得待检测夹角,此外,也可以以正向和反向相互交替的方式,以一定的角度间隔获得待检测夹角。
在一些实施例中,在根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值之前,还包括:
根据所述M个关节在所述机械臂上的位置和所述M个关节所分别对应的关节限制条件,将所述M个关节进行划分,得到第一关节集合和第二关节集合;
构建第一关节集合所对应的第一矩阵,并构建第二关节集合所对应的第二矩阵;
根据所述第一矩阵和所述第二矩阵,获得关于所述指定夹角的优化函数。
本申请实施例中,所述关节限制条件可以指示所述关节的活动范围大小,此时,可以根据关节的活动范围以及关节之间的连接关系,对所述关节进行划分,以对不同的关节集合采用不同的控制方式,例如,对于具有7个自由度和一个冗余自由度的机械臂,若所述机械臂用于模仿人的手臂的动作,而由于人的手臂的肩关节、肘关节和腕关节的活动范围并不相同,其中,腕关节的活动范围较小,而肩关节和肘关节的活动范围较大,因此,为了使得所述机械臂的活动与人的手臂的活动方式更为类似,则可以设置其中的第五关节、第六关节、第七关节尽量保持上一时刻的姿态,而其他关节可以为对应的期望的姿态,从而可以分别构建关于该第五关节、第六关节、第七关节的坐标系变换情况的第一矩阵,以及关于其他关节的坐标系变换情况的第二矩阵,再通过第一矩阵和第二矩阵获得优化函数。
在一些实施例中,所述根据所述第一矩阵和所述第二矩阵,获得关于所述指定夹角的优化函数,包括:
根据罗德里格斯公式,得到关于目标平面与参考平面之间的第一旋转矩阵的第一公式;
根据所述第一公式,得到关于所述第一关节集合中的指定关节的坐标系与所述机械臂的基准坐标系之间的第二旋转矩阵的第二公式;
根据所述第二公式,得到关于所述第一矩阵的第一函数,其中,所述第一函数用于表示所述第一矩阵的对角线的元素和;
根据所述第二公式,得到关于所述第二矩阵的第二函数,其中,所述第二函数用于表示所述第二矩阵的对角线的元素和;
根据所述第一函数和所述第二函数,获得关于所述指定夹角的优化函数;
所述根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,包括:
将所述优化函数的值为全局最大值时所对应的角度值,作为所述指定夹角的目标夹角值。
在一些实施例中,所述根据所述第一函数和所述第二函数,获得关于所述指定夹角的优化函数,包括:
获取所述第一函数和所述第二函数所分别对应的权重;
根据所述权重,获得关于所述指定夹角的优化函数。
本申请实施例中,所述权重的具体分配方式可以根据测试、需求等来确定,在此不做限制。
具体的,以具有7个自由度的机械臂为例,所述机械臂可以包括第一关节、第二关节、第三关节、第四关节、第五关节、第六关节和第七关节;其中,所述第五关节、第六关节和第七关节可以用于模仿人的腕部的动作,因此,该第五关节、第六关节和第七关节的活动范围较小,且第五关节、第六关节和第七关节均位于靠近所述机械臂的末端的位置,因此所述第五关节、第六关节和第七关节可以作为第一关节集合,该第一关节集合对应的期望矩阵可以设为单位矩阵,即
Figure BDA0002331750530000141
此时,第一关节、第二关节、第三关节和第四关节尽量满足所述目标姿态信息的要求时,所述第一关节、第二关节、第三关节和第四关节所对应的期望矩阵
Figure BDA0002331750530000142
此时,由于0R40R3 3R4,因此,
Figure BDA0002331750530000143
其中,所述
Figure BDA0002331750530000144
可以为所述第三关节处于期望姿态时,所述第三关节的坐标系与所述机械臂的基准坐标系之间的第一期望旋转矩阵。
所述第一公式可以为:
0RΨ=I+sinΨRsw+(1-cosΨ)[Rsw]2
其中,Ψ为所述指定夹角,I为单位矩阵,Rsw为所述肩部到所述腕部的单位向量的斜对称矩阵,0RΨ为目标平面与参考平面之间的第一旋转矩阵;
所述第二公式为:
0R30RΨ 0R3 0=AssinΨ+BscosΨ+Cs,
其中,0R3 0为在所述第三关节处于指定角度时,所述第三关节的坐标系与所述机械臂的基准坐标系之间的第三旋转矩阵,所述0R3为所述第三关节的坐标系与所述机械臂的基准坐标系之间的第二旋转矩阵,
Figure BDA00023317505300001515
Figure BDA00023317505300001516
因此,由第二公式可以得到:
Figure BDA0002331750530000151
其中,
Figure BDA0002331750530000152
Figure BDA0002331750530000153
的转置。
为了使得0R3尽量达到所述第三关节的期望姿态,则
Figure BDA0002331750530000154
尽可能等于单位矩阵,因此,可以优化
Figure BDA0002331750530000155
的方程,使得
Figure BDA0002331750530000156
的对角线的元素和为最大值,因此,可以得到第一函数f1(Ψ);
Figure BDA0002331750530000157
其中,trace表示计算矩阵的对角线的元素和,
Figure BDA0002331750530000158
Figure BDA0002331750530000159
同理可得所述第三关节处于期望姿态时,所述第三关节的坐标系与所述机械臂的基准坐标系之间的第二期望旋转矩阵
Figure BDA00023317505300001510
以及优化
Figure BDA00023317505300001511
的方程,使得
Figure BDA00023317505300001512
的对角线的元素和为最大值,从而得到第二函数f2(Ψ):
Figure BDA00023317505300001513
其中,
Figure BDA00023317505300001514
Aw=3R4 TAsT0R7,Bw=3R4 TBsT0R7,Cw=3R4 TCsT0R7
根据所述f1(Ψ)和f2(Ψ)可以得到所述指定夹角的优化函数。例如,可以将所述f1(Ψ)和f2(Ψ)相加,也可以确定所述f1(Ψ)和f2(Ψ)所分别对应的权重,再根据所述权重,得到所述优化函数。
例如,可以设置所述f1(Ψ)对应的权重为λ1,所述f2(Ψ)对应的权重为λ2,所述λ1,λ2>0,所述优化函数f(Ψ)为:
Figure BDA0002331750530000161
当f(Ψ)为全局最大值或者最小值时:
Figure BDA0002331750530000162
Figure BDA0002331750530000163
其中,asw=λ1as2aw,bsw=λ1bs2bw
分别把Ψ1和Ψ2的值带入优化函数f(Ψ)确定所述指定夹角Ψ的目标夹角值。
Figure BDA0002331750530000164
本申请实施例中,通过考虑所述M个关节在所述机械臂上的位置和所述M个关节所分别对应的关节限制条件,可以根据所述关节的具体应用要求,确定更适合于当前场景的指定夹角的目标夹角值,从而使得所述机械臂的运动方式更符合期望,从而提升了用户体验。
在一些实施例中,所述机械臂具有1个冗余自由度,所述机械臂具有7个关节,所述7个关节为第一关节、第二关节、第三关节、第四关节、第五关节、第六关节和第七关节;
在根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值之前,包括:
构建关于所述第四关节的第一角度表达式;
构建所述第一关节在所述第三关节处于指定角度时的第二角度表达式;
构建所述第二关节在所述第三关节处于指定角度时的第三角度表达式;
获得所述第七关节的坐标系与所述机械臂的基准坐标系之间的变换关系表达式;
根据所述第一角度表达式、第二角度表达式、第三角度表达式、第一公式、第二公式和所述变换关系表达式,得到所述M个关节中的每一个关节与所述指定夹角的关系。
其中,所述M个关节处于指定状态时,所述第三关节处于指定角度。所述机械臂具有7个关节。
具体的,所述第一角度表达式为:
q4=arc cos((lse 2+lew 2-lsw 2)/2lselew),
其中,q4为所述第四关节的角度,lse肩部到肘部的距离,lew为肘部到腕部的距离,lsw为肩部到腕部的距离,所述肩部由所述第一关节、第二关节和第三关节进行等效得到,所述肘部与所述第四关节相对应,所述腕部由所述第五关节、第六关节和所述第七关节进行等效得到;
所述第二角度表达式为:
Figure BDA0002331750530000171
其中,p(px,py,pz)所述目标位姿所指示的所述机械臂末端的目标坐标,
Figure BDA0002331750530000172
为所述第一关节在所述第三关节处于指定角度时的角度;
所述第三角度表达式为:
Figure BDA0002331750530000173
其中,
Figure BDA0002331750530000174
为所述第二关节在所述第三关节处于指定角度时的角度;
所述第一公式为:
0RΨ=I+sinΨRsw+(1-cosΨ)[Rsw]2
其中,Ψ为所述指定夹角,I为单位矩阵,Rsw为所述肩部到所述腕部的单位向量的斜对称矩阵,0RΨ为目标平面与参考平面之间的第一旋转矩阵;
所述第二公式为:
0R30RΨ 0R3 0=AssinΨ+BscosΨ+Cs,
其中,0R3 0为在所述第三关节处于指定角度时,所述第三关节的坐标系与所述机械臂的基准坐标系之间的第三旋转矩阵,所述0R3为所述第三关节的坐标系与所述机械臂的基准坐标系之间的第二旋转矩阵;
所述变换关系表达式为:
0R70R3 3R4 4R7
其中,所述3R4为所述第四关节的坐标系相对于所述第三关节的坐标系的第四旋转矩阵,所述4R7为所述第七关节的坐标系相对于所述第四关节的坐标系的第五旋转矩阵,所述0R7为所述第七关节的坐标系相对于所述机械臂的基准坐标系的第六旋转矩阵;
所述M个关节中的每一个关节与指定夹角的关系包括:
Figure BDA0002331750530000181
q2=arc sin(-As(2,1)sinΨ-Bs(2,1)cosΨ-Cs(2,1)),
Figure BDA0002331750530000182
Figure BDA0002331750530000183
q6=arc cos(Aw(2,2)sinΨ+Bw(2,2)cosΨ+Cw(2,2)),
Figure BDA0002331750530000184
其中,
Figure BDA0002331750530000185
Aw=3R4 TAsT0R7,Bw=3R4 TBsT0R7,Cw=3R4 TCsT0R7
通过上述推导,可以得到第一关节、第二关节、第三关节、第四关节、第五关节、第六关节和第七关节与所述指定夹角的关系,此时,若给定所述指定夹角的值以及所述机械臂末端的期望位姿,可以求解得到各个关节的目标角度值。
本申请实施例中,通过获取所述机械臂的目标位姿信息,可以获取到所述机械臂的末端的期望位置的信息,从而根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,该指定夹角可以体现所述机械臂的冗余自由度,可以通过考虑不同关节的情况,对关节进行组合,可以得到关于所述指定夹角的优化函数,以确定所述指定夹角的目标夹角值,再根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值,并在各个关节的目标角度值分别满足对应的关节限制条件时,根据各个关节的目标角度值,控制所述机械臂;此时,可以通过所述指定夹角和所述优化函数,使得所述机械臂的各个关节的运动具有确定的解析解,降低了获得具有冗余自由度的机械臂的运动学逆解的计算量,提升了计算效率,并更好地规划所述机械臂的运动,从而更合理高效地控制所述机械臂。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的机械臂控制方法,图5示出了本申请实施例提供的一种机械臂控制装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
机械臂具有N个冗余自由度和M个关节,所述M个关节分别控制所述机械臂在对应的M个自由度上运动,所述N和M均为大于0的整数,且N小于M。
参照图5,该机械臂控制装置5包括:
获取模块501,用于获取所述机械臂的目标位姿信息,所述目标位姿信息包括所述机械臂的末端的期望位姿的信息;
第一处理模块502,用于根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,所述指定夹角为目标平面与参考平面之间的夹角,所述参考平面为所述M个关节处于指定状态时所对应的平面,所述目标平面与所述目标位姿信息相关联,所述优化函数根据第一矩阵和第二矩阵得到,所述第一矩阵根据第一关节集合构建得到,所述第二矩阵根据第二关节集合构建得到,所述第一关节集合包括所述M个关节中的K个关节,所述第二关节集合包括所述M个关节中的L个关节,所述L个关节与所述K个关节不同,所述K和L均为大于0的整数;
第二处理模块503,用于根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值;
控制模块504,用于若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂。
可选的,在一些实施例中,所述控制模块504具体包括:
第一获取单元,用于若各个关节的目标角度值分别满足对应的关节限制条件,则若存在至少一个具有偏置的关节,则获取所述具有偏置的关节的偏置角度值;
第一计算单元,用于根据所述具有偏置的关节的偏置角度值和所述具有偏置的关节的目标角度值,计算所述具有偏置的关节的等效角度值;
第一控制单元,用于根据具有偏置的关节的等效角度值和除所述具有偏置的关节之外的其他关节的目标角度值,控制所述机械臂。
可选的,在一些实施例中,根据各个关节在所述机械臂上的位置,将所述M个关节划分为上部关节、中部关节以及下部关节,所述上部关节的位姿由所述M个关节中的A个关节的位姿等效得到,所述中部关节的位姿由所述M个关节中的B个关节的位姿等效得到,所述下部关节的位姿由所述M个关节中的C个关节的位姿等效得到,所述A个关节、所述B个关节和所述C个关节相互不同,所述A、B、C分别为不小于1的整数;
所述第一获取单元具体用于:
若各个关节的目标角度值分别满足对应的关节限制条件,则若所述中部关节具有偏置,则根据中部关节与所述上部关节和所述下部关节之间的位置关系,获取所述具有偏置的关节的偏置角度值,所述偏置角度值包括第一偏置角度值和第二偏置角度值,所述第一偏置角度值为所述中部关节相对于所述上部关节的补偿值,所述第二偏置角度值为所述中部关节相对于所述下部关节的补偿值,其中,
Figure BDA0002331750530000211
Figure BDA0002331750530000212
φ为所述第一偏置角度值,所述β为所述第二偏置角度值,lse为上部关节到中部关节的距离,lew为中部关节到下部关节的距离,lsw为上部关节到下部关节的距离,所述lse0为上部关节到中部关节所对应的等效位置的距离,所述lee0为中部关节到中部关节所对应的等效位置的距离,所述le0w为下部关节到中部关节所对应的等效位置的距离;
所述第一计算单元具体用于:
根据所述中部关节的第一偏置角度值和第二偏置角度值,计算所述中部关节的等效角度值,其中,所述中部关节的等效角度值q4为:
q4=arc cos((lse 2+lew 2-lsw 2)/2lselew)-π-φ-β;
所述第一控制单元具体用于:
根据所述中部关节的等效角度值和除所述中部关节之外的其他关节的目标角度值,控制所述机械臂。
可选的,在一些实施例中,所述机械臂控制装置5还包括:
第一处理单元,用于若存在至少一个关节的目标角度值不满足对应的关节限制条件,则相对于所述目标夹角值,在预设角度区间内,以一定的角度间隔,依次获得待检测夹角,并且每次获得一个待检测夹角时,对于所述待检测夹角,基于所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的关节角度,直到存在一个待检测夹角,所述待检测夹角所对应的各个关节的关节角度分别满足对应的关节限制条件,或者,遍历所述预设角度区间;
第二控制单元,用于若存在一个待检测夹角,使得所述待检测夹角所对应的各个关节的关节角度分别满足对应的关节限制条件,则根据分别满足对应的关节限制条件的各个关节的关节角度,控制所述机械臂。
可选的,在一些实施例中,所述机械臂控制装置5还包括:
第二处理单元,用于根据所述M个关节在所述机械臂上的位置和所述M个关节所分别对应的关节限制条件,将所述M个关节进行划分,得到第一关节集合和第二关节集合;
第一构建单元,用于构建第一关节集合所对应的第一矩阵,并构建第二关节集合所对应的第二矩阵;
第三处理单元,用于根据所述第一矩阵和所述第二矩阵,获得关于所述指定夹角的优化函数。
可选的,在一些实施例中,所述第三处理单元具体包括:
第一处理子单元,用于根据罗德里格斯公式,得到关于目标平面与参考平面之间的第一旋转矩阵的第一公式;
第二处理子单元,用于根据所述第一公式,得到关于所述第一关节集合中的指定关节的坐标系与所述机械臂的基准坐标系之间的第二旋转矩阵的第二公式;
第三处理子单元,用于根据所述第二公式,得到关于所述第一矩阵的第一函数,其中,所述第一函数用于表示所述第一矩阵的对角线的元素和;
第四处理子单元,用于根据所述第二公式,得到关于所述第二矩阵的第二函数,其中,所述第二函数用于表示所述第二矩阵的对角线的元素和;
第五处理子单元,用于根据所述第一函数和所述第二函数,获得关于所述指定夹角的优化函数;
所述第一处理模块具体用于:
将所述优化函数的值为全局最大值时所对应的角度值,作为所述指定夹角的目标夹角值。
可选的,在一些实施例中,所述第五处理子单元具体用于:
获取所述第一函数和所述第二函数所分别对应的权重;
根据所述权重,获得关于所述指定夹角的优化函数。
可选的,在一些实施例中,所述机械臂具有1个冗余自由度,所述机械臂具有7个关节,所述7个关节为第一关节、第二关节、第三关节、第四关节、第五关节、第六关节和第七关节;
所述机械臂控制装置5还包括:
第二构建单元,用于构建关于所述第四关节的第一角度表达式;
第三构建单元,用于构建所述第一关节在所述第三关节处于指定角度时的第二角度表达式;
第四构建单元,用于构建所述第二关节在所述第三关节处于指定角度时的第三角度表达式;
第四处理单元,用于获得所述第七关节的坐标系与所述机械臂的基准坐标系之间的变换关系表达式;
第五处理单元,用于根据所述第一角度表达式、第二角度表达式、第三角度表达式、第一公式、第二公式和所述变换关系表达式,得到所述M个关节中的每一个关节与所述指定夹角的关系。
本申请实施例中,通过获取所述机械臂的目标位姿信息,可以获取到所述机械臂的末端的期望位置的信息,从而根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,该指定夹角可以体现所述机械臂的冗余自由度,可以通过考虑不同关节的情况,对关节进行组合,可以得到关于所述指定夹角的优化函数,以确定所述指定夹角的目标夹角值,再根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值,并在各个关节的目标角度值分别满足对应的关节限制条件时,根据各个关节的目标角度值,控制所述机械臂;此时,可以通过所述指定夹角和所述优化函数,使得所述机械臂的各个关节的运动具有确定的解析解,降低了获得具有冗余自由度的机械臂的运动学逆解的计算量,提升了计算效率,并更好地规划所述机械臂的运动,从而更合理高效地控制所述机械臂。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
如图6所示,该实施例的终端设备6包括:至少一个处理器60(图6中仅示出一个)处理器、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述任意各个机械臂控制方法实施例中的步骤。
所述终端设备6可以是机械臂、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备,其中,所述终端设备6为桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备时,该终端设备6可以与机械臂耦合地连接,以控制所述机械臂。该终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入设备、输出设备、网络接入设备等。其中,上述输入设备可以包括触控板、指纹采集传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风、摄像头等,输出设备可以包括显示器、扬声器等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),该处理器60还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器61在一些实施例中可以是上述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。上述存储器61在另一些实施例中也可以是上述终端设备6的外部存储设备,例如上述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器61还可以既包括上述终端设备6的内部存储单元也包括外部存储设备。上述存储器61用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如上述计算机程序的程序代码等。上述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
另外,尽管未示出,上述终端设备6还可以包括网络连接模块,如蓝牙模块Wi-Fi模块、蜂窝网络模块等等,在此不再赘述。
本申请实施例中,上述处理器60执行上述计算机程序62以实现上述任意各个机械臂控制方法实施例中的步骤时,本申请实施例中,通过获取所述机械臂的目标位姿信息,可以获取到所述机械臂的末端的期望位置的信息,从而根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,该指定夹角可以体现所述机械臂的冗余自由度,可以通过考虑不同关节的情况,对关节进行组合,可以得到关于所述指定夹角的优化函数,以确定所述指定夹角的目标夹角值,再根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值,并在各个关节的目标角度值分别满足对应的关节限制条件时,根据各个关节的目标角度值,控制所述机械臂;此时,可以通过所述指定夹角和所述优化函数,使得所述机械臂的各个关节的运动具有确定的解析解,降低了获得具有冗余自由度的机械臂的运动学逆解的计算量,提升了计算效率,并更好地规划所述机械臂的运动,从而更合理高效地控制所述机械臂。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种机械臂控制方法,其特征在于,机械臂具有N个冗余自由度和M个关节,所述M个关节分别控制所述机械臂在对应的M个自由度上运动,所述N和M均为大于0的整数,且N小于M,所述机械臂控制方法包括:
获取所述机械臂的目标位姿信息,所述目标位姿信息包括所述机械臂的末端的期望位姿的信息;
根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,所述指定夹角为目标平面与参考平面之间的夹角,所述参考平面为所述M个关节处于指定状态时所对应的平面,所述目标平面与所述目标位姿信息相关联,所述优化函数根据第一矩阵和第二矩阵得到,所述第一矩阵根据第一关节集合构建得到,所述第二矩阵根据第二关节集合构建得到,所述第一关节集合包括所述M个关节中的K个关节,所述第二关节集合包括所述M个关节中的L个关节,所述L个关节与所述K个关节不同,所述K和L均为大于0的整数;
根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值;
若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂;
所述若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂,包括:
若各个关节的目标角度值分别满足对应的关节限制条件,则若存在至少一个具有偏置的关节,则获取所述具有偏置的关节的偏置角度值;
根据所述具有偏置的关节的偏置角度值和所述具有偏置的关节的目标角度值,计算所述具有偏置的关节的等效角度值;
根据具有偏置的关节的等效角度值和除所述具有偏置的关节之外的其他关节的目标角度值,控制所述机械臂。
2.如权利要求1所述的机械臂控制方法,其特征在于,根据各个关节在所述机械臂上的位置,将所述M个关节划分为上部关节、中部关节以及下部关节,所述上部关节的位姿由所述M个关节中的A个关节的位姿等效得到,所述中部关节的位姿由所述M个关节中的B个关节的位姿等效得到,所述下部关节的位姿由所述M个关节中的C个关节的位姿等效得到,所述A个关节、所述B个关节和所述C个关节相互不同,所述A、B、C分别为不小于1的整数;
所述若各个关节的目标角度值分别满足对应的关节限制条件,则若存在至少一个具有偏置的关节,则获取所述具有偏置的关节的偏置角度值,包括:
若各个关节的目标角度值分别满足对应的关节限制条件,则若所述中部关节具有偏置,则根据中部关节与所述上部关节和所述下部关节之间的位置关系,获取所述具有偏置的关节的偏置角度值,所述偏置角度值包括第一偏置角度值和第二偏置角度值,所述第一偏置角度值为所述中部关节相对于所述上部关节的补偿值,所述第二偏置角度值为所述中部关节相对于所述下部关节的补偿值,其中,
Figure FDA0003722580460000021
Figure FDA0003722580460000022
φ为所述第一偏置角度值,所述β为所述第二偏置角度值,lse为上部关节到中部关节的距离,lew为中部关节到下部关节的距离,lsw为上部关节到下部关节的距离,所述lse1为上部关节到中部关节所对应的等效位置的距离,所述lee1为中部关节到中部关节所对应的等效位置的距离,所述le1w为下部关节到中部关节所对应的等效位置的距离;
所述根据所述具有偏置的关节的偏置角度值和所述具有偏置的关节的目标角度值,计算所述具有偏置的关节的等效角度值,包括:
根据所述中部关节的第一偏置角度值和第二偏置角度值,计算所述中部关节的等效角度值,其中,所述中部关节的等效角度值q4为:
q4=arc cos((lse 2+lew 2-lsw 2)/2lselew)-π-φ-β;
所述根据具有偏置的关节的等效角度值和除所述具有偏置的关节之外的其他关节的目标角度值,控制所述机械臂,包括:
根据所述中部关节的等效角度值q4和除所述中部关节之外的其他关节的目标角度值,控制所述机械臂。
3.如权利要求1所述的机械臂控制方法,其特征在于,在获得各个关节的目标角度值之后,还包括:
若存在至少一个关节的目标角度值不满足对应的关节限制条件,则相对于所述目标夹角值,在预设角度区间内,以一定的角度间隔,依次获得待检测夹角,并且每次获得一个待检测夹角时,对于所述待检测夹角,基于所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的关节角度,直到存在一个待检测夹角,所述待检测夹角所对应的各个关节的关节角度分别满足对应的关节限制条件,或者,遍历所述预设角度区间;
若存在一个待检测夹角,使得所述待检测夹角所对应的各个关节的关节角度分别满足对应的关节限制条件,则根据分别满足对应的关节限制条件的各个关节的关节角度,控制所述机械臂。
4.如权利要求1至3任意一项所述的机械臂控制方法,其特征在于,在根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值之前,还包括:
根据所述M个关节在所述机械臂上的位置和所述M个关节所分别对应的关节限制条件,将所述M个关节进行划分,得到第一关节集合和第二关节集合;
构建第一关节集合所对应的第一矩阵,并构建第二关节集合所对应的第二矩阵;
根据所述第一矩阵和所述第二矩阵,获得关于所述指定夹角的优化函数。
5.如权利要求4所述的机械臂控制方法,其特征在于,所述根据所述第一矩阵和所述第二矩阵,获得关于所述指定夹角的优化函数,包括:
根据罗德里格斯公式,得到关于目标平面与参考平面之间的第一旋转矩阵的第一公式;
根据所述第一公式,得到关于所述第一关节集合中的指定关节的坐标系与所述机械臂的基准坐标系之间的第二旋转矩阵的第二公式;
根据所述第二公式,得到关于所述第一矩阵的第一函数,其中,所述第一函数用于表示所述第一矩阵的对角线的元素和;
根据所述第二公式,得到关于所述第二矩阵的第二函数,其中,所述第二函数用于表示所述第二矩阵的对角线的元素和;
根据所述第一函数和所述第二函数,获得关于所述指定夹角的优化函数;
所述根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,包括:
将所述优化函数的值为全局最大值时所对应的角度值,作为所述指定夹角的目标夹角值。
6.如权利要求5所述的机械臂控制方法,其特征在于,所述根据所述第一函数和所述第二函数,获得关于所述指定夹角的优化函数,包括:
获取所述第一函数和所述第二函数所分别对应的权重;
根据所述权重,获得关于所述指定夹角的优化函数。
7.如权利要求5所述的机械臂控制方法,其特征在于,所述机械臂具有1个冗余自由度,所述机械臂具有7个关节,所述7个关节为第一关节、第二关节、第三关节、第四关节、第五关节、第六关节和第七关节;
在根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值之前,包括:
构建关于所述第四关节的第一角度表达式;
构建所述第一关节在所述第三关节处于指定角度时的第二角度表达式;
构建所述第二关节在所述第三关节处于指定角度时的第三角度表达式;
获得所述第七关节的坐标系与所述机械臂的基准坐标系之间的变换关系表达式;
根据所述第一角度表达式、第二角度表达式、第三角度表达式、第一公式、第二公式和所述变换关系表达式,得到所述M个关节中的每一个关节与所述指定夹角的关系。
8.一种机械臂控制装置,其特征在于,机械臂具有N个冗余自由度和M个关节,所述M个关节分别控制所述机械臂在对应的M个自由度上运动,所述N和M均为大于0的整数,且N小于M,所述机械臂控制装置包括:
获取模块,用于获取所述机械臂的目标位姿信息,所述目标位姿信息包括所述机械臂的末端的期望位姿的信息;
第一处理模块,用于根据所述目标位姿信息和关于指定夹角的优化函数,获得指定夹角的目标夹角值,其中,所述指定夹角为目标平面与参考平面之间的夹角,所述参考平面为所述M个关节处于指定状态时所对应的平面,所述目标平面与所述目标位姿信息相关联,所述优化函数根据第一矩阵和第二矩阵得到,所述第一矩阵根据第一关节集合构建得到,所述第二矩阵根据第二关节集合构建得到,所述第一关节集合包括所述M个关节中的K个关节,所述第二关节集合包括所述M个关节中的L个关节,所述L个关节与所述K个关节不同,所述K和L均为大于0的整数;
第二处理模块,用于根据所述目标位姿信息和所述目标夹角值,以及所述M个关节中的每一个关节与所述指定夹角的关系,获得各个关节的目标角度值;
控制模块,用于若各个关节的目标角度值分别满足对应的关节限制条件,则根据各个关节的目标角度值,控制所述机械臂;
所述控制模块具体包括:
第一获取单元,用于若各个关节的目标角度值分别满足对应的关节限制条件,则若存在至少一个具有偏置的关节,则获取所述具有偏置的关节的偏置角度值;
第一计算单元,用于根据所述具有偏置的关节的偏置角度值和所述具有偏置的关节的目标角度值,计算所述具有偏置的关节的等效角度值;
第一控制单元,用于根据具有偏置的关节的等效角度值和除所述具有偏置的关节之外的其他关节的目标角度值,控制所述机械臂。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的机械臂控制方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的机械臂控制方法。
CN201911339758.7A 2019-12-23 2019-12-23 机械臂控制方法、机械臂控制装置及终端设备 Active CN113084791B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911339758.7A CN113084791B (zh) 2019-12-23 2019-12-23 机械臂控制方法、机械臂控制装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911339758.7A CN113084791B (zh) 2019-12-23 2019-12-23 机械臂控制方法、机械臂控制装置及终端设备

Publications (2)

Publication Number Publication Date
CN113084791A CN113084791A (zh) 2021-07-09
CN113084791B true CN113084791B (zh) 2022-09-23

Family

ID=76663924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911339758.7A Active CN113084791B (zh) 2019-12-23 2019-12-23 机械臂控制方法、机械臂控制装置及终端设备

Country Status (1)

Country Link
CN (1) CN113084791B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113618741B (zh) * 2021-08-24 2022-07-29 深圳市优必选科技股份有限公司 机器人关节位姿优化方法、机器人控制方法和机器人
CN116330303B (zh) * 2023-05-29 2023-08-01 广东隆崎机器人有限公司 Scara机器人运动控制方法、装置、终端设备及介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4735795B2 (ja) * 2003-12-26 2011-07-27 独立行政法人 宇宙航空研究開発機構 冗長マニピュレータの制御方法
CN106202713A (zh) * 2016-07-11 2016-12-07 尔智机器人(上海)有限公司 一种偏置机械臂逆运动学求解方法
CN109291046A (zh) * 2017-07-25 2019-02-01 中国科学院沈阳自动化研究所 一种七自由度拟人构型机械臂逆运动学规划方法
CN107729637A (zh) * 2017-10-09 2018-02-23 燕山大学 基于臂形角区间的冗余自由度机械臂运动规划及评价方法
CN108241339B (zh) * 2017-12-27 2020-09-04 北京航空航天大学 仿人机械臂的运动求解和构型控制方法
CN108789406A (zh) * 2018-06-05 2018-11-13 上海大学 一种用于冗余机械臂可达性分析的逆解求解方法
CN109397271B (zh) * 2018-11-23 2020-07-24 华中科技大学 一种7自由度拟人机械臂及其控制方法和系统

Also Published As

Publication number Publication date
CN113084791A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
CN113119098B (zh) 机械臂控制方法、机械臂控制装置及终端设备
CN109676606B (zh) 一种计算机械臂臂角范围的方法、机械臂及机器人
CN112775931B (zh) 机械臂控制方法、装置、计算机可读存储介质及机器人
CN113084791B (zh) 机械臂控制方法、机械臂控制装置及终端设备
CN108693958B (zh) 一种手势识别方法、装置及系统
CN113119104A (zh) 机械臂控制方法、机械臂控制装置、计算设备及系统
CN113119081B (zh) 一种机械臂的臂角区间的逆解方法、装置及终端设备
CN111168719A (zh) 一种基于定位工装的机器人校准方法及系统
CN111113429B (zh) 一种动作模仿方法、动作模仿装置及终端设备
CN111438688A (zh) 机器人校正方法、装置、计算机设备及存储介质
US20210200224A1 (en) Method for controlling a robot and its end-portions and device thereof
CN113001537B (zh) 机械臂控制方法、机械臂控制装置及终端设备
CN114516048B (zh) 机器人的零点调试方法、装置、控制器及存储介质
CN108073283B (zh) 手部关节的计算方法及手套
CN111113428A (zh) 机器人控制方法、机器人控制装置及终端设备
CN115042184A (zh) 机器人手眼坐标转换方法、装置、计算机设备和存储介质
CN206326604U (zh) 基于机械视觉的机器人运动修正系统
CN112792816B (zh) 基于几何的手眼标定方法、机器人、计算机及存储介质
CN112894794B (zh) 人体手臂动作模仿方法、装置、终端设备及存储介质
CN116394265B (zh) 一种姿态传感器标定方法、装置、设备及存储介质
CN111716345A (zh) 一种运动控制方法、运动控制装置及机械臂
Petrenko et al. Mathematical method of mapping configuration space for manipulator master-slave teleoperation
CN115690279A (zh) 虚拟对象关节旋转角度的获取方法、装置、设备及介质
CN115771146A (zh) 一种机器人姿态插补方法、装置及存储介质
CN116117793A (zh) 基于计算机视觉控制机械手的方法、系统、设备和介质

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