Simulation method and device of solid-state laser radar, computer equipment and medium

Through solid-state lidar simulation method, target scanning parameters are obtained and calculated, laser ray scanning detection is performed, and object point cloud data is generated, which solves the problem of low scanning accuracy of lidar in the existing technology, and achieves higher scanning accuracy and control capabilities.

CN120178697AActive Publication Date: 2025-06-20WUWEN ZHIXING TECHNOLOGY (YANGZHOU) CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202510185493.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-02-19
Publication Date
2025-06-20
Estimated Expiration
2045-02-19

AI Technical Summary

Technical Problem

In the simulation implementation of existing lidar, the rotary full-circle scanning method leads to a fixed scanning angle and low freedom of vertical scanning control, which affects the scanning accuracy of autonomous driving or robot algorithms.

Method used

A solid-state lidar simulation method is provided. By obtaining the number of target scanning points, traversal and calculate the target scanning parameters, including the current traversal angle, laser scanning angle, laser pitch angle index and laser pitch angle, laser ray scanning detection, and generate object point cloud data.

Benefits of technology

It effectively improves the scanning accuracy of the lidar and improves the scanning control capability of key areas.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120178697A_ABST
    Figure CN120178697A_ABST
Patent Text Reader

Abstract

The invention provides a solid-state laser radar simulation method and device, computer equipment and a medium. The solid-state laser radar simulation method comprises the steps of obtaining a target scanning point number of a laser radar relative to a current scanning frame; in the scanning simulation process of the laser radar in a scanning range formed by a preset reference point number and a target scanning point number, traversing and calculating target scanning parameters of the laser radar relative to a current scanning frame, the target scanning parameters including a current traversing angle, a laser scanning angle, a laser pitch angle index and a laser pitch angle; performing laser ray scanning detection on the laser radar based on the target scanning parameters to obtain fusion intersection point information of each laser ray and a virtual object in the analogue simulation scene; and based on fusion intersection point information of each laser ray and a virtual object in the analogue simulation scene, generating object point cloud data obtained by analogue simulation of the laser radar. Therefore, the scanning precision of the laser radar is effectively improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present disclosure relate to the field of lidar simulation technology, and more particularly, to a simulation method, apparatus, computer device, and medium applicable to a solid-state lidar. Background Art

[0002] Lidar simulation is usually applied in the process of autonomous driving simulation testing or robot simulation testing. By generating lidar data in a simulation environment, it is convenient to perform open-loop testing or closed-loop testing of algorithms.

[0003] In the related art, in the simulation implementation of existing lidars, it is mainly based on the method of rotating full-circle scanning. The scanning angle is relatively fixed, and in the vertical scanning process, a one-time scanning method of laser beams is adopted, resulting in a low degree of freedom in controlling the vertical scanning, which will affect the scanning accuracy of key areas of autonomous driving algorithms or robot algorithms.

[0004] However, with the existing method, the radar scanning accuracy is low. Summary of the Invention

[0005] The embodiments described herein provide a simulation method, apparatus, computer device, and medium for a solid-state lidar, which overcome the above problems.

[0006] In a first aspect, according to the content of the present disclosure, a simulation method for a solid-state lidar is provided, including:

[0007] Obtaining the target number of scan points of the lidar relative to the current scan frame;

[0008] During the process of simulating the scan of the lidar within the scan range composed of the preset reference number of points and the target number of scan points, traversing and calculating the target scan parameters of the lidar relative to the current scan frame, where the target scan parameters include: the current traversal angle, the laser scan angle, the laser elevation angle index, and the laser elevation angle;

[0009] Based on the target scan parameters, performing a laser ray scan detection on the lidar to obtain the fusion intersection information of each laser ray with the virtual objects in the simulation scene;

[0010] Based on the fusion intersection information of each laser ray with the virtual objects in the simulation scene, generating the object point cloud data obtained by the lidar for simulation.

[0011] In a second aspect, according to the content of the present disclosure, a simulation apparatus for a solid-state lidar is provided, including:

[0012] An obtaining module, configured to obtain the target number of scan points of the lidar relative to the current scan frame;

[0013] A determination module, configured to traverse and calculate target scanning parameters of the lidar relative to the current scanning frame during the scanning simulation process of the lidar within a scanning range composed of a preset reference number of points and the target number of scanning points, where the target scanning parameters include: the currently traversed angle, the laser scanning angle, the laser pitch angle index, and the laser pitch angle;

[0014] A detection module, configured to perform laser ray scanning detection on the lidar based on the target scanning parameters to obtain the fusion intersection information of each laser ray and a virtual object in the simulation scene;

[0015] A generation module, configured to generate the object point cloud data obtained by the lidar through simulation based on the fusion intersection information of each laser ray and a virtual object in the simulation scene.

[0016] In a third aspect, a computer device is provided, including a memory and a processor. A computer program is stored in the memory, and when the processor executes the computer program, the steps of the simulation method of the solid-state lidar in any one of the above embodiments are implemented.

[0017] In a fourth aspect, a computer-readable storage medium is provided. A computer program is stored on the computer-readable storage medium, and when the computer program is executed by the processor, the steps of the simulation method of the solid-state lidar in any one of the above embodiments are implemented.

[0018] The simulation method of the solid-state lidar provided in the embodiments of the present application obtains the target number of scanning points of the lidar relative to the current scanning frame; during the scanning simulation process of the lidar within a scanning range composed of a preset reference number of points and the target number of scanning points, traverses and calculates the target scanning parameters of the lidar relative to the current scanning frame, where the target scanning parameters include: the currently traversed angle, the laser scanning angle, the laser pitch angle index, and the laser pitch angle; performs laser ray scanning detection on the lidar based on the target scanning parameters to obtain the fusion intersection information of each laser ray and a virtual object in the simulation scene; and generates the object point cloud data obtained by the lidar through simulation based on the fusion intersection information of each laser ray and a virtual object in the simulation scene. In this way, the scanning accuracy of the lidar is effectively improved.

