Construction method of automobile accident case database

The method constructs a comprehensive automobile accident database by processing accident data with PC-crash software and creating 3D models, addressing data dispersion and incompleteness issues, and enabling PCM data extraction, thus improving data usability for automated driving applications.

CN119669514APending Publication Date: 2025-03-21XIHUA UNIV
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411552230.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-01
Publication Date
2025-03-21

AI Technical Summary

Technical Problem

Current automobile accident databases in China, such as NAIS, face issues with dispersed and incomplete data, and the inability to directly extract PCM (PreScanCollision Model) data, making it inconvenient for users requiring such models.

Method used

A method for constructing an automobile accident database involving steps like data collection, analysis using PC-crash software, creation of 3D multi-layer framework graphs, and processing of vehicle and obstacle data to form comprehensive accident case databases, enabling the integration of PCM data.

Benefits of technology

This approach enhances the completeness and usability of accident data, meeting diverse user needs and supporting the development of high-quality automated driving scenarios by centralizing and enriching accident data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119669514A_ABST
    Figure CN119669514A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of road traffic accident data processing, and discloses a construction method of an automobile accident case database. Accident case data are identified and extracted from an NAIS database, the accident case data are processed to obtain more complete accident case data tables, and then the accident case data tables are combined to form the accident case database, so that the centrality and integrity of automobile accident data are improved; meanwhile, by introducing a 3D multi-layer frame diagram including road sign information and obstacle information into the database, the types of accident case data are enriched, the requirements of more users can be met, the availability of automobile accident data is enhanced, and the practicability of the automobile accident data is improved. Therefore, a solid foundation is laid for subsequently establishing a high-quality test traffic accident scene library of the Chinese road automatic driving automobile.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to the technical field of road traffic accident data processing, and in particular to a method for constructing a car accident case database. Background Art

[0002] At present, my country is actively developing intelligent connected vehicles and unmanned driving technologies, increasing investment in research and development technologies, and the unmanned driving market is in a stage of rapid development.

[0003] In terms of traffic accident information collection, the European Union has established the Community Data Base on Accidents on the Roads in Europe (CARE) and Germany has launched the German In-depth Accident Study (GIDAS). These institutions are engaged in the collection and statistics of data such as automobile safety and personal injuries in road traffic accidents. Drawing on international advanced experience, the Defective Product Management Center of the General Administration of Quality Supervision, Inspection and Quarantine of the People's Republic of China, in 2011, jointly established the National Automobile Accident In-Depth Investigation System (NAIS) with a number of domestic vehicle accident research institutions and the Motor Vehicle Judicial Appraisal Center to provide services for my country's automobile recalls, vehicle accident research, and automobile product safety improvements. However, the accident case data in NAIS is usually scattered and incomplete, and can only export PreScan modeling data, but not PreScan Collision Model (PCM) modeling data, which is very inconvenient for users who need PCM modeling data.

[0004] Therefore, how to provide a method for constructing a car accident case database is a problem that those skilled in the art need to solve urgently. Summary of the invention

[0005] In view of this, the present invention provides a method for constructing an automobile accident case database, which solves the problem in the prior art that automobile accident case data is scattered and incomplete and PCM modeling data cannot be directly extracted.

[0006] In order to achieve the above object, the present invention adopts the following technical solution:

[0007] A method for constructing a car accident case database comprises the following steps:

[0008] Step 1: Obtain basic depth data, accident scene data and accident scene map of automobile accident cases;

[0009] Step 2: Import the accident scene data into PC-crash software, analyze and reconstruct the car accident, and export the vehicle parameters and motion parameters at the time of the accident;

[0010] Step 3: Draw a 3D multi-layer framework diagram based on the accident scene diagram, and export the road information and obstacle information at the time of the accident as a DXF file; the road information includes standard road surface marking data and standard road marking data, and the X coordinates, Y coordinates and Z coordinates of related points; the obstacle information includes standard static obstacle data and standard obstacle data;

[0011] Step 4: Summarize the vehicle motion parameters exported by PC-crash software in step 2, extract the information required for modeling and store it;

[0012] Step 5: Calculate and summarize the standard road marking data: determine the reference point on the standard road marking, calculate and store the rotation angle of the reference point on the standard road marking around the Z axis; classify each small square on the standard road marking line in the DXF file, and store the classification results;

[0013] Step 6: Calculate and summarize the standard static obstacle data: read the two-dimensional graphic data from the DXF file to generate the bottom plane of the standard static obstacle and construct the basis of the three-dimensional model; then generate the top plane according to the points of the bottom plane and set its height; then use the bottom and top points to generate the side of the three-dimensional model; finally, store all the constructed bottom plane, top plane and side point data into the final result result1 list, which represents the generated three-dimensional model of the standard static obstacle;

[0014] Step 7: Calculate and summarize the standard obstacle data: read the two-dimensional graphic data to generate the bottom plane of the standard obstacle; then generate the top plane according to the points of the bottom plane; then group the points of the top plane and the points of the bottom plane to generate the side of the standard obstacle three-dimensional model; finally, store all the constructed bottom plane, top plane and side point data into the final result result2 list, which represents the generated three-dimensional model of the standard obstacle;

[0015] Step 8: For the two-wheeled vehicle model, pedestrian model, passenger-commercial vehicle model or three-wheeled vehicle model involved in the automobile accident, determine the length, width and height data and the number of contour points of different models, calculate the coordinates of each model contour point according to the length, width and height data, and rename each point in sequence, and determine the order of each point according to the model sequence naming to build a correct model;

[0016] Step 9: Obtain an accident case data table based on the above stored data, and combine multiple accident case data tables to form an accident case database.

[0017] Further, in step 1, the basic depth data includes overall information and environmental information;

[0018] The overall information includes the accident number, accident time, accident type, accident participants and accident level;

[0019] Environmental information includes the accident location, road section information, weather, accident time, daytime sunlight and lighting conditions.

[0020] Furthermore, in step 2, the vehicle parameters include the type, length, width, height, weight, front wheel track, rear wheel track, tire model, tire pressure, adhesion coefficient, pre-collision braking time, pre-collision braking distance, collision angle, initial speed, speed at collision, driving direction, and pre-collision motion of the vehicle;

[0021] The motion parameters include time to collision, trajectory coordinates, heading angle, pitch angle, yaw angle, speed, acceleration, braking conditions and friction coefficient.

[0022] Furthermore, in step 3, the road information and obstacle information are composed of polylines, straight line segments, and arc segments;

