# US 2022/0035013 A1 · Fast numerical simulation method for laser radar ranging considering speed factor

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2022/0035013 A1
- Document ID: US20220035013A1
- Status: Published application
- Kind: A1
- Application number: 17/412,188
- Filed: 2021-08-25
- Published: 2022-02-03
- Earliest claimed: 2020-07-30
- Assignees: Zhejiang Lab
- Applicants: Zhejiang Lab
- Inventors: Wei HUA; Jianjian GAO; Tian XIE; Rong LI
- Web page: https://patentgrep.com/patent/US20220035013A1

## CPC

- G01S 7/497: Means for monitoring or calibrating
- G01S 17/006: {Theoretical aspects}
- G01S 17/08: for measuring distance only (indirect measurement G01S17/46; active triangulation systems G01S17/48)
- G01S 17/42: Simultaneous measurement of distance and other co-ordinates (indirect measurement G01S17/46)
- G01S: RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES

## Abstract

The present disclosure relates to a fast numerical simulation method for laser radar ranging considering a speed factor. According to the method, the motion of the laser radar itself and the motion of an object in the surrounding environment are fully considered in the simulation process. The motion of the laser radar itself not only includes the overall motion of the device, but also includes the rotary scanning motion of a laser emitter, so that accurate numerical simulation is provided. In addition, the amount of calculation is simplified by introducing a sampling point set, and the effect of improving the accuracy of simulation by using a small amount of calculation is achieved. The method is especially suitable for a scenario where the laser radar itself and/or surrounding objects are in a high-speed motion state, and can achieve a significantly higher simulation precision than that achieved by existing methods.

## Claims

### Claim 1

A fast numerical simulation method for laser radar ranging considering a speed factor, comprising the following steps:
(1) assuming a mechanical rotary laser radar to be simulated as Lidar, setting a working mode and parameters of Lidar as follows: Lidar comprises NL laser emitters, the laser emitters are configured to synchronously emit laser rays at a frequency f, each of the laser emitters emits one beam of laser ray, starting points of the beams are a same point on the Lidar which is defined as a reference point, all the laser emitters are configured for fixed-axis rotation about a straight line passing through the reference point, and the straight line is defined as a rotation axis; a plane perpendicular to the rotation axis is defined as a reference plane, and NL laser rays emitted by the laser emitters at a same moment are located in a plane perpendicular to the reference plane; a direction of either side of the rotation axis is taken as a rotation axis direction, and included angles formed by the NL laser rays and the rotation axis direction are successively Θ0, Θ1, Θ2, . . . , ΘNL−1, which satisfy Θ1<Θj, and 0<=i<j<NL; vertical projections of the laser rays emitted by Lidar at a starting moment of each scan cycle on the reference plane coincide with a ray emitted from the reference point, the ray emitted from the reference point is defined as a reference line, an angle by which the laser emitter rotate in a scan cycle T is Φmax=ωT, where ω is a rotational angular velocity of the laser emitter in the scan cycle T, and after the scan cycle ends, the laser emitter returns to the same position and pose as the scan cycle begins; a maximum detectable range of the Lidar is Dmax; positions and poses of the reference point, the reference line, the reference plane, and the rotation axis on Lidar are all defined in an object coordinate system fixed on Lidar;
(2) selecting a positive integer K, and dividing a scan angle range [0,Φmax] into K scan angle intervals [Φ0, Φ1], [Φ1, Φ2], [ΦK−1, ΦK], so that each horizontal scan angle interval is less than 180 degrees, where Φ0=0, and ΦK=Φmax;
(3) starting a ranging simulation of Lidar in one horizontal scan cycle: assuming that a simulation moment at this time is tnT, then for each simulation moment tk=tnT+Φk/ω, where k∈{0, 1, . . . K−1}, the following processing is performed:
(3.1) calculating and updating positions and poses of Lidar and objects that can reflect lasers around Lidar at a moment tk;
(3.2) sampling object surfaces that can reflect lasers around Lidar, and generating a point set Bk through calculation, wherein for any sampling point q∈Bk, the point q satisfies φ(q)∈[Φk,Φk−1], θ(q)∈[Θ0, ΘNL−1] and a distance between the reference point and the point q is less than or equal to Dmax; wherein the point q is a nearest intersection point between R(q) and an object surface that can reflect lasers around Lidar, R(q) is a ray starting from the reference point and passing through the point q, φ(q) is an angle between the projection of R(q) on the reference plane and the reference line, and θ(q) is an angle between R(q) and the direction of the rotation axis;
(3.3) generating a two-dimensional data structure Ck having ML columns and NL rows, and initializing each element to a non-valid value, wherein ML is a smallest integer greater than or equal to (Φk+1−Φk)f/ω, and for each i∈{0, 1, 2 . . . ML−1}, elements in an ith column of Ck are calculated through the following steps:
(3.3.1) when i is 0, directly performing step (3.3.2); when i is greater than 0, calculating and updating positions and poses of Lidar and objects that can reflect lasers around Lidar at a moment tk+i·f−1;
(3.3.2) traversing each point q in Bk, calculating and updating the position of the point q at the moment tk+i·f−1 according to a position and a pose of an object to which the point q belongs, and determining whether the point q satisfies the following conditions:
|φ(q)−Φk−(i/ML)(Φk+1−Φk)|≤δ1, (I)
|θ(q)−Θjj|≤δ2, (II)
where δ1 is a first preset threshold, δ2 is a second preset threshold, Θjj is a value closest to θ(q) in a sequence {Θ0, Θ1, Θ2, . . . , ΘNL−1}, and jj is a sequence number of the value in the sequence;
(3.3.3) if the point q satisfies both the conditions (I) and (II), updating an element Ck[i,jj] in an ith column and a jjth row of Ck with a distance between the reference point and the point q; if the point q does not satisfy both the conditions (I) and (II), checking whether a next point q satisfies the conditions (I) and (II);
(3.4) outputting data structures C0, C1, CK−1, which are ranging simulation results of Lidar in the current scan cycle, wherein values stored in an element of an ith column of a kth data structure Ck are ranging simulation results of the NL laser emitters at a simulation moment tnT+Φk/ω+i·f−1;
(4) if the simulation does not reach an ending condition, repeating step (3); otherwise, ending the simulation process.

### Claim 2 (depends on 1)

The fast numerical simulation method for laser radar ranging considering a speed factor according to claim 1, wherein each point in the point set Bk generated in the step (3.2) comprises position coordinates of the point in an object coordinate system of the object to which the point belongs, and information for directly or indirectly obtaining a position and a pose of the object to which the point belongs in the object coordinate system.

### Claim 3 (depends on 1)

The fast numerical simulation method for laser radar ranging considering a speed factor according to claim 1, wherein when the element Ck[i,jj] in the ith column and the jjth row of Ck is updated with the distance between the reference point and the point q in the step (3.3.3), the following updating rule is adopted: if Ck[i,jj] is a non-valid value set during initialization, then setting Ck[i,jj] to the distance between the reference point and the point q; if Ck[i,jj] is not the non-valid value set during initialization and the distance between the reference point and the point q is less than Ck[i,jj], then setting Ck[i,jj] to the distance between the reference point and the point q; if Ck[i,jj] is not the non-valid value set during initialization and the distance between the reference point and the point q is greater than or equal to Ck[i,jj], then checking whether the next point q satisfies the conditions (I) and (II).
