A drivable area determination method, device, medium, and electronic device

By voxelizing and rasterizing the three-dimensional point cloud data around the robot, the obstacle area is determined, which solves the problems of poor versatility and insufficient robustness caused by sensor replacement or model changes, and realizes the determination of the drivable area in complex road environments.

CN119772882BActive Publication Date: 2025-10-17NANJING INST OF INTELLIGENT TECH INST OF MICROELECTRONICS OF THE CHINESE ACAD OF
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411926943.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-25
Publication Date
2025-10-17
Estimated Expiration
2044-12-25

AI Technical Summary

Technical Problem

Existing methods for determining drivable areas have poor versatility when sensors are replaced or model parameters are changed, and are not robust enough for complex road surfaces, increasing time and computing costs.

Method used

The three-dimensional point cloud data around the robot is voxelized into a set of target voxels and projected onto a horizontal plane to form a grid map. The obstacle grid is determined according to the pixel values ​​of the grid, and the obstacle area is obtained through dilation processing, thereby determining the drivable area, avoiding dependence on sensor model parameters and semantic information.

Benefits of technology

It is possible to determine the drivable area when the sensor model parameters change, which improves the versatility and robustness of the method, reduces time and computing power costs, and adapts to complex road environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119772882B_ABST
    Figure CN119772882B_ABST
Patent Text Reader

Abstract

The application discloses a drivable area determination method, device, medium and electronic equipment. The method comprises the following steps: voxelizing first three-dimensional point cloud data of a target area around a robot to obtain a target voxel set, wherein the target voxel set comprises a plurality of voxels arranged in a first direction, a second direction and a third direction; projecting the target voxel set to a horizontal plane to obtain a grid map, wherein the grid map comprises a plurality of grids, and each grid corresponds to a plurality of voxels arranged in the third direction; for each grid, obtaining a pixel value of the grid, and if the pixel value of the grid is greater than or equal to a pixel threshold value, regarding the grid as an obstacle grid; and performing inflation processing on the obstacle grid to obtain an obstacle area, and regarding an area outside the obstacle area in the grid map as a drivable area. The application does not use model parameters of a sensor, and is highly versatile.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of robot perception, in particular, to a drivable area determination method, device, medium and electronic equipment. BACKGROUND

[0002] The drivable area determination method refers to a detection method for identifying and determining the area in which a vehicle or robot can safely drive through sensor data and environmental perception technology, which can realize road path planning and obstacle avoidance, thereby ensuring the safety and reliability of the vehicle or robot.

[0003] Part of the drivable area determination method relies on the model parameters of the sensor. When the current sensor is replaced by another sensor with different model parameters or the sensor data is for multiple sensors with different model parameters, the model parameters in the method need to be adjusted or the method may fail, resulting in poor generality of the method. SUMMARY

[0004] Embodiments of the present application provide a drivable area determination method, device, medium and electronic equipment to solve the technical problem of poor generality of part of the drivable area determination method.

[0005] Other characteristics and advantages of the present application will become apparent from the following detailed description, or will be learned by practice of the present application.

[0006] According to a first aspect of the present application, a drivable area determination method is provided, the method comprising:

[0007] Voxelizing first three-dimensional point cloud data of a target area around a robot to obtain a target voxel set, the target voxel set comprising a plurality of voxels arranged in a first direction, a second direction and a third direction, the first direction, the second direction and the third direction being perpendicular to each other;

[0008] Projecting the target voxel set onto a horizontal plane to obtain a grid map, the horizontal plane being a plane constructed along the first direction and the second direction, the grid map comprising a plurality of grids, each of the grids corresponding to a plurality of voxels arranged along the third direction, the grid and the corresponding plurality of voxels having the same position information in the first direction and the second direction;

[0009] For each of the grids, obtaining a pixel value of the grid, if the pixel value of the grid is greater than or equal to a pixel threshold value, regarding the grid as an obstacle grid, the pixel value being the number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid, the pixel threshold value being a lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid;

[0010] The obstacle grid is expanded to obtain an obstacle area, and an area outside the obstacle area in the grid map is taken as a drivable area.

[0011] In some embodiments, based on the foregoing scheme, the pixel value of the grid is obtained by:

[0012] For a plurality of voxels corresponding to the grid, the plurality of voxels are sorted from one end to the other end of the third direction, the position order of each voxel in the third direction is determined, if the voxel is occupied by the first three-dimensional point cloud data, the voxel is taken as a target voxel, and the pixel value of the grid is determined according to the maximum value and the minimum value of the position order of the target voxel.

[0013] In some embodiments, based on the foregoing scheme, the pixel value of the grid is determined according to the maximum value and the minimum value of the position order of the target voxel, including:

[0014] The difference between the maximum value and the minimum value of the position order of the target voxel is determined as a first difference value;

[0015] The sum of the first difference value and a reference value is taken as the pixel value, and the reference value is a natural number.

[0016] In some embodiments, based on the foregoing scheme, the pixel threshold value is determined by:

[0017] The voxel size of the voxel and the measurement accuracy of the first three-dimensional point cloud data are obtained;

[0018] The measurement accuracy and the voxel size are used to determine the pixel threshold value.

[0019] In some embodiments, based on the foregoing scheme, the pixel threshold value is determined according to the measurement accuracy and the voxel size, including:

[0020] If the measurement accuracy is less than the voxel size, the pixel threshold value is greater than or equal to 2;

[0021] If the measurement accuracy is greater than or equal to the voxel size, the pixel threshold value is greater than or equal to a target value, the target value is a times the ratio of the measurement accuracy to the voxel size, and a is greater than or equal to 5.

[0022] In some embodiments, based on the foregoing scheme, the first three-dimensional point cloud data of the target area around the robot is voxelized to obtain a target voxel set, including:

[0023] cutting the first three-dimensional point cloud data according to the preset voxel size in the target region, and assigning each point in the first three-dimensional point cloud data to a corresponding voxel to obtain the target voxel set.

[0024] In some embodiments, based on the foregoing scheme, the expanding the obstacle grid to obtain an obstacle region comprises:

[0025] obtaining an expansion radius;

[0026] for each obstacle grid, expanding the obstacle grid to a grid obstacle region according to the expansion radius;

[0027] obtaining the obstacle region according to the grid obstacle region of each grid.

