CN113821006B - Method and computing system for determining values of error parameters indicative of robot calibration quality - Google Patents

Method and computing system for determining values of error parameters indicative of robot calibration quality Download PDF

Info

Publication number
CN113821006B
CN113821006B CN202111147979.1A CN202111147979A CN113821006B CN 113821006 B CN113821006 B CN 113821006B CN 202111147979 A CN202111147979 A CN 202111147979A CN 113821006 B CN113821006 B CN 113821006B
Authority
CN
China
Prior art keywords
data
movement
value
actuation
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.)
Active
Application number
CN202111147979.1A
Other languages
Chinese (zh)
Other versions
CN113821006A (en
Inventor
A·萨达特德汉
碓井渓
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.)
Mujin Technology
Original Assignee
Mujin Technology
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
Priority claimed from US17/244,224 external-priority patent/US11717966B2/en
Application filed by Mujin Technology filed Critical Mujin Technology
Publication of CN113821006A publication Critical patent/CN113821006A/en
Application granted granted Critical
Publication of CN113821006B publication Critical patent/CN113821006B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41875Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by quality surveillance of production
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32368Quality control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

The present disclosure relates to a method and a computing system for determining a value of an error parameter indicative of a robot calibration quality. The computing system may store sensor data, including: a set of (i) movement data, and (ii) a set of actuation data. The computing system may divide the sensor data into training data and test data by: (i) Select movement training data and corresponding actuation training data as training data, and (ii) select movement test data and corresponding actuation test data as test data. The computing system may determine, based on the movement training data and the actuation training data, at least one of: (i) A friction parameter estimate or (ii) a center of mass (CoM) estimate, and may determine actuation prediction data based on the movement test data and based on at least one of the friction parameter estimate or the CoM estimate. The computing system may also determine residual data and determine values of error parameters.

Description