[0019] The above description is only an overview of the technical solutions of the embodiments of the present application. In order to be able to understand the technical means of the embodiments of the present application more clearly, it can be implemented according to the content of the description. And in order to make the above and other purposes, features, and advantages of the embodiments of the present application more obvious and understandable, the following specific embodiments of the present application are specifically given. Description of the Drawings

[0020] To more clearly illustrate the technical solutions of the embodiments of the present disclosure, the accompanying drawings of the embodiments will be briefly described below. It should be understood that the following-described accompanying drawings only relate to some embodiments of the present disclosure and do not limit the present disclosure, where:

[0021] Figure 1 is a schematic flowchart of a simulation method for a solid-state lidar provided by the present disclosure.

[0022] Figure 2A is a schematic scanning diagram of a lidar provided by the present disclosure.

[0023] Figure 2B is another schematic scanning diagram of a lidar provided by the present disclosure.

[0024] Figure 2C is yet another schematic scanning diagram of a lidar provided by the present disclosure.

[0025] Figure 3 is a schematic structural diagram of a simulation device for a solid-state lidar provided by the present disclosure.

[0026] Figure 4 is a schematic structural diagram of a computer device provided by the present disclosure.

[0027] It should be noted that the elements in the accompanying drawings are schematic and not drawn to scale. Detailed Embodiments

[0028] To make the objectives, technical solutions, and advantages of the embodiments of the present disclosure clearer, the technical solutions of the embodiments of the present disclosure will be clearly and completely described below in conjunction with the accompanying drawings. Obviously, the described embodiments are some, but not all, of the embodiments of the present disclosure. All other embodiments obtained by those skilled in the art based on the described embodiments of the present disclosure without creative efforts also fall within the scope of protection of the present disclosure.

[0029] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those skilled in the art to which the subject matter of the present disclosure belongs. Further, it will be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the specification and the relevant art, and will not be interpreted in an idealized or overly formal form unless otherwise clearly defined herein. As used herein, the statement of joining or coupling two or more parts together shall mean that these parts are directly joined together or joined through one or more intermediate components.

[0030] References to "embodiments" in this specification mean that the specific features, structures, or characteristics described in connection with the embodiments can be included in at least one embodiment of the present application. The phrase "embodiment" appearing at various positions in the specification does not necessarily refer to the same embodiment, nor is it an independent or alternative embodiment mutually exclusive with other embodiments. Those skilled in the art will explicitly and implicitly understand that the embodiments described herein can be combined with other embodiments.

[0031] The term "and / or" in this specification merely describes the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: the existence of A, the simultaneous existence of A and B, and the existence of B. In addition, the character " / " in this specification generally represents an "or" relationship between the associated objects before and after. Terms such as "first" and "second" are only used to distinguish one component (or a part of the component) from another component (or another part of the component).

[0032] In the description of the present application, unless otherwise specified, the meaning of "a plurality" refers to two or more (including two). Similarly, "multiple groups" refers to two or more groups (including two groups).

[0033] To enable those skilled in the art to better understand the solution of the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings.

[0034] Figure 1 is a schematic flowchart of a simulation method for a solid-state lidar provided by an embodiment of the present disclosure, as Figure 1 shown, the specific process of the simulation method for the solid-state lidar includes:

[0035] S110. Obtain the target number of scan points of the lidar relative to the current scan frame.

[0036] Among them, the lidar in this embodiment can automatically detect parameters such as the beam angle, scan angle, number of beams, and beam interval of the lidar based on the existing point cloud data; calculate the horizontal / vertical FOV angle by obtaining the maximum boundary angle in the horizontal or vertical direction of the current frame of point cloud; calculate the maximum number of points in the vertical direction of the point cloud according to the storage method of the point cloud as the vertical number of beams of the lidar. Similarly, the maximum number of points in the horizontal direction is used as the horizontal number of beams of the lidar. The parameter information of the lidar is shown in Table 1 below.

[0037] Table 1 Lidar Parameter Table

[0038]

[0039]

[0040] The number of target scan points of the lidar relative to the current scan frame is the number of lidar points that need to be updated in the current scan frame.

[0041] In some embodiments, obtaining the number of target scan points of the lidar relative to the current scan frame includes:

[0042] Obtaining the equivalent number of lines of the lidar relative to the current scan frame in the first direction; determining the laser beam scanning duration of the lidar relative to the current scan frame in the second direction based on the equivalent number of lines of the lidar relative to the current scan frame in the first direction and the scanning frequency of the lidar; determining the number of laser beam scan points of the lidar relative to the current scan frame in the second direction based on the laser beam bundle of the lidar, the laser beam scanning duration of the lidar relative to the current scan frame in the second direction, and the number of scans per second of the lidar; determining the number of target scan points of the lidar relative to the current scan frame based on the number of laser beam scan points of the lidar relative to the current scan frame in the second direction, the scanning interval duration between adjacent scan frames, and the laser beam scanning duration of the lidar relative to the current scan frame in the second direction.

[0043] Wherein, the first direction is the vertical direction relative to the current ground, that is, the vertical direction. The equivalent number of lines of the lidar relative to the current scan frame in the first direction is the vertical equivalent number of lines EqualChannelCount of the lidar relative to the current scan frame. As shown in the following formula (1).

[0044] EqualChannelCount = VerticalCount (1)

[0045] In formula (1), VerticalCount is the number of vertical scans.

[0046] The first direction is the horizontal direction relative to the current ground, that is, the horizontal direction. The laser beam scanning duration of the lidar relative to the current scan frame in the second direction is the time length TimePerScan for the laser beam to scan horizontally once.