[0023] The polyline contains the first layer name, the first line type name, the number of line segments, and the first start and end point coordinates;

[0024] The straight line segment contains the second layer name, the second line type name, and the second start and end point coordinates;

[0025] The arc segment contains the third layer name, the third line type name, the coordinates of the center point, the arc radius, and the arc start and end angles.

[0026] Furthermore, in step 4, the above process is summarized as follows:

[0027] The export time TIME = 5 + time, where time is the vehicle motion parameter data during import;

[0028] When exporting, the yaw angle PSI = ((VEL_DIR / 180×3.1415926)×10 2 ) / 10 2 , VEL_DIR is the vehicle motion parameter data during import;

[0029] The speed of the X axis during export is VX = vx / 3.6, where vx is the motion parameter data of the vehicle on the X axis during import;

[0030] The speed of the Y axis during export is VY=vy / 3.6, where vy is the motion parameter data of the vehicle on the Y axis during import;

[0031] The speed of the Z axis during export is VZ=vz / pr, vx is the motion parameter data of the vehicle on the Z axis during import, and pr is the proportional coefficient.

[0032] Furthermore, in step 5, the calculation of the rotation angle of the reference point on the standard road sign around the Z axis is specifically:

[0033] Identify the indicate layer in the DXF file, get the information of two points (x1, y1) and (x2, y2), determine the reference point, and calculate the rotation angle of the reference point around the z-axis:

[0034] REFROTZ=atan((y2-y1) / (x2-x1))-π / 2

[0035] Among them, atan() means taking the inverse tangent.

[0036] Furthermore, in step 5, the calculation and summarization of the standard road marking data is specifically as follows:

[0037] The standard road markings are:

[0038] A=[p1;p2;…;p i ;…;p n ]

[0039] Among them, p i represents the mean coordinates of the i-th small square (x i ,y i ,0), n represents the number of standard road marking small squares in the exported DXF file;

[0040] Find the linear equation through points p1 and p2: ay+bx+c=0, let the index If the i-th indicator Then classify these points as class 1; find the maximum and minimum values ​​from the mean coordinates of the small squares: x max ,x min ,y max ,y min ;

[0041] When x max -x min ≤y max -y min , then the characteristic point of this section of standard road marking is (x p1 ,y max ,0)、(x p2 ,y min , 0);

[0042] Among them, x p1 、x p2 Respectively represent y max ,ymin The corresponding x value;

[0043] Otherwise, the characteristic point of the standard road marking is (x max ,y p1 ,0)(x min ,y p2 , 0);

[0044] Among them, y p1 ,y p2 Respectively represent x max 、x min The corresponding y value;

[0045] Remove the points that have been classified in A and repeat the above steps until all points have been classified.

[0046] Furthermore, in step 6, the calculation is summarized as follows:

[0047] Step 6.1: Read data and construct the standard static obstacle bottom plane

[0048] 1) Input data structure:

[0049] Given a map function, the key is a string type String key, and the value is a list containing multiple DxfParseInfo objects, each of which represents point or line information on the plane;

[0050] 2) Traverse each set of data:

[0051] For each key in the map:

[0052] Get the point list parseInfoList corresponding to the current key;

[0053] Traverse each point, construct a static obstacle object StaticObstacle, and add it to floorList;

[0054] 3) Bottom plane construction logic:

[0055] For each DxfParseInfo object create the obstacle:

[0056] Record the point number pointCount and increase it in sequence;

[0057] If the point type is an arc, the split point is skipped; if the point type is a straight line, it is processed as a closed path:

[0058] Define the current point (x j ,y j ) and the next point (x j+1 ,y j+1) forms a closure between the last point and the first point:

[0059] Line segment = {(x j ,y j )→(x j+1 ,y j+1 )} or (x n ,y n )→(x0,y0)

[0060] Step 6.2: Generate the top of the standard static obstacle stereographic image

[0061] Iterate over all points in floorList:

[0062] Use cloneANewOne() to clone each bottom point to generate the corresponding top point;

[0063] Set the Z coordinate of each top point to Z j Set it to a constant height H:

[0064]

[0065] Among them, the symbol is a logical symbol, indicating that a certain condition is true for all j;

[0066] Step 6.3: Define the standard static obstacle sides:

[0067] For each pair of corresponding points at the bottom and top, create a vertical line segment:

[0068] Side line segment = {(x j, y j ,0)→(x j, y j ,H)}

[0069] Side build logic:

[0070] For each bottom point floor and its corresponding top point ceiling:

[0071] Clone two points and set their point attributes to 1 and 2 respectively; and add these two points as a vertical edge to sideList;

[0072] Step 6.4: Add the data of the bottom, top and side points of all constructed standard static obstacles to the final result list result1:

[0073] Result1=floorList+ceilingList+sideList

[0074] Step 6.5: Assign numbers to all standard static obstacle vertical edges for easy identification in the model;

[0075] Numbering rule: Traverse all obstacle objects in result:

[0076] If point is 1, the line segment number is incremented;

[0077] If point is 2, the number of the previous line is used.

[0078] Furthermore, in step 7, the calculation is summarized as follows:

[0079] Step 7.1: Construct the standard obstacle bottom plane

[0080] 1) Input data:

[0081] Given a map, where: the key is a string type, indicating the identifier of a set of data; the value is a list containing multiple DxfParseInfo objects, each of which represents a point in a two-dimensional plane;

[0082] 2) Build the bottom plane:

[0083] Traverse each set of data in the map and generate Objects objects to represent points: set the point number PointId and object type LayerName; record the plane coordinates (x, y) and height z=0 of the point:

[0084] floorPoint=(x,y,0)

[0085] Add all generated points to floorList;

[0086] Step 7.2: Generate the top plane of the standard obstacle

[0087] Clone all points in floorList, generate the corresponding top points, and set a fixed height H for them:

[0088] ceilingPoint=(x,y,H)

[0089] Add these top points to ceilingList;

[0090] Step 7.3: Group by layer

[0091] The top and bottom points are grouped according to LayerName: floorGroupByObjId is used to store the grouping of bottom points, and ceilingGroupByObjId is used to store the grouping of top points;

[0092] Step 7.4: Generate the surface of the standard obstacle stereo model

[0093] 1) Traverse the points of each layer:

[0094] For each LayerName: initialize the surface number SurfaceNo = 0; traverse the bottom and top points of the current layer and assign a number to each new surface;

[0095] 2) Build side:

[0096] For each pair of bottom and top points (x j ,y j ), get the index j+1 of the next point, and form a closed structure:

