CN114555301A - 用于腕部偏置机器人的逆运动学求解器 - Google Patents

用于腕部偏置机器人的逆运动学求解器 Download PDF

Info

Publication number
CN114555301A
CN114555301A CN202080057671.5A CN202080057671A CN114555301A CN 114555301 A CN114555301 A CN 114555301A CN 202080057671 A CN202080057671 A CN 202080057671A CN 114555301 A CN114555301 A CN 114555301A
Authority
CN
China
Prior art keywords
joint
link
target
robot
location
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.)
Pending
Application number
CN202080057671.5A
Other languages
English (en)
Inventor
J-F.杜普伊斯
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.)
Insi Innovation Co ltd
Original Assignee
Insi Innovation Co ltd
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 Insi Innovation Co ltd filed Critical Insi Innovation Co ltd
Publication of CN114555301A publication Critical patent/CN114555301A/zh
Pending legal-status Critical Current

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/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
    • 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
    • B25J9/1607Calculation of inertia, jacobian matrixes and inverses
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1635Programme controls characterised by the control loop flexible-arm control

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

本说明书的主题一般涉及用于控制机器人的技术。在一些实施方式中,本方法包括:基于用于具有腕部偏置的机器人的端部效应器的姿态数据,确定位于第一连杆的第一端部的第一点的第一目标定位。确定将第一连杆连接到第二连杆的第一关节的第二目标定位。确定位于第三连杆的第一端部的第二关节的第三目标定位,包括定义包括第一关节的第二目标定位的第一平面。确定处于第二平面内的圆的定位和大小。选择圆的周界上的点作为第三目标定位。基于每个关节的每个定位,将移动数据提供给控制系统。

Description