Method and computing system for determining values of error parameters indicative of robot calibration quality
The present application is a divisional application of the invention patent application 202180002096.3 entitled "method and computing system for determining values of error parameters indicating robot calibration quality", filed on 7/5/2021.
Cross reference to related applications
The present application claims priority from U.S. application No. 17/244,224 entitled "METHOD AND COMPATING SYSTEM FOR DETERMINING A VALUE OF AN ERROR PARAMETER INDICATIVE OF QUALITY OF ROBOT CALIBRATION" filed on 29.4.29.2021, which claims the benefit OF U.S. provisional application No. 63/021,089 entitled "A ROBOTIC SYSTEM WITH ROBOT OPERATION PARAMETER DETERMINATION" filed on 7.5.2020, which is incorporated herein by reference in its entirety.
Technical Field
The present disclosure relates to a method and a computing system for determining a value of an error parameter indicative of a quality of a robot calibration result.
Background
As automation becomes more prevalent, robots are being used in more environments, such as warehousing and retail environments. For example, robots may be used to interact with objects in a warehouse. The movement of the robot may be fixed or may be based on input, such as information generated by sensors in the warehouse.
However, despite technological advances, robots often lack the complexity necessary to replicate the human interactions required to perform larger and/or more complex tasks. In order for the robot to approximate human motion, the robot should be calibrated to accurately and precisely control the movement of the robot.
Disclosure of Invention
One aspect of the disclosure relates to a computing system, a method performed by the computing system, or a non-transitory computer-readable medium having instructions for performing the method. In this embodiment, a computing system includes a non-transitory computer-readable medium and at least one processing circuit. The at least one processing circuit is configured to perform various operations when the non-transitory computer-readable medium is storing sensor data, including: (i) A set of movement data indicative of an amount or rate of relative movement between a pair of immediately adjacent arm segments of the robotic arm that is occurring or has occurred via a joint of the robotic arm, and (ii) a set of actuation data indicative of a total torque or total force at the joint over a period of time in which the relative movement is occurring or has occurred. The various operations may include the following: the sensor data is divided into training data and test data by: (i) Select movement training data and corresponding actuation training data as training data, wherein the movement training data is a first subset of the set of movement data, and wherein the actuation training data is a first subset of the set of actuation data, and (ii) select movement test data and corresponding actuation test data as test data, wherein the movement test data is a second subset of the set of movement data, and wherein the actuation test data is a second subset of the set of actuation data. The various operations may also include determining, based on the movement training data and the actuation training data, at least one of: (i) A friction parameter estimate associated with friction between the pair of immediately adjacent arm segments, or (ii) a center of mass (CoM) estimate associated with one of the pair of immediately adjacent arm segments. The various operations may also include determining actuation prediction data based on the movement test data and based on at least one of: (i) A friction parameter estimate or (ii) a CoM estimate, wherein the actuation prediction data is a prediction indicative of a total torque or a total force at the joint at different points in time. The various operations may further include determining residual data comprising residual data values describing deviations between the actuation prediction data and the actuation test data respectively corresponding to different points in time; determining, based on the residual data, a value of an error parameter describing a value of the residual data; determining whether a value of an error parameter exceeds a defined error threshold; and outputting an indication of whether the value of the error parameter exceeds the defined error threshold.
Drawings
Fig. 1A-1C illustrate a system for evaluating the quality or reliability of robot calibration results or sensor data used to perform robot calibration according to embodiments herein.
Fig. 2A-2D provide block diagrams illustrating a computing system for evaluating robot calibration results or sensor data for performing robot calibration according to embodiments herein.
Fig. 3A-3E illustrate environments in which robot calibration may be performed according to embodiments herein.
Fig. 4 shows a flow diagram illustrating an example method for determining a value of an error parameter indicative of the reliability or accuracy of a robot calibration result, or the quality of sensor data used to perform a robot calibration, according to embodiments herein.
Fig. 5A and 5B illustrate movement of an arm segment according to embodiments herein.
Fig. 6A-6C illustrate actuation data and movement data according to embodiments herein.
7A-7C illustrate actuation data and movement data according to embodiments herein.
Fig. 8A and 8B illustrate division of sensor data into training data and testing data according to embodiments herein.
9A-9C illustrate examples of determining at least one friction parameter estimate based on training data according to embodiments herein.
Fig. 10A and 10B illustrate examples of determining a centroid (CoM) estimate based on training data according to embodiments herein.
Fig. 11 illustrates an example of actuation prediction data generated based on movement test data according to embodiments herein.
Fig. 12 illustrates an example of residual data values according to embodiments herein.
Fig. 13A illustrates an example of residual data values according to embodiments herein.
Fig. 13B illustrates an example of determining an average value for a respective set of residual data values in a respective time window according to an embodiment herein.
Detailed Description
An aspect of the present disclosure relates to estimating characteristics of a robot, which may be performed as part of a robot calibration operation. In some cases, the robot may be located in, for example, a warehouse or factory, and may be used to pick up or otherwise interact with objects in the environment. The robot calibration operation may involve estimating one or more parameters describing the physical characteristics of the robot, such as friction between robot parts, or the position of the center of mass (CoM) of the robot parts. In some cases, the values of these physical characteristics may deviate from nominal or theoretical values provided by the robot manufacturer. The deviation may be caused by a variety of factors, such as manufacturing tolerances, aging, temperature variations, or some other factor.
More particular aspects of the present disclosure relate to the accuracy, reliability, or quality of sensor data evaluating estimates of one or more parameters, models used to determine the estimates, and/or used to determine the estimates. In an embodiment, such evaluation may involve dividing the sensor data into training data and test data. For example, the sensor data may, for example, measure movement of a robotic component or a force or torque experienced by the component, and may include actuation data and movement data. In this example, the sensor data may be divided into actuation training data (also referred to as training actuation data), movement training data (also referred to as training movement data), actuation test data (also referred to as test actuation data), and movement test data (also referred to as test movement data). In other words, the actuation data and the movement data may each be divided into training data and test data. In this example, the actuation training data may be training data extracted from the actuation data and may be, for example, a first portion of the actuation data, while the actuation test data may be test data also extracted from the actuation data and may be, for example, a second portion of the actuation data. Thus, the actuation training data and the actuation test data may also be referred to as actuation-related training data and actuation-related test data, respectively. Similarly, the movement training data may be training data extracted from movement data and may be, for example, a first portion of movement data, while the movement test data may be test data also extracted from movement data and may be, for example, a second portion of movement data. Thus, the movement training data and the movement test data in this example may also be referred to as movement-related training data and movement-related test data, respectively. In some cases, movement data may be divided into movement training data and movement test data based on a ratio between a velocity value indicated by the movement data and a location value indicated by the movement data. For example, the movement data may be divided into training data and test data by comparing the ratio to a defined ratio threshold, which may represent the slope of a line dividing the coordinate system representing the movement data into symmetric regions. In such a case, the actuation data may be divided into training data and motion data to correspond to movement training data and movement test data.
In some implementations, the actuation training data and the movement training data may be used to determine an estimate or perform some other aspect of robot calibration. When the estimated values are determined, they may be used together with the movement test data to determine the prediction data, or more specifically, the actuation prediction data. As discussed in more detail below, the actuation prediction data may be data that provides a prediction indicative of the total torque or total force at the arm segment or joint. Thus, the actuation prediction data may also be referred to as actuation related prediction data. In some cases, the actuation prediction data may be compared to the actuation test data to determine a residual data value indicative of a level of deviation between the actuation prediction data and the actuation test data. The residual data values may be used to assess the accuracy or reliability of the robot calibration results, or to assess the quality of the sensor data used to perform the robot calibration.
In an embodiment, the accuracy, reliability or quality discussed above may be evaluated via a value of an error parameter, which may be determined based on the residual data values. In some cases, the error parameter may indicate a frequency content of the residual data value. For example, the error parameter may be determined by applying a sliding time window to the residual data values and calculating a corresponding average value for a set of residual data values in a particular time window. In this embodiment, the sliding time window may more specifically define a plurality of overlapping time windows corresponding to respective groups of residual data values. The plurality of overlapping time windows may also correspond to a plurality of averages of the respective sets of residual data values. In some implementations, the value of the error parameter may be a maximum value of the plurality of average values. In some cases, the value of the error parameter may indicate whether the residual data values have low-frequency content or high-frequency content. The presence of low frequency content may indicate or may coincide with the robot being subjected to an event (such as a collision with another object), which may result in uneven movement of the robot and degrade the quality of sensor data used for robot calibration, which may measure the movement of the robot.
Fig. 1A, 1B, and 1C illustrate a system 1000 for determining information that estimates or otherwise describes one or more physical characteristics of a robot (or more particularly for performing robot calibration). Those skilled in the art will appreciate that fig. 1A-1C illustrate one example of a system 1000 for performing robotic calibration, and that components illustrated in fig. 1A-1C may be removed or omitted, and/or additional components may be added to the system 1000. As shown in fig. 1A, system 1000 may include a computing system 1100 and a robot 1200. In an embodiment, the system 1000 may be a robot calibration system or a component thereof, wherein the robot calibration system is configured to perform robot calibration, which may involve, for example, determining one or more physical characteristics or some other characteristic of the robot 1200. Robot calibration may be performed, for example, to improve the level of accuracy of robot movements (also referred to as robot motions) that may control the robot 1200, or more specifically, to improve the ability to plan and/or accurately execute the trajectory of the robot 1200. The computing system 1100 in embodiments herein may be configured to determine the accuracy or reliability of the robot calibration. More specifically, the computing system 1100 may be configured to determine a value of an error parameter. The error parameters may indicate the accuracy of estimates, models, or other information obtained from the robot calibration (e.g., estimates of physical characteristics of the robot 1200), and/or indicate the quality of sensor data used to perform the calibration robot calibration.
In some cases, the computing system 1100 may determine one or more physical characteristics of the robot 1200 and/or may use the one or more physical characteristics of the robot 1200 to generate movement commands for the robot 1200 to output movements (also referred to as motions) according to the planned trajectory. For example, the computing system 1100 may be configured to determine movement commands (e.g., engine commands) that are specific to or otherwise take into account one or more physical characteristics of the robot 1200. By way of example, the one or more physical characteristics may include, for example, friction between components of robot 1200 (e.g., arm segments of a robotic arm), respective positions of the components having their centers of mass (CoM), respective values of masses or moments of inertia of the components, and/or some other physical characteristic. These characteristics of the robot may constrain or otherwise affect the motion of the robot 1200 and/or affect how components of the robot 1200 should be actuated.
In some cases, the characteristics estimated by the system 1000 may be used to describe the physics (e.g., kinematics) of the motion of the robot 1200, such as by describing how one or more components of the robot 1200 respond to force, torque, or other forms of actuation. If the computing system 1100 of FIG. 1A or another computing system is used to control the movement of the robot 1200, the movement may be controlled based on the estimated characteristics. For example, an engine or other actuator may output a force or torque to initiate or adjust a motion (e.g., a linear motion or a rotational motion) of a component of the robot 1200, but the motion may be affected by factors such as a force due to friction (which may impede the motion or changes in motion), a force due to gravity, and/or an inertial element such as a mass or moment of inertia of the component (which may also impede the motion or changes in motion). In this example, controlling the motion of the robotic component may involve compensating for, or more generally taking into account, the above factors in determining, for example, magnitude, direction, and/or duration of a force or torque output by an actuator used to drive the robotic component. Motion control may be used, for example, to execute a trajectory of the robot 1200, which in some cases may involve accurately following planned values of position, velocity, or velocity and/or acceleration of various components of the robot. That is, motion control may involve following a planned trajectory, which may involve a particular value or set of values of the velocity and/or acceleration of various components of the robot. The above discussed estimation of the physical property may be used to control the actuator in order to make the executed trajectory closely match the planned trajectory.
In an embodiment, performing the robot calibration may involve determining or updating a force model and/or a torque model. In such embodiments, the computing system 1100 (or some computing system) may determine how much force and/or torque, or the direction or duration of force and/or torque, to be applied by the actuator(s) based on the force model and/or the torque model. In some cases, the force model and/or the torque model may be formed from, or include, information describing factors that affect the total force or total torque on the robot 1200 or components thereof. For example, the force model and/or the torque model may include values representing parameters such as friction, gravity, mass, moment of inertia, and/or combinations thereof. In some cases, the force model and/or the torque model may include a friction model that may include information describing how much friction the robot or a component thereof will experience. As an example, the friction model may include parameters representing viscous friction (also referred to as dynamic friction or sliding friction) and coulomb friction (also referred to as static friction), which will be discussed in more detail below. In some cases, the force model and/or the torque model may describe a relationship (e.g., a mathematical relationship) between the force and/or torque output by the actuator(s) and the total torque or total force experienced by the robotic component, and/or may describe a relationship between the force and/or torque output by the actuator(s) and the resulting motion of the robotic component. In the above example, if the robot calibration yields a force model or a torque model, the computing system 1100 (or some other computing system) may utilize the force model and/or the torque model to control the actuator(s), or more generally, the motion of the robot 1200. In this embodiment, the error parameters discussed above may describe the accuracy or reliability of the force model and/or the torque model and/or describe the quality of the sensor data used to generate the force model and/or the torque model. Thus, the computing system 1100 may be configured to determine values of error parameters in order to determine the accuracy or reliability of the force and/or torque models obtained from performing the robot calibration.
As described above, the system 1000 of fig. 1A may be used to perform robot calibration, such as by determining information describing or otherwise representing one or more physical characteristics of the robot 1200. In some cases, the system 1000 (and associated methods performed by the system 1000) operates to perform robot calibration by causing movement of the robot 1200 and using data describing the movement to determine physical characteristics of the robot. More specifically, during movement, the computing system 1100 may monitor the robot 1200 and receive sensor data describing the movement of components of the robot 1200. Based on the received sensor data, the computing system 1100 may determine a respective estimate for each of the physical characteristics of the robot 1200 or components thereof. In this embodiment, the error parameters that may be determined by the computing system 1100 may be indicative of the accuracy or reliability of the estimated values of each of the physical characteristics of the robot 1200.
In an embodiment, the robot 1200 may include a robotic arm 1210, and performing a robot calibration may involve determining one or more physical characteristics of components (e.g., arm segments) of the robotic arm 1210. More specifically, the robotic arm 1210 may include a number n of arm segments 1212 1 、1212 2 、…1212 n (also referred to as a link of robotic arm 1210), and one or more physical characteristics determined from robot calibration may be applied to arm segment 1212 1 -1212 n One or more of the above are described. In some cases, arm segment 1212 1 -1212 n Each of which may be independently actuated or moved in multiple planes of motion. In some implementations, arm section 1212 1 -1212 n May be coupled in series with one another (e.g., via multiple joints) such that the robotic arm 1210 is comprised of a series of arm segments 1212 1 -1212 n And (4) forming. In this embodiment, arm section 1212 1 -1212 n A kinematic chain may be formed for moving an end effector (also referred to as an end effector device) or other arm segment to a particular pose. For example, arm section 1212 1 -1212 n May be coupled such that arm segment 1212 1 -1212 n Has a first end (e.g., a proximal end) coupled to the robot base or arm segment 1212 and has a second end (e.g., a distal end) 1 -1212 n A preceding arm segment in the series, the second end being coupled to the arm segment 1212 1 -1212 n Subsequent arm segments in the series form the distal end of the robotic arm 1210. In this manner, arm section 1212 1 May be followed by an arm section 1212 2 Arm section 1212 2 May be followed by an arm section 1212 3 Arm section 1212 3 Followed by arm segment 1212 4 And the like. As an example, arm section 1212 1 May be at arm section 1212 1 Is coupled to the robot base and may be at an arm section 1212 1 Is coupled to the arm section 1212 at a distal end 2 . Also in this example, arm segment 1212 2 May be at arm section 1212 2 Is coupled to the arm section 1212 at a proximal end 1 And may be at arm section 1212 2 Is coupled to the arm section 1212 at a distal end 3 . In some implementations, the arm section 1212 n May be an end effector device. Those skilled in the art will appreciate that arm segment 1212 1 -1212 n May be coupled in any arrangement to perform movement according to the operating requirements of the robot 1200.
In an embodiment, if the robot calibration involves determining an arm segment 1212 for the robotic arm 1210 1 -1212 n May be used to control the movement of the robot arm 1210. For example, arm section 1212 1 -1212 n May be moved relative to one another to produce overall motion of the robotic arm 1210 to achieve a desired pose of the end effector or other arm segment at the distal end of the robotic arm 1210. If the computing system 1100 is involved in controlling the movement of the robotic arm 1210 (such as by planning a trajectory for the robotic arm 1210), the computing system 1100 may plan the movement of various arm segments. This movement planning for the individual arm segments may be based on the determined information about the physical properties of the individual arm segments. In some cases, robot calibration may involve determining a force model and/or a torque model that describes factors that affect how much total force or total torque is applied on each arm segment. For example, a force model and/or a torque model may be applied to an arm segment or a joint connecting a pair of arm segments, and may describe a relationship between the total force or total torque experienced by the arm segment or joint and the amount or rate of movement of the arm segment relative to the joint. In such cases, computing system 1100 may plan the movement of the various arm segments based on the force model and/or the torque model. In this embodiment, if the computing system 1100 generates or otherwise determines force models and/or torque models specific to individual arm segments or joints,the computing system 1100 may also be configured to determine an error parameter value specific to that individual arm segment or joint, where the error parameter value refers to a value of the error parameter discussed above, and may indicate the reliability or accuracy of the force model or the torque model. The computing system 1100 may also determine a respective error parameter value for each of the arm segments or joints if the computing system 1100 generates a respective force model and/or torque model for each of the arm segments or joints.
In an embodiment, if performing a robot calibration involves determining an arm section 1212 for a robotic arm 1210 1 -1212 n May relate to a parameter describing the relationship between the movement of an arm segment and the torque or force applied directly to that arm segment. For example, for arm segment 1212 1 -1212 n The parameters may describe a position of a center of mass of the arm segment, a mass or weight of the arm segment, how the mass of the arm segment is distributed, a moment of inertia of the arm segment, and/or friction between the arm segment and another component of the robotic arm 1210 (e.g., another arm segment). This parameter may be used by the computing system 1100, or any other computing system, in planning a trajectory for the robotic arm 1210. For example, the computing system 1100 may use the parameters to predict how much movement or rate of movement a particular amount of force or torque will produce, or determine how much force or torque is needed to generate a certain amount of movement or rate of movement. More specifically, the computing system 1100 may use the parameters to determine an amount of force or torque that compensates for the effect of friction on the arm segment, the effect of gravity on the arm segment (which may be approximated as a CoM acting on the arm segment), and/or the mass or moment of inertia of the arm segment. In this embodiment, if the robot calibration involves determining an estimate of, for example, the position of the center of mass of a particular arm segment or an estimate of the coefficient of friction between two arm segments, the error parameters discussed above may describe or otherwise indicate the accuracy and/or reliability of the estimate.
In an embodiment, as shown in FIG. 1B, robot 1200 may include a set 1220 of one or more sensors and oneOr a set of multiple actuators (e.g., motors) 1230 that can be used to perform robot calibration operations. The set of one or more actuators 1230 may each be configured to output a force or torque that may be applied to the arm section 1212 of the robotic arm 1210 1 -1212 n To cause movement of the one or more arm segments. In an embodiment, the operation of the set of one or more actuators 1230 can be controlled by the computing system 1100. For example, the computing system 1100 may be configured to output one or more movement commands for causing activation of at least one actuator of the set of one or more actuators 1230. In some implementations, the one or more movement commands can include analog and/or digital signals for causing the set of one or more actuators 1230 to activate and output a force and/or torque. In some cases, the one or more movement commands may control how much force or torque, the direction of the force or torque, and/or the duration of the force or torque is output by the activated actuator.
In an embodiment, as shown in FIG. 1C, a set of one or more actuators 1230 can include a plurality of actuators 1230 1 -1230 n These multiple actuators 1230 1 -1230 n May be output to cause a plurality of arm segments 1212 1 -1212 n The force or torque of the movement of the respective arm segment. For example, a plurality of actuators 1230 1 -1230 n May be configured to output for rotating or otherwise moving arm segment 1212 1 -1212 n The torque of (c). In one example, the actuator 1230 1 -1230 n May be coupled to or disposed on arm segment 1212 1 -1212 n And may output a corresponding force or torque to cause arm segment 1212, respectively, when activated 1 -1212 n Is moved. In such an example, the actuator 1230 1 -1230 n And/or the actuators 1230 1 -1230 n The respective amount of force or torque output may be controlled by the computing system 1100 (e.g., via movement commands).
In an embodiment, a set 1220 of one or more sensors is providedConfigured to generate one or more sets of sensor data (also referred to as data sets) that are used by the computing system 1100 to perform robotic calibration. In some cases, the data set may measure or otherwise represent the arm segment 1212 1 -1212 n And/or arm segment 1212 of one or more of 1 -1212 n The force or torque experienced. For example, the one or more data sets of sensor data may include a set of actuation data and a set of movement data.
In an embodiment, the set of actuation data may include a representation of arm segment 1212 1 -1212 n Or total force and/or total torque experienced at one or more joints. The total force or total torque on the arm segments may include or be based on the force exerted by the actuator 1230 1 -1230 n A force or torque due to contribution from gravity, a force or torque due to contribution from friction, and a force or torque due to contribution from friction. The set of actuation data may be directly indicative of, or proportional to, the total force or total torque experienced by one or more of the arm segments or at one or more joints.
In an embodiment, arm section 1212 1 -1212 n The set of movement data for one of the arm segments may include data representing an amount of movement or a rate of movement (e.g., velocity or acceleration) of the arm segment. The movement may be, for example, a rotation of the arm segment, a linear movement of the arm segment, or some other movement. In some cases, the amount or rate of movement may be measured relative to another component of robot 1200, such as another arm segment. For example, the position of this other arm section may be considered as a baseline position (or more generally, a reference frame) from which the amount of movement or rate of movement of the moving arm section is measured. In some cases, the amount of movement may be represented by a position or displacement of the moved arm segment, which may be relative to a baseline position, such as discussed above. If the movement involves rotation of one arm segment relative to a baseline position, that position or displacement may also be referred to as a rotational position, rotational displacement, or angular displacement, and may be measured in degrees or radians. In some casesIn this case, a positive value of the rotational position may indicate that the moving arm segment has rotated in one direction (e.g., counterclockwise) beyond the baseline position, while a negative value of the rotational position may indicate that the moving arm segment has rotated in the opposite direction (e.g., clockwise) beyond the baseline position.
In an embodiment, the set of one or more sensors 1220 can include a first set of sensors 1222 used to generate actuation data 1 、1222 2 、…1222 n And a second set of sensors 1224 to be used to generate movement data 1 、1224 2 、…1224 n As shown in fig. 1C. In some implementations, the first set of sensors 1222 1 -1222 n Can be placed in the arm section 1212 1 -1212 n At or otherwise associated with arm segment 1212 1 -1212 n And (7) corresponding. Similarly, a second set of sensors 1224 1 -1224 n Can also be placed in the arm section 1212 1 -1212 n At or otherwise associated with the arm segment 1212 1 -1212 n And (7) corresponding. In this example, a first set of sensors 1222 1 -1222 n Can generate a respective set of actuation data indicative of a plurality of arm segments 1212 1 -1212 n The force or torque at the respective arm section. In addition, a second set of sensors 1224 1 -1224 n Can generate a respective set of movement data indicative of a plurality of arm segments 1212 1 -1212 n The amount or rate of movement of the respective arm segment in (a). In some implementations, arm section 1212 1 -1212 n By an actuator 1230 1 -1230 n Driven or otherwise actuated, and a first set of sensors 1222 1 -1222 n May be associated with a plurality of actuators 1230 1 -1230 n A torque sensor or a current sensor of the respective actuator. If sensor 1222 1 -1222 n Is a current sensor, the sensor may be configured to measure a respective amount of current flowing through the sensor, which may be substantially equal to flowing through the plurality of actuators 1230 1 -1230 n The respective amount of current to the respective actuator. The amount of current flowing through the actuator may be used to calculate or otherwise determine the amount of total force or total torque experienced by the corresponding arm segment. This calculation can be by the computing system 1100 or by the sensor 1222 1 -1222 n It executes itself.
Fig. 2A provides a block diagram that illustrates an embodiment of a computing system 1100. The computing system 1100 includes at least one processing circuit 1110 and non-transitory computer-readable medium(s) 1120. In an embodiment, the processing circuitry 1110 includes one or more processors, one or more processing cores, a programmable logic controller ("PLC"), an application specific integrated circuit ("ASIC"), a programmable gate array ("PGA"), a field programmable gate array ("FPGA"), any combination thereof, or any other processing circuitry. In an embodiment, the non-transitory computer-readable medium 1120 may be a storage device, such as an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof, such as, for example, a computer floppy disk, a Hard Disk Drive (HDD), a Solid State Drive (SSD), a Random Access Memory (RAM), a Read Only Memory (ROM), an erasable programmable read only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, any combination thereof, or any other storage device. In some cases, the non-transitory computer-readable medium 1120 may include a plurality of storage devices. Non-transitory computer-readable medium 1120 may alternatively or additionally store computer-readable program instructions that, when executed by processing circuit 1110, cause processing circuit 1110 to perform one or more methods described herein, such as the operations described with respect to method 4000 shown in fig. 4.
Fig. 2B depicts a computing system 1100A, which is an embodiment of computing system 1100, and includes a communication interface 1130. The communication interface 1130 may be configured to provide a wired or wireless communication path between the computing system 1100A and the robot 1200, such as using the sensors (e.g., 1220) and/or actuators (e.g., 1230) discussed above. As an example, communicating electricityThe circuit can comprise an RS-232 port controller, a USB controller, an Ethernet controller,
Figure BDA0003286172500000141
A controller, a PCI bus controller, a network controller, any other communication circuit, or a combination thereof. If the computing system 1100A generates one or more movement commands, the communication interface 1130 may be configured to communicate the one or more movement commands to the actuator group 1230. Further, if sensor set 1220 generates sensor data, communication interface 1130 may be configured to receive sensor data (e.g., movement data and actuation data) from sensor set 1220. In such cases, the processing circuitry 1110 of the computing system 1100 may be configured to receive the sensor data directly or indirectly via the communication interface 1130.
In an embodiment, the processing circuit 1110 may be programmed by one or more computer-readable program instructions stored on the non-transitory computer-readable medium 1120. For example, fig. 2C illustrates a computing system 1100B, which is an embodiment of computing system 1100/1100A, wherein the processing circuitry 1110 is programmed by one or more modules, including a robot calibration module 1122, which may include computer-readable program instructions for performing robot calibration and/or for evaluating the accuracy and/or reliability of robot calibration results. For example, the robot calibration module 1122 may be configured to determine an error parameter value for a CoM estimate associated with a particular arm segment or a friction parameter estimate associated with a particular joint between arm segments, where the error parameter value may be a value of the error parameter discussed above. If the robot calibration module 1122 determines multiple CoM estimates or multiple friction parameter estimates, the module 1122 may determine multiple corresponding error parameter values for the multiple estimates. In various embodiments, the terms "computer-readable instructions" and "computer-readable program instructions" are used to describe software instructions or computer code that are configured to perform various tasks and operations. In various embodiments, the term "module" broadly refers to a collection of software instructions or code configured to cause the processing circuit 1110 to perform one or more functional tasks. When a processing circuit or other hardware component is executing a module or computer readable instructions, the module and computer readable instructions may be described as performing various operations or tasks.
In an embodiment, as shown in fig. 2C, the non-transitory computer-readable medium 1120 may store or otherwise include sensor data 1124 that may be used by the processing circuitry 1110 to perform robot calibration. The sensor data 1124 may include, for example, actuation data and movement data as described above. For example, fig. 2D depicts an example in which sensor data 1124 includes movement data 1127 and actuation data 1128. In some cases, the movement data 1127 and the actuation data 1128 may each include multiple sets of data, where each set of data describes movement associated with a respective arm segment, or describes a total force or torque at a respective joint at a respective arm segment or connecting an arm segment to another arm segment. In some cases, sensor data 1124 may have been generated by sensor group 1220 of FIG. 1B, and may have been received via communications interface 1130 of FIG. 2B. If the stored sensor data 1124 is used to perform a robot calibration operation, the non-transitory computer-readable medium 1120 may also store information 1126 (also referred to as robot calibration information 1126) determined to be a result of the robot calibration operation. The robot calibration information 1126 may describe one or more physical characteristics of a robot (e.g., 1200). For example, the robot calibration information may include respective estimates (also referred to as estimated values) of various parameters describing one or more physical characteristics of the robot. In some cases, the robot calibration information may describe a torque model, a force model, and/or a friction model. In an embodiment, the robot calibration information 1126 may include error parameter values that indicate the reliability and/or accuracy of the respective estimates discussed above, and/or the reliability or quality used to generate the respective estimated sensor data.
Fig. 3A-3D illustrate example environment(s) in which robot calibration may be performed, in accordance with various embodiments. Those skilled in the art will appreciate that fig. 3A-3D illustrate (one or more) a method for performing robot calibrationMultiple) environments, and existing components shown in fig. 3A-3D may be removed and/or additional components may be added to the environments. Fig. 3A presents a side view of robot 3200, robot 3200 may be an embodiment of robot 1200. Robot 3200 may include a robotic arm 3210 coupled to base 3202. In the example of fig. 3A, the robotic arm 3210 may include a plurality of arm segments 3212 1 、3212 2 、3212 3 、3212 4 、3212 5 And 3212 6 (also referred to as links) that may be coupled at a plurality of joints 3214 1 、3214 2 、3214 3 、3214 4 、3214 5 To (3). In the example of fig. 3A, the arm segment 3212 1 -3212 6 May be connected as a series of arm segments that may extend in a downstream direction, which may be a direction away from base 3202. In this example, the arm segment 3212 furthest downstream along the mechanical arm 3210 6 May be an end effector device (e.g., a mechanical gripper) and may form the distal end of the robotic arm 3210. That is, with respect to robot base 3202, arm segment 3212 6 May be the most distal arm section of the mechanical arm 3210.
In an embodiment, the joint 3214 1 -3214 5 The respective immediately adjacent pairs of arm segments may be directly coupled. For example, arm segment 3212 1 At joint 3214 1 Is coupled to an arm segment 3212 2 . In this example, the arm segments 3212 1 And arm segment 3212 2 May be considered to be in close proximity to each other because they are via joint 3214 1 Are directly coupled to each other. Joint 3214 1 May allow for a pair of arm segments 3212 1 、3212 2 Relative movement therebetween. In one example, the joint 3214 1 May be a revolute joint (or more generally, a pivot point) that allows for a pair of arm segments 3212 1 、3212 2 Or more particularly to allow relative rotation between the arm segments 3212 2 Relative to arm segment 3212 1 And (4) rotating. In this example, the other joints 3214 2 To 3214 5 Each may be directly connecting a respective pair of immediately adjacent arm sections and allowing for the passage of the pair of arm sections therebetweenRelative rotation of the rotary joint. For example, joint 3214 5 The arm segments 3212 may be directly connected to one another 5 And arm segment 3212 6 And allow arm segments 3212 6 Relative to arm segment 3212 5 And (4) rotating. In another example, the robotic arm 3210 may additionally or alternatively have a prismatic joint that allows relative linear motion (also referred to as relative lateral motion) between a pair of immediately adjacent arm segments.
As described above, the arm segment 3212 1 -3212 6 May be connected as a series of arm segments that may be moved in a downstream direction from arm segment 3212 1 To arm segment 3212 6 . Arm segment 3212 1 May be closest (also referred to as proximal) to the robot base 3202, while the arm segment 3212 6 May be furthest (i.e., also referred to as the furthest side) from the robot base 3202. The series of arm segments 3212 1 To 3212 6 A kinematic chain may be formed in which one arm segment (e.g., 3212) 3 ) Causes the downstream arm segment (e.g., 3212) 4 、3212 5 、3212 6 ) Is moved. Arm segment 3212 1 -3212 6 The series connection of (a) may also define a proximal end (or proximal direction) and a distal end (or distal direction). For example, arm segment 3212 1 -3212 6 Each of which may have a respective proximal end and a respective distal end. The proximal end may be closer to the robot base 3202, while the distal end may be further downstream such that it is further from the robot base 3202. As an example, the arm segments 3212 3 May have a portion connected directly to the arm segment 3212 2 And may have a proximal end connected directly to the arm segment 3212 4 The distal end of (a). Further, if the arm segment (e.g., 3212) 4 、3212 5 Or 3212 6 ) Is directly or indirectly connected to another arm segment (e.g., 3212) 3 ) The distal end of (e.g., 3212), then the preceding arm segment 4 、3212 5 Or 3212 6 ) Can be considered the latter arm segment (e.g., 3212) 3 ) The distal end of (a). Conversely, if the arm segment (e.g., 3212) 3 、3212 4 、3212 5 ) Is directly or indirectly connected to another arm section (e.g. aE.g., 3212 6 ) The proximal, then the preceding arm segment (e.g., 3212) 3 、3212 4 、3212 5 ) Can be considered the latter arm segment (e.g., 3212) 6 ) A proximal end. As another example, the arm segment 3212 3 May be considered relative to the arm segment 3212 2 And relative to arm segment 3212 1 While the arm segment 3212 1 And 3212 2 Can be considered relative to the arm segment 3212 3 The proximal arm section of (a).
In an embodiment, as shown in fig. 3B, robot 3200 may comprise a plurality of actuators 3330 1 、3330 2 、3330 3 、3330 4 And 3330 5 (which may be an actuator 1230) 1 To 1230 n Embodiments of (b) for causing the respective arm segment 3212 2 -3212 6 Or more particularly for causing relative movement between respective pairs of immediately adjacent arm sections. In some cases, multiple actuators 3330 1 To 3330 5 Can be respectively placed on the joints 3214 1 To 3214 5 At or near. In some implementations, actuator 3330 1 -3330 5 May be a wound joint 3214 1 -3214 5 An engine disposed and can be in the joint 3214 1 -3214 5 To output torque or force. Actuator 3330 1 To 3330 5 Each can output a corresponding force or torque for actuating the arm segment 3212 2 -3212 6 Relative to an adjacent arm segment (or relative to some other frame of reference). For example, actuator 3330 3 Can be placed in the joint 3214 3 At or near the joint 3214 3 Directly connecting a pair of arm segments 3212 3 、3212 4 . Actuator 3330 3 Can be arranged at a joint 3214 3 To output a torque that may cause the pair of arm segments 3212 3 、3212 4 Relative rotation between them. More specifically, the torque may cause the pair of arm segments 3212 3 、3212 4 Middle more distal arm segment 3212 4 With respect to the more proximal arm segment 3212 of the pair of arm segments 3 Rotate. In addition, arm segment 3212 4 May surround the joint 3214 3 And (4) rotating. In an embodiment, actuator 3330 1 -3330 5 A motor (e.g., an electric and/or magnetic motor), a pump (e.g., a hydraulic or pneumatic pump), some other actuator, or a combination thereof may be included.
In an embodiment, robot 3200 may include a set of sensors used to generate sensor data that may be used to perform robot calibration. For example, as shown in fig. 3C, robot 3200 may include a first set of sensors 3222 used to generate actuation data 1 、3222 2 、3222 3 、3222 4 And 3222 5 And a second set of sensors 3224 used to generate movement data 1 、3224 2 、3224 3 、3224 4 And 3224 5 . More specifically, the first set of sensors 3222 1 -3222 5 (which may be a sensor 1222) 1 To 1222 n Embodiments of (a) each may be configured to generate a plurality of arm segments 3212 2 -3212 6 A respective set of actuation data relating to actuation of the respective arm segment in (a). More specifically, a set of actuation data for a particular arm segment may measure a parameter indicative of a force or torque exerted on or experienced by that arm segment. For example, sensor 3222 1 Corresponding arm segments 3212 may be generated 2 Relative to arm segment 3212 1 And vice versa, while the sensor 3222 2 Corresponding arm segments 3212 may be generated 3 Relative to arm segment 3212 2 Or vice versa. As another example, sensor 3222 3 Corresponding arm segments 3212 may be generated 4 Relative to arm segment 3212 3 And vice versa, while the sensor 3222 4 Corresponding arm segments 3212 may be generated 5 Relative to arm segment 3212 4 Or vice versa.
In an embodiment, sensor 3222 1 -3222 5 May be or may include a force sensor or torqueSensors, each of which is configured to directly measure the joint 3214 1 -3214 5 Or more specifically the arm segments 3212 connected at the joints 2 -3212 6 The total force or torque on. In an embodiment, sensor 3222 1 -3222 5 A current sensor or a voltage sensor configured to measure current or voltage may be included. In one example, sensor 3222 1 -3222 5 May be configured to measure flow through the actuator 3330 1 -3330 5 A current sensor for detecting the amount of current flowing in the current sensor. In this example, sensor 3222 1 -3222 5 May be associated with the actuator 3330 1 -3330 5 Are electrically connected in series. The sensor may measure the amount of current flowing through itself, which may be equal or substantially equal to the amount of current provided to, drawn by, or otherwise flowing through the respective actuator. The amount of current flowing through the actuator may be indicative of the total force or total torque at the corresponding joint at which the actuator is located. In some cases, the joint or arm segment at the joint may act as a mechanical load driven by the actuator, and the amount of current flowing through the actuator may depend on how much voltage is provided to activate the actuator and on the characteristics of the mechanical load, such as whether the load is affected by a torque other than that provided by the actuator (e.g., a torque caused by gravity), and/or whether movement of the load is impeded by another torque (e.g., a resistive torque due to friction). By way of example, sensor 3222 4 Can measure flow through the actuator 3330 4 May indicate the joint 3214 4 Or more specifically, the arm segment 3212 5 Or arm segment 3212 4 Total force or total torque (for opposing the joint 3214 4 The pivot point provided rotates arm segment 3212 5 And/or 3212 4 )。
In some cases, by sensor 3222 1 -3222 5 The generated actuation data may have a value equal to how much current there isFlows through the corresponding actuator 3330 1 -3330 5 . In such cases, the computing system 1100 may be configured to calculate or otherwise determine a value for the total torque or total force based on the value of the current represented by the actuation data. In some cases, sensor 3222 1 -3222 5 It may be configured to calculate or otherwise determine a value for the total torque or total force and provide the torque value or force value as part of the actuation data. The calculation may be based on, for example, a defined relationship (e.g., a predefined relationship) between the current and the total torque or force, such as a relationship in which the total torque is equal to or based on a defined constant (which may be referred to as a torque constant) multiplied by the current. Thus, the computing system 1100 may be configured to determine the torque constant by multiplying by the sensor 3222 1 -3222 5 The above calculation of the total torque is performed by the measured current value. In some implementations, computing system 1100 (and/or sensors 3222) 1 -3222 5 ) Stored actuator information may be accessed, which may provide a value for the torque constant. For example, the torque constant may be a value stored in the non-transitory computer readable medium 1120.
As described above, the second set of sensors 3224 in FIG. 3C 1 -3224 5 A corresponding set of movement data may be generated. In some implementations, the second set of sensors 3224 1 -3224 5 May be respectively disposed at the joints 3214 1 -3214 5 At or near. By the sensor 3214 1 -3214 5 The respective sets of movement data generated may measure or otherwise describe the arm segments 3212, respectively 2 -3212 6 Or more specifically, the joint 3214 1 -3214 5 Relative movement between connected respective pairs of arm segments. For example, sensor 3224 5 The arm segments 3212 may be measured or otherwise described 6 Relative to joint 3214 5 And relative to arm segment 3212 5 Or more specifically by joint 3214 5 Directly connected, immediately adjacent pair of arm segments 3212 6 、3212 5 Relative movement therebetween. In the above example, the arm segments 3212 6 May be the more distal arm segment of the pair, and arm segment 3212 5 May be the more proximal arm section of the pair. As another example, sensor 3224 4 The arm segments 3212 may be measured or otherwise described 5 Relative to joint 3214 4 And relative to arm segment 3212 4 Is moved.
In embodiments, the movement data may measure or otherwise describe an amount of movement or a rate of movement of the arm segment. The amount or rate of movement may be measured relative to a baseline position, such as the position of the joint to which the arm segment is connected, the position of the arm segment before it begins to move, the position of the proximal arm segment immediately adjacent to the moving arm segment, or some other baseline position (also referred to as a reference position). In some cases, the amount of movement may refer to the position of the arm segment relative to the baseline position. If the movement involves rotation of the arm segment, the amount of movement (or more specifically, the amount of rotation) may in some cases refer to a rotational position (also referred to as an angular position, rotational displacement, or angular displacement) of the arm segment. The rotational position of the arm segment may be measured relative to a baseline position. As an example, fig. 3D shows an arm segment 3212 5 Relative to joint 3214 4 And opposite to the arm segment 3212 4 And extends around and through joint 3214 4 In which the joint 3214 rotates, is a case where the rotation axis a of (b) rotates 4 The two arm sections may be directly connected. In this example, the arm segment 3212 5 May be indicated by an angle theta, which measures the arm segment 3212 5 How much has been rotated relative to the baseline position. As described above, various positions may be used as baseline positions. In one example, as in arm segment 3212 in fig. 3E 4 And 3212 5 The baseline position may be the arm segment 3212, as shown in the simplified diagram of 5 At arm segment 3212 5 Relative to the joint 3214 4 And relative to arm segment 3212 4 A position 3510 (e.g., the orientation of the arm segment) at rest, such that the angle θ of the rotational position can be measured from the position 3510. In fig. 3E, the baseline position 3510 may form an angle a (e.g., a non-zero angle) with the horizontal position. More specifically, the position associated with the baseline position 3510An angle alpha may be formed with the horizontal orientation, which may be an orientation perpendicular to the direction of gravity. The angle alpha is discussed in more detail below.
In embodiments, the movement data may measure or otherwise describe an arm segment (e.g., 3212) 5 ) The rate at which it is rotating or otherwise moving. The rate of movement may be measured relative to the baseline position discussed above. In some cases, one arm segment surrounds a joint (e.g., 3214) 4 ) May be relative to the joint or to an immediately adjacent arm segment (e.g., 3212) 4 ) To measure. In some implementations, the rate of movement may refer to a velocity, speed, or acceleration (e.g., a rate of rotation, or a rotational acceleration). In this example, the rotation rate may refer to the magnitude of the rotation speed, while the rotation speed may also describe the direction of rotation (e.g., clockwise or counterclockwise). In an embodiment, the computing system 1100 may be configured based on the presence of sensors 3224 1 -3224 5 The generated movement data to determine additional movement data. For example, if sensor 3224 is used 1 -3224 5 Directly measuring the rotational position and providing the measurement in the movement data, the computing system 1100 may be configured to determine the rotational speed and/or the rotational acceleration based on the rotational position (e.g., as a time-based derivative of the rotational position). In an embodiment, the second set of sensors 3224 1 -3224 5 An angular displacement sensor, a linear displacement sensor, other sensors configured to generate movement data, or a combination thereof may be included.
As described above, one aspect of the present disclosure relates to assessing the accuracy, quality or reliability of robot calibration, or more specifically the accuracy, quality or reliability of models and/or sensor data used to perform robot calibration and/or estimates determined from robot calibration (e.g., friction parameter estimates, coM estimates or estimates of some other physical characteristic). In some cases, the evaluation may be based on an error parameter indicative of a deviation between the actuation prediction data value and the actuation test data value, as discussed in more detail below. Fig. 4 depicts a flow diagram of an example method 4000 for determining a value of such an error parameter (which value may also be referred to as an error parameter value). In some cases, method 4000 may be performed as part of a robot calibration operation. Those skilled in the art will appreciate that fig. 4 illustrates one example of a method for determining a value of an error parameter (and more generally for performing the evaluation discussed above), and that other example methods for performing this evaluation may have fewer steps, more steps, and/or different steps than method 4000. In an embodiment, the method 4000 may be performed by the computing system 1100, or more specifically at least by the processing circuitry 1110 of the computing system 1100, such as when the processing circuitry 1110 is executing instructions stored on the non-transitory computer-readable medium 1120 (e.g., instructions of the robot calibration module 1122).
In an embodiment, some or all of the steps of method 4000 may be performed multiple times, where the multiple times may correspond to multiple iterations. While the following discussion regarding the steps of method 4000 may show one iteration of those steps, additional iterations may be performed. Each iteration may be used to determine a respective error parameter value for a particular component (such as an arm segment or joint) for which the robot calibration is performed, or for a particular set of estimated values or other information determined from the robot calibration. For example, one iteration or set of iterations may be performed during one time period to determine respective error parameter values for the CoM estimate and the friction parameter estimate associated with a particular arm segment, a particular joint, or a particular pair of immediately adjacent arm segments connected by a joint, while a next iteration or set of iterations may be performed during another time period to determine respective error parameter values for the CoM estimate and the friction parameter estimate associated with another arm segment, another joint, or another pair of arm segments connected by another joint. In an embodiment, the steps of method 4000 may be performed during one time period to determine one error parameter value, and some or all of the steps may be repeated during another time period to determine another error parameter value.
In an embodiment, a method4000 may begin or otherwise include step 4002, where computing system 1100 divides sensor data (such as sensor data 1124 of fig. 2C) into training data and test data. In some cases, sensor data (e.g., 1124) may be stored on computing system 1100 (such as non-transitory computer-readable medium 1120), or may be stored elsewhere. The stored sensor data (e.g., 1124) may include, for example, stored movement data (e.g., 1127) and stored actuation data (e.g., 1128). The sensor data can be provided by one or more sensors (such as sensor 1222 of fig. 1C and 3C) 1 -1222 n Or 3222 1 -3222 5 And a sensor 1224 1 -1224 n Or 3224 1 -3224 5 ) And (4) generating. For example, if method 4000 includes steps for determining and targeting arm segments 3212 5 Or joint 3212 4 An iteration of robot calibration associated error parameter values to estimate one or more physical properties thereof is performed, then sensor data in that iteration may include, for example, sensor 3222 4 A set of actuation data generated and including data generated by, for example, sensor 3224 4 The generated set of movement data. If method 4000 includes a method for determining a joint to another arm segment or another joint (such as arm segment 3212) 4 Or joint 3214 3 ) Another iteration of error parameter values associated with robot calibration is performed, then the sensor data in that iteration may include data from, for example, sensor 3222 3 A set of actuation data generated and including data generated by, for example, sensor 3224 3 The generated set of movement data.
In some implementations, the method 4000 may include one or more steps, which may be performed by the computing system 1100 prior to step 4002, for obtaining or otherwise receiving sensor data. For example, the one or more steps may involve the computing system 1100 generating a set of one or more movement commands for connecting the first arm segment (e.g., 3212) via direct connection 5 ) And a second arm segment (e.g., 3212) 4 ) Is connected (e.g., via 3214) 4 ) To cause relative movement between the two arm sections, which may be in close proximityThe arm section of (a). In some cases, the one or more movement commands may be used to activate a first actuator of a plurality of actuators (e.g., 3330) 4 ) And may be output or otherwise communicated to a first actuator (e.g., 3330) by computing system 1100 via communication interface 1130 of fig. 2B 4 ). For example, if the first actuator (e.g., 3330) 4 ) Is an engine, then the one or more movement commands may each be an engine command for activating the engine. The move command is discussed in more detail in U.S. patent application No. 17/243,939 (MJ 0062-US/0077-0015US 1), entitled "METHOD AND COMPATITING SYSTEM FOR ESTIMATING PARAMETERS FOR ROBOT OPERATION," which is incorporated herein by reference in its entirety. When the actuator (e.g. 3330) 4 ) Upon receiving the one or more movement commands, the actuator may output motion, or more specifically, force or torque, at the joint to cause motion at the joint. As described above, motion at a joint may refer to the joint itself moving (e.g., rotating), or the joint (e.g., 3214) 4 ) Two arm segments directly connected (e.g., 3212) 4 、3212 5 ) Relative rotation between them.
For example, fig. 5A and 5B illustrate a linkage comprising an arm segment 3212 5 Via joint 3214 4 Relative to the arm segment 3212 4 Rotational movement, joint 3214 4 The two arm sections are directly coupled. The movement may be by activating an actuator 3330 4 Is caused by one or more movement commands, the actuator 3330 4 The possible outputs may be applied to the arm segments 3212 5 Or joint 3214 4 A torque or force. The motion may include arm segments 3212 5 And a downstream arm segment 3212 6 Relative to arm segment 3212 4 Rotates in a counterclockwise direction (as shown in fig. 5A) and includes an arm segment 3212 5 And a downstream arm segment 3212 6 Relative to the arm segment 3212 4 Rotating in a clockwise direction (as shown in fig. 5B). More specifically, the arm segment 3212 in fig. 5A 5 Can be rotated in a counterclockwise direction from a starting position to an intermediate position, and the arm segment 3212 in fig. 5B 5 May be in opposite directions from a neutral positionThe rotation is set to the end position.
In an embodiment, one or more sensors (e.g., sensor 3222) 4 And 3224 4 ) A set of actuation data, a set of movement data, and/or other sensor data may be generated during a period of time in which motion occurs between the arm segments. In some cases, the set of actuation data may be indicative of arm segments or joints involved in the motion (such as arm segment 3212) 5 And joint 3214 4 ) The force or torque experienced. As an example, fig. 6A depicts representations at arm segments 3212 5 Via joint 3214 4 Relative to the arm segment 3212 4 By the sensor 3222 during a period of rotation 4 A plot of the generated actuation data. The actuation data in the graph may indicate the joint 3214 4 Relative to the joint 3214 4 Applied to the arm segment 3212 5 The total torque of the motor. The figure also depicts various points in time, e.g. t, within the period of time in which the motion occurs Start of And t End up . In this example, t Start of May represent the beginning of the time period in which the total torque may cause the arm segment 3212 5 From the starting position of fig. 5A toward the middle position of the figure. At t End of Here, the immediately adjacent arm segment 3212 5 、3212 4 The relative rotation therebetween may be stopped. In the example of fig. 6A, the actuation data may be a function of time. More specifically, the actuation data may include a plurality of actuation data values, which may correspond to a plurality of different points in time. The positive actuation data values in fig. 6A may represent the total torque in a first direction (e.g., counterclockwise), while the negative actuation data values in the figure may represent the total torque in a second direction (e.g., clockwise).
In an embodiment, the sensor is comprised of one or more sensors (such as sensor 3224) 4 ) The generated set of movement data may describe relative rotation or other motion. For example, the set of movement data may describe the arm segment 3212 5 Via a joint 3212 4 Relative to the immediately upstream arm segment 3212 4 Amount of movement or rate of movement. In some implementations, the movement data may include a plurality of movement data valuesThe movement data values may include rotational position values, rotational velocity values, and/or rotational acceleration values. As an example, the amount of movement may be by the arm segment 3212 5 Is represented by a rotational position or displacement. More specifically, fig. 6B shows movement data indicating arm segments 3212 as a function of time 5 The rotational position of (a). In this example, the rotational position or displacement may be measured relative to a baseline position (such as baseline position 3510). A positive value of rotational position may refer to a position on one side of the baseline position (e.g., above the baseline position), while a negative value of rotational position may refer to a position on the other side of the baseline position (e.g., below the baseline position).
If the movement data indicates a rate of movement, the rate of movement may be represented by a rate of rotation, or an acceleration of rotation. More specifically, fig. 6C shows an arm segment 3212 5 Relative to the baseline position 3510, relative to the arm segment 3212 4 Or the rotational speed relative to some other reference frame. A positive value of the rotational speed may refer to rotation in a first direction (e.g., counterclockwise) and a negative value of the rotational speed may refer to rotation in a second direction (e.g., clockwise).
FIGS. 6B and 6C depict a point in time t within a period of time during which rotation occurs Start of And t End up And also depicts an additional point in time t Deceleration _ Point 1 、t Direction _ transition 、t Deceleration _ Point 2 . At t Start of Arm segment 3212 5 Acceleration in a counterclockwise direction may begin to cause arm segment 3212 5 Rotated from the start position of fig. 5A to an intermediate position. At t Deceleration _ Point 1 Arm segment 3212 5 The rotation in the counter-clockwise direction may continue, but the magnitude of the rotational acceleration and rotational speed in that direction may begin to decrease. At t Direction _ transition Here, an arm section 3212 5 The neutral position can be reached and paused or temporarily stopped, and then the direction of rotation reversed to the clockwise direction. At this time, the magnitudes of the rotational acceleration and the rotational speed may start to increase in a clockwise direction to cause the arm segment 3212 5 From the intermediate position to the end position of fig. 5B. At t Deceleration _ Point 2 Arm segment 3212 5 The rotation in the clockwise direction may continue, but the magnitude of the rotational acceleration and the rotational speed may decrease. At t End up Arm segment 3212 5 The end position of fig. 5B may be reached and the magnitude of the rotational speed may have been reduced to zero.
In embodiments, the computing system 1100 may receive actuation data, movement data, and/or other sensor data generated by one or more sensors and store the sensor data in the non-transitory computer-readable medium 1120. 7A-7C illustrate examples of actuation data and movement data. More specifically, fig. 7A shows an example in which movement data includes indicating arm segments in degrees or radians (such as arm segment 3212) 5 ) A plurality of values of the rotational position of (e) θ (t) 1 ) To theta (t) z ). Value [ mathematical symbol 1]θ(t 1 ) To [ mathematical symbol.2 ]]θ(t z ) Also called rotational position value or more generally movement data value, and may correspond to a respective point in time t 1 To t z And may be relative to, for example, the baseline position 3510 of fig. 5A and 5B. As an example, the rotational position value θ (t) 1 ) To theta (t) z ) May be the value represented by the graph of fig. 6B. In such an example, t 1 May correspond to t Start of And t is z May correspond to t End up
Also in this example, the actuation data may include an indication of an application at a joint or arm segment (such as joint 3214) 4 Or arm segment 3212 5 ) A plurality of values of total torque τ (t) of 1 ) To τ (t) z ). These values τ (t) 1 ) To τ (t) z ) May also be referred to as torque values, or more generally actuation data values, and may correspond to respective points in time t 1 To t z . Therefore, the rotational position value θ (t) 1 ) To theta (t) z ) May correspond to torque values τ (t), respectively 1 ) To τ (t) z ). As described above, in some cases, the actuation data may be indirectly indicative of the total force or total torque at the arm segment or joint. For example, FIG. 7B shows an example where actuation data and flow through are used to either segment or close an armCorresponding actuators (e.g., 3330) outputting torque or force at a node 4 ) Current c (t) of 1 ) To c (t) z ) The value of (c) is measured proportionally/directly. In such a case, the computing system 1100 may be configured to base the measured current value c (t) on 1 ) To c (t) z ) To determine the torque value tau (t) 1 ) To τ (t) z ). FIG. 7C provides another example of sensor data, or more specifically, a value directly indicative of rotational speed
Figure BDA0003286172500000261
To
Figure BDA0003286172500000262
Another example of movement data. These values may also be referred to as spin speed values or, more generally, movement data values. In embodiments, the various examples of sensor data in fig. 7A-7C may be combined. For example, the actuation data of fig. 7B may be combined with the movement data of fig. 7C.
As described above, step 4002 may involve dividing the sensor data into training data and test data. In an embodiment, the sensor data may be divided by selecting movement training data (also referred to as movement-related training data) and corresponding actuation training data (also referred to as actuation-related training data) as training data, and by selecting movement test data (also referred to as movement-related test data) and corresponding actuation test data (also referred to as actuation-related test data) as test data. In other words, the training data may include movement training data and actuation training data, and the test data may include movement test data and actuation test data. For example, fig. 8A depicts an example in which the sensor data of fig. 7A is divided into training data and test data. The training data may include mobile training data θ Training And actuating the training data τ Training And the test data may include movement test data theta Testing And actuating the test data τ Testing of . As shown in FIG. 8A, the movement training data θ Training May be the set of mobile data (where the set isIncluding a movement data value theta (t) 1 ) To theta (t) z ) And the movement test data may be a second subset of the set of movement data. The actuation training data may be the set of actuation data (where the set may include an actuation data value τ (t) 1 ) To τ (t) z ) ) and the actuation test data may be the set of actuation data τ (t) 1 ) To τ (t) z ) A second subset of (a). In some implementations, the subsets may not overlap.
The sensor data may be partitioned in a number of ways. In one example, computing system 1100 may select a first half of continuous values of movement data as movement training data and a second half of continuous values of movement data as test data. The actuation training data and the actuation test data may be selected in a similar manner. In another example, computing system 1100 may select every other value of movement data as movement training data and select the remaining values of movement data as test data, and select actuation training data and actuation test data in a similar manner. In another example, FIG. 8A depicts the computing system 1100 selecting a rotational position value θ (t) to include 1 ) To theta (t) z ) The movement training data of (1). In this example, the computing system may select the rotational position value θ (t) 1 ) To theta (t) a ) And a rotational position value theta (t) b+1 ) To theta (t) c ) As training data, wherein these values may form a first subset of movement data. Similarly, the computing system 1100 may select the actuation training data to include the torque value τ (t) 1 ) To τ (t) a ) And torque value τ (t) b+1 ) To τ (t) c ) Which may form a first subset of actuation data. In addition, computing system 1100 may select movement test data to include rotational position value θ (t) a+1 ) To theta (t) b ) And a rotation position value θ (t) c+1 ) To theta (t) z ) Which may form a second subset of the mobile data. Similarly, the computing system 1100 may select the actuation test data to include the torque value τ (t) a+1 ) To τ (t) b ) And the torque value tau (t) c+1 ) To τ (t) z ) Which may form a second subset of actuation data.
In another example of partitioning sensor data, the computing system 1100 may partition the sensor data in a symmetric manner with respect to the position values and velocity values indicated by the movement data (or more specifically with respect to the relationship between position and velocity). For example, the relationship may refer to a ratio between the rotational speed and the rotational position. More specifically, fig. 8B depicts a coordinate system (e.g., a polar coordinate system) that describes rotational position values and rotational velocity values. The rotational position value and the rotational velocity value may be part of or derived from the movement data. For example, movement data stored in the non-transitory computer-readable medium 1120 may include a rotational position value, and the computing system 1100 may determine that the rotational speed value is equal to or based on a time-based derivative of the rotational position value. The figure also depicts an imaginary line 801 and an imaginary line 803 that may divide the coordinate system into symmetric regions 812, 821, 813, 831, 814, 841, 815, and 851. In an embodiment, the imaginary line 801 may represent a defined ratio threshold between rotational speed and rotational position, such as a ratio [ mathematical sign.3 ]]
Figure BDA0003286172500000271
Or
Figure BDA0003286172500000272
In an embodiment, the computing system 1100 may select a particular movement data value as training data or test data based on which region the movement data value is located in. More specifically, the movement data value may include a rotational position value and/or a corresponding rotational velocity value. For example, the movement data value may include a rotational position value, and the computing system may determine a rotational speed value based on the rotational position value. The computing system 1100 may determine whether to select a movement data value as training data or test data based on which region a combination of rotational position values and corresponding rotational speed values are located. In some implementations, the computing system 1100 may make this determination based on a ratio between the rotational speed value and the rotational position value. For example, the imaginary line 801 may divide one quadrant of the coordinate system into a pair of regions 812, 821 that are symmetric to each other. Zone(s)The field 812 may represent movement data values for which the respective ratios between their rotational velocity values and corresponding rotational position values are within a defined ratio threshold (e.g., [ mathematical symbol.4 ])]
Figure BDA0003286172500000281
) Extending to within the definition of 0. The defined ratio threshold may be a positive or negative value (i.e., a positive or negative ratio threshold) and may be represented by the slope (e.g., -1) of the imaginary line 801. The defined ratio threshold may be stored or otherwise predefined within the non-transitory computer-readable medium 1120, or may be dynamically defined or otherwise determined by the computing system 1100. In some cases, the values defined in this disclosure may be manually defined and stored in the non-transitory computer-readable medium 1120, or may be dynamically defined by the computing system 1100, and may also be stored in the non-transitory computer-readable medium 1120, or may be discarded after use. In fig. 8B, area 821 may represent movement data values for which the respective ratios between the rotational velocity values and the corresponding rotational position values are less than a defined ratio threshold (e.g., less than-1). Thus, in this example, if the movement data value has a ratio between the corresponding rotational speed value and the corresponding rotational position value that is within a range extending from a defined ratio threshold (e.g., -1) to 0, the movement data value may be selected as training data. The corresponding actuation data value may also be selected as training data (wherein the corresponding actuation data value may be an actuation data value describing the same point in time as the movement data value). If the ratio of the movement data values is less than a defined ratio threshold, the movement data values may be selected as test data.
As another example, the imaginary line 803 may divide another quadrant of the coordinate system into a pair of regions 813, 831 that are symmetrical to each other. In this example, movement data values that fall within region 831 may be selected as movement training data, while movement data values that fall within region 813 may be selected as test data. Region 813 may represent movement data values for whichThe respective ratio between its rotational speed value and the corresponding rotational position value extends from 0 to another defined ratio threshold (e.g., [ mathematical sign.5 ]]
Figure BDA0003286172500000291
) And region 831 may represent movement data values for which the respective ratio between the rotational speed value and the corresponding rotational position value is greater than a defined ratio threshold (e.g., greater than 1). The ratio threshold defined in this example may be represented by the slope of line 803. Thus, in this example, if a movement data value has a ratio between the corresponding rotational speed value and the corresponding rotational position value that is within a range extending from 0 to a defined ratio threshold (e.g., 1), then the movement data value may be selected as test data. If the movement data value has a ratio greater than a defined ratio threshold (e.g., greater than 1), the movement data value may be selected as training data. Partitioning the sensor data in the manner described above may result in symmetric training data and test data, which may facilitate more accurate estimation of parameters based on the training data and/or facilitate more accurate evaluation of estimated parameters using the test data.
Returning to FIG. 4, in an embodiment, method 4000 may include step 4004, where computing system 1100 may be based on mobile training data (e.g., θ) Training ) And actuation training data (e.g., τ) Training ) Determining at least one of: (i) With a pair of arm segments (e.g., 3212) that undergo relative motion as measured by sensor data 5 、3212 4 ) A friction parameter estimate associated with the friction between, or (ii) one of the pair of arm segments (e.g., 3212) 5 ) An associated centroid (CoM) estimate. In some implementations, the friction parameter estimate may be an estimate of the viscous friction coefficient or an estimate of coulomb friction.
9A-9C illustrate examples of how a friction parameter estimate may be determined based on actuation training data and movement training data. More specifically, fig. 9A is an illustration of a combination of: (i) Training data tau by actuation Training The value of indicated total torque and (ii) the motion training data θ Training The value of the indicated corresponding rotational speed (e.g., the rotational speed value may be θ) Training A time-based derivative of the rotational position value in (1). Each combination of values may include a value representing a joint at a respective point in time described by the training data (e.g., 3214) 4 ) A first value of the total torque at (a), and a second value representing the rotational speed at that point in time. For example, the first value may indicate relative to the second arm segment (e.g., 3212) at, for example, a particular point in time 4 ) Of (e.g., 3212) 5 ) And the second value may be indicative of a rotational speed between the first arm section and the second arm section at the point in time. The combination of values plotted in fig. 9A may correspond to, for example, the rotations shown in fig. 5A and 5B and the sensor data shown in fig. 6A-6C. For example, FIG. 9A shows movement training data and actuation training data indicating that the rotational speed is from t Start of To t Deceleration _ Point 1 Increases in magnitude in a first direction (e.g., counterclockwise) and then increases in magnitude from t Deceleration _ Point 1 To t Direction _ transition Then transition from a first direction to a second direction (e.g., clockwise) and at a time t from Direction _ transition To t Deceleration _ Point 2 During a time period of (a) in a second direction, and then at a time t from Deceleration _ Point 2 To t End up The amplitude during the time period of (a) decreases.
In an embodiment, the total torque represented by the actuation training data may be based on torque from two adjacent arms (e.g., 3212) 5 And 3212 4 ) Of the actuator in between. In an embodiment, the total torque may be based on contributions from friction. More specifically, in some cases, the total torque may be described by an example equation:
τ = contribution from actuator + contribution from gravity + contribution from friction (1)
In the above equation, τ refers to the joint (e.g., 3214) 4 ) Total torque on, and possibly etcOn or from self-actuated training data tau Training . In this example, the contribution from the actuator may refer to the contribution by the actuator (e.g., 3330) 4 ) The torque or force output. For example, this contribution from the actuator may be given by the term [ mathematical sign.6 ]]
Figure BDA0003286172500000301
Is represented by [ mathematical symbols.7 ]]
Figure BDA0003286172500000302
Represents a first arm segment (e.g., 3212) 5 ) Relative to the second arm segment (e.g., 3212) 4 ) And wherein I is the moment of inertia of the first arm segment. In an embodiment, the contribution from gravity may refer to the torque caused by the weight of downstream segments (such as the first arm segment and the end effector device), where the torque is relative to the torque caused by the joint (e.g., 3214) 4 ) The pivot point provided is functional. For example, the contribution from gravity may be represented by the terms mgrcos θ or mgrsin θ, where θ represents the rotational position of the downstream segment relative to the gravity vector, and mg represents the weight contribution of the downstream segment. More specifically, m represents the mass of the downstream segment, and g represents the gravitational acceleration (e.g., 9.8 m/sec) 2 ). In this example, r represents the distance between the center of mass (CoM) of the first arm segment and the joint. In some implementations, the value of mass m or weight mg may be a known value stored in the non-transitory computer readable medium 1130.
In an embodiment, the contribution from friction may refer to how much resistance is provided by friction to the movement or change in movement of the first arm section relative to the second arm section or relative to the joint connecting the two arm sections. In some cases, the contribution from friction may be expressed as [ mathematical sign.8]
Figure BDA0003286172500000311
Where s represents the amount of static friction (also known as coulomb friction) between the first arm section and the second arm section, [ mathematical symbol.9]
Figure BDA0003286172500000312
Represents the rotational speed of the first arm section relative to a reference frame provided by the second arm section, and b represents the viscous friction coefficient between the first arm section and the second arm section. In such a case, the static friction may remain constant during the relative rotation between the first arm section and the second arm section, while the magnitude of the viscous friction may increase as the magnitude of the rotational speed increases.
In embodiments, computing system 1100 may be configured to derive training data τ from actuations Training Effectively extracting or otherwise determining a contribution from friction, which may also be referred to as a friction component of the total torque. For example, fig. 9B and 9C show combinations of values of the friction component representing the total torque at various time points. These values of the friction component of the total torque may be combined with the values of the rotational speed. In some cases, if the contribution of the actuator and the contribution of gravity are known, the computing system 1100 may be configured to extract the friction component of the total torque by subtracting the contribution of the actuator and the contribution of gravity from the total torque indicated by the actuation training data. For example, if computing system 1100 has previously determined an estimate of I (representing moment of inertia) or an estimate of r (representing CoM), computing system 1100 may use these estimates and values [ mathematical symbols.10 ] provided by or derived from mobile training data]θ、
Figure BDA0003286172500000313
To determine the contribution from the actuator (which can be estimated as [ mathematical sign.11 ]]
Figure BDA0003286172500000314
) And a contribution from gravity (which can be estimated as mgrcos θ). The computing system 1100 may then subtract the contribution of the actuator and the contribution of gravity from the total torque to extract the contribution of friction. In some cases, computing system 1100 may effectively extract the friction component by solving a set of simultaneous equations that relate total torque to friction, as discussed in more detail below.
As shown in fig. 9C, a computing system1100 may be configured to determine a friction parameter estimate using a relationship between a friction component of the total torque (which may be extracted from the actuation training data) and a rotational speed (which may be provided by or extracted from the movement training data). More specifically, the friction between the two arm sections may include static friction and viscous friction. As discussed above, in some cases, static friction may be expressed as a constant(s) and viscous friction may be expressed as a linear function of rotational speed ([ mathematical sign.12)]
Figure BDA0003286172500000321
) So that the friction component of the total torque can be approximated by [ mathematical sign.13 ]]
Figure BDA0003286172500000322
In such a case, the computing system 1100 may apply a linear fit to the combination of values in fig. 9C (which represents the frictional component of the total torque). More specifically, the computing system 1100 may determine a line 9500A and/or 9500B that fits through (fit through) or otherwise approximates a combination of the values of fig. 9B and 9C. Line 9500A or 9500B may represent the above expression [ mathematical symbol.14]
Figure BDA0003286172500000323
More specifically, computing system 1100 can determine that the coefficient of viscous friction (B) is equal to or based on the slope of line 9500A or 9500B (or as an average of the respective slopes of these lines), and determine that the static friction(s) is equal to or based on the height of line 9500A or 9500B (e.g., equal to Y- intercept 9501A or 9501B, or an average of their magnitudes).
As described above, the computing system 1100 may be configured to efficiently extract the friction component by solving a set of simultaneous equations that relate total torque to friction. As described above, the total torque τ may be based on the contribution from the actuator, the contribution from gravity, and the contribution from friction. In one example, the total torque may be based on the following more specific relationship [ mathematical symbol.15 ]:
Figure BDA0003286172500000327
Figure BDA0003286172500000325
in this example, the value of the parameter τ may be provided by or derived from the actuation training data. Parameter [ mathematical sign.16 ]]θ、
Figure BDA0003286172500000326
(which may represent rotational position, rotational velocity, and rotational acceleration, respectively) may be provided by or derived from movement training data. Also as discussed above, parameter I represents the moment of inertia and parameter mg represents the arm segment (e.g., 3212) 5 ) And the parameter r represents the CoM of the arm segment and the joint (e.g., 3214) to which the arm segment is connected 4 ) The parameter s represents the static friction amount, and the parameter b represents the viscous friction coefficient. In the above example, α may be the angle between the baseline position and the horizontal direction, as shown in fig. 3E. Furthermore, sign ([ mathematical symbol.17 ]]
Figure BDA0003286172500000331
) The function may be used to represent static friction having a direction opposite to the direction of motion. More specifically, sign ([ mathematical symbol.18)]
Figure BDA0003286172500000332
) Function in [ mathematical sign.19 ]]
Figure BDA0003286172500000333
May have a value of 1 for timing, in [ mathematical sign.20 ]]
Figure BDA0003286172500000334
May have a value of-1 when negative, in [ mathematical sign.21 ]]
Figure BDA0003286172500000335
And may have a value of 0 when 0.
In embodiments, the computing system 1100 may be configured to use the above relationship to generate a set of equations corresponding to different points in time represented by the training data, or more generally, to different combinations of: (i) A torque value from the actuation training data and (ii) a position, velocity, or acceleration value from the movement training data. For example, the computing system 1100 may be configured to generate the following system of equations, which may be represented as a matrix [ mathematical symbol.22 ]:
Figure BDA0003286172500000336
in the above example, [ mathematical symbol.23]τ Training 1 、τ Training _2 、……τ Train _ n May correspond to different torque values provided by or derived from the actuation training data. For example, if the actuation training data is from the example of FIG. 8A, then [ mathematical symbol.24]τ Training 1 Can be equal to [ mathematical symbol.25 ]]τ(t 1 ) Which is illustrated in fig. 8A as part of the actuation training data, and [ mathematical symbol.26]τ Training _2 Can be equal to [ mathematical symbol.27 ]]τ(t 2 ) And [ mathematical symbol.28 ]]τ Train _ n Can be equal to [ mathematical symbol.29]τ(t c ). More specifically, if the actuation training data is from the example of FIG. 8A, the torque value [ mathematical sign.30 ] in the above equation]τ Training 1 、τ Training _2 、……τ Train _ n May more specifically include [ mathematical symbol.31]τ(t 1 )、τ(t 2 )、……τ(t a ) And τ (t) b+1 )……τ(t c ). Further, [ mathematical symbol.32 ]]
Figure BDA0003286172500000337
Figure BDA0003286172500000338
May correspond to different acceleration values provided by or derived from the movement training data and which respectively correspond to [ mathematical sign.33 ]]τ Training 1 、τ Training _2 、……τ Train _ n . Similarly, [ mathematical symbols.34 ]]
Figure BDA0003286172500000339
May correspond to different velocity values provided by or derived from the mobile training data, and [ mathematical symbol.35 ]]θ Training 1 、θ Training _2 、……θ Train _ n May correspond to different location values provided by or derived from the mobile training data. These position values [ mathematical symbols.36 ]]θ Training 1 、θ Training _2 、……θ Train _ n Or speed value [ mathematical sign.37 ]]
Figure BDA0003286172500000341
Figure BDA0003286172500000342
And may also correspond to a torque value mathematical sign 38]τ Training 1 、τ Training _2 、……τ Train _ n . In one example, the value in the equation above [ mathematical sign.39 ]]θ Training 1 、θ Training _2 、……θ Train _ n The rotational position value of fig. 8A may be more specifically included [ mathematical symbol.40 ]]θ(t 1 )、θ(t 2 )、……θ(t a ) And theta (t) b+1 )……θ(t c ). In the above example, the values in the above equations may correspond to different points in time, or more specifically, to one or more sensors (e.g., 3222) 4 、3224 4 ) Measurements taken at different time points.
In an embodiment, the computing system 1100 may be configured to solve the above system of simultaneous equations to determine respective estimates of s, b, I, m, r, and/or α. Solving the equations may involve determining respective values of s, b, I, m, r, and/or α that satisfy or approximately satisfy the above equations. The friction parameter estimate may be, for example, the value of s or the value of b determined from solving an equation. In some implementations, the computing system 1100 may be configured to apply a least squares fitting method to determine the above parametersFor example, minimizing the amount of error between the values on the left side of the equation (e.g., equation 4) and the values on the right side of the equation. The value to the left of the equation may be the torque value [ mathematical sign.41 ] provided by or extracted from the actuation training data]τ Training 1 、τ Training _2 、……τ Train _ n . The values to the right of the equation may use the above formula, for example, in equation 4, and use values calculated from the rotational position value, rotational velocity value, and rotational acceleration value provided by or extracted from the movement training data.
As described above, step 4004 may involve determining at least one of a friction parameter estimate or a CoM estimate. In an embodiment, the computing system may determine the CoM estimate by solving a plurality of simultaneous equations as described above. In some cases, computing system 1100 may use the above technique or some other technique to efficiently extract the motion due arm segment (e.g., 3212) from the actuation training data 5 ) Is the component of the total torque generated due to the influence of gravity on the arm section CoM. In one example, this component may be expressed as mgrcos (θ + α), and the contribution of the actuator may be subtracted from the total torque (e.g., [ mathematical sign.42 ]), for example]
Figure BDA0003286172500000343
) And friction (e.g., [ mathematical symbol.43 ]]
Figure BDA0003286172500000344
) To obtain the final product. For example, fig. 10A provides an example of a value representing the gravitational component of the total torque, which may be approximated as the effect of gravity on the CoM of the arm segment. FIG. 10B illustrates a sinusoidal fit, or more specifically, the computing system 1100 for fitting a sinusoid of the values in FIG. 10A. In some cases, the computing system 1100 may determine the CoM estimate based on the amplitude and phase shift of the sinusoid of fig. 10B. More specifically, computing system 1100 may be configured to determine the value of mgr based on the amplitude of the sinusoid, and parameter α may affect the phase shift of the sinusoid. In this example, the computing system 1100 may determine the difference between the amplitude of the sinusoid and the weight of the arm segmentWhere the ratio may be equal to or indicate r, which may represent the CoM of the arm segment.
In an embodiment, when determining a CoM estimate for a particular arm segment based on actuation training data, the computing system 1100 may be configured to consider the effect that downstream arm segments (e.g., more distal arm segments) may have on actuation training data or other training data. More specifically, from the downstream arm segment (e.g., 3212) 6 ) May be for a particular arm segment (e.g., 3212) 5 ) Or a joint (e.g., 3214) 4 ) Contributes to the total torque at (c). Thus, the downstream arm segment may affect the determination of the particular arm segment (e.g., 3212) 5 ) The actuation training data or the movement training data of the CoM estimate of (a). In such a case, the computing system 1100 may determine the extent to which the actuation training data or the movement training data is affected by the weight of the downstream arm segment in order to remove or compensate for the effect.
In some cases, step 4004 may include determining an estimate of the moment of inertia I, such as by solving the equation discussed above (e.g., equation 4). CoM estimation, friction parameter estimation, AND/or estimation of moment of inertia are discussed in more detail in U.S. patent application No. 17/243,939 (MJ 0062-US/0077-0015US 1), entitled "METHOD AND COMPATITING SYSTEM FOR ESTIMATING PARAMETERS FOR ROBOT OPERATION," which is incorporated herein by reference in its entirety.
Returning to FIG. 4, in an embodiment, embodiment 4000 may include step 4006, where computing system 1100 is based on movement test data (such as θ of FIG. 8A) Testing ) And determining actuation prediction data based on at least one of: (i) A friction parameter estimate or (ii) a CoM estimate, wherein the estimates are determined from step 4004. For example, the actuation prediction data may be a set τ of predicted torque values (which may also be referred to as torque predictions) Prediction Or may be a set f of predicted force values (which may also be referred to as force predictors) Prediction Where the predicted value of torque or force may be indicative of a joint associated with rotation or other motion used to generate sensor data (e.g., 3214) 4 ) A prediction of total torque or total force at (a). In thatIn this example, set τ Prediction Multiple torque values, such as τ, may be predicted Prediction _1 、τ Prediction _2 、……τ Prediction _ n . In other words, the set τ Prediction May include a plurality of torque predicted values (also referred to as predicted torque values) τ Prediction _1 、τ Prediction _2 、……τ Prediction _ n
In some cases, the torque prediction value or other actuation prediction data may correspond to different points in time during the time period in which the sensor data was generated. For example, FIG. 11 provides a graphical representation of a torque estimation including multiple torque predictions τ corresponding to different points in time Prediction _1 、τ Prediction _2 、……τ Prediction _ n A graph of the actuation prediction data of (a). More specifically, the torque prediction value and the movement test data used to generate the torque prediction value may correspond to different points in time. For example, the movement test data θ Testing May include a plurality of rotational position values theta Test t _1 、θ Test t _2 、……θ Test _ n . If the movement test data is from the example of FIG. 8A, then the rotational position value θ of the movement test data Test t _1 、θ Test t _2 、……θ Test _ n The rotational position value θ (t) of fig. 8A may be more specifically included a+1 )……θ(t b ) And θ (t) c+1 )……θ(t z ). In such an example, the movement test data may correspond to a point in time t a+1 ……t b And t c+1 ……t z . The actuation prediction data may be based on movement test data and may thus also correspond to the point in time t a+1 ……t b And t c+1 ……t z
In an embodiment, the actuation prediction data may be determined based on an equation similar to equation 2, 3, or 4 above. For example, if the actuation prediction data includes a plurality of torque predictors τ Prediction _1 、τ Prediction _2 、……τ Prediction _ n Then each torque in the set is predicted Prediction _ i The mathematical symbol 44 can be determined according to the following equation]:
Figure BDA0003286172500000361
Or
Figure BDA0003286172500000362
In this equation, [ mathematical symbol.45 ]]
Figure BDA0003286172500000363
Refers to the movement of test data (such as movement test data theta of FIG. 8A) Testing ) An ith rotational acceleration value, rotational velocity value, or rotational position value is provided or derived from the movement test data. The values of s and b in the equation may be respective estimates of coulomb friction and kinetic friction, which may be determined as part of the friction parameter estimation, while the value of CoM may be a CoM estimate, and the value of I may be an estimate of the moment of inertia. As discussed above, some or all of these estimates may be determined in step 4004 based on the movement training data and the actuation training data.
Returning to fig. 4, in an embodiment, method 4000 may include step 4008, where computing system 1100 determines residual data, which may describe actuation prediction data (such as τ discussed above) Prediction ) And actuation test data (such as τ of FIG. 8A) Testing ) Deviation or error between. In some cases, as shown in fig. 12, the residual data may include residual data values corresponding to different points in time. For example, if τ Prediction Based on the movement test data of FIG. 8A, then the actuation prediction data may include data corresponding to the time point t a+1 ……t b And t c+1 ……t z The predicted torque value of (1). In this example, test data τ is actuated Testing May include a time point t which also corresponds to a+1 ……t b And t c+1 ……t z Value of (d) Prediction _1 、τ Prediction _2 、……τ Prediction _ n
In an embodiment, the residual data may be indicative of actuation prediction data and actuation test dataHow much error there is between. In such embodiments, the computing system 1100 may determine the residual data by determining a difference between the actuation prediction data and the actuation test data. If the actuation prediction data includes a plurality of torque predictors, and if the actuation test data also includes a plurality of torque values, the computing system 1100 may determine residual data by subtracting the plurality of torque predictors from the plurality of torque values of the actuation test data, or vice versa. For example, FIG. 13A depicts a situation in which the residual data comprises a residual data value e 1 、e 2 、……e 3 For example, the residual data values may indicate an error between the predicted torque value and the torque value of the actuation test data. In this example, the computing system 1100 may test the torque value τ of the data by, for example, actuating Test _1 、τ Test _2 、……τ Test _ n Torque predicted value tau subtracted from actuation predicted data Prediction _1 、τ Prediction _2 、……τ Prediction _ n To determine a residual data value e 1 、e 2 、……e 3
Returning to FIG. 4, in an embodiment, method 4000 may include step 4010 in which computing system 1100 determines a description residual data value (such as value e in FIG. 13A) 1 、e 2 、……e 3 ) The value of the error parameter of (2). In some cases, the error parameter may indicate the quality of sensor data generated for robot calibration. In some cases, the error parameter may be indicative of, for example, the quality, accuracy, or reliability of a model describing the relationship between (i) total torque or total force and (ii) friction or CoM. In some cases, the error parameter may indicate an accuracy or reliability of an estimated value (e.g., a friction parameter estimate, a CoM estimate, and/or an estimate of moment of inertia) determined using the model. In other words, the error parameter may indicate a confidence level (or lack of confidence) of the model, sensor data, and/or parameter estimate.
In an embodiment, the model may have been used by the computing system 1100 to determine friction parameter estimates and/or CoM estimates in step 4004 and/or to calculate actuation prediction data in step 4006. The model may, for example, describe betweenThe relationship is as follows: (i) Joint (e.g., 3214) 4 ) Or an arm segment (e.g., 3212) 5 ) And (ii) the arm segment (e.g., 3212) connected by the joint 5 、3212 4 ) Between or one of the arm segments (e.g., 3212) 5 ) The CoM of (1). The model may include or may be represented by an equation, such as one of equations 2, 3, 4, 5, or 6. The equation may define, for example, the total force or the total torque as a function of parameters such as the viscous friction coefficient b and the static friction s between the arm segments, the CoM of one of the arm segments, the moment of inertia I of one of the arm segments, and as a function of movement data values such as rotational position values, rotational velocity values, and/or rotational acceleration values. In some cases, one or more equations in the model may provide a simplified approximation of how friction, gravity, or force or torque from the actuator affects the total force or torque at the joint or arm segment. Since the model may only provide an approximation of the relationship between total force or torque and parameters such as friction, coM, and torque or force of the actuator output, the actuation prediction data based on this model may not exactly match the actuation test data. Because the error parameter may describe how much deviation exists between the actuation test data and the actuation prediction data, the error parameter may indicate the level of accuracy of the model used to generate the actuation prediction data, or more specifically, the level of accuracy of the equation(s) in the model, and whether the model is sufficiently accurate or whether the model is too simple. In some cases, the error parameter may also indicate a level of accuracy of the estimated values input to the equation (such as the friction parameter estimate and the CoM estimate).
As described above, in embodiments, the error parameter may be indicative of the quality of the sensor data used to estimate friction, coM, and/or moment of inertia in step 4004, or more generally, the quality of the sensor data used to perform the robot calibration. For example, the sensor data may measure one or more arm segments of the robot (such as arm segment 3212 of robot 3200) 5 ) The movement of (2). In some cases, the arm segment (e.g., 3212) 5 ) Or other parts of the robot may experience an event (such as a robot and a robot)Another object meets or collides) that may inadvertently impede or alter its movement. Such collisions may result in uneven movement (including movement characterized by sudden changes in acceleration) of one or more arm segments of the robot, rather than smooth movement. Uneven movement may produce sensor data, including actuation data and movement data, which are not particularly reliable for robot calibration and are therefore of low quality.
In an embodiment, the quality of the sensor data may be reflected by the frequency content in the residual data values of step 4010. More specifically, the error parameter in this embodiment may describe or indicate the frequency content in the residual data values. In some cases, the presence of low frequency content may indicate or may be consistent with sensor data having low or unreliable quality (such as sensor data generated when a robot (e.g., 3200) experiences a collision with another object). More specifically, the presence of high frequency content in the residual data values may be associated with or coincide with, for example, background noise (such as electrical noise that may fluctuate randomly and introduce random variations into the movement data or actuation data generated by the sensor). In some cases, background noise may be a relatively small source of error compared to events such as a collision of the robot with another object. In some cases, events such as collisions may also introduce changes to the movement data or actuation data, but the frequency of the changes may be low compared to the frequency of background noise. Thus, the presence of low frequency content in the residual data values may be more consistent with an event (such as a collision between the robot and another object), which may degrade the quality of movement data, actuation data, or other sensor data used for robot calibration.
In an embodiment, the computing system 1100 may perform an averaging function on a set of residual data values. The averaging function may have the effect of performing frequency filtering on the set of residual data values. For example, the averaging function may produce a result that the low frequency content is weighted more heavily than the high frequency content, or vice versa. In some cases, the result of the averaging function may have a higher value when there is more low frequency content. Thus, of averaging functionsThe result may indicate frequency content in the set of residual data values. In some implementations, the set of residual data values may be residual data values for a corresponding time window. For example, the computing system 1100 may determine a plurality of average residual data values for a plurality of respective time windows. As an example, fig. 13B shows a plurality of time windows 13001, 13002, 13003, 13004, which are time windows (also referred to as time slots) in the time period in which actuation test data, movement test data, or other sensor data is generated for robot calibration. These time windows (e.g., 5 ms, 10 ms, or 100 ms time windows) may correspond to different respective subsets of residual data values. In this example, time window 13001 may cover slave t a To t a+4 And may correspond to a first subset e of residual data values 1 To e 5 . Time window 13002 may cover slave t a+1 To t a+5 And may correspond to a second subset e of residual data values 2 To e 6 . As another example, time window 13003 can cover slave t a+2 To t a+6 And may correspond to a third subset e of residual data values 3 To e 7
In an embodiment, the time window (e.g., 13001-13004) may be a sliding time window. More specifically, they may represent overlapping time periods or time ranges and have respective start times that are spaced apart by defined sliding time increments (e.g., 1 millisecond, 5 milliseconds, etc.). In the example of FIG. 13B, the respective start times of time windows 13001-13004 can be set by a value equal to t a+1 Minus t a Spaced apart by a defined sliding time increment (e.g., a predefined increment). Although fig. 13B depicts time windows each having 5 residual data values, other examples may have time windows containing more residual data values (e.g., 20 residual data values, 100 residual data values), or fewer residual data values.
In an embodiment, the computing system 1100 may perform the averaging function by determining a plurality of average residual data values for a plurality of respective time windows. For example, in the example of FIG. 13BWherein the plurality of average residual data values (also referred to as residual data value arrays) may be a swe_1 、a swe_2 、a swe_3 、a swe_4 … …. Each of the average residual data values may be an average of the residual data values in the corresponding sliding time window. E.g. average residual data value a swe_1 May be the residual data value e in the time window 13001 1 、e 2 、e 3 、e 4 And e 5 Is calculated. As another example, the average residual data value a swe_2 May be the residual data value e in the time window 13002 2 、e 3 、e 4 、e 5 And e 6 Is calculated. As described above, a plurality of average residual data values may be affected by the frequency content within the residual data values contained by their corresponding time window. Thus, the plurality of average residual data values may be indicative of frequency content within the respective groups of residual data values belonging to the respective time windows. As also described above, low frequency content in the residual data values may indicate or be consistent with unreliable or low quality sensor data. Thus, the computing system 1100 may determine whether the sensor data involved in the robot calibration is of sufficient quality based on the average residual data values.
In an embodiment, the computing system 1100 may determine a value of an error parameter based on a plurality of average residual data values. As an example, the computing system 1100 may determine that the value of the error parameter is equal to or based on a plurality of average residual data values (such as a) swe_1 、a swe_2 、a swe_3 、a swe_4 … …) (or M) aswe ). As described above, the value of the error parameter in this example, such as M aswe How much low frequency content or how much high frequency content there is in the residual data values may be indicated, which may be indicative of the quality or reliability of the sensor data generated for the robot calibration. In some cases, an error parameter (such as M) aswe ) A relatively low value of (a) may indicate that the residual data value is close to zero and that the quality of the sensor data is relatively high, whereas a relatively high value of the error parameter may indicate that the quality of the sensor data is relatively low.
In an embodiment, the computing system 1100 may determine whether the value of the error parameter exceeds a defined error threshold (e.g., a predefined error threshold) or is below a defined confidence threshold (e.g., a predefined confidence threshold). In some cases, the confidence threshold may be, for example, the inverse of the error threshold. If the value of the error parameter exceeds a defined error threshold or is below a defined confidence threshold, the computing system 1100 may output an indication that the value of the error parameter exceeds the error threshold or is below the confidence threshold. In some implementations, the indication may be a signal output via the communication interface 1130, where the signal may be received by another computing system. In some implementations, the indication can be a text or graphical message output on a display device (if any) of the computing system 1100. In some cases, the computing system 1100 may store the values of the error parameters in a non-transitory computer-readable medium 1120.
In an embodiment, the defined error threshold may be a manually defined value that the computing system 1100 receives and stores in the non-transitory computer-readable medium 1120, for example. In an embodiment, the defined error threshold may be a value that the computing system 1100 has dynamically defined or otherwise determined. For example, the computing system 1100 may determine the error threshold based on a defined torque value (e.g., a nominal torque value), a defined speed multiplier (e.g., a predefined speed multiplier) associated with a particular robot, and an experimentally determined percentage value that may also be associated with a particular robot (e.g., 3200). Thus, in this example, different robots may be associated with different error thresholds.
In an embodiment, if the value of the error parameter exceeds a defined error threshold or is less than a defined confidence threshold, such an indication may be used by the computing system 1100, another computing system, and/or a user to determine whether to re-perform the robot calibration, whether to change a model used to perform the robot calibration, and/or whether to change how to perform motion planning for the robot (e.g., 3200) or arm (e.g., 3210). For example, the robot calibration may be re-performed in an attempt to obtain new sensor data and generate new estimates for the friction parameters and/or the CoM estimates. The computing system 1100 may then repeat the steps of the method 4000 to determine whether the new sensor data or the new estimate results in a better value of the error parameter.
Additional discussion of various embodiments:
embodiment 1 relates to a computing system, a method performed by the computing system, or a non-transitory computer-readable medium having instructions for performing the method. In this embodiment, a computing system includes a non-transitory computer-readable medium and at least one processing circuit. The at least one processing circuit is configured to perform various operations when the non-transitory computer-readable medium is storing sensor data, the sensor data including: (i) A set of movement data indicative of an amount or rate of relative movement between a pair of immediately adjacent arm sections of the robotic arm that is occurring or has occurred via a joint of the robotic arm, and (ii) a set of actuation data indicative of a total torque or total force at the joint in a period of time in which the relative movement is occurring or has occurred. The various operations may include the following: the sensor data is divided into training data and test data by: (i) Select movement training data and corresponding actuation training data as training data, wherein the movement training data is a first subset of the set of movement data, and wherein the actuation training data is a first subset of the set of actuation data, and (ii) select movement test data and corresponding actuation test data as test data, wherein the movement test data is a second subset of the set of movement data, and wherein the actuation test data is a second subset of the set of actuation data. The various operations may also include determining, based on the movement training data and the actuation training data, at least one of: (i) A friction parameter estimate associated with friction between the immediately adjacent pair of arm segments, or (ii) a center of mass (CoM) estimate associated with one of the immediately adjacent pair of arm segments. The various operations may further include determining actuation prediction data based on the movement test data and based on at least one of: (i) A friction parameter estimate or (ii) a CoM estimate, wherein the actuation prediction data is a prediction indicative of a total torque or a total force at the joint at different points in time. The various operations may further include determining residual data comprising residual data values describing deviations between the actuation prediction data and the actuation test data respectively corresponding to different points in time; determining, based on the residual data, a value of an error parameter describing a value of the residual data; determining whether a value of an error parameter exceeds a defined error threshold; and outputting an indication of whether the value of the error parameter exceeds a defined error threshold.
Embodiment 2 includes the computing system of embodiment 1, wherein the error parameter indicates frequency content in the residual data values.
Embodiment 3 includes the computing system of embodiment 1 or 2, wherein the error parameter is indicative of a quality of the sensor data.
Embodiment 4 includes the computing system of any of embodiments 1-3, wherein the error parameter is indicative of an accuracy of a model describing a relationship between (i) the total torque or force and (ii) the friction or the CoM.
Embodiment 5 includes the computing system of any of embodiments 1-4, wherein the at least one processing circuit is configured to determine a plurality of average residual data values for a plurality of respective time windows in the time period, wherein the plurality of respective time windows correspond to different respective subsets of residual data values. In this embodiment, the value of the error parameter is determined based on a plurality of average residual data values.
Embodiment 6 includes the computing system of embodiment 5, wherein the at least one processing circuit is configured to determine the value of the error parameter based on a maximum of the plurality of average residual data values.
Embodiment 7 includes the computing system of embodiment 5 or 6, wherein the plurality of time windows represent overlapping time periods having respective start times separated by a defined sliding time increment.
Embodiment 8 includes the computing system of any of embodiments 1-7, wherein the set of movement data includes a plurality of movement data values corresponding to different points in time, wherein the at least one processing circuit is configured to divide the sensor data into training data and test data by, for each movement data value in the plurality of movement data values: determining a respective position value that is equal to or based on the movement data value, wherein the respective position value describes a position of a first arm segment of the immediately adjacent pair of arm segments relative to a second arm segment of the immediately adjacent pair of arm segments at a respective point in time corresponding to the movement data value; determining a respective velocity value equal to or based on the movement data value, wherein the respective velocity value describes a velocity of the first arm segment relative to the second arm segment at the respective point in time; and determining whether to select the movement data value as training data or test data based on a respective ratio of the respective velocity value to the respective position value.
Embodiment 9 includes the computing system of embodiment 8, wherein the at least one processing circuit is configured to, for each movement data value of the plurality of movement data values, determine whether to select the movement data value as the training data or the test data based on whether a respective ratio between a respective velocity value associated with the movement data value and a respective position value is at least one of: (i) Within a ratio range extending from 0 to a defined positive ratio threshold, or (ii) less than a defined negative ratio threshold.
Embodiment 10 includes the computing system of embodiment 8 or 9, wherein the at least one processing circuit is configured to: for each movement data value of the plurality of movement data values, determining whether to select the movement data value as training data or as test data based on whether a respective ratio between a respective velocity value associated with the movement data value and a respective position value is at least one of: (i) Within a ratio range extending from 0 to a defined negative ratio threshold, or (ii) greater than a defined positive ratio threshold.
Embodiment 11 includes the computing system of any of embodiments 1-10, wherein the friction parameter estimate is an estimate of a viscous friction coefficient or an estimate of coulomb friction.
Embodiment 12 includes the computing system of any of embodiments 1-11, wherein the at least one processing circuit is configured to: when the set of actuation data measures a current flowing through the actuator for causing relative movement between the immediately adjacent pair of arm segments, a total torque or total force at the joint is determined based on the current.
It will be apparent to one of ordinary skill in the relevant art that other suitable modifications and adaptations to the methods and applications described herein may be made without departing from the scope of any of the embodiments. The embodiments described above are illustrative examples and should not be construed as limiting the invention to these particular embodiments. It should be understood that the various embodiments disclosed herein may be combined in different combinations than those specifically presented in the description and drawings. It will also be understood that, according to an example, certain acts or events of any process or method described herein can be performed in a different order, may be added, merged, or omitted altogether (e.g., all described acts or events may not be necessary for performing the method or process). Additionally, although certain features of the embodiments herein are described as being performed by a single component, module, or unit for clarity, it should be understood that the features and functions described herein can be performed by any combination of components, units, or modules. Accordingly, various changes and modifications may be effected therein by one skilled in the art without departing from the spirit or scope of the invention as defined in the appended claims.