[0047] Determining the laser beam scanning duration of the lidar relative to the current scan frame in the second direction based on the equivalent number of lines of the lidar relative to the current scan frame in the first direction and the scanning frequency of the lidar can be seen as shown in formula (2).

[0048] TimePerScan = 1 ÷ (RotationFrequency × EqualChannelCount) (2)

[0049] In formula (2), RotationFrequency is the scanning frequency of the lidar.

[0050] The number of laser beam scans of the lidar in the second direction relative to the current scan frame is the number of points for one lateral scan of the laser beam of the lidar relative to the current scan frame.

[0051] Based on the laser beam bundle of the lidar, the laser beam scan duration of the lidar in the second direction relative to the current scan frame, and the number of scans per second of the lidar, determine the number of laser beam scans of the lidar in the second direction relative to the current scan frame. Refer to formula (3) as follows.

[0052] PointsWithOneLaserPerChannel

[0053] =PointsPerSecond×TimePerScan÷ChannelCount (3)

[0054] In formula (3), PointsPerSecond is the number of scans per second, that is, the total number of scans in one second.

[0055] Based on the number of laser beam scans of the lidar in the second direction relative to the current scan frame, the scan interval duration between adjacent scan frames, and the laser beam scan duration of the lidar in the second direction relative to the current scan frame, determine the target number of scans of the lidar relative to the current scan frame. Refer to formula (4) as follows.

[0056] PointsToScanWithOneLaser=DeltaTime÷TimePerScan×PointsWithOneLaserPerChannel (4)

[0057] In formula (4), PointsToScanWithOneLaser is the target number of scans of the lidar relative to the current scan frame; DeltaTime (DeltaT) is the scan interval duration between adjacent scan frames, that is, the time interval between every two frames.

[0058] It should be noted that in this embodiment, the scanning process is calculated for each physical engine frame interval. The entire simulation process is implemented in the physical engine, and the physical engine is updated at a fixed frequency per second. The physical engine frame interval refers to the interval time between two updates.

[0059] S120. During the process of simulating the scanning of the lidar within the scanning range composed of the preset reference number of points and the target number of scans, traverse and calculate the target scanning parameters of the lidar relative to the current scan frame.

[0060] Among them, the target scanning parameters include: the current traversal angle, the laser scanning angle, the laser elevation angle index, and the laser elevation angle.

[0061] For example, in each scan frame, based on the interval between two laser points and with the current frame time interval as the total duration, a traversal simulation of the number of laser lines is performed, and traversal calculations are carried out within the range from 0 (i.e., the preset reference number of points) to PointsToScanWithOneLaser. The following calculations are performed for each traversal.

[0062] The calculation of the current traversal angle CurrentAngle can be seen in formula (5) as follows.

[0063] CurrentAngle = HorizontalAngle + AngleDistanceOfLaserHorizontal × indexOfLaser (5)

[0064] In formula (5), HorizontalAngle is the horizontal laser beam angle; AngleDistanceOfLaserHorizontal is the angle difference between every two horizontal laser points, which can be obtained from formula (6); indexOfLaser is the traversal index value of the horizontal laser line during the current laser beam scan.

[0065] AngleDistanceOfLaserHorizontal

[0066] = HorizontalFov ÷ PointsWithOneLaserPerChannel (6)

[0067] In formula (6), HorizontalFov is the horizontal scan angle.

[0068] The calculation of the laser scan angle HorizAngle can be seen in formula (7) as follows.

[0069] HorizAngle = CurrentAngle ÷ HorizontalFov - HorizontalFov ÷ 2 (7)

[0070] The calculation of the laser pitch angle index ChannelIndex can be seen in formula (8) as follows.

[0071] ChannelIndex = (CurrentChannel + CurrentAngle / HorizontalFov) % VerticalCount (8)

[0072] The calculation of the laser pitch angle VertAngle can be seen in formula (9) as follows.

[0073] VertAngle = LaserAngles[ChannelIndex] + idxChannel × LaserAngleSpacing(9)

[0074] In Equation (9), LaserAngles is the vertical laser beam angle; LaserAngleSpacing is the laser angle spacing; idxChannel is the traversal index value of the vertical laser line during the current laser beam scanning, and the interval of each traversal corresponds to between 0 and ChannelCount.

[0075] S130. Perform laser ray scanning detection on the lidar based on the target scanning parameters to obtain the fusion intersection information of each laser ray and the virtual object in the simulation scene.

[0076] Among them, during the ray scanning process, since the scanning rays of the same beam are similar, a multi-threaded parallel computing scheme is adopted in the calculation process, which greatly improves the simulation efficiency. According to the simulation results of the scanning rays, record the "collision point" information (i.e., the fusion intersection information) of each ray and the scene object respectively, which is convenient for generating the point cloud data of the lidar simulation according to the recorded "collision point" information.

[0077] In some embodiments, performing laser ray scanning detection on the lidar based on the target scanning parameters to obtain the fusion intersection information of each laser ray and the virtual object in the simulation scene includes:

[0078] Determine the ray start point data of the laser scanning based on the position information of the sensor in the lidar; determine the ray end point data of the laser scanning based on the current traversal angle, laser scanning angle, laser pitch angle index, and laser pitch angle; perform laser ray scanning detection on the lidar based on the ray start point data and the ray end point data to obtain the fusion intersection information of each laser ray and the virtual object in the simulation scene.

[0079] For example, the ray start point data LaserStart is shown in Equation (10).

[0080] LaserStart = SensorPos (10) In Equation (10), SensorPos is the position information of the sensor in the lidar, that is, the specific position coordinates.