[0097]

[0098] Each side is composed of four points: the current bottom point and its top point (x j ,y j ,0) and (x j ,y j ,H); the next bottom point and its top point (x j+1 ,y j+1 ,0) and (x j+1 ,y j+1 ,H); the above points form a surface, as follows:

[0099] Side = {(x j ,y j ,0),(x j+1 ,y j+1 ,0),(x j+1 ,y j+1 ,H),(x j ,y j ,H)}

[0100] Generate a unique face ID for each face, and copy each point in the face and set its face ID;

[0101] Step 7.5: Aggregate all points and return the result

[0102] Add the bottom, top, and side points to the result list:

[0103] Result2=floorPoints+ceilingPoints+newPointList

[0104] The final result result2 is returned, which represents the generated 3D model of the standard obstacle.

[0105] The beneficial effects of the present invention are as follows: the present invention obtains more complete accident case data tables by identifying and extracting accident case data from the NAIS database, and processes the accident case data, and then combines multiple accident case data tables to form an accident case database, thereby improving the centralization and integrity of automobile accident data; at the same time, by introducing a 3D multi-layer framework diagram containing symbolic road information and obstacle information into the database, it not only enriches the types of accident case data and can meet the needs of more users, but also enhances the availability of automobile accident data, thereby laying a solid foundation for the subsequent establishment of a high-quality test traffic accident scenario library for autonomous driving vehicles on Chinese roads. BRIEF DESCRIPTION OF THE DRAWINGS

[0106] Figure 1 Schematic diagram of the process of building a car accident case database.

[0107] Figure 2 A two-wheeled vehicle model.

[0108] Figure 3 Pedestrian model.

[0109] Figure 4 For passenger car / commercial vehicle models.

[0110] Figure 5 A tricycle model. DETAILED DESCRIPTION

[0111] The present invention is further described in detail below with reference to the accompanying drawings and specific embodiments.

[0112] The method for constructing the automobile accident case database of the present invention is as follows: Figure 1 As shown, the new case module will enter the data into the database system, which is specifically divided into three parts: manual new case, NAIS data import, FASS data import, PC import and DXF import. NAIS data import and FASS data import have the same function as manual new case, the difference is that the manual new case is filled in manually, and the other two are automatically imported. The present invention will also assign different statuses to each case at different stages, so that different users can view different data. The status is divided into: creating, created pending review, and reviewed.

[0113] The following steps are involved:

[0114] Step S1, obtaining basic depth data, accident scene data and accident scene map of the automobile accident case.

[0115] Specifically, basic depth data is used to describe the basic situation of automobile accident cases, which is convenient for technicians in this field to identify and filter data. Among them, basic depth data includes overall information and environmental information. The overall information is provided with an accident number. In this embodiment, the accident number can be the same as the case number of the NAIS database; the accident time, that is, the time when the accident occurred; the accident form, according to the different participants and the different collision parts, can be divided into: 1-people and cars collide, 2-non-motor vehicles and cars collide, 3-motorized two / three-wheeled vehicles and cars collide, 4-car single-vehicle accident, 5-car collision with stationary vehicles, 6-car and car head-on collision, 7-car and car side collision, 8-car and car rear-end collision, 9-car and car opposite scratch collision, 10-car and car same-direction scratch collision, 11-special accident form, etc.; accident participants and quantity, such as including 1 car and 1 two-wheeled vehicle; accident classification, according to the severity of the accident, can be divided into minor accidents, general accidents and major accidents. The environmental information includes the accident location, i.e. the location information of the accident; road section information, such as three-branch fork, four-branch fork and multi-branch fork; weather, i.e. the weather conditions when the accident occurred; the time period of the accident, which can be divided into three sections: daytime, nighttime and dawn / dusk. The daytime time period is 8-18 o'clock, nighttime 8-6 o'clock, and dawn / dusk 6-8 o'clock and 18-20 o'clock; daytime sunlight; lighting conditions, etc.

[0116] Step S2, analyzing and reconstructing the automobile accident based on the accident scene data to obtain the vehicle parameters and motion parameters when the accident occurred.

[0117] In this embodiment, the accident scene data is imported into the PC-crash software to realize the analysis and reconstruction of the automobile accident and obtain the vehicle parameters and motion parameters when the accident occurs.

[0118] Specifically, accident analysis is mainly based on the data collected, recorded, investigated and analyzed at the accident scene. The vehicles involved in the accident are pushed back from their end position after the collision to the collision process, and then back to their operating state before the collision, so as to analyze the cause of the accident.

[0119] Accident reconstruction is mainly based on the characteristics of the accident scene, such as vehicle displacement, degree of damage, length of drag marks, road conditions, etc. after the collision, and the basic theories of the law of conservation of momentum and the law of conservation of energy in mechanics are used to infer and verify the accident process; the theory of conservation of momentum is based on the equality of the total momentum before the collision and the momentum after the collision. According to the direction of vehicle travel and the relevant position after the collision, the speed change before and after the accident and the collision angle are judged and parameter detection is completed; the conservation of energy is based on factors such as vehicle displacement, degree of damage, collision angle after the accident, and the collision mechanics theory is used to study the changes in kinetic energy and potential energy, thereby deriving the vehicle speed and collision angle before and after the collision.

[0120] Vehicle parameters include vehicle type (such as large trucks, small cars, etc.), length, width, height, weight, front wheel track, rear wheel track, tire model, tire pressure and adhesion coefficient (the adhesion coefficient between the vehicle tires and the ground), pre-collision braking time, pre-collision braking distance, collision angle, vehicle initial speed, speed at collision, driving direction, and pre-collision movement conditions (such as starting, overtaking, U-turn, etc.).

[0121] The motion parameters include the time from collision, trajectory coordinates X, Y, Z, heading angle, pitch angle, yaw angle, speed VX, speed VY, speed VZ, acceleration AX, acceleration AY, acceleration AZ, braking conditions and friction coefficient. Each 0.01S is a piece of data, and a dynamic trajectory is formed by several pieces of data.

[0122] Step S3, based on the accident scene map, use AutoCAD to draw a 3D multi-layer framework map to obtain the road information and obstacle information when the accident occurred.

