CN113939783A - 用于确定指示机器人校准质量的误差参数的值的方法和计算系统 - Google Patents
用于确定指示机器人校准质量的误差参数的值的方法和计算系统 Download PDFInfo
- Publication number
- CN113939783A CN113939783A CN202180002096.3A CN202180002096A CN113939783A CN 113939783 A CN113939783 A CN 113939783A CN 202180002096 A CN202180002096 A CN 202180002096A CN 113939783 A CN113939783 A CN 113939783A
- Authority
- CN
- China
- Prior art keywords
- data
- movement
- actuation
- value
- computing system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4142—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by the use of a microprocessor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1638—Programme controls characterised by the control loop compensation for arm bending/inertia, pay load weight/inertia
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/085—Force or torque sensors
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/06—Programme-controlled manipulators characterised by multi-articulated arms
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/10—Programme-controlled manipulators characterised by positioning means for manipulator elements
- B25J9/12—Programme-controlled manipulators characterised by positioning means for manipulator elements electric
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1633—Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1692—Calibration of manipulator
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1641—Programme controls characterised by the control loop compensation for backlash, friction, compliance, elasticity in the joints
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1653—Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34013—Servocontroller
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/37—Measurements
- G05B2219/37373—Friction
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/39—Robotics, robotics to robotics hand
- G05B2219/39181—Compensation of coulomb friction in joint
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
Abstract
提出了一种计算系统和方法。计算系统可以存储传感器数据,该传感器数据包括:(i)一组移动数据,和(ii)一组致动数据。计算系统可以通过以下方式将传感器数据划分为训练数据和测试数据:(i)选择移动训练数据和对应的致动训练数据作为训练数据,以及(ii)选择移动测试数据和对应的致动测试数据作为测试数据。计算系统可基于移动训练数据和致动训练数据来确定以下各项中的至少一个:(i)摩擦参数估计或(ii)质心(CoM)估计,并可基于移动测试数据和基于摩擦参数估计或CoM估计中的至少一个来确定致动预测数据。计算系统还可以确定残差数据,并确定误差参数的值。
Description
对相关申请的交叉引用
本申请要求2021年4月29日提交的题为“METHOD AND COMPUTING SYSTEM FORDETERMINING A VALUE OF AN ERROR PARAMETER INDICATIVE OF QUALITY OF ROBOTCALIBRATION”的第17/244,224号美国申请的优先权,该美国申请要求2020年5月7日提交的题为“A ROBOTIC SYSTEM WITH ROBOT OPERATION PARAMETER DETERMINATION”的第63/021,089号美国临时申请的权益,这些申请的全部内容通过引用并入本文。
技术领域
本公开涉及一种用于确定指示机器人校准结果质量的误差参数的值的方法和计算系统。
背景技术
随着自动化变得更加普遍,机器人正在更多环境中使用,诸如在仓储和零售环境中。例如,机器人可以被用于与仓库中的物体进行交互。机器人的移动可以是固定的,或者可以基于输入,诸如由仓库中的传感器生成的信息。
然而,尽管技术进步,机器人通常缺乏复制执行更大和/或更复杂任务所需的人类交互所必要的复杂性。为了使机器人接近人类动作,机器人应该被校准以便准确和精确地控制机器人的移动。
发明内容
本公开的一个方面涉及一种计算系统、一种由该计算系统执行的方法或具有用于执行该方法的指令的非暂时性计算机可读介质。在此实施例中,计算系统包括非暂时性计算机可读介质和至少一个处理电路。至少一个处理电路被配置为当非暂时性计算机可读介质正存储传感器数据时执行各种操作,这些传感器数据包括:(i)一组移动数据,其指示经由机械臂的关节正在发生或已经发生的机械臂的一对紧邻的臂区段之间的相对移动的量或速率,以及(ii)一组致动数据,其指示在该相对移动正在发生或者已经发生的时间段中该关节处的总扭矩或总力。各种操作可以包括以下各项:通过以下操作将传感器数据划分为训练数据和测试数据:(i)选择移动训练数据和对应的致动训练数据作为训练数据,其中移动训练数据是该组移动数据的第一子集,并且其中致动训练数据是该组致动数据的第一子集,以及(ii)选择移动测试数据和对应的致动测试数据作为测试数据,其中移动测试数据是该组移动数据的第二子集,并且其中致动测试数据是该组致动数据的第二子集。各种操作还可以包括基于移动训练数据和致动训练数据确定以下各项中的至少一个:(i)与该一对紧邻的臂区段之间的摩擦相关联的摩擦参数估计,或(ii)与该一对紧邻的臂区段中的一个臂区段相关联的质心(CoM)估计。各种操作还可以包括基于移动测试数据和基于以下各项中的至少一个来确定致动预测数据:(i)摩擦参数估计或(ii)CoM估计,其中致动预测数据是指示在不同时间点在该关节处的总扭矩或总力的预测。各种操作还可以包括确定残差数据,该残差数据包括描述分别对应于不同时间点的致动预测数据和致动测试数据之间的偏差的残差数据值;基于残差数据,确定描述残差数据值的误差参数的值;确定误差参数的值是否超过定义的误差阈值;以及输出误差参数的值是否超过该定义的误差阈值的指示。
附图说明
图1A-1C示出了根据本文的实施例的用于评估机器人校准结果或用于执行机器人校准的传感器数据的质量或可靠性的系统。
图2A-2D提供了示出根据本文的实施例的用于评估机器人校准结果或用于执行机器人校准的传感器数据的质量或可靠性的计算系统的框图。
图3A-3E示出了根据本文的实施例的在其中可以执行机器人校准的环境。
图4示出了示出根据本文的实施例的示例方法的流程图,该示例方法用于确定误差参数的值的示例方法,该误差参数的值指示机器人校准结果的可靠性或准确性,或者用于执行机器人校准的传感器数据的质量。
图5A和5B示出了根据本文的实施例的臂区段的移动。
图6A-6C示出了根据本文的实施例的致动数据和移动数据。
图7A-7C示出了根据本文的实施例的致动数据和移动数据。
图8A和8B示出了根据本文的实施例的传感器数据被划分为训练数据和测试数据。
图9A-9C示出了根据本文的实施例的基于训练数据确定至少一个摩擦参数估计的示例。
图10A和10B示出了根据本文的实施例的基于训练数据确定质心(CoM)估计的示例。
图11示出了根据本文的实施例的基于移动测试数据生成的致动预测数据的示例。
图12示出了根据本文的实施例的残差数据值的示例。
图13A示出了根据本文的实施例的残差数据值的示例。
图13B示出了根据本文的实施例的为相应时间窗口中相应组的残差数据值确定平均值的示例。
具体实施方式
本公开的一方面涉及估计机器人的特性,其可以作为机器人校准操作的一部分来执行。在一些情况下,机器人可以位于例如仓库或工厂中,并且可以用于拾取该环境中的物体或以其他方式与该环境中的物体进行交互。机器人校准操作可涉及估计描述机器人物理特性的一个或多个参数,诸如机器人部件之间的摩擦,或机器人部件的质心(CoM)的位置。在一些情况下,这些物理特性的值可能偏离机器人制造商提供的标称值或理论值。偏差可能由各种各样的因素(诸如制造公差、老化、温度变化或某个其他因素)引起。
本公开的更具体方面涉及评估一个或多个参数的估计值的、用于确定这些估计值的模型的、和/或用于确定这些估计值的传感器数据的准确性、可靠性或质量。在实施例中,这样的评估可涉及将传感器数据划分为训练数据和测试数据。例如,传感器数据可以例如测量机器人部件的移动或者该部件所经历的力或扭矩,并且可以包括致动数据和移动数据。在此示例中,传感器数据可以被划分为致动训练数据(也被称为训练致动数据)、移动训练数据(也被称为训练移动数据)、致动测试数据(也被称为测试致动数据)、和移动测试数据(也被称为测试移动数据)。换句话说,致动数据和移动数据各自可以被划分为训练数据和测试数据。在此示例中,致动训练数据可以是从致动数据中提取的训练数据,并且可以是例如致动数据的第一部分,而致动测试数据可以是也从致动数据中提取的测试数据,并且可以是例如致动数据的第二部分。因此,致动训练数据和致动测试数据也可以分别被称为与致动相关的训练数据和与致动相关的测试数据。类似地,移动训练数据可以是从移动数据中提取的训练数据,并且可以是例如移动数据的第一部分,而移动测试数据可以是也从移动数据中提取的测试数据,并且可以是例如移动数据的第二部分。因此,此示例中的移动训练数据和移动测试数据也可以分别被称为与移动相关的训练数据和与移动相关的测试数据。在一些情况下,可以基于移动数据所指示的速度值与移动数据所指示的位置值之间的比率来将移动数据划分为移动训练数据和移动测试数据。例如,可以通过将该比率与定义的比率阈值进行比较来将移动数据划分为训练数据和测试数据,该比率阈值可以表示将表示移动数据的坐标系划分为对称区域的线的斜率。在这样的情况下,致动数据可以被划分为训练数据和动作数据,以对应于移动训练数据和移动测试数据。
在一些实现方案中,致动训练数据和移动训练数据可以被用于确定估计值或执行机器人校准的某个其他方面。当估计值被确定时,它们可以与移动测试数据一起被用来确定预测数据,或更具体地,确定致动预测数据。如下面更详细讨论的,致动预测数据可以是提供指示臂区段或关节处的总扭矩或总力的预测的数据。因此,致动预测数据也可以被称为与致动相关的预测数据。在一些情况下,致动预测数据可以与致动测试数据进行比较,以确定指示致动预测数据和致动测试数据之间的偏差水平的残差数据值。残差数据值可以被用于评估机器人校准结果的准确性或可靠性,或评估用于执行机器人校准的传感器数据的质量。
在实施例中,上面讨论的准确性、可靠性或质量可以经由误差参数的值来评估,该值可以基于残差数据值来确定。在一些情况下,误差参数可以指示残差数据值的频率内容。例如,误差参数可以通过对残差数据值应用滑动时间窗口,并为特定时间窗口中的一组残差数据值计算相应的平均值来确定。在此实施例中,滑动时间窗口可以更具体地定义对应于相应组的残差数据值的多个重叠的时间窗口。该多个重叠的时间窗口还可以对应于相应的残差数据值组的多个平均值。在一些实现方案中,误差参数的值可以是该多个平均值中的最大值。在一些情况下,误差参数的值可以指示残差数据值是否具有低频内容或高频内容。低频内容的存在可指示或可符合机器人正在经历事件(诸如与另一物体的碰撞),这可能导致机器人的不均匀移动并降低用于机器人校准的传感器数据的质量,其中传感器数据可以测量机器人的移动。
图1A、1B和1C示出了用于确定估计或以其他方式描述机器人的一个或多个物理特性的信息的(或更具体地用于执行机器人校准的)系统1000。本领域技术人员将意识到图1A-1C示出了用于执行机器人校准的系统1000的一个示例,并且图1A-1C中示出的部件可以被移除或省略,和/或附加部件可以被添加到系统1000。如图1A所示,系统1000可以包括计算系统1100和机器人1200。在实施例中,系统1000可以是机器人校准系统或其部件,其中机器人校准系统被配置为执行机器人校准,这可涉及例如确定机器人1200的一个或多个物理特性或某个其他特性。可以执行机器人校准,例如,以便提高可以控制机器人1200的机器人移动(也被称为机器人运动)的准确性水平,或更具体地,以便提高规划和/或精确执行机器人1200的轨迹的能力。本文中的实施例中的计算系统1100可以被配置为确定机器人校准的准确性或可靠性。更具体地,计算系统1100可以被配置为确定误差参数的值。误差参数可以指示从机器人校准获得的估计、模型或其他信息(例如,对机器人1200的物理特性的估计)的准确性,和/或指示用于执行校准机器人校准的传感器数据的质量。
在一些情况下,计算系统1100可以确定机器人1200的一个或多个物理特性,和/或可以使用机器人1200的一个或多个物理特性来生成用于使机器人1200根据规划的轨迹输出移动(也被称为运动)的移动命令。例如,计算系统1100可以被配置为确定特定于或以其他方式考虑机器人1200的一个或多个物理特性的移动命令(例如,发动机命令)。作为示例,该一个或多个物理特性可以包括例如机器人1200的部件(例如,机械臂的臂区段)之间的摩擦、这些部件具有它们的质心(CoM)的相应位置、这些部件的质量或惯性矩的相应值,和/或某个其他物理特性。机器人的这些特性可以约束或以其他方式影响机器人1200的运动,和/或影响机器人1200的部件应该如何被致动。
在一些情况下,由系统1000估计的特性可以被用于描述机器人1200的运动的物理学(physics)(例如,运动学(kinematics)),这诸如是通过描述机器人1200的一个或多个部件如何对力、扭矩、或其他形式的致动进行响应而实现的。如果图1A的计算系统1100或另一计算系统被用于控制机器人1200的移动,则该移动可以基于估计的特性来控制。例如,发动机或其他致动器可以输出力或扭矩来启动或调整机器人1200的部件的运动(例如,线性运动或旋转运动),但该运动可能会受到因素的影响,这些因素诸如是由于摩擦而产生的力(其可以阻碍运动或运动中的变化)、由于重力而产生的力、和/或诸如部件的质量或惯性矩(其也可以阻碍运动或运动中的变化)的惯性元素。在此示例中,控制机器人部件的运动可以涉及在确定例如由用于驱动机器人部件的致动器输出的力或扭矩的幅度值、方向和/或持续时间时补偿以上因素,或更一般地考虑这些因素。运动控制可以被用于例如执行机器人1200的轨迹,在一些情况下这可涉及精确地遵循机器人的各种部件的位置、速度或速率和/或加速度的规划值。即,运动控制可能涉及遵循规划的轨迹,这可涉及机器人的各种部件的速度和/或加速度的一个具体值或一组值。上面讨论的对物理特性的估计可以被用于控制致动器以便使得所执行的轨迹紧密地匹配于所规划的轨迹。
在实施例中,执行机器人校准可以涉及确定或更新力模型和/或扭矩模型。在这样的实施例中,计算系统1100(或某个计算系统)可以基于力模型和/或扭矩模型来确定要由(一个或多个)致动器施加多少力和/或扭矩,或者力和/或扭矩的方向或持续时间。在一些情况下,力模型和/或扭矩模型可以由描述影响机器人1200或其部件上的总力或总扭矩的因素的信息形成,或包括该信息。例如,力模型和/或扭矩模型可以包括表示例如摩擦、重力、质量、惯性矩和/或其组合的参数的值。在一些情况下,力模型和/或扭矩模型可以包括摩擦模型,该摩擦模型可以包括描述机器人或其部件将经历多少摩擦的信息。作为示例,摩擦模型可以包括表示粘性摩擦(也被称为动摩擦或滑动摩擦)和库仑摩擦(也被称为静态摩擦)的参数,这将在下面更详细地讨论。在一些情况下,力模型和/或扭矩模型可以描述(一个或多个)致动器输出的力和/或扭矩与机器人部件所经历的总扭矩或总力之间的关系(例如,数学关系),和/或可以描述由(一个或多个)致动器输出的力和/或扭矩与所造成的机器人部件的运动之间的关系。在以上示例中,如果机器人校准得出了力模型或扭矩模型,则计算系统1100(或某个其他计算系统)可以利用该力模型和/或扭矩模型来控制该(一个或多个)致动器,或更一般地控制机器人1200的运动。在此实施例中,上面讨论的误差参数可以描述力模型和/或扭矩模型的准确性或可靠性,和/或描述被用于生成力模型和/或扭矩模型的传感器数据的质量。因此,计算系统1100可以被配置为确定误差参数的值,以便确定从执行机器人校准所获得的力模型和/或扭矩模型的准确性或可靠性。
如上所述,图1A的系统1000可以被用于执行机器人校准,诸如通过确定描述或以其他方式表示机器人1200的一个或多个物理特性的信息。在一些情况下,系统1000(以及由系统1000执行的相关联的方法)操作以通过引起机器人1200的移动并使用描述移动的数据来确定机器人的物理特性来执行机器人校准。更具体地,在移动期间,计算系统1100可以监视机器人1200并且接收描述机器人1200的部件的移动的传感器数据。基于接收到的传感器数据,计算系统1100可以确定用于机器人1200或其部件的物理特性中的每一个物理特性的相应估计值。在此实施例中,可由计算系统1100确定的误差参数可以指示机器人1200的物理特性中的每一个物理特性的估计值的准确性或可靠性。
在实施例中,机器人1200可以包括机械臂1210,并且执行机器人校准可以涉及确定机械臂1210的部件(例如,臂区段)的一个或多个物理特性。更具体地,机械臂1210可以包括数目n个臂区段12121、12122、…1212n(也被称为机械臂1210的连杆),并且从机器人校准确定的一个或多个物理特性可以对臂区段12121-1212n中的一个或多个进行描述。在一些情况下,臂区段12121-1212n中的每一个可以在多个运动平面中独立地致动或移动。在一些实现方案中,臂区段12121-1212n可以彼此串联耦合(例如,经由多个关节),使得机械臂1210由一系列臂区段12121-1212n形成。在此实施例中,臂区段12121-1212n可以形成用于将末端执行器(也被称为末端执行器装置)或其他臂区段移动到特定姿势的运动链。例如,臂区段12121-1212n可以被耦合,使得臂区段12121-1212n中的每一个都具有第一端(例如,近端)并具有第二端(例如,远端),该第一端被耦合到机器人基座或臂区段12121-1212n系列中的前一臂区段,该第二端被耦合到臂区段12121-1212n系列中的后续臂区段或形成机械臂1210的远端。以此方式,臂区段12121之后可以是臂区段12122,臂区段12122之后可以是臂区段12123,臂区段12123之后可以是臂区段12124等。作为示例,臂区段12121可以在臂区段12121的近端处被耦合到机器人基座并且可以在臂区段12121的远端处被耦合到臂区段12122。还在此示例中,臂区段12122可以在臂区段12122的近端处被耦合到臂区段12121,并且可以在臂区段12122的远端处被耦合到臂区段12123。在一些实现方案中,臂区段1212n可以是末端执行器装置。本领域技术人员将意识到,臂区段12121-1212n可以以任何布置被耦合,以便根据机器人1200的操作要求来执行移动。
在实施例中,如果机器人校准涉及确定关于机械臂1210的臂区段12121-1212n的物理特性的信息,则该信息可以被用于控制机械臂1210的移动。例如,臂区段12121-1212n可以相对于彼此移动以产生机械臂1210的整体运动以实现末端执行器或机械臂1210的远端处的其他臂区段的期望姿势。如果计算系统1100参与控制机械臂1210的移动(诸如通过为机械臂1210规划轨迹),则计算系统1100可以规划各个臂区段的移动。为各个臂区段进行的此移动规划可以基于关于各个臂区段的物理特性的所确定的信息。在一些情况下,机器人校准可以涉及确定力模型和/或扭矩模型,该力模型和/或扭矩模型描述影响在各个臂区段上施加多少总力或总扭矩的因素。例如,力模型和/或扭矩模型可以应用于臂区段或连接一对臂区段的关节,并且可以描述该臂区段或关节所经历的总力或总扭矩与臂区段相对于关节的移动的量或速率之间的关系。在这样的情况下,计算系统1100可以基于力模型和/或扭矩模型来规划各个臂区段的移动。在此实施例中,如果计算系统1100生成或以其他方式确定特定于单独臂区段或关节的力模型和/或扭矩模型,则计算系统1100还可以被配置为确定特定于该单独臂区段或关节的误差参数值,其中误差参数值是指上面讨论的误差参数的值,并且可以指示力模型或扭矩模型的可靠性或准确性。如果计算系统1100为臂区段或关节中的每一个臂区段或关节生成相应的力模型和/或扭矩模型,则计算系统1100还可以为臂区段或关节中的每一个臂区段或关节确定相应的误差参数值。
在实施例中,如果执行机器人校准涉及确定关于机械臂1210的臂区段12121-1212n的每个臂区段的物理特性的信息,则该物理特性可以涉及描述臂区段的移动和直接施加到该臂区段的扭矩或力之间的关系的参数。例如,对于臂区段12121-1212n中的每一个,该参数可以描述臂区段的质心位置、臂区段的质量或重量、臂区段的质量如何分布、臂区段的惯性矩,和/或臂区段和机械臂1210的另一个部件(例如,另一个臂区段)之间的摩擦。该参数可以由计算系统1100或任何其他计算系统在为机械臂1210规划轨迹时使用。例如,计算系统1100可以使用该参数来预测特定量的力或扭矩将产生多少移动或移动速率,或确定需要多少力或扭矩来生成一定量的移动或移动速率。更具体地,计算系统1100可以使用该参数来确定对摩擦对臂区段的影响、重力对臂区段的影响(其可以近似为作用于臂区段的CoM)和/或臂区段的质量或惯性矩进行补偿的力或扭矩的量。在此实施例中,如果机器人校准涉及确定例如特定臂区段的质心位置的估计值或两个臂区段之间的摩擦系数的估计值,则上面讨论的误差参数可以描述或以其他方式指示该估计值的准确性和/或可靠性。
在实施例中,如图1B所示,机器人1200可以包括一个或多个传感器的组1220和一个或多个致动器(例如,发动机)的组1230,其可以被用于执行机器人校准操作。一个或多个致动器的组1230可以各自被配置为输出力或扭矩,该力或扭矩可以被施加到机械臂1210的臂区段12121-1212n中的一个或多个,以便引起该一个或多个臂区段的移动。在实施例中,一个或多个致动器的组1230的操作可以由计算系统1100控制。例如,计算系统1100可以被配置为输出用于引起一个或多个致动器的组1230的至少一个致动器的激活的一个或多个移动命令。在一些实现方案中,该一个或多个移动命令可以包括用于使一个或多个致动器的组1230激活并输出力和/或扭矩的模拟信号和/或数字信号。在一些情况下,该一个或多个移动命令可以控制由激活的致动器输出多少力或扭矩、力或扭矩的方向和/或力或扭矩的持续时间。
在实施例中,如图1C所示,一个或多个致动器的组1230可以包括多个致动器12301-1230n,这些多个致动器12301-1230n中的每一个可以输出用于引起多个臂区段12121-1212n的相应臂区段的移动的力或扭矩。例如,多个致动器12301-1230n可以被配置为输出用于旋转或以其他方式移动臂区段12121-1212n的扭矩。在一个示例中,致动器12301-1230n可以被耦合到或放置在臂区段12121-1212n处,并且可以在被激活时输出相应的力或扭矩以分别引起臂区段12121-1212n的移动。在这样的示例中,致动器12301-1230n的激活和/或致动器12301-1230n输出的力或扭矩的相应量可以由计算系统1100(例如,经由移动命令)控制。
在实施例中,一个或多个传感器的组1220被配置为生成一个或多个组的传感器数据(也被称为数据组),其被计算系统1100用来执行机器人校准。在一些情况下,数据组可以测量或以其他方式表示臂区段12121-1212n中的一个或多个的移动和/或臂区段12121-1212n经历的力或扭矩。例如,传感器数据的一个或多个数据组可以包括一组致动数据和一组移动数据。
在实施例中,该组致动数据可以包括表示臂区段12121-1212n中的一个或多个所经历的或在一个或多个关节处所经历的总力和/或总扭矩的数据。臂区段上的总力或总扭矩可以包括或基于由致动器12301-1230n的贡献而产生的力或扭矩、由于来自重力的贡献而产生的力或扭矩、以及由于来自摩擦的贡献而产生的力或扭矩。该组致动数据可以直接指示臂区段中的一个或多个或在一个或多个关节处所经历的总力或总扭矩,或与该总力或总扭矩成正比。
在实施例中,臂区段12121-1212n中的一个的该组移动数据可以包括表示臂区段的移动量或移动速率(例如,速度或加速度)的数据。该移动可以是例如臂区段的旋转、臂区段的线性移动或某个其他移动。在一些情况下,移动量或移动速率可以相对于机器人1200的另一个部件(诸如另一个臂区段)来测量。例如,此另一臂区段的位置可被视为基线位置(或更一般地,参考系),移动的臂区段的移动量或移动速率从该基线位置来测量。在一些情况下,移动量可以由移动的臂区段的位置或位移表示,其可以相对于例如上面讨论的基线位置。如果移动涉及一个臂区段相对于基线位置的旋转,则该位置或位移也可被称为旋转位置、旋转位移或角位移,并且可以以度或弧度来测量。在一些情况下,旋转位置的正值可以指示移动的臂区段已经在一个方向(例如,逆时针方向)旋转超过基线位置,而旋转位置的负值可以指示移动的臂区段已经以相反方向(例如,顺时针方向)旋转超过基线位置。
在实施例中,一个或多个传感器的组1220可以包括被用于生成致动数据的第一组传感器12221、12222、…1222n和被用于生成移动数据的第二组传感器12241、12242、…1224n,如图1C所示。在一些实现方案中,第一组传感器12221-1222n可以被放置在臂区段12121-1212n处或以其他方式与臂区段12121-1212n对应。类似地,第二组传感器12241-1224n也可以被放置在臂区段12121-1212n处或以其他方式与臂区段12121-1212n对应。在此示例中,第一组传感器12221-1222n中的每一个可以生成相应的一组致动数据,该组致动数据指示多个臂区段12121-1212n中的相应臂区段处的力或扭矩。此外,第二组传感器12241-1224n中的每一个可以生成相应的一组移动数据,该组移动数据指示多个臂区段12121-1212n中的相应臂区段的移动量或移动速率。在一些实现方案中,臂区段12121-1212n由致动器12301-1230n驱动或以其他方式致动,并且第一组传感器12221-1222n中的每个传感器可以是对应于多个致动器12301-1230n中的相应致动器的扭矩传感器或电流传感器。如果传感器12221-1222n中的每一个是电流传感器,则该传感器可以被配置为测量流过该传感器的相应电流量,其可以基本上等于流过多个致动器12301-1230n中的相应致动器的相应电流量。流过致动器的电流量可以被用于计算或以其他方式确定对应的臂区段所经历的总力或总扭矩的量。此计算可由计算系统1100或由传感器12221-1222n自身执行。
图2A提供了示出计算系统1100的实施例的框图。计算系统1100包括至少一个处理电路1110和(一个或多个)非暂时性计算机可读介质1120。在实施例中,处理电路1110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“PLC”)、专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”),其任何组合或任何其他处理电路。在实施例中,非暂时性计算机可读介质1120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SSD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒、其任何组合或任何其他存储设备。在一些情况下,非暂时性计算机可读介质1120可以包括多个存储设备。非暂时性计算机可读介质1120可以替代地或附加地存储计算机可读程序指令,在由处理电路1110执行时,该指令使处理电路1110执行本文描述的一种或多种方法,诸如关于图4所示的方法4000描述的操作。
图2B描绘了计算系统1100A,其是计算系统1100的实施例并且包括通信接口1130。通信接口1130可以被配置为在计算系统1100A和机器人1200之间提供有线或无线通信路径,诸如使用上面讨论的传感器(例如,1220)和/或致动器(例如,1230)。作为示例,通信电路可以包括RS-232端口控制器、USB控制器、以太网控制器、控制器、PCI总线控制器、网络控制器、任何其他通信电路或其组合。如果计算系统1100A生成一个或多个移动命令,则通信接口1130可以被配置为将该一个或多个移动命令传送到致动器组1230。此外,如果传感器组1220生成传感器数据,则通信接口1130可以被配置为从传感器组1220接收传感器数据(例如,移动数据和致动数据)。在这样的情况下,计算系统1100的处理电路1110可以被配置为经由通信接口1130直接或间接地接收传感器数据。
在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令来编程。例如,图2C示出了计算系统1100B,其是计算系统1100/1100A的实施例,其中处理电路1110由一个或多个模块编程,该一个或多个模块包括机器人校准模块1122,其可以包括用于执行机器人校准和/或用于评估机器人校准结果的准确性和/或可靠性的计算机可读程序指令。例如,机器人校准模块1122可以被配置为为与特定臂区段相关联的CoM估计或与臂区段之间的特定关节相关联的摩擦参数估计而确定该CoM估计或该摩擦参数估计的误差参数值,其中误差参数值可以是上面讨论的误差参数的值。如果机器人校准模块1122确定了多个CoM估计或多个摩擦参数估计,则模块1122可以为该多个估计确定多个相应的的误差参数值。在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”泛指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件部件正在执行模块或计算机可读指令时,模块和计算机可读指令可被描述为执行各种操作或任务。
在实施例中,如图2C所示,非暂时性计算机可读介质1120可以存储或以其他方式包括传感器数据1124,该数据可以被处理电路1110用来执行机器人校准。传感器数据1124可以包括例如上面描述的致动数据和移动数据。例如,图2D描绘了其中传感器数据1124包括移动数据1127和致动数据1128的示例。在一些情况下,移动数据1127和致动数据1128各自可以包括多组数据,其中每组数据描述与相应的臂区段相关联的移动,或描述相应臂区段处或将臂区段连接到另一个臂区段的相应关节处的总力或扭矩。在一些情况下,传感器数据1124可能已经由图1B的传感器组1220生成,并且可能已经经由图2B的通信接口1130被接收。如果存储的传感器数据1124被用于执行机器人校准操作,则非暂时性计算机可读介质1120还可以存储被确定为机器人校准操作的结果的信息1126(也被称为机器人校准信息1126)。机器人校准信息1126可以描述机器人(例如,1200)的一个或多个物理特性。例如,机器人校准信息可以包括对描述机器人的一个或多个物理特性的各种参数的相应估计(也被称为估计值)。在一些情况下,机器人校准信息可以描述扭矩模型、力模型和/或摩擦模型。在实施例中,机器人校准信息1126可以包括误差参数值,这些误差参数值指示上面讨论的相应估计的可靠性和/或准确性,和/或被用于生成相应估计的传感器数据的可靠性或质量。
图3A-3D示出了根据各种实施例的在其中可以执行机器人校准的(一个或多个)示例环境。本领域技术人员将意识到图3A-3D示出了用于执行机器人校准的(一个或多个)环境的一个示例,并且图3A-3D中示出的现有部件可以被移除和/或附加部件可以被添加到环境。图3A呈现了机器人3200的侧视图,机器人3200可以是机器人1200的实施例。机器人3200可以包括耦合到基座3202的机械臂3210。在图3A的示例中,机械臂3210可以包括多个臂区段32121、32122、32123、32124、32125和32126(也被称为连杆),其可以被耦合在多个关节32141、32142、32143、32144、32145处。在图3A的示例中,臂区段32121-32126可以被连接为一系列臂区段,这些臂区段可以在向下游的方向上延伸,该方向可以是远离基座3202的方向。在此示例中,沿着机械臂3210最远下游的臂区段32126可以是末端执行器装置(例如,机械抓持器),并且可以形成机械臂3210的远端。即,相对于机器人基座3202,臂区段32126可以是机械臂3210的最远侧臂区段。
在实施例中,关节32141-32145可以直接耦合相应的紧邻的臂区段对。例如,臂区段32121在关节32141处被耦合到臂区段32122。在此示例中,臂区段32121和臂区段32122可以被认为彼此紧邻,因为它们经由关节32141直接耦合到彼此。关节32141可以允许一对臂区段32121、32122之间的相对移动。在一个示例中,关节32141可以是转动关节(或更一般地,枢轴点),其允许一对臂区段32121、32122之间的相对旋转,或更具体地允许臂区段32122相对于臂区段32121旋转。在此示例中,其他关节32142至32145各自可以是直接连接相应的一对紧邻的臂区段并且允许该对臂区段之间的相对旋转的转动关节。例如,关节32145可以直接连接臂区段32125和臂区段32126,并允许臂区段32126相对于臂区段32125旋转。在另一个示例中,机械臂3210可以附加地或替代地具有棱柱关节,其允许一对紧邻的臂区段之间的相对线性运动(也被称为相对横向运动)。
如上所述,臂区段32121-32126可以被连接为一系列臂区段,这些臂区段可以在向下游的方向上从臂区段32121延伸到臂区段32126。臂区段32121可以距机器人基座3202最近(也被称为最近侧),而臂区段32126可以距机器人基座3202最远(即,也被称为最远侧)。该一系列臂区段32121至32126可以形成运动链,其中一个臂区段(例如,32123)的移动引起下游臂区段(例如,32124、32125、32126)的移动。臂区段32121-32126的串联连接还可定义近端(或近侧方向)和远端(或远侧方向)。例如,臂区段32121-32126中的每一个可以具有相应的近端和相应的远端。近端可以更靠近机器人基座3202,而远端可以更靠下游,使得它距机器人基座3202更远。作为示例,臂区段32123可以具有被直接连接到臂区段32122的近端,并且可以具有被直接连接到臂区段32124的远端。此外,如果臂区段(例如,32124、32125或32126)被直接或间接连接到另一个臂区段(例如,32123)的远端,则前一个臂区段(例如,32124、32125或32126)可以被认为在后一个臂区段(例如32123)的远端。相反,如果臂区段(例如,32123、32124、32125)被直接或间接连接到另一个臂区段(例如,32126)的近端,则前一个臂区段(例如,32123、32124、32125)可以被认为是在后一个臂区段(例如,32126)近端。作为另一个示例,臂区段32123可以被认为是相对于臂区段32122和相对于臂区段32121的远侧臂区段,而臂区段32121和32122可以被认为是相对于臂区段32123的近侧臂区段。
在实施例中,如图3B所示,机器人3200可以包括多个致动器33301、33302、33303、33304和33305(其可以是致动器12301至1230n的实施例),用于引起相应臂区段32122-32126的移动,或者更具体地用于引起相应紧邻臂区段对之间的相对移动。在一些情况下,多个致动器33301至33305可以分别被放置在关节32141至32145处或附近。在一些实现方案中,致动器33301-33305可以是被绕关节32141-32145放置的发动机,并且可以在关节32141-32145处输出扭矩或力。致动器33301至33305各自可以输出相应的力或扭矩,用于使臂区段32122-32126中的相应一个臂区段相对于相邻臂区段(或相对于某个其他参考系)移动。例如,致动器33303可以被放置在关节32143处或附近,该关节32143直接连接一对臂区段32123、32124。致动器33303可以在关节32143处输出扭矩,该扭矩可以引起该对臂区段32123、32124之间的相对旋转。更具体地,该扭矩可以使该对臂区段32123、32124中更远侧的臂区段32124相对于该对臂区段中的更近侧的臂区段32123旋转。此外,臂区段32124可以围绕关节32143旋转。在实施例中,致动器33301-33305可以包括发动机(例如,电和/或磁发动机)、泵(例如,液压泵或气动泵)、一些其他致动器,或其组合。
在实施例中,机器人3200可以包括被用于生成传感器数据的一组传感器,这些传感器数据可以被用于执行机器人校准。例如,如图3C所示,机器人3200可以包括被用于生成致动数据的第一组传感器32221、32222、32223、32224和32225以及被用于生成移动数据的第二组传感器32241、32242、32243、32244和32245。更具体地,第一组传感器32221-32225(其可以是传感器12221至1222n的实施例)各自可以被配置为生成与多个臂区段32122-32126中的相应臂区段的致动相关的相应一组致动数据。更具体地,针对特定臂区段的一组致动数据可以测量指示施加在该臂区段上或由该臂区段经历的力或扭矩的参数。例如,传感器32221可以生成对应于臂区段32122相对于臂区段32121的致动(或反之亦然)的第一组致动数据,而传感器32222可以生成对应于臂区段32123相对于臂区段32122的致动(或反之亦然)的第二组致动数据。作为另一个示例,传感器32223可以生成对应于臂区段32124相对于臂区段32123的致动(或反之亦然)的第三组致动数据,而传感器32224可以生成对应于臂区段32125相对于臂区段32124的致动(或反之亦然)的第四组致动数据。
在实施例中,传感器32221-32225可以是或可以包括力传感器或扭矩传感器,这些力传感器或扭矩传感器各自被配置为直接测量关节32141-32145处的总力或扭矩,或更具体地测量在这些关节处所连接的臂区段32122-32126上的总力或扭矩。在实施例中,传感器32221-32225可以包括被配置为测量电流或电压的电流传感器或电压传感器。在一个示例中,传感器32221-32225可以是被配置为测量流过致动器33301-33305的相应电流量的电流传感器。在此示例中,传感器32221-32225中的每一个可以与致动器33301-33305中的相应致动器(例如,发动机)串联电连接。传感器可以测量流过其自身的电流量,该电流量可以等于或基本等于被提供给相应致动器、被相应致动器汲取或以其他方式流过相应致动器的电流量。流过致动器的电流量可以指示致动器所处的对应关节处的总力或总扭矩。在一些情况下,关节或关节处的臂区段可以充当由致动器驱动的机械负载,并且流过致动器的电流量可以取决于多少电压被提供以激活致动器并且取决于机械负载的特点,诸如负载是否受到致动器提供的扭矩以外的扭矩(例如,由重力引起的扭矩)的影响,和/或负载的运动是否受到另一个扭矩(例如,由于摩擦而产生的阻力扭矩)的阻碍。作为示例,传感器32224可以测量流过致动器33304的电流量,该电流量可以指示关节32144处的总力或扭矩,或更具体地,臂区段32125或臂区段32124上的总力或总扭矩(用于相对于由关节32144提供的枢轴点旋转臂区段32125和/或32124)。
在一些情况下,由传感器32221-32225生成的致动数据可以具有值,该值等于有多少电流流过对应致动器33301-33305。在这样的情况下,计算系统1100可以被配置为基于由致动数据表示的电流值来计算或以其他方式确定总扭矩或总力的值。在一些情况下,传感器32221-32225自身可以被配置为计算或以其他方式确定总扭矩或总力的值,并提供该扭矩值或该力值作为致动数据的一部分。该计算可以基于例如电流和总扭矩或总力之间的定义的关系(例如,预定义的关系),诸如其中总扭矩等于或基于定义的常数(其可以被称为扭矩常数)乘以电流的关系。因此,计算系统1100可以被配置为通过将扭矩常数乘以由传感器32221-32225测量的电流值来执行总扭矩的以上计算。在一些实现方案中,计算系统1100(和/或传感器32221-32225)可以访问存储的致动器信息,该存储的致动器信息可以提供扭矩常数的值。例如,扭矩常数可以是存储在非暂时性计算机可读介质1120中的值。
如上所述,图3C中的第二组传感器32241-32245可以生成相应组的移动数据。在一些实现方案中,第二组传感器32241-32245可以被分别布置在关节32141-32145处或附近。由传感器32141-32145生成的相应组的移动数据可分别测量或以其他方式描述臂区段32122-32126的移动,或更具体地描述由关节32141-32145连接的相应对的臂区段之间的相对移动。例如,传感器32245可以测量或以其他方式描述臂区段32126相对于关节32145和相对于臂区段32125的移动,或更具体地描述由关节32145直接连接的紧邻的一对臂区段32126、32125之间的相对移动。在以上示例中,臂区段32126可以是该对中的更远侧的臂区段,而臂区段32125可以是该对中的更近侧的臂区段。作为另一个示例,传感器32244可以测量或以其他方式描述臂区段32125相对于关节32144和相对于臂区段32124的移动。
在实施例中,移动数据可以测量或以其他方式描述臂区段的移动量或移动速率。移动量或移动速率可以相对于基线位置(诸如臂区段被连接到的关节的位置、臂区段在其开始移动之前的位置、紧邻移动的臂区段的近侧臂区段的位置,或某个其他基线位置(也被称为参考位置))来测量。在一些情况下,移动量可以指臂区段相对于基线位置的位置。如果该移动涉及臂区段的旋转,则移动量(或更具体地,旋转量)在一些情况下可以指臂区段的旋转位置(也被称为角位置、旋转位移、或角位移)。臂区段的旋转位置可以相对于基线位置来测量。作为示例,图3D示出了臂区段32125相对于关节32144并相对于臂区段32124而围绕延伸通过关节32144的旋转轴线A进行旋转的情况,其中关节32144可以直接连接这两个臂区段。在此示例中,臂区段32125的旋转位置可以由角度θ指示,其测量臂区段32125相对于基线位置已经旋转了多少。如上所述,各种位置可以用作基线位置。在一个示例中,如图3E中臂区段32124和32125的简化图所示,基线位置可以是臂区段32125在臂区段32125相对于关节32144和相对于臂区段32124静止时所处的位置3510(例如,臂区段的方位),使得旋转位置的角度θ可以从位置3510起进行测量。在图3E中,基线位置3510可以与水平位置形成角度α(例如,非零角度)。更具体地,与基线位置3510相关联的方位可以与水平方位形成角度α,该水平朝向可以是垂直于重力方向的朝向。角度α在下面更详细地讨论。
在实施例中,移动数据可以测量或以其他方式描述臂区段(例如,32125)正在旋转或以其他方式移动的速率。移动速率可以相对于上面讨论的基线位置来测量。在一些情况下,一个臂区段围绕关节(例如,32144)的移动速率可以相对于该关节或相对于紧邻的臂区段(例如,32124)来测量。在一些实现方案中,移动速率可以指速率、速度或加速度(例如,旋转速率、旋转速度或旋转加速度)。在此示例中,旋转速率可以指旋转速度的幅度,而旋转速度还可以描述旋转方向(例如,顺时针或逆时针)。在实施例中,计算系统1100可以被配置为基于由传感器32241-32245生成的移动数据来确定附加移动数据。例如,如果传感器32241-32245直接测量旋转位置,并在移动数据中提供该测量结果,则计算系统1100可以被配置为基于旋转位置来确定旋转速度和/或旋转加速度(例如,作为旋转位置的基于时间的导数)。在实施例中,第二组传感器32241-32245可以包括角位移传感器、线性位移传感器、被配置为生成移动数据的其他传感器,或者其组合。
如上所述,本公开的一个方面涉及评估机器人校准的准确性、质量或可靠性,或者更具体地评估用于执行机器人校准的模型和/或传感器数据的和/或从机器人校准确定的估计值(例如,摩擦参数估计、CoM估计或某个其他物理特性的估计)的准确性、质量或可靠性。在一些情况下,该评估可以基于指示致动预测数据值和致动测试数据值之间的偏差的误差参数进行,如下面更详细地讨论的。图4描绘了用于确定这样的误差参数的值(该值也可以被称为误差参数值)的示例方法4000的流程图。在一些情况下,方法4000可以作为机器人校准操作的一部分来执行。本领域技术人员将意识到,图4示出了用于确定误差参数的值(并且更一般地用于执行上面讨论的评估)的方法的一个示例,并且用于执行此评估的其他示例方法可以具有比方法4000更少的步骤、更多的步骤和/或与方法4000不同的步骤。在实施例中,方法4000可以由计算系统1100执行,或更具体地至少由计算系统1100的处理电路1110执行,诸如当处理电路1110正在执行存储在非暂时性计算机可读介质1120上的指令(例如,机器人校准模块1122的指令)时执行。
在实施例中,方法4000的一些或全部步骤可以被执行多次,其中该多次可以对应于多次迭代。虽然下面关于方法4000的步骤的讨论可以示出那些步骤的一次迭代,但是附加迭代可以被执行。每次迭代可以被用于确定针对其执行机器人校准的特定部件(诸如臂区段或关节)的相应误差参数值,或针对从机器人校准确定的特定的一组估计值或其他信息的相应误差参数。例如,一次迭代或一组迭代可以在一个时间段期间执行,以确定与特定臂区段、特定关节或由关节连接的特定一对紧邻的臂区段相关联的CoM估计和摩擦参数估计的相应误差参数值,而下一次迭代或下一组迭代可以在另一个时间段期间执行,以确定与另一个臂区段、另一个关节或由此另一个关节连接的另一对臂区段相关联的CoM估计和摩擦参数估计的相应误差参数值。在实施例中,方法4000的步骤可以在一个时间段期间执行以确定一个误差参数值,并且这些步骤中的一些或全部步骤可以在另一个时间段期间重复以确定另一个误差参数值。
在实施例中,方法4000可以开始于或以其他方式包括步骤4002,其中计算系统1100将传感器数据(诸如图2C的传感器数据1124)划分为训练数据和测试数据。在一些情况下,传感器数据(例如,1124)可以被存储在计算系统1100(诸如非暂时性计算机可读介质1120)上,或者可以被存储在别处。存储的传感器数据(例如,1124)可以包括例如存储的移动数据(例如,1127)和存储的致动数据(例如,1128)。传感器数据可由一个或多个传感器(诸如图1C和3C的传感器12221-1222n或32221-32225和传感器12241-1224n或32241-32245)生成。例如,如果方法4000包括用于确定与针对臂区段32125或关节32124执行机器人校准相关联的误差参数值以估计其一个或多个物理特性的迭代,则该迭代中的传感器数据可以包括例如由传感器32224生成的一组致动数据,并且包括由例如传感器32244生成的一组移动数据。如果方法4000包括用于确定与针对另一个臂区段上或另一个关节(诸如臂区段32124或关节32143)执行机器人校准相关联的误差参数值的另一迭代,则该迭代中的传感器数据可以包括由例如传感器32223生成的一组致动数据,并包括由例如传感器32243生成的一组移动数据。
在一些实现方案中,方法4000可以包括一个或多个步骤,这些步骤可以在步骤4002之前由计算系统1100执行,用于获得或以其他方式接收传感器数据。例如,该一个或多个步骤可以涉及计算系统1100生成一组一个或多个移动命令,用于经由直接连接第一臂区段(例如,32125)和第二臂区段(例如,32124)的关节(例如,经由32144)来引起这两个臂区段之间的相对移动,该两个臂区段可以是紧邻的臂区段。在一些情况下,该一个或多个移动命令可以被用于激活多个致动器中的第一致动器(例如,33304),并且可以由计算系统1100经由图2B的通信接口1130输出或以其他方式传送到第一致动器(例如,33304)。例如,如果第一致动器(例如,33304)是发动机,则该一个或多个移动命令各自可以是用于激活发动机的发动机命令。题为“METHOD AND COMPUTING SYSTEM FOR ESTIMATING PARAMETERS FORROBOT OPERATION”的第17/243,939号美国专利申请(MJ0062-US/0077-0015US1)中更详细地讨论了移动命令,该美国专利申请的全部内容通过引用并入本文中。当致动器(例如,33304)接收该一个或多个移动命令时,致动器可以在关节处输出运动,或更具体地输出力或扭矩以在关节处引起运动。如上所述,关节处的运动可以指关节自身移动(例如,旋转),或指由关节(例如,32144)直接连接的两个臂区段(例如,32124、32125)之间的相对旋转。
例如,图5A和5B示出了包括臂区段32125经由关节32144相对于臂区段32124旋转的运动,关节32144直接耦合这两个臂区段。该运动可以由激活致动器33304的一个或多个移动命令引起,致动器33304可以输出可以被施加在臂区段32125或关节32144上的扭矩或力。该运动可以包括臂区段32125和下游臂区段32126相对于臂区段32124以逆时针方向旋转(如图5A所示),并且包括臂区段32125和下游臂区段32126相对于臂区段32124以顺时针方向旋转(如图5B所示)。更具体地,图5A中的臂区段32125可以以逆时针方向从开始位置旋转到中间位置,而图5B中的臂区段32125可以以相反方向从中间位置旋转到结束位置。
在实施例中,一个或多个传感器(例如,传感器32224和32244)可以在臂区段之间发生运动的时间段期间生成一组致动数据、一组移动数据和/或其他传感器数据。在一些情况下,该组致动数据可以指示运动中涉及的臂区段或关节(诸如臂区段32125和关节32144)所经历的力或扭矩。作为示例,图6A描绘了表示在臂区段32125经由关节32144相对于臂区段32124旋转的时间段期间由传感器32224生成的致动数据的曲线图。该曲线图中的致动数据可以指示关节32144处的总扭矩或相对于关节32144施加在臂区段32125上的总扭矩。该图还描绘了运动发生的时间段内的各个时间点,例如t开始和t结束。在此示例中,t开始可以表示该时间段的开始,其中总扭矩可以引起臂区段32125从图5A的开始位置朝向该图的中间位置旋转。在t结束处,紧邻的臂区段32125、32124之间的相对旋转可以停止。在图6A的示例中,致动数据可以是时间的函数。更具体地,致动数据可以包括多个致动数据值,其可以对应于多个不同的时间点。图6A中的正致动数据值可以表示处于第一方向(例如,逆时针方向)的总扭矩,而图中的负致动数据值可以表示处于第二方向(例如,顺时针方向)的总扭矩。
在实施例中,由一个或多个传感器(诸如传感器32244)生成的一组移动数据可以描述相对旋转或其他运动。例如,该组移动数据可以描述臂区段32125经由关节32124相对于紧邻的上游臂区段32124的移动量或移动速率。在一些实现方案中,移动数据可以包括多个移动数据值,这些移动数据值可以包括旋转位置值、旋转速度值和/或旋转加速度值。作为示例,移动量可以由臂区段32125的旋转位置或位移来表示。更具体地,图6B示出了移动数据,该移动数据指示作为时间函数的臂区段32125的旋转位置。在此示例中,旋转位置或位移可以相对于基线位置(诸如基线位置3510)来测量。旋转位置的正值可以指在基线位置的一侧上的位置(例如,基线位置上方),而旋转位置的负值可以指在基线位置另一侧的位置(例如,基线位置下方)。
如果移动数据指示移动速率,则移动速率可以由旋转速率、旋转速度或旋转加速度表示。更具体地,图6C示出了臂区段32125相对于基线位置3510、相对于臂区段32124或相对于某个其他参考系的旋转速度。旋转速度的正值可以指第一方向(例如,逆时针方向)的旋转,而旋转速度的负值可以指第二方向(例如,顺时针方向)的旋转。
图6B和6C描绘了发生旋转的时间段内的时间点t开始和t结束,并且还描绘了附加时间点t减速_点1、t方向_转变、t减速_点2。在t开始处,臂区段32125可以开始以逆时针方向加速,以便使臂区段32125从图5A的开始位置旋转到中间位置。在t减速_点1处,臂区段32125可以继续以逆时针方向旋转,但是以该方向的旋转加速度和旋转速度的幅度可能开始减小。在t方向_转变处,臂区段32125可以到达中间位置并且暂停或暂时停止,然后将旋转方向反转到顺时针方向。此时,旋转加速度和旋转速度的幅度可以以顺时针方向开始增加,以使臂区段32125从图5B的中间位置向结束位置旋转。在t减速_点2处,臂区段32125可以继续以顺时针方向旋转,但是旋转加速度和旋转速度的幅度可能减小。在t结束处,臂区段32125可能到达图5B的结束位置,并且旋转速度的幅度可以已经减小到零。
在实施例中,计算系统1100可以接收由一个或多个传感器生成的致动数据、移动数据和/或其他传感器数据,并将传感器数据存储在非暂时性计算机可读介质1120中。图7A-7C示出了致动数据和移动数据的示例。更具体地,图7A示出了一个示例,其中移动数据包括以度数或弧度来指示臂区段(诸如臂区段32125)的旋转位置的多个值θ(t1)至θ(tz)。值[数学符号.1]θ(t1)至[数学符号.2]θ(tz),也被称为旋转位置值,或更一般地被称为移动数据值,并且可以对应于相应时间点t1至tz,并且可以相对于例如图5A和5B的基线位置3510。作为示例,旋转位置值θ(t1)至θ(tz)可以是图6B的曲线图所表示的值。在这样的示例中,t1可以对应于t开始,而tz可以对应于t结束。
还在此示例中,致动数据可以包括指示施加在关节或臂区段(诸如关节32144或臂区段32125)处的总扭矩的多个值τ(t1)至τ(tz)。这些值τ(t1)至τ(tz)也可以被称为扭矩值,或更一般地被称为致动数据值,并且可以对应于相应时间点t1至tz。因此,旋转位置值θ(t1)至θ(tz)可以分别对应于扭矩值τ(t1)至τ(tz)。如上所述,在一些情况下,致动数据可以间接指示臂区段或关节处的总力或总扭矩。例如,图7B示出了一个示例,其中致动数据与流过用于在臂区段或关节处输出扭矩或力的对应致动器(例如,33304)的电流c(t1)到c(tz)的值成比例/直接测量该值。在这样的情况下,计算系统1100可以被配置为基于测量的电流值c(t1)到c(tz)来确定扭矩值τ(t1)至τ(tz)。图7C提供了传感器数据的另一个示例,或者更具体地提供了直接指示旋转速度的值(t1)至(tz)的移动数据的另一个示例。这些值也可以被称为旋转速度值,或更一般地被称为移动数据值。在实施例中,图7A-7C中的传感器数据的各种示例可以被组合。例如,图7B的致动数据可以与图7C的移动数据组合。
如上所述,步骤4002可以涉及将传感器数据划分为训练数据和测试数据。在实施例中,可以通过选择移动训练数据(也被称为与移动相关的训练数据)和对应的致动训练数据(也被称为与致动相关的训练数据)作为训练数据,并且通过选择移动测试数据(也被称为与移动相关的测试数据)和对应的致动测试数据(也被称为与致动相关的测试数据)作为测试数据来划分传感器数据。换句话说,训练数据可以包括移动训练数据和致动训练数据,而测试数据可以包括移动测试数据和致动测试数据。例如,图8A描绘了其中图7A的传感器数据被划分为训练数据和测试数据的示例。训练数据可以包括移动训练数据θ训练和致动训练数据τ训练,而测试数据可以包括移动测试数据θ测试和致动测试数据τ测试。如图8A所示,移动训练数据θ训练可以是该组移动数据(其中该组包括移动数据值θ(t1)至θ(tz)的第一子集,而移动测试数据可以是该组移动数据的第二子集。致动训练数据可以是该组致动数据(其中该组可以包括致动数据值τ(t1)至τ(tz))的第一子集,而致动测试数据可以是该组致动数据τ(t1)至τ(tz)的第二子集。在一些实现方案中,上述子集可以没有重叠。
传感器数据可以以多种方式被划分。在一个示例中,计算系统1100可以选择移动数据的第一半部分连续值作为移动训练数据,并选择移动数据的第二半部分连续值作为测试数据。致动训练数据和致动测试数据可以以类似的方式被选择。在另一个示例中,计算系统1100可以选择移动数据的每隔一个值作为移动训练数据,并选择移动数据的剩余值作为测试数据,并以类似的方式选择致动训练数据和致动测试数据。在另一个示例中,图8A描绘了计算系统1100选择包括旋转位置值θ(t1)至θ(tz)的移动训练数据。在此示例中,计算系统可以选择旋转位置值θ(t1)至θ(ta)和旋转位置值θ(tb+1)至θ(tc)作为训练数据,其中这些值可以形成移动数据的第一子集。类似地,计算系统1100可选择致动训练数据以包括扭矩值τ(t1)至τ(ta)和扭矩值τ(tb+1)至τ(tc),其可形成致动数据的第一子集。此外,计算系统1100可以选择移动测试数据以包括旋转位置值θ(ta+1)至θ(tb),以及旋转位置值θ(tc+1)至θ(tz),其可形成移动数据的第二子集。类似地,计算系统1100可以选择致动测试数据以包括扭矩值τ(ta+1)至τ(tb)和扭矩值τ(tc+1)至τ(tz),其可形成致动数据的第二子集。
在划分传感器数据的另一个示例中,计算系统1100可以以关于由移动数据指示的位置值和速度值(或更具体地关于位置和速度之间的关系)对称的方式来划分传感器数据。例如,该关系可以指旋转速度和旋转位置之间的比率。更具体地,图8B描绘了描述旋转位置值和旋转速度值的坐标系(例如,极坐标系)。旋转位置值和旋转速度值可以是移动数据的一部分或从移动数据推出。例如,存储在非暂时性计算机可读介质1120中的移动数据可以包括旋转位置值,并且计算系统1100可以确定旋转速度值等于或基于旋转位置值的基于时间的导数。该图还描绘了可以将坐标系划分为对称区域812、821、813、831、814、841、815和851的假想线801和假想线803。在实施例中,假想线801可以表示旋转速度和旋转位置之间的定义的比率阈值,诸如比率[数学符号.3]或
在实施例中,计算系统1100可以基于特定移动数据值位于哪个区域来选择该移动数据值作为训练数据或测试数据。更具体地,移动数据值可以包括旋转位置值和/或对应的旋转速度值。例如,移动数据值可以包括旋转位置值,并且计算系统可以基于旋转位置值确定旋转速度值。计算系统1100可以基于旋转位置值和对应的旋转速度值的组合位于哪个区域来确定选择移动数据值作为训练数据还是测试数据。在一些实现方案中,计算系统1100可以基于旋转速度值和旋转位置值之间的比率来做出此确定。例如,假想线801可以将坐标系的一个象限划分成一对彼此对称的区域812、821。区域812可以表示移动数据值,对于这些移动数据值,其旋转速度值和对应的旋转位置值之间的相应比率在从定义的比率阈值(例如,[数学符号.4])延伸到0的定义范围内。定义的比率阈值可以是正值或负值(即,正比率阈值或负比率阈值),并且可以由假想线801的斜率(例如,-1)表示。定义的比率阈值可以被存储或以其他方式预定义在非暂时性计算机可读介质1120内,或者可以由计算系统1100动态定义或以其他方式确定。在一些情况下,本公开中的定义的值可以被手动定义并存储在非暂时性计算机可读介质1120中,或者可以由计算系统1100动态定义,并且也可以存储在非暂时性计算机可读介质1120中,或者可以在使用后被丢弃。在图8B中,区域821可以表示移动数据值,对于这些移动数据值,旋转速度值与对应的旋转位置值之间的相应比率小于定义的比率阈值(例如,小于-1)。因此,在此示例中,如果移动数据值具有在从定义的比率阈值(例如,-1)延伸到0的范围内的、对应旋转速度值和对应旋转位置值之间的比率,则移动数据值可以被选择作为训练数据。对应的致动数据值也可以被选择作为训练数据(其中,对应的致动数据值可以是描述与移动数据值相同的时间点的致动数据值)。如果移动数据值的比率小于定义的比率阈值,则移动数据值可以被选择作为测试数据。
作为另一示例,假想线803可将坐标系的另一象限划分为彼此对称的一对区域813、831。在此示例中,落入区域831内的移动数据值可以被选择作为移动训练数据,而落入区域813内的移动数据值可以被选择作为测试数据。区域813可以表示移动数据值,对于这些移动数据值,其旋转速度值与对应的旋转位置值之间的相应比率在从0延伸到另一个定义的比率阈值(例如,[数学符号.5])的定义范围内,而区域831可以表示移动数据值,对于这些移动数据值,旋转速度值与对应的旋转位置值之间的相应比率大于定义的比率阈值(例如,大于1)。在此示例中定义的比率阈值可以由线803的斜率表示。因此,在此示例中,如果移动数据值具有对应的旋转速度值和对应的旋转位置值之间的、在从0延伸到定义的比率阈值(例如,1)的范围内的比率,则该移动数据值可以被选择作为测试数据。如果移动数据值具有大于定义的比率阈值(例如,大于1)的比率,则该移动数据值可以被选择作为训练数据。以上面描述的方式划分传感器数据可以产生对称的训练数据和测试数据,这可以促进基于训练数据对参数的更准确的估计,和/或促进使用测试数据对估计参数的更准确的评估。
返回图4,在实施例中,方法4000可以包括步骤4004,其中计算系统1100可以基于移动训练数据(例如,θ训练)和致动训练数据(例如,τ训练)确定以下各项中的至少一个:(i)与经历由传感器数据测量的相对运动的一对臂区段(例如,32125、32124)之间的摩擦相关联的摩擦参数估计,或(ii)与该对臂区段中的一个(例如,32125)相关联的质心(CoM)估计。在一些实现方案中,摩擦参数估计可以是对粘性摩擦系数的估计或对库仑摩擦的估计。
图9A-9C示出了可以如何基于致动训练数据和移动训练数据来确定摩擦参数估计的示例。更具体地,图9A是以下各项的组合的图示:(i)由致动训练数据τ训练指示的总扭矩的值和(ii)由移动训练数据θ训练指示的对应的旋转速度的值(例如,旋转速度值可以是θ训练中的旋转位置值的基于时间的导数)。值的每个组合可以包括表示在训练数据描述的相应时间点处的关节(例如,32144)处的总扭矩的第一值,以及表示该时间点处的旋转速度的第二值。例如,第一值可以指示在例如在特定时间点处相对于第二臂区段(例如,32124)的第一臂区段(例如,32125)上的总扭矩,并且第二值可以指示在该时间点处的第一臂区段和第二臂区段之间的旋转速度。图9A中绘制的值的组合可以对应于例如图5A和5B中所示的旋转以及图6A-6C中所示的传感器数据。例如,图9A示出了移动训练数据和致动训练数据,该移动训练数据和致动训练数据表示旋转速度在从t开始到t减速_点1的时间段期间在第一方向(例如,逆时针方向)上的幅度增加然后在从t减速_点1到t方向_转变的时间段期间的幅度减小,然后从第一方向转变到第二方向(例如,顺时针方向)并在从t方向_转变到t减速_点2的时间段期间在第二方向上的幅度增加,然后在从t减速_点2到t结束的时间段期间的幅度减小。
在实施例中,致动训练数据表示的总扭矩可以基于来自两个相邻臂(例如,32125和32124)之间的致动器的惯性的贡献。在实施例中,总扭矩可以基于来自摩擦的贡献。更具体地,在一些情况下,总扭矩可以通过示例方程来描述:
τ=来自致动器的贡献+来自重力的贡献+来自摩擦的贡献(1)
在上面的方程中,τ是指关节(例如,32144)上的总扭矩,并且可能等于或导出自致动训练数据τ训练。在此示例中,来自致动器的贡献可以指由致动器(例如,33304)输出的扭矩或力。例如,来自致动器的此贡献可以由项[数学符号.6]表示,其中[数学符号.7]表示第一臂区段(例如,32125)相对于第二臂区段(例如,32124)的旋转加速度,并且其中I是第一臂区段的惯性矩。在实施例中,来自重力的贡献可以指由下游的区段(诸如第一臂区段和末端执行器装置)的重量引起的扭矩,其中该扭矩相对于由关节(例如,32144)提供的枢轴点起作用。例如,来自重力的贡献可以由项mgrcosθ或mgrsinθ表示,其中θ表示下游的区段相对于重力矢量的旋转位置,而mg表示下游的区段的重量贡献。更具体地,m表示下游的区段的质量,而g表示重力加速度(例如,9.8m/sec2)。在此示例中,r表示第一臂区段的质心(CoM)与关节之间的距离。在一些实现方案中,质量m或重量mg的值可以是存储在非暂时性计算机可读介质1130中的已知值。
在实施例中,来自摩擦的贡献可以指由摩擦对第一臂区段相对于第二臂区段或相对于连接这两个臂区段的关节的运动或运动中的变化提供了多少阻力。在一些情况下,来自摩擦的贡献可以被表示为[数学符号.8]其中s表示第一臂区段和第二臂区段之间的静态摩擦(也被称为库仑摩擦)的量,[数学符号.9]表示第一臂区段相对于由第二臂区段提供的参考系的旋转速度,并且b表示第一臂区段和第二臂区段之间的粘性摩擦系数。在这样的情况下,在第一臂区段和第二臂区段之间的相对旋转期间静态摩擦可以保持恒定,而粘性摩擦的幅度可以随着旋转速度的幅度增加而增加。
在实施例中,计算系统1100可以被配置为从致动训练数据τ训练中有效地提取或以其他方式确定来自摩擦的贡献,该贡献也可以被称为总扭矩的摩擦分量。例如,图9B和9C示出了表示各种时间点的总扭矩的摩擦分量的值的组合。总扭矩的摩擦分量的这些值可以与旋转速度的值组合。在一些情况下,如果致动器的贡献和重力的贡献是已知的,则计算系统1100可以被配置为通过从致动训练数据指示的总扭矩中减去致动器的贡献和重力的贡献来提取总扭矩的摩擦分量。例如,如果计算系统1100先前已经确定了对I(表示惯性矩)的估计或对r(表示CoM)的估计,则计算系统1100可以使用这些估计以及由移动训练数据提供或推导自移动训练数据的值[数学符号.10]θ、来确定来自致动器的贡献(其可被估计为[数学符号.11])和来自重力的贡献(其可被估计为mgrcosθ)。计算系统1100然后可以从总扭矩中减去致动器的贡献和重力的贡献以提取摩擦的贡献。在一些情况下,计算系统1100可以通过求解将总扭矩与摩擦相关的一组联立方程来有效地提取摩擦分量,如下面更详细讨论的。
如图9C中所示,计算系统1100可以被配置为使用总扭矩的摩擦分量(其可以被从致动训练数据中提取)和旋转速度(其可以由移动训练数据提供或被从中提取)之间的关系来确定摩擦参数估计。更具体地,两个臂区段之间的摩擦可以包括静态摩擦和粘性摩擦。如上面讨论的,在一些情况下,静态摩擦可以表示为常数(s)而粘性摩擦可以被表示为旋转速度的线性函数([数学符号.12]),使得总扭矩的摩擦分量可以近似为[数学符号.13]在这样的情况下,计算系统1100可以对图9C中的值的组合(其表示总扭矩的摩擦分量)应用线性拟合。更具体地,计算系统1100可以确定线9500A和/或9500B,其拟合穿过(fitthrough)或以其他方式近似于图9B和9C的值的组合。线9500A或9500B可以表示以上表达式[数学符号.14]更具体地,计算系统1100可以确定粘性摩擦系数(b)等于或基于线9500A或9500B的斜率(或作为这些线的相应斜率的平均),并确定静态摩擦(s)等于或基于线9500A或9500B的高度(例如,等于Y-截距9501A或9501B,或它们的大小的平均)。
如上所述,计算系统1100可以被配置为通过求解将总扭矩与摩擦相关的一组联立方程来有效地提取摩擦分量。如上所述,总扭矩τ可以基于来自致动器的贡献、来自重力的贡献和来自摩擦的贡献。在一个示例中,总扭矩可能基于下面更具体的关系[数学符号.15]:
在此示例中,参数τ的值可以由致动训练数据提供或推导自致动训练数据。参数[数学符号.16]θ、(其可分别表示旋转位置、旋转速度和旋转加速度)可由移动训练数据提供或推导自移动训练数据。还如上面讨论的,参数I表示惯性矩,参数mg表示臂区段(例如,32125)的重量,参数r表示臂区段的CoM与该臂区段被连接到的关节(例如,32144)之间的距离,参数s表示静态摩擦量,并且参数b表示粘性摩擦系数。在上面的示例中,α可以是基线位置和水平方向之间的角度,如图3E所示。此外,Sign([数学符号.17])函数可以被用于表示具有与运动方向相反的方向的静态摩擦。更具体地,Sign([数学符号.18])函数在[数学符号.19]为正时可以具有值1,在[数学符号.20]为负时可以具有值-1,在[数学符号.21]为0时可以具有值0。
在实施例中,计算系统1100可以被配置为使用上面的关系来生成一组方程,该方程组对应于由训练数据表示的不同时间点,或者更一般地,对应于以下各项的不同组合:(i)来自致动训练数据的扭矩值和(ii)来自移动训练数据的位置、速度或加速度值。例如,计算系统1100可以被配置为生成以下方程组,其可以表示为矩阵[数学符号.22]:
在上面的示例中,[数学符号.23]τ训练_1、τ训练_2、……τ训练_n可能对应于由致动训练数据提供或推导自致动训练数据的不同扭矩值。例如,如果致动训练数据来自图8A的示例,则[数学符号.24]τ训练_1可以等于[数学符号.25]τ(t1),其在图8A中被图示为致动训练数据的一部分,而[数学符号.26]τ训练_2可以等于[数学符号.27]τ(t2),并且[数学符号.28]τ训练_n可以等于[数学符号.29]τ(tc)。更具体地,如果致动训练数据来自图8A的示例,则上面的方程中的扭矩值[数学符号.30]τ训练_1、τ训练_2、……τ训练_n可以更具体地包括[数学符号.31]τ(t1)、τ(t2)、……τ(ta)以及τ(tb+1)……τ(tc)。此外,[数学符号.32] 可以对应于由移动训练数据提供或推导自移动训练数据的不同加速度值,并且其分别对应于[数学符号.33]τ训练_1、τ训练_2、……τ训练_n。类似地,[数学符号.34]可以对应于由移动训练数据提供或推导自移动训练数据的不同速度值,而[数学符号.35]θ训练_1、θ训练_2、……θ训练_n可以对应于由移动训练数据提供或推导自移动训练数据的的不同位置值。这些位置值[数学符号.36]θ训练_1、θ训练_2、……θ训练_n或速度值[数学符号.37] 也可以对应于扭矩值[数学符号.38]τ训练_1、τ训练_2、……τ训练_n。在一个示例中,上面的方程中的值[数学符号.39]θ训练_1、θ训练_2、……θ训练_n可以更具体地包括图8A的旋转位置值[数学符号.40]θ(t1)、θ(t2)、……θ(ta)以及θ(tb+1)……θ(tc)。在上面的示例中,上面的方程中的值可能对应不同的时间点,或者更具体地,对应于一个或多个传感器(例如,32224、32244)在不同时间点进行的测量。
在实施例中,计算系统1100可以被配置为求解上面的联立方程组以确定s、b、I、m、r和/或α的相应估计值。求解方程可能涉及确定满足或近似满足上面的方程的s、b、I、m、r和/或α的相应值。摩擦参数估计可以是例如从求解方程来确定的s的值或b的值。在一些实现方案中,计算系统1100可以被配置为应用最小二乘拟合方法来确定上面的参数的相应值,其例如最小化方程(例如,方程4)左侧的值和方程右侧的值之间的误差量。方程左侧的值可能是由致动训练数据提供或从致动训练数据提取的扭矩值[数学符号.41]τ训练_1、τ训练_2、……τ训练_n。方程右侧的值可以使用上面的例如方程4中的公式并使用由移动训练数据提供或从移动训练数据提取的旋转位置值、旋转速度值和旋转加速度值计算出的值。
如上所述,步骤4004可以涉及确定摩擦参数估计或CoM估计中的至少一个。在实施例中,计算系统可以通过求解上述多个联立方程来确定CoM估计。在一些情况下,计算系统1100可以使用上面的技术或某个其他技术来有效地从致动训练数据中提取由于臂区段(例如,32125)的重量(或更具体地,是由于重力对臂区段CoM的影响)而产生的总扭矩的分量。在一个示例中,此分量可以表达为mgrcos(θ+α),并且可以通过例如从总扭矩中减去致动器的贡献(例如,[数学符号.42])和摩擦的贡献(例如,[数学符号.43])来获得。例如,图10A提供了表示总扭矩的重力分量的值的示例,其可以近似为重力对臂区段的CoM的影响。图10B示出了正弦拟合,或更具体地,计算系统1100用于拟合图10A中的值的正弦曲线。在一些情况下,计算系统1100可以基于图10B的正弦曲线的幅度和相移来确定CoM估计。更具体地,计算系统1100可以被配置为基于正弦曲线的幅度确定mgr的值,而参数α可以影响正弦曲线的相移。在此示例中,计算系统1100可以确定正弦曲线的幅度与臂区段的重量之间的比率,其中该比率可以等于或指示r,r可以表示臂区段的CoM。
在实施例中,当基于致动训练数据确定特定臂区段的CoM估计时,计算系统1100可以被配置为考虑下游臂区段(例如,更远侧臂区段)可能对致动训练数据或其他训练数据的影响。更具体地,来自下游臂区段(例如,32126)的重量可以对特定臂区段(例如,32125)或关节(例如,32144)处的总扭矩有贡献。因此,下游臂区段可能影响用于确定特定臂区段(例如,32125)的CoM估计的致动训练数据或移动训练数据。在这样的情况下,计算系统1100可以确定致动训练数据或移动训练数据受下游臂区段的重量影响的程度,以便移除或补偿该影响。
在一些情况下,步骤4004可以包括确定惯性矩I的估计,诸如通过求解上面讨论的方程(例如,方程4)。题为“METHOD AND COMPUTING SYSTEM FOR ESTIMATING PARAMETERSFOR ROBOT OPERATION”的第17/243,939号美国专利申请(MJ0062-US/0077-0015US1)中更详细地讨论了CoM估计、摩擦参数估计和/或惯性矩的估计,该美国专利申请的全部内容通过引用并入本文中。
返回图4,在实施例中,实施例4000可以包括步骤4006,其中计算系统1100基于移动测试数据(诸如图8A的θ测试)以及基于以下各项中的至少一个来确定致动预测数据:(i)摩擦参数估计或(ii)CoM估计,其中这些估计是从步骤4004确定的。例如,致动预测数据可以是预测扭矩值(其也可以被称为扭矩预测值)的组τ预测,或者可以是预测力值(其也可以被称为力预测值)的组f预测,其中扭矩或力的预测值可以是指示与被用于生成传感器数据的旋转或其他运动相关联的关节(例如,32144)处的总扭矩或总力的预测。在此示例中,组τ预测可以预测多个扭矩值,诸如τ预测_1、τ预测_2、……τ预测_n。换句话说,该组τ预测可以包括多个扭矩预测值(也被称为预测扭矩值)τ预测_1、τ预测_2、……τ预测_n。
在一些情况下,扭矩预测值或其他致动预测数据可能对应于生成了传感器数据的时间段期间的不同时间点。例如,图11提供了表示包括对应不同的时间点的多个扭矩预测值τ预测_1、τ预测_2、……τ预测_n的致动预测数据的曲线图。更具体地,扭矩预测值和被用于生成扭矩预测值的移动测试数据可以对应不同的时间点。例如,移动测试数据θ测试可以包括多个旋转位置值θ测试t_1、θ测试t_2、……θ测试_n。如果移动测试数据来自图8A的示例,则移动测试数据的旋转位置值θ测试t_1、θ测试t_2、……θ测试_n可以更具体地包括图8A的旋转位置值θ(ta+1)……θ(tb)和θ(tc+1)……θ(tz)。在这样的示例中,移动测试数据可以对应于时间点ta+1……tb和tc+1……tz。致动预测数据可以基于移动测试数据,并且因此也可以对应于时间点ta+1……tb和tc+1……tz。
在实施例中,可以基于类似于以上方程2、3或4的方程来确定致动预测数据。例如,如果致动预测数据包括多个扭矩预测值τ预测_1、τ预测_2、……τ预测_n,则组中的每个扭矩预测值τ预测_i可以根据以下方程确定[数学符号.44]:
或
在此等式中,[数学符号.45]是指由移动测试数据(诸如图8A的移动测试数据θ测试)提供或推导自移动测试数据的第i个旋转加速度值、旋转速度值或旋转位置值。方程中s和b的值可以是库仑摩擦和动摩擦的相应估计,其可以作为摩擦参数估计的一部分而被确定,而CoM的值可以是CoM估计,并且I的值可以是惯性矩的估计。如上面所讨论的,这些估计中的一些或全部可以基于移动训练数据和致动训练数据在步骤4004中确定。
返回图4,在实施例中,方法4000可以包括步骤4008,其中计算系统1100确定残差数据,该残差数据可以描述致动预测数据(诸如上面讨论的τ预测)与致动测试数据(诸如图8A的τ测试)之间的偏差或误差。在一些情况下,如图12所示,残差数据可以包括对应于不同时间点的残差数据值。例如,如果τ预测基于图8A的移动测试数据,则致动预测数据可以包括对应于时间点ta+1……tb和tc+1……tz的扭矩预测值。在此示例中,致动测试数据τ测试可以包括也对应于时间点ta+1……tb和tc+1……tz的值τ预测_1、τ预测_2、……τ预测_n。
在实施例中,残差数据可以指示致动预测数据和致动测试数据之间存在多少误差。在这样的实施例中,计算系统1100可以通过确定致动预测数据和致动测试数据之间的差来确定残差数据。如果致动预测数据包括多个扭矩预测值,并且如果致动测试数据也包括多个扭矩值,则计算系统1100可以通过从致动测试数据的多个扭矩值中减去该多个扭矩预测值来确定残差数据,或者反过来。例如,图13A描绘了其中残差数据包括残差数据值e1、e2、……e3的示例,这些残差数据值可指示扭矩预测值与致动测试数据的扭矩值之间的误差。在此示例中,计算系统1100可以通过例如将致动测试数据的扭矩值τ测试_1、τ测试_2、……τ测试_n减去致动预测数据的扭矩预测值τ预测_1、τ预测_2、……τ预测_n来确定残差数据值e1、e2、……e3。
返回图4,在实施例中,方法4000可以包括步骤4010,其中计算系统1100确定描述残差数据值(诸如图13A中的值e1、e2、……e3)的误差参数的值。在一些情况下,该误差参数可以指示为机器人校准而生成的传感器数据的质量。在一些情况下,该误差参数可以指示例如描述(i)总扭矩或总力与(ii)摩擦或CoM之间的关系的模型的质量、准确性或可靠性。在一些情况下,该误差参数可以指示使用模型确定的估计值(例如,摩擦参数估计、CoM估计和/或惯性矩的估计)的准确性或可靠性。换句话说,该误差参数可以指示模型、传感器数据和/或参数估计的置信水平(或缺乏置信)。
在实施例中,模型可能已被计算系统1100用于在步骤4004中确定摩擦参数估计和/或CoM估计,和/或在步骤4006中计算致动预测数据。模型可以例如描述以下各项之间的关系:(i)关节(例如,32144)或臂区段(例如,32125)处的总扭矩或总力,与(ii)由该关节连接的臂区段(例如,32125、32124)之间的摩擦或臂区段中的一个(例如,32125)的CoM。模型可以包括方程(诸如方程2、3、4、5或6中的一个)或可以由该方程表示。该方程可以例如将总力或总扭矩定义作为参数(诸如臂区段之间的粘性摩擦系数b和静态摩擦s、臂区段中的一个的CoM、臂区段中的一个的惯性矩I)的函数,以及作为移动数据值(诸如旋转位置值、旋转速度值、和/或旋转加速度值)的函数。在一些情况下,模型中的一个或多个方程可以提供摩擦、重力或来自致动器的力或扭矩如何影响关节或臂区段处的总力或扭矩的简化近似值。由于模型可能仅提供总力或扭矩与诸如摩擦、CoM和致动器输出的扭矩或力之类的参数之间关系的近似,因此基于此模型的致动预测数据可能与致动测试数据不完全匹配。因为误差参数可以描述致动测试数据和致动预测数据之间存在多少偏差,所以误差参数可以指示被用于生成致动预测数据的模型的准确性水平,或更具体地,模型中的(一个或多个)方程的准确性水平,以及模型是否足够准确或模型是否过于简单。在一些情况下,误差参数还可以指示输入到方程的估计值(诸如摩擦参数估计和CoM估计)的准确性水平。
如上所述,在实施例中,误差参数可以指示用于在步骤4004中估计摩擦、CoM和/或惯性矩的传感器数据的质量,或更一般地指示用于执行机器人校准的传感器数据的质量。例如,传感器数据可以测量机器人的一个或多个臂区段(诸如机器人3200的臂区段32125)的移动。在一些情况下,臂区段(例如,32125)或机器人的其他部分可能经历事件(诸如机器人与另一个物体碰到或碰撞),这可能会意外地妨碍或改变其移动。这样的碰撞可能导致机器人的一个或多个臂区段的不均匀的移动(包括以加速度突然变化为特征的移动),而不是平稳移动。不均匀的移动可产生传感器数据,包括致动数据和移动数据,这些数据对于机器人校准不是特别可靠并且因此是低质量的。
在实施例中,可以通过步骤4010的残差数据值中的频率内容来反映传感器数据的质量。更具体地,此实施例中的误差参数可以描述或指示残差数据值中的频率内容。在一些情况下,低频内容的存在可能指示或可能符合具有低质量或不可靠质量的传感器数据(诸如当机器人(例如,3200)经历与另一物体的碰撞时生成的传感器数据)。更具体地,残差数据值中高频内容的存在可能与例如背景噪声(诸如可能随机波动并将随机变化量引入由传感器生成的移动数据或致动数据的电噪声)相关联或符合。在一些情况下,与诸如机器人与另一个物体碰撞的事件相比,背景噪声可能是相对小的误差源。在一些情况下,诸如碰撞的事件也可能将变化引入到移动数据或致动数据中,但与背景噪声的频率相比,该变化的频率可能低。因此,残差数据值中低频内容的存在可能更符合事件(诸如机器人与另一个物体之间的碰撞),这可能会降低用于机器人校准的移动数据、致动数据或其他传感器数据的质量。
在实施例中,计算系统1100可以对一组残差数据值执行平均函数。平均函数可以具有对该组残差数据值执行频率滤波的影响。例如,平均函数可能会产生低频内容的权重比高频内容的权重更大的结果,或者反过来。在一些情况下,当存在更多低频内容时,平均函数的结果可能具有更高的值。因此,平均函数的结果可以指示该组残差数据值中的频率内容。在一些实现方案中,该组残差数据值可以是对应时间窗口的残差数据值。例如,计算系统1100可以为多个相应时间窗口确定多个平均残差数据值。作为示例,图13B示出了多个时间窗口13001、13002、13003、13004,这些时间窗口是为机器人校准生成致动测试数据、移动测试数据或其他传感器数据的时间段中的时间窗口(也称为时隙)。这些时间窗口(例如,5毫秒、10毫秒或100毫秒时间窗口)可以对应于残差数据值的不同的相应子集。在此示例中,时间窗口13001可以覆盖从ta到ta+4的时间范围,并且可以对应于残差数据值的第一子集e1到e5。时间窗口13002可以覆盖从ta+1到ta+5的时间范围,并且可以对应于残差数据值的第二子集e2到e6。作为另一个示例,时间窗口13003可以覆盖从ta+2到ta+6的时间范围,并且可以对应于残差数据值的第三子集e3到e7。
在实施例中,时间窗口(例如,13001-13004)可以是滑动时间窗口。更具体地,它们可以表示重叠的时间段或时间范围,并且具有由定义的滑动时间增量(例如,1毫秒、5毫秒等)间隔开的相应开始时间。在图13B的示例中,时间窗口13001-13004的相应开始时间可以由等于ta+1减去ta的定义的滑动时间增量(例如,预定义的增量)间隔开。虽然图13B描绘了各自具有5个残差数据值的时间窗口,但其他示例可能具有包含更多残差数据值(例如,20个残差数据值、100个残差数据值)或更少残差数据值的时间窗口。
在实施例中,计算系统1100可以通过为多个相应时间窗口确定多个平均残差数据值来执行平均函数。例如,在图13B的示例中,多个平均残差数据值(也被称为残差数据值数组)可以是aswe_1、aswe_2、aswe_3、aswe_4、……。平均残差数据值中的每一个可以是对应的滑动时间窗口中的残差数据值的平均。例如,平均残差数据值aswe_1可以是时间窗口13001中的残差数据值e1、e2、e3、e4和e5的平均。作为另一个示例,平均残差数据值aswe_2可以是时间窗口13002中的残差数据值e2、e3、e4、e5和e6的平均。如上所述,多个平均残差数据值可能受到它们的对应时间窗口所包含的残差数据值内的频率内容的影响。因此,多个平均残差数据值可以指示属于相应时间窗口的相应组的残差数据值内的频率内容。还如上所述,残差数据值中的低频内容可能指示或符合不可靠或具有低质量的传感器数据。因此,计算系统1100可以基于平均残差数据值来确定机器人校准中涉及的传感器数据是否具有足够的质量。
在实施例中,计算系统1100可以基于多个平均残差数据值来确定误差参数的值。作为示例,计算系统1100可以确定误差参数的值等于或基于多个平均残差数据值(诸如aswe_1、aswe_2、aswe_3、aswe_4、……)中的最大值(或者说Maswe)。如上所述,此示例中的误差参数的值,诸如Maswe,可以表示残差数据值中有多少低频内容或多少高频内容,这可以指示为机器人校准生成的传感器数据的质量或可靠性。在一些情况下,误差参数(诸如Maswe)的相对低的值可能指示残差数据值接近于零,并且指示传感器数据的质量相对高,而误差参数的相对高的值可能指示传感器数据的质量相对低。
在实施例中,计算系统1100可以确定误差参数的值是否超过定义的误差阈值(例如,预定义的误差阈值)或低于定义的置信阈值(例如,预定义的置信阈值)。在一些情况下,置信阈值可以是例如误差阈值的倒数。如果误差参数的值超过定义的误差阈值或低于定义的置信阈值,则计算系统1100可以输出误差参数的值超过误差阈值或低于置信阈值的指示。在一些实现方案中,该指示可以是经由通信接口1130输出的信号,其中该信号可以被另一计算系统接收。在一些实现方案中,该指示可以是在计算系统1100的显示设备(如果有)上输出的文本或图形消息。在一些情况下,计算系统1100可以将误差参数的值存储在非暂时性计算机可读介质1120中。
在实施例中,定义的误差阈值可以是例如计算系统1100接收并存储在非暂时性计算机可读介质1120中的手动定义的值。在实施例中,定义的误差阈值可以是计算系统1100已动态定义或以其他方式确定的值。例如,计算系统1100可以基于定义的扭矩值(例如,标称扭矩值)、与特定机器人相关联的定义的速度乘数(例如,预定义的速度乘数)和也可以与特定机器人(例如,3200)相关联的实验地确定的百分比值来确定误差阈值。因此,在此示例中,不同的机器人可能与不同的误差阈值相关联。
在实施例中,如果误差参数的值超过定义的误差阈值或小于定义的置信阈值,则这样的指示可以被计算系统1100、另一个计算系统和/或用户用来确定是否重新执行机器人校准,是否改变用于执行机器人校准的模型,和/或是否更改如何为机器人(例如,3200)或机械臂(例如,3210)执行运动规划。例如,可以重新执行机器人校准以试图获得新的传感器数据并为摩擦参数和/或CoM估计生成新的估计。计算系统1100然后可以重复方法4000的步骤以确定新传感器数据或新的估计是否导致误差参数的更好值。
各种实施例的附加讨论:
实施例1涉及一种计算系统、一种由该计算系统执行的方法或具有用于执行该方法的指令的非暂时性计算机可读介质。在此实施例中,计算系统包括非暂时性计算机可读介质和至少一个处理电路。至少一个处理电路被配置为当非暂时性计算机可读介质正在存储传感器数据时执行各种操作,该传感器数据包括:(i)一组移动数据,指示经由机械臂的关节正在发生或已经发生的机械臂的一对紧邻的臂区段之间的相对移动的量或速率,以及(ii)一组致动数据,指示在相对移动正在发生或者已经发生的时间段中关节处的总扭矩或总力。各种操作可以包括以下各项:通过以下方式将传感器数据划分为训练数据和测试数据:(i)选择移动训练数据和对应的致动训练数据作为训练数据,其中移动训练数据是该组移动数据的第一子集,并且其中致动训练数据是该组致动数据的第一子集,以及(ii)选择移动测试数据和对应的致动测试数据作为测试数据,其中移动测试数据是该组移动数据的第二子集,并且其中致动测试数据是该组致动数据的第二子集。各种操作还可以包括基于移动训练数据和致动训练数据确定以下各项中的至少一个:(i)与紧邻的该对臂区段之间的摩擦相关联的摩擦参数估计,或(ii)与紧邻的该对臂区段中的一个臂区段相关联的质心(CoM)估计。各种操作还可以包括基于移动测试数据和基于以下各项中的至少一个来确定致动预测数据:(i)摩擦参数估计或(ii)CoM估计,其中致动预测数据是指示在不同时间点在关节处的总扭矩或总力的预测。各种操作还可以包括确定残差数据,残差数据包括描述分别对应于不同时间点的致动预测数据和致动测试数据之间的偏差的残差数据值;基于残差数据,确定描述残差数据值的误差参数的值;确定误差参数的值是否超过定义的误差阈值;以及输出误差参数的值是否超过定义的误差阈值的指示。
实施例2包括实施例1的计算系统,其中误差参数指示残差数据值中的频率内容。
实施例3包括实施例1或2的计算系统,其中误差参数指示传感器数据的质量。
实施例4包括实施例1-3中任一项的计算系统,其中误差参数指示描述(i)总扭矩或总力与(ii)摩擦或CoM之间的关系的模型的准确性。
实施例5包括实施例1-4中任一项的计算系统,其中至少一个处理电路被配置为为时间段中的多个相应时间窗口确定多个平均残差数据值,其中该多个相应时间窗口对应残差数据值的不同的相应子集。在此实施例中,误差参数的值是基于多个平均残差数据值而确定的。
实施例6包括实施例5的计算系统,其中至少一个处理电路被配置为基于多个平均残差数据值中的最大值来确定误差参数的值。
实施例7包括实施例5或6的计算系统,其中该多个时间窗口表示重叠的时间段,重叠的时间段具有由定义的滑动时间增量间隔开的相应的开始时间。
实施例8包括实施例1-7中任一项的计算系统,其中该组移动数据包括对应于不同时间点的多个移动数据值,其中至少一个处理电路被配置为通过对该多个移动数据值中的每个移动数据值执行以下操作来将传感器数据划分为训练数据和测试数据:确定等于或基于移动数据值的相应位置值,其中相应位置值描述在对应于移动数据值的相应时间点处紧邻的该对臂区段中的第一臂区段相对于紧邻的该对臂区段中的第二臂区段的位置;确定等于或基于移动数据值的相应速度值,其中相应速度值描述在相应时间点处第一臂区段相对于第二臂区段的速度;以及基于相应速度值与相应位置值的相应比率来确定是选择移动数据值作为训练数据还是测试数据。
实施例9包括实施例8的计算系统,其中至少一个处理电路被配置为,对于该多个移动数据值中的每个移动数据值,基于与移动数据值相关联的相应速度值与相应位置值之间的相应比率是否为以下各项中的至少一种情况来确定是将移动数据值选择作为训练数据还是作为测试数据:(i)在从0延伸到定义的正比率阈值的比率范围内,或(ii)小于定义的负比率阈值。
实施例10包括实施例8或9的计算系统,其中至少一个处理电路被配置为:对于该多个移动数据值中的每个移动数据值,基于与移动数据值相关联的相应速度值与相应位置值之间的相应比率是否为以下各项中的至少一种情况来确定是将移动数据值选择作为训练数据还是作为测试数据:(i)在从0延伸到定义的负比率阈值的比率范围内,或(ii)大于定义的正比率阈值。
实施例11包括实施例1-10中任一项的计算系统,其中摩擦参数估计是对粘性摩擦系数的估计,或者是对库仑摩擦的估计。
实施例12包括实施例1-11中任一项的计算系统,其中至少一个处理电路被配置为:当该组致动数据测量流过致动器的用于引起紧邻的该对臂区段之间的相对移动的电流时,基于电流确定关节处的总扭矩或总力。
对于相关领域的普通技术人员将清楚的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和调整。上述实施例是说明性示例,并且不应被解释为将本发明限于这些特定实施例。应该理解的是,本文公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来组合。还应该理解,根据示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。另外,尽管为了清楚起见,本文的实施例的某些特征被描述为由单个部件、模块或单元执行,但是应当理解,本文描述的特征和功能可以由部件、单元、模块的任何组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以进行各种改变和修改。
Claims (20)
1.一种计算系统,包括:
非暂时性计算机可读介质;
至少一个处理电路,当所述非暂时性计算机可读介质正存储包括以下各项的传感器数据(i)一组移动数据,指示经由机械臂的关节正在发生或已经发生的所述机械臂的一对紧邻的臂区段之间的相对移动的量或速率,以及(ii)一组致动数据,指示在所述相对移动正在发生或者已经发生的时间段中所述关节处的总扭矩或总力时,所述至少一个处理电路被配置为执行以下操作:
通过以下方式将所述传感器数据划分为训练数据和测试数据:(i)选择移动训练数据和对应的致动训练数据作为所述训练数据,其中所述移动训练数据是所述一组移动数据的第一子集,并且其中所述致动训练数据是所述一组致动数据的第一子集,以及(ii)选择移动测试数据和对应的致动测试数据作为所述测试数据,其中所述移动测试数据是所述一组移动数据的第二子集,并且其中所述致动测试数据是所述一组致动数据的第二子集;
基于所述移动训练数据和所述致动训练数据确定以下各项中的至少一个:(i)与所述一对紧邻的臂区段之间的摩擦相关联的摩擦参数估计,或(ii)与所述一对紧邻的臂区段中的一个臂区段相关联的质心CoM估计;
基于所述移动测试数据和基于以下各项中的至少一个来确定致动预测数据:(i)所述摩擦参数估计或(ii)所述CoM估计,其中所述致动预测数据是指示在不同时间点在所述关节处的总扭矩或总力的预测;
确定残差数据,所述残差数据包括描述分别对应于所述不同时间点的所述致动预测数据和所述致动测试数据之间的偏差的残差数据值;
基于所述残差数据,确定描述所述残差数据值的误差参数的值;
确定所述误差参数的所述值是否超过定义的误差阈值;以及
输出所述误差参数的所述值是否超过所述定义的误差阈值的指示。
2.如权利要求1所述的计算系统,其中所述误差参数指示所述残差数据值中的频率内容。
3.如权利要求2所述的计算系统,其中所述误差参数指示所述传感器数据的质量。
4.如权利要求2所述的计算系统,其中所述误差参数指示描述(i)总扭矩或总力与(ii)摩擦或CoM之间的关系的模型的准确性。
5.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为为所述时间段中的多个相应时间窗口确定多个平均残差数据值,其中所述多个相应时间窗口对应所述残差数据值的不同的相应子集,
其中所述误差参数的所述值是基于所述多个平均残差数据值而确定的。
6.如权利要求5所述的计算系统,其中所述至少一个处理电路被配置为基于所述多个平均残差数据值中的最大值来确定所述误差参数的所述值。
7.如权利要求5所述的计算系统,其中所述多个时间窗口表示重叠的时间段,所述重叠的时间段具有由定义的滑动时间增量间隔开的相应的开始时间。
8.如权利要求1所述的计算系统,其中所述一组移动数据包括对应于不同时间点的多个移动数据值,其中所述至少一个处理电路被配置为通过对所述多个移动数据值中的每个移动数据值执行以下操作来将所述传感器数据划分为训练数据和测试数据:
确定等于或基于所述移动数据值的相应位置值,其中所述相应位置值描述在对应于所述移动数据值的相应时间点处所述一对紧邻的臂区段中的第一臂区段相对于所述一对紧邻的臂区段中的第二臂区段的位置;
确定等于或基于所述移动数据值的相应速度值,其中所述相应速度值描述在所述相应时间点处第一臂区段相对于第二臂区段的速度;以及
基于所述相应速度值与所述相应位置值的相应比率来确定是选择所述移动数据值作为训练数据还是测试数据。
9.如权利要求8所述的计算系统,其中所述至少一个处理电路被配置为,对于所述多个移动数据值中的每个移动数据值,基于与所述移动数据值相关联的所述相应速度值与所述相应位置值之间的所述相应比率是否为以下各项中的至少一种情况来确定是将所述移动数据值选择作为训练数据还是作为测试数据:(i)在从0延伸到定义的正比率阈值的比率范围内,或(ii)小于定义的负比率阈值。
10.如权利要求8所述的计算系统,其中所述至少一个处理电路被配置为:对于所述多个移动数据值中的每个移动数据值,基于与所述移动数据值相关联的所述相应速度值与所述相应位置值之间的所述相应比率是否为以下各项中的至少一种情况来确定是将所述移动数据值选择作为训练数据还是作为测试数据:(i)在从0延伸到定义的负比率阈值的比率范围内,或(ii)大于定义的正比率阈值。
11.如权利要求1所述的计算系统,其中所述摩擦参数估计是对粘性摩擦系数的估计,或者是对库仑摩擦的估计。
12.如权利要求1所述的计算系统,其中所述至少一个处理电路被配置为:当所述一组致动数据测量流过致动器的用于引起所述一对紧邻的臂区段之间的所述相对移动的电流时,基于所述电流确定所述关节处的所述总扭矩或所述总力。
13.一种非暂时性计算机可读介质,其上具有指令,当所述指令由计算系统的至少一个处理电路执行时,使所述至少一个处理电路执行以下操作:
将存储在所述非暂时性计算机可读介质上的传感器数据分为训练数据和传感器数据,其中所述非暂时性计算机可读介质被配置为存储的所述传感器数据包括:(i)一组移动数据,指示经由机械臂的关节正在发生或已经发生的所述机械臂的一对紧邻的臂区段之间的相对移动的量或速率,以及(ii)一组致动数据,指示在所述相对移动正在发生或者已经发生的时间段中所述关节处的总扭矩或总力,
其中所述传感器数据通过以下方式被划分为训练数据和测试数据:(i)选择移动训练数据和对应的致动训练数据作为所述训练数据,其中所述移动训练数据是所述一组移动数据的第一子集,并且其中所述致动训练数据是所述一组致动数据的第一子集,以及(ii)选择移动测试数据和对应的致动测试数据作为所述测试数据,其中所述移动测试数据是所述一组移动数据的第二子集,并且其中所述致动测试数据是所述一组致动数据的第二子集,
其中当所述指令由所述至少一个处理电路执行时,还使所述至少一个处理电路执行以下操作:
基于所述移动训练数据和所述致动训练数据确定以下各项中的至少一个:(i)与所述一对紧邻的臂区段之间的摩擦相关联的摩擦参数估计,或(ii)与所述一对紧邻的臂区段中的一个臂区段相关联的质心CoM估计;其中所述指令还使所述至少一个处理电路执行以下操作:
基于所述移动测试数据和基于以下各项中的至少一个来确定致动预测数据:(i)所述摩擦参数估计或(ii)所述CoM估计,其中所述致动预测数据是指示在不同时间点在所述关节处的总扭矩或总力的预测;
确定残差数据,所述残差数据包括描述分别对应于所述不同时间点的所述致动预测数据和所述致动测试数据之间的偏差的残差数据值;
基于所述残差数据,确定描述所述残差数据值的误差参数的值;
确定所述误差参数的所述值是否超过定义的误差阈值;以及
输出所述误差参数的所述值是否超过所述定义的误差阈值的指示。
14.如权利要求13所述的非暂时性计算机可读介质,其中所述误差参数指示所述残差数据值中的频率内容。
15.如权利要求14所述的非暂时性计算机可读介质,其中所述误差参数指示所述传感器数据的质量。
16.如权利要求14所述的非暂时性计算机可读介质,其中所述误差参数指示描述(i)总扭矩或总力与(ii)摩擦或CoM之间的关系的模型的准确性。
17.如权利要求13所述的非暂时性计算机可读介质,其中所述指令还使所述至少一个处理电路为多个相应时间窗口确定多个平均残差数据值,其中所述多个相应时间窗口对应所述残差数据值的不同的相应子集,
其中所述误差参数的所述值是基于所述多个平均残差数据值而确定的。
18.如权利要求17所述的非暂时性计算机可读介质,其中所述指令还使所述至少一个处理电路基于所述多个平均残差数据值中的最大值来确定所述误差参数的所述值。
19.如权利要求18所述的非暂时性计算机可读介质,其中所述多个时间窗口表示重叠的时间段,所述重叠的时间段具有由定义的滑动时间增量间隔开的相应的开始时间。
20.一种由计算系统执行的方法,所述方法包括:
将存储在所述计算系统的非暂时性计算机可读介质上的传感器数据划分为训练数据和传感器数据,其中所述非暂时性计算机可读介质被配置为存储的所述传感器数据包括:(i)一组移动数据,指示经由机械臂的关节正在发生或已经发生的所述机械臂的一对紧邻的臂区段之间的相对移动的量或速率,以及(ii)一组致动数据,指示在所述相对移动正在发生或者已经发生的时间段中所述关节处的总扭矩或总力,
其中通过以下方式将所述传感器数据划分为训练数据和测试数据:(i)选择移动训练数据和对应的致动训练数据作为所述训练数据,其中所述移动训练数据是所述一组移动数据的第一子集,并且其中所述致动训练数据是所述一组致动数据的第一子集,以及(ii)选择移动测试数据和对应的致动测试数据作为所述测试数据,其中所述移动测试数据是所述一组移动数据的第二子集,并且其中所述致动测试数据是所述一组致动数据的第二子集;其中所述方法还包括:
基于所述移动训练数据和所述致动训练数据确定以下各项中的至少一个:(i)与所述一对紧邻的臂区段之间的摩擦相关联的摩擦参数估计,或(ii)与所述一对紧邻的臂区段中的一个臂区段相关联的质心CoM估计;
基于所述移动测试数据和基于以下各项中的至少一个来确定致动预测数据:(i)所述摩擦参数估计或(ii)所述CoM估计,其中所述致动预测数据是指示在不同时间点在所述关节处的总扭矩或总力的预测;
确定残差数据,所述残差数据包括描述分别对应于所述不同时间点的所述致动预测数据和所述致动测试数据之间的偏差的残差数据值;
基于所述残差数据,确定描述所述残差数据值的误差参数的值;
确定所述误差参数的所述值是否超过定义的误差阈值;以及
输出所述误差参数的所述值是否超过所述定义的误差阈值的指示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111147979.1A CN113821006B (zh) | 2020-05-07 | 2021-05-07 | 用于确定指示机器人校准质量的误差参数的值的方法和计算系统 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063021089P | 2020-05-07 | 2020-05-07 | |
US63/021,089 | 2020-05-07 | ||
US17/244,224 | 2021-04-29 | ||
US17/244,224 US11717966B2 (en) | 2020-05-07 | 2021-04-29 | Method and computing system for determining a value of an error parameter indicative of quality of robot calibration |
PCT/JP2021/017446 WO2021225152A1 (en) | 2020-05-07 | 2021-05-07 | Method and computing system for determining a value of an error parameter indicative of quality of robot calibration |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111147979.1A Division CN113821006B (zh) | 2020-05-07 | 2021-05-07 | 用于确定指示机器人校准质量的误差参数的值的方法和计算系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113939783A true CN113939783A (zh) | 2022-01-14 |
Family
ID=78412095
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180002096.3A Pending CN113939783A (zh) | 2020-05-07 | 2021-05-07 | 用于确定指示机器人校准质量的误差参数的值的方法和计算系统 |
CN202180002097.8A Pending CN113924192A (zh) | 2020-05-07 | 2021-05-07 | 用于估计机器人操作参数的方法和计算系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180002097.8A Pending CN113924192A (zh) | 2020-05-07 | 2021-05-07 | 用于估计机器人操作参数的方法和计算系统 |
Country Status (4)
Country | Link |
---|---|
US (4) | US11691285B2 (zh) |
JP (4) | JP7076756B2 (zh) |
CN (2) | CN113939783A (zh) |
WO (2) | WO2021225150A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102356660B1 (ko) * | 2019-11-01 | 2022-02-07 | 주식회사 뉴로메카 | 다자유도 협동 로봇의 마찰 보상 방법 |
CA3170703A1 (en) | 2020-02-06 | 2021-08-12 | Berkshire Grey Operating Company, Inc. | Systems and methods for camera calibration with a fiducial of unknown position on an articulated arm of a programmable motion device |
KR102375355B1 (ko) * | 2020-11-20 | 2022-03-16 | 강릉원주대학교 산학협력단 | 전자 장치에 의해 수행되는 고정밀 위치 제어를 위한 강인한 최적 외란 관측기를 포함하는 시스템 및 제어 방법 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE0001312D0 (sv) * | 2000-04-10 | 2000-04-10 | Abb Ab | Industrirobot |
CN102248537B (zh) * | 2007-06-27 | 2013-12-04 | 松下电器产业株式会社 | 机器手控制装置及控制方法、机器人 |
JP4256440B2 (ja) | 2007-08-10 | 2009-04-22 | ファナック株式会社 | ロボットプログラム調整装置 |
JP5198514B2 (ja) * | 2010-07-22 | 2013-05-15 | 株式会社東芝 | ロボット制御装置 |
JP5895628B2 (ja) * | 2012-03-15 | 2016-03-30 | 株式会社ジェイテクト | ロボットの制御方法及びロボット制御装置、並びにロボット制御システム |
US9434073B2 (en) * | 2012-08-02 | 2016-09-06 | Toshiba Kikai Kabushiki Kaisha | Robot apparatus and control method therefor |
KR102023910B1 (ko) * | 2012-11-23 | 2019-09-23 | 삼성전자주식회사 | 로봇 및 로봇의 마찰 보상 방법 |
US10078712B2 (en) | 2014-01-14 | 2018-09-18 | Energid Technologies Corporation | Digital proxy simulation of robotic hardware |
US10321928B2 (en) | 2014-10-09 | 2019-06-18 | Sony Corporation | Information processing device, information processing method, and program |
US9505132B1 (en) * | 2015-03-30 | 2016-11-29 | X Development Llc | Methods and systems for calibrating a sensor of a robotic device |
US10126202B2 (en) | 2015-09-11 | 2018-11-13 | Linestream Technologies | Method for automatically estimating inertia, coulomb friction, and viscous friction in a mechanical system |
JP7058929B2 (ja) * | 2015-10-27 | 2022-04-25 | キヤノン株式会社 | 駆動装置、ロボット装置、制御方法、物品の製造方法、制御プログラム、および記録媒体 |
WO2018053349A1 (en) | 2016-09-16 | 2018-03-22 | Verb Surgical Inc. | Robotic arms |
JP6420298B2 (ja) | 2016-12-02 | 2018-11-07 | ファナック株式会社 | ロボットを制御するロボット制御装置、およびロボットに加わる外乱値を推定する方法 |
CN107092582B (zh) | 2017-03-31 | 2021-04-27 | 江苏方天电力技术有限公司 | 一种基于残差后验的异常值在线检测及置信度评估方法 |
CN108453735B (zh) | 2018-03-15 | 2021-03-02 | 河南大学 | 一种基于摩擦纳米发电机仿生机械手的抓取方法、装置 |
JP6737831B2 (ja) * | 2018-04-17 | 2020-08-12 | ファナック株式会社 | 設置形態判定装置、設置形態判定用コンピュータプログラム及び記録媒体 |
CN108621159B (zh) | 2018-04-28 | 2020-05-19 | 首都师范大学 | 一种基于深度学习的机器人动力学建模方法 |
CN108839023B (zh) * | 2018-07-03 | 2021-12-07 | 上海节卡机器人科技有限公司 | 拖动示教系统和方法 |
DE102018133349A1 (de) * | 2018-12-21 | 2020-06-25 | Pilz Gmbh & Co. Kg | Verfahren und Vorrichtung zur Momentschätzung |
CN109732605B (zh) | 2019-01-21 | 2021-02-26 | 厦门大学 | 一种机器人关节摩擦力矩的补偿方法及系统 |
WO2020211914A1 (en) * | 2019-04-17 | 2020-10-22 | Universal Robots A/S | Method of controlling a robot arm based on adaptive friction |
CN110298455B (zh) | 2019-06-28 | 2023-06-02 | 西安因联信息科技有限公司 | 一种基于多变量估计预测的机械设备故障智能预警方法 |
KR102356660B1 (ko) * | 2019-11-01 | 2022-02-07 | 주식회사 뉴로메카 | 다자유도 협동 로봇의 마찰 보상 방법 |
-
2021
- 2021-04-29 US US17/243,939 patent/US11691285B2/en active Active
- 2021-04-29 US US17/244,224 patent/US11717966B2/en active Active
- 2021-05-07 JP JP2021534177A patent/JP7076756B2/ja active Active
- 2021-05-07 WO PCT/JP2021/017442 patent/WO2021225150A1/en active Application Filing
- 2021-05-07 WO PCT/JP2021/017446 patent/WO2021225152A1/en active Application Filing
- 2021-05-07 CN CN202180002096.3A patent/CN113939783A/zh active Pending
- 2021-05-07 JP JP2021534148A patent/JP7098124B2/ja active Active
- 2021-05-07 CN CN202180002097.8A patent/CN113924192A/zh active Pending
-
2022
- 2022-05-10 JP JP2022077306A patent/JP2022110050A/ja active Pending
- 2022-06-21 JP JP2022099803A patent/JP2022118153A/ja active Pending
-
2023
- 2023-05-16 US US18/318,055 patent/US20230405817A1/en active Pending
- 2023-06-20 US US18/338,014 patent/US20240009843A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11717966B2 (en) | 2023-08-08 |
JP2022525577A (ja) | 2022-05-18 |
JP2022118153A (ja) | 2022-08-12 |
US11691285B2 (en) | 2023-07-04 |
JP2022525576A (ja) | 2022-05-18 |
WO2021225150A1 (en) | 2021-11-11 |
JP2022110050A (ja) | 2022-07-28 |
JP7076756B2 (ja) | 2022-05-30 |
US20240009843A1 (en) | 2024-01-11 |
US20210347054A1 (en) | 2021-11-11 |
CN113924192A (zh) | 2022-01-11 |
WO2021225152A1 (en) | 2021-11-11 |
JP7098124B2 (ja) | 2022-07-11 |
US20210347049A1 (en) | 2021-11-11 |
US20230405817A1 (en) | 2023-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113939783A (zh) | 用于确定指示机器人校准质量的误差参数的值的方法和计算系统 | |
US8442685B2 (en) | Robot control apparatus | |
CN105619424B (zh) | 电机驱动设备的控制设备及方法、多轴电机的控制设备 | |
US20060129348A1 (en) | System for collision a voidance of rotary atomizer | |
CN103203755A (zh) | 机器人控制装置、机器人系统以及机器人控制方法 | |
JP2017103882A (ja) | 制御装置、制御プログラムおよび記録媒体 | |
CN113748597B (zh) | 电动机控制装置 | |
JP2020101541A (ja) | トルク推定のための方法および装置 | |
JP6091523B2 (ja) | サーボ制御装置 | |
JP4363058B2 (ja) | モータ、モータの制御装置、モータ制御システム及びモータの同定方法 | |
EP3277467B1 (en) | A method for controlling an industrial robot by touch | |
CN110941183B (zh) | 一种基于神经网络的工业机器人动力学辨识方法 | |
CN113821006B (zh) | 用于确定指示机器人校准质量的误差参数的值的方法和计算系统 | |
CN114341776A (zh) | 信息处理装置、信息处理系统和信息处理方法 | |
CN113771039B (zh) | 用于估计机器人操作参数的方法和计算系统 | |
CN116635802A (zh) | 数控装置 | |
JP2013526425A (ja) | ロボットアームまたはマニピュレータアームのヒンジにおける摩擦を同定する方法、および、その方法のトルク補償方法における使用 | |
CN113084828B (zh) | 一种运动控制方法、装置、设备和存储介质 | |
Da Silva et al. | Joint dynamics modeling and parameter identification for space robot applications | |
CN116685448A (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 |