IP Library Granted Patent US 12687389
Granted Patent B2
US 12687389 · App. 18/671,625 · Granted Jul 21, 2026

Calibration of scanning 3-d perception systems

Inventor: Brian Alexander Paden (Scotts Valley, CA)
Assignee: Summer Robotics, Inc.
G01B11/2504G01B11/2513
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 12687389
App. No.
18/671,625
Granted
Jul 21, 2026
Kind
B2
Abstract

Embodiments are directed to calibrating a system. A plurality of paths may be scanned across a first object and a second object where the first object is between the second object and scanner. A first portion of trajectories that correspond to a first portion of the paths that trace across the first object may be determined. A second portion trajectories that correspond to a second portion of the paths that trace across the second object may be determined. First endpoints of the first portion of the trajectories may be determined and second endpoints of the second portion of the trajectories may be determined. Rays may be determined based on the second endpoints and the first endpoints. An origin point of the beam generator may be determined based on an intersection of the rays. Accordingly, the system may be calibrated based on the origin point of the beam generator.

Claims (110)

1 . A method for calibrating a system using one or more processors that are configured to execute instructions, wherein the instructions perform actions, comprising:

scanning a plurality of paths of one or more beams across a first object and a second object, wherein the plurality of paths are generated by a projector, and wherein the first object is disposed between the second object and the projector;

determining a plurality of trajectories based on the one or more beams scanned on the plurality of paths across the first object and the second object;

employing one or more breaks in one or more of the plurality of paths to determine a first portion of the plurality of trajectories that correspond to a first portion of the one or more paths scanned across the first object, wherein the one or more breaks in the one or more paths are employed to determine a second portion of the plurality of trajectories that correspond to a second portion of the one or more paths scanned across the second object;

determining one or more first endpoints of the first portion of the trajectories and determining one or more second endpoints of the second portion of the trajectories based on the one or more breaks in the one or more paths;

determining two or more rays separated by the one or more breaks caused by a depth between the first object and the second object and are disposed along a first portion and a second portion of a corresponding trajectory based on the one or more second endpoints and the one or more first endpoints;

determining an origin point of the one or more beams generated by the projector based on an intersection of the two or more rays; and

calibrating the system based on the origin point for the projector.

2 . The method of claim 1 , wherein determining the origin point for the projector, further comprises:

determining two or more intersections based on a bundle of three or more determined rays; and

updating the origin point based on an average location of the two or more intersections.

3 . The method of claim 1 , wherein determining the plurality of trajectories, further comprises:

determining another portion of the plurality of trajectories based on one or more other paths that trace across two or more other objects that are scanned by the projector;

determining two or more other rays based on one or more endpoints associated with the other portion of the plurality of trajectories; and

updating the origin point of the projector based on an intersection of the two or more other rays.

4 . The method of claim 1 , wherein determining the plurality of trajectories, further comprises:

generating a plurality of events based on energy from the beam that is reflected to a sensor by one or more of the first object or the second object, wherein each event is associated with an x-axis value and a y-axis value that corresponds to a pixel location in the sensor, and wherein each event is associated with a timestamp that corresponds to a time the event is generated; and

wherein the plurality of trajectories are based on one or more portions of the plurality of events that correspond to the one or more paths.

5 . The method of claim 1 , further comprising:

determining one or more timestamps associated with one or more candidate trajectories, wherein each timestamp is associated with an endpoint of the one or more candidate trajectories;

excluding a portion of the one or more candidate trajectories from the plurality of trajectories based on a difference between the one or more timestamps exceeding a threshold value.

6 . The method of claim 1 , wherein determining the two or more rays, further comprises:

geometrically projecting each ray from a second endpoint to a first endpoint, wherein the second endpoint and the first endpoint are associated with two separate trajectories that are associated with a same path.

7 . The method of claim 1 , further comprising:

determining a positional disparity between the first object and the second object based on the plurality of trajectories; and

associating a confidence score with the origin point based on a value of the positional disparity, wherein the confidence score is proportional to a magnitude of the positional disparity.

8 . A processor readable non-transitory storage media that includes instructions for calibrating a system, wherein execution of the instructions by one or more processors on one or more network computers performs actions, comprising:

scanning a plurality of paths of one or more beams across a first object and a second object, wherein the plurality of paths are generated by a projector, and wherein the first object is disposed between the second object and the projector,

determining a plurality of trajectories based on the one or more beams scanned on the plurality of paths across the first object and the second object;