[0123] In this embodiment, the road information and obstacle information are drawn by polylines, straight segments and arc segments, and the output format is DXF; the polylines contain the first layer name, the first line type name, the number of line segments, and the first start and end point coordinates; the straight segments contain the second layer name, the second line type name, and the second start and end point coordinates; the arc segments contain the third layer name, the third line type name, the center coordinates, the arc radius, and the arc start and end arcs. In other words, the road information and obstacle information include parameter information such as layer name, line, point, X coordinate, Y coordinate, and Z coordinate. The type of line is determined by the layer name. A line has two points, and each point has an X coordinate, a Y coordinate, and a Z coordinate in AutoCAD. Therefore, the road information and obstacle information are composed of a large number of lines and arcs.

[0124] Step S4, storing the basic depth data, vehicle parameters, motion parameters, road information and obstacle information according to preset rules to obtain an accident case data table, and combining multiple accident case data tables to form an accident case database.

[0125] 1. Summarize the motion parameters

[0126] The vehicle's motion parameters derived from the PC-crash software are summarized in real time.

[0127] The export time TIME = 5 + time, where time is the vehicle motion parameter data during import;

[0128] When exporting, the yaw angle PSI = ((VEL_DIR / 180×3.1415926)×10 2 ) / 10 2 , VEL_DIR is the vehicle motion parameter data during import;

[0129] The speed of the X axis during export is VX = vx / 3.6, where vx is the motion parameter data of the vehicle on the X axis during import;

[0130] The speed of the Y axis during export is VY=vy / 3.6, where vy is the motion parameter data of the vehicle on the Y axis during import;

[0131] The speed of the Z axis during export is VZ=vz / 2, and vx is the motion parameter data of the vehicle on the Z axis during import.

[0132] Among them, 3.6 is to convert m / s to km / h, 1m / s=3.6km / h, and 2 is to adjust the scale of the data.

[0133] 2. Calculate and summarize standard road marking data

[0134] The standard road surface marking data is calculated and summarized to obtain the rotation angle of the reference point on the standard road surface marking around the Z axis; the standard road marking line data is calculated and summarized to classify the small squares on the standard road marking line.

[0135] 1) The calculation and summary of standard road surface marking data are as follows:

[0136] According to the layer name corresponding to the standard road sign, take the first two points (x1, y1) and (x2, y2) and calculate the reference point rotation around the z axis.

[0137] Corner:

[0138] REFROTZ=atan((y2-y1) / (x2-x1))-π / 2

[0139] Among them, atan() means taking the inverse tangent.

[0140] 2) The calculation and summary of standard road marking data are as follows:

[0141] The standard road markings are:

[0142] A=[p1;p2;…;p i ;…;p n ]

[0143] Among them, p i represents the mean coordinates of the ith small square (x i ,y i ,0), n represents the number of standard road marking small squares in the exported dxf file;

[0144] Find the linear equation through points p1 and p2: ay+bx+c=0, let the index If the i-th indicator Then classify these points as class 1; find the maximum and minimum values ​​from the mean coordinates of the small squares: x max ,x min ,y max ,y min ;

[0145] When x max -x min ≤y max -y min , then the characteristic point of this section of standard road marking is (x p1 ,y max ,0)、(x p2 ,y min , 0);

[0146] Among them, x p1 、x p2 Respectively represent y max ,y min The corresponding x value;

[0147] Otherwise, the characteristic point of the standard road marking is (x max ,y p1 ,0)(x min ,y p2 , 0);

[0148] Among them, y p1 ,y p2 Respectively represent x max 、x min The corresponding y value;

[0149] Remove the points that have been classified in A and repeat the above steps until all points have been classified.

[0150] 3. Calculate and summarize the standard static obstacle data

[0151] Read the two-dimensional graphic data to generate the bottom plane of the standard static obstacle and construct the basis of the three-dimensional model; then generate the top plane based on the points of the bottom plane and set its height; then use the bottom and top points to generate the side of the three-dimensional model; finally, store all the constructed bottom plane, top plane and side point data into the final result result1 list, which represents the generated three-dimensional model of the standard static obstacle.

[0152] (1) Read data and construct the bottom plane of the standard static obstacle

[0153] 1) Input data structure:

[0154] Given a map function, the key is a string type String key, and the value is a list containing multiple DxfParseInfo objects.

[0155] They all represent point or line information on a plane;

[0156] 2) Traverse each set of data:

[0157] For each key in the map:

[0158] Get the point list parseInfoList corresponding to the current key;

[0159] Traverse each point, construct a static obstacle object StaticObstacle, and add it to floorList;

[0160] 3) Bottom plane construction logic:

[0161] For each DxfParseInfo object create the obstacle:

[0162] Record the point number pointCount and increase it in sequence;

[0163] If the point type is an arc, the split point is skipped; if the point type is a straight line, it is processed as a closed path:

[0164] Define the current point (x j ,y j ) and the next point (x j+1 ,y j+1 ) forms a closure between the last point and the first point:

[0165] Line segment = {(x j ,y j )→(x j+1 ,y j+1 )} or (x n ,y n )→(x0,y0)

[0166] (2) Generate the top of the standard static obstacle 3D graphic

[0167] Iterate over all points in floorList:

[0168] Use cloneANewOne() to clone each bottom point to generate the corresponding top point;

[0169] Set the Z coordinate of each top point to Z j Set it to a constant height H:

[0170]

[0171] Among them, the symbol It is a logical symbol, indicating that a certain condition is true for all j.

[0172] (3) Definition of standard static obstacle side:

[0173] For each pair of corresponding points at the bottom and top, create a vertical line segment:

[0174] Side line segment = {(x j, y j ,0)→(x j, y j ,H)}

[0175] Side build logic:

[0176] For each bottom point floor and its corresponding top point ceiling:

[0177] Clone two points and set their point attributes to 1 and 2 respectively; and add these two points as a vertical edge to sideList;

[0178] (4) Add the data of the bottom, top, and side points of all constructed standard static obstacles to the final result list result1:

[0179] Result1=floorList+ceilingList+sideList

[0180] (5) Assign numbers to all standard static obstacle vertical edges for easy identification in the model;

[0181] Numbering rule: Traverse all obstacle objects in result:

[0182] If point is 1, the line segment number is incremented;

[0183] If point is 2, the number of the previous line is used.

[0184] 4. Calculate and summarize the standard obstacle data

[0185] Read the two-dimensional graphic data to generate the bottom plane of the standard obstacle; then generate the top plane based on the points of the bottom plane; then group the points of the top plane and the points of the bottom plane to generate the side of the standard obstacle three-dimensional model; finally, store all the constructed bottom plane, top plane and side point data into the final result result2 list, which represents the generated three-dimensional model of the standard obstacle.

[0186] (1) Construct the bottom plane of the standard obstacle

