IP Library Granted Patent US 12,285,875
Granted Patent B2
US 12,285,875 · App. 17/089,332 · Granted Apr 29, 2025

Optimizing calibration with constraints between different coordinate frames

Inventor: Dirk Holz (Mountain View, CA)
Assignee: Intrinsic Innovation LLC
B25J9/1692B25J9/163B25J9/1682B25J9/1697
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,285,875
App. No.
17/089,332
Granted
Apr 29, 2025
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for calibrating a robotic workcell. One of the methods includes obtaining an initial model of a workcell having a plurality of calibration entities including a plurality of robots and a plurality of sensors configured to observe movements by one or more calibration entities. executing a calibration program that generates movement data representing movements by the plurality of robots. A plurality of different constraint pairs are generated from sensor data, the constraint pairs specifying a relationship between poses of calibration entities that are observed in different coordinate frames each defined by a calibration entity and is represented in the sensor data. One or more optimization processes are performed on the plurality of different constraint pairs to generate a plurality of calibration values.

Claims (43)

1. A method performed by one or more computers, the method comprising:

obtaining an initial model of an environment comprising a plurality of calibration entities including a plurality of sensors and a plurality of robots, each of the plurality of sensors configured to observe movements by one or more calibration entities in the environment;

executing a calibration program that generates movement data representing movements by the plurality of robots within the environment;

generating sensor data representing how the sensors observe poses of calibration entities after the movements by the plurality of robots during execution of the calibration program;

generating, from the sensor data, a plurality of different constraint pairs, wherein each of the plurality of different constraint pairs specifies a relationship between (i) a first observed pose of a calibration entity of the plurality of calibration entities with respect to a reference coordinate frame of the environment and (ii) a second observed pose of the calibration entity with respect to an entity coordinate frame defined by another calibration entity of the plurality of calibration entities;

performing one or more optimization processes on the plurality of different constraint pairs to generate a plurality of calibration values by minimizing a global error derived from a respective local error corresponding to each of the plurality of different constraint pairs; and

generating an updated model of the environment using the plurality of calibration values by causing movement of one or more of the plurality of calibration entities.

2. The method of claim 1 , wherein each of the plurality of different constraint pairs comprises at least two different coordinate frames each defined by a calibration entity.

3. The method of claim 1 , wherein each constraint pair of the plurality of different constraint pairs comprises at least a calibration entity to be observed in different coordinate frames.

4. The method of claim 1 , wherein the plurality of different constraint pairs comprise a relative pose constraint that defines a relationship between a measured relative pose and a computed relative pose of a first coordinate frame observed in a second coordinate frame, wherein the first coordinate frame is defined by a first calibration entity and the second coordinate frame is defined by a second calibration entity.

5. The method of claim 4 , wherein the measured relative pose and the computed relative pose of the first coordinate frame comprise both translational and rotational positions observable to the second coordinate frame.

6. The method of claim 1 , wherein the plurality of different constraint pairs comprise a feature pose constraint that defines a relationship between feature poses of a calibration entity observed in two different coordinate frames each defined by a calibration entity.

7. The method of claim 6 , wherein the feature poses of the calibration entity comprise both translational and rotational positions.

8. The method of claim 1 , wherein the plurality of different constraint pairs comprise a feature point constraint that defines a relationship between point-wise poses of a calibration entity observed in two different coordinate frames each defined by a calibration entity.

9. The method of claim 8 , wherein the point-wise poses of the calibration entity comprise translational positions.

10. The method of claim 1 , wherein each of the plurality of sensors is a camera or a laser tracker.

11. The method of claim 1 , each of the plurality of calibration entities can be a sensor, a robot, and an object.

12. The method of claim 11 , wherein the object is a marker or a point-wise feature.

13. The method of claim 2 , wherein one of the at least two different coordinate frames defines a pose represented in the sensor data with respect to a reference coordinate frame.

14. The method of claim 13 , wherein the reference coordinate frame comprises a pre-determined coordinate frame defined for a workcell model.

15. The method of claim 1 , wherein performing one or more optimization processes on the plurality of different constraint pairs comprises quantifying, for each constraint pair of the plurality of different constraint pairs, the respective local error between poses of a calibration entity observed in two different coordinate frames.

16. The method of claim 15 , wherein performing one or more optimization processes on the plurality of different constraint pairs further comprises quantifying the global error based on the respective local error quantified for each constraint pair of the plurality of different constraint pairs.

17. The method of claim 16 , wherein minimizing the global error comprises minimizing the global error with one or more optimizers.

18. The method of claim 15 , wherein quantifying the respective local error between poses of the calibration entity observed in each of the plurality of different constraint pairs comprises quantifying the respective local error between poses of the calibration entity with respect to a reference coordinate frame.

19. The method of claim 1 , wherein performing one or more optimization processes on the plurality of different constraint pairs comprises quantifying, for each constraint pair of the plurality of different constraint pairs, the respective local error between a measured relative pose and a computed relative pose of a first coordinate frame observed in a second coordinate frame, wherein the first coordinate frame is defined by a first calibration entity and the second coordinate frame is defined by a second calibration entity.