用于腕部偏置机器人的逆运动学求解器
技术领域
本公开一般涉及用于控制具有偏置(offset)腕部的机器人的移动的逆运动学技术。
背景技术
在机器人技术中,逆运动学可以用来确定用于机器人的关节的参数,从而提供用于机器人的端部效应器的期望位置。端部效应器(end effector)是位于机器人臂的端部的设备。用于为机器人求解逆运动学的技术有很多,包括代数技术、迭代技术、Jacobian反演技术和Jacobian转置技术。
发明内容
本说明书描述了用于确定用于具有腕部偏置的机器人的关节参数的系统、方法、设备和其他技术。一般来说,对于机器人的端部效应器的每个目标姿态,逆运动学求解器可以确定用于机器人的每个关节的参数。例如,机器人可以包括在机器人的连杆(link)之间的多个关节,其每个为机器人提供一定程度的运动。用于关节的参数可以包括关节的定位和关节的角度。
为了确定用于腕部偏置机器人的关节参数,逆运动学求解器可以根据机器人的几何形状(特别是机器人的腕部偏置的几何形状)来确定圆的定位和大小。圆的周界(perimeter)可以表示关节之一(例如,腕关节)的候选定位,这可能是使端部效应器处于目标姿态的有效解。然后,逆运动学求解器可以评估该关节的每个候选定位,以找到一个或多个有效解。如果存在多个有效解,则逆运动学求解器可以选择(多个)解之一,并且将用于所选择的解的关节参数提供给控制机器人的运动的运动控制器。运动控制器进而可以使用关节参数来使关节移动进入其目标定位和角度。
本文档描述的技术可以在不需要初始猜测的情况下,确定对于用于腕部偏置机器人的端部效应器的给定目标姿态的所有解。这可以提高确定有效解的速度,确保确定出有效解,并且减少在确定有效解时浪费的时间和处理资源。
本文描述的主题的一些实施方式包括接收定义用于具有腕部偏置的机器人的端部效应器的目标姿态的姿态数据,姿态数据指定用于端部效应器的目标端部效应器定位和端部效应器的目标取向,端部效应器附连到机器人的第一连杆(link)的第一端部。基于姿态数据,确定位于第一连杆的第一端部的第一点的第一目标定位。基于姿态数据,确定将第一连杆连接到第二连杆的第一关节的第二目标定位,第一关节位于(i)第一连杆的与第一端部相对的第二端部和(ii)第二连杆的第一端部,其中,第一连杆和第二连杆形成连接到机器人的第三连杆的第一端部的偏置腕部。确定位于第三连杆的第一端部的第二关节的第三目标定位,包括:定义第一平面,其中,(i)第一平面包括第一关节的第二目标定位,并且(ii)对于第一平面,第一点的第一目标定位和第一关节的第二目标定位之间的线是第一平面的法线;至少基于第一关节和第二关节之间的距离,确定圆的定位和大小,其中,该圆(i)处于(lie)在与第一平面平行的第二平面内且(ii)位于与第一平面偏置的定位;以及,选择圆的周界上的点作为第二关节的第三目标定位。基于用于每个关节的每个目标定位,将移动数据提供给机器人的控制系统。移动数据使控制系统调整机器人的连杆,使得每个关节位于用于关节的目标定位,并且端部效应器位于目标端部效应器定位且处于用于端部效应器的目标取向。
这些和其他实施方式可以可选地包括一个或多个以下特征。确定圆的定位和大小,可以包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定第一平面和第二平面之间的偏置距离。
确定圆的定位和大小,可以包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定圆的半径。圆的中心可以在第一点的第一目标定位和第一关节的第二目标定位之间的线上。
选择圆的周界上的点作为第二关节的第三目标定位,可以包括:沿圆的周界标识第二关节的第三目标定位的候选定位;评估每个候选定位,以确定候选定位是否提供对于目标姿态的有效解;以及,基于评估,标识提供对于目标姿态的有效解的给定候选定位作为第三目标定位。
评估候选定位,可以包括:对于将第三连杆连接到第四连杆的第三关节,基于候选定位和机器人的一个或多个其他关节的定位,确定第三关节的一个或多个定位。对于第三关节的一个或多个定位中的每一个,确定(i)第三关节的定位与候选定位之间的线和(ii)候选定位与第一关节的第二目标定位之间的线之间的角度。确定角度是否与机器人的第二连杆和第三连杆之间的连杆角度匹配。只要角度与机器人的第二连杆和第三连杆之间的角度匹配,就能确定候选定位提供对于目标姿态的有效解。
评估每个候选定位并确定角度是否与机器人的第二连杆和第三连杆之间的角度匹配,可以包括:对于候选定位,生成表示用于每个候选定位的确定角度的曲线;确定与表示连杆角度的线相交的曲线上的一个或多个点;以及,确定用于每个点的候选定位提供对于目标姿态的有效解。
对于将第三连杆连接到第四连杆的第三关节,基于候选定位和机器人的一个或多个其他关节的定位来确定第三关节的一个或多个定位,可以包括:确定同样将第三连杆连接到第四连杆的第四关节的第四目标定位;以及,确定将机器人的第四连杆连接到机器人的第五连杆的第五关节的第五目标定位。基于第五关节的第五目标定位,可以确定第四关节的第四目标定位。一个或多个其他关节可以包括第四关节和第五关节。
下面将参考附图对前述主题的各个特征和优点进行描述。其他特征和优点从本文描述的主题和权利要求中将变得明显。
附图说明
图1描述了在其中机器人控制器控制腕部偏置机器人的移动的示例环境。
图2描述了图1的机器人的关节坐标系(frame)。
图3描述了图1的机器人的关节之间的几何关系的示例,以及用于确定图1的机器人的关节定位的示例圆。
图4是描述了用于图1的机器人的关节定位的示例解的图。
图5描述了图1的机器人的关节之间的角度的示例图表。
图6描述了用于确定机器人的关节参数并使用该参数控制机器人的移动的示例过程的流程图。
图7描述了用于确定机器人的关节参数的示例过程的流程图。
在各个附图中相同的附图标记和名指示相同元素。
具体实施方式
一般来说,本文档描述了用于确定用于机器人关节的参数并使用该参数控制机器人的移动的系统、方法、设备和技术。机器人可以包括由关节连接的多个连杆,其每个为机器人提供一定范围的运动。机器人还可以包括端部效应器,例如,附连到连杆之一(例如,附连到连杆之一的端部)的工具。机器人控制器可以接收指定端部效应器的目标姿态的数据。该数据可以指定端部效应器的目标定位和目标取向。机器人控制器可以确定用于机器人关节的参数(例如,定位和角度),从而使端部效应器处于目标姿态,并且使机器人的关节移动进入由参数定义的目标定位和取向。
机器人控制器使用基于几何代数的逆运动学技术来确定用于机器人关节的参数。这种技术在确定用于机器人关节的参数时,利用了表示机器人连杆的运动范围的几何对象(例如,线、圆、平面和球体)的交集(intersection)。
在一个示例中,机器人控制器可以接收定义用于机器人元件(例如,用于机器人臂的端部或机器人的端部效应器)的目标姿态的姿态数据。机器人可能具有腕部偏置。姿态数据可以指示机器人元件的目标定位和/或元件的目标取向。
基于姿态数据,机器人控制器可以确定机器人的一个或多个连杆和/或机器人的一个或多个关节的相应目标定位。对于特定关节,机器人控制器可以通过基于机器人的几何形状定义一个或多个平面来确定关节的目标定位,并且确定平面之一上的圆。圆上的每个点是用于特定关节的候选定位。机器人控制器可以选择圆上的特定点作为特定关节的目标定位。机器人控制器可以基于每个关节的每个目标定位来向机器人的控制系统提供移动数据,该移动数据使控制系统根据定位来调整机器人的连杆。
图1描述了在其中机器人控制器110控制腕部偏置机器人120的移动的示例环境100。该示例机器人120是六自由度机器人臂,该机器人臂具有六个单轴旋转关节141至146。虽然本文档描述的技术主要按具有偏置腕部的六自由度机器人臂来描述,但是这些技术还可以类似地应用于具有偏置腕部的其他机器人臂。
机器人120包括将其基座131连接到连杆132的端部的关节141。该关节141可以使机器人120的臂的其余部分围绕其基座131旋转。机器人120还包括在连杆132的端部和上臂连杆133的端部之间的肩部关节142。肩部关节142将连杆132连接到上臂连杆133,并且使臂在肩部关节142上方的其余部分上下移动。机器人120还包括在上臂连杆133的端部和前臂连杆134的端部之间的肘部关节143。肘部关节143使臂在肘部关节143上方的其余部分上下移动。机器人120还包括在肘部关节143上方的关节144。该关节144使前臂连杆134旋转。肘部关节143和关节144将上臂连杆133连接到前臂连杆134。
机器人120还包括在前臂连杆134的端部和腕部偏置连杆135的端部之间的腕部关节145。腕部关节145将前臂连杆134连接到腕部偏置连杆135,并且使腕部偏置连杆135旋转。腕部偏置连杆135将腕部连杆136连接到在前臂连杆134的端部处的关节145。腕部偏置连杆135在腕部连杆136和前臂连杆134之间形成偏置。也就是说,由于腕部偏置连杆135提供的偏置,腕部偏置连杆137与前臂连杆134不在相同的线上。
机器人还包括将腕部连杆136的端部连接到腕部偏置连杆135的端部的关节146。关节146使腕部连杆136和附连到附连机构137的端部效应器旋转。在腕部连杆136的另一端部处,机器人120包括用于将端部效应器附连到腕部连杆136的端部的安装关节147和附连机构137。端部效应器可以是夹持器(例如,钳子、爪子、磁铁、销子、粘合面等)或工具(例如,螺丝刀、扳手等)或其他适当的端部效应器。例如,机器人120可以是使用端部效应器来执行任务的工业机器人。
关节141至关节146中的每一个可以包括执行器(actuator),其中,该执行器基于从机器人控制器109接收的控制数据109,将连杆132至连杆136移动进入目标定位和目标取向。例如,执行器可以包括使连杆132至连杆136移动进入目标定位和目标取向的电机或其他能量来源。
机器人控制器110基于机器人120的指定目标移动的数据103来生成控制数据109。例如,该数据103可以指定附连到腕部连杆136的端部效应器的目标姿态。指定目标姿态的数据可以包括指定端部效应器的定位的数据和指定端部效应器的取向的数据。可以从控制系统(例如,指示机器人执行特定任务的控制系统)接收指定目标移动103的控制数据109。基于任务,控制系统可以确定指定目标移动的数据103,并且将指定目标移动的数据103提供给机器人控制器110。
可替换地,机器人控制器110可以基于机器人120的一个或多个任务来确定端部效应器的一个或多个目标姿态。例如,如果端部效应器将沿特定路径移动,则机器人控制器110可以确定端部效应器在沿特定路径上的多个点时的姿态。
机器人控制器110还可以基于机器人的指定机器人特征的数据101来生成控制数据109。例如,机器人特征数据101可以包括指定尺寸的数据,例如,连杆132至连杆136中的每一个和/或端部效应器的长度、宽度和/或厚度,关节141至关节146中的每一个的运动范围,以及连杆132至连杆136中的每一个、关节141至关节146中的每一个和端部效应器的相对几何形状。
机器人控制器110包括逆运动学求解器111,其中,逆运动学求解器111基于机器人特征数据101和指定目标移动的数据103(例如,指定端部效应器的目标姿态的数据),确定机器人的一个或多个关节141至146的关节参数107。关节141至关节146中的每一个的参数可以包括定位和角度。关节的角度是关节所连接的两个连杆之间的角度。例如,关节144的角度是前臂连杆134和上臂连杆133之间的角度。
逆运动学求解器111可以使用共形几何代数技术,以基于端部效应器的目标姿态来确定每个关节的关节参数。逆运动学求解器111基于端部效应器的目标姿态和端部效应器的尺寸(dimension),确定安装关节147的目标定位P6。例如,如果端部效应器是直螺丝刀,则安装关节147的目标定位P6与螺丝刀端部的目标定位的距离等于(或基于)螺丝刀的长度。安装关节147的目标定位P6还将基于由目标姿态数据指定的螺丝刀的目标取向。例如,如果螺丝刀的目标取向是笔直向上的,则关节146的目标定位P6将直接位于螺丝刀的端部的目标定位的下方,并且与螺丝刀的目标端部相隔等于(或基于)螺丝刀的长度的距离。
基于安装关节147和关节146之间的距离,逆运动学求解器111可以确定关节146的目标定位P5,例如,关节146上的点的目标定位(诸如关节146的旋转中心)。例如,该距离可以等于或基于腕部连杆136的长度。关节146的目标定位P5也基于端部效应器的目标取向。也就是说,目标定位P5是沿从安装关节147延伸出来的轴线的,这将在下面参考图3更好地进行描述。
逆运动学求解器111可以使用基于关节145和关节146以及安装关节147之间的几何关系来确定的圆,确定关节145的目标定位P4,例如,关节145上的点的目标定位(诸如关节145的旋转中心)。例如,逆运动学求解器111可以确定以点P45为中心的圆。逆运动学求解器111可以确定包括关节146的目标定位P5的第一平面。第一平面可以具有法线向量P5P6,其中,法线向量P5P6从关节146的目标定位P5向安装关节147的目标定位P6延伸,或朝相反方向延伸。第一平面还可以经过目标定位P5,使得目标定位在第一平面上。
逆运动学求解器111还可以确定平行于第一平面且包括点P45的第二平面。第二平面可以按关节146的目标定位P5和点P45之间的距离来与第一平面偏置。然后,逆运动学求解器111可以确定位于第二平面且其中心为点P45的圆的大小。该圆的半径可以使用下面的关系1来确定:
关系1:r=P5P4sin(α)
在关系1中,r是圆的半径,并且α是从P5向P45延伸的线和从P5向P4延伸的线之间的角度,如图3所示。对于关节145的目标定位P4的所有解都在该圆上。逆运动学求解器111可以基于由P4的候选定位与关节146的目标定位P5之间的线和P4的候选定位与关节144的目标定位P3之间的线所形成的角度来评估P4的候选定位。该角度在图3中示出,并且在下面进行描述。如果角度对应于机器人120的几何形状,则候选者P4是有效解。为了确定P4的候选定位与目标定位P3之间的线,并使用该线来确定角度是否对应于机器人120的几何形状,逆运动学求解器111为P4的候选定位确定对于关节144的目标定位P3的解。
逆运动学求解器111可以使用候选定位P4和共形几何代数来分别确定(彼此的)关节142至关节144的目标定位P31至目标定位P3。对不包括腕部偏置的机器人使用共形几何代数的示例逆运动学技术在Adam L.Kleppe等的“使用共形代数的用于工业机器人的逆运动学”中进行了描述,其通过引用并入本文。下面对用于确定关节参数的技术的描述将参考图2来进行,其中,图2描绘机器人120的关节坐标系200。
在共形几何代数中,用两个正交维度来扩展3维欧几里得空间。欧几里得空间是用正交的单位向量e1、单位向量e2和单位向量e3来描述的。在欧几里得空间中的向量a和向量b由a=a1e1+a2e2+a3e3和b=b1e1+b2e2+b3e3提供。为了获得5维共形空间,用基础向量e+和基础向量e-来扩展3维欧几里得空间,使得e+·e+=1,并且e-·e-=-1。在共形空间中的多向量A是基础元素的线性组合:{1,e0,e1,e2,e3,e,e0e1,...,e0e1e2e3e}。两个多向量A和B的几何乘积由AB=A·B+A∧B给出。欧几里得点P在共形空间中由多向量
Figure BDA0003505253010000071
表示。
用于确定(彼此的)关节142至关节144的目标定位P1至目标定位P3的输入参数是定位向量pe、接近向量ae,、滑动向量se、以及端部效应器的法线向量n3。定位向量pe的共形表示由下面的关系2给出。垂直平面Ⅱc(即,机器人穿过腕部点的横截面)由下面的关系3定义。在关系3中,P4是上面确定的P4的候选定位。
关系2:Pe=C(pe)
关系3:Ⅱc=e0∧e3∧P4∧e
机器人120可以具有影响关节142至关节144的目标定位P1至目标定位P3的确定的不同配置。前方配置对应于机器人120的前方面对端部效应器的时候,并且后方配置对应于机器人的后方面对端部效应器的时候。肘部向上配置对应于肘部关节向上的时候,并且肘部向下配置对应于肘部关节向下的时候。腕部翻转配置对应于机器人120的腕部连杆136翻转的时候,并且无翻转配置对应于机器人120的腕部连杆136没有翻转的时候。通过使用关系4至关系6,用以下参数选择这些配置。
关系4:
Figure BDA0003505253010000081
关系5:
Figure BDA0003505253010000082
关系6:
Figure BDA0003505253010000083
肩部关节142的目标定位P1在点对Q1上,其可以通过使用下面的关系7至关系10将球体与两个平面相交来找到。参数d1和参数a1在图2中示出。参数d1是肩部关节142的高度,并且参数a1是肩部关节142与基座131的中心偏置的横向偏置距离。
关系7:
Figure BDA0003505253010000084
关系8:
Figure BDA0003505253010000085
关系9:
Figure BDA0003505253010000086
关系10:
Figure BDA0003505253010000087
点对Q1具有对于肩部关节142的目标定位P1的两个可能解。第一解对应于机器人120的前方配置,并且第二解对应于机器人120的后方配置。逆运动学求解器111可以使用下面的关系11和关系12来选择对于肩部关节142的目标定位P1的解。
关系11:
Figure BDA0003505253010000091
关系12:
Figure BDA0003505253010000092
肘部关节143的目标定位P2在圆C2上,其中,其是由下面的关系13和关系14定义的两个球体
Figure BDA0003505253010000093
Figure BDA0003505253010000094
的交集。
关系13:
Figure BDA0003505253010000095
关系14:
Figure BDA0003505253010000096
在关系13和关系14中,球体S1的中心点位于肩部关节142的选定目标定位P1,并且球体S4的中心点位于腕部关节145的P4的候选定位。圆C2与垂直平面Πc的交集将包括点对Q2,其中,逆运动学求解器111使用下面的关系15和关系16来找到点对Q2
关系15:
Figure BDA0003505253010000097
关系16:
Figure BDA0003505253010000098
点对Q2具有对于肘部关节143的目标定位P2的两个可能解。基于机器人120是否将处于肘部向上配置或肘部向下配置,逆运动学求解器111可以从该两个点中选择肘部关节143的目标定位P2。例如,逆运动学求解器111可以使用下面的关系17来选择肘部关节143的目标定位P2
关系17:
Figure BDA0003505253010000099
逆运动学求解器111可以基于肘部关节143的目标定位P2和腕部关节145的候选定位P4,确定关节144的目标定位P3。逆运动学求解器111可以使用下面的关系18至关系21来确定用于关节144的目标定位P3的点对Q3
关系18:
Figure BDA00035052530100000910
关系19:
Figure BDA00035052530100000911
关系20:
Figure BDA00035052530100000912
关系21:
Figure BDA00035052530100000913
然后,逆运动学求解器111可以基于机器人120的几何形状和下面的关系22,从点对Q3中的(多个)点中选择。
关系22:
Figure BDA00035052530100000914
Figure BDA00035052530100000915
其中:
Figure BDA0003505253010000101
在一些实施方式中,逆运动学求解器111可以评估对目标定位P3的四个可能解中的每一个,以确定腕部关节145的P4的候选定位是否为有效解。该四个可能解包括:用于腕部没有翻转且肘部向上的第一配置的第一点、用于腕部没有翻转且肘部向下的第二配置的第二点、用于腕部翻转且肘部向上的第三配置的第三点、以及腕部翻转且肘部向下的第四定位。参考图1和图3至图5,描述了用于评估P4的每个候选定位并从候选者中选择目标定位P4的技术。图3描绘机器人120的关节之间的示例几何关系300和用于确定机器人120的关节145的定位P4的示例圆330。图4是描述了用于机器人120的关节的定位的示例解的图400。图5描述了图1的机器人的关节之间的角度的示例图表500。
参考图3,平面310对应于上面描述的第一平面,并且平面320对应于上面描述的第二平面。逆运动学求解器111可以确定包括关节146的目标定位P5的第一平面310和与第一平面310平行且包括点P45的第二平面320。逆运动学求解器111还基于端部效应器的目标取向来确定关节146的目标定位P5,使得目标定位在从腕部连杆136的端部开始(例如,从关节146的目标定位P6开始)沿负Z轴线相隔距离P5P6(目标定位P5和目标定位P6之间的距离)的位置。
逆运动学求解器111可以确定两个平面310和320,以确定以点P45为中心的圆330的位置和取向。已知距离P45P5=P5P4cos(α),第二平面320可以被定义为按距离P45P5与第一平面310偏置,其中,距离P45P5是点P45和关节136的目标定位P5之间的距离。P5P4的距离(例如,腕部偏置连杆135的长度)和角度α基于机器人120的几何形状而知道。逆运动学求解器111可以确定点P45的位置是线P5P6和第二平面320的交集。如上所述,逆运动学求解器111可以使用上面的关系1来确定圆330的半径,从而确定圆330的大小。
P4的每个候选定位在圆330的周界上。圆330表示在关节145围绕由目标定位P5和目标定位P6定义的轴线(例如,(在腕部连杆136被布置为使关节147位于目标定位P6而关节146位于目标定位P5时)由腕部连杆136定义的轴线)旋转的情况下的关节145的可能位置。因此,圆330表示在腕部连杆136处于该定位时的P4的目标定位的可能位置。
图3示出一个候选定位350。逆运动学111可以沿圆330的周界评估每个候选定位,以确定对于关节145的定位P4的有效解。例如,逆运动学求解器111可以在圆350的周界上迭代,并且对于每个迭代,评估用于该迭代的P4的候选定位。由于可能存在多个有效解,因此逆运动学求解器111可以确定每个有效解,并且从多个有效解中选择(多个)解之一。
为了确定P4的候选定位是否有效,逆运动学求解器111可以如上所述地确定对于关节144的目标定位P3的一个或多个解。在该示例中,图3示出两个解P3_1和P3_2。点P3_1是对于关节144的目标定位P3的潜在解,并且点P3_2是对于关节144的目标定位P3的潜在解。然后,对于对目标定位P3的每个解,逆运动学求解器111可以确定由用于P4的候选定位和对于P3的解的Line45(P4的候选定位和目标定位P5之间的线)和Line34(对于P3的解和P4的候选定位之间的线)形成的角度β。在该示例中,角度β由用于点P3_1的Line45和Line34形成。
然后,逆运动学求解器111可以确定用于对于P3的至少一个解和P4的候选定位的角度β是否对应于机器人120的几何形状。也就是说,逆运动学求解器111可以确定角度β是否与机器人120的前臂连杆134和腕部偏置连杆135之间的角度匹配。如果是,则P4的候选定位提供有效解。如果没有对于P3的解对应于机器人120的几何形状,则逆运动学求解器111可以确定P4的候选定位不提供有效解。
参考图4,该图400描述了对于图1的机器人的关节的定位的示例解。具体地,图400描绘用于关节145的P4 431的无效候选定位和用于关节145的P4 432的有效候选定位。P4的两个候选定位都在圆405上,其中,圆405的中心为P45(未示出),并且圆405是使用如上所述的由连杆134和连杆135形成的偏置腕部以及关节145和关节146的几何形状来确定的。
为了确定候选定位P4 431是无效的,逆运动学求解器111可以确定用于P4 431的候选定位和定位P3(例如,对于P4 431的候选定位来确定的四个可能定位P3之一)的Line45 410和Line34 420之间的角度,并且将所确定的角度与机器人120的几何形状的对应角度进行比较。在该示例中,由于两条线之间的角度,Line34 420没有经过P3 440的有效定位。因此,用于关节145的P4 431的候选定位是无效的。相反,从P4 432的候选定位开始的线由于该线与从定位P4和定位P5的候选者开始的线之间的角度而经过P3 440的有效定位。因此,用于P4432的候选定位的角度是有效的。
参考图5,该图表500描述了机器人120的关节之间的角度。具体地,对于机器人120的端部效应器的目标姿态,图表500描述了用于对于关节144的目标定位P3和关节145的P4的候选定位的四个解中的每一个的曲线。图表500的x轴线表示以用于机器人的P45为中心的圆的360度(弧度(1-6.28))。例如,圆可以是图3的圆330或图4的圆405。逆运动学求解器111可以选取圆上的点以对应于零度,并且以特定方向(例如,顺时针或逆时针)围绕圆的周界进行,以确定P4的候选定位。图表500的y轴线表示用于多个可能解中的每一个的Line34和Line45之间形成的角度。
具体地,曲线511至曲线514中的每一个表示在(a)在对于P3的解和P4的每个候选定位之间沿圆延伸的Line34和(b)在关节146的目标定位P5和P4的每个候选定位之间沿圆延伸的Line45之间形成的角度。例如,曲线511表示用于对于定位P3和P4沿圆的每个候选定位的一个解的Line34和Line45之间的角度。随着P4的候选定位围绕圆改变,两条线之间的角度也会改变,如图表500所示。对于曲线511,定位P3对于该解是恒定的。其他曲线512和曲线513中的每一个表示用于对于P3的不同解的类似角度。
图表500包括表示用于机器人120的有效角度的线510。该有效角度是机器人120的前臂连杆134和腕部偏置连杆135之间的角度,并且基于机器人120上的几何形状来确定,或由机器人120的制造商指定。每条曲线与该线相交的点是对于定位P3和定位P4的有效解。例如,曲线513和曲线514在由参考数字520标记的区域都具有有效解。在该示例中,在沿圆大约1.1弧度处的P4的定位对于由曲线514表示的定位P3和对于由曲线514表示的定位P3是有效的。
逆运动学求解器111可以使用过零技术来确定哪些解与线510相交。该技术可以使用线510作为过零(zero crossing)。使用过零技术,逆运动学求解器111可以确定曲线511和曲线514中的每一个与线510相交的点,并且对于每个这种点,候选者P4的定位对应于该点。定位P3是基于在该点处与线510相交的曲线来知道的,因为用于曲线的定位P3是恒定的,并且对应于对于P3的确定解之一。
逆运动学求解器111遍历圆的粒度可以是可调整的。例如,逆运动学求解器111可以在每一度(例如,0、1、2、...360)处、在几分之一度处、或以其他适当粒度评估P4的候选定位。在一些实施方式中,逆运动学求解器111可以使用更粗的粒度,例如,每10度或每20度。如果逆运动学求解器111确定曲线在P4的两个候选定位之间与线510相交,则逆运动学求解器111可以在P4的两个候选定位之间评估P4的更多候选定位,直到找到在其处角度有效(例如,曲线与线510相交)的P4的候选定位。例如,逆运动学求解器510当在P4的两个候选定位之间搜索时可以使用比当遍历圆时更精细的粒度。如此,逆运动学求解器111可以更快地找到P4的有效定位并使用更少的计算资源,因为逆运动学求解器111评估P4的更少候选定位。
在该示例中,对于端部效应器的目标姿态,存在对于P4和P3的多个不同有效解。逆运动学求解器111(或另一组件,诸如运动控制器113)可以使用优化标准来选择(多个)解之一。优化标准可以包括关于机器人120在移动时可能碰撞的障碍的背景标准和/或关于机器人120的一个或多个先前配置的历史标准。例如,运动控制器113可以选择有效解,其中,该有效解在从机器人的当前配置移动进入由有效解定义的新配置时,最能避免障碍。在另一示例中,运动控制器113可以选择最接近机器人120的当前配置的有效解,例如,导致端部效应器或腕部关节的移动量最小的有效解。
在选择关节145的目标定位P4和其对于关节144的定位P3的对应解之后,逆运动学求解器111可以使用用于关节142、关节143、关节146和关节147的对应目标定位P1、目标定位P2、目标定位P5和目标定位P6。如上所述,逆运动学求解器111基于端部效应器的目标定位和目标取向,确定目标定位P5和目标定位P6。逆运动学求解器111在评估候选者时,确定对于P4的每个候选定位的目标定位P1和目标定位P2。如果P4的候选定位被选中,则机器人控制器110可以使用曾在评估候选者时确定的目标定位P1和目标定位P2,以将机器人120进入目标姿态。
逆运动学求解器111还确定关节141至关节146的角度。逆运动学求解器110可以基于关节141至关节146中的每一个的旋转平面来确定角度。例如,逆运动学求解器110可以基于定义关节141至关节146的旋转的向量来确定角度。点P1x=C(d1e3)、关系23至关系28和表1可以用来确定角度。
关系23:L1x1=P1x∧P1∧e
关系24:L12=P1∧P2∧e
关系25:L34=P3∧P4∧e
关系26:L4e=P4∧Pe∧e
回到图2,用于θ1的旋转位置(即,关节141的旋转)是
Figure BDA0003505253010000141
该旋转平面是对于机器人120的水平基准平面。逆运动学求解器111可以使用垂直平面Πc和下面的关系27来确定对于θ2和θ3的旋转平面。
关系27:
Figure BDA0003505253010000142
对于θ2的旋转平面是对于关节141的旋转平面,并且对于θ3的旋转平面是对于关节143的旋转平面。逆运动学求解器111可以使用L34和下面的关系24来确定对于关节θ4的旋转平面(即,对于关节144的旋转平面)。在关系24中,参数L*等于L34
关系28:
Figure BDA0003505253010000143
对于θ5的旋转平面(即,对于关节145的旋转平面)与平面L34∧Pe平行。对于θ5的旋转平面也取决于腕部是否翻转,例如,kfn。对于θ6的旋转平面(即,对于关节146的旋转平面)是
Figure BDA0003505253010000144
逆运动学求解器111可以使用下面表1中提供的参数来生成用于关节141至关节146的关节角度。
表1
Figure BDA0003505253010000145
Figure BDA0003505253010000151
回到图1,逆运动学求解器111可以将确定的目标定位P1至目标定位P6和确定的关节角度提供给机器人控制器110的运动控制器113,作为用于关节141至关节146的关节参数107。然后,运动控制器113可以向关节141至关节146中的每一个提供控制数据,其中,该控制数据使关节141至关节146移动进入相应目标定位和角度。控制数据109可以包括指定用于关节的一个或多个关节参数的数据。例如,用于关节141至关节149的控制数据109可以包括关节141至关节149的一系列定位和角度,并且关节141至关节149可以使用控制数据109来在一系列定位之间移动,以到达用于关节141至关节149的目标定位。
在一些实施方式中,运动控制器113可以接收机器人120的指定目标移动的数据103。通过使用该数据,运动控制器113可以向逆运动学求解器111查询用于关节141至关节149中的每一个的关节参数。逆运动学求解器111可以如上所述地确定关节参数,并且将关节参数107提供给运动控制器113。
图6描述了用于确定机器人的关节的参数并使用该参数控制机器人的移动的示例过程600的流程图。过程600的操作可以例如由一个或多个数据处理装置实现。例如,过程600的操作可以由图1的机器人控制器110实现。
接收定义腕部偏置机器人的端部效应器的目标姿态的姿态数据(602)。姿态数据可以指定用于端部效应器的目标端部效应器定位和端部效应器的目标取向。端部效应器可以附连到机器人的连杆的端部。例如,端部效应器可以附连到机器人的腕部连杆的端部。腕部连杆可以(例如,使用腕部偏置连杆来)与机器人的前臂连杆偏置。机器人可以是具有六个单轴旋转关节的六自由度机器人臂。
确定用于机器人的每个关节的参数(604)。这些参数可以包括关节的定位和关节的角度。如上所述,这些参数可以是基于机器人的几何形状和端部效应器的姿态数据而使用共形几何代数技术来确定的。
具体地,用于机器人的腕部关节的候选定位的集合可以是基于机器人的偏置腕部的几何形状和用于端部效应器的姿态数据来确定的。候选定位可以是圆上的点,其是基于如上所述的偏置腕部的几何形状和用于端部效应器的姿态数据来确定的。对于腕部关节的每个候选定位,可以确定肩部关节的定位和肘部关节的定位。此外,还可以确定肘部关节和腕部关节之间的关节的一个或多个定位。
腕部关节的候选定位的有效解是基于肘部关节和腕部关节之间的关节的一个或多个定位以及机器人的几何形状来确定的。例如,可以确定在(a)腕部关节的候选定位和对于肘部关节与腕部关节之间的关节的解之间延伸的线以及(b)腕部关节的候选定位和位于腕部偏置连杆的与腕部关节所在的端部相对的另一端部的关节之间延伸的线之间的角度。如果该角度与用于机器人的几何形状的有效角度匹配,则与该角度对应的解被确定为有效。用于关节的角度可以是基于与如上所述的有效解对应的关节的定位来确定的。用于确定关节参数的示例过程在图7中示出,并且在下面进行描述。
基于确定的关节参数,使机器人将端部效应器移动进入目标姿态(606)。例如,可以将控制数据发送到用于每个关节的执行器。用于每个关节的执行器可以使关节移动进入由控制数据指定的定位并具有由控制数据指定的角度。
图7描述了用于确定机器人的关节的参数的示例过程700的流程图。过程700的操作可以例如由一个或多个数据处理装置实现。例如,过程700的操作可以由图1的机器人控制器110实现。示例过程700是参考图1的机器人120来描述的。然而,示例过程700可以用来确定用于其他腕部偏置机器人的关节参数。
接收姿态数据(702)。姿态数据可以指定用于端部效应器的目标端部效应器定位和端部效应器的目标取向。端部效应器可以附连到机器人120的连杆的端部。例如,端部效应器可以附连到机器人120的腕部连杆136的端部。腕部连杆136可以例如使用腕部偏置连杆135来与机器人的前臂连杆134偏置。机器人120可以是具有六个单轴旋转关节的六自由度机器人臂。
确定位于机器人的第一连杆的第一端部的第一点的第一目标定位(704)。例如,第一连杆可以是包括第一端部和与第一端部相对的第二端部的腕部连杆136。第一端部可以包括用于将端部效应器附连到第一端部的附连机构137。位于第一连杆136的第一端部的第一点可以是安装点P6,例如,位于第一连杆136的第一端部的中间或第一连杆136的第一端部的其他适当点的安装点P6
位于第一连杆136的第一端部的第一点的第一目标定位P6可以是基于接收的端部效应器的姿态数据和尺寸来确定的。例如,第一目标定位P6可以以等于端部效应器的目标定位和附连到附连机构或与其齐平(flush with)的端部效应器上的点之间的距离来与端部效应器的目标定位偏置。第一连杆136的第一目标定位P6也可以按与端部效应器朝向的方向相反的方向来与端部效应器的目标定位偏置。例如,如果端部效应器是指向特定方向的螺丝刀,则第一连杆136的第一目标定位P6可以按与螺丝刀将指向的方向相反的方向来与端部效应器的目标定位偏置。
确定将第一连杆连接到第二连杆的第一关节的第二目标定位(706)。例如,第一连杆136的第二端部可以附连到第一关节。第一关节可以是关节146。第一关节146将第一连杆136的第二端部附连到第二连杆的第一端部。第二连杆可以是腕部偏置连杆135。第一关节146可以使第一连杆136旋转,从而使附连到第一连杆136的端部效应器旋转。
第一关节的第二目标定位可以是第一关节146上的点,例如,第一关节146的旋转中心。例如,第一关节146的第二目标定位可以是第一关节146的目标定位P5。第一关节146的第二目标定位P5可以是基于第一连杆136的第一目标定位P6和腕部连杆136的第一端部(或第一端部处的安装点)与第一关节146上的点之间的距离来确定的。如上面参考图3所描述的,第一关节的第一目标定位P5可以从端部效应器开始沿负z轴线定位。因此,第一关节146的第二目标定位P5可以沿负z轴线(定位),并且与第一连杆136的第一目标定位P6相隔一定距离。
确定位于第三连杆的第一端部的第二关节的第三目标定位(708)。第二关节可以将第二连杆135附连到第三连杆,例如,前臂连杆134。例如,第二关节可以是腕部关节145。第二关节145可以使包括第二连杆135和第一连杆136的偏置腕部旋转。第二关节145的第三目标定位可以是目标定位P4。可位于第二关节145的旋转中心的第二关节145的第三目标定位P4可以使用组成操作(constituent operation)710至组成操作724来确定。
定义第一平面(710)。第一平面可以包括第一关节146的第二目标定位P5。位于第一连杆136的第一端部的第一点的第一目标定位P6和第一关节146的第二目标定位P5之间的线是第一平面的法线。例如,如上所述,第一平面可以具有法线向量P5P6,其中,法线向量P5P6从关节146的目标定位P5向安装关节147的目标定位P6延伸,或以相反方向延伸。第一平面也可以穿过第二目标定位P5,使得第二目标定位P5在第一平面上。
定义第二平面(712)。第二平面可以是与第一平面平行的平面。第二平面也可以位于与第一平面偏置的定位。如上所述,第二平面可以按第一关节146的第二目标定位P5和点P45之间的距离来与第一平面偏置。偏置距离可以等于P5P4cos(α),其中,P5P4是第一关节146和第二关节145之间的距离,并且角度α是第一平面的法线和从第一关节146到第二关节146的线之间的角度。如图3所示,第二平面可以在负z方向上与第一平面偏置。
确定第二平面上的圆的定位和大小(714)。圆的中心可以是点P45。圆的半径可以用上面的关系1来确定。如上所述,第二关节的每个候选目标定位在该圆的周界上。
标识第二关节145的第三目标定位P4的候选定位(716)。候选定位可以是圆上的定位。例如,可以(例如,一次一个或并行地)标识和评估圆的周界上的多个点中的每一个。可以将第一候选定位标识在圆上的特定点处,例如,定义为圆上零度的点或圆的周界上另一适当点。
基于第二关节145的第三目标定位P4的候选定位,确定第三关节的一个或多个定位(718)。第三关节可以是将第三连杆134连接到第四连杆的关节。例如,第四连杆可以是上臂连杆133,并且第三关节可以是肘部关节144。为了确定第三关节的定位,可以找到第四关节和第五关节的目标定位。第四关节可以是关节143,并且第五关节可以是肩部关节142。第五关节142的目标定位P1可以使用如上所述的关系7至关系12来确定。类似地,第四关节143的目标定位P2可以使用如上所述的关系13至关系17来确定。
第三关节144的定位P3可以基于第四关节143的目标定位P2和第二关节145的第三目标定位P4的候选定位来确定。例如,第三关节144的定位P3可以使用如上所述的关系18至关系22来确定。
针对第二关节145的第三目标定位P4的候选定位来确定零个或更多个有效解(720)。对于第三关节144的每个确定定位,确定在(a)第三关节144的确定定位与第二关节145的第三目标定位P4的候选定位之间的线和(b)第二关节145的第三目标定位P4的候选定位与第一关节146的第二目标定位P5之间的线之间的角度。然后,确定该角度是否与机器人120的几何形状匹配。例如,确定该角度是否与前臂连杆134和腕部偏置连杆135之间的角度匹配。如果角度匹配,则解是有效的。如果角度不匹配,则解是无效的。如上所述,可以使用过零技术来标识有效解。
确定是否还有第二关节145的第三目标定位P4的剩余候选定位要进行评估(722)。如果是,则过程700返回到操作716,在操作716中,标识另一候选者以进行评估。
选择有效解(724)。例如,第二关节145的第三目标定位P4的多个候选定位可以具有一个或多个有效解。可以(例如,使用如上所述的额外标准来)选择(多个)有效解之一,以控制机器人120。
确定剩余关节参数(726)。对于所选择的有效解,可以确定用于与有效解对应的关节的目标定位。例如,(曾经用来确定第三关节144的P3的有效目标定位和第二关节145的有效目标定位P4的)第六关节142的目标定位P1和第五关节143的目标定位P2可以分别用作用于第六关节142的参数和用于第五关节143的参数。类似地,用于第三关节144和第二关节145的定位P3和定位P4的有效解可以分别作为用于第三关节144的参数和用于第二关节的参数。第一关节146的第一目标定位P5可以用作用于第一关节146的参数。此外,可以使用如上所述的关系23至关系28和表1来确定用于关节的角度。
然后,用于关节的参数可以用来控制机器人。例如,运动控制器可以使用用于每个关节的目标定位和目标角度,以(例如,通过生成控制数据并将控制数据发送到关节的执行器)使关节移动进入目标定位和角度。
所描述的特征可以在数字电子电路中实现,或在计算机硬件、固件、软件中实现,或在它们的组合中实现。装置可以在包含在信息载体中的计算机程序产品中(例如,在用于由可编程处理器执行的机器可读存储设备中)实现;以及,方法步骤可以如下执行:可编程处理器执行指令程序,以通过对输入数据操作并生成输出,执行所描述的实施方式的功能。所描述的特征可以在可在可编程系统上执行的一个或多个计算机程序中有利地实现,其中,可编程系统包括:耦合为从数据存储系统接收数据和指令并向其发送数据和指令的至少一个可编程处理器、至少一个输入设备和至少一个输出设备。计算机程序是指令的集合,其中,指令可在计算机中直接或间接地使用,以执行特定活动或带来特定结果。计算机程序可以用任何形式的编程语言编写,其中,编程语言包括编译语言或解释语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适于在计算环境中使用的其他单元。
适于执行指令的程序的处理器包括(例如)通用微处理器和专用微处理器两者,以及任何类型的计算机的唯一处理器或多个处理器之一。一般来说,处理器将从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般来说,计算机还包括用于存储数据文件的一个或多个大容量存储设备,或与其可操作地连接以与其通信;这种设备包括:磁盘,诸如内部硬盘和可移动盘;磁光盘;以及,光盘。适于有形地包含计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,包括(例如):半导体存储器设备,诸如EPROM、EEPROM和闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及,CD-ROM和DVD-ROM盘。处理器和存储器可以由ASIC(专用集成电路)补充或并入ASIC中。
为了提供与用户的互动,这些特征可以在具有显示器设备(诸如用于向用户显示信息的CRT(阴极射线管)或LCD(液晶显示器)监视器)以及键盘和指向设备(诸如用户可以通过其向计算机提供输入的鼠标或轨迹球)的计算机上实现。此外,这些活动可以经由触摸屏平板显示器和其他适当机构来实现。
这些特征可以在包括后端组件(诸如数据服务器)或包括中间件组件(诸如应用服务器或互联网服务器)或包括前端组件(诸如具有图形用户界面或互联网浏览器的客户端计算机)或它们的任何组合的计算机系统中实现。系统的组件可以通过数字数据通信的任何形式或媒介连接,诸如通信网络。通信网络的示例包括局域网("LAN")、广域网("WAN")、对等网络(具有ad-hoc或静态成员)、网格计算基础设施和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常经过网络(诸如所描述的网络)来互动。客户端和服务器的关系是由于在相应计算机上运行且彼此之间具有客户-服务器关系的计算机程序而产生的。
虽然本说明书包含许多具体的实施方式细节,但是这些不应被理解为对任何发明的范围或可能要求保护的内容的限制,而应被理解为对特定于特定发明的特定实施方式的特征的描述。本说明书中在分开的实施方式的上下文中描述的特定特征也可以在单个实施方案中组合实施。相反,在单个实施方式的上下文中描述的各个特征也可以在多个实施方式中分开实施,或以任何适当的子组合实施。此外,尽管上面描述的特征可能被描述为在特定组合中起作用,甚至最初也是如此要求保护的,但是在一些情况下,可以从所要求保护的组合中去除来自组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变体。
类似地,虽然附图按特定顺序描绘操作,但是这不应被理解为达到期望结果需要按所示的特定顺序或按依次顺序来执行这些操作或者需要执行所有示出的操作。在特定情况下,多任务和并行处理可能是有利的。此外,上面描述的实施方式中的各个系统组件的分离不应被理解为在所有实施方式中都需要这种分离,并且应当理解,所描述的程序组件和系统一般可以集成在软件产品中或被打包为多个软件产品。
因此,已经描述了本主题的特定实施方式。其他实施方式落入随附的权利要求的范围内。在一些情况下,权利要求中所述的动作可以按不同顺序来执行,并且仍然可以达到期望结果。此外,附图描绘的过程不一定需要所示的特定顺序或依次顺序来达到期望结果。在一些实施方式中,多任务和并行处理可能是有利的。