[0187] 1) Input data:

[0188] Given a map, where: the key is a string type, indicating the identifier of a set of data; the value is a list containing multiple DxfParseInfo objects, each of which represents a point in a two-dimensional plane;

[0189] 2) Build the bottom plane:

[0190] Traverse each set of data in the map and generate Objects objects to represent points: set the point number PointId and object class

[0191] Type LayerName; record the plane coordinates (x, y) and height z=0 of the point:

[0192] floorPoint=(x,y,0)

[0193] Add all generated points to floorList;

[0194] (2) Generate the top plane of the standard obstacle

[0195] Clone all points in floorList, generate the corresponding top points, and set a fixed height H for them:

[0196] ceilingPoint=(x,y,H)

[0197] Add these top points to ceilingList;

[0198] (3) Group by layer

[0199] The top and bottom points are grouped according to LayerName: floorGroupByObjId is used to store the grouping of bottom points, and ceilingGroupByObjId is used to store the grouping of top points;

[0200] (4) Generate the surface of the standard obstacle three-dimensional model

[0201] 1) Traverse the points of each layer:

[0202] For each LayerName: initialize the surface number SurfaceNo = 0; traverse the bottom and top points of the current layer and assign a number to each new surface;

[0203] 2) Build side:

[0204] For each pair of bottom and top points (x j ,y j ), get the index j+1 of the next point, and form a closed structure:

[0205]

[0206] Each side is composed of four points: the current bottom point and its top point (x j ,y j ,0) and (x j ,y j ,H); the next bottom point and

[0207] Its top point (x j+1 ,y j+1 ,0) and (x j+1 ,y j+1 ,H); the above points form a surface, as follows:

[0208] Side = {(x j ,y j ,0),(x j+1 ,y j+1 ,0),(x j+1 ,y j+1 ,H),(x j ,y j ,H)}

[0209] Generate a unique face ID for each face, and copy each point in the face and set its face ID;

[0210] (5) Summarize all points and return the result

[0211] Add the bottom, top, and side points to the result list:

[0212] Result2=floorPoints+ceilingPoints+newPointList

[0213] The final result result2 is returned, which represents the generated 3D model of the standard obstacle.

[0214] (6) For the two-wheeled vehicle model, pedestrian model, passenger-commercial vehicle model or three-wheeled vehicle model involved in the car accident, determine its length, width and height data and the number of contour points of different models, and calculate the coordinates of each model contour point based on the length, width and height data. Find the length (LENGTH), width (WIDTH) and height (HEIGHT) of the participant

[0215] Let L be the length, W be the width, and H be the height.

[0216] 1) For two-wheeled vehicles

[0217] Calculate the coordinates of the eight points in the model separately, such as Figure 2 shown.

[0218] Point 1: X = 0.5*L*0.4 Y = W / 2 Z = -H / 2

[0219] Point 2: X = -0.5*LY = 0Z = -H / 2

[0220] Point 3: X = 0.5*L*0.4 Y = -W / 2 Z = -H / 2

[0221] Point 4: X = 0.5*LY = 0Z = -H / 2

[0222] Point 5: X = 0.5 * L * 0.4 Y = W / 2 Z = H / 2

[0223] Point 6: X = -0.5*LY = 0Z = H / 2

[0224] Point 7: X = 0.5*L*0.4 Y = -W / 2 Z = H / 2

[0225] Point 8: X = 0.5*LY = 0Z = H / 2

[0226] Points 12341 form SURFID 1, and the points are renamed POINTIDs in sequence as 1, 2, 3, 4, and 5; Point 15841 forms SURFID 2, and the points are renamed POINTIDs in sequence as 1, 2, 3, 4, and 5; Point 15621 forms SURFID 3, and the points are renamed POINTIDs in sequence as 1, 2, 3, 4, and 5; Point 56785 forms SURFID 4, and the points are renamed POINTIDs in sequence as 1, 2, 3, 4, and 5; Point 84378 forms SURFID 5, and the points are renamed POINTIDs in sequence as 1, 2, 3, 4, and 5; Point 73267 forms SURFID 6, and the points are renamed POINTIDs in sequence as 1, 2, 3, 4, and 5;

[0227] 2) For pedestrians

[0228] Calculate the coordinates of the eight points in the model separately, such as Figure 3 shown.

[0229] Note: For pedestrians, the default value is L = 0.4 (m).

[0230] Point 1: X = L / 2 Y = -W / 2 Z = H / 2

[0231] Point 2: X = L / 2 Y = W / 2 Z = H / 2

[0232] Point 3: X = -L / 2 Y = W / 2 Z = -H / 2

[0233] Point 4: X = -L / 2 Y = -W / 2 Z = -H / 2

[0234] Point 5: X = L / 2 Y = -W / 2 Z = H / 2

[0235] Point 6: X = L / 2 Y = W / 2 Z = H / 2

[0236] Point 7: X = -L / 2 Y = W / 2 Z = -H / 2

[0237] Point 8: X = -L / 2 Y = -W / 2 Z = -H / 2

[0238] Point 13421 constitutes SURFID 1, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence; point 15621 constitutes SURFID 2, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence; point 15841 constitutes SURFID 3, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence; point 56785 constitutes SURFID 4, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence; point 67326 constitutes SURFID 5, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence; point 73487 constitutes SURFID 6, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence;

[0239] 3) For passenger-commercial vehicle models

[0240] Calculate the coordinates of the twelve points in the model separately, such as Figure 4 shown.

[0241] Point 1: X = L * 0.5 Y = W * 0.5 * 0.6 Z = H / 2

[0242] Point 2: X = L*0.5 Y = -W*0.5*0.6 Z = H / 2

[0243] Point 3: X=L*0.5*0.8Y=-W*0.5Z=H / 2

[0244] Point 4: X=-L*0.5Y=-W*0.5Z=H / 2

[0245] Point 5: X=-L*0.5Y=W*0.5Z=H / 2

[0246] Point 6: X=L*0.5*0.8Y=W*0.5Z=H / 2

[0247] Point 7: X = L*0.5 Y = W*0.5*0.6 Z = -H / 2

[0248] Point 8: X = L*0.5 Y = -W*0.5*0.6 Z = -H / 2

[0249] Point 9: X=L*0.5*0.8Y=-W*0.5Z=-H / 2

[0250] Point 10: X=-L*0.5Y=-W*0.5Z=-H / 2

[0251] Point 11: X=-L*0.5Y=W*0.5Z=-H / 2

