A method for simulating real-time image of airborne laser radar

By simulating the real-time image simulation of onboard lidar, the coordinates of the intersection point between the lidar ray and the obstacle are obtained, the point cloud image is drawn using HSV-height mapping and the coordinate system is converted, which solves the problems of inaccurate detection and low efficiency in onboard lidar simulation, and high-precision and efficient obstacle detection are achieved.

CN115079142BActive Publication Date: 2025-08-19NANJING LEFEI AVIATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202210654115.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-06-10
Publication Date
2025-08-19
Estimated Expiration
2042-06-10

AI Technical Summary

Technical Problem

In existing online lidar simulation, simple replacement of obstacle models leads to inaccurate detection effects and low point cloud data generation efficiency.

Method used

By simulating the real-time image simulation method of onboard lidar, the coordinate set of intersection points between lidar rays and obstacles is obtained, the point cloud image is drawn using the HSV-height mapping relationship, and the UTM to the body coordinate system is converted to output obstacle distance, azimuth angle and pitch angle data.

Benefits of technology

It realizes that the point accuracy is less than 5m within the detection distance of 1200m, the point calculation speed remains 300K/s, the obstacle detection is accurate, and the point cloud data can be subcontracted to support real-time interaction with the outside world.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115079142B_ABST
    Figure CN115079142B_ABST
Patent Text Reader

Abstract

The present invention discloses a method for simulating real-time imagery of an airborne laser radar, comprising the following steps: Step 1: Obtain the number of dots required to draw a laser radar point cloud image, and obtain a set of intersection coordinates Pclouds between the laser radar ray and the obstacle, which is a massive amount of point cloud data; Step 2: Draw a point cloud image: Divide the point cloud data obtained in Step 1 into different colors according to a linear mapping relationship of HSV-height, and use osgShader to draw the point cloud image in real time; The point cloud data Pclouds obtained in Step 1 is converted from a UTM coordinate system to an aircraft body coordinate system, and obstacle distance, azimuth, and pitch angle data within a limited time are output. The present invention can achieve a point accuracy of less than 5m within a detection distance of 1200m, and a point calculation speed of approximately 300K / s; Obstacle detection is accurate, and the obtained point cloud data and obstacle target data can be processed and sent in separate packets, thereby enabling interaction with the outside world.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of sensor detection and radar image simulation, and in particular relates to a method for simulating real-time image of an airborne laser radar. Background Art

[0002] LiDAR technology is rapidly developing across various fields. Compared to other remote sensing technologies, it has gained widespread recognition as a tool for accurately and rapidly acquiring three-dimensional ground data. LiDAR sensors, with their ability to model three-dimensional environments, have become a key sensor in driver assistance systems. As automotive LiDAR technology matures, the use of airborne LiDAR sensor detection technology is inevitable.

[0003] In the existing technology, in order to improve computing efficiency, the obstacle model of airborne lidar simulation is simply replaced by capsules, spheres, etc. during calculation, resulting in inaccurate detection results; the efficiency of point cloud data generation is also low. Summary of the Invention

[0004] The main content of the present invention is to provide a method for simulating real-time image simulation of airborne laser radar, simulating the detection of terrain and ground obstacles by airborne laser radar sensors, drawing point cloud images, and outputting three-dimensional point cloud data and obstacle information.

[0005] The technical solutions for achieving the purpose of the present invention are:

[0006] A method for simulating real-time image of an airborne laser radar comprises the following steps:

[0007] Step 1: Obtain the number of points required to draw the lidar point cloud image and calculate the intersection coordinate set Pclouds between the lidar rays and obstacles, which is the massive point cloud data;

[0008] Step 2: Draw the point cloud image: Divide the point cloud data obtained in step 1 into different colors according to the linear mapping relationship between HSV and height, and use osgShader to draw the point cloud image in real time; the point cloud data Pclouds obtained in step 1 is converted from the UTM coordinate system to the body coordinate system, and the obstacle distance, azimuth and pitch angle data within a limited time are output.

