Unmanned aerial vehicle autonomous obstacle avoidance method and device, unmanned aerial vehicle and storage medium

By scanning the broadcast information of the target drone in real time and adjusting the flight altitude using the end-side obstacle avoidance algorithm, the problem of deceleration and uncontrolled deceleration in traditional drone autonomous obstacle avoidance methods is solved, and the problem of difficulty in avoiding obstacles in dense spaces is achieved, achieving higher drone safety.

CN119882792APending Publication Date: 2025-04-25深圳开鸿数字产业发展有限公司
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411831086.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-12
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

Traditional drone autonomous obstacle avoidance methods avoid obstacles by controlling flight speed, but there is a risk of sudden deceleration leading to loss of control, and it is difficult to effectively avoid obstacles in narrow or dense spaces, reducing the safety of the drone.

Method used

The broadcast information of the target drone is obtained through real-time scanning, analyzing its altitude and position information, and under specific conditions, the end-side obstacle avoidance algorithm is used to adjust the flight altitude and modify the original flight path to achieve obstacle avoidance.

Benefits of technology

It effectively avoids the risk of inertial out-of-control caused by sudden deceleration, and ensures safe flight of drones in narrow or dense spaces, improving the safety of drones.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119882792A_ABST
    Figure CN119882792A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of unmanned aerial vehicles. The invention discloses an unmanned aerial vehicle autonomous obstacle avoidance method and device, an unmanned aerial vehicle and a storage medium. The safety of the unmanned aerial vehicle can be improved in the obstacle avoidance process of the unmanned aerial vehicle. The unmanned aerial vehicle autonomous obstacle avoidance method comprises the steps of performing real-time scanning to obtain first broadcast information sent by a target unmanned aerial vehicle; analyzing the first broadcast information to obtain first height information and first position information of the target unmanned aerial vehicle; under the condition that the difference value between the first position information and second position information of the unmanned aerial vehicle is smaller than a first preset value, an end side obstacle avoidance algorithm is adopted to calculate the first height information, and second height information is obtained; modifying the original flight path into a first flight path for obstacle avoidance based on the second altitude information; the flight attitude is adjusted based on the first flight path.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of drone technology. More specifically, the present application relates to a drone autonomous obstacle avoidance method, device, drone and storage medium. Background Art

[0002] Traditional autonomous obstacle avoidance methods for unmanned aerial vehicles usually achieve obstacle avoidance effects by controlling the flight speed. For example, reference can be made to the Chinese invention patent application publication with the publication number CN114675661A, which discloses a method for autonomous obstacle avoidance for unmanned aerial vehicles, including setting a number of obstacle avoidance sensors on the unmanned aerial vehicle to measure the distance to obstacles; setting the obstacle avoidance distance of the rotorcraft through the aircraft flight control system; calculating the desired speed of the unmanned aerial vehicle based on the detection distance and obstacle avoidance distance of the obstacle avoidance sensor; obtaining the desired acceleration through the expected speed, and then obtaining the desired attitude inclination through the small disturbance assumption, and then the attitude controller realizes the control of the rotorcraft. Although this method can achieve autonomous obstacle avoidance for unmanned aerial vehicles by controlling the flight speed, it also has some obvious defects. The specific defects are: 1) When the unmanned aerial vehicle suddenly decelerates during high-speed flight, it may lose control due to inertia, increasing the risk of the unmanned aerial vehicle crashing, thereby reducing the safety of the unmanned aerial vehicle; 2) In a narrow space or a space with dense obstacles, there may be a situation where collision cannot be avoided by simply adjusting the speed, so that the safety of the unmanned aerial vehicle cannot be guaranteed. Summary of the invention

[0003] The purpose of the embodiments of the present application is to provide a method, device, drone and storage medium for autonomous obstacle avoidance of a drone, which can improve the safety of the drone during the process of obstacle avoidance of the drone. The embodiments of the present application are mainly implemented through the following technical solutions:

[0004] A first aspect of an embodiment of the present application provides a method for autonomous obstacle avoidance of a drone, comprising:

[0005] Real-time scanning to obtain the first broadcast information sent by the target drone;

[0006] Parsing the first broadcast information to obtain first height information and first location information of the target UAV;

[0007] When the difference between the first position information and the second position information of the drone is less than a first preset value, the first height information is calculated and processed by using a terminal-side obstacle avoidance algorithm to obtain second height information;

[0008] modifying the original flight path into a first flight path for obstacle avoidance based on the second altitude information;

[0009] The flight attitude is adjusted based on the first flight path.

[0010] According to one embodiment of the present application, after the step of adjusting the flight posture based on the first flight path, the autonomous obstacle avoidance method for the unmanned aerial vehicle further includes:

[0011] When the first broadcast information cannot be scanned, the flight posture is adjusted based on the original flight path.

[0012] According to one embodiment of the present application, before the step of real-time scanning to obtain the first broadcast information sent by the target drone, the drone autonomous obstacle avoidance method further includes:

[0013] Performing conflict detection on the original flight path to obtain a first detection result;

[0014] When the first detection result is that there is no conflict, executing the flight mission based on the original flight path;

[0015] If the first detection result is a conflict, cancel the flight mission or generate a second flight path;

[0016] After the second flight path is generated, a conflict detection is performed on the second flight path. If there is no conflict in the second flight path, the second flight path is used as the original flight path.