[0252] Point 12: X=L*0.5*0.8Y=W*0.5Z=-H / 2

[0253] Points 1234561 form SURFID 1, and the points are renamed POINTID 1, 2, 3, 4, 5, 6, 7 in sequence; points 17821 form SURFID 2, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence; points 1, 7, 12, 6, 1 form SURFID 3, and the points are renamed POINTID 1, 2, 3, 4, 5 in sequence; points 7, 8, 9, 10, 11, 12, 7 form SURFID 4, and the points are renamed POINTID 1, 2, 3, 4, 5, 6 in sequence , 7; points 12, 6, 5, 11, 12 form SURFID 5, and rename the points in sequence to POINTID 1, 2, 3, 4, 5; points 11, 5, 4, 10, 11 form SURFID 6, and rename the points in sequence to POINTID 1, 2, 3, 4, 5; points 10, 4, 3, 9, 10 form SURFID 7, and rename the points in sequence to POINTID 1, 2, 3, 4, 5; points 93289 form SURFID 8, and rename the points in sequence to POINTID 1, 2, 3, 4, 5;

[0254] 4) For the tricycle model:

[0255] Calculate the coordinates of the sixteen points in the model respectively, such as Figure 5 shown.

[0256] Point 1: X=L*0.5Y=-W*0.5Z=-H*0.5

[0257] Point 2: X=L*0.5Y=W*0.5Z=-H*0.5

[0258] Point 3: X = -L*0.5*0.65 Y = W*0.5*0.75 Z = -H*0.5

[0259] Point 4: X = -L*0.5*0.65 Y = W*0.5*0.15 Z = -H*0.5

[0260] Point 5: X = -L*0.5 Y = W*0.5*0.15 Z = -H*0.5

[0261] Point 6: X = -L*0.5 Y = -W*0.5*0.15 Z = -H*0.5

[0262] Point 7: X = -L*0.5*0.65 Y = -W*0.5*0.15 Z = -H*0.5

[0263] Point 8: X = -L*0.5*0.65 Y = -W*0.5*0.75 Z = -H*0.5

[0264] Point 9: X=L*0.5Y=-W*0.5Z=H*0.5

[0265] Point 10: X=L*0.5Y=W*0.5Z=H*0.5

[0266] Point 11: X = -L*0.5*0.65 Y = W*0.5*0.75 Z = H*0.5

[0267] Point 12: X = -L*0.5*0.65 Y = W*0.5*0.15 Z = H*0.5

[0268] Point 13: X = -L*0.5 Y = W*0.5*0.15 Z = H*0.5

[0269] Point 14: X = -L*0.5 Y = -W*0.5*0.15 Z = H*0.5

[0270] Point 15: X = -L*0.5*0.65 Y = -W*0.5*0.15 Z = H*0.5

[0271] Point 16: X = -L*0.5*0.65 Y = -W*0.5*0.75 Z = H*0.5

[0272] Points 123456781 form SURFID 1, and rename the points in sequence to POINTID 1, 2, 3, 4, 5, 6, 7, 8, 9; points 1, 2, 10, 9, 1 form SURFID 2, and rename the points in sequence to POINTID 1, 2, 3, 4, 5; points 1, 8, 16, 9, 1 form SURFID 3, and rename the points in sequence to POINTID 1, 2, 3, 4, 5; points 9, 10, 11, 12, 13, 14, 15, 16, 9 form SURFID 4, and rename the points in sequence to POINTID 1, 2, 3, 4, 5, 6, 7, 8, 9; points 10, 2, 3, 11, 10 form SURFID 5, and rename the points in sequence to POINTID 1, 2, 3, 4, 5; points 11, 3, 4, 12, 11 form SURFID 6, and the points are renamed POINTID in sequence as 1, 2, 3, 4, 5; points 12, 4, 5, 13, 12 form SURFID 7, and the points are renamed POINTID in sequence as 1, 2, 3, 4, 5; points 13, 5, 6, 14, 13 form SURFID 8, and the points are renamed POINTID in sequence as 1, 2, 3, 4, 5; points 14, 6, 7, 15, 14 form SURFID 9, and the points are renamed POINTID in sequence as 1, 2, 3, 4, 5; points 15, 7, 8, 16, 15 form SURFID 10, and the points are renamed POINTID in sequence as 1, 2, 3, 4, 5.

[0273] In this embodiment, Navicat software is used to establish the accident case data table and the fields in the table, and SpringBoot+VUE technology is used to establish the PCS database system, that is, the accident case database. The accident case database is composed of multiple accident case data tables, and each accident case data table is divided into four categories. The first category stores overall information, environmental information and vehicle parameters; the second category stores motion parameters; the third category stores accident participant data (such as vehicles, pedestrians, two-wheeled vehicles and three-wheeled vehicles, etc.); the fourth category stores road information tables and obstacle information.

[0274] For example, in the first type of data table, the overall information includes the following fields: accident number, accident time, accident classification, specific type of accident, accident form, total number of parties involved in the accident, total number of vehicles directly involved in the accident, total number of two-wheelers directly involved in the accident, total number of three-wheelers directly involved in the accident, total number of pedestrians directly involved in the accident, related obstacles in the accident, Skynet and other videos, the direction of the target vehicle from the perspective of the main collision vehicle, the number of background vehicles, the number of background two-wheelers, the number of background three-wheelers, the number of background pedestrians, and processing tools. The rules for formulating the fields under the overall information table are: 01 accident number field (type: character type; input method: manual input; rule: composed of three letters and six digits); 02 accident time (type: TIME type; input method: manual input; rule: composed of year, month, and day); 03 accident classification (type: character type; input method: option; rule: the option content includes 1-minor accident, 2-general accident, 3-major accident, and 4-major accident); 04 specific type of accident (type: numerical type; input method: manual input; rule: three digits). In this embodiment, the formulation of other data tables is completed according to the formulation rules of the overall information data table.

[0275] It is worth noting that in actual application, the preset rules formulated in the data table can be adjusted according to the actual situation and are not specifically limited here.

[0276] In this embodiment, the accident case database constructed has three functions: creating a new case, exporting a case, and managing a case. For the new case function, basic depth data, vehicle parameters, motion parameters, road information, and obstacle information are entered into the database, including manual input, NAIS data import, PC-crash output data import, and AutoCAD output data import. NAIS data import has the same function as manual input, except that one is automatic import and the other is manual filling.