[0081] Based on the current traversal angle, laser scanning angle, laser pitch angle index, and laser pitch angle, determine the ray end point data LaserEnd of the laser scanning, as shown in Equation (11).

[0082] LaserEnd = SensorRange × Direction + SensorPos (11)

[0083] In formula (11), SensorRange is the sensor range, that is, the range between the minimum value and the maximum value of the input signal that the sensor can accurately measure; Direction is the ray direction, which can be specifically determined according to formula (12).

[0084] Direction = SensorRot × LaserRotation (12)

[0085] In formula (12), SensorRot is the sensor angle; LaserRotation is the laser beam direction, as specifically shown in formula (13).

[0086] LaserRotation.Pitch = VerticalAngle

[0087] LaserRotation.Yaw = HorizontalAngle (13)

[0088] LaserRotation.Roll = 0

[0089] After that, the horizontal angle and the vertical angle at the end of the current frame can be saved for the next frame of scanning.

[0090] The current horizontal angle is as shown in formula (14).

[0091] HorizontalAngle = HorizontalAngleDistance ÷ HorizontalFov

[0092] In formula (14), HorizontalAngleDistance is the total traversed angle of the current frame, which can be determined according to formula (15).

[0093] HorizontalAngleDistance = CurrentHorizontalAngle + AngleDistanceOfLaserHorizontal × PointsToScanWithOneLaser (15) The current vertical angle index is as shown in formula (16).

[0094] CurrentChannel = (CurrentChannel + HorizontalAngleDistance ÷ HorizontalFov) % VerticalCount (16)

[0095] S140. Generate the object point cloud data obtained by the lidar through simulation based on the fusion intersection information of each laser ray and the virtual object in the simulation scene.

[0096] Among them, the object point cloud data obtained by the lidar through simulation can be generated based on the fusion intersection information of each laser ray and the virtual object in the simulation scene in real-time generation mode or full-scale generation mode. For example, object coordinates, object orientation, etc.

[0097] In the real-time generation mode, the point cloud data of the segment is generated in real-time as the physical engine frame is updated and sent to the subsequent process or the autonomous driving network. In the full-scale generation mode, the point cloud result of a full circle scan is generated as the simulated solid-state lidar is updated and sent to the subsequent process or the autonomous driving network.

[0098] In this embodiment, the target number of scan points of the lidar relative to the current scan frame is obtained; during the process of scanning and simulating the lidar in the scan range composed of the preset reference number of points and the target number of scan points, the target scan parameters of the lidar relative to the current scan frame are traversed and calculated. The target scan parameters include: the current traversal angle, the laser scan angle, the laser pitch angle index, and the laser pitch angle; based on the target scan parameters, the lidar is scanned and detected by laser rays to obtain the fusion intersection information of each laser ray and the virtual object in the simulation scene; based on the fusion intersection information of each laser ray and the virtual object in the simulation scene, the object point cloud data obtained by the lidar through simulation is generated. In this way, the scanning accuracy of the lidar is effectively improved.

[0099] Since the actual lidar will increase the number of scans in the middle area, there will be a situation of alternating large and small circle scans. As Figure 2A shown, there is an alternating scanning method of large fan-shaped and small central fan-shaped near the horizontal line, where the hollow circle represents the scanning laser point of the (N - 1)th time, and the solid circle represents the scanning laser point of the Nth time.

[0100] Since there are differences in the laser point cloud data of large and small circles, the scanning time of each circle needs to be recalculated. In this embodiment, the total point ratio of large and small circles (i.e., the following preset size circles) is 2:1 for description, and the equivalent number of lines in the current vertical direction is calculated.

[0101] In some embodiments, it further includes:

[0102] Update the equivalent number of lines of the lidar in the first direction relative to the current scan frame based on the total number of scan points corresponding to the preset size circle; update the laser beam scanning duration of the lidar in the second direction relative to the current scan frame based on the updated equivalent number of lines of the lidar in the first direction relative to the current scan frame and the scanning frequency of the lidar, so as to update the target number of scan points of the lidar relative to the current scan frame.

[0103] Among them, updating the equivalent number of lines of the lidar in the first direction relative to the current scan frame based on the total number of scan points corresponding to the preset size circle can be seen in formula (17).

[0104] EqualChannelCount = VerticalCourt - SmallCircleChannels.size() ÷ 2 (17)

[0105] In formula (17), SmallCircleChannels.size() is the total number of scan points corresponding to the preset size circle.

[0106] Updating the laser beam scanning duration of the lidar in the second direction relative to the current scan frame based on the updated equivalent number of lines of the lidar in the first direction relative to the current scan frame and the scanning frequency of the lidar can be seen in formula (18).

[0107] TimePerScan = 1 / (RotationFrequency × EqualChannelCount) (18)

[0108] In some embodiments, it further includes:

[0109] Update the current traversal angle in the target scan parameters based on the number of scans of the preset size circle in the current scan frame and the scanning angle of the lidar in the second direction; determine the scan index of the lidar in the first direction relative to the current scan frame based on the updated current traversal angle; if it is determined that the current scan object is the preset size circle based on the scan index of the lidar in the first direction relative to the current scan frame, update the laser scan angle in the target scan parameters based on the updated current traversal angle and the first value; if it is determined that the current scan object is not the preset size circle based on the scan index of the lidar in the first direction relative to the current scan frame, update the laser scan angle in the target scan parameters based on the updated current traversal angle and the second value, where the first value is greater than the second value; update the laser pitch angle in the target scan parameters based on the scan index of the lidar in the first direction relative to the current scan frame, so as to update the parameters of the target scan parameters.