[0009] Furthermore, the step 1 is specifically as follows: defining the maximum detection distance of the airborne laser radar as R, the point cloud image point accuracy as d, the vertical field of view angle of the laser radar scanning as va, and calculating the number of point cloud rows as vcount; defining the horizontal field of view angle of the laser radar scanning as ha, and calculating the number of point cloud columns as hcount;

[0010] The simulated laser radar emits vcount×hcount rays, and uses the osg::LineSegmentIntersector class to obtain the intersection coordinate set Pclouds between the laser radar rays and the obstacles, which is a large amount of point cloud data and the distance from the aircraft to the obstacle point.

[0011] Furthermore, the number of point cloud rows vcount and the number of point cloud columns hcount in step 1 are calculated as follows:

[0012] vcount=R×tan(va / 2)×2 / d;

[0013] hcount=R×tan(ha / 2)×2 / d.

[0014] Furthermore, in step 1, the coordinate set Pclouds of the intersection points between the laser radar ray and the obstacle is obtained, and the specific steps are as follows:

[0015] In the world coordinate system, obtain the matrix quaternion QUAT of the aircraft's real-time flight attitude, simulate the radar scanning cone, use the radar installation point p as the cone eye point, and use the plane R at the distance from point p in the radar detection direction as the far plane xoz distance , set the starting point of the above laser radar ray to p, passing through the far plane xOz distance For any point e on the cloud, use the osg::LineSegmentIntersector class to obtain the coordinates of the obstacle data point detected by the lidar with point p and point e as endpoints. The coordinates of all obstacle data points form a set Pclouds.

[0016] Assume the world coordinate system is [X_AXIS, Y_AXIS, Z_AXIS]; QUAT is the quaternion transformation of the aircraft from the initial attitude to the flight attitude at a certain moment;

[0017] QUAT=osg::quat(α x ,X_AXIS,α y ,Y_AXIS,α z ,Z_AXIS);

[0018] Among them, α x , α y , α z They are the rotation angles of the aircraft around the three axes X_AXIS, Y_AXIS, and Z_AXIS respectively. x , α y , α z All are 0;

[0019] e=QUAT×(-tx / 2.0+dx×i,-ty / 2.0+dy×j,R)+p;

[0020] Where tx = R × tan (ha / 2) represents the far plane xoz distance The maximum horizontal distance;

[0021] ty = R × tan(va / 2) represents the far plane xoz distance The maximum vertical distance;

[0022] dx represents the horizontal point accuracy of the point cloud image;

[0023] dy represents the vertical flat point accuracy of the point cloud image;

[0024] i is the point cloud column number, ranging from [0, hcount-1];

[0025] j is the point cloud row number, ranging from [0, vcount-1].

[0026] Furthermore, the specific method of drawing the point cloud image in step 2 is: using the mapping relationship between the height world_objpoint.z of the coordinate world_objpoint of the obstacle data point and HSV, the color value (r, g, b) corresponding to world_objpoint is obtained to draw the point cloud image:

[0027]

[0028] Among them, AltitudeRangelow is the lowest altitude of the terrain within the radar detection range;

[0029] AltitudeRange is the altitude difference of the terrain within the radar detection range;

[0030] 360 is the maximum range value of HSV;

[0031] HSV and RGB conversion formula:

[0032]

[0033]

[0034] p=v×(1-s)

[0035] q=v×(1-f×s)

[0036] t=v×(1-(1-f)×s)

[0037]

[0038] Among them, h, s, and v are hue, saturation, and brightness respectively; s = 1, v = 1, and only h is sufficient to distinguish different altitudes within the radar detection range.

[0039] Furthermore, the point cloud data in step 2 is converted from the UTM coordinate system to the body coordinate system as follows: assuming the body coordinate system is [x_axis, y_axis, z_axis], the world coordinate system is converted to the initial body coordinate system so that the positive direction of the y-axis of the world coordinate system is:

[0040] Assume that the quaternion transformation from the world coordinate system to the initial body coordinate system is QUAT2:

[0041] QUAT2 = osg::quat(α jx ,X_AXIS,α jy ,Y_AXIS,α jz ,Z_AXIS);

[0042] Among them, α jx , α jy , α jz are the components of the angle between the initial nose orientation and the positive direction of the y-axis in the world coordinate system in the directions of the three axes X_AXIS, Y_AXIS, and Z_AXIS respectively;

[0043] x_axis = QUAT*QUAT2*X_AXIS;

[0044] y_axis=QUAT*QUAT2*Y_AXIS;

[0045] z_axis = QUAT*QUAT2*Z_AXIS;

[0046] The coordinates of the laser radar detection point in the body coordinate system are air_objpoint (x, y, z), from which the azimuth, elevation and distance SlntRng at this time are calculated;

[0047] Coordinates of air_objpoint:

[0048] x=(dis*x_axis) / x_axis.length();

[0049] y=(dis*y_axis) / y_axis.length();

[0050] z=(dis*z_axis) / z_axis.length();

[0051] Among them, dis is the vector from the obstacle detection data point of the lidar to the center of mass of the fuselage; x_axis.length(), y_axis.length(), z_axis.length() are the modulus of y_axis, z_axis, and z_axis respectively.

[0052] The azimuth, elevation and distance are:

[0053] Elevation=asin(z / air_objpoint.length());

[0054] Azimuth = atan(x / y);

[0055] SlntRng=air_objpoint.length();

[0056] Among them, air_objpoint.length() is the modulus of air_objpoint.

[0057] Compared with the prior art, the present invention has the following significant advantages:

[0058] (1) The laser radar point cloud computing method used in the present invention can achieve a point accuracy of less than 5m within a detection distance of 1200m, and the point calculation speed is maintained at about 300K / s; (2) Obstacle detection is accurate, and the required point cloud data and obstacle target data can be packaged and sent, so it can interact with the outside world. BRIEF DESCRIPTION OF THE DRAWINGS

[0059] Figure 1 It is a process framework diagram of the present invention.

[0060] Figure 2 It is a calculation principle diagram of the present invention.

[0061] Figure 3 This is a terrain elevation display effect diagram of the present invention.

[0062] Figure 4 This is an obstacle display effect diagram of the present invention. DETAILED DESCRIPTION

[0063] The present invention provides a method for simulating real-time image of airborne laser radar, combining Figure 1 , including the following steps:

[0064] Step 1: Obtain the number of points required to draw the LiDAR point cloud image and calculate the intersection coordinate set Pclouds between the LiDAR rays and obstacles, which is the massive point cloud data. This includes the following steps:

[0065] Definition Figure 2 The radar scanning cone, the radar installation point is the cone eye point O, the plane ABCD is the far plane of the radar scanning cone, the maximum detection distance OL of the airborne laser radar, the point cloud image point accuracy is d (the grid spacing in the surface ABCD can be compared to d, unit is meter), the laser radar scans the vertical field of view angle ∠FOH; the laser radar scans the horizontal field of view angle ∠EOG, the required number of point clouds to be drawn can be obtained through the AD and AB edges, that is, the accuracy d, suppose it passes through point I on the surface ABCD, and use the osg::LineSegmentIntersector class to obtain the intersection J of the OI ray and the obstacle target.

[0066] Define the maximum detection range of the airborne laser radar as R, the point cloud image point accuracy as d, the vertical field of view angle of the laser radar scanning as va, and the number of point cloud rows as vcount; the horizontal field of view angle of the laser radar scanning as ha, and the number of point cloud columns as hcount;

[0067] The simulated laser radar emits vcount×hcount rays, and uses the osg::LineSegmentIntersector class to obtain the intersection coordinate set Pclouds (that is, massive point cloud data) between the laser radar rays and the obstacle, as well as the distance from the aircraft to the obstacle point.