Claims (20)

1.一种由一个或多个数据处理装置执行的方法,所述方法包括:
接收定义用于具有腕部偏置的机器人的端部效应器的目标姿态的姿态数据,姿态数据指定用于端部效应器的目标端部效应器定位和端部效应器的目标取向,端部效应器附连到机器人的第一连杆的第一端部;
基于姿态数据,确定位于第一连杆的第一端部的第一点的第一目标定位;
基于姿态数据,确定将第一连杆连接到第二连杆的第一关节的第二目标定位,第一关节位于(i)第一连杆的与第一端部相对的第二端部和(ii)第二连杆的第一端部,其中,第一连杆和第二连杆形成连接到机器人的第三连杆的第一端部的偏置腕部;
确定位于第三连杆的第一端部的第二关节的第三目标定位,包括:
定义第一平面,(i)第一平面包括第一关节的第二目标定位,并且(ii)对于第一平面,第一点的第一目标定位和第一关节的第二目标定位之间的线是第一平面的法线;
至少基于第一关节和第二关节之间的距离,确定圆的定位和大小,该圆(i)处于与第一平面平行的第二平面内且(ii)位于与第一平面偏置的定位;以及
选择圆的周界上的点作为第二关节的第三目标定位;以及
基于用于每个关节的每个目标定位,将移动数据提供给机器人的控制系统,该移动数据使控制系统调整机器人的连杆,使得每个关节位于用于关节的目标定位,并且端部效应器位于目标端部效应器定位且处于用于端部效应器的目标取向。
2.根据权利要求1所述的方法,其中,确定圆的定位和大小包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定第一平面和第二平面之间的偏置距离。
3.根据前述权利要求中任一项所述的方法,其中,确定圆的定位和大小包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定圆的半径。
4.根据前述权利要求中任一项所述的方法,其中,圆的中心在第一点的第一目标定位和第一关节的第二目标定位之间的线上。
5.根据前述权利要求中任一项所述的方法,其中,选择圆的周界上的点作为第二关节的第三目标定位包括:
沿圆的周界标识第二关节的第三目标定位的多个候选定位;
评估每个候选定位,以确定候选定位是否提供对于目标姿态的有效解;以及
基于评估,标识提供对于目标姿态的有效解的给定候选定位作为第三目标定位。
6.根据权利要求5所述的方法,其中,评估候选定位包括:
对于将第三连杆连接到第四连杆的第三关节,基于候选定位和机器人的一个或多个其他关节的定位,确定第三关节的一个或多个定位;以及
对于第三关节的一个或多个定位中的每一个:
确定(i)第三关节的定位与候选定位之间的线和(ii)候选定位与第一关节的第二目标定位之间的线之间的角度;
确定角度是否与机器人的第二连杆和第三连杆之间的连杆角度匹配;以及
只要角度与机器人的第二连杆和第三连杆之间的角度匹配,就确定候选定位提供对于目标姿态的有效解。
7.根据权利要求6所述的方法,其中,评估每个候选定位并确定角度是否与机器人的第二连杆和第三连杆之间的角度匹配包括:
对于多个候选定位,生成表示用于每个候选定位的确定角度的曲线;
确定与表示连杆角度的线相交的曲线上的一个或多个点;以及
确定用于每个点的候选定位提供对于目标姿态的有效解。
8.根据权利要求5、6或7所述的方法,其中,对于将第三连杆连接到第四连杆的第三关节,基于候选定位和机器人的一个或多个其他关节的定位来确定第三关节的一个或多个定位包括:
确定同样将第三连杆连接到第四连杆的第四关节的第四目标定位;以及
确定将机器人的第四连杆连接到机器人的第五连杆的第五关节的第五目标定位,其中,基于第五关节的第五目标定位,确定第四关节的第四目标定位,
其中,一个或多个其他关节包括第四关节和第五关节。
9.一种系统,包括:
一个或多个数据处理装置;以及
存储指令的一个或多个计算机可读介质,所述指令在由一个或多个数据处理装置执行时,使一个或多个数据处理装置执行操作,所述操作包括:
接收定义用于具有腕部偏置的机器人的端部效应器的目标姿态的姿态数据,姿态数据指定用于端部效应器的目标端部效应器定位和端部效应器的目标取向,端部效应器附连到机器人的第一连杆的第一端部;
基于姿态数据,确定位于第一连杆的第一端部的第一点的第一目标定位;
基于姿态数据,确定将第一连杆连接到第二连杆的第一关节的第二目标定位,第一关节位于(i)第一连杆的与第一端部相对的第二端部和(ii)第二连杆的第一端部,其中,第一连杆和第二连杆形成连接到机器人的第三连杆的第一端部的偏置腕部;
确定位于第三连杆的第一端部的第二关节的第三目标定位,包括:
定义第一平面,(i)第一平面包括第一关节的第二目标定位,并且(ii)对于第一平面,第一点的第一目标定位和第一关节的第二目标定位之间的线是第一平面的法线;
至少基于第一关节和第二关节之间的距离,确定圆的定位和大小,该圆(i)处于与第一平面平行的第二平面内且(ii)位于与第一平面偏置的定位;以及
选择圆的周界上的点作为第二关节的第三目标定位;以及
基于用于每个关节的每个目标定位,将移动数据提供给机器人的控制系统,该移动数据使控制系统调整机器人的连杆,使得每个关节位于用于关节的目标定位,并且端部效应器位于目标端部效应器定位且处于用于端部效应器的目标取向。
10.根据权利要求9所述的系统,其中,确定圆的定位和大小包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定第一平面和第二平面之间的偏置距离。
11.根据权利要求9或10所述的系统,其中,确定圆的定位和大小包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定圆的半径。
12.根据权利要求9、10或11所述的系统,其中,圆的中心在第一点的第一目标定位和第一关节的第二目标定位之间的线上。
13.根据权利要求9至12中任一项所述的系统,其中,选择圆的周界上的点作为第二关节的第三目标定位包括:
沿圆的周界标识第二关节的第三目标定位的多个候选定位;
评估每个候选定位,以确定候选定位是否提供对于目标姿态的有效解;以及
基于评估,标识提供对于目标姿态的有效解的给定候选定位作为第三目标定位。
14.根据权利要求13所述的系统,其中,评估候选定位包括:
对于将第三连杆连接到第四连杆的第三关节,基于候选定位和机器人的一个或多个其他关节的定位,确定第三关节的一个或多个定位;以及
对于第三关节的一个或多个定位中的每一个:
确定(i)第三关节的定位与候选定位之间的线和(ii)候选定位与第一关节的第二目标定位之间的线之间的角度;
确定角度是否与机器人的第二连杆和第三连杆之间的连杆角度匹配;以及
只要角度与机器人的第二连杆和第三连杆之间的角度匹配,就确定候选定位提供对于目标姿态的有效解。
15.根据权利要求14所述的系统,其中,评估每个候选定位并确定角度是否与机器人的第二连杆和第三连杆之间的角度匹配包括:
对于多个候选定位,生成表示用于每个候选定位的确定角度的曲线;
确定与表示连杆角度的线相交的曲线上的一个或多个点;以及
确定用于每个点的候选定位提供对于目标姿态的有效解。
16.根据权利要求13、14或15所述的系统,其中,对于将第三连杆连接到第四连杆的第三关节,基于候选定位和机器人的一个或多个其他关节的定位来确定第三关节的一个或多个定位包括:
确定同样将第三连杆连接到第四连杆的第四关节的第四目标定位;以及
确定将机器人的第四连杆连接到机器人的第五连杆的第五关节的第五目标定位,其中,基于第五关节的第五目标定位,确定第四关节的第四目标定位,
其中,一个或多个其他关节包括第四关节和第五关节。
17.一种编码有计算机程序的非暂时性计算机存储介质,所述程序包括指令,所述指令在由机器人的一个或多个数据处理装置执行时,使数据处理装置执行操作,所述操作包括:
接收定义用于具有腕部偏置的机器人的端部效应器的目标姿态的姿态数据,姿态数据指定用于端部效应器的目标端部效应器定位和端部效应器的目标取向,端部效应器附连到机器人的第一连杆的第一端部;
基于姿态数据,确定位于第一连杆的第一端部的第一点的第一目标定位;
基于姿态数据,确定将第一连杆连接到第二连杆的第一关节的第二目标定位,第一关节位于(i)第一连杆的与第一端部相对的第二端部和(ii)第二连杆的第一端部,其中,第一连杆和第二连杆形成连接到机器人的第三连杆的第一端部的偏置腕部;
确定位于第三连杆的第一端部的第二关节的第三目标定位,包括:
定义第一平面,(i)第一平面包括第一关节的第二目标定位,并且(ii)对于第一平面,第一点的第一目标定位和第一关节的第二目标定位之间的线是第一平面的法线;
至少基于第一关节和第二关节之间的距离,确定圆的定位和大小,该圆(i)处于与第一平面平行的第二平面内且(ii)位于与第一平面偏置的定位;以及
选择圆的周界上的点作为第二关节的第三目标定位;以及
基于用于每个关节的每个目标定位,将移动数据提供给机器人的控制系统,该移动数据使控制系统调整机器人的连杆,使得每个关节位于用于关节的目标定位,并且端部效应器位于目标端部效应器定位且处于用于端部效应器的目标取向。
18.根据权利要求17所述的非暂时性计算机存储介质,其中,确定圆的定位和大小包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定第一平面和第二平面之间的偏置距离。
19.根据权利要求17或18所述的非暂时性计算机存储介质,其中,确定圆的定位和大小包括:基于第一关节和第二关节之间的距离以及第一连杆和第二连杆之间的角度,确定圆的半径。
20.根据权利要求17、18或19所述的非暂时性计算机存储介质,其中,圆的中心在第一点的第一目标定位和第一关节的第二目标定位之间的线上。
CN202080057671.5A 2019-08-15 2020-08-13 用于腕部偏置机器人的逆运动学求解器 Pending CN114555301A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/541,541 US11235459B2 (en) 2019-08-15 2019-08-15 Inverse kinematic solver for wrist offset robots
US16/541,541 2019-08-15
PCT/US2020/046217 WO2021030610A1 (en) 2019-08-15 2020-08-13 Inverse kinematic solver for wrist offset robots