[0110] Among them, within the frame update cycle, the current small circle flag bit, the number of small circles scanned in the current frame, and the current small circle cache queue are increased. The current small circle flag bit SmallFlag is used to identify whether the current scan is a small circle; the number of small circles scanned in the current frame SmallNum: is used to record the number of small circles scanned in the current frame, which is used for subsequent angle calculation; the current small circle cache queue CurrentSmallChannels: is used to record the small circle index cache scanned during the current sensor scan.

[0111] In frame update, traverse and calculate within the range from 0 to PointsToScanWithOneLaser, and update the current traversal angle, the laser scanning angle, and the laser pitch angle for each traversal.

[0112] Based on the number of scans of a preset-size circle in the current scan frame and the scanning angle of the lidar in the second direction, update the current traversal angle in the target scan parameters, as shown in formula (19).

[0113] CurrentAngle = HorizontalAngle + AngleDistanceOfLaserHorizontal × indexOfLaser + SmallNum * HorizontalFov / 2 (19)

[0114] In formula (19), SmallNum is the number of scans of a preset-size circle in the current scan frame.

[0115] Based on the updated current traversal angle, determine the scan index of the lidar in the first direction relative to the current scan frame, as shown in formula (20).

[0116] NewChannel = (CurrentChannel + CurrentAngle / HorizontalFov) % VerticalCount (20)

[0117] Determine whether the current scan is a small circle, and update the number of small circles scanned in the current frame and the current small circle cache queue. When the current scan is a small circle, the laser scanning angle is as shown in formula (21); when the current scan is not a small circle, the laser scanning angle is as shown in formula (22).

[0118] HorizAngle = CurrentAngle / HorizontalFov - HorizontalFov * 0.75 (21)

[0119] In formula (21), 0.75 is the first value.

[0120] HorizAngle = CurrentAngle / HorizontalFov - HorizontalFov * 0.5 (22) In formula (22), 0.5 is the second value.

[0121] Update the laser pitch angle in the target scan parameters based on the scan index of the lidar in the first direction relative to the current scan frame, which is convenient for subsequent ray detection operations according to the current scan angle and pitch angle of the ray. Refer to formula (23) as follows.

[0122] VertAngle = LaserAngles[NewChannel] + idxChannel * LaserAngleSpacing (23) After that, save the horizontal angle and vertical angle at the end of the current frame. Record the total number of small circles traversed during the scan of the current frame, and calculate the total traversal angle of the current frame as shown in formula (24), the current horizontal angle as shown in formula (25), and the current vertical angle index as shown in formula (26).

[0123] HorizontalAngleDistance = CurrentHorizontalAngle + AngleDistanceOfLaserHorizontal * PointsToScanWithOneLaser + SmallChannelNum * HorizontalFov / 2 (24)

[0124] HorizontalAngle = HorizontalAngleDistance ÷ HorizontalFov (25)

[0125] CurrentChannel = (CurrentChannel + HorizontalAngleDistance ÷ HorizontalFov) % VertivalCount (26)

[0126] In addition, this embodiment also provides laser vertical scanning and laser horizontal scanning.

[0127] Laser horizontal scanning can be referred to as shown in formula (1-3) and formula (6).