[0017] According to one embodiment of the present application, before the step of performing conflict detection on the original flight path to obtain a first detection result, the autonomous obstacle avoidance method for the drone further includes:

[0018] Get point cloud data;

[0019] Using a point cloud clustering algorithm to identify the point cloud data to obtain obstacle information;

[0020] The original flight path is generated based on the obstacle information.

[0021] According to one embodiment of the present application, the step of using a point cloud clustering algorithm to identify the point cloud data and obtaining obstacle information includes:

[0022] Performing filtering, noise reduction and thinning processing on the point cloud data to obtain first data to be processed;

[0023] Dividing the first to-be-processed data into ground point cloud and non-ground point cloud;

[0024] Classify the non-ground point cloud to obtain second data to be processed;

[0025] Using a K-means clustering algorithm to perform clustering processing on the second data to be processed to obtain multiple point cloud clusters;

[0026] Performing feature extraction processing on the plurality of point cloud clusters to obtain third data to be processed;

[0027] The third data to be processed is identified and processed to obtain the obstacle information.

[0028] According to one embodiment of the present application, after the step of generating the original flight path based on the obstacle information, the autonomous obstacle avoidance method for the drone further includes:

[0029] The original flight path is optimized using a path optimization algorithm.

[0030] According to one embodiment of the present application, after the step of real-time scanning and acquiring the first broadcast information sent by the target drone, the drone autonomous obstacle avoidance method further includes:

[0031] Send a second broadcast message to the target UAV so that the target UAV changes its flight path.

[0032] A second aspect of the embodiment of the present application provides an autonomous obstacle avoidance device for a drone, comprising:

[0033] A first broadcast information acquisition module, used for scanning and acquiring the first broadcast information sent by the target UAV in real time;

[0034] A parsing module, configured to parse the first broadcast information to obtain first height information and first position information of the target UAV;

[0035] a calculation module, configured to calculate and process the first height information using a terminal-side obstacle avoidance algorithm to obtain second height information when a difference between the first position information and the second position information of the drone is less than a first preset value;

[0036] a modification module, configured to modify the original flight path into a first flight path for obstacle avoidance based on the second altitude information;

[0037] An adjustment module is used to adjust the flight posture based on the first flight path.

[0038] According to a third aspect of an embodiment of the present application, a drone is provided, comprising: a processor and a memory, the memory being used to store a computer program, the processor being used to call and run the computer program stored in the memory, and executing the steps of the drone autonomous obstacle avoidance method provided in the first aspect of the embodiment of the present application.

[0039] According to a fourth aspect of an embodiment of the present application, a computer-readable storage medium is provided, wherein the computer-readable storage medium is used to store a computer program, and the computer program enables a computer to execute the steps of the drone autonomous obstacle avoidance method provided in the first aspect of the embodiment of the present application.

[0040] The beneficial effects of the embodiments of the present application include:

[0041] The embodiment of the present application obtains the first broadcast information sent by the target drone through real-time scanning; parses the first broadcast information to obtain the first height information of the target drone; parses the first broadcast information to obtain the first height information and the first position information of the target drone; uses the end-side obstacle avoidance algorithm to calculate and process the first height information to obtain the second height information. When the difference between the first position information and the second position information of the drone is less than the first preset value, the end-side obstacle avoidance algorithm is used to calculate and process the first height information to obtain the second height information; based on the second height information, the original flight path is modified to the first flight path for obstacle avoidance; and the flight posture is adjusted based on the first flight path. The embodiment of the present application achieves the purpose of avoiding obstacles by adjusting the flight altitude of the drone. Compared with the prior art that controls the flight speed, the embodiment of the present application can avoid the inertia caused by sudden deceleration, resulting in the loss of control of the drone, effectively reducing the risk of the drone crashing, thereby improving the safety of the drone. Furthermore, the embodiment of the present application can make the drone avoid narrow or obstacle-dense spaces by adjusting the flight altitude of the drone, thereby ensuring the flight safety of the drone. Therefore, the embodiment of the present application can improve the safety of the drone during the process of drone obstacle avoidance. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the conventional technology, the drawings required for use in the embodiments or the conventional technology descriptions are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0043] Figure 1 A flowchart of the autonomous obstacle avoidance method for a drone of the present application in some embodiments;

[0044] Figure 2 This is a principle block diagram of the autonomous obstacle avoidance device for a drone of the present application in some embodiments;

[0045] Figure 3 This is a functional block diagram of the drone of the present application in some embodiments. DETAILED DESCRIPTION

[0046] In order to make the above-mentioned purposes, features and advantages of the present application more obvious and easy to understand, the specific implementation methods of the present application are described in detail below in conjunction with the accompanying drawings. In the following description, many specific details are set forth to facilitate a full understanding of the present application. However, the present application can be implemented in many other ways different from those described herein, and those skilled in the art can make similar improvements without violating the connotation of the present application, so the present application is not limited by the specific embodiments disclosed below.

[0047] It should be noted that the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include at least one of the features. In the description of this application, the meaning of "plurality" is at least two, such as two, three, etc., unless otherwise clearly and specifically defined.

[0048] The terms "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.

[0049] The terms "comprises", "includes" or any other variants thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device comprising a series of steps or units need not be limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices. Unless otherwise defined, all technical and scientific terms used in the specification of the present application have the same meaning as those commonly understood by technicians in the technical field of the present application. The terms used in the specification of the present application are only for the purpose of describing specific embodiments and are not intended to limit the present application. The term "and / or" used in the specification of the present application includes any and all combinations of one or more related listed items.