Claims (15)

1. A computing system, comprising:
a non-transitory computer readable medium;
at least one processing circuit configured to perform the following operations when the non-transitory computer readable medium is storing a set of movement data indicative of an amount or rate of relative movement between a pair of immediately adjacent arm segments of a robotic arm that is occurring or has occurred via a joint of the robotic arm, and (ii) a set of actuation data indicative of a total torque or a total force at the joint over a period of time that the relative movement is occurring or has occurred:
dividing the sensor data into training data and test data by performing the following for each of a plurality of movement data values in the set of movement data corresponding to different points in time:
determining a respective position value that is equal to or based on the movement data value;
determining a respective velocity value that is equal to or based on the movement data value;
selecting as the training data movement training data and corresponding actuation training data, wherein the movement training data is a first subset of the set of movement data, and wherein the actuation training data is a first subset of the set of actuation data, an
Selecting movement test data and corresponding actuation test data as the test data, wherein the movement test data is a second subset of the set of movement data defined by movement data values, wherein a respective ratio between the respective velocity value associated with the movement data value and the respective position value is at least one of: (i) Within a ratio range extending from 0 to a defined positive ratio threshold, or (ii) less than a defined negative ratio threshold,
and wherein the actuation test data is a second subset of the set of actuation data;
determining, based on the movement training data and the actuation training data, at least one of: (i) A friction parameter estimate associated with friction between the pair of immediately adjacent arm segments, or (ii) a centroid, coM, estimate associated with one of the pair of immediately adjacent arm segments;
determining actuation prediction data based on the movement test data and based on at least one of: (i) The friction parameter estimate or (ii) the CoM estimate, wherein the actuation prediction data is a prediction indicative of total torque or total force at the joint at different points in time;
determining residual data comprising residual data values describing deviations between the actuation prediction data and the actuation test data corresponding to the different points in time, respectively;
determining, based on the residual data, a value of an error parameter describing the residual data value;
determining whether the value of the error parameter exceeds a defined error threshold; and
outputting an indication of whether the value of the error parameter exceeds the defined error threshold, wherein the error parameter is indicative of at least one of: frequency content in the residual data values, quality of the sensor data, and reliability or accuracy of the results of the mechanical arm calibration.
2. The computing system of claim 1, wherein the error parameter is indicative of an accuracy of a model describing a relationship between (i) total torque or total force and (ii) friction or CoM.
3. The computing system of claim 1, wherein the at least one processing circuit is configured to determine a plurality of average residual data values for a plurality of respective time windows in the time period, wherein the plurality of respective time windows correspond to different respective subsets of the residual data values, wherein the value of the error parameter is determined based on the plurality of average residual data values.
4. The computing system of claim 3, wherein the at least one processing circuit is configured to determine the value of the error parameter based on a maximum value of the plurality of average residual data values.
5. The computing system of claim 3, wherein the plurality of time windows represent overlapping time periods having respective start times that are spaced apart by a defined sliding time increment.
6. The computing system of claim 1, wherein the respective position value describes a position of a first arm segment of the pair of immediately adjacent arm segments relative to a second arm segment of the pair of immediately adjacent arm segments at a respective point in time corresponding to the movement data value, and wherein the respective velocity value describes a velocity of the first arm segment relative to the second arm segment at the respective point in time.
7. The computing system of claim 6, wherein the at least one processing circuit is configured to: for each movement data value of the plurality of movement data values, determining whether to select the movement data value as training data based on whether the respective ratio between the respective velocity value associated with the movement data value and the respective position value is at least one of: (i) Within a ratio range extending from 0 to a defined negative ratio threshold, or (ii) greater than a defined positive ratio threshold.
8. The computing system of claim 1, wherein the friction parameter estimate is an estimate of a viscous friction coefficient or an estimate of coulomb friction.
9. The computing system of claim 1, wherein the at least one processing circuit is configured to: determining the total torque or the total force at the joint based on the current flowing through the actuator for causing the relative movement between the pair of immediately adjacent arm segments when the set of actuation data measures the current.
10. A non-transitory computer-readable medium having instructions thereon that, when executed by at least one processing circuit of a computing system, cause the at least one processing circuit to:
separating sensor data stored on the non-transitory computer readable medium into training data and sensor data, wherein the non-transitory computer readable medium is configured to store the sensor data including: (i) A set of movement data indicative of an amount or rate of relative movement between a pair of immediately adjacent arm sections of a robotic arm that is occurring or has occurred via a joint of the robotic arm, and (ii) a set of actuation data indicative of a total torque or total force at the joint over a period of time in which the relative movement is occurring or has occurred,
wherein the sensor data is divided into training data and test data by performing the following for each of a plurality of movement data values in the set of movement data corresponding to different points in time:
determining a respective position value that is equal to or based on the movement data value;
determining a respective velocity value that is equal to or based on the movement data value;
selecting as the training data movement training data and corresponding actuation training data, wherein the movement training data is a first subset of the set of movement data, and wherein the actuation training data is a first subset of the set of actuation data; and
selecting movement test data and corresponding actuation test data as the test data, wherein the movement test data is a second subset of the set of movement data defined by movement data values, wherein a respective ratio between the respective velocity value associated with the movement data value and the respective position value is at least one of: (i) Within a ratio range extending from 0 to a defined positive ratio threshold, or (ii) less than a defined negative ratio threshold, and wherein the actuation test data is a second subset of the set of actuation data;
wherein the instructions, when executed by the at least one processing circuit, further cause the at least one processing circuit to:
determining, based on the movement training data and the actuation training data, at least one of: (i) A friction parameter estimate associated with friction between the pair of immediately adjacent arm segments, or (ii) a centroid, coM, estimate associated with one of the pair of immediately adjacent arm segments;
wherein the instructions further cause the at least one processing circuit to:
determining actuation prediction data based on the movement test data and based on at least one of: (i) The friction parameter estimate or (ii) the CoM estimate, wherein the actuation prediction data is a prediction indicative of total torque or total force at the joint at different points in time;
determining residual data comprising residual data values describing deviations between the actuation prediction data and the actuation test data corresponding to the different points in time, respectively;
determining, based on the residual data, a value of an error parameter describing the residual data value;
determining whether the value of the error parameter exceeds a defined error threshold; and
outputting an indication of whether the value of the error parameter exceeds the defined error threshold, wherein the error parameter is indicative of at least one of: frequency content in the residual data values, quality of the sensor data, and reliability or accuracy of the results of the mechanical arm calibration.
11. The non-transitory computer readable medium of claim 10, wherein the error parameter is indicative of an accuracy of a model describing a relationship between (i) total torque or total force and (ii) friction or CoM.
12. The non-transitory computer-readable medium of claim 10, wherein the instructions further cause the at least one processing circuit to determine a plurality of average residual data values for a plurality of respective time windows, wherein the plurality of respective time windows correspond to different respective subsets of the residual data values,
wherein the value of the error parameter is determined based on the plurality of average residual data values.
13. The non-transitory computer-readable medium of claim 12, wherein the instructions further cause the at least one processing circuit to determine the value of the error parameter based on a maximum value of the plurality of average residual data values.
14. The non-transitory computer-readable medium of claim 13, wherein the plurality of time windows represent overlapping time periods having respective start times separated by a defined sliding time increment.
15. A method performed by a computing system, the method comprising:
partitioning sensor data stored on a non-transitory computer-readable medium of the computing system into training data and sensor data, wherein the non-transitory computer-readable medium is configured to store the sensor data including: (i) A set of movement data indicative of an amount or rate of relative movement between a pair of immediately adjacent arm sections of a robotic arm that is occurring or has occurred via a joint of the robotic arm, and (ii) a set of actuation data indicative of a total torque or total force at the joint over a period of time in which the relative movement is occurring or has occurred,
wherein the sensor data is divided into training data and test data by performing the following for each of a plurality of movement data values in the set of movement data corresponding to different points in time:
determining a respective position value that is equal to or based on the movement data value;
determining a respective velocity value that is equal to or based on the movement data value;
selecting as the training data movement training data and corresponding actuation training data, wherein the movement training data is a first subset of the set of movement data, and wherein the actuation training data is a first subset of the set of actuation data; and
selecting movement test data and corresponding actuation test data as the test data, wherein the movement test data is a second subset of the set of movement data defined by movement data values, wherein a respective ratio between the respective velocity value associated with the movement data value and the respective position value is at least one of: (i) Within a ratio range extending from 0 to a defined positive ratio threshold, or (ii) less than a defined negative ratio threshold, and wherein the actuation test data is a second subset of the set of actuation data;
wherein the method further comprises:
determining, based on the movement training data and the actuation training data, at least one of: (i) A friction parameter estimate associated with friction between the pair of immediately adjacent arm segments, or (ii) a centroid, coM, estimate associated with one of the pair of immediately adjacent arm segments;
determining actuation prediction data based on the movement test data and based on at least one of: (i) The friction parameter estimate or (ii) the CoM estimate, wherein the actuation prediction data is a prediction indicative of total torque or total force at the joint at different points in time;
determining residual data comprising residual data values describing deviations between the actuation prediction data and the actuation test data corresponding to the different points in time, respectively;
determining, based on the residual data, a value of an error parameter describing the residual data value;
determining whether the value of the error parameter exceeds a defined error threshold; and
outputting an indication of whether the value of the error parameter exceeds the defined error threshold, wherein the error parameter indicates at least one of: frequency content in the residual data values, quality of the sensor data, and reliability or accuracy of the results of the mechanical arm calibration.
CN202111147979.1A 2020-05-07 2021-05-07 Method and computing system for determining values of error parameters indicative of robot calibration quality Active CN113821006B (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202063021089P 2020-05-07 2020-05-07
US63/021,089 2020-05-07
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
US17/244,224 2021-04-29
CN202180002096.3A CN113939783A (en) 2020-05-07 2021-05-07 Method and computing system for determining values of error parameters indicative of robot calibration quality
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 Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202180002096.3A Division CN113939783A (en) 2020-05-07 2021-05-07 Method and computing system for determining values of error parameters indicative of robot calibration quality

Publications (2)

Publication Number Publication Date
CN113821006A CN113821006A (en) 2021-12-21
CN113821006B true CN113821006B (en) 2022-10-14

Family

ID=78915833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111147979.1A Active CN113821006B (en) 2020-05-07 2021-05-07 Method and computing system for determining values of error parameters indicative of robot calibration quality

Country Status (1)

Country Link
CN (1) CN113821006B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107092582A (en) * 2017-03-31 2017-08-25 江苏方天电力技术有限公司 One kind is based on the posterior exceptional value on-line checking of residual error and method for evaluating confidence
CN109732605A (en) * 2019-01-21 2019-05-10 厦门大学 A kind of compensation method and system of joint of robot moment of friction
CN110298455A (en) * 2019-06-28 2019-10-01 西安因联信息科技有限公司 A kind of mechanical equipment fault intelligent early-warning method based on multivariable estimation prediction

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102229148B (en) * 2007-06-27 2013-10-16 松下电器产业株式会社 Control device and method for robot arm and robot
US7996096B2 (en) * 2008-02-29 2011-08-09 Fisher Controls International Llc Estimation of process control parameters over predefined travel segments
JP5198514B2 (en) * 2010-07-22 2013-05-15 株式会社東芝 Robot controller
US8719212B2 (en) * 2011-05-09 2014-05-06 King Fahd University Of Petroleum And Minerals Parallel kinematic machine trajectory planning method
US8710777B2 (en) * 2012-04-20 2014-04-29 Linestream Technologies Method for automatically estimating inertia in a mechanical system
KR101378824B1 (en) * 2012-04-20 2014-03-27 라인스트림 테크놀로지스 Method for automatically estimating inertia in a mechanical system and for generating a motion profile
FR3002048B1 (en) * 2013-02-14 2016-07-01 Commissariat Energie Atomique METHOD FOR ENHANCED COLLISION COLLECTION OF A ROBOT WITH ITS ENVIRONMENT, SYSTEM AND COMPUTER PROGRAM PRODUCT IMPLEMENTING THE METHOD
US10078712B2 (en) * 2014-01-14 2018-09-18 Energid Technologies Corporation Digital proxy simulation of robotic hardware
US10126202B2 (en) * 2015-09-11 2018-11-13 Linestream Technologies Method for automatically estimating inertia, coulomb friction, and viscous friction in a mechanical system
US10016900B1 (en) * 2017-10-10 2018-07-10 Auris Health, Inc. Surgical robotic arm admittance control
CN108621159B (en) * 2018-04-28 2020-05-19 首都师范大学 Robot dynamics modeling method based on deep learning

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107092582A (en) * 2017-03-31 2017-08-25 江苏方天电力技术有限公司 One kind is based on the posterior exceptional value on-line checking of residual error and method for evaluating confidence
CN109732605A (en) * 2019-01-21 2019-05-10 厦门大学 A kind of compensation method and system of joint of robot moment of friction
CN110298455A (en) * 2019-06-28 2019-10-01 西安因联信息科技有限公司 A kind of mechanical equipment fault intelligent early-warning method based on multivariable estimation prediction

Also Published As

Publication number Publication date
CN113821006A (en) 2021-12-21

Similar Documents

Publication Publication Date Title
CN113939783A (en) Method and computing system for determining values of error parameters indicative of robot calibration quality
JP5198514B2 (en) Robot controller
JP6443311B2 (en) Control device, control program, and recording medium
US20060129348A1 (en) System for collision a voidance of rotary atomizer
JP7118249B2 (en) motor controller
Carlson et al. Modeling and identification of position and temperature dependent friction phenomena without temperature sensing
EP3277467B1 (en) A method for controlling an industrial robot by touch
JP6091523B2 (en) Servo control device
JP2020101541A (en) Method and device for torque estimation
JP4363058B2 (en) Motor, motor control device, motor control system, and motor identification method
CN113821006B (en) Method and computing system for determining values of error parameters indicative of robot calibration quality
CN113771039B (en) Method and computing system for estimating robot operating parameters
WO2022162740A1 (en) Numerical control device
JP2013526425A (en) Method for identifying friction in a hinge of a robot arm or manipulator arm and use of the method in a torque compensation method
CN113084828B (en) Motion control method, device, equipment and storage medium
Da Silva et al. Joint dynamics modeling and parameter identification for space robot applications
CN116685448A (en) Force detection device and robot system

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