[0068] Step 2: Draw the point cloud image, including the following steps:

[0069] The point cloud data Pclouds obtained in step 1 is divided into different colors according to the linear mapping relationship between HSV and height, and the point cloud image is drawn in real time using osgShader.

[0070] The point cloud data Pclouds obtained in step 1 is converted from the UTM coordinate system to the body coordinate system, and the obstacle distance, azimuth and pitch angle data within a limited time are output (for the receiver to draw scene obstacles in real time).

[0071] Furthermore, the number of point cloud rows vcount and the number of point cloud columns hcount in step 1 are calculated as follows:

[0072] vcount=R×tan(va / 2)×2 / d;

[0073] hcount=R×tan(ha / 2)×2 / d;

[0074] Furthermore, in step 1, the osg::LineSegmentIntersector class is used to obtain the coordinates of the intersection between the lidar ray and the obstacle. The specific steps are as follows:

[0075] Step 1: Get the matrix quaternion QUAT of the aircraft's real-time flight attitude in the world coordinate system, simulate the radar scanning cone, use the radar installation point p as the cone eye point, and use the plane R at the distance from point p in the radar detection direction as the far plane xoz distance . Assume that the starting point of the above laser radar ray is p, passing through the far plane xOz distance For any point e on the cloud, use the osg::LineSegmentIntersector class to obtain the coordinates of the obstacle data point detected by the lidar with points p and e as endpoints world_objpoint. The coordinates of all obstacle data points form a set Pclouds.

[0076] Assume the world coordinate system is [X_AXIS, Y_AXIS, Z_AXIS]; QUAT is the quaternion transformation of the aircraft from the initial attitude to the flight attitude at a certain moment;

[0077] QUAT=osg::quat(α x ,X_AXIS,α y ,Y_AXIS,α z ,Z_AXIS);

[0078] Among them, α x , α y , α z They are the rotation angles of the aircraft around the three axes X_AXIS, Y_AXIS, and Z_AXIS (the initial attitude of the aircraft is α x , α y , α z are all 0);

[0079] e=QUAT×(-tx / 2.0+dx×i,-ty / 2.0+dy×j,R)+p;

[0080] Where tx = R × tan (ha / 2) represents the far plane xoz distance The maximum horizontal distance;

[0081] ty = R × tan(va / 2) represents the far plane xoz distance The maximum vertical distance;

[0082] dx represents the horizontal point accuracy of the point cloud image;

[0083] dy represents the vertical flat point accuracy of the point cloud image;

[0084] i is the point cloud column number, ranging from [0, hcount-1];

[0085] j is the point cloud row number, ranging from [0, vcount-1].

[0086] The specific method of drawing the point cloud image in step 2 is: using the mapping relationship between the height world_objpoint.z of the coordinate world_objpoint of the obstacle data point and HSV, the color value (r, g, b) corresponding to world_objpoint is obtained to draw the point cloud image, such as Figure 3 For terrain elevation display effect, Figure 4 Display effects for obstacles:

[0087]

[0088] Among them, AltitudeRangelow is the lowest altitude of the terrain within the radar detection range;

[0089] AltitudeRange is the altitude difference of the terrain within the radar detection range;

[0090] 360 is the maximum range value of HSV.

[0091] HSV and RGB conversion formula:

[0092]

[0093]

[0094] p=v×(1-s)

[0095] q=v×(1-f×s)

[0096] t=v×(1-(1-f)×s)

[0097]

[0098] Among them, h, s, and v are hue, saturation, and brightness respectively; the range of s and v is 0-1. Here, the default is s=1 and v=1. Only h is sufficient to distinguish different altitudes within the radar detection range.

[0099] The point cloud data of step 2 is converted from the UTM coordinate system to the body coordinate system as follows:

[0100] Assume the body coordinate system is [x_axis, y_axis, z_axis], and convert the world coordinate system to the initial body coordinate system so that the nose faces the positive y-axis of the world coordinate system:

[0101] Assume that the quaternion transformation from the world coordinate system to the initial body coordinate system is QUAT2:

[0102] QUAT2 = osg::quat(α jx ,X_AXIS,α jy,Y_AXIS,α jz ,Z_AXIS);

[0103] Among them, α jx , α jy , α jz are the components of the angle between the initial nose orientation and the positive direction of the y-axis in the world coordinate system in the directions of the three axes X_AXIS, Y_AXIS, and Z_AXIS respectively;

[0104] x_axis = QUAT*QUAT2*X_AXIS;

[0105] y_axis=QUAT*QUAT2*Y_AXIS;

[0106] z_axis = QUAT*QUAT2*Z_AXIS;

[0107] The coordinates of the laser radar detection point in the body coordinate system are air_objpoint (x, y, z), from which the azimuth, elevation and distance SlntRng at this time are calculated;

[0108] Coordinates of air_objpoint:

[0109] x=(dis*x_axis) / x_axis.length();

[0110] y=(dis*y_axis) / y_axis.length();

[0111] z=(dis*z_axis) / z_axis.length();

[0112] Where dis is the vector from the obstacle data point detected by the lidar to the center of mass of the fuselage; x_axis.length(), y_axis.length(), and z_axis.length() are the moduli of y_axis, z_axis, and z_axis respectively.

[0113] The azimuth, elevation and distance SlntRng can be calculated:

[0114] Elevation=asin(z / air_objpoint.length());

[0115] Azimuth = atan(x / y);

[0116] SlntRng=air_objpoint.length();

[0117] Among them, air_objpoint.length() is the modulus of air_objpoint.

[0118] The basic principles, main features, and advantages of the present invention are shown and described above. Those skilled in the art should understand that the present invention is not limited to the foregoing embodiments. The foregoing embodiments and descriptions are merely illustrative of the principles of the present invention. Various changes and modifications may be made to the present invention without departing from the spirit and scope of the present invention. Such changes and modifications are intended to fall within the scope of the present invention. The scope of protection claimed in the present invention is defined by the appended claims and their equivalents.

Claims

1. A method for simulating real-time image of an airborne laser radar, characterized in that: The following steps are involved: Step 1: Obtain the number of points required to draw the lidar point cloud image and calculate the intersection coordinate set Pclouds between the lidar rays and obstacles, which is the massive point cloud data; Step 2: Draw the point cloud image: Divide the point cloud data obtained in step 1 into different colors according to the linear mapping relationship between HSV and height, and use osgShader to draw the point cloud image in real time; the point cloud data Pclouds obtained in step 1 is converted from the UTM coordinate system to the body coordinate system, and the obstacle distance, azimuth and pitch angle data within a limited time are output; The step 1 specifically includes: defining the maximum detection distance of the airborne laser radar as R, the point cloud image point accuracy as d, the vertical field of view angle of the laser radar scanning as va, and calculating the number of point cloud rows as vcount; the horizontal field of view angle of the laser radar scanning as ha, and calculating the number of point cloud columns as hcount; Simulate the laser radar to emit vcount×hcount rays, and use the osg::LineSegmentIntersector class to obtain the intersection coordinate set Pclouds between the laser radar rays and the obstacle, which is a large amount of point cloud data and the distance between the aircraft and the obstacle point; The calculation method for obtaining the number of point cloud rows vcount and the number of point cloud columns hcount in step 1 is as follows: vcount=R×tan(va / 2)×2 / d; hcount=R×tan(ha / 2)×2 / d; In step 1, the intersection coordinate set Pclouds between the laser radar ray and the obstacle is obtained. The specific steps are as follows: In the world coordinate system, obtain the matrix quaternion QUAT of the aircraft's real-time flight attitude, simulate the radar scanning cone, use the radar installation point p as the cone eye point, and use the plane R at the distance from point p in the radar detection direction as the far plane xoz distance , set the starting point of the laser radar ray to p, passing through the far plane xOz distance For any point e on the cloud, use the osg::LineSegmentIntersector class to obtain the coordinates of the obstacle data point detected by the lidar with point p and point e as endpoints. The coordinates of all obstacle data points form a set Pclouds. Assume the world coordinate system is [X_AXIS, Y_AXIS, Z_AXIS]; QUAT is the quaternion transformation of the aircraft from the initial attitude to the flight attitude at a certain moment; QUAT=osg∷quat(α x ,X_AXIS,a y ,Y_AXIS,a z ,Z_AXIS); Among them, α x , α y , α z They are the rotation angles of the aircraft around the three axes X_AXIS, Y_AXIS, and Z_AXIS respectively. x , α y , α z All are 0; e=QUAT×(-tx / 2.0+dx×i,-ty / 2.0+dy×j,R)+p; Where tx = R × tan (ha / 2) represents the far plane xoz distance The maximum horizontal distance; ty = R × tan(va / 2) represents the far plane xoz distance The maximum vertical distance; dx represents the horizontal point accuracy of the point cloud image; dy represents the vertical flat point accuracy of the point cloud image; i is the point cloud column number, ranging from [0, hcount-1]; j is the point cloud row number, ranging from [0, vcount-1].