[0128] In laser vertical scanning, based on the number of laser lines, parallel calculations are performed (each calculation on different laser lines only has a difference in the vertical angle, and other calculation processes are the same). The vertical scanning order (as Figure 2B and Figure 2C shown, Figure 2BIndicates the scanning mode below the horizontal plane. Figure 2C Indicates the scanning mode above the horizontal plane. Each time, 4 laser lines are lifted as a whole, and lifted to a position slightly below the adjacent angle of the previous scan. The hollow circles represent the scanning laser points of the (N - 1)th time, and the solid circles represent the scanning laser points of the Nth time. During the vertical scanning process, it is necessary to record the horizontal scanning position and the vertical scanning position simultaneously for the next scanning calculation.

[0129] In some embodiments, it further includes:

[0130] Obtain the relative offset of the vehicle itself under the current scan frame of the lidar; based on the relative offset of the vehicle itself under the current scan frame of the lidar, update the object point cloud data obtained by the lidar through simulation.

[0131] Among them, the influence of vehicle displacement on the laser timing is relatively large. In order to better restore the emission process of the real lidar, a scanning model with motion distortion is added to the simulation model to simulate the influence of vehicle speed and angular velocity on the emission of laser rays.

[0132] Calculated at a vehicle speed of 120 km / h and a UE update frequency of 50 Hz, the total displacement deviation for each frame update is:

[0133] PosOffset = 120 / 3.6 * 0.02 = 0.666667 (meters).

[0134] Since during the vehicle's traveling process, the angular velocity Pitch and Roll components have little influence on the vehicle's displacement, therefore, in this embodiment, the yaw component is used to calculate the possible displacement deflection. Among them, the angular velocity of the vehicle turning: w = AngularVelocity yaw ; The time for one full turn in a uniform motion state: T = 2 × PI / w; The distance traveled in one full turn in a uniform motion state: C = 2 × PI × R = vT; It can be obtained that the turning radius: R = v / w.

[0135] Estimate the relative offset of the vehicle itself according to time (i.e., the relative offset of the vehicle itself under the current scan frame of the lidar), and add it to the simulation result of the point cloud.

[0136] The rotation angle a of the current frame = w × DeltaT; Since when the rotation angle approaches 0, the turning radius approaches infinity, therefore, the calculation of displacement is divided into two cases. When the rotation angle a == 0, DeltaX = v × DeltaT, DeltaY = 0; When the rotation angle a!= 0, DeltaX = R × Sin(a), DeltaY = R - R × Cos(a) = R(1 - Cos(a)); The offset in the Z-axis direction is proportional to the Z-axis velocity component, DeltaZ = V z×DeltaT; The calculated displacement offset for the current frame is PosOffset = Vector(DeltaX, DeltaY, DeltaZ). The rotation of the vehicle's attitude is proportional to the angular velocity components of the angular velocity on each coordinate axis, and is RotOffset = AngularVelocity × deltaT.

[0137] In some embodiments, it further includes:

[0138] Render the object point cloud data obtained from the simulation of the lidar into a three-dimensional scene to obtain the three-dimensional space data corresponding to the simulation scene; display the three-dimensional space data corresponding to the simulation scene.

[0139] Among them, the point cloud data is finally rendered into a three-dimensional scene through various processes. The input of the point cloud can include but is not limited to: point cloud data generated by a lidar sensor, point cloud data recorded and played back, or loaded point cloud static files, etc.

[0140] For example, based on the characteristics of the lidar operating range, during encoding, the X, Y, and Z components of the position quantity are encoded based on 2 times the radar detection range (LidarRange), and can be respectively: ColorA = Intensity. Among them, ColorR is the red channel component in the Texture; ColorG is the green channel component in the Texture; ColorB is the blue channel component in the Texture; ColorA is the alpha channel component in the Texture; Intensity is the intensity information of each point in the point cloud, such as the intensity value after normalization.

[0142] In the particle system, analyze the color information of the texture, decode the texture, and generate information such as the position of the point. During the decoding process, the position of the point is mainly calculated as follows: The decoded point coordinate X component DecodingPosX = 2 × LidarRange × ColorR - LidarRange; the decoded point coordinate Y component DecodingPosY = 2 × LidarRange × ColorG - LidarRange; the decoded point coordinate Z component DecodingPosZ = 2 × LidarRange × ColorB - LidarRange; Intensity = ColorA.

[0143] During the rendering process, according to the requirements of the point cloud data, two rendering modes, local coordinate rendering or world coordinate rendering, can be adopted for rendering. In local coordinate rendering, it is applied to static scenes or point cloud data directly storing world coordinate positions, etc. In such scenarios, the parsed point coordinate values are directly passed to the particles for rendering: PointPoint = DecodingPos. In world coordinate rendering, it is mainly applied to the situation where the point cloud needs to move together with the vehicle in real time. Therefore, it is necessary to convert the point cloud coordinates into world coordinate values: PointPosition = DecodingPos * SensorRotation + SensorPosition; where SensorRotation is the rotation amount in the world coordinate system of the lidar sensor, SensorPosition is the position amount in the world coordinate system of the lidar sensor, and PointPosition is the position amount of the point in the world coordinate. By adapting the update frequency of the particle system to the input frequency of the point cloud data, and during the update process, continuously passing the calculated information such as the position of the point to the particles for visualization and rendering into the three-dimensional space for display.

[0144] This embodiment simulates a solid-state lidar, with a high degree of coupling to the actual data of the solid-state lidar; it adds separate controls for horizontal and vertical scanning in lidar simulation, increasing the simulation controllability and the matching degree with the actual lidar, and supports parallel acceleration, improving the calculation efficiency; it increases the scanning density for key areas during the scanning process and adds processes such as fitting and simulating motion distortion, improving the simulation accuracy.

[0145] Figure 3 The structure diagram of a simulation device for a solid-state lidar provided in this embodiment, the simulation device of the solid-state lidar may include: an acquisition module 310, a determination module 320, a detection module 330, and a generation module 340.

[0146] The acquisition module 310 is used to acquire the target number of scan points of the lidar relative to the current scan frame.

[0147] The determination module 320 is used to traverse and calculate the target scan parameters of the lidar relative to the current scan frame during the scanning simulation process where the lidar scans within a scan range composed of a preset reference number of points and the target number of scan points. The target scan parameters include: the current traversal angle, the laser scan angle, the laser elevation angle index, and the laser elevation angle.

[0148] The detection module 330 is used to perform laser ray scanning detection on the lidar based on the target scan parameters to obtain the fusion intersection information of each laser ray and the virtual object in the simulation scene.

[0149] A generation module 340, configured to generate object point cloud data obtained by lidar simulation based on the fusion intersection information of each laser ray and virtual objects in the simulation scene.

[0150] In this embodiment, optionally, the acquisition module 310 is specifically configured to:

[0151] Obtain the equivalent number of lines of the lidar in the first direction relative to the current scan frame; determine the laser beam scan duration of the lidar in the second direction relative to the current scan frame based on the equivalent number of lines of the lidar in the first direction relative to the current scan frame and the scan frequency of the lidar; determine the number of laser beam scans of the lidar in the second direction relative to the current scan frame based on the laser beam bundle of the lidar, the laser beam scan duration of the lidar in the second direction relative to the current scan frame, and the number of scans per second of the lidar; determine the target number of scans of the lidar relative to the current scan frame based on the number of laser beam scans of the lidar in the second direction relative to the current scan frame, the scan interval duration between adjacent scan frames, and the laser beam scan duration of the lidar in the second direction relative to the current scan frame.

[0152] In this embodiment, optionally, the detection module 330 is specifically configured to:

[0153] Determine the ray start point data of the laser scan based on the position information of the sensor in the lidar; determine the ray end point data of the laser scan based on the current traversal angle, the laser scan angle, the laser pitch angle index, and the laser pitch angle; perform laser ray scan detection on the lidar based on the ray start point data and the ray end point data to obtain the fusion intersection information of each laser ray and virtual objects in the simulation scene.

[0154] In this embodiment, optionally, it further includes an update module.

[0155] The update module is configured to update the equivalent number of lines of the lidar in the first direction relative to the current scan frame based on the total number of scans corresponding to the preset size circle; update the laser beam scan duration of the lidar in the second direction relative to the current scan frame based on the updated equivalent number of lines of the lidar in the first direction relative to the current scan frame and the scan frequency of the lidar, so as to update the target number of scans of the lidar relative to the current scan frame.

[0156] In this embodiment, optionally, the updating module is further configured to update the current traversal angle in the target scanning parameters based on the number of scanning times of a preset - size circle scanned by the current scanning frame and the scanning angle of the lidar in the second direction; determine the scanning index of the lidar in the first direction relative to the current scanning frame based on the updated current traversal angle; if it is determined that the current scanning object is a preset - size circle based on the scanning index of the lidar in the first direction relative to the current scanning frame, update the laser scanning angle in the target scanning parameters based on the updated current traversal angle and a first value; if it is determined that the current scanning object is not a preset - size circle based on the scanning index of the lidar in the first direction relative to the current scanning frame, update the laser scanning angle in the target scanning parameters based on the updated current traversal angle and a second value, where the first value is greater than the second value; update the laser pitch angle in the target scanning parameters based on the scanning index of the lidar in the first direction relative to the current scanning frame, so as to update the parameters of the target scanning parameters.

[0157] In this embodiment, optionally, the obtaining module 310 is further configured to obtain the relative offset of the vehicle itself under the current scanning frame of the lidar.

[0158] The updating module is further configured to update the object point cloud data obtained by the lidar through simulation based on the relative offset of the vehicle itself under the current scanning frame of the lidar.

[0159] In this embodiment, optionally, it further includes: a rendering module and a display module.

[0160] The rendering module is configured to render the object point cloud data obtained by the lidar through simulation into a three - dimensional scene to obtain three - dimensional space data corresponding to the simulation scene.

[0161] The display module is configured to display the three - dimensional space data corresponding to the simulation scene.

[0162] The simulation device of the solid - state lidar provided by the present disclosure can execute the above - mentioned method embodiment, and its specific implementation principle and technical effect can be referred to the above - mentioned method embodiment, which will not be elaborated here in the present disclosure.

[0163] The embodiment of the present application also provides a computer device. Specifically, please refer to Figure 4 , Figure 4 which is the basic structural block diagram of the computer device in this embodiment.

[0164] The computer device includes a memory 410 and a processor 420 that are communicatively connected to each other via a system bus. It should be noted that only the computer device with the memory 410 and the processor 420 is shown in the figure. However, it should be understood that it is not required to implement all the shown components, and more or fewer components can be implemented alternatively. Among them, those skilled in the art of this technology can understand that the computer device here is a device that can automatically perform numerical calculations and / or information processing according to pre-set or stored instructions, and its hardware includes but is not limited to microprocessors, application specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), embedded devices, etc.