[0050] The specific implementation of the present application is further described below in conjunction with the accompanying drawings.

[0051] like Figure 1 FIG. 1 is a flowchart of a method for autonomous obstacle avoidance of a drone provided in the first aspect of the embodiment of the present application. Figure 1 In the method, the autonomous obstacle avoidance method of the UAV includes:

[0052] S11. Real-time scanning to obtain the first broadcast information sent by the target UAV.

[0053] The first broadcast information includes the device number of the target drone, the altitude information of the target drone, and the location information of the target drone. The location information is the longitude information and latitude information of the target drone. In other embodiments, the first broadcast information may also include other content, which may be determined by those skilled in the art according to actual needs.

[0054] The target drone can be a Hongmeng drone or a non-Hongmeng drone, for example, a manually operated drone or a drone that performs a temporary mission without a set route. And both the drone and the target drone have BLE (Bluetooth Low Energy) function.

[0055] The drone is a device for executing the drone autonomous obstacle avoidance method, and the target drone is a device for communicating with the drone.

[0056] The broadcast type of the first broadcast information is ADV_IND (Advertising Indicatable Non-directed, non-directional connectable broadcast). ADV_IND means that the target drone can accept a connection request from any drone and can also be scanned by any drone.

[0057] S12: parse the first broadcast information to obtain first height information and first position information of the target UAV.

[0058] The first altitude information is the altitude information of the target UAV.

[0059] The first location information is the location information of the target UAV.

[0060] Furthermore, the step of parsing the first broadcast information to obtain the first height information and the first location information of the target UAV includes:

[0061] S121, performing denoising and filtering processing on the first broadcast information to obtain fourth data to be processed. The step S121 can improve the quality of extracting the first height information and the first position information.

[0062] S122: Identify a first data segment and a second data segment in the fourth data to be processed.

[0063] S123. Decode the first data segment to obtain the first height information.

[0064] S124. Decode the second data segment to obtain the first location information.

[0065] Furthermore, the step of parsing the first broadcast information to obtain the first height information and the first location information of the target UAV further includes:

[0066] S125, detecting whether the first height information is a first abnormal value, if not, re-executing the step S11.

[0067] The first abnormal value refers to a value lower than the ground height or exceeding the maximum flight height of the drone. The value of the maximum flight height can be set by those skilled in the art according to actual needs.

[0068] S126, detecting whether the first position information is a second abnormal value, if not, re-executing the step S11.

[0069] The second abnormal value may be a value set by a person skilled in the art according to actual needs, and the embodiment of the present application does not impose any further limitation on this.

[0070] S13: When the difference between the first position information and the second position information of the drone is less than a first preset value, use a terminal-side obstacle avoidance algorithm to calculate and process the first height information to obtain second height information.

[0071] The difference refers to the distance between the UAV and the target UAV.

[0072] When the difference is less than the first preset value, it is regarded that the UAV encounters an emergency during flight.

[0073] In the embodiment of the present application, the first preset value is 100 meters. In other implementations, the specific value of the first preset value can be other values, which are specifically set by those skilled in the art according to actual needs.

[0074] It should be understood that the area less than the first preset value is an unsafe area (ie, a dangerous area). In this unsafe area, the drone needs to adjust its flight posture to avoid obstacles.

[0075] After the calculation in step S13, the difference between the second height information and the first height information is greater than or equal to 20 meters. Exemplarily, when the first height information of the target UAV is 100 meters and the height information of the original flight path of the UAV is also 100 meters, the second height information is 120 meters or 140 meters.

[0076] S14. Modify the original flight path into a first flight path for obstacle avoidance based on the second altitude information.

[0077] S15. Adjust the flight posture based on the first flight path.

[0078] In the above-mentioned implementation, the embodiment of the present application achieves the purpose of avoiding obstacles by adjusting the flight altitude of the drone. Compared with the prior art that controls the flight speed, the embodiment of the present application can avoid the situation where the drone loses control due to inertia caused by sudden deceleration, effectively reducing the risk of the drone crashing, thereby improving the safety of the drone. Furthermore, the embodiment of the present application can make the drone avoid narrow or obstacle-filled spaces by adjusting the flight altitude of the drone, thereby ensuring the flight safety of the drone. Therefore, the embodiment of the present application can improve the safety of the drone during the process of the drone avoiding obstacles.

[0079] In some embodiments, after the step of adjusting the flight posture based on the first flight path, the autonomous obstacle avoidance method for the drone further includes:

[0080] S21: When the first broadcast information cannot be scanned, adjust the flight posture based on the original flight path.

[0081] That is, after the drone fails to scan the first broadcast information, the drone adjusts to its original altitude (that is, performs the flight mission according to the original flight path), thereby successfully avoiding obstacles (that is, the target drone).

[0082] In some embodiments, before the step of real-time scanning to obtain the first broadcast information sent by the target drone, the drone autonomous obstacle avoidance method further includes:

[0083] S31. Perform conflict detection on the original flight path to obtain a first detection result.

[0084] The step S31 can be understood as a step in which the drone performs route conflict detection before taking off. The drone takes off to perform the mission only when there is no conflict in the original flight path.

[0085] Furthermore, the step of performing conflict detection on the original flight path to obtain a first detection result includes:

[0086] S311, collecting the flight plan information of the target UAV. In other embodiments, when there are other UAVs, the flight plan information of the other UAVs may also be collected together.

[0087] S312: Calculate a first potential conflict point pair between the flight plan information and the original flight path.

[0088] S313: Calculate the first collision probability of the first potential conflict point pair using a UAV collision probability calculation model.

[0089] The drone collision probability calculation model is an STP model, a PRISM model or a Bayesian network model. In other embodiments, the drone collision probability calculation model can also be other models, which can be specifically set by those skilled in the art according to actual needs.

[0090] S314: Compare the first collision probability with a preset collision probability threshold to obtain the first detection result.

[0091] The preset collision probability threshold may be a value set by those skilled in the art according to actual needs, and the embodiments of the present application do not impose any further limitations on this.

[0092] When the first collision probability is less than the preset collision probability threshold, the first detection result is no conflict; when the first collision probability is equal to or greater than the preset collision probability threshold, the first detection result is conflict.

[0093] S32. When the first detection result is that there is no conflict, execute the flight mission based on the original flight path.

[0094] S33: When the first detection result is a conflict, cancel the flight mission or generate a second flight path.

[0095] In the embodiment of the present application, the RRT (Rapidly-exploring Random Tree) algorithm is used to generate the second flight path. In other embodiments, the Dijkstra (Dijkstra) algorithm or the PRM (Probabilistic Road Map) algorithm can also be used to plan the second flight path, which can be set by those skilled in the art according to actual needs, and this document does not make further restrictions on this.

[0096] Further, the step of generating the second flight path includes:

[0097] S331. Set the first number of iterations.

[0098] S332: Taking the current position of the drone as a first starting point, and setting the target position of the drone as a first end point.

[0099] S333: Add the first starting point to the first search tree as the first root node of the first search tree.

[0100] S334: randomly generate a point in the state space as a first sampling point. If the first sampling point falls within one of the obstacles in the obstacle information, re-perform random sampling until the first sampling point is located in the free space.

[0101] The free space refers to a space without obstacles.

[0102] S335 : Calculate the distance between the first sampling point and all generated nodes in the first search tree, and find a node closest to the first sampling point as a first nearest neighbor node.

[0103] S336 . Starting from the first nearest neighbor node, extend one step along the direction pointing to the first sampling point to generate a first node to be added.

[0104] It should be understood that the expansion length (step length) of this step is fixed and needs to be set according to the actual situation. If the step length is too short, the algorithm search speed may slow down, and if it is too long, the growth point may cross the obstacle.

[0105] The first node to be joined is a new node.

[0106] S337. Check whether the first node to be added collides with the obstacle in the obstacle information. If the collision detection passes, add the first node to be added to the first search tree, and add the edge connecting the first node to be added to the first search tree; if the collision detection fails, remove the first node to be added, and re-perform random sampling and path extension.

[0107] S338. Repeat steps S334, S335, S336 and S337 until the number of repetitions reaches the first number of iterations or any node in the first search tree enters the set neighborhood of the first end point.

[0108] S339. When any node in the first search tree enters the set neighborhood of the first end point, trace back to the parent nodes from the first end point in sequence, and extract these nodes in order to form the second flight path.

[0109] S34. After the second flight path is generated, perform conflict detection on the second flight path. If there is no conflict in the second flight path, use the second flight path as the original flight path.

[0110] Further, the step of performing conflict detection on the second flight path includes:

[0111] S341. Calculate a second potential conflict point pair between the flight plan information and the second flight path.

[0112] S342: Calculate the second collision probability of the second potential conflict point pair using the UAV collision probability calculation model.

[0113] S343: Compare the second collision probability with the preset collision probability threshold to obtain a second detection result.

[0114] The second detection result can be one of two results: the second flight path has no conflict or the second flight path has a conflict.

[0115] In some embodiments, after the second flight path is generated, the autonomous obstacle avoidance method for the drone further includes:

[0116] S35. Optimize the second flight path using a path optimization algorithm.

[0117] The path optimization algorithm is the A* algorithm. In other implementations, the path optimization algorithm may also be other algorithms, which may be specifically set by those skilled in the art according to actual needs, and this document does not impose any further restrictions on this.

[0118] Furthermore, the step of optimizing the second flight path by using a path optimization algorithm includes:

[0119] S351. Set a first open list and a first closed list, and store all nodes in the second flight path in the first open list.

[0120] The first open list is used to store nodes to be evaluated in the second flight path, and the first closed list is used to store nodes that have been evaluated in the second flight path.

[0121] S352: Calculate a first total estimated cost of a first target node to be evaluated, where the first target node to be evaluated is any node in the first open list.

[0122] Specifically, the calculation formula for the first total estimated cost is: f1(n)=g1(n)+h1(n), wherein g1(n) is the actual cost from the first starting point to the first target node to be evaluated, and h1(n) is the heuristic estimated cost from the first target node to be evaluated to the first end point.

[0123] S353. Set a second number of iterations, and cyclically execute the following steps S354, S355, S356 and S357 according to the second number of iterations.

[0124] S354: Select a node with the smallest first total estimated cost from the first open list as the first current node.

[0125] S355. When the first current node is the first destination, the path search is completed, and the second flight path is constructed by backtracking the parent node.

[0126] S356: When the first current node is not the first end point, remove the first current node from the first open list and add it to the first closed list.