2. The method for simulating real-time image of an airborne laser radar according to claim 1, characterized in that: The specific method of drawing the point cloud image in step 2 is: using the mapping relationship between the height world_objpoint.z of the coordinate world_objpoint of the obstacle data point and HSV, the color value (r, g, b) corresponding to world_objpoint is obtained to draw the point cloud image: Among them, AltitudeRangelow is the lowest altitude of the terrain within the radar detection range; AltitudeRange is the altitude difference of the terrain within the radar detection range; 360 is the maximum range value of HSV; HSV and RGB conversion formula: p=v×(1-s) q=v×(1-f×s) t=v×(1-(1-f)×s) Among them, h, s, and v are hue, saturation, and brightness respectively; s = 1, v = 1, and only h is used to distinguish different altitudes within the radar detection range.

3. The method for simulating real-time image of an airborne laser radar according to claim 2, characterized in that: The point cloud data in step 2 is converted from the UTM coordinate system to the body coordinate system as follows: let the body coordinate system be [x_axis, y_axis, z_axis], and convert the world coordinate system to the initial body coordinate system so that the positive direction of the y-axis of the world coordinate system is: Assume that the quaternion transformation from the world coordinate system to the initial body coordinate system is QUAT2: QUAT2=osg∷quat(α jx ,X_AXIS,α jy ,Y_AXIS,α jz ,Z_AXIS); Among them, α jx , α jy , α jz are the components of the angle between the initial nose orientation and the positive direction of the y-axis in the world coordinate system in the directions of the three axes X_AXIS, Y_AXIS, and Z_AXIS respectively; x_axis = QUAT*QUAT2*X_AXIS; y_axis=QUAT*QUAT2*Y_AXIS; z_axis = QUAT*QUAT2*Z_AXIS; The coordinates of the laser radar detection point in the body coordinate system are air_objpoint (x, y, z), from which the azimuth, elevation and distance SlntRng at this time are calculated; Coordinates of air_objpoint: x=(dis*x_axis) / x_axis.length(); y=(dis*y_axis) / y_axis.length(); z=(dis*z_axis) / z_axis.length(); Among them, dis is the vector from the obstacle detection data point of the lidar to the center of mass of the fuselage; x_axis.length(), y_axis.length(), z_axis.length() are the modulus of y_axis, z_axis, and z_axis respectively. The azimuth, elevation and distance are: Elevation=asin(z / air_objpoint.length()); Azimuth = atan(x / y); SlntRng=air_objpoint.length(); Among them, air_objpoint.length() is the modulus of air_objpoint.

Citation Information

Patent Citations

  • Laser-point cloud marking method, device and readable storage medium

    CN108154560A