[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 first three-dimensional point cloud data of a target region around a robot to obtain a target voxel set, the target voxel set comprising a plurality of voxels arranged in a first direction, a second direction and a third direction, the first direction, the second direction and the third direction being perpendicular to each other;

[0030] a second obtaining unit projects the target voxel set to a horizontal plane to obtain a grid map, the horizontal plane being a plane constructed along the first direction and the second direction, the grid map comprising a plurality of grids, each grid corresponding to a plurality of voxels arranged along the third direction, the grid and the corresponding plurality of voxels having the same position information in the first direction and the second direction;

[0031] a first determining unit, for each grid, obtaining a pixel value of the grid, if the pixel value of the grid is greater than or equal to a pixel threshold value, determining the grid as an obstacle grid, the pixel value being a number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid, the pixel threshold value being a lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid;

[0032] a second determining unit, expanding the obstacle grid to obtain an obstacle region, and determining a region other than the obstacle region in the grid map as a drivable region.

[0033] According to a third aspect of the present application, a computer readable storage medium is provided, having a computer program stored thereon, characterized in that the computer program comprises executable instructions, when executed by a processor, implement the method of any one of the embodiments of the first aspect of the present application.

[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 conventional point cloud data and does not rely on sensor model parameters. When the sensor model parameters change, the drivable area can also be determined. On the other hand, the drivable area is determined based on the voxels occupied by the first three-dimensional point cloud data, that is, only whether the space is occupied is considered, which does not rely on semantic information and is highly robust.

[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 accompanying drawings are incorporated into and constitute a part of the specification, illustrating embodiments consistent with the present application and, together with the specification, explaining the principles of the present application. Obviously, the drawings described below are only some embodiments of the present application, and those skilled in the art can derive other drawings based on these drawings without inventive effort. 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 device for determining a drivable area 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] With reference to the drawings and the embodiments of the present application, the technical solutions in the embodiments of the present application will be clearly and completely described. Obviously, the described embodiments are only a part of the embodiments of the present application, but not all the embodiments of the present application. Based on the embodiments of the present application, all the other embodiments obtained by those of ordinary skill in the art without creative effort are within the scope of the present application.

[0045] In addition, the described features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of the present application. One of ordinary skill in the art will recognize, however, that the application can be practiced without one or more of the specific details, or with other methods, components, devices, steps, etc. In other instances, well-known methods, devices, implementations, or operations are not shown or described in detail to avoid obscuring aspects of the present application.

[0046] The block diagrams shown in the drawings are only functional entities, and do not necessarily correspond to physically independent entities. That is, the functional entities can be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.

[0047] The flowcharts shown in the drawings are only exemplary illustrations, and do not necessarily include all the contents and operations / steps, nor do they necessarily have to be executed in the order described. For example, some operations / steps can be further decomposed, and some operations / steps can be combined or partially combined, so the actual execution order can be changed according to the actual situation.

[0048] In the description of the present application, it should be understood that the terms "first", "second" are only for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of indicated technical features. Therefore, the features defined with "first", "second" can explicitly or implicitly include one or more of the features. In the description of the present application, unless otherwise specified, the meaning of "a plurality of" is two or more.

[0049] In order to better understand the embodiments of the present application, the prior art of the drivable area detection is described as follows:

[0050] Driving area detection is crucial in robot navigation tasks, as accurate detection results are a prerequisite for robot planning and control. This is especially true in complex outdoor scenarios, which place increased demands on the robustness of driving area detection methods. Furthermore, the mobile robotics industry has experienced rapid growth in recent years, with robots becoming increasingly diverse and flexible in form factors and equipped with a growing number of sensor types and models. Universal robotics solutions are becoming a mainstream R&D requirement, requiring them to demonstrate a certain level of versatility.

[0051] Currently, point cloud-based drivable area detection methods, regardless of whether they use learning methods, usually have at least one of the following problems:

[0052] (1) Lack of universality. Some methods require setting threshold parameters based on the sensor's imaging model. When replacing a sensor, the threshold parameters will be adjusted due to different sensor model parameters. For example, multi-line lidars with different line counts have different angular resolutions, and certain threshold parameters need to be set based on the angular resolution and the sensor's installation height.

[0053] (2) Lack of robustness for complex road surfaces. For example, outdoor environments have ups and downslopes, 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 scattered near the plane that meet certain conditions are regarded as ground points. However, outdoor scenes are complex and changeable, making it difficult to model and give reasonable conditional parameters. Therefore, the robustness of the drivable area detection method is insufficient.

[0054] (3) For ground segmentation schemes that use learning, manual data labeling is required, which increases time and computing power 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 , provides a method for determining a drivable area, the method including at least 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, which 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 can be the three-dimensional point cloud data at the current moment. In this case, 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 chart in the upper left side is the target voxel set, the size of the target voxel set is 4x4x4, including 64 voxels arranged in the X-axis direction, Y-axis direction and Z-axis direction, each voxel is Figure 2 One grid in the upper left side grid chart.

[0058] In some embodiments, the first three-dimensional point cloud data is obtained by the following steps: when the sensor is horizontally installed relative to the robot, the three-dimensional point cloud data of the sensor is taken as the first three-dimensional point cloud data; when the sensor is not horizontally installed relative to the robot, the original point cloud data is obtained by the sensor, 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, the target coordinate system is the coordinate system of the horizontal posture relative to the robot, that is, the first three-dimensional point cloud data satisfies the assumption condition that "the sensor is horizontally installed relative to the robot or the point cloud is converted from the sensor coordinate system to the coordinate system of the horizontal posture (relative to the robot) and satisfies the right-hand coordinate system". 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 to obtain the point cloud data around the robot, and when the data collected by the camera is applied, the camera data needs to be converted into 3D pseudo point cloud.

[0059] Therefore, the present application does not use the model parameters of the sensor, supports multiple sensors and combinations, such as laser radar (sparse point cloud data), camera (dense depth data), laser radar and camera fusion, etc., and has high flexibility.

[0060] In the prior art, one type of scheme needs to use the vertical angle resolution (model parameters) of the laser radar, when different vertical angle resolution radars are replaced or multiple sensor data of different angle resolutions are simultaneously accessed, the parameters of this type of scheme need to be adjusted or may be invalid, thereby affecting the universality of the scheme, that is, the universality is poor. The present application does not depend on the imaging model of the laser radar, the parameter configuration of the scheme is independent of the type and parameters of the sensor, that is, the sensor model parameters are not used, the drivable area can be determined when the first three-dimensional point cloud data satisfies the commonly used assumption condition in the robot industry, and the universality is stronger.

[0061] In step S2, the target voxel set is projected to a horizontal plane to obtain a grid chart, the horizontal plane is a plane constructed along the first direction and the second direction, the grid chart includes a plurality of grids, each grid corresponds to a plurality of voxels arranged along the third direction, and the grid and the corresponding plurality of voxels have the same position information in the first direction and the second direction. The horizontal plane can be understood as an ideal ground.

[0062] Exemplarily, referring to Figure 2obtaining a set of target voxels V voxel The 2D plane in which the XY is projected is a horizontal plane, and the width of the 2D plane corresponds to the distance between the two points in the X-axis direction. The height of the 2D plane corresponds to the distance between the two points in the Y-axis direction. Correspondingly, Figure 2 The 2D graph on the left below is the grid graph, the size of the grid graph is 4x4, 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 column chart on the right is a schematic diagram of the 4 voxels corresponding to the target grid, and the target grid is Figure 2 The grid with black color in the 2D graph on the left below.

[0063] In step S3, for each grid, the pixel value of the grid is obtained, if the pixel value of the grid is greater than or equal to the pixel threshold value, the grid is taken as an obstacle grid, the pixel value is the number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid, and the pixel threshold value is the lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid. Referring to Figure 2 , the pixel value in the 2D plane corresponds to the number of voxels occupied at the coordinates, The pixel value of the grid is the number of voxels occupied at the coordinates, The grid.

[0064] It should be noted that the grid graph is a 2D plane graph, the pixel value can be understood as the occupancy cost value of each grid (region), the pixel value of the grid is greater than or equal to the pixel threshold value, the grid is an occupied region, the occupancy cost value is 100, indicating that the grid is occupied and cannot pass through, and the pixel value of the grid is less than the pixel threshold value, the grid is an unoccupied region (a region that can be driven), and the occupancy cost value is 0, indicating that the grid is not occupied and can pass through.

[0065] In some embodiments, after the pixel value of the grid is obtained, if the pixel value of the grid is less than the pixel threshold value, the grid is taken as a drivable grid.

[0066] In step S4, the obstacle grid is dilated to obtain an obstacle region, and the region outside the obstacle region in the grid graph is taken as a drivable region.

[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, etc., so that the drivable region has semantic information as a feature, which enriches the decision of the robot and has high flexibility.

[0068] In some embodiments, the acquiring the pixel value of the grid comprises: for a plurality of voxels corresponding to the grid, sorting the plurality of voxels from one end to the other end of the third direction, determining a position sequence of each of the voxels in the third direction, if the voxel is occupied by the first three-dimensional point cloud data, taking the voxel as a target voxel, and determining the pixel value of the grid according to a maximum value and a minimum value of the position sequence of the target voxel.

[0069] In some embodiments, the determining the pixel value of the grid according to the maximum value and the minimum value of the position sequence of the target voxel comprises: determining a first difference value as a difference between the maximum value and the minimum value of the position sequence of the target voxel; and taking a sum of the first difference value and a reference value as the pixel value, the reference value being a natural number.

[0070] In some embodiments, the reference value is 1 in consideration of sparsity of the first three-dimensional point cloud data, and the reference value is 0 without considering the sparsity of the first three-dimensional point cloud data.

[0071] In some embodiments, the determining the position sequence of each of the voxels in the third direction comprises: acquiring a voxel index of each of the voxels, the voxel index being used to identify a position of the voxel in a set of target voxels, the voxel index comprising a first coordinate, a second coordinate, and a third coordinate, the first coordinate being used to identify a coordinate of the voxel in the first direction, the second coordinate being used to identify a coordinate of the voxel in the second direction, and the third coordinate being used to identify a coordinate of the voxel in the third direction; and determining the position sequence of each of the voxels in the third direction according to the third coordinate.

[0072] For example, referring to Figure 2 , a voxel corresponding to a voxel index (1, 1, 1) is a first voxel in a positive direction of an X axis, a first voxel in a positive direction of a Y axis, and a first voxel in a positive direction of a Z axis.

[0073] In some embodiments, the determining the position sequence of each of the voxels in the third direction according to the third coordinate comprises: for a plurality of voxels corresponding to the grid, sorting the voxels from small to large according to the third coordinate, and determining the position sequence of each of the voxels in the third direction.

[0074] For example, referring to Figure 2 , for Figure 2The grid with black color in the left lower part corresponds to 4 voxels with voxel indexes from bottom to top as (1, 1, 0), (1, 1, 1), (1, 1, 2), (1, 1, 3), and the third coordinate from bottom to top as 0, 1, 2 and 3, and the position order from bottom to top as 1, 2, 3 and 4, and the position order from top to bottom as 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, and 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 embodiments, the pixel value of the grid is obtained by the following formula: wherein, is the pixel value of the grid, is the set of all voxel centers on the XY plane at is the set of all voxel centers on the XY plane at max is a function for calculating the maximum value, and min is a function for calculating 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. Referring to Figure 2 , the voxel size is Figure 2 the side length of each grid in the grid map in the upper left part of

[0077] In some embodiments, the determination of 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; and 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, the target value is a times the ratio of the measurement accuracy to the voxel size, and a is greater than or equal to 5. a can be a positive integer greater than or equal to 5. When , it can be considered that the space at (corresponding to a certain grid) is occupied, and the robot cannot pass through, wherein, is the pixel value, and g thresh is the pixel threshold.

[0078] In this way, whether the ground is flat or not, whether it is a ground plane or a slope, in the height dimension, the ground points are concentratedly distributed, and the concentration degree depends on the ranging accuracy (measurement accuracy) of the first three-dimensional point cloud data. According to the noise size, the ground is filtered out, and the ground points are removed with the loss of equal size accuracy to obtain the drivable area.

[0079] Exemplarily, the voxel size is 0.05 m, and the ranging accuracy of the laser radar sensor is usually within ±0.02 m, which is less than the set value s voxel , so the ground is filtered out. thresh The pixel threshold value (pixel threshold value) can be preset to 2 or 3, wherein the set value s voxel is the voxel size.

[0080] In some embodiments, the voxel size is 0.05 m, and the voxel size of 0.05 m can usually describe the target that can be observed by any sensor, so that the application can accurately detect any shape, any category of obstacle, and its 3D position information, and the recognition resolution can reach 0.05 m, and the robustness is strong.

[0081] It should be noted that when the voxel size (voxel size) is greater than the ranging accuracy, the pixel threshold value can be 2 or 3, and when the voxel size is less than the ranging accuracy, the smaller the voxel size, the greater the pixel threshold value.

[0082] In some embodiments, the voxelization of the first three-dimensional point cloud data of the target region around the robot to obtain a target voxel set comprises: cutting the first three-dimensional point cloud data according to a preset voxel size in the target region, and distributing each point in the first three-dimensional point cloud data to a corresponding voxel to obtain the target voxel set. In the voxel of the target voxel set, if the voxel has 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 have 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 , the voxel with white color is not occupied by the first three-dimensional point cloud data, and the voxel with black color is occupied by the first three-dimensional point cloud data.

[0083] Exemplarily, the first three-dimensional point cloud data is cut according to the voxel size s voxel , and each point is distributed to a corresponding voxel, i=1, …, M, M is the number of points.

[0084] In the application, considering the sparsity of the point cloud and the resource occupation problem when the algorithm runs, s voxel is usually 0.05 m.

[0085] In some embodiments, the cutting the first three-dimensional point cloud data according to the preset voxel size in the target region, and assigning each point in the first three-dimensional point cloud data into a corresponding voxel to obtain the target voxel set comprises: obtaining an original voxel set, the original voxel set comprising 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 a point coordinate of the point, and obtaining a voxel index of the point according to a ratio of the point coordinate to a voxel size, the voxel index being used to identify a position of the voxel; if the voxel corresponding to the voxel index is in the original voxel set, assigning the point into the voxel corresponding to the voxel index; if the voxel corresponding to the voxel index is not in the original voxel set, creating the voxel corresponding to the voxel index, and performing the step of assigning the point into the voxel corresponding to the voxel index.

[0086] In some embodiments, the obtaining the voxel index of the point according to the ratio of the point coordinate to the voxel size comprises: rounding the ratio of the point coordinate to the voxel size, the ratio including a first ratio of the first direction, a second ratio of the second direction and a third ratio of the third direction; if the first ratio or the second ratio or the third ratio is positive, rounding up; if the first ratio or the second ratio or the third ratio is negative, rounding down.

[0087] For example, for each point in the first three-dimensional point cloud data , the voxel index is determined by , if the voxel corresponding to the voxel index does not exist, a voxel corresponding to the voxel index is created . j , i.e. a new voxel is created, where j = 1, …, N, N being the number of voxels, and the point is assigned into the corresponding voxel v . j , v j ∈ V voxel , V voxel being the target voxel set.

[0088] In some embodiments, the expanding the obstacle grid to obtain an obstacle region comprises: obtaining an expansion radius; for each obstacle grid, expanding the obstacle grid to a grid obstacle region around the obstacle grid according to the expansion radius; and obtaining the obstacle region according to the grid obstacle region of each grid. The obstacle region can be understood as occupying an expansion region, and is obtained by expanding the occupied region, indicating a potential collision danger zone.

[0089] In some embodiments, the expanding the grid around the obstacle grid according to the inflation radius to obtain a grid obstacle area of the obstacle grid comprises: regarding the grids in the grid map other than the obstacle grid 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, 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 inflation radius, regarding the drivable grid as an inflation grid; regarding the area of the inflation 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 inflation processing function: C(d) = C occupied ×f(d), C(d) is the occupancy cost value set by the area, occupied C is the occupancy cost value at the position, and f(d) is a cost factor function, which is determined by the following formula: d is the distance from the inflation area to the occupancy area, r is the inflation radius, i.e., the distance of expansion from the occupancy area, is the known occupancy area, which can be understood as the position information of the obstacle grid, occupied C is 100, is the area to be inflated, which can be understood as the position information of the drivable grid, the occupancy cost value is 0, m = 1, …, N, n = 1, …, N, and N is the number of voxels, i.e., 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 cannot be passed, the obstacle grid (occupancy point) of the area may be discrete, and if no processing is performed, the planned path may pass through the area, on the other hand, a robot is a physical object and is not an ideal point. Considering the safety of the robot passing through, the obstacle grid is processed by inflation, which is equivalent to expanding Fs init by inflation processing to obtain a drivable area Fs, wherein Fs init is an area in the grid map other than the obstacle grid.

[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: obtaining 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 the area outside the target area in the detection area is a peripheral area, and the peripheral area includes the area where the robot body is located; for the second three-dimensional point cloud data, filtering out the second three-dimensional point cloud data of the peripheral area 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 in 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. The sensor coordinate origin is perceived in front and behind the distance Left and right sensing distance The removal of other point cloud data reduces the amount of calculation. and is 10m, see Figure 3 , 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 sensor model parameters, and the drivable area can be determined when the sensor model parameters change; on the other hand, the part-based learning method has poor robustness due to the accuracy of semantic segmentation, and the present application only considers whether the space is occupied, does not depend on semantic information, and has strong robustness; on the one hand, some schemes analyze the characteristics of the point set in the field, and the sparse characteristics of the point cloud cause the analysis method to fail outside the distance sensor 10m or even 5m, in addition, due to the complexity of the outdoor environment, the robustness of the analysis method is tested, the present application fully utilizes the characteristics that "in the height dimension, the ground points are concentrated", reduces the dimension of neighborhood analysis, and therefore can improve the robustness of the sparse characteristics of the point cloud, effectively identify the distance up to 15m, and adapt to various complex road surfaces, such as uneven paved roads, unpaved roads, uphill and downhill, etc., to support the realization of a general robot navigation scheme; on the other hand, the present application has the characteristics of light weight and few parameters, does not use the learning method, does not need to label data, saves time and computing power, and has low landing cost.

[0096] Figure 3 A block diagram of a drivable area determination device in an embodiment of the present application is shown, see Figure 4 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, the target voxel set comprising a plurality of voxels arranged in a first direction, a second direction and a third direction, the first direction, the second direction and the third direction being perpendicular to each other;

[0098] A second obtaining unit 102 projects the target voxel set onto a horizontal plane to obtain a grid map, the horizontal plane being a plane constructed along the first direction and the second direction, the grid map comprising a plurality of grids, each of the grids corresponding to a plurality of voxels arranged along the third direction, the grid and the corresponding plurality of voxels having the same position information in the first direction and the second direction;

[0099] A first as unit 103, for each of the grids, obtains a pixel value of the grid, if the pixel value of the grid is greater than or equal to a pixel threshold value, the grid is taken as an obstacle grid, the pixel value being the number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid, the pixel threshold value being a lower limit value of the number of voxels occupied by the first three-dimensional point cloud data in the plurality of voxels corresponding to the grid;

[0100] The second unit 104 expands the obstacle grid to obtain an obstacle area, and regards an area outside the obstacle area in the grid map 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, having stored thereon a program product capable of implementing the above-described drivable area determination method. In some possible implementation manners, each aspect of the present application can also be implemented in the form of a program product, which includes program codes for causing a terminal device to perform the steps described in the above "Exemplary Method" section according to various exemplary embodiments of the present application when the program product runs on the terminal device.

[0102] Reference Figure 5 As shown, the program product 200 for implementing the above-described method according to the embodiments of the present application is described, which can adopt a portable compact disc read-only memory (CD-ROM) and include program codes, and can run on a terminal device, such as a personal computer. However, the program product of the present application is not limited thereto, and in this document, the readable storage medium can be any tangible medium containing or storing a program, which can be used by or in conjunction with an instruction execution system, apparatus or device.

[0103] The program product can adopt any combination of one or more readable media. The readable medium can be a readable signal medium or a readable storage medium. The readable storage medium, for example, can be but is not limited to an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus or device, or any combination thereof. More specific examples (non-exhaustive list) of the readable storage medium include an electrical connection having one or more wires, a portable disc, 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 disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0104] The computer readable signal medium can include a data signal propagated in a baseband or as a carrier wave in a propagated data signal, in which readable program codes are borne. Such a propagated data signal can adopt various forms, including but not limited to an electromagnetic signal, an optical signal or any suitable combination thereof. The readable signal medium can also be any readable medium other than the readable storage medium, which can 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 computer readable medium can be transmitted using any appropriate medium, including but not limited to wireless, wired, optical fiber cable, RF, and the like, or any suitable combination of the foregoing.

[0106] Computer program code for carrying out operations of the present application can be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C++, or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code can execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's device and partly on a remote computing device or entirely on the remote computing device or server. In the latter scenario, the remote computing device can be connected to the user's device through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computing device, such as through the Internet using an Internet Service Provider.

[0107] As another aspect, the present application also provides an electronic device capable of implementing the above method.

[0108] Those skilled in the art can understand that each aspect of the present application can be implemented as a system, a method or a program product. Therefore, each aspect of the present application can be specifically implemented as a complete hardware embodiment, a complete software embodiment (including firmware, microcode, etc.), or an embodiment combining software and hardware aspects, which can be collectively referred to as "circuitry", "module" or "system" herein.

[0109] The electronic device 300 according to this embodiment of the present application will be described below with reference to Figure 5 Figure 5 The electronic device 300 shown is merely an example and should not impose any limitation on the function and scope of use of the embodiments of the present application.

[0110] As shown in Figure 5 The electronic device 300 is in the form of a general computing device. The components of the electronic device 300 can include, but are not limited to, the at least one processing unit 310 described above, the at least one storage unit 320 described above, and a bus 330 connecting different system components, including the storage unit 320 and the processing unit 310.

[0111] The storage unit stores program code which can be executed by the processing unit 310, so that the processing unit 310 performs the steps described in the above "Embodiment Method" section of the present specification according to various exemplary embodiments of the present application.

[0112] ​The storage unit 320 can include a readable medium in the form of volatile storage such as random access memory (RAM) 321 and / or cache memory 322, and also can include a non-volatile storage such as read only memory (ROM) 323.

[0113] The storage unit 320 can also include a program / utility 324 having a set of 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 can include implementation of a network environment, alone or in combination.

[0114] The bus 330 can represent one or more of several types of bus structures, including a storage bus or bus for storage controller, a peripheral bus, a graphics acceleration port, a processor or local bus using any of a variety of bus structures, and the like.

[0115] The electronic device 300 can also communicate with one or more external devices 400 such as a keyboard or pointing device, a Bluetooth device, etc., one or more devices that enable a user to interact with the electronic device 300 and / or one or more devices that enable the electronic device 300 to communicate with one or more other computing devices. Such communication can occur via an input / output (I / O) interface 350. Still yet, the electronic device 300 can communicate with one or more networks, such as a local area network (LAN), a wide area network (WAN), and / or the Internet, through a network adapter 360. As ​ illustrated, the network adapter 360 can communicate with the other components of the electronic device 300 via the bus 330. It should be understood that although not shown, other hardware and / or software components could be used in conjunction with the electronic device 300. These include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0116] The functions described herein can be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions can be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Other examples and implementations are within the scope and spirit of the disclosure and appended claims. For example, due to the nature of software, changes to the

[0117] In several embodiments provided in the present application, it should be understood that the disclosed technology can be implemented in other ways. Among them, the above-mentioned device embodiments are only schematic, for example, the division of the units can be a logical function division, and actual implementation can have another division manner, for example, a plurality of units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the coupling or direct coupling or communication connection between the displayed or discussed each other can be through some interface, indirect coupling or communication connection between units or modules, which can be electrical or other forms.

[0118] The units described as separate components can or can not be physically separated, and the components of the control device can or can not be physical units, that is, they can be located in one place, or they can be distributed to multiple units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.

[0119] The integrated unit, if implemented in the form of a software function unit and sold or used as an independent product, can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or the whole or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, including a plurality of instructions to make a computer device (which can be a personal computer, a server or a network device, etc.) execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: a U disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a mobile hard disk, a magnetic disk or an optical disk, and various program code storage media.

[0120] The above is only an embodiment of the present application and is not used to limit the present application. For those skilled in the art, the present application can have various changes and modifications. Any modification, equivalent replacement, improvement, etc. made within the spirit and principles of the present application shall be included in the scope of 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, where the horizontal plane is a plane constructed along the first direction and the second direction, the grid map including a plurality of grids, each of the grids corresponding to a plurality of voxels arranged along the third direction, and the grids and the corresponding plurality of voxels having the same position information in the first direction and the second direction; For each of the grids, obtaining a pixel value of the grid; if the pixel value of the grid is greater than or equal to a pixel threshold, the grid is considered an obstacle grid, where the pixel value is the number of voxels occupied by the first three-dimensional point cloud data among a plurality of voxels corresponding to the grid, and the pixel threshold is a lower limit of the number of voxels occupied by the first three-dimensional point cloud data among 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 pixel values ​​of the grid includes: For multiple voxels corresponding to the grid, the multiple voxels are sorted from one end to the other end of the third direction, and the position order of each voxel in the third direction is determined. 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. The method for determining a drivable area according to claim 2, wherein: Determining the pixel value of the grid according to the maximum value and the minimum value of the position sequence of the target voxel 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, wherein: The pixel threshold is determined by the following steps: Acquiring a voxel size of the voxel and a 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. The method for determining a drivable area according to claim 4, wherein: The determining the pixel threshold according to the measurement accuracy and the voxel size includes: 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. The method for determining a drivable area according to claim 1, wherein: 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, wherein: 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 the grids surrounding 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, voxelizing 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 arrayed 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; 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 including a plurality of grids, each of the grids corresponding 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 being the same; First, as a unit, for each grid, obtaining a pixel value of the grid, and if the pixel value of the grid is greater than or equal to a pixel threshold, then the grid is regarded 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; The second unit is to perform expansion processing on the obstacle grid to obtain an obstacle area, and use the area outside the obstacle area in the grid map 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 according to 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

  • Closed road edge and travelable area detection method based on laser radar

    CN113917487A

  • Driving area detection method, device and equipment and storage medium

    CN117302263A