Automatic driving algorithm debugging method and device, equipment and storage medium
Through multi-threaded decoupling and real-time visualization technology, the problem that autonomous driving algorithm debugging tools cannot debug in real time is solved, debugging efficiency and flexibility are improved, and rapid problem identification and optimization are achieved.
Patent Information
- Application Number
- CN202411889840.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-20
- Publication Date
- 2025-10-10
- Estimated Expiration
- 2044-12-20
AI Technical Summary
Existing autonomous driving algorithm debugging tools are unable to perform visual real-time debugging, resulting in low debugging efficiency and the need to frequently reload data.
By decoupling the main program from the debugging tool through multi-threading, and combining string visualization, curve visualization, and single-frame debugging modes, real-time visualization of algorithm problem data and trajectory planning data is achieved, ensuring that the real-time operation of the main program is not affected.
It improves the efficiency and flexibility of algorithm debugging, reduces debugging time, enables rapid identification and resolution of problems, and enables real-time feedback and optimization.
Smart Images

Figure CN119829409B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of autonomous driving algorithm debugging, and in particular to autonomous driving algorithm debugging methods, devices, equipment and storage media. Background Art
[0002] With the development of autonomous driving technology, the decision-making and planning capabilities of autonomous driving are becoming increasingly powerful, and the algorithms are becoming increasingly complex. Rapidly identifying and fixing problems during actual algorithm operation and efficiently iterating algorithms have become increasingly important. Currently, autonomous driving systems generate a large amount of data during driving, which can be mainly divided into three categories: log data, node communication data, and troubleshooting data. This data can help developers troubleshoot problems.
[0003] However, traditional tools have limitations. Log data is not intuitive enough, node communication data lacks effective visualization, and troubleshooting data can only solve specific problems. In addition, during the algorithm debugging and optimization process, it is often necessary to restart the algorithm and re-import the data.
[0004] The above content is only used to assist in understanding the technical solution of this application and does not constitute an admission that the above content is prior art. Summary of the Invention
[0005] The main purpose of this application is to provide an autonomous driving algorithm debugging method, device, equipment and storage medium, aiming to solve the technical problem that algorithm debugging tools in autonomous driving systems cannot perform visual real-time debugging.
[0006] To achieve the above objectives, this application proposes a method for debugging an autonomous driving algorithm, the method comprising:
[0007] Obtain algorithm problem data and trajectory planning data;
[0008] Performing string visualization based on the algorithm problem data and the trajectory planning data;
[0009] Performing curve visualization according to the trajectory planning data;
[0010] When an algorithm debugging instruction is detected, single-frame debugging mode is enabled;
[0011] Algorithm debugging is performed according to the string visualization, the curve visualization, and the single-frame debugging mode.
[0012] In one embodiment, the step of visualizing a curve according to the trajectory planning data includes:
[0013] Acquire planning time data and lateral decision trajectory data according to the trajectory planning data;
[0014] Perform rolling visualization based on the planning time-consuming data;
[0015] Performing path curve visualization according to the trajectory data;
[0016] Curve visualization is performed based on the scroll visualization and the path curve visualization.
[0017] In one embodiment, the step of performing rolling visualization based on the planning time-consuming data includes:
[0018] Get the preset scroll queue, the preset number of queues, and the current number of queues;
[0019] Obtaining the total planning time of trajectory planning and the planning submodule of trajectory planning according to the planning time consumption data, and obtaining the submodule time consumption according to the planning submodule;
[0020] When the number of the current queue is less than the preset number of queues, the submodule is added to the preset rolling queue in a time-consuming manner, and the adding time is recorded;
[0021] When the number of the current queues is greater than or equal to the preset number of queues, the historical submodule time consumption is deleted according to the joining time, and the submodule time consumption is added to the preset rolling queue;
[0022] The preset scrolling queue is displayed according to the immediate mode graphical user interface to achieve scrolling visualization.
[0023] In one embodiment, the step of visualizing the path curve according to the trajectory data includes:
[0024] Acquire reference line information, path planning information, speed information, vehicle position information, and obstacle information based on the trajectory data;
[0025] Get the preset position range, preset zoom range, and preset front-back offset rate;
[0026] Obtaining a position display range based on an instant mode graphical user interface according to the vehicle position information and the preset position range;
[0027] Obtaining a zoom display range based on an instant mode graphical user interface according to the path planning information and the preset zoom range;
[0028] Obtaining a front and rear display range according to the path planning information and the preset front and rear offset rate;
[0029] Obtaining an obstacle display result based on the instant mode graphical user interface according to the obstacle information;
[0030] The path curve is visualized according to the position display range, the zoom display range, the front-rear display range, and the obstacle display result.
[0031] In an embodiment, the step of obtaining the front-rear display range according to the path planning information and the preset front-rear offset rate comprises:
[0032] Obtaining a vehicle rear axle center position and a target planning position according to the path planning information;
[0033] Calculating a target focal point coordinate according to the preset front-rear offset rate, the vehicle rear axle center position, and the target planning position;
[0034] Obtaining the front-rear display range according to the target focal point coordinate.
[0035] In an embodiment, the step of performing string visualization according to the algorithm problem data and the trajectory planning data comprises:
[0036] Obtaining a timestamp of the algorithm problem data;
[0037] Obtaining automatic driving mode and decision information of a lateral decision according to the trajectory planning data;
[0038] Performing string visualization based on an instant mode graphical user interface according to the timestamp, the automatic driving mode, and the decision information.
[0039] In an embodiment, the step of enabling the single-frame debugging mode when the algorithm debugging instruction is detected comprises:
[0040] When the algorithm debugging instruction is detected, modifying a current single-frame mode signal to a target single-frame mode signal according to the instant mode graphical user interface;
[0041] Sending the target single-frame mode signal to a main program, so that the main program switches a current continuous input mode to the single-frame debugging mode based on the target single-frame mode signal, and the single-frame debugging mode is enabled.
[0042] In addition, to achieve the above object, the present application further provides an automatic driving algorithm debugging device, which comprises:
[0043] An obtaining module, configured to obtain algorithm problem data and trajectory planning data;
[0044] A string visualization module, configured to perform string visualization according to the algorithm problem data and the trajectory planning data;
[0045] A curve visualization module, configured to perform curve visualization according to the trajectory planning data;
[0046] A single-frame debugging module is used to enable single-frame debugging mode when an algorithm debugging instruction is detected;
[0047] An algorithm debugging module is used to perform algorithm debugging according to the string visualization, the curve visualization and the single-frame debugging mode.
[0048] In addition, to achieve the above-mentioned purpose, the present application also proposes an autonomous driving algorithm debugging device, which includes: a memory, a processor, and a computer program stored on the memory and runnable on the processor, and the computer program is configured to implement the steps of the autonomous driving algorithm debugging method as described above.
[0049] In addition, to achieve the above-mentioned purpose, the present application also proposes a storage medium, which is a computer-readable storage medium. A computer program is stored on the storage medium, and when the computer program is executed by the processor, the steps of the autonomous driving algorithm debugging method as described above are implemented.
[0050] In addition, to achieve the above-mentioned purpose, the present application also provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, it implements the steps of the autonomous driving algorithm debugging method as described above.
[0051] One or more technical solutions proposed in this application have at least the following technical effects:
[0052] By decoupling the main program from the debugging tool through multi-threading, the algorithm debugging process will not affect the real-time operation of the main program. At the same time, the configuration parameters and visualization data can be updated in real time without interfering with the performance of the main program. By enabling the single-frame debugging mode, the same data input can be used each time the algorithm is debugged, avoiding the tedious step of reloading the data after each algorithm optimization. Through string visualization and curve visualization, changes in data such as path planning and speed control can be intuitively monitored, and problems in the algorithm can be quickly identified. Compared with existing technologies, debugging efficiency and flexibility are significantly improved, debugging time is reduced, and algorithm optimization and problem solving are carried out more quickly through real-time feedback. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.
[0054] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0055] Figure 1 A flowchart illustrating the first embodiment of the autonomous driving algorithm debugging method of this application;
[0056] Figure 2 A flowchart illustrating the second embodiment of the automatic driving algorithm debugging method of this application is provided;
[0057] Figure 3 A schematic diagram of the autonomous driving system architecture provided for Example 2 of the autonomous driving algorithm debugging method of this application;
[0058] Figure 4 This is a schematic diagram of the module structure of the automatic driving algorithm debugging device according to an embodiment of the present application;
[0059] Figure 5 This is a schematic diagram of the device structure of the hardware operating environment involved in the autonomous driving algorithm debugging method in the embodiment of the present application.
[0060] The purpose, features and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION
[0061] It should be understood that the specific embodiments described herein are merely used to explain the technical solutions of the present application and are not intended to limit the present application.
[0062] In order to better understand the technical solution of the present application, a detailed description will be given below in conjunction with the accompanying drawings and specific implementation methods.
[0063] The main solution of the embodiment of the present application is to obtain algorithm problem data and trajectory planning data;
[0064] Performing string visualization based on the algorithm problem data and the trajectory planning data;
[0065] Performing curve visualization according to the trajectory planning data;
[0066] When an algorithm debugging instruction is detected, single-frame debugging mode is enabled;
[0067] Algorithm debugging is performed according to the string visualization, the curve visualization, and the single-frame debugging mode.
[0068] In this embodiment, for ease of description, the following description is made using the identification of the autonomous driving algorithm debugging device as the execution entity.
[0069] Since the algorithm debugging tools in the existing autonomous driving systems cannot perform visual real-time debugging, this application provides a solution that decouples the main program from the debugging tools through multi-threading, ensuring that the algorithm debugging process does not affect the real-time operation of the main program, while being able to update the configuration parameters and visualization data in real time without interfering with the performance of the main program. By enabling the single-frame debugging mode, the same data input can be used each time the algorithm is debugged, avoiding the tedious steps of reloading data after each algorithm optimization. Through string visualization and curve visualization, changes in data such as path planning and speed control can be intuitively monitored, and problems in the algorithm can be quickly identified. Compared with the existing technology, the debugging efficiency and flexibility are significantly improved, the debugging time is reduced, and the algorithm optimization and problem solving are carried out faster through real-time feedback.
[0070] It should be noted that the execution subject of this embodiment may be a computing service device with data processing, network communication, and program execution functions, such as a tablet computer, personal computer, mobile phone, etc., or an electronic device capable of implementing the above functions, an autonomous driving algorithm debugging device, etc. The following uses the autonomous driving algorithm debugging device as an example to illustrate this embodiment and the following embodiments.
[0071] Based on this, the embodiment of the present application provides a method for debugging an autonomous driving algorithm, referring to Figure 1 , Figure 1 This is a flow chart of the first embodiment of the autonomous driving algorithm debugging method of this application.
[0072] In this embodiment, the autonomous driving algorithm debugging method includes steps S10 to S50:
[0073] Step S10, obtaining algorithm problem data and trajectory planning data;
[0074] It should be noted that algorithm problem data refers to various information related to algorithm execution issues generated during the execution of autonomous driving algorithms. This data typically includes, but is not limited to, error logs, warning messages, exception data, and diagnostic results. By collecting this data, developers can identify potential issues within the algorithm, such as inaccurate path planning, control algorithm delays, and errors in the decision-making module. Algorithm problem data helps identify algorithm defects and provides a basis for subsequent optimization.
[0075] In addition, it should be noted that the trajectory planning data is information generated by the automatic driving system to describe the driving path of the vehicle. The trajectory planning data generally includes but is not limited to the expected path of the vehicle, the driving route, the steering angle, the speed control and the acceleration, etc. The trajectory planning data can be calculated through various sensor data and algorithms. The trajectory planning data is an important basis for the automatic driving system to execute decision planning, ensuring that the vehicle can smoothly and safely drive in the environment.
[0076] Step S20, string visualization is performed according to the algorithm problem data and the trajectory planning data;
[0077] It should be noted that string visualization refers to presenting data on the interface through text or characters. Unlike graphical visualization, string visualization shows data through concise text information, which can help developers intuitively view and understand the key features of the data, and is usually used to display some real-time changes, control parameters, status information, etc.
[0078] It can be understood that the information obtained from the algorithm problem data and the trajectory planning data is string visualized. The key problems, warnings and abnormal information in the algorithm problem data are displayed in a simple text manner, helping developers to monitor the algorithm running state in real time and quickly locate problems. For example, display error codes, warning prompts or data deviation information. Secondly, the key information in the trajectory planning data, such as the planned path, target point, current state of the vehicle, etc., can be displayed in the form of strings, which is convenient for developers to understand the motion target and planning path of the automatic driving system in real time during the debugging process.
[0079] In a possible implementation, step S20 can include steps S21-S23:
[0080] Step S21, obtaining the timestamp of the algorithm problem data;
[0081] It should be noted that the timestamp is an identifier used to record the specific time point of an event, usually represented in the format of accurate date and time. In the automatic driving system, the timestamp is usually used to record the occurrence time of each frame of data or each key operation, helping developers to track and analyze the event sequence in the algorithm execution process.
[0082] It can be understood that the relevant timestamp information is extracted from the algorithm problem data. The timestamp is a time marker that records the occurrence time of key events or data points in the algorithm. In the debugging process, the timestamp can help developers accurately know the specific time when each algorithm problem data is generated. For example, the triggering of a problem may be associated with the time of path planning or control decision, and the timestamp provides necessary data for the correlation analysis of these events.
[0083] Step S22, obtaining decision information of the automatic driving mode and lateral decision according to the trajectory planning data;
[0084] It should be noted that decision information refers to the decision results made by the autonomous driving system based on the current environment and system status. This information includes the vehicle's motion planning, control instructions, such as acceleration, braking, steering, and other behavioral decisions, such as obstacle avoidance and parking. Decision information is used to guide the vehicle to perform real-time driving control. Lateral decision refers to the decision made by the vehicle during driving, such as steering, lane changing, etc. Lateral decision planning is mainly carried out in a spatial coordinate system, which can be a Cartesian coordinate system and a Frenet coordinate system in this embodiment. This embodiment can display the specific content of the lateral decision in the Cartesian space coordinate system, and the displayed content includes but is not limited to the lane centerline, lane boundary line, lane boundary line type, target lane centerline, obstacle boundary, obstacle prediction trajectory, self-vehicle path planning boundary, self-vehicle path planning results, etc.
[0085] It is understood that the desired autonomous driving mode for the vehicle can be determined based on information such as road characteristics, target speed, and the vehicle's current state in the trajectory planning data. For example, if the trajectory planning data indicates that the vehicle is traveling on a highway, the highway driving mode will be selected, allowing the vehicle to travel at higher speeds and tolerate larger lane deviations. Decision information for lateral decisions can be calculated by calculating the relative position of the vehicle to the road boundary, lane centerline, and any obstacles. This embodiment does not limit the method for obtaining decision information for lateral decisions.
[0086] Step S23: Perform string visualization based on an instant mode graphical user interface according to the timestamp, the autonomous driving mode, and the decision information.
[0087] It's important to note that Immediate Mode GUI (ImGui) is a technology for developing interactive user interfaces, particularly suitable for real-time applications. Unlike traditional graphical display interfaces, ImGui uses immediate mode, where all interface controls are rebuilt and rendered every frame. This ensures an efficient and flexible user interface, as interface elements are rebuilt every frame, making it suitable for real-time updates and debugging scenarios.
[0088] It can be understood that the timestamp, autonomous driving mode, and lateral decision information obtained from steps S21 and S22 are combined to perform string visualization through ImGui. String visualization displays this information in text form within the interface, allowing developers to clearly see the timing, execution mode, and specific content of each decision. String visualization can be achieved by calling the ImGui::Text() method.
[0089] Step S30, performing curve visualization according to the trajectory planning data;
[0090] It's important to note that curve visualization displays dynamic data such as a vehicle's trajectory, path, speed, and acceleration as a curve on the interface. This graph allows developers to clearly visualize the vehicle's trajectory, changes in curvature during path planning, and speed trends. Curve visualization is often used for real-time monitoring and debugging, helping developers intuitively evaluate and optimize algorithm performance.
[0091] It is understood that the trajectory planning module acquires data including the vehicle's path, reference lines, waypoints, speed, and acceleration. This data is typically provided in the form of a time series, representing information such as the vehicle's position, speed, and direction at different points in time. By converting various parameters in the trajectory planning data, such as waypoints and reference lines, into curves, the vehicle's motion trajectory and path planning are plotted in real time on the interface. These curves can display the vehicle's route from the starting point to the end point, and can intuitively reflect the vehicle's deviations, turns, and other behaviors along the way.
[0092] In a feasible implementation, step S30 may include steps S31 to S34:
[0093] Step S31, obtaining planning time data and lateral decision trajectory data according to the trajectory planning data;
[0094] It should be noted that planning time data refers to the time spent by each submodule or the total module during the trajectory planning process. Planning time data helps developers understand the computational efficiency of different modules and determine whether there are computational bottlenecks. For example, the path planning module may calculate the shortest path for the vehicle, while the speed planning module adjusts the speed according to road conditions. By recording the time consumed by each module, developers can identify areas for optimization. Trajectory planning data is the target path calculated by the autonomous driving system, representing the ideal route that the vehicle needs to travel from the starting point to the end point. Trajectory data includes but is not limited to the vehicle's location information, waypoints, speed, acceleration, etc., and is usually generated by the path planning algorithm. Trajectory planning data is the key basis for determining the vehicle's path and movement.
[0095] It is understood that based on the trajectory planning data, planning time data and lateral decision trajectory data are obtained and extracted. Planning time data records the computation time of each module in the trajectory planning process, which can help evaluate the efficiency and performance bottlenecks of each module.
[0096] Step S32, performing rolling visualization based on the planning time-consuming data;
[0097] It should be noted that scrolling visualization refers to the dynamic display of real-time data on the interface. As new data is added, the old data will scroll out of the display area to keep the interface updated in real time.
[0098] It is understandable that the scrolling visualization of planning time consumption data can be used to dynamically update the execution time of each module to the interface. As time goes by, new data will overwrite old data, maintaining real-time data display. This can help developers understand the computing efficiency of different modules at different time points and detect whether there is excessive computing time.
[0099] In a feasible implementation, step S32 may include steps S321 to S325:
[0100] Step S321, obtaining the preset rolling queue, the preset queue number and the current queue number;
[0101] It should be noted that the preset rolling queue is a data structure used to store real-time data in the system. This queue has a fixed size and is used to store the execution time of each calculation or each module in real time. The characteristic of the rolling queue is that when new data is added, the queue automatically removes the oldest data to maintain the real-time nature of the data in the queue. The preset number of queues is the queue size set during system design, which indicates the maximum number of elements that can be stored in the rolling queue. For example, if the preset number of queues is 10, then the time-consuming data of up to 10 sub-modules can be stored in the queue. The current number of queues refers to the number of elements currently stored in the rolling queue. As the autonomous driving decision algorithm runs, new data will continue to be added to the queue, and the current number of queues will change dynamically. If the queue is full, the new data will overwrite the oldest data.
[0102] Step S322, obtaining the total planning time of trajectory planning and the planning submodule of trajectory planning according to the planning time consumption data, and obtaining the submodule time consumption according to the planning submodule;
[0103] It should be noted that the total planning time refers to the total calculation time of all related sub-modules when the autonomous driving system performs a complete trajectory planning task. This time integrates the time consumption of all planning steps such as path calculation, speed planning, and steering decision. Trajectory planning is usually composed of multiple sub-modules, such as path planning, speed planning, lateral decision, etc., and each sub-module is responsible for performing a specific task. The planning sub-module divides the system's trajectory planning task into multiple stages or steps, and each sub-module has an independent calculation task. The sub-module time consumption refers to the time spent by each sub-module during the trajectory planning process. By recording the time consumption of each sub-module, developers can evaluate which parts of the system need to be optimized to improve computational efficiency.
[0104] It can be understood that by extracting the total planning time and planning sub-modules from the planning time consumption data and obtaining the corresponding sub-module time consumption according to the execution of each sub-module, the overall performance of trajectory planning can be understood, the calculation consumption of different modules can be evaluated, and possible performance bottlenecks can be found. In this embodiment, the total planning time can be involved in rolling or can be displayed separately near the scroll bar.
[0105] Step S323, when the current queue quantity is less than the preset queue quantity, the sub-module time consumption is added to the preset rolling queue, and the joining time is recorded;
[0106] It should be noted that the joining time refers to the time when data such as sub-module time consumption enters the rolling queue. Recording the joining time helps manage the data in the queue and ensures that the elements in the queue are rolled in chronological order.
[0107] It can be understood that the current queue quantity is checked to see if it is less than the preset queue quantity. If so, the new sub-module time consumption data is added to the preset rolling queue, and the joining time of the data is recorded. When the queue is not full, new data can continue to be added to ensure that the data in the queue is kept up to date.
[0108] Step S324, when the current queue quantity is greater than or equal to the preset queue quantity, the historical sub-module time consumption is deleted according to the joining time, and the sub-module time consumption is added to the preset rolling queue;
[0109] It should be noted that the historical sub-module time consumption represents the sub-module time consumption that is added to the rolling queue the earliest before the current time.
[0110] It can be understood that when the current queue quantity reaches or exceeds the preset queue quantity, the capacity of the queue needs to be kept within the set maximum value. At this time, the earliest data in the queue will be deleted according to the joining time, and the new sub-module time consumption data will be added to the queue, which can ensure that the rolling queue always stores the latest planning time consumption data and maintains the real-time nature of the data.
[0111] For example, the decision planning period is 100 milliseconds, the set join time is 5 seconds, which means that the preset queue can store up to 50 data, then every 100 milliseconds, the first data is deleted, and then a data is added at the end, so that there are basically 50 data in the preset queue. When the preset queue is initialized, there are not 50 data in the preset queue due to the running time of the algorithm. Therefore, the sub-module time-consuming data needs to be continuously added to the preset queue, and when there are more than or equal to 50 data in the preset queue and the join time is reached, the earliest added historical sub-module time-consuming needs to be removed, and the sub-module time-consuming to be added at the current time needs to be added to the preset queue.
[0112] In step S325, the preset scroll queue is displayed according to the instant mode graphical user interface, and scroll visualization is realized.
[0113] It can be understood that after the data in the preset queue is updated, the ImGui: : Plot () method can be called to display all the data in the queue, achieving the purpose of scrolling update.
[0114] In step S33, path curve visualization is performed according to the trajectory data.
[0115] It should be noted that path curve visualization is to display the driving path of the vehicle through the graphical interface, connect the path points in the trajectory data into a curve, and help the developer observe the relationship between the vehicle path and the target path. Path curve visualization can reflect whether the vehicle accurately follows the trajectory and whether there is deviation.
[0116] It can be understood that the driving path curve of the vehicle is drawn according to the trajectory data and is visually displayed. The developer can see the planned driving route of the vehicle and the deviation from the actual path through the curve. The smoothness and accuracy of the path curve reflect the effectiveness of the path planning algorithm.
[0117] In a feasible implementation, step S33 can include steps S331-S337.
[0118] In step S331, reference line information, path planning information, speed information, vehicle position information and obstacle information are obtained according to the trajectory data.
[0119] It should be noted that reference line information refers to the ideal vehicle path or trajectory. In autonomous driving, a reference line typically serves as the vehicle's target path, and the vehicle is required to follow this reference line as closely as possible. Reference line information is typically generated by a path planning algorithm and represents the optimal route from the vehicle's current position to the target point. Path planning information refers to the vehicle's current and future path data, including path points, lanes, steering angles, and planned speed. This information helps the vehicle track and adjust its trajectory during driving. Speed information describes the vehicle's current and planned speeds. The autonomous driving system uses real-time speed control to adjust the vehicle's motion to ensure it reaches its intended destination without violating traffic rules and safety regulations. Vehicle position information is the vehicle's current position coordinates on the road. It is typically acquired by the vehicle's sensors and represents the vehicle's spatial position relative to a reference coordinate system at a specific point in time. Obstacle information is information acquired by the autonomous driving system through sensors regarding the positions of static or dynamic obstacles on the road, such as other vehicles, pedestrians, and traffic signs.
[0120] It can be understood that based on the trajectory data, reference line information, path planning information, speed information, vehicle position information and obstacle information can be extracted from it. By adjusting the vehicle's movement through real-time updating of these data, corresponding autonomous driving decision planning can be made.
[0121] Step S332, obtaining a preset position range, a preset zoom range, and a preset front-back offset rate;
[0122] It should be noted that the preset position range refers to the display range set according to the vehicle position during the visualization process. The preset position range is used to determine the size and position of the area displayed in the visualization interface, which is usually an area within a certain range around the vehicle's current position. The preset zoom range refers to the area zoom ratio set during the visualization process, which is used to control the size of the display area. Through the zoom range, developers can view larger or smaller areas and adjust the proportion of detail display. The preset front and rear offset rate refers to the offset range used for visualization in the front and rear directions of the vehicle. This parameter determines the display range of the front and rear areas on the visualization interface to ensure that the movement and path changes of the vehicle can be fully displayed.
[0123] Step S333, obtaining a position display range based on the instant mode graphical user interface according to the vehicle position information and the preset position range;
[0124] It can be understood that the position display range is determined according to the vehicle position information and the preset position range. The system takes the current position of the vehicle as the center and calculates the display area according to the preset range, so that the developer can see the position of the vehicle and its surrounding environment on the interface. Exemplarily, the center coordinate of the rear axle of the vehicle is taken as the center, and 150m is added and subtracted before and after the vehicle as the preset position range. The minimum value and the maximum value added and subtracted before and after the vehicle are passed into the ImGui::SetNextPlotRange() method as parameters, so as to control the display range of the ImGui::Plot() method.
[0125] In addition, the position display range can also be controlled by controlling the display position curve or not displaying the position curve. The data displayed in the corresponding spatial coordinate system of the lateral decision planning is relatively dense, and even if different colors are set for different curves, the curve meanings cannot be effectively distinguished, and the curves required for different problems may also be different. Too many curves are displayed, which leads to ineffective differentiation of curves, and even adversely affects problem troubleshooting. The check boxes corresponding to each curve can be added, and whether the ImGui::Plot() method is called is controlled through the variable corresponding to the check box, so as to realize the display and closing of the curve, and thus control the position display range.
[0126] Step S334, obtaining a zoom display range based on the real-time mode graphical user interface according to the path planning information and the preset zoom range;
[0127] It can be understood that the size of the display area is adjusted according to the path planning information and the preset zoom range. The zoom display range determines the fineness of the display area, which can help the developer to view the overall or local details of the path as needed. Path planning usually plans a curve with a longitudinal length of about 100m, which leads to that when the vehicle center is taken as the origin, the forward direction is taken as the y-axis, and the left and right directions are taken as the x-axis, the horizontal position relationship appears too narrow, which is not conducive to troubleshooting detailed problems, so the x and y minimum values and maximum values passed into the ImGui::SetNextPlotRange() need to be controlled manually. A sliding bar is added on the algorithm debugging interface by calling the ImGui::SliderFloat() method as the preset zoom range of the default display range, so as to control the display range of the ImGui::Plot() method.
[0128] Step S335, obtaining a front-back display range according to the path planning information and the preset front-back offset rate;
[0129] It's important to note that the front and rear display range refers to the area displayed in front of and behind the vehicle in the visualization interface. By setting the front and rear offset ratio, developers can control the display range to ensure sufficient front and rear environmental information is displayed for analyzing the rationality of path planning.
[0130] As you can see, the front and rear display range can be determined based on the path planning information and the preset front and rear deviation rate. Displaying the area within a certain range in front and behind the vehicle based on this data can help developers evaluate the vehicle's front and rear path changes and surrounding environment.
[0131] In a feasible implementation, step S335 may include steps S3351 to S3353:
[0132] Step S3351, obtaining the center position of the vehicle's rear axle and the target planned position according to the path planning information;
[0133] It should be noted that the vehicle's rear axle center position refers to the center point of the vehicle's rear axle and is typically used as a reference point in the vehicle's spatial coordinate system. It represents the geometric center that influences the vehicle's motion during actual driving. The target planning position is the endpoint of path planning and represents the vehicle's destination. The target planning position is the target point calculated by the path planning algorithm for the vehicle to reach and determines the vehicle's direction and path.
[0134] Step S3352, calculating the target focus coordinates according to the preset front-rear offset rate, the center position of the vehicle rear axle, and the target planned position;
[0135] It's important to note that the target focal point coordinates are a calculated location, typically located at a reference point between the vehicle and the target planned location. This point determines the center of the display area and is used to adjust the visual perspective and ensure accurate path display.
[0136] It is understandable that path planning usually plans a curve with a longitudinal length of about 100m. The default zoom focus is at the coordinate position corresponding to the center of the rear axle of the vehicle. When the problem occurs at a certain position in front of the rear axle center, the zoom function with the rear axle center as the focus cannot meet the requirements, so zoom focus control technology is needed. By calling the ImGui::SliderFloat() method, a slider is added to the algorithm debugging interface to display the offset rate between the center of the rear axle and the planned end point. This is equivalent to controlling the center of the screen to move forward or backward, so that the trajectory of the vehicle can be viewed more accurately. The target focus calculation formula is as follows:
[0137]
[0138] In the target focus calculation formula, xcenter ,y center is the target focus coordinate, offset rate is the preset front-back offset rate, x firstpoint ,y firstpoint is the coordinate of the center position of the rear axle, x lastpoint ,y lastpiint Plan the coordinates of the target location.
[0139] Step S3353: Obtain the front and rear display ranges according to the target focus coordinates.
[0140] It can be understood that the calculated target focal coordinates, combined with the preset front-to-back offset ratio, can be used to calculate the front-to-back display range. The front-to-back display range determines the actual range of the vehicle's front and rear areas that need to be displayed, ensuring that developers can see the required environmental and path information.
[0141] Step S336, obtaining an obstacle display result based on the instant mode graphical user interface according to the obstacle information;
[0142] Understandably, the decision-making and planning module is largely centered around obstacles. Therefore, troubleshooting obstacle-related issues requires clear information about the obstacle ID and the obstacle decision results. Therefore, a string display function is superimposed on the curve display. The relevant string can be displayed at a specified location by calling the ImGui::AddText() method. The obstacle display results refer to the road obstacle information displayed through the visual interface, including static obstacles such as parked vehicles and roadblocks, and dynamic obstacles such as pedestrians and other moving vehicles.
[0143] Step S337 : Visualizing the path curve according to the position display range, the zoom display range, the front and back display ranges, and the obstacle display result.
[0144] The path curve is visualized in the live mode graphical user interface, combining the position display range, zoom display range, front and rear display range, and obstacle display results. This path curve visualization helps developers fully understand the relationship between the vehicle's current path and the surrounding environment. If there is a significant deviation between the path curve and obstacles, developers can use this visualization to adjust the path planning in real time to avoid collision risks and ensure the accuracy and safety of path planning.
[0145] Step S34: performing curve visualization according to the scroll visualization and the path curve visualization.
[0146] It is understandable that the combination of scrolling visualization and path curve visualization can simultaneously display the time-consuming data of the trajectory planning process and the vehicle's driving path, providing more comprehensive data feedback and helping developers comprehensively analyze the algorithm execution process and results.
[0147] Step S40, when an algorithm debugging instruction is detected, enabling a single-frame debugging mode;
[0148] It's important to note that algorithm debugging commands are control signals issued by developers or debugging tools to adjust system behavior or perform specific debugging operations. These commands typically start or stop certain debugging modes, such as single-frame debugging mode or real-time data update mode, modify algorithm parameters, or control data visualization. These commands allow developers to more precisely control the system debugging process and quickly identify and resolve issues.
[0149] It's also important to note that single-frame debugging mode uses the same input data (the "previous frame" data) for each execution, rather than accepting new real-time input data. This mode is often used for algorithm debugging, especially when repeatedly verifying the algorithm's performance under specific conditions. By fixing the input data, developers can precisely observe the algorithm's performance under the same conditions, allowing comparison, optimization, and repair.
[0150] As you can understand, once a debug instruction is detected, the decision-making planning algorithm enters single-frame debug mode. In this mode, the algorithm executes using the input data from the previous frame, rather than new, live input data. Each run uses the same input data, ensuring that the algorithm's performance is unaffected by data changes.
[0151] Step S50 , performing algorithm debugging according to the character string visualization, the curve visualization, and the single-frame debugging mode.
[0152] Developers can understandably combine the data provided by string and curve visualizations to analyze the system's decision-making process and behavioral performance. The string display of status information helps developers quickly identify potential issues, while the curve display of dynamic data such as path and speed helps assess the accuracy and stability of the algorithm. In this way, developers can adjust and optimize the algorithm in a targeted manner to further improve system performance.
[0153] This embodiment provides a method for debugging an autonomous driving algorithm. By using visualization technology based on an immediate-mode graphical user interface, combined with various data display methods such as string visualization, curve visualization, and scrolling visualization, this method solves the technical problem of lacking intuitive feedback on key data such as the algorithm's operating status, trajectory planning, and obstacle information during the debugging of the autonomous driving algorithm. This method achieves efficient display and analysis of real-time debugging data, improves the efficiency of developers in locating problems and optimizing algorithms, and ensures the accuracy and safety of path planning.
[0154] Based on the first embodiment of the present application, in the second embodiment of the present application, the same or similar contents as those in the above embodiment 1 can be referred to the above introduction and will not be described in detail later. Figure 2 , step S40 of the autonomous driving algorithm debugging method includes steps S41 to S42:
[0155] Step S41 , when an algorithm debugging instruction is detected, the current single-frame mode signal is modified to a target single-frame mode signal according to the immediate mode graphical user interface;
[0156] It should be noted that the single-frame mode signal is a flag that confirms the use of single-frame mode. It is used to indicate whether the system is in single-frame debugging mode during debugging. If the flag confirming the use of single-frame mode is yes, it indicates that it is in single-frame debugging mode. If the flag confirming the use of single-frame mode is no, it indicates that it is not in single-frame debugging mode. In single-frame mode, the same input data is used for processing each time, and new real-time data is not received. This allows developers to repeatedly verify the performance of the algorithm under the same conditions without being affected by external changes. The target single-frame mode signal indicates the single-frame debugging mode that the developer wishes to switch to during debugging. When using single-frame debugging mode, the data of the previous frame will be used for debugging and algorithm verification, allowing for more accurate problem analysis and algorithm debugging.
[0157] As you can understand, the ImGui::Checkbox() method is used to display a checkbox in the debug interface to indicate the use of single-frame mode. Checking the checkbox sets the flag indicating the use of single-frame mode to "Yes," while unchecking the checkbox sets the flag indicating the use of single-frame mode to "No." Once the flag indicating the use of single-frame mode is updated, the value of the flag can be saved to the data pool using the set method of the data pool singleton class, awaiting a call from the main program.
[0158] Step S42 : sending the target single-frame mode signal to the main program, so that the main program switches the current continuous input mode to the single-frame debugging mode based on the target single-frame mode signal, thereby completing the activation of the single-frame debugging mode.
[0159] It's important to note that the main program is the decision-making and planning component of the autonomous driving system, responsible for executing vehicle path planning, decision-making, control commands, and other functions. During debugging, the main program needs to respond to external commands, such as switching input modes and adjusting algorithm parameters based on debugging instructions. Continuous input mode is a main program operating mode in which each frame's calculations are based on real-time input data. In this mode, the main program continuously receives new sensor data, environmental data, and other information, and performs path planning, decision-making, and control in real time.
[0160] Figure 3 A schematic diagram of the autonomous driving system architecture provided for Example 2 of the autonomous driving algorithm debugging method of this application;
[0161] like Figure 3 As shown, the data pool is the system's core storage module, used to store all data required during system operation. The data pool provides both set and get methods. The set method is used to write data to the data pool and supports updating new data to the data pool from different threads. The get method is used to read data from the data pool and provide data support for other modules. The main program thread is the core operating module of the autonomous driving system, including decision planning, single-frame debugging, and parameter update functions. Decision planning refers to the main program performing real-time path planning and decision making by obtaining data from the data pool. Single-frame debugging refers to support for single-frame debugging mode. By calling the data pool's get method, the algorithm debugging tool's single-frame debugging mode is enabled or disabled, achieving fixed data input. Parameter update refers to the main program dynamically adjusting and updating parameters based on algorithm requirements or external input, and storing these updated parameters in the data pool. For example, the main program's configuration parameter update mode is set to update every period, which can be 100ms, to achieve real-time effect of configuration parameter changes. The algorithm debugging tool thread is an auxiliary module used by developers to debug algorithms. It includes functions for parameter control and data visualization. Parameter control means developers can adjust the parameters of the decision-making planning algorithm through the debugging tool and transmit these adjustments to the main program thread via the data pool. Data visualization means the debugging tool retrieves real-time data from the data pool and presents it to developers in a graphical or visual format to assist in algorithm debugging and optimization. The debugging tool thread reads real-time data from the data pool for visualization and can also write adjusted parameters to the data pool using setup methods. The main program thread and the algorithm debugging tool thread communicate indirectly through the data pool. For example, after the debugging tool adjusts parameters, the main program reads these new parameters from the data pool and applies them during operation. The collaboration of these three components decouples system operation from debugging, ensuring efficient operation and flexible debugging of the main program.
[0162] It is understood that the target single-frame mode signal in the algorithm debugging tool is sent to the main program. When the main program receives the target single-frame mode signal, it switches the current continuous input mode to single-frame debugging mode. At this point, the main program will no longer process new real-time input data, but will always use the same data, the previous frame data, for subsequent calculations and decisions.
[0163] This embodiment provides a method for debugging an autonomous driving algorithm. By leveraging data pool-based storage and interaction technology, a debugging tool with an immediate-mode graphical user interface, and an input mode switching mechanism within the main program thread, this method addresses the challenges of flexible input mode switching, real-time algorithm parameter adjustment, and intuitive data visualization during debugging. By sending a target single-frame mode signal from the algorithm debugging tool to the main program and enabling single-frame debugging mode, this method improves debugging efficiency, accurately locates algorithmic issues, and optimizes system performance. It also effectively decouples system operation from debugging.
[0164] It should be noted that the above examples are only used to understand this application and do not constitute a limitation on the autonomous driving algorithm debugging method of this application. More forms of simple transformations based on this technical concept are all within the scope of protection of this application.
[0165] This application also provides an automatic driving algorithm debugging device, please refer to Figure 4 , the autonomous driving algorithm debugging device includes:
[0166] Acquisition module 10, used to obtain algorithm problem data and trajectory planning data;
[0167] a string visualization module 20, configured to perform string visualization based on the algorithm problem data and the trajectory planning data;
[0168] A curve visualization module 30, configured to perform curve visualization based on the trajectory planning data;
[0169] The single-frame debugging module 40 is configured to enable a single-frame debugging mode when an algorithm debugging instruction is detected;
[0170] The algorithm debugging module 50 is used to perform algorithm debugging according to the string visualization, the curve visualization and the single-frame debugging mode.
[0171] The autonomous driving algorithm debugging device provided in this application, employing the autonomous driving algorithm debugging method described in the aforementioned embodiments, can address the technical issue of algorithm debugging tools in autonomous driving systems being unable to perform visual, real-time debugging. Compared to the prior art, the autonomous driving algorithm debugging device provided in this application achieves the same beneficial effects as the autonomous driving algorithm debugging method described in the aforementioned embodiments. Other technical features of the autonomous driving algorithm debugging device are the same as those disclosed in the aforementioned embodiments and are not further elaborated here.
[0172] In one embodiment, the curve visualization module 30 is further used to obtain planning time data and lateral decision trajectory data based on the trajectory planning data; perform rolling visualization based on the planning time data; perform path curve visualization based on the trajectory data; and perform curve visualization based on the rolling visualization and the path curve visualization.
[0173] In one embodiment, the curve visualization module 30 is also used to obtain a preset scrolling queue, a preset number of queues, and a current number of queues; obtain the total planning time of trajectory planning and the planning sub-module of trajectory planning according to the planning time data, and obtain the sub-module time according to the planning sub-module; when the current number of queues is less than the preset number of queues, add the sub-module time to the preset scrolling queue and record the joining time; when the current number of queues is greater than or equal to the preset number of queues, delete the historical sub-module time according to the joining time, and add the sub-module time to the preset scrolling queue; display the preset scrolling queue according to the immediate mode graphical user interface to achieve scrolling visualization.
[0174] In one embodiment, the curve visualization module 30 is further used to obtain reference line information, path planning information, speed information, vehicle position information and obstacle information based on the trajectory data; obtain a preset position range, a preset zoom range and a preset front-to-back offset rate; obtain a position display range based on an instant mode graphical user interface according to the vehicle position information and the preset position range; obtain a zoom display range based on an instant mode graphical user interface according to the path planning information and the preset zoom range; obtain a front-to-back display range based on the path planning information and the preset front-to-back offset rate; obtain an obstacle display result based on the instant mode graphical user interface according to the obstacle information; and visualize the path curve according to the position display range, the zoom display range, the front-to-back display range and the obstacle display result.
[0175] In one embodiment, the curve visualization module 30 is further used to obtain the center position of the vehicle's rear axle and the target planning position based on the path planning information; calculate the target focus coordinates based on the preset front and rear offset rate, the center position of the vehicle's rear axle and the target planning position; and obtain the front and rear display range based on the target focus coordinates.
[0176] In one embodiment, the string visualization module 20 is further used to obtain the timestamp of the algorithm problem data; obtain decision information of the autonomous driving mode and lateral decision based on the trajectory planning data; and perform string visualization based on the instant mode graphical user interface according to the timestamp, the autonomous driving mode and the decision information.
[0177] In one embodiment, the single-frame debugging module 40 is also used to modify the current single-frame mode signal to a target single-frame mode signal according to the immediate mode graphical user interface when an algorithm debugging instruction is detected; and send the target single-frame mode signal to the main program, so that the main program switches the current continuous input mode to the single-frame debugging mode based on the target single-frame mode signal, thereby completing the activation of the single-frame debugging mode.
[0178] The present application provides an autonomous driving algorithm debugging device, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the autonomous driving algorithm debugging method in the above-mentioned embodiment one.
[0179] Reference below Figure 5 , which shows a schematic diagram of the structure of an autonomous driving algorithm debugging device suitable for implementing an embodiment of the present application. The autonomous driving algorithm debugging device in the embodiment of the present application may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Descriptions), PMPs (Portable Media Players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 5 The autonomous driving algorithm debugging device shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of the present application.
[0180] like Figure 5As shown, the autonomous driving algorithm debugging device may include a processing device 1001 (e.g., a central processing unit, a graphics processing unit, etc.), which can perform various appropriate actions and processes based on programs stored in a read-only memory (ROM) 1002 or programs loaded from a storage device 1003 into a random access memory (RAM) 1004. RAM 1004 also stores various programs and data required for the operation of the autonomous driving algorithm debugging device. Processing device 1001, ROM 1002, and RAM 1004 are interconnected via a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems can be connected to I / O interface 1006: input devices 1007 including, for example, a touchscreen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output devices 1008 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage device 1003 including, for example, a magnetic tape, hard disk, etc.; and communication devices 1009. Communication device 1009 can allow the autonomous driving algorithm debugging device to communicate with other devices wirelessly or by wire to exchange data. Although the figure shows an autonomous driving algorithm debugging device with various systems, it should be understood that it is not required to implement or have all of the systems shown. More or fewer systems may alternatively be implemented or have.
[0181] In particular, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program comprising program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via a communication device, or installed from a storage device 1003, or installed from a ROM 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the method of the embodiment disclosed in the present application are executed.
[0182] The autonomous driving algorithm debugging device provided in this application, employing the autonomous driving algorithm debugging method described in the aforementioned embodiments, can address the technical issue of algorithm debugging tools in autonomous driving systems being unable to perform visual, real-time debugging. Compared to the prior art, the autonomous driving algorithm debugging device provided in this application achieves the same beneficial effects as the autonomous driving algorithm debugging method described in the aforementioned embodiments. Other technical features of this autonomous driving algorithm debugging device are the same as those disclosed in the aforementioned embodiments and are not further elaborated here.
[0183] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any one or more embodiments or examples in a suitable manner.
[0184] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
[0185] The present application provides a computer-readable storage medium having computer-readable program instructions (i.e., computer programs) stored thereon, and the computer-readable program instructions are used to execute the autonomous driving algorithm debugging method in the above-mentioned embodiment.
[0186] The computer-readable storage medium provided in this application may be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, systems or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, system or device. The program code contained on the computer-readable storage medium may be transmitted using any appropriate medium, including but not limited to: wires, optical cables, RF (Radio Frequency), etc., or any suitable combination thereof.
[0187] The above-mentioned computer-readable storage medium may be included in the autonomous driving algorithm debugging device; or it may exist independently without being assembled into the autonomous driving algorithm debugging device.
[0188] The computer-readable storage medium carries one or more programs, which, when executed by the autonomous driving algorithm debugging device, enable the autonomous driving algorithm debugging device to: obtain algorithm problem data and trajectory planning data;
[0189] Performing string visualization based on the algorithm problem data and the trajectory planning data;
[0190] Performing curve visualization according to the trajectory planning data;
[0191] When an algorithm debugging instruction is detected, single-frame debugging mode is enabled;
[0192] Algorithm debugging is performed according to the string visualization, the curve visualization, and the single-frame debugging mode.
[0193] Computer program code for performing the operations of the present application may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0194] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, program segment or a part of code, and the module, program segment or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the specified function or operation, or can be implemented by a combination of dedicated hardware and computer instructions.
[0195] The modules described in the embodiments of the present application may be implemented in software or hardware, wherein the name of a module does not necessarily limit the unit itself.
[0196] The computer-readable storage medium provided in this application stores computer-readable program instructions (i.e., a computer program) for executing the aforementioned autonomous driving algorithm debugging method. This computer-readable storage medium can address the technical issue of algorithm debugging tools being unable to perform visual, real-time debugging in autonomous driving systems. Compared to the prior art, the beneficial effects of the computer-readable storage medium provided in this application are similar to those of the autonomous driving algorithm debugging method provided in the aforementioned embodiments and are not further elaborated here.
[0197] The present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of the above-mentioned autonomous driving algorithm debugging method.
[0198] The computer program product provided in this application can address the technical issue of algorithm debugging tools in autonomous driving systems being unable to perform visual, real-time debugging. Compared to the prior art, the beneficial effects of the computer program product provided in this application are similar to those of the autonomous driving algorithm debugging method provided in the aforementioned embodiments, and are not further elaborated here.
[0199] The above description is only part of the embodiments of the present application and does not limit the patent scope of the present application. All equivalent structural transformations made by using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect application in other related technical fields are included in the patent protection scope of the present application.
Claims
1. A method for debugging an autonomous driving algorithm, characterized in that: The method comprises: Obtain algorithm problem data and trajectory planning data; Performing string visualization based on the algorithm problem data and the trajectory planning data; Performing curve visualization according to the trajectory planning data; When an algorithm debugging instruction is detected, single-frame debugging mode is enabled; Performing algorithm debugging according to the string visualization, the curve visualization, and the single-frame debugging mode; The step of visualizing the curve according to the trajectory planning data includes: Acquire planning time data and lateral decision trajectory data according to the trajectory planning data; Perform rolling visualization based on the planning time-consuming data; Performing path curve visualization according to the trajectory data; Performing curve visualization according to the scroll visualization and the path curve visualization; The step of visualizing the path curve according to the trajectory data includes: Acquire reference line information, path planning information, speed information, vehicle position information, and obstacle information based on the trajectory data; Get the preset position range, preset zoom range, and preset front-back offset rate; Obtaining a position display range based on an instant mode graphical user interface according to the vehicle position information and the preset position range; Obtaining a zoom display range based on an instant mode graphical user interface according to the path planning information and the preset zoom range; Obtaining a front and rear display range according to the path planning information and the preset front and rear offset rate; Obtaining an obstacle display result based on the instant mode graphical user interface according to the obstacle information; Visualizing a path curve according to the position display range, the zoom display range, the front and back display ranges, and the obstacle display result; The step of visualizing the character string according to the algorithm problem data and the trajectory planning data comprises: Obtaining a timestamp of the algorithm problem data; Obtaining decision information for autonomous driving mode and lateral decision-making based on the trajectory planning data; Perform string visualization based on an immediate mode graphical user interface according to the timestamp, the autonomous driving mode, and the decision information.
2. The method according to claim 1, wherein The step of performing rolling visualization according to the planning time-consuming data includes: Get the preset scroll queue, the preset number of queues, and the current number of queues; Obtaining the total planning time of trajectory planning and the planning submodule of trajectory planning according to the planning time consumption data, and obtaining the submodule time consumption according to the planning submodule; When the number of the current queue is less than the preset number of queues, the submodule is added to the preset rolling queue in a time-consuming manner, and the adding time is recorded; When the number of the current queues is greater than or equal to the preset number of queues, the historical submodule time consumption is deleted according to the joining time, and the submodule time consumption is added to the preset rolling queue; The preset scrolling queue is displayed according to the immediate mode graphical user interface to achieve scrolling visualization.
3. The method according to claim 1, wherein The step of obtaining the front and rear display range according to the path planning information and the preset front and rear offset rate includes: Acquire the center position of the vehicle's rear axle and the target planned position according to the path planning information; Calculating the target focus coordinates according to the preset front-to-back offset rate, the center position of the vehicle rear axle, and the target planned position; The front and rear display ranges are obtained according to the target focus coordinates.
4. The method according to claim 1, wherein The step of enabling the single-frame debugging mode when the algorithm debugging instruction is detected includes: When an algorithm debugging instruction is detected, the current single-frame mode signal is modified to a target single-frame mode signal according to the immediate mode graphical user interface; The target single-frame mode signal is sent to the main program, so that the main program switches the current continuous input mode to the single-frame debugging mode based on the target single-frame mode signal, thereby completing the activation of the single-frame debugging mode.
5. An automatic driving algorithm debugging device, characterized in that: The device comprises: Acquisition module, used to obtain algorithm problem data and trajectory planning data; a string visualization module, configured to perform string visualization based on the algorithm problem data and the trajectory planning data; A curve visualization module, configured to visualize the curve according to the trajectory planning data; A single-frame debugging module is used to enable single-frame debugging mode when an algorithm debugging instruction is detected; an algorithm debugging module, configured to perform algorithm debugging according to the string visualization, the curve visualization, and the single-frame debugging mode; The curve visualization module is further configured to obtain planning time consumption data and lateral decision trajectory data based on the trajectory planning data; perform rolling visualization based on the planning time consumption data; perform path curve visualization based on the trajectory data; and perform curve visualization based on the rolling visualization and the path curve visualization. The curve visualization module is further configured to obtain reference line information, path planning information, speed information, vehicle position information, and obstacle information based on the trajectory data; obtain a preset position range, a preset zoom range, and a preset front-to-back offset rate; obtain a position display range based on an instant mode graphical user interface based on the vehicle position information and the preset position range; obtain a zoom display range based on an instant mode graphical user interface based on the path planning information and the preset zoom range; obtain a front-to-back display range based on the path planning information and the preset front-to-back offset rate; obtain an obstacle display result based on the instant mode graphical user interface based on the obstacle information; and visualize the path curve based on the position display range, zoom display range, the front-to-back display range, and the obstacle display result; The string visualization module is further used to obtain the timestamp of the algorithm problem data; obtain decision information of the autonomous driving mode and lateral decision based on the trajectory planning data; and perform string visualization based on the instant mode graphical user interface according to the timestamp, the autonomous driving mode and the decision information.
6. An autonomous driving algorithm debugging device, characterized in that: The device includes: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is configured to implement the steps of the autonomous driving algorithm debugging method according to any one of claims 1 to 4.
7. A storage medium, characterized in that: The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by the processor, the steps of the automatic driving algorithm debugging method according to any one of claims 1 to 4 are implemented.
Citation Information
Patent Citations
Automatic driving reinforcement learning decision-making and planning method and system based on human-like features
CN117104267A
Map construction method and device, electronic equipment and storage medium
CN117648389A