20. The method of claim 1 , further comprising:

generating a second plurality of different constraint pairs using the updated model of the environment;

performing the one or more optimization processes on the second plurality of different constraint pairs to generate a second plurality of calibration values; and

generating a second updated model of the environment using the second plurality of calibration values.

21. One or more computer-readable storage media storing instructions that when executed by one or more computers cause the one or more computers to perform respective operations, the respective operations comprising:

obtaining an initial model of an environment comprising a plurality of calibration entities including a plurality of sensors and a plurality of robots, each of the plurality of sensors configured to observe movements by one or more calibration entities in the environment;

executing a calibration program that generates movement data representing movements by the plurality of robots within the environment;

generating sensor data representing how the sensors observe poses of calibration entities after the movements by the plurality of robots, during execution of the calibration program;

generating, from the sensor data, a plurality of different constraint pairs, wherein each of the plurality of different constraint pairs specifies a relationship between (i) a first observed pose of a calibration entity of the plurality of calibration entities with respect to a reference coordinate frame of the environment and (ii) a second observed pose of the calibration entity with respect to an entity coordinate frame defined by another calibration entity of the plurality of calibration entities;

performing one or more optimization processes on the plurality of different constraint pairs to generate a plurality of calibration values by minimizing a global error derived from a respective local error corresponding to each of the plurality of different constraint pairs; and

generating an updated model of the environment using the plurality of calibration values by causing movement of one or more of the plurality of calibration entities.

22. A system comprising one or more computers and one or more storage devices storing instructions that when executed by one or more computers cause the one or more computers to perform respective operations, the respective operations comprising:

obtaining an initial model of an environment comprising a plurality of calibration entities including a plurality of sensors and a plurality of robots, each of the plurality of sensors configured to observe movements by one or more calibration entities in the environment;

executing a calibration program that generates movement data representing movements by the plurality of robots within the environment;

generating sensor data representing how the sensors observe poses of calibration entities after the movements by the plurality of robots, during execution of the calibration program;

generating, from the sensor data, a plurality of different constraint pairs, wherein each of the plurality of different constraint pairs specifies a relationship between (i) a first observed pose of a calibration entity of the plurality of calibration entities with respect to a reference coordinate frame of the environment and (ii) a second observed pose of the calibration entity with respect to an entity coordinate frame defined by another calibration entity of the plurality of calibration entities;

performing one or more optimization processes on the plurality of different constraint pairs to generate a plurality of calibration values by minimizing a global error derived from a respective local error corresponding to each of the plurality of different constraint pairs; and

generating an updated model of the environment using the plurality of calibration values by causing movement of one or more of the plurality of calibration entities.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2021
From: X DEVELOPMENT LLC
To: INTRINSIC INNOVATION LLC
Reel/Frame 057650/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2020
From: HOLZ, DIRK
To: X DEVELOPMENT LLC
Reel/Frame 054316/0551 →
Continuity (1)
Related Publication 20220134566A1 · May 5, 2022
References Cited (17)
US 6434265B1 · Xiong · 2002 [cited by examiner]
US 20110280472A1 · Wallack · 2011 [cited by examiner]
US 20160346932A1 · Deng et al. · 2016 [cited by applicant]
US 20170094251A1 · Wolke · 2017 [cited by examiner]
US 20180089831A1 · Liu et al. · 2018 [cited by applicant]
US 20180189565A1 · Lukierski et al. · 2018 [cited by applicant]
US 20180307941A1 · Holz · 2018 [cited by examiner]
US 20200242396A1 · Holz et al. · 2020 [cited by applicant]
US 20230377197A1 · Napolskikh · 2023 [cited by examiner]
CN 106595474 · 2017 [cited by applicant]
JP 2019155556 · 2019 [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2021/055192, dated Feb. 9, 2022, 9 pages. [cited by applicant]
Tabb et al., “Solving the robot-world hand-eye (s) calibration problem with iterative methods,” Machine Vision and Applications, Aug. 2017, 28(5):569-90. [cited by applicant]
Wikipedia.com [online], “Hand Eye Calibration Problem,” Sep. 16, 2019, retrieved on Feb. 23, 2021, retrieved from URL<https://en.wikipedia.org/wiki/Hand_eye_calibration problem>, 3 pages. [cited by applicant]
Decision to Grant a Patent in Japanese Appln. No. 2023-527375, dated May 7, 2024, 6 pages (with English translation). [cited by applicant]
Extended Search Report in European Appln. 21889815.3, dated Sep. 11, 2024, 11 pages. [cited by applicant]
Shiu et al., “Calibration of Wrist-Mounted Robotic Sensors by Solving Homogeneous Transform Equations the Form A X = X B,” IEEE Transactions On Robotics and Automation, Feb. 1989, 5(1): 16-29. [cited by applicant]