[0127] S357: Evaluate each first neighbor node of the first current node.

[0128] Specifically, the step of evaluating each first neighbor node of the first current node includes:

[0129] S3571. If the first neighbor node is already in the first closed list, skip it.

[0130] S3572. When the first neighbor node is in the first open list and the path to the first neighbor node through the first current node is better (that is, the actual cost corresponding to the first current node is smaller), update the parent node information and the first total estimated cost of the first neighbor node.

[0131] S3573. If the first neighbor node is not in the first open list and the first closed list, add the first neighbor node to the first open list, and set the parent node of the first neighbor node to be the first current node.

[0132] Furthermore, the step of optimizing the second flight path using a path optimization algorithm further includes:

[0133] S358: Smoothing the second flight path.

[0134] In some embodiments, before the step of performing conflict detection on the original flight path to obtain a first detection result, the autonomous obstacle avoidance method for the drone further includes:

[0135] S41. Obtain point cloud data.

[0136] The embodiment of the present application uses a laser radar LiDAR to obtain the point cloud data. In other implementations, other hardware devices may also be used to obtain the point cloud data, which may be specifically configured by those skilled in the art according to actual needs.

[0137] S42: using a point cloud clustering algorithm to identify the point cloud data to obtain obstacle information.

[0138] Furthermore, the step of using a point cloud clustering algorithm to identify the point cloud data to obtain obstacle information includes:

[0139] S421, filtering, denoising and thinning the point cloud data to obtain first data to be processed.

[0140] Specifically, the step of filtering, denoising and thinning the point cloud data to obtain the first data to be processed includes:

[0141] S4211. Filter the point cloud data to obtain fifth data to be processed.

[0142] In the embodiment of the present application, the point cloud data may be filtered by a straight-through filter, a conditional filter, a statistical filter or a Gaussian filter.

[0143] The pass filter sets a filter threshold according to a certain dimension of the point cloud data (such as height, distance, etc.), and filters out the point cloud data exceeding the filter threshold, thereby obtaining the fifth data to be processed.

[0144] The conditional filter filters the point cloud data by setting a plurality of filtering conditions (such as a coordinate range, a color range, etc.), and only retains the point cloud data satisfying the filtering conditions, thereby obtaining the fifth data to be processed.

[0145] The statistical filter performs statistical analysis on the neighborhood of each point in the point cloud data, calculates the average distance from the point to its nearest neighbor, and removes outliers according to a given standard deviation threshold, thereby obtaining the fifth data to be processed.

[0146] The Gaussian filter uses a weighted average method to smooth the point cloud data, and the weight is determined according to the distance between points and the Gaussian distribution to determine the fifth data to be processed.

[0147] S4212: Perform noise reduction processing on the fifth data to be processed to obtain sixth data to be processed.

[0148] The embodiment of the present application may use a bilateral filtering method, a curvature flow denoising method or a noise classification denoising method to perform noise reduction processing.

[0149] The bilateral filtering method is to filter by combining the spatial distance and color (or intensity) information in the fifth data to be processed, so as to obtain the sixth data to be processed.

[0150] The curvature flow denoising method is to move each point in the fifth data to be processed along the normal direction according to the curvature speed thereof based on the curvature information of the fifth data to be processed, thereby removing noise and obtaining the sixth data to be processed.

[0151] The noise classification and denoising method is to classify the large-scale noise and small-scale noise in the fifth data to be processed, and then use different filtering methods to process them respectively, so as to obtain the sixth data to be processed.

[0152] S4213. Perform thinning processing on the sixth data to be processed to obtain the first data to be processed.

[0153] The thinning process in step S4213 can be understood as a downsampling process.

[0154] S422: Divide the first to-be-processed data into ground point cloud and non-ground point cloud.

[0155] Furthermore, the step of dividing the first to-be-processed data into ground point cloud and non-ground point cloud comprises:

[0156] S4221. Divide the ground point cloud from the first data to be processed.

[0157] The S4221 may be implemented by using a method based on a height threshold, a method based on a slope, or a method based on a grid unit.

[0158] Specifically, the height threshold-based method is to set a height threshold according to the height information of the first data to be processed, regard points below the height threshold as first ground points, and use all the first ground points to form the ground point cloud.

[0159] The slope-based method analyzes the slope information of the first data to be processed, regards the area with a smaller slope as the second ground point, and constructs the ground point cloud with all the second ground points.

[0160] The grid unit-based method is to divide the first data to be processed into multiple grid units, extract the third ground points that meet the ground characteristics by analyzing the height and slope information of the points in each unit, and form the ground point cloud with all the third ground points.

[0161] S4222. Extract the ground point cloud from the first data to be processed, and the remaining is the non-ground point cloud.

[0162] S423: Classify the non-ground point cloud to obtain second data to be processed.

[0163] S424: Use a K-means clustering algorithm to perform clustering processing on the second data to be processed to obtain multiple point cloud clusters.

[0164] In other implementations, a point cloud clustering algorithm such as a DBSCAN algorithm, a Euclidean clustering algorithm, a hierarchical clustering algorithm, a Gaussian mixture model, a mean shift or a spectral clustering algorithm may be used to replace the K-means clustering algorithm.

[0165] The setting of step S424 can improve the accuracy of the drone autonomous obstacle avoidance method in detecting obstacles.