Publications (1)

Publication Number Publication Date
CN114555301A true CN114555301A (zh) 2022-05-27

Family

ID=72243235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080057671.5A Pending CN114555301A (zh) 2019-08-15 2020-08-13 用于腕部偏置机器人的逆运动学求解器

Country Status (6)

Country Link
US (1) US11235459B2 (zh)
EP (1) EP3990233B1 (zh)
JP (1) JP2022544650A (zh)
KR (1) KR102693929B1 (zh)
CN (1) CN114555301A (zh)
WO (1) WO2021030610A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021101522A1 (en) * 2019-11-19 2021-05-27 Google Llc Methods and systems for graphical user interfaces to control remotely located robots
CN113997288B (zh) * 2021-11-01 2023-11-21 武汉科技大学 一种求解非球腕6r工业机器人逆运动学的数值算法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4999553A (en) * 1989-12-28 1991-03-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for configuration control of redundant robots
JP2017131990A (ja) * 2016-01-26 2017-08-03 トヨタ自動車株式会社 干渉回避方法
CN107685330A (zh) * 2017-10-18 2018-02-13 佛山华数机器人有限公司 一种六自由度手腕偏置串联机器人的运动学逆解求解方法
CN108656108A (zh) * 2018-04-18 2018-10-16 北京赛佰特科技有限公司 四自由度关节型机器人逆运动学的求解方法
CN108908340A (zh) * 2018-08-03 2018-11-30 浙江工业大学 采用有限区间神经网络的冗余机器人重复运动规划方法
JP2019093486A (ja) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ ロボットの制御装置及びロボットの逆変換処理方法
CN110000773A (zh) * 2017-11-24 2019-07-12 电装波动株式会社 机器人的控制装置及机器人的逆变换处理方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680519A (en) * 1985-09-23 1987-07-14 General Electric Co. Recursive methods for world-to-joint transformation for a robot manipulator
JPS62193786A (ja) * 1986-02-17 1987-08-25 株式会社安川電機 ロボツトの制御方法
US5159249A (en) 1989-05-16 1992-10-27 Dalila Megherbi Method and apparatus for controlling robot motion at and near singularities and for robot mechanical design
JPH04259010A (ja) * 1991-02-13 1992-09-14 Fanuc Ltd ロボットの逆変換方法
KR950010972B1 (ko) 1991-12-07 1995-09-26 포항종합제철주식회사 업셋(offset)이 있는 로보트손목의 기구변수 결정법
US5887121A (en) * 1995-04-21 1999-03-23 International Business Machines Corporation Method of constrained Cartesian control of robotic mechanisms with active and passive joints
US9107683B2 (en) * 1999-09-17 2015-08-18 Intuitive Surgical Operations, Inc. Systems and methods for cancellation of joint motion using the null-space
US7180253B2 (en) 2003-09-30 2007-02-20 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
JP4735795B2 (ja) * 2003-12-26 2011-07-27 独立行政法人 宇宙航空研究開発機構 冗長マニピュレータの制御方法
CN101814194B (zh) 2010-04-08 2012-08-22 合肥工业大学 一种消除欧拉角奇异性的转角增量方法
EP2671689B1 (en) * 2011-01-31 2015-02-25 Toyota Jidosha Kabushiki Kaisha Multi-joint arm robot, control method, and control program
DE102012102294B4 (de) * 2011-03-18 2015-03-19 Denso Wave Inc. Verfahren zum Erfassen eines Achsenabstand-Versatzes eines 6-Achs-Roboters
US9327401B2 (en) * 2012-09-10 2016-05-03 Fanuc America Corporation Method of controlling a redundant robot
KR20140110685A (ko) 2013-03-08 2014-09-17 삼성전자주식회사 싱글 포트 수술 로봇의 제어 방법
CN103529856B (zh) 2013-08-27 2016-04-13 浙江工业大学 5旋转关节机器人末端工具位姿控制方法
WO2018199035A1 (ja) * 2017-04-26 2018-11-01 日本電産株式会社 多関節ロボットおよび多関節ロボットシステム
JP2019177436A (ja) * 2018-03-30 2019-10-17 日本電産株式会社 ロボット制御装置、ロボットの関節の角度を求める方法、プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4999553A (en) * 1989-12-28 1991-03-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for configuration control of redundant robots
JP2017131990A (ja) * 2016-01-26 2017-08-03 トヨタ自動車株式会社 干渉回避方法
CN107685330A (zh) * 2017-10-18 2018-02-13 佛山华数机器人有限公司 一种六自由度手腕偏置串联机器人的运动学逆解求解方法
JP2019093486A (ja) * 2017-11-24 2019-06-20 株式会社デンソーウェーブ ロボットの制御装置及びロボットの逆変換処理方法
CN110000773A (zh) * 2017-11-24 2019-07-12 电装波动株式会社 机器人的控制装置及机器人的逆变换处理方法
CN108656108A (zh) * 2018-04-18 2018-10-16 北京赛佰特科技有限公司 四自由度关节型机器人逆运动学的求解方法
CN108908340A (zh) * 2018-08-03 2018-11-30 浙江工业大学 采用有限区间神经网络的冗余机器人重复运动规划方法

