Method and device for determining drivable area, medium and electronic equipment
Through voxelization and projection processing of three-dimensional point cloud data, the robot can be determined, which solves the problem of poor universality of existing methods, and realizes the determination of the feasible area under different sensor model parameters, which is highly versatile and robust.
Patent Information
- Application Number
- CN202411926943.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-25
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2044-12-25
AI Technical Summary
The existing method of driving area determination is poor in versatility, especially when the sensor model parameters change, the model parameters in the method need to be adjusted, resulting in the method failure.
By voxelizing the first three-dimensional point cloud data of the target area around the robot, a target voxel set is obtained and projected to the horizontal plane to obtain a raster map, and the pixel value is obtained for each raster. If the pixel value is greater than or equal to the pixel threshold, it is used as an obstacle grid, and the expansion process is performed to determine the obstacle area and the remaining area is the travelable area.
It realizes that the driving area can still be determined when the sensor model parameters are changed, improves the universality and robustness of the method, and does not rely on semantic information, and is suitable for complex road environments.
Smart Images

Figure CN119772882A_ABST
Abstract
Description
Background Art
[0002] The drivable area determination method refers to a detection method that uses sensor data and environmental perception technology to identify and determine the area where a vehicle or robot can safely drive. It can realize road path planning and obstacle avoidance, thereby ensuring the safety and reliability of the vehicle or robot.
[0003] Some methods for determining the drivable area rely on the model parameters of the sensor. When the current sensor is replaced with another sensor with different model parameters or the sensor data is data from multiple sensors with different model parameters, the model parameters in the method need to be adjusted or the method may fail, resulting in poor versatility of the method. Summary of the invention
[0004] The embodiments of the present application provide a method, device, medium, and electronic device for determining a drivable area, which are used to solve the technical problem that some methods for determining a drivable area have poor versatility.
[0005] Other features and advantages of the present application will become apparent from the following detailed description, or may be learned in part by the practice of the present application.
[0006] According to a first aspect of the present application, a method for determining a drivable area is provided, the method comprising:
[0007] voxelize the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set, wherein the target voxel set includes a plurality of voxels arranged in an array along a first direction, a second direction, and a third direction, wherein the first direction, the second direction, and the third direction are perpendicular to each other;
[0008] Projecting the target voxel set onto a horizontal plane to obtain a grid map, wherein the horizontal plane is a plane constructed along the first direction and the second direction, the grid map includes a plurality of grids, each of the grids corresponds to a plurality of voxels arranged along the third direction, and the position information of the grids and the corresponding plurality of voxels in the first direction and the second direction is the same;
[0009] For each of the grids, a pixel value of the grid is obtained. If the pixel value of the grid is greater than or equal to a pixel threshold, the grid is used as an obstacle grid, the pixel value is the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid, and the pixel threshold is a lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid;
[0010] The obstacle grid is expanded to obtain an obstacle area, and the area outside the obstacle area in the grid map is used as a drivable area.
[0011] In some embodiments, based on the above solution, obtaining the pixel value of the grid includes:
[0012] For multiple voxels corresponding to the grid, the multiple voxels are sorted from one end to the other end of the third direction to determine the position order of each voxel in the third direction. If the voxel is occupied by the first three-dimensional point cloud data, the voxel is used as the target voxel, and the pixel value of the grid is determined according to the maximum and minimum values of the position order of the target voxel.
[0013] In some embodiments, based on the foregoing scheme, determining the pixel value of the grid according to the maximum and minimum values of the position sequence of the target voxels includes:
[0014] Determine the difference between the maximum value and the minimum value of the position sequence of the target voxel as a first difference;
[0015] The sum of the first difference value and a reference value is used as the pixel value, and the reference value is a natural number.
[0016] In some embodiments, based on the above scheme, the pixel threshold is determined by the following steps:
[0017] Acquire the voxel size of the voxel and the measurement accuracy of the first three-dimensional point cloud data;
[0018] The pixel threshold is determined according to the measurement accuracy and the voxel size.
[0019] In some embodiments, based on the foregoing solution, determining the pixel threshold according to the measurement accuracy and the voxel size includes:
[0020] If the measurement accuracy is less than the voxel size, the pixel threshold is greater than or equal to 2;
[0021] If the measurement accuracy is greater than or equal to the voxel size, the pixel threshold is greater than or equal to a target value, and the target value is a times the ratio of the measurement accuracy to the voxel size, where a is greater than or equal to 5.
[0022] In some embodiments, based on the above solution, voxelizing the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set includes:
[0023] The first three-dimensional point cloud data is cut in the target area according to a preset voxel size, and each point in the first three-dimensional point cloud data is assigned to a corresponding voxel to obtain the target voxel set.
[0024] In some embodiments, based on the above solution, the step of dilating the obstacle grid to obtain the obstacle area includes:
[0025] Get the expansion radius;
[0026] For each obstacle grid, expand toward the grids around the obstacle grid according to the expansion radius to obtain a grid obstacle area of the obstacle grid;
[0027] The obstacle area is obtained according to the grid obstacle area of each of the grids.
[0028] According to a second aspect of the present application, a drivable area determination device is provided, the device comprising:
[0029] A first obtaining unit voxelizes the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set, wherein the target voxel set includes a plurality of voxels arranged in an array along a first direction, a second direction and a third direction, and the first direction, the second direction and the third direction are perpendicular to each other;
[0030] a second obtaining unit, projecting the target voxel set onto a horizontal plane to obtain a grid map, wherein the horizontal plane is a plane constructed along the first direction and the second direction, the grid map includes a plurality of grids, each of the grids corresponds to a plurality of voxels arranged along the third direction, and the position information of the grids and the corresponding plurality of voxels in the first direction and the second direction is the same;
[0031] First, as a unit, for each grid, a pixel value of the grid is obtained, and if the pixel value of the grid is greater than or equal to a pixel threshold, the grid is used as an obstacle grid, the pixel value is the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid, and the pixel threshold is the lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid;
[0032] Second, as a unit, the obstacle grid is expanded to obtain an obstacle area, and the area outside the obstacle area in the grid map is used as a drivable area.
[0033] According to the third aspect of the present application, a computer-readable storage medium is provided, on which a computer program is stored, characterized in that the computer program includes executable instructions, and when the executable instructions are executed by a processor, the method described in any embodiment of the first aspect of the present application is implemented.
[0034] According to the fourth aspect of the present application, an electronic device is provided, comprising: one or more processors; and a memory for storing executable instructions of the processors, wherein when the executable instructions are executed by the one or more processors, the one or more processors implement the method described in any embodiment of the first aspect of the present application.
[0035] The beneficial effects of this application are as follows:
[0036] On the one hand, the first three-dimensional point cloud data is regular point cloud data and does not depend on sensor model parameters. When the sensor model parameters change, the drivable area can be determined. On the other hand, the drivable area is determined according to the situation where the voxels are occupied by the first three-dimensional point cloud data, that is, only whether the space is occupied is considered, which does not depend on semantic information and has strong robustness.
[0037] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] The drawings herein are incorporated into the specification and constitute a part of the specification, showing embodiments consistent with the present application, and together with the specification, are used to explain the principles of the present application. Obviously, the drawings described below are only some embodiments of the present application, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work. In the drawings:
[0039] Figure 1 A flow chart of a method for determining a drivable area in an embodiment of the present application is shown;
[0040] Figure 2 A schematic diagram showing a target voxel set in an embodiment of the present application is shown;
[0041] Figure 3 A block diagram of a drivable area determination device in an embodiment of the present application is shown;
[0042] Figure 4 A schematic diagram showing a computer-readable storage medium in an embodiment of the present application is shown;
[0043] Figure 5 A schematic diagram showing the system structure of an electronic device in an embodiment of the present application is shown. DETAILED DESCRIPTION
[0044] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0045] In addition, described feature, structure or characteristic can be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present application. However, those skilled in the art will appreciate that the technical scheme of the present application can be put into practice without one or more of the specific details, or other methods, components, devices, steps, etc. can be adopted. In other cases, known methods, devices, realizations or operations are not shown or described in detail to avoid blurring the various aspects of the application.
[0046] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities may be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.
[0047] The flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps can be decomposed, and some operations / steps can be combined or partially combined, so the actual execution order may change according to actual conditions.
[0048] In the description of this application, it should be understood 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. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of the feature. In the description of this application, unless otherwise specified, "plurality" means two or more.
[0049] In order to better understand the embodiments of the present application, the prior art of drivable area detection is described as follows:
[0050] In robot navigation tasks, drivable area detection is crucial, because sufficiently accurate detection results are a prerequisite for the robot to complete planning and control. Especially in complex outdoor scenes, the robustness of drivable area detection methods is required. In addition, the mobile robot industry has developed rapidly in recent years, with robots becoming more diverse and flexible, and the types and models of sensors increasing. General robot solutions have gradually become the mainstream R&D demand, requiring solutions to have a certain degree of versatility.
[0051] At present, the drivable area detection methods based on point clouds, whether or not they use learning methods, usually have at least one of the following problems:
[0052] (1) Lack of universality. Some methods need to set threshold parameters according to the imaging model of the sensor. When the sensor is replaced, the threshold parameters will be adjusted due to different sensor model parameters. For example, multi-line lidars with different line numbers have different angular resolutions, and certain threshold parameters need to be set according to the angular resolution and the installation height of the sensor.
[0053] (2) Lack of robustness for complex roads. For example, outdoor environments have ups and downs, paved roads with poor flatness, and unpaved roads. Some methods may suffer from severe under-segmentation or over-segmentation because the road surface does not meet the assumed conditions, affecting the performance of downstream tasks. For example, a plane is pre-assumed, and points that meet certain conditions scattered near the plane are regarded as ground points. However, outdoor scenes are complex and changeable, making it difficult to model and give reasonable conditional parameters. Therefore, the drivable area detection method is not robust enough.
[0054] (3) For ground segmentation solutions that use learning, manual data labeling is required, which increases time and computing costs.
[0055] Figure 1 A flow chart of a method for determining a drivable area in an embodiment of the present application is shown. Figure 2 A schematic diagram showing a target voxel set in an embodiment of the present application is shown, see Figure 1 , a method for determining a drivable area is provided, the method at least comprising S1 to S4, which are described in detail as follows:
[0056] In step S1, the first three-dimensional point cloud data of the target area around the robot is voxelized to obtain a target voxel set, wherein the target voxel set includes a plurality of voxels arranged in an array along a first direction, a second direction and a third direction, wherein the first direction, the second direction and the third direction are perpendicular to each other. The first three-dimensional point cloud data may be the three-dimensional point cloud data at the current moment. At this time, the first three-dimensional point cloud at the moment P k , k is the current moment.
[0057] For example, see Figure 2 , Figure 2 The grid diagram on the upper left side of the figure is the target voxel set, which has a size of 4×4×4 and includes 64 voxels arranged in an array along the X-axis, Y-axis and Z-axis directions. Each voxel is Figure 2 One of the grids in the grid diagram above on the left.
[0058] In some embodiments, the first three-dimensional point cloud data is obtained by the following steps: when the sensor is installed horizontally compared to the robot, the three-dimensional point cloud data of the sensor is used as the first three-dimensional point cloud data; when the sensor is not installed horizontally compared to the robot, the original point cloud data is obtained through the sensor, and the original point cloud data is converted from the sensor coordinate system to the target coordinate system, and the right-hand coordinate system is satisfied to obtain the first three-dimensional point cloud data, and the target coordinate system is a coordinate system in a horizontal posture relative to the robot, that is, the first three-dimensional point cloud data satisfies the assumption that "the sensor is installed horizontally compared to the robot or the point cloud is converted from the sensor coordinate system to a coordinate system in a horizontal posture (compared to the robot) and the right-hand coordinate system is satisfied", wherein the sensor is a 3D radar and / or a camera, the 3D radar can be a 3D laser radar, the 3D radar can detect the situation around the robot and obtain the point cloud data around the robot, and when the data collected by the camera is used, the camera data needs to be converted into a 3D pseudo point cloud.
[0059] As such, this application does not use the model parameters of the sensor and supports a variety of sensors and combinations, such as lidar (sparse point cloud data), camera (dense depth data), lidar and camera fusion, etc., with high flexibility.
[0060] In the prior art, there is a type of solution that needs to utilize the vertical angular resolution (model parameters) of the lidar. When replacing a radar with a different vertical angular resolution or simultaneously accessing sensor data of multiple different angular resolutions, this type of solution needs to adjust the parameters or may fail, thereby affecting the versatility of the solution, that is, the versatility is poor. The present application does not rely on the lidar imaging model, and the parameter configuration of the solution is independent of the sensor type and parameters, that is, the sensor model parameters are not used. When the first three-dimensional point cloud data meets the commonly used assumptions in the robotics industry, the drivable area can be determined, and the versatility is stronger.
[0061] In step S2, the target voxel set is projected onto a horizontal plane to obtain a grid map, wherein the horizontal plane is a plane constructed along the first direction and the second direction, and the grid map includes a plurality of grids, each of which corresponds to a plurality of voxels arranged along the third direction, and the position information of the grid and the corresponding plurality of voxels in the first direction and the second direction is the same. The horizontal plane can be understood as an ideal ground.
[0062] For example, see Figure 2 , the target voxel set V voxel Projected onto the 2D plane where XY is located, that is, the horizontal plane, the width of the 2D plane is Correspondingly, the height of the 2D plane is correspond, Figure 2The two-dimensional image on the lower left side is the grid image. The size of the grid image is 4×4, including 16 grids. Each grid corresponds to 4 voxels arranged along the Z-axis direction. The position information of the grid and the corresponding 4 voxels in the X-axis direction and the Y-axis direction is the same. Figure 2 The 3D bar graph on the right is a schematic diagram of the 4 voxels corresponding to the target grid. Figure 2 The black grid in the 2D plot at the bottom left.
[0063] In step S3, for each of the grids, the pixel value of the grid is obtained. If the pixel value of the grid is greater than or equal to the pixel threshold, the grid is used as an obstacle grid. The pixel value is the number of voxels occupied by the first three-dimensional point cloud data in the multiple voxels corresponding to the grid, and the pixel threshold is the lower limit of the number of voxels occupied by the first three-dimensional point cloud data in the multiple voxels corresponding to the grid. Figure 2 , pixel value in 2D plane The number of voxels occupied at the corresponding coordinates, for the grid.
[0064] It should be noted that the grid map is a 2D plane map, and the pixel value can be understood as the occupancy cost value of each grid (area). If the pixel value of the grid is greater than or equal to the pixel threshold, the grid is an occupied area, and the occupancy cost value is 100, indicating that the grid is occupied and cannot be passed. If the pixel value of the grid is less than the pixel threshold, the grid is an unoccupied area (an area that can be driven), and the occupancy cost value is 0, indicating that the grid is not occupied and can be passed.
[0065] In some implementations, after obtaining the pixel value of the grid, the method further includes: if the pixel value of the grid is less than a pixel threshold, treating the grid as a drivable grid.
[0066] In step S4, the obstacle grid is expanded to obtain an obstacle area, and the area outside the obstacle area in the grid map is used as a drivable area.
[0067] In some embodiments, the first three-dimensional point cloud data is point cloud data with semantic information, that is, the input data has semantic information, such as vehicles, pedestrians or buildings, so that the drivable area has features with semantic information, enriching the robot's decision-making and having high flexibility.
[0068] In some embodiments, obtaining the pixel value of the grid includes: for multiple voxels corresponding to the grid, sorting the multiple voxels from one end to the other end of the third direction, determining the position order of each voxel in the third direction, if the voxel is occupied by the first three-dimensional point cloud data, taking the voxel as the target voxel, and determining the pixel value of the grid according to the maximum and minimum values of the position order of the target voxel.
[0069] In some embodiments, determining the pixel value of the grid based on the maximum and minimum values of the position sequence of the target voxels includes: determining the difference between the maximum and minimum values of the position sequence of the target voxels as a first difference; taking the sum of the first difference and a reference value as the pixel value, wherein the reference value is a natural number.
[0070] In some implementations, considering the sparsity of the first three-dimensional point cloud data, the reference value is 1, and regardless of the sparsity of the first three-dimensional point cloud data, the reference value is 0.
[0071] In some embodiments, determining the position order of each voxel in the third direction includes: obtaining a voxel index of each voxel, the voxel index being used to identify the position of the voxel in the target voxel set, the voxel index comprising a first coordinate, a second coordinate, and a third coordinate, the first coordinate being used to identify the coordinate of the voxel in the first direction, the second coordinate being used to identify the coordinate of the voxel in the second direction, and the third coordinate being used to identify the coordinate of the voxel in the third direction; determining the position order of each voxel in the third direction according to the third coordinate.
[0072] For example, see Figure 2 , the voxel index (1, 1, 1) corresponds to the first voxel on the positive X-axis, the first voxel on the positive Y-axis, and the first voxel on the positive Z-axis.
[0073] In some embodiments, determining the position order of each voxel in the third direction according to the third coordinate includes: for multiple voxels corresponding to the grid, sorting the voxels from small to large according to the third coordinate, and determining the position order of each voxel in the third direction.
[0074] For example, see Figure 2 ,against Figure 2The color of the grid at the lower left side is black. The voxel indexes of the 4 voxels corresponding to the grid are (1, 1, 0), (1, 1, 1), (1, 1, 2), and (1, 1, 3) from bottom to top. The third coordinates are 0, 1, 2, and 3 from bottom to top. When sorting from bottom to top, the position order is 1, 2, 3, and 4. When sorting from top to bottom, the position order is 4, 3, 2, and 1. The maximum value of the position order is 4 and the minimum value is 1. Considering the sparsity of the first three-dimensional point cloud data, the reference value is 1, and the pixel value is 4-1+1=4. Without considering the sparsity of the first three-dimensional point cloud data, the reference value is 0, and the pixel value is 4-1=3.
[0075] In some implementations, the pixel value of the grid is obtained by the following formula: in, is the pixel value of the grid, is on the XY plane The centers of all voxels at A collection of values, max is the function that calculates the maximum value, and min is the function that calculates the minimum value.
[0076] In some embodiments, the pixel threshold is determined by the following steps: obtaining the voxel size of the voxel and the measurement accuracy of the first three-dimensional point cloud data; and determining the pixel threshold according to the measurement accuracy and the voxel size. Figure 2 , the voxel size is Figure 2 The side length of each grid in the grid diagram on the upper left.
[0077] In some embodiments, the pixel threshold is determined according to the measurement accuracy and the voxel size, including: if the measurement accuracy is less than the voxel size, the pixel threshold is greater than or equal to 2; if the measurement accuracy is greater than or equal to the voxel size, the pixel threshold is greater than or equal to a target value, and the target value is a times the ratio of the measurement accuracy to the voxel size, where a is greater than or equal to 5. a can be a positive integer greater than or equal to 5. When When (corresponding to a certain grid) is occupied and the robot cannot pass through, where: is the pixel value, g thresh is the pixel threshold.
[0078] In this way, no matter whether the ground is flat or not, whether it is a plane or a slope, the ground points are concentrated in the height dimension. The degree of concentration depends on the ranging accuracy (measurement accuracy) of the first three-dimensional point cloud data. The ground is filtered out according to the noise size, and the ground points can be removed by losing the same amount of accuracy to obtain the drivable area.
[0079] For example, the voxel size is 0.05m. Taking the lidar sensor as an example, the ranging accuracy is usually within ±0.02m, which is less than s voxel The setting value, therefore, is the threshold g for filtering out the ground thresh (Pixel Threshold) can be preset to 2 or 3, where s voxel The setting value of is the voxel size.
[0080] In some embodiments, the voxel size is 0.05m, and the voxel size of 0.05m can generally describe a target that can be observed by any sensor, so that the present application can accurately detect obstacles of any shape and any category, and their 3D position information, and the recognition resolution can reach 0.05m, with strong robustness.
[0081] It should be noted that when the voxel size (voxel size) is greater than the ranging accuracy, the pixel threshold can be 2 or 3. When it is less than the ranging accuracy, the smaller the voxel size, the larger the pixel threshold.
[0082] In some embodiments, voxelizing the first three-dimensional point cloud data of the target area around the robot to obtain the target voxel set includes: cutting the first three-dimensional point cloud data in the target area according to a preset voxel size, and assigning each point in the first three-dimensional point cloud data to a corresponding voxel to obtain the target voxel set. In the voxels of the target voxel set, if the voxel contains a point of the first three-dimensional point cloud data, the voxel is occupied by the first three-dimensional point cloud data, and if the voxel does not contain a point of the first three-dimensional point cloud data, the voxel is not occupied by the first three-dimensional point cloud data, see Figure 2 , voxels with white color are not occupied by the first three-dimensional point cloud data, and voxels with black color are occupied by the first three-dimensional point cloud data.
[0083] Exemplarily, the first three-dimensional point cloud data By voxel size s voxel Cut and divide each point Assigned to the corresponding voxels, i=1、…、M,M is The number of midpoints.
[0084] In this application, considering the sparsity of point clouds and the resource usage of the algorithm during runtime, s voxel Usually 0.05m is taken.
[0085] In some embodiments, the step of cutting the first three-dimensional point cloud data in the target area according to a preset voxel size and assigning each point in the first three-dimensional point cloud data to a corresponding voxel to obtain the target voxel set includes: obtaining an original voxel set, the original voxel set including a plurality of voxels arranged in an array along a first direction, a second direction, and a third direction; for each point in the first three-dimensional point cloud data, obtaining the point coordinates; obtaining the voxel index of the point according to a ratio of the point coordinates to the voxel size, the voxel index being used to identify the position of the voxel; if the voxel corresponding to the voxel index is in the original voxel set, assigning the point to the voxel corresponding to the voxel index; if the voxel corresponding to the voxel index is not in the original voxel set, creating a voxel corresponding to the voxel index, and executing the step of assigning the point to the voxel corresponding to the voxel index.
[0086] In some embodiments, obtaining the voxel index of the point based on the ratio of the point coordinates and the voxel size includes: rounding the ratio of the point coordinates and the voxel size, the ratio including a first ratio in the first direction, a second ratio in the second direction, and a third ratio in the third direction, and rounding up if the first ratio or the second ratio or the third ratio is positive, and rounding down if the first ratio or the second ratio or the third ratio is negative.
[0087] For example, for Each point pass Determine the voxel index if If the corresponding voxel does not exist, create a voxel v corresponding to the voxel index j , that is, create a new voxel, where j = 1, ..., N, N is the number of voxels, Assigned to the corresponding voxel v j In, v j ∈V voxel , V voxel is the target voxel set.
[0088] In some embodiments, the step of dilating the obstacle grid to obtain the obstacle area includes: obtaining an expansion radius; for each obstacle grid, dilating the grids around the obstacle grid according to the expansion radius to obtain the grid obstacle area of the obstacle grid; and obtaining the obstacle area according to the grid obstacle areas of each grid. The obstacle area can be understood as occupying the expansion area, which is obtained by expanding the occupied area, indicating a potential collision risk area.
[0089] In some embodiments, the step of expanding the grid around the obstacle grid according to the expansion radius to obtain the grid obstacle area of the obstacle grid includes: taking the grids other than the obstacle grid in the grid map as drivable grids; for each drivable grid, determining a first distance between the drivable grid and each obstacle grid in the first direction, and determining a second distance between the drivable grid and each obstacle grid in the second direction, and taking the minimum value of the first distance and the second distance of the drivable grid as a target distance; if the target distance is less than the expansion radius, taking the drivable grid as an expanded grid; and taking the area of the expanded grid and the obstacle grid as the grid obstacle area.
[0090] In some embodiments, the occupancy cost value of the drivable grid is determined by an expansion processing function: C(d)=C occupied ×f(d), C(d) is The occupation cost value set for the region, C occupied yes The occupation cost value at , f(d) is the cost factor function, and f(d) is determined by the following formula: d is the expansion area to the occupied area The distance, r is the expansion radius, that is, the distance extended from the occupied area, is the known occupied area, which can be understood as the location information of the obstacle grid. occupied is 100, is the area to be expanded, which can be understood as the location information of the drivable grid, the occupation cost value is 0, m=1, ..., N, n=1, ..., N, N is the number of voxels, that is, the number of voxels in the target voxel set.
[0091] It should be noted that, on the one hand, due to the sparse characteristics of the first three-dimensional point cloud data, even if a certain area is impassable, the obstacle grid (occupied points) in the area may be discrete. If no processing is done, the planned path may pass through the area. On the other hand, the robot is an object with physical size, not an ideal point. Considering the safety of the robot's passage, the obstacle grid is expanded, which is equivalent to Fs init After expansion, the drivable area Fs is obtained, where Fs init It is the area outside the obstacle grid in the grid map.
[0092] In some embodiments, before voxelizing the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set, it also includes: acquiring second three-dimensional point cloud data of a detection area around the robot, wherein the detection area is larger than the target area; determining that an area outside the target area in the detection area is a peripheral area, wherein the peripheral area includes an area where the robot body is located; and filtering out the second three-dimensional point cloud data of the peripheral area for the second three-dimensional point cloud data to obtain the first three-dimensional point cloud data.
[0093] In this way, on the one hand, the second three-dimensional point cloud data distributed in the robot body is removed to achieve filtering of the second three-dimensional point cloud data. On the other hand, the second three-dimensional point cloud data in the area far away from the robot is removed to reduce the amount of calculation and avoid unnecessary calculation overhead.
[0094] It should be noted that the drivable area is mainly used for local planning of the robot and the sensing distance d perception Usually only 10m is needed to meet the navigation scene requirements of most robots, that is, the target area is a square area distributed along the front and back directions of the robot and constructed along the left and right directions, that is, two of the sizes are distributed along the front and back directions of the robot, and the other two sizes are distributed along the left and right directions of the robot. The geometric center of the direction area is the sensor coordinate origin, and the size is 20m. However, the observation distance of the sensor can be as high as 100m or more. Left and right sensing distance The removal of other point cloud data reduces the amount of calculation. and is 10m, see Figure 2 , is the perceived distance along the X-axis, is the perceived distance along the Y axis.
[0095] In the present application, on the one hand, the first three-dimensional point cloud data is conventional point cloud data, which does not depend on the sensor model parameters, and can determine the drivable area when the sensor model parameters change; on the one hand, some learning-based methods are limited by the accuracy of semantic segmentation and have poor robustness. The present application only considers whether the space is occupied, does not depend on semantic information, and has strong robustness; on the one hand, the characteristics of the point set in the analysis field of some schemes, the sparse characteristics of the point cloud cause the analysis method to fail 10m or even 5m away from the sensor. In addition, due to the complex outdoor environment, the robustness of the analysis method is tested. The present application makes full use of the feature that "in the height dimension, the ground points are concentratedly distributed" and reduces the dimension of the neighborhood analysis. Therefore, the robustness to the sparse characteristics of the point cloud can be improved, and the effective recognition distance can reach 15m, which is suitable for various complex road surfaces, such as uneven paved roads, unpaved roads, ups and downs, etc., to provide support for the realization of general robot navigation solutions; on the other hand, the present application has the characteristics of lightweight and few parameters, does not adopt a learning method, does not need to annotate data, saves time and computing costs, and has low implementation costs.
[0096] Figure 3 A block diagram of a drivable area determination device in an embodiment of the present application is shown, see Figure 3 According to a second aspect of the present application, a drivable area determination device 100 is provided, the device comprising:
[0097] A first obtaining unit 101 voxelizes the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set, wherein the target voxel set includes a plurality of voxels arranged in an array along a first direction, a second direction and a third direction, wherein the first direction, the second direction and the third direction are perpendicular to each other;
[0098] A second obtaining unit 102 projects the target voxel set onto a horizontal plane to obtain a grid map, where the horizontal plane is a plane constructed along the first direction and the second direction, and the grid map includes a plurality of grids, each of which corresponds to a plurality of voxels arranged along the third direction, and the position information of the grids and the corresponding plurality of voxels in the first direction and the second direction is the same;
[0099] First, as unit 103, for each of the grids, obtain a pixel value of the grid, and if the pixel value of the grid is greater than or equal to a pixel threshold, the grid is used as an obstacle grid, the pixel value is the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid, and the pixel threshold is a lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid;
[0100] Second, as unit 104, the obstacle grid is expanded to obtain an obstacle area, and the area outside the obstacle area in the grid map is used as a drivable area.
[0101] Based on the same inventive concept, as a third aspect, the present application also provides a computer-readable storage medium on which is stored a program product capable of implementing the above-mentioned method for determining a drivable area in this specification. In some possible implementations, various aspects of the present application can also be implemented in the form of a program product, which includes a program code. When the program product is run on a terminal device, the program code is used to enable the terminal device to execute the steps according to various exemplary implementations of the present application described in the above-mentioned "Exemplary Method" section of this specification.
[0102] refer to Figure 4 As shown, a program product 200 for implementing the above method according to an embodiment of the present application is described, which can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present application is not limited thereto. In this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.
[0103] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable 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 of the above.
[0104] Computer readable signal media may include data signals propagated in baseband or as part of a carrier wave, in which readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Readable signal media may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0105] The program code embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
[0106] Program code for performing the operations of the present application may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., using an Internet service provider to connect through the Internet).
[0107] As another aspect, the present application also provides an electronic device capable of implementing the above method.
[0108] Those skilled in the art will appreciate that various aspects of the present application may be implemented as a system, method or program product. Therefore, various aspects of the present application may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to as "circuit", "module" or "system" herein.
[0109] Refer to the following Figure 5 The electronic device 300 according to this embodiment of the present application is described. Figure 5 The electronic device 300 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0110] like Figure 5 As shown, the electronic device 300 is in the form of a general computing device. The components of the electronic device 300 may include but are not limited to: at least one processing unit 310, at least one storage unit 320, and a bus 330 connecting different system components (including the storage unit 320 and the processing unit 310).
[0111] The storage unit stores program codes, which can be executed by the processing unit 310, so that the processing unit 310 executes the steps described in the above “Example Method” section of this specification according to various exemplary implementations of the present application.
[0112] The storage unit 320 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 321 and / or a cache memory unit 322 , and may further include a read-only memory unit (ROM) 323 .
[0113] The storage unit 320 may also include a program / utility 324 having a set (at least one) of program modules 325, such program modules 325 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0114] Bus 330 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0115] The electronic device 300 may also communicate with one or more external devices 400 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), one or more devices that enable a user to interact with the electronic device 300, and / or any device that enables the electronic device 300 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed through an input / output (I / O) interface 350. Furthermore, the electronic device 300 may also communicate with one or more networks (e.g., a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) through a network adapter 360. Figure 5 As shown, the network adapter 360 communicates with other modules of the electronic device 300 via the bus 330. It should be understood that, although not shown in the figure, other hardware and / or software modules can be used in conjunction with the electronic device 300, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0116] The functions described herein may be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions may be stored as one or more instructions or codes on a computer-readable medium or transmitted via a computer-readable medium. Other examples and implementations are within the scope and spirit of the present application and the appended claims. For example, due to the nature of software, the functions described above may be implemented using software executed by a processor, hardware, firmware, hard wiring, or a combination of any of these. In addition, each functional unit may be integrated into a processing unit, each unit may exist physically separately, or two or more units may be integrated into one unit.
[0117] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. Among them, the device embodiments described above are only schematic. For example, the division of the units can be a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of units or modules, which can be electrical or other forms.
[0118] The units described as separate components may or may not be physically separated, and the components of the control device may or may not be physical units, that is, they may be located in one place or distributed in multiple units. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.
[0119] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can be essentially or partly or all or partly embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server or network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, disk or optical disk, etc., which can store program code.
[0120] The above description is only an embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various modifications and variations. Any modification, equivalent substitution, improvement, etc. made within the spirit and principle of the present application shall be included in the scope of the claims of the present application.
Claims
1. A method for determining a drivable area, characterized in that: The method comprises: voxelize the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set, wherein the target voxel set includes a plurality of voxels arranged in an array along a first direction, a second direction, and a third direction, wherein the first direction, the second direction, and the third direction are perpendicular to each other; Projecting the target voxel set onto a horizontal plane to obtain a grid map, wherein the horizontal plane is a plane constructed along the first direction and the second direction, the grid map includes a plurality of grids, each of the grids corresponds to a plurality of voxels arranged along the third direction, and the position information of the grids and the corresponding plurality of voxels in the first direction and the second direction is the same; For each of the grids, a pixel value of the grid is obtained. If the pixel value of the grid is greater than or equal to a pixel threshold, the grid is used as an obstacle grid, the pixel value is the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid, and the pixel threshold is a lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid; The obstacle grid is expanded to obtain an obstacle area, and the area outside the obstacle area in the grid map is used as a drivable area.
2. A method for determining a drivable area according to claim 1, characterized in that: The obtaining of the pixel value of the grid comprises: For multiple voxels corresponding to the grid, the multiple voxels are sorted from one end to the other end of the third direction to determine the position order of each voxel in the third direction. If the voxel is occupied by the first three-dimensional point cloud data, the voxel is used as the target voxel, and the pixel value of the grid is determined according to the maximum and minimum values of the position order of the target voxel.
3. A method for determining a drivable area according to claim 2, characterized in that: Determining the pixel value of the grid according to the maximum and minimum values of the position sequence of the target voxels includes: Determine the difference between the maximum value and the minimum value of the position sequence of the target voxel as a first difference; The sum of the first difference value and a reference value is used as the pixel value, and the reference value is a natural number.
4. The method for determining a drivable area according to claim 1, characterized in that: The pixel threshold is determined by the following steps: Acquire the voxel size of the voxel and the measurement accuracy of the first three-dimensional point cloud data; The pixel threshold is determined according to the measurement accuracy and the voxel size.
5. A method for determining a drivable area according to claim 4, characterized in that: The determining the pixel threshold according to the measurement accuracy and the voxel size comprises: If the measurement accuracy is less than the voxel size, the pixel threshold is greater than or equal to 2; If the measurement accuracy is greater than or equal to the voxel size, the pixel threshold is greater than or equal to a target value, and the target value is a times the ratio of the measurement accuracy to the voxel size, where a is greater than or equal to 5.
6. A method for determining a drivable area according to claim 1, characterized in that: The step of voxelizing the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set includes: The first three-dimensional point cloud data is cut in the target area according to a preset voxel size, and each point in the first three-dimensional point cloud data is assigned to a corresponding voxel to obtain the target voxel set.
7. The method for determining a drivable area according to claim 1, characterized in that: The step of performing expansion processing on the obstacle grid to obtain the obstacle area includes: Get the expansion radius; For each obstacle grid, expand toward the grids around the obstacle grid according to the expansion radius to obtain a grid obstacle area of the obstacle grid; The obstacle area is obtained according to the grid obstacle area of each of the grids.
8. A device for determining a drivable area, characterized in that: The device comprises: A first obtaining unit voxelizes the first three-dimensional point cloud data of the target area around the robot to obtain a target voxel set, wherein the target voxel set includes a plurality of voxels arranged in an array along a first direction, a second direction and a third direction, and the first direction, the second direction and the third direction are perpendicular to each other; a second obtaining unit, projecting the target voxel set onto a horizontal plane to obtain a grid map, wherein the horizontal plane is a plane constructed along the first direction and the second direction, the grid map includes a plurality of grids, each of the grids corresponds to a plurality of voxels arranged along the third direction, and the position information of the grids and the corresponding plurality of voxels in the first direction and the second direction is the same; First, as a unit, for each grid, a pixel value of the grid is obtained, and if the pixel value of the grid is greater than or equal to a pixel threshold, the grid is used as an obstacle grid, the pixel value is the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid, and the pixel threshold is the lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in a plurality of voxels corresponding to the grid; Second, as a unit, the obstacle grid is expanded to obtain an obstacle area, and the area outside the obstacle area in the grid map is used as a drivable area.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: The computer program includes executable instructions, and when the executable instructions are executed by a processor, the method described in any one of claims 1 to 7 is implemented.
10. An electronic device, characterized in that: include: one or more processors; A memory for storing executable instructions of the processor, wherein when the executable instructions are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Grid map updating method and device, robot and storage medium
CN112526993A
Closed road edge and travelable area detection method based on laser radar
CN113917487A
Obstacle detection method, detection device and traveling device
CN114387585A
Point cloud sequence data processing method and device, computer equipment and storage medium
CN115546760A
Local static environment sensing method and device for autonomous selection of landing area
CN116482711A