[0166] Furthermore, the step of clustering the second data to be processed using a K-means clustering algorithm to obtain a plurality of point cloud clusters includes:

[0167] S4241. Set the K value.

[0168] The K value represents the number of clusters to be formed.

[0169] S4242. Based on the K value, randomly select K points as the first cluster centers.

[0170] S4243. Set the third iteration number.

[0171] In other implementations, the step S4243 may be modified into a "setting convergence conditions" step.

[0172] S4244. For each point in the second data to be processed, calculate the cluster distance between it and each first cluster center.

[0173] The step S4244 usually uses the Euclidean distance measurement method to calculate the cluster distance.

[0174] S4245. According to all the calculated cluster distances, each point is assigned to the cluster where the first cluster center with the closest distance is located.

[0175] S4246: Recalculate the cluster center of each cluster to obtain the second cluster center of each cluster, that is, take the average value of the coordinates of all points in each cluster as the second cluster center.

[0176] S4247. Repeat steps S4244 to S4246 until the number of executions reaches the third number of iterations, thereby obtaining the multiple point cloud clusters.

[0177] Furthermore, the step of clustering the second data to be processed using a K-means clustering algorithm to obtain a plurality of point cloud clusters further includes:

[0178] S4248. Evaluate the multiple point cloud clusters to obtain evaluation results.

[0179] The embodiment of the present application may use evaluation indicators (such as silhouette coefficient, Calinski-Harabasz index, etc.) to evaluate the quality of the multiple point cloud clusters, thereby obtaining the evaluation result.

[0180] S425 , performing feature extraction processing on the multiple point cloud clusters to obtain third data to be processed.

[0181] Furthermore, the step of performing feature extraction processing on the plurality of point cloud clusters to obtain third data to be processed includes:

[0182] S4251. Calculate the normal vector of each point in the multiple point cloud clusters.

[0183] The normal vector is an important feature that describes the surface direction of a point cloud and is of great significance for subsequent tasks such as feature extraction and classification.

[0184] Furthermore, the embodiment of the present application uses functions in libraries such as PCL (Point Cloud Library) to calculate the normal vector. In other implementations, other methods may also be used to calculate the normal vector, which is not further limited herein.

[0185] S4252. Calculate the curvature of each point in the plurality of point cloud clusters.

[0186] Curvature refers to the degree of bending or curvature change used to describe the local geometric shape of the point cloud surface. Point sets with large curvature usually represent edges, while point sets with small curvature represent planes.

[0187] Furthermore, the embodiment of the present application adopts a neighborhood fitting method to calculate the curvature. In other embodiments, other algorithms may be used to calculate the curvature, which may be set by those skilled in the art according to actual needs, and this document does not impose any further restrictions on this.

[0188] S4253. Extract points with significant geometric shapes or texture features from the multiple point cloud clusters as feature points based on the normal vector and the curvature.

[0189] Furthermore, the step of extracting points having significant geometric shapes or texture features as feature points from the plurality of point cloud clusters according to the normal vector and the curvature comprises:

[0190] S42531. Set a second preset value and a third preset value.

[0191] The second preset value and the third preset value are both used to screen points with significant geometric shapes or texture features.

[0192] The specific values ​​of the second preset value and the third preset value can be set by those skilled in the art according to actual needs, and no further limitation is made herein.

[0193] S42532. Determine whether the normal vector corresponding to the target point exceeds the second preset value, and determine whether the curvature corresponding to the target point exceeds the third preset value. If the normal vector exceeds the second preset value, and the curvature exceeds the third preset value, mark the target point as the feature point. The target point is any point in the multiple point cloud clusters.

[0194] S4254. For each feature point, calculate its local feature descriptor.

[0195] S4255. Integrate all the normal vectors, all the curvatures and all the local feature descriptors to obtain the third data to be processed.

[0196] S426: Perform identification processing on the third data to be processed to obtain the obstacle information.

[0197] S43. Generate the original flight path based on the obstacle information.

[0198] In the embodiment of the present application, the RRT algorithm is used to generate the original flight path. In other embodiments, the Dijkstra algorithm or the PRM algorithm can also be used to plan the original flight path, which can be set by those skilled in the art according to actual needs, and this article does not make further restrictions on this.

[0199] Specifically, the specific steps of using the RRT algorithm to generate the original flight path based on the obstacle information include:

[0200] S431. Set the fourth iteration number.

[0201] S432: Taking the current position of the drone as the second starting point, and setting the target position of the drone as the second end point.

[0202] S433: Add the second starting point to the second search tree as a second root node of the second search tree.

[0203] S434: randomly generate a point in the state space as a second sampling point. If the second sampling point falls within one of the obstacles in the obstacle information, re-perform random sampling until the second sampling point is located in the free space.

[0204] S435: Calculate the distance between the second sampling point and all generated nodes in the second search tree, and find a node closest to the second sampling point as a second nearest neighbor node.

[0205] S436: Starting from the second nearest neighbor node, extend one step along the direction pointing to the second sampling point to generate a second node to be added.

[0206] The second node to be added is a new node.

[0207] S437. Check whether the second node to be added collides with the obstacle in the obstacle information. If the collision detection passes, add the second node to be added to the second search tree, and add the edge connecting the second node to be added to the second search tree; if the collision detection fails, remove the second node to be added, and re-perform random sampling and path extension.