Also Published As

Publication number Publication date
KR102693929B1 (ko) 2024-08-08
US11235459B2 (en) 2022-02-01
WO2021030610A1 (en) 2021-02-18
JP2022544650A (ja) 2022-10-20
KR20220099535A (ko) 2022-07-13
EP3990233B1 (en) 2023-07-12
US20210046645A1 (en) 2021-02-18
EP3990233A1 (en) 2022-05-04

Similar Documents

Publication Publication Date Title
US11554489B2 (en) Robotic motion planning
US8560122B2 (en) Teaching and playback method based on control of redundancy resolution for robot and computer-readable medium controlling the same
US12064879B2 (en) Global arm path planning with roadmaps and precomputed domains
CN114555301A (zh) 用于腕部偏置机器人的逆运动学求解器
US11518024B2 (en) Extensible underconstrained robotic motion planning
Roa et al. Reachable independent contact regions for precision grasps
Puljiz et al. General hand guidance framework using microsoft hololens
Cong et al. A new decoupled control law for image-based visual servoing control of robot manipulators
Lewis et al. An example of failure tolerant operation of a kinematically redundant manipulator
CN112476435B (zh) 重力加速度方向的标定方法、标定装置及存储介质
Jiang et al. An integrated inverse kinematic approach for the 7-DOF humanoid arm with offset wrist
JP6891773B2 (ja) ロボットの制御装置及びロボットの逆変換処理方法
US11999059B2 (en) Limiting arm forces and torques
JP2017131990A (ja) 干渉回避方法
JP6891774B2 (ja) ロボットの制御装置及びロボットの逆変換処理方法
JP2008055518A (ja) 溶接ロボットの制御方法
US20240269838A1 (en) Limiting arm forces and torques
US20220193898A1 (en) Constrained Manipulation of Objects
JP6079293B2 (ja) ロボット制御システム、ロボット、教示装置、プログラム及びロボット制御方法
Wang et al. An Analytical Solution for Inverse Kinematics of 7-DOF Redundant Manipulators with Offsets at Elbow and Wrist
Deng et al. Inverse Kinematics of a Humanoid Robotic Arm With Fixed Joint Method
Cho Pose Selection of a Mobile Manipulator for a Pick and Place Task

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220527