employing one or more breaks in one or more of the plurality of paths to determine a first portion of the plurality of trajectories that correspond to a first portion of the one or more paths scanned across the first object, wherein the one or more breaks in the one or more paths are employed to determine a second portion of the plurality of trajectories that correspond to a second portion of the one or more paths scanned across the second object;

determining one or more first endpoints of the first portion of the trajectories and determining one or more second endpoints of the second portion of the trajectories based on the one or more breaks in the one or more paths;

determining two or more rays separated by the one or more breaks caused by a depth between the first object and the second object and are disposed along a first portion and a second portion of a corresponding trajectory based on the one or more second endpoints and the one or more first endpoints;

determining an origin point of the one or more beams generated by the projector based on an intersection of the two or more rays; and

calibrating the system based on the origin point for the projector.

9 . The media of claim 8 , wherein determining the origin point for the projector, further comprises:

determining two or more intersections based on a bundle of three or more determined rays; and

updating the origin point based on an average location of the two or more intersections.

10 . The media of claim 8 , wherein determining the plurality of trajectories, further comprises:

determining another portion of the plurality of trajectories based on one or more other paths that trace across two or more other objects that are scanned by the projector;

determining two or more other rays based on one or more endpoints associated with the other portion of the plurality of trajectories; and

updating the origin point of the projector based on an intersection of the two or more other rays.

11 . The media of claim 8 , wherein determining the plurality of trajectories, further comprises:

generating a plurality of events based on energy from the beam that is reflected to a sensor by one or more of the first object or the second object, wherein each event is associated with an x-axis value and a y-axis value that corresponds to a pixel location in the sensor, and wherein each event is associated with a timestamp that corresponds to a time the event is generated; and

wherein the plurality of trajectories are based on one or more portions of the plurality of events that correspond to the one or more paths.

12 . The media of claim 8 , further comprising:

determining one or more timestamps associated with one or more candidate trajectories, wherein each timestamp is associated with an endpoint of the one or more candidate trajectories;

excluding a portion of the one or more candidate trajectories from the plurality of trajectories based on a difference between the one or more timestamps exceeding a threshold value.

13 . The media of claim 8 , wherein determining the two or more rays, further comprises:

geometrically projecting each ray from a second endpoint to a first endpoint, wherein the second endpoint and the first endpoint are associated with two separate trajectories that are associated with a same path.

14 . The media of claim 8 , further comprising:

determining a positional disparity between the first object and the second object based on the plurality of trajectories; and

associating a confidence score with the origin point based on a value of the positional disparity, wherein the confidence score is proportional to a magnitude of the positional disparity.

15 . A network computer for calibrating a system, comprising:

a memory that stores at least instructions; and

one or more processors configured to execute instructions, wherein the instructions perform actions, including:

scanning a plurality of paths of one or more beams across a first object and a second object, wherein the plurality of paths are generated by a projector, and wherein the first object is disposed between the second object and the projector;

determining a plurality of trajectories based on the one or more beams scanned on the plurality of paths across the first object and the second object;

employing one or more breaks in one or more of the plurality of paths to determine a first portion of the plurality of trajectories that correspond to a first portion of the one or more paths scanned across the first object, wherein the one or more breaks in the one or more paths are employed to determine a second portion of the plurality of trajectories that correspond to a second portion of the one or more paths scanned across the second object;

determining one or more first endpoints of the first portion of the trajectories and determining one or more second endpoints of the second portion of the trajectories based on the one or more breaks in the one or more paths;

determining two or more rays separated by the one or more breaks caused by a depth between the first object and the second object and are disposed along a first portion and a second portion of a corresponding trajectory based on the one or more second endpoints and the one or more first endpoints;

determining an origin point of the one or more beams generated by the projector based on an intersection of the two or more rays; and

calibrating the system based on the origin point for the projector.

16 . The network computer of claim 15 , wherein determining the origin point for the projector, further comprises:

determining two or more intersections based on a bundle of three or more determined rays; and

updating the origin point based on an average location of the two or more intersections.

17 . The network computer of claim 15 , wherein determining the plurality of trajectories, further comprises:

determining another portion of the plurality of trajectories based on one or more other paths that trace across two or more other objects that are scanned by the projector;

determining two or more other rays based on one or more endpoints associated with the other portion of the plurality of trajectories; and

updating the origin point of the projector based on an intersection of the two or more other rays.

18 . The network computer of claim 15 , wherein determining the plurality of trajectories, further comprises:

generating a plurality of events based on energy from the beam that is reflected to a sensor by one or more of the first object or the second object, wherein each event is associated with an x-axis value and a y-axis value that corresponds to a pixel location in the sensor, and wherein each event is associated with a timestamp that corresponds to a time the event is generated; and