[0277] PC-crash outputs data as Excel files, which can be named according to the rule of "case number_participant / object*_vehicle / 3wheels / 2wheels / pedestrian.xls", where participant is the direct participant, object is the background participant, and * is the participant number, which are sorted in order. When importing these Excel files, first, determine which case and which data the file belongs to based on the Excel file name. The judgment process is as follows: Step 1, check whether the case number exists in the database system. If it does not exist, the import fails (the case is not found). If it exists, determine the case number; Step 2, determine whether this Excel table is the direct participant or background participant information; Step 3, determine whether this Excel table is the information of a car (vehicle), a three-wheeled vehicle (3wheels), a two-wheeled vehicle (2wheels) or a pedestrian (pedestrian). Secondly, identify the cells in the Excel table and put the corresponding cell data into the database. For example, the trajectory coordinate X in the motion parameter table corresponds to column B in the Excel table, and the trajectory coordinate Y corresponds to column C in the Excel table.

[0278] AutoCAD outputs data in DXF format, which can be named according to the rule of "case number_scenario", where scenario is a DXF script file. Each DXF file includes five parts: title segment, table segment, block segment, entity segment, and file end segment. The entity segment information consists of several groups, each of which occupies two lines. The first line is the group code, and the second line is the group value. The group code is equivalent to the data type code, which is specified by the CAD graphics system, and the group value is a specific value. The combination of the two represents the meaning and value of a data. For example, code 10 represents the X coordinate of a point, which occupies one line, and the second line 3.1415 is the specific value of the X coordinate of the point. The combination of the two represents a point, and its X coordinate value is 3.1415. When importing a DXF file, only the entity segment information is parsed. First, determine which case the file belongs to based on the DXF file name. The specific judgment process is as follows: Step 1, determine each line of the DXF file from top to bottom. When "ENTITIES" is scanned, it indicates the start of the entity segment; Step 2, scan each line below "ENTITIES" to determine the possible types, including "8" (layer name mark), "LINE" (straight line mark), "POLYLINE" (polyline mark), "ENDSEC" (polyline end mark), "10" (X-axis coordinate), "20" (Y-axis coordinate), etc. Step 3, convert the parsed geometric data into the corresponding entity class, including polyline class, arc segment class, and polyline segment class. Secondly, put the data into the road information table and obstacle information table by determining different layer names. This completes the overall creation of a case.

[0279] For the case export function, data extraction rules can be set according to actual conditions. For example, when it is necessary to extract a certain accident case data for PreScan simulation, some fields can be selectively extracted from the accident case data table to form 5 Excel tables: vehicle dynamic data (Dynamics), overall information (Global_data), obstacle information (Objects), accident participant information (Participants_data), road data (Traffic_infrastructure). For example, the table headers in the Dynamics table are accident number (FALL), participant number (BETNR), time step (STEP), X coordinate (XPOS), Y coordinate (YPOS), speed X (VX), speed Y (VY), acceleration X (AX), acceleration Y (AY), yaw angle (PSI), whether to take braking (BRAKING), REC (RECON), collision time (TTC). The value under the FALL table header is the first field under the first table. The value under the STEP table header is the fourth field under the 11th table, and STEP=5-T is calculated. The specific content of the data extraction rules is not limited here. The extracted case data is imported into PreScan software for simulation.

Claims

1. A method for constructing a car accident case database, characterized in that: The following steps are involved: Step 1: Obtain basic depth data, accident scene data and accident scene map of automobile accident cases; Step 2: Import the accident scene data into PC-crash software, analyze and reconstruct the car accident, and export the vehicle parameters and motion parameters at the time of the accident; Step 3: Draw a 3D multi-layer framework diagram based on the accident scene diagram, and export the road information and obstacle information at the time of the accident as a DXF file; the road information includes standard road surface marking data and standard road marking data, and the X coordinates, Y coordinates and Z coordinates of related points; the obstacle information includes standard static obstacle data and standard obstacle data; Step 4: Summarize the vehicle motion parameters exported by PC-crash software in step 2, extract the information required for modeling and store it; Step 5: Calculate and summarize the standard road marking data: determine the reference point on the standard road marking, calculate and store the rotation angle of the reference point on the standard road marking around the Z axis; classify each small square on the standard road marking line in the DXF file, and store the classification results; Step 6: Calculate and summarize the standard static obstacle data: read the two-dimensional graphic data from the DXF file to generate the bottom plane of the standard static obstacle and build the basis of the three-dimensional model; then generate the top plane according to the points of the bottom plane and set its height; Then use the bottom and top points to generate the side of the three-dimensional model; finally, store all the constructed bottom plane, top plane and side point data into the final result result1 list, which represents the generated standard static obstacle three-dimensional model; Step 7: Calculate and summarize the standard obstacle data: read the two-dimensional graphic data to generate the bottom plane of the standard obstacle; then generate the top plane according to the points of the bottom plane; then group the points of the top plane and the points of the bottom plane to generate the side of the standard obstacle three-dimensional model; finally, store all the constructed bottom plane, top plane and side point data into the final result result2 list, which represents the generated three-dimensional model of the standard obstacle; Step 8: For the two-wheeled vehicle model, pedestrian model, passenger-commercial vehicle model or three-wheeled vehicle model involved in the automobile accident, determine the length, width and height data and the number of contour points of different models, calculate the coordinates of each model contour point according to the length, width and height data, and rename each point in sequence, and determine the order of each point according to the model sequence naming to build a correct model; Step 9: Obtain an accident case data table based on the above stored data, and combine multiple accident case data tables to form an accident case database.

2. The method for constructing a car accident case database according to claim 1, characterized in that: In step 1, the basic depth data includes overall information and environmental information; The overall information includes the accident number, accident time, accident type, accident participants and accident level; Environmental information includes the accident location, road section information, weather, accident time, daytime sunlight and lighting conditions.

3. The method for constructing a car accident case database according to claim 1, characterized in that: In step 2, the vehicle parameters include the type, length, width, height, weight, front wheel track, rear wheel track, tire model, tire pressure, adhesion coefficient, pre-collision braking time, pre-collision braking distance, collision angle, initial speed, speed at collision, driving direction, and pre-collision movement of the vehicle; The motion parameters include time to collision, trajectory coordinates, heading angle, pitch angle, yaw angle, speed, acceleration, braking conditions and friction coefficient.

4. The method for constructing a car accident case database according to claim 1, characterized in that: In step 3, the road information and obstacle information are composed of polylines, straight line segments and arc segments; The polyline contains the first layer name, the first line type name, the number of line segments, and the first start and end point coordinates; The straight line segment contains the second layer name, the second line type name, and the second start and end point coordinates; The arc segment contains the third layer name, the third line type name, the coordinates of the center point, the arc radius, and the arc start and end angles.

5. The method for constructing a car accident case database according to claim 1, characterized in that: In step 4, the above steps are summarized as follows: Export time TIME = 5 + time, time is the vehicle motion parameter data during import; When exporting, the yaw angle PSI = ((VEL_DIR / 180×3.1415926)×10 2 ) / 10 2 , VEL_DIR is the vehicle motion parameter data during import; The speed of the X axis during export is VX = vx / 3.6, where vx is the motion parameter data of the vehicle on the X axis during import; The speed of the Y axis during export is VY=vy / 3.6, where vy is the motion parameter data of the vehicle on the Y axis during import; The speed of the Z axis during export is VZ=vz / pr, vx is the motion parameter data of the vehicle on the Z axis during import, and pr is the proportional coefficient.

6. The method for constructing a car accident case database according to claim 1, characterized in that: In step 5, the calculation of the rotation angle of the reference point on the standard road surface mark around the Z axis is specifically: Identify the indicate layer in the DXF file, get the information of two points (x1, y1) and (x2, y2), determine the reference point, and calculate the rotation angle of the reference point around the z-axis: REFROTZ=atan((y2-y1) / (x2-x1))-π / 2 Among them, atan() means taking the inverse tangent.

7. The method for constructing a car accident case database according to claim 1, characterized in that: In step 5, the calculation and summarization of the standard road marking data is specifically as follows: The standard road markings are: A=[p1;p2;…;p i ;…;p n ] Among them, p i represents the mean coordinates of the i-th small square (x i ,y i ,0), n represents the number of standard road marking small squares in the exported DXF file; Find the linear equation through points p1 and p2: ay+bx+c=0, let the index If the i-th indicator Then classify these points as class 1; find the maximum and minimum values ​​from the mean coordinates of the small squares: x max ,x min ,y max ,y min ; When x max -x min ≤y max -y min , then the characteristic point of this section of standard road marking is (x p1 ,y max ,0)、(x p2 ,y min , 0); Among them, x p1 、x p2 Respectively represent y max ,y min The corresponding x value; Otherwise, the characteristic point of the standard road marking is (x max ,y p1 ,0)(x min ,y p2 , 0); Among them, y p1 ,y p2 Respectively represent x max 、x min The corresponding y value; Remove the points that have been classified in A and repeat the above steps until all points have been classified.

8. The method for constructing a car accident case database according to claim 1, characterized in that: In step 6, the calculation is summarized as follows: Step 6.1: Read data and construct the standard static obstacle bottom plane 1) Input data structure: Given a map function, the key is a string type String key, and the value is a list containing multiple DxfParseInfo objects, each of which represents point or line information on the plane; 2) Traverse each set of data: For each key in the map: Get the point list parseInfoList corresponding to the current key; Traverse each point, construct a static obstacle object StaticObstacle, and add it to floorList; 3) Bottom plane construction logic: For each DxfParseInfo object create the obstacle: Record the point number pointCount and increase it in sequence; If the point type is an arc, the split point is skipped; if the point type is a straight line, it is processed as a closed path: Define the current point (x j ,y j ) and the next point (x j+1 ,y j+1 ) forms a closure between the last point and the first point: Line segment = {(x j ,y j )→(x j+1 ,y j+1 )} or (x n ,y n )→(x0,y0) Step 6.2: Generate the top of the standard static obstacle stereographic image Iterate over all points in floorList: Use cloneANewOne() to clone each bottom point to generate the corresponding top point; Set the Z coordinate of each top point to Z j Set it to a constant height H: Among them, the symbol is a logical symbol, indicating that a certain condition is true for all j; Step 6.3: Define the standard static obstacle sides: For each pair of corresponding points at the bottom and top, create a vertical line segment: Side line segment = {(x j, y j ,0)→(x j, y j ,H)} Side build logic: For each bottom point floor and its corresponding top point ceiling: Clone two points and set their point attributes to 1 and 2 respectively; and add these two points as a vertical edge to sideList; Step 6.4: Add the data of the bottom, top and side points of all constructed standard static obstacles to the final result list result1: Result1=floorList+ceilingList+sideList Step 6.5: Assign numbers to all standard static obstacle vertical edges for easy identification in the model; Numbering rule: Traverse all obstacle objects in result: If point is 1, the line segment number is incremented; If point is 2, the number of the previous line is used.

9. The method for constructing a car accident case database according to claim 1, characterized in that: In step 7, the calculation is summarized as follows: Step 7.1: Construct the standard obstacle bottom plane 1) Input data: Given a map, where: the key is a string type, indicating the identifier of a set of data; the value is a list containing multiple DxfParseInfo objects, each of which represents a point in a two-dimensional plane; 2) Build the bottom plane: Traverse each set of data in the map and generate Objects objects to represent points: set the point number PointId and object type LayerName; record the plane coordinates (x, y) and height z=0 of the point: floorPoint=(x,y,0) Add all generated points to floorList; Step 7.2: Generate the top plane of the standard obstacle Clone all points in floorList, generate the corresponding top points, and set a fixed height H for them: ceilingPoint=(x,y,H) Add these top points to ceilingList; Step 7.3: Group by layer The top and bottom points are grouped according to LayerName: floorGroupByObjId is used to store the grouping of bottom points, and ceilingGroupByObjId is used to store the grouping of top points; Step 7.4: Generate the surface of the standard obstacle stereo model 1) Traverse the points of each layer: For each LayerName: initialize the surface number SurfaceNo = 0; traverse the bottom and top points of the current layer and assign a number to each new surface; 2) Build side: For each pair of bottom and top points (x j ,y j ), get the index j+1 of the next point, and form a closed structure: Each side is composed of four points: the current bottom point and its top point (x j ,y j ,0) and (x j ,y j ,H); the next bottom point and its top point (x j+1 ,y j+1 ,0) and (x j+1 ,y j+1 ,H); the above points form a surface, as follows: Side = {(x j , y j , 0), (x j+1 , y j+1 , 0), (x j+1 , y j+1 , H), (x j , y j , H)} Generate a unique face ID for each face, and copy each point in the face and set its face ID; Step 7.5: Aggregate all points and return the result Add the bottom, top, and side points to the result list: Result2=floorPoints+ceilingPoints+newPointList The final result result2 is returned, which represents the generated 3D model of the standard obstacle.