[0208] S438. Repeat steps S434, S435, S436 and S437 until the number of repetitions reaches the fourth number of iterations or any node in the first search tree enters the set neighborhood of the second end point.

[0209] S439. When any node in the second search tree enters the set neighborhood of the second end point, trace back to the parent nodes from the second end point in sequence, and extract these nodes in order to form the original flight path.

[0210] In some embodiments, after the step of acquiring point cloud data, the autonomous obstacle avoidance method for a UAV further includes: using a target detection algorithm to identify the point cloud data to obtain seventh data to be processed; acquiring a first image to be processed through a camera of the UAV; projecting the point cloud in the seventh data to be processed onto the first image to be processed to obtain a second image to be processed; performing feature extraction on the second image to be processed through deep learning, and extracting the point cloud within the target detection box in the second image to be processed as the distance between the target UAV and the UAV.

[0211] Through the above implementation, it is possible to solve the problems of detection results of a single sensing device in certain scenarios, such as strong light, inaccurate algorithms, etc.

[0212] The embodiment of the present application can also improve the accuracy and robustness of obstacle detection while ensuring real-time performance by soft-weighted averaging the results of visual detection and point cloud classification.

[0213] In some embodiments, after the step of generating the original flight path based on the obstacle information, the autonomous obstacle avoidance method for the drone further includes:

[0214] S5. Optimize the original flight path using a path optimization algorithm.

[0215] The execution of step S5 can make the original flight path smoother and safer.

[0216] Furthermore, the step of optimizing the original flight path using a path optimization algorithm includes:

[0217] S51, setting a second open list and a second closed list, and storing all nodes in the original flight path in the second open list.

[0218] The second open list is used to store nodes to be evaluated in the original flight path, and the second closed list is used to store nodes that have been evaluated in the original flight path.

[0219] S52: Calculate a second total estimated cost of a second target node to be evaluated, where the second target node to be evaluated is any node in the second open list.

[0220] Specifically, the calculation formula for the second total estimated cost is: f2(n)=g2(n)+h2(n), wherein g2(n) is the actual cost from the second starting point to the second target node to be evaluated, and h2(n) is the heuristic estimated cost from the second target node to be evaluated to the second end point.

[0221] S53, setting the fifth iteration number, and cyclically executing the following steps S54, S55, S56 and S57 according to the fifth iteration number.

[0222] S54: Select a node with the smallest second total estimated cost from the second open list as a second current node.

[0223] S55. When the second current node is the second destination, the path search is completed, and the original flight path is constructed by backtracking the parent node.

[0224] S56: If the second current node is not the second end point, remove the second current node from the second open list and add it to the second closed list.

[0225] S57: Evaluate each second neighbor node of the second current node.

[0226] Specifically, the step of evaluating each second neighbor node of the second current node includes:

[0227] S571: If the second neighbor node is already in the second closed list, skip.

[0228] S572. When the second neighbor node is in the second open list and the path to the second neighbor node through the second current node is better (that is, the actual cost corresponding to the second current node is smaller), the parent node information and the second total estimated cost of the second neighbor node are updated.

[0229] S573: If the second neighbor node is not in the second open list and the second closed list, add the second neighbor node to the second open list, and set the parent node of the second neighbor node to be the second current node.

[0230] Furthermore, the step of optimizing the original flight path using a path optimization algorithm also includes:

[0231] S58: Smoothing the original flight path.

[0232] The S58 step can reduce unnecessary turns and redundant nodes, and improve the flight efficiency of the UAV.

[0233] In some embodiments, after the step of scanning in real time to obtain the first broadcast information sent by the target drone, the drone autonomous obstacle avoidance method further includes:

[0234] S61. Send a second broadcast message to the target UAV to enable the target UAV to change its flight path.

[0235] The step S61 can achieve obstacle avoidance from the perspective of the target UAV, that is, the target UAV changes its flight path, while the UAV does not change its flight path.

[0236] It should be understood that the data format of the second broadcast information is the same as the data format of the first broadcast information.

[0237] The second broadcast information includes the device number of the drone, the altitude information of the drone, and the location information of the drone. The location information is the longitude and latitude information of the drone.

[0238] In some embodiments, after the step of executing the flight mission based on the original flight path, the autonomous obstacle avoidance method for the unmanned aerial vehicle further includes:

[0239] S71. Establish a communication connection with the target UAV to receive the first broadcast information.

[0240] In the embodiment of the present application, the communication connection refers to a Bluetooth connection. In other implementations, the communication connection may also be a communication connection in other ways, which may be specifically set by those skilled in the art according to actual needs.

[0241] After the step S71 is executed, the drone may send data information of the device to the target drone or other drones, and may also receive information sent by the target drone or other drones.

[0242] It should also be understood that the drone in the embodiment of the present application can exchange data with multiple target drones at the same time.

[0243] The embodiment of the present application can also identify the target drone through a distributed software bus, enable multiple drones to share information, collaboratively plan paths, and achieve a more efficient obstacle avoidance effect.

[0244] refer to Figure 2 , which is a principle block diagram of an autonomous obstacle avoidance device for a drone provided in the second aspect of the embodiment of the present application. Figure 2 In the embodiment, the autonomous obstacle avoidance device 100 for unmanned aerial vehicles comprises:

[0245] The first broadcast information acquisition module 101 is used to scan and acquire the first broadcast information sent by the target UAV in real time;

[0246] The parsing module 102 is used to parse the first broadcast information to obtain the first height information and the first position information of the target UAV;

[0247] A calculation module 103, configured to calculate and process the first height information using a terminal-side obstacle avoidance algorithm to obtain second height information when a difference between the first position information and the second position information of the drone is less than a first preset value;

[0248] A modification module 104, configured to modify the original flight path into a first flight path for obstacle avoidance based on the second altitude information;

[0249] The adjustment module 105 is used to adjust the flight posture based on the first flight path.

[0250] A third aspect of the embodiments of the present application provides a drone, the principle block diagram of which can be as follows: Figure 3 As shown. Figure 3 In the embodiment, the drone 200 includes a processor 201 and a memory 202, the memory 202 is used to store computer programs, and the processor 201 is used to call and run the computer program stored in the memory 202 to execute the steps of the drone autonomous obstacle avoidance method provided in the first aspect of the above-mentioned embodiment of the present application.

[0251] According to a fourth aspect of an embodiment of the present application, a computer-readable storage medium is provided, wherein the computer-readable storage medium is used to store a computer program, and the computer program enables a computer to execute the steps of the drone autonomous obstacle avoidance method provided in the first aspect of the embodiment of the present application.

[0252] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided by the present invention can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).

[0253] The technical features of the above embodiments can be combined without changing the basic principles of the present application. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0254] The above embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the patent application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the scope of patent protection of the present application shall be subject to the attached claims.

Claims

1. A method for autonomous obstacle avoidance of a drone, characterized in that: include: Real-time scanning to obtain the first broadcast information sent by the target drone; Parsing the first broadcast information to obtain first height information and first location information of the target UAV; When the difference between the first position information and the second position information of the drone is less than a first preset value, the first height information is calculated and processed by using a terminal-side obstacle avoidance algorithm to obtain second height information; modifying the original flight path into a first flight path for obstacle avoidance based on the second altitude information; The flight attitude is adjusted based on the first flight path.

2. The autonomous obstacle avoidance method for a drone according to claim 1, characterized in that: After the step of adjusting the flight posture based on the first flight path, the autonomous obstacle avoidance method for the unmanned aerial vehicle further includes: When the first broadcast information cannot be scanned, the flight posture is adjusted based on the original flight path.

3. The autonomous obstacle avoidance method for a drone according to claim 1, characterized in that: Before the step of real-time scanning to obtain the first broadcast information sent by the target drone, the drone autonomous obstacle avoidance method further includes: Performing conflict detection on the original flight path to obtain a first detection result; When the first detection result is that there is no conflict, executing the flight mission based on the original flight path; If the first detection result is a conflict, cancel the flight mission or generate a second flight path; After the second flight path is generated, a conflict detection is performed on the second flight path. If there is no conflict in the second flight path, the second flight path is used as the original flight path.

4. The autonomous obstacle avoidance method for a drone according to claim 3, characterized in that: Before the step of performing conflict detection on the original flight path to obtain a first detection result, the autonomous obstacle avoidance method for the unmanned aerial vehicle further includes: Get point cloud data; Using a point cloud clustering algorithm to identify the point cloud data to obtain obstacle information; The original flight path is generated based on the obstacle information.

5. The autonomous obstacle avoidance method for a drone according to claim 4, characterized in that: The step of using a point cloud clustering algorithm to identify the point cloud data and obtain obstacle information includes: Performing filtering, noise reduction and thinning processing on the point cloud data to obtain first data to be processed; Dividing the first to-be-processed data into ground point cloud and non-ground point cloud; Classify the non-ground point cloud to obtain second data to be processed; Using a K-means clustering algorithm to perform clustering processing on the second data to be processed to obtain multiple point cloud clusters; Performing feature extraction processing on the plurality of point cloud clusters to obtain third data to be processed; The third data to be processed is identified and processed to obtain the obstacle information.

6. The autonomous obstacle avoidance method for a drone according to claim 4, characterized in that: After the step of generating the original flight path based on the obstacle information, the autonomous obstacle avoidance method for the unmanned aerial vehicle further includes: The original flight path is optimized using a path optimization algorithm.

7. The autonomous obstacle avoidance method for a drone according to claim 1, characterized in that: After the step of real-time scanning to obtain the first broadcast information sent by the target drone, the drone autonomous obstacle avoidance method further includes: Send a second broadcast message to the target UAV so that the target UAV changes its flight path.

8. An autonomous obstacle avoidance device for a drone, characterized in that: include: A first broadcast information acquisition module, used for scanning and acquiring the first broadcast information sent by the target UAV in real time; A parsing module, configured to parse the first broadcast information to obtain first height information and first position information of the target UAV; a calculation module, configured to calculate and process the first height information using a terminal-side obstacle avoidance algorithm to obtain second height information when a difference between the first position information and the second position information of the drone is less than a first preset value; a modification module, configured to modify the original flight path into a first flight path for obstacle avoidance based on the second altitude information; An adjustment module is used to adjust the flight posture based on the first flight path.

9. A drone, characterized in that: include: A processor and a memory, the memory being used to store a computer program, the processor being used to call and run the computer program stored in the memory to execute the steps of the autonomous obstacle avoidance method for a drone as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that: Used to store a computer program, wherein the computer program enables a computer to execute the steps of the autonomous obstacle avoidance method for a drone as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Method and system for realizing autonomous obstacle avoidance of rotor craft in unmanned aerial vehicle field

    CN114675661A