wherein the plurality of trajectories are based on one or more portions of the plurality of events that correspond to the one or more paths.

19 . The network computer of claim 15 , wherein the one or more processors are configured to execute instructions, wherein the instructions perform actions further comprising:

determining one or more timestamps associated with one or more candidate trajectories, wherein each timestamp is associated with an endpoint of the one or more candidate trajectories;

excluding a portion of the one or more candidate trajectories from the plurality of trajectories based on a difference between the one or more timestamps exceeding a threshold value.

20 . The network computer of claim 15 , wherein determining the two or more rays, further comprises:

geometrically projecting each ray from a second endpoint to a first endpoint, wherein the second endpoint and the first endpoint are associated with two separate trajectories that are associated with a same path.

21 . The network computer of claim 15 , wherein the one or more processors are configured to execute instructions, wherein the instructions perform actions further comprising:

determining a positional disparity between the first object and the second object based on the plurality of trajectories; and

associating a confidence score with the origin point based on a value of the positional disparity, wherein the confidence score is proportional to a magnitude of the positional disparity.

22 . A system for calibrating a system, comprising:

a network computer, comprising:

a memory that stores at least instructions; and

one or more processors configured to execute instructions, wherein the instructions perform actions, including:

scanning a plurality of paths of one or more beams across a first object and a second object, wherein the plurality of paths are generated by a projector, and wherein the first object is disposed between the second object and the projector;

determining a plurality of trajectories based on the one or more beams scanned on the plurality of paths across the first object and the second object;

employing one or more breaks in one or more of the plurality of paths to determine a first portion of the plurality of trajectories that correspond to a first portion of the one or more paths scanned across the first object, wherein the one or more breaks in the one or more paths are employed to determine a second portion of the plurality of trajectories that correspond to a second portion of the one or more paths scanned across the second object;

determining one or more first endpoints of the first portion of the trajectories and determining one or more second endpoints of the second portion of the trajectories based on the one or more breaks in the one or more paths;

determining two or more rays separated by the one or more breaks caused by a depth between the first object and the second object and are disposed along a first portion and a second portion of a corresponding trajectory based on the one or more second endpoints and the one or more first endpoints;

determining an origin point of the one or more beams generated by the projector based on an intersection of the two or more rays; and

calibrating the system based on the origin point for the projector; and

one or more client computers, comprising:

a memory that stores at least instructions; and

one or more processors configured to execute instructions, wherein the instructions perform actions, including, determining one or more of the plurality paths.

23 . The system of claim 22 , wherein determining the origin point for the projector, further comprises:

determining two or more intersections based on a bundle of three or more determined rays; and

updating the origin point based on an average location of the two or more intersections.

24 . The system of claim 22 , wherein determining the plurality of trajectories, further comprises:

determining another portion of the plurality of trajectories based on one or more other paths that trace across two or more other objects that are scanned by the projector;

determining two or more other rays based on one or more endpoints associated with the other portion of the plurality of trajectories; and

updating the origin point of the projector based on an intersection of the two or more other rays.

25 . The system of claim 22 , wherein determining the plurality of trajectories, further comprises:

generating a plurality of events based on energy from the beam that is reflected to a sensor by one or more of the first object or the second object, wherein each event is associated with an x-axis value and a y-axis value that corresponds to a pixel location in the sensor, and wherein each event is associated with a timestamp that corresponds to a time the event is generated; and

wherein the plurality of trajectories are based on one or more portions of the plurality of events that correspond to the one or more paths.

26 . The system of claim 22 , wherein the one or more processors of the network computer are configured to execute instructions, wherein the instructions perform actions further comprising: determining one or more timestamps associated with one or more candidate trajectories, wherein each timestamp is associated with an endpoint of the one or more candidate trajectories;

excluding a portion of the one or more candidate trajectories from the plurality of trajectories based on a difference between the one or more timestamps exceeding a threshold value.

27 . The system of claim 22 , wherein determining the two or more rays, further comprises:

geometrically projecting each ray from a second endpoint to a first endpoint, wherein the second endpoint and the first endpoint are associated with two separate trajectories that are associated with a same path.

28 . The system of claim 22 , wherein the one or more processors of the network computer are configured to execute instructions, wherein the instructions perform actions further comprising: determining a positional disparity between the first object and the second object based on the plurality of trajectories; and

associating a confidence score with the origin point based on a value of the positional disparity, wherein the confidence score is proportional to a magnitude of the positional disparity.