[0165] The computer device can be a computing device such as a desktop computer, a notebook, a palm computer, and a cloud server. The computer device can interact with the user through a keyboard, a mouse, a remote control, a touchpad, or a voice control device, etc.

[0166] The memory 410 includes at least one type of readable storage medium, which includes non-volatile memory or volatile memory, such as flash memory, hard disk, multimedia card, card-type memory (e.g., SD or DX memory, etc.), random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), programmable read-only memory (PROM), magnetic memory, magnetic disk, optical disc, etc. The RAM can include static RAM or dynamic RAM. In some embodiments, the memory 410 can be an internal storage unit of the computer device, such as the hard disk or memory of the computer device. In other embodiments, the memory 410 can also be an external storage device of the computer device, such as a plug-in hard disk, Smart Media Card (SMC), Secure Digital (SD) card, or Flash Card equipped on the computer device, etc. Of course, the memory 410 can also include both the internal storage unit and the external storage device of the computer device. In this embodiment, the memory 410 is generally used to store the operating system and various application software installed on the computer device, such as the program code of the above method, etc. In addition, the memory 410 can also be used to temporarily store various types of data that have been output or will be output.

[0167] The processor 420 is generally used to execute the overall operations of the computer device. In this embodiment, the memory 410 is used to store program code or instructions, and the program code includes computer operation instructions. The processor 420 is used to execute the program code or instructions stored in the memory 410 or process data, such as running the program code of the above method.

[0168] In this text, the bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, etc. This bus system can be divided into an address bus, a data bus, a control bus, etc. For the sake of convenience of representation, only a thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.

[0169] Another embodiment of this application also provides a computer-readable medium. The computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A processor in the computer reads the computer-readable program code stored in the computer-readable medium, so that the processor can perform the functional actions specified in each step or the combination of steps in the above method; and generate a device that implements the functional actions specified in each block or the combination of blocks in the block diagram.

[0170] The computer-readable medium includes but is not limited to electronic, magnetic, optical, electromagnetic, infrared memories or semiconductor systems, devices or apparatuses, or any suitable combination of the foregoing. The memory is used to store program code or instructions, and the program code includes computer operation instructions. The processor is used to execute the program code or instructions of the above method stored in the memory.

[0171] For the definitions of the memory and the processor, reference can be made to the description of the foregoing computer device embodiments, and details are not described herein again.

[0172] In several embodiments provided by this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of modules or units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed coupling or direct coupling or communication connection to each other can be through some interfaces. The indirect coupling or communication connection of the device or unit can be in an electrical, mechanical or other form.

[0173] In each embodiment of this application, each functional unit or module can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.

[0174] When an integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the methods in various embodiments of this application. The aforementioned storage medium includes: various media that can store program codes, such as USB flash drives, mobile hard disks, read-only memories (ROMs), random access memories (RAMs), magnetic disks, or optical discs.

[0175] In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The "including" described in this application does not exclude the existence of elements or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the existence of a plurality of such elements. This application can be implemented by means of hardware including several different elements and by means of a suitably programmed computer. In the claims listing several units of a device, several of these units of the device can be embodied by the same item of hardware. The use of the first, second, and third, etc. does not indicate any order, and these words can be interpreted as names. The steps in the above embodiments, unless otherwise specified, should not be construed as limiting the order of execution.

[0176] The above embodiments are only used to illustrate the technical solution of this application, rather than to limit it; although this application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the various embodiments of this application.

Claims

1. A simulation method for a solid-state laser radar, characterized in that: include: Obtain the target scanning point number of the laser radar relative to the current scanning frame; During the scanning simulation process of the laser radar with a scanning range consisting of a preset number of reference points and the target scanning points, traversing and calculating the target scanning parameters of the laser radar relative to the current scanning frame, the target scanning parameters including: the current traversal angle, the laser scanning angle, the laser pitch angle index and the laser pitch angle; Performing laser ray scanning detection on the laser radar based on the target scanning parameters to obtain fusion intersection information of each laser ray and the virtual object in the simulation scene; Based on the fusion intersection information of each laser ray and the virtual object in the simulation scene, the object point cloud data obtained by the laser radar simulation is generated.

2. The method according to claim 1, characterized in that: The obtaining of the target scanning point number of the laser radar relative to the current scanning frame includes: Obtaining the number of equivalent lines of the laser radar in the first direction relative to the current scanning frame; Determine a laser beam scanning duration of the laser radar in a second direction relative to the current scanning frame based on the number of equivalent lines of the laser radar in the first direction relative to the current scanning frame and the scanning frequency of the laser radar; Determine the number of laser beam scanning points of the laser radar in the second direction relative to the current scanning frame based on the laser beam of the laser radar, the laser beam scanning time of the laser radar in the second direction relative to the current scanning frame, and the number of scanning points per second of the laser radar; Based on the number of laser beam scanning points of the laser radar in the second direction relative to the current scanning frame, the scanning interval duration between adjacent scanning frames and the laser beam scanning duration of the laser radar in the second direction relative to the current scanning frame, the target scanning points of the laser radar relative to the current scanning frame are determined.

3. The method according to claim 2, characterized in that The laser radar is scanned and detected based on the target scanning parameters to obtain the fusion intersection information of each laser ray and the virtual object in the simulation scene, including: Determine the ray starting point data of the laser scanning based on the position information of the sensor in the laser radar; Determine ray endpoint data of laser scanning based on the current traversal angle, the laser scanning angle, the laser pitch angle index and the laser pitch angle; The laser radar is subjected to laser ray scanning detection based on the ray starting point data and the ray ending point data to obtain fusion intersection information of each laser ray and a virtual object in a simulation scene.

4. The method according to claim 3, characterized in that Also includes: Update the number of equivalent lines of the laser radar in the first direction relative to the current scanning frame based on the total number of scanning points corresponding to the preset size circle; Based on the updated number of equivalent lines of the laser radar in the first direction relative to the current scanning frame and the scanning frequency of the laser radar, the laser beam scanning duration of the laser radar in the second direction relative to the current scanning frame is updated to update the number of target scanning points of the laser radar relative to the current scanning frame.

5. The method according to claim 4, characterized in that Also includes: Based on the number of scans of the preset size circle by the current scanning frame and the scanning angle of the laser radar in the second direction, updating the current traversal angle in the target scanning parameters; Determine a scanning index of the laser radar in the first direction relative to the current scanning frame based on the updated current traversal angle; If it is determined that the current scanning object is the preset size circle based on the scanning index of the laser radar relative to the current scanning frame in the first direction, the laser scanning angle in the target scanning parameter is updated based on the updated current traversal angle and the first value; If it is determined based on the scanning index of the laser radar relative to the current scanning frame in the first direction that the current scanning object is not the preset size circle, the laser scanning angle in the target scanning parameter is updated based on the updated current traversal angle and the second value, and the first value is greater than the second value; The laser pitch angle in the target scanning parameters is updated based on the scanning index of the laser radar in the first direction relative to the current scanning frame to update the target scanning parameters.

6. The method according to claim 1, characterized in that Also includes: Obtaining the relative offset of the laser radar to the vehicle itself in the current scanning frame; Based on the relative offset of the vehicle itself in the current scanning frame of the laser radar, the object point cloud data obtained by the simulation of the laser radar is updated.

7. The method according to claim 1, characterized in that Also includes: Rendering the object point cloud data obtained by simulating the laser radar into a three-dimensional scene to obtain three-dimensional spatial data corresponding to the simulated scene; Display the three-dimensional space data corresponding to the simulation scene.

8. A simulation device for a solid-state laser radar, characterized in that: include: An acquisition module, used to acquire the number of target scanning points of the laser radar relative to the current scanning frame; A determination module is used to traverse and calculate the target scanning parameters of the laser radar relative to the current scanning frame during the scanning simulation process of the laser radar with a scanning range consisting of a preset number of reference points and the target scanning points, wherein the target scanning parameters include: a current traversal angle, a laser scanning angle, a laser pitch angle index, and a laser pitch angle; A detection module, used to perform laser ray scanning detection on the laser radar based on the target scanning parameters, and obtain fusion intersection information of each laser ray and the virtual object in the simulation scene; The generation module is used to generate object point cloud data obtained by the laser radar simulation based on the fusion intersection information of each laser ray and the virtual object in the simulation scene.

9. A computer device, characterized in that: The method comprises a memory and a processor, wherein a computer program is stored in the memory, and when the processor executes the computer program, a simulation method for a solid-state laser radar as described in any one of claims 1 to 7 is implemented.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the simulation method of the solid-state laser radar as described in any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Simulation precision measuring method and system for vehicle-mounted laser radar simulation module

    CN109917402A

  • Real-time detection method and device for passable area, terminal and storage medium

    CN114200472A

  • Simulation method and device for virtual laser radar of vehicle

    CN115731350A

  • Laser radar point cloud simulation method and device

    CN117077409A

  • Hybrid solid-state laser radar simulation method and device, storage medium and electronic equipment

    CN118940464A