A robot local obstacle map construction method and device

By acquiring point cloud data using a depth camera and updating the grid state using Bayesian formula, and by utilizing multi-sensor data fusion and index offset caching, the problem of obstacle map construction during large-scale robot movement was solved, achieving accurate local obstacle map updates and environmental perception.

CN117011353BActive Publication Date: 2025-10-21CHENGDU GUOYI ELECTRONICS TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310734374.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-20
Publication Date
2025-10-21
Estimated Expiration
2043-06-20

AI Technical Summary

Technical Problem

Existing technologies suffer from inaccurate obstacle map construction due to sensor noise during large-scale robot movement, and excessive memory consumption can cause the robot to exceed map boundaries or deviate from its positioning information, leading to mapping failure or program crashes.

Method used

Obstacle point cloud data is acquired using depth cameras, and the grid state is updated using Bayesian formula. By combining data fusion from multiple depth cameras, the locally occupied grid map is dynamically updated, and a local obstacle map is constructed using position and index offset caching.

Benefits of technology

It enables accurate construction and updating of local obstacle maps under conditions of large-scale movement, reduces memory usage, avoids map boundary overflow and positioning offset, and ensures that the robot can accurately perceive the environment at any location.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117011353B_ABST
    Figure CN117011353B_ABST
Patent Text Reader

Abstract

The application discloses a kind of robot local obstacle map construction method and device, the method includes the following steps: S1: constructing initial local occupancy grid map, and initialization index offset buffer;S2: by depth camera, obtain obstacle depth information, and according to the depth camera internal parameter and the external parameter between depth camera and robot, obtain obstacle point cloud data;S3: according to point cloud data, update grid state, and after traversal is completed, according to the grid state in local range, update occupancy grid map;S4: based on position offset, index offset buffer and original occupancy state, update the occupancy state in local range of current position;S5: after the occupancy state in local range is updated, update the index offset buffer of robot.The application solves the problem of local obstacle map construction and updating under the condition of large-scale movement of robot.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of robot map construction, and in particular to a method and device for constructing a robot local obstacle map. Background Art

[0002] Robots are currently developing towards intelligent and autonomous capabilities. During autonomous movement, robots need to build obstacle maps based on sensor information for trajectory planning and obstacle avoidance. Existing robot mapping methods typically use lidar or depth cameras to obtain obstacle point cloud information. However, due to the noise inherent in these sensors, occupancy grid maps are often used during mapping. By dynamically updating the occupancy probabilities of the grid cells, these maps provide a more accurate representation of obstacle information.

[0003] However, this method requires predetermining the map size and allocating memory before building the map. Onboard processing devices typically have limited computing and memory resources, making this method unsuitable for situations where the map size is unknown and the robot's range of motion is large. Furthermore, for highly maneuverable robots like rotary-wing drones, it's difficult to fully utilize their maneuverability for omnidirectional movement with only one or two forward-facing sensors. Therefore, a local obstacle map can be created by fusing information from multiple sensors. Furthermore, existing mapping technologies require a large amount of memory when the robot's range of motion is large. Once the memory usage reaches the upper limit of the onboard processing module, the robot can easily exceed the map boundaries during long, extensive movements. Furthermore, if the positioning information deviates beyond the map boundaries, this can further lead to map failure or program crashes. Summary of the Invention

[0004] The purpose of the present invention is to provide a method and device for constructing a local obstacle map of a robot, so as to solve the technical problem of constructing and updating a local obstacle map of a robot under conditions of large-scale movement.

[0005] The present invention is implemented by adopting the following technical solution: a method for constructing a local obstacle map of a robot, comprising the following steps:

[0006] S1: Build the initial local occupancy grid map and initialize the index offset cache;

[0007] S2: Obtain obstacle depth information through the depth camera, and obtain obstacle point cloud data based on the depth camera internal parameters and the external parameters between the depth camera and the robot;

[0008] S3: Update the grid state according to the point cloud data, and update the occupied grid map according to the grid state in the local range after the traversal is completed;

[0009] S4: Based on the position offset, index offset cache and the original occupancy status, update the occupancy status within the local range of the current position;

[0010] S5: After the occupancy status update in the local range is completed, the robot's index offset cache is updated.

[0011] Furthermore, step S1 is specifically as follows: with the robot as the center point, an initial local occupancy grid map is created with a preset size range to store the occupancy status of each local relative position in the three-dimensional space, and an initial value of the unknown state is assigned to each grid unit. At the same time, an index offset cache in the X, Y, and Z axes is defined to record tiny offsets that cannot be rounded off during position changes.

[0012] Furthermore, step S2 is specifically as follows: through the depth camera projection model, the points on the image coordinate system are projected to the depth camera coordinate system, and then based on the posture of the depth camera, the points on the depth camera coordinate system are projected to the world coordinate system, thereby converting the depth information into three-dimensional space point cloud data in the world coordinate system.

[0013] Furthermore, step S3 includes the following sub-steps:

[0014] S31: traverse the point cloud data obtained in step S2 to determine whether the location of the point cloud data is within the range of the local map to be updated;

[0015] S32: After the traversal is completed, it is determined whether there is an obstacle in the current grid according to the judgment result of step S31.

[0016] Furthermore, step S31 is specifically as follows: traverse the point cloud data obtained in step S2, and if the location of the point cloud data is within the local map range that needs to be updated, assign a hit value at the corresponding location; otherwise, assign an idle value at the intersection of the local map boundary and the ray, and step from the end point of the ray toward the camera point within the local map range, and assign an idle value to each intermediate point.

[0017] Furthermore, step S32 is specifically as follows: after the traversal is completed, the probability that the current grid is an obstacle is judged based on the number of hits and idle times of each grid: if the number of hits is greater than the number of idle times, the occupancy probability of the current grid is increased; otherwise, the occupancy probability of the current grid is reduced; and then the occupancy probability of the current grid is judged. If it is higher than the preset threshold, it is considered that there is an obstacle in the current grid; otherwise, it is considered that there is no obstacle in the current grid.

[0018] Furthermore, if there are multiple depth cameras, the data from the multiple depth cameras are fused, and the grid occupancy status and the grid map are updated according to steps S2 and S3.

[0019] Furthermore, step S4 includes the following sub-steps:

[0020] S41: When the robot position changes, the offset between the robot's current actual position and the previous position is calculated, divided by the map resolution, and added to the previous index offset cache to obtain the actual index offset of the local grid map;

[0021] S42: Update the occupancy status within the local range of the current position. First, initialize a new local occupancy grid map, then traverse the original local grid map, and calculate the position of the original map in the new map based on the actual index offset. If the position is still within the local range of the current robot, assign the original occupancy probability to the grid at the corresponding position in the new map.

[0022] Furthermore, step S5 is specifically as follows: after the occupancy status update in the local range is completed, the index offset cache is reassigned and updated to the actual index offset minus the actual index offset after rounding off.

[0023] A robot local obstacle map construction device, comprising:

[0024] Multiple depth cameras for acquiring omnidirectional depth data;

[0025] The central processing module processes the depth data and constructs an obstacle map using the aforementioned robot local obstacle map construction method, and controls the robot's movement based on the map information and task information;

[0026] The robot body is used to carry sensors and execute motion instructions issued by the central processing module.

[0027] The beneficial effects of the present invention are as follows: based on the robot's position offset and index offset cache, the present invention dynamically updates the local occupancy grid map, is not limited by the robot's range of activity, can accurately perceive the surrounding environment at any position, and solves the problem of local obstacle map construction and updating of the robot under large-scale movement conditions; at the same time, through the omnidirectional multi-sensor data fusion method, accurate obstacle environment information around the robot's current position is constructed. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the structures shown in these drawings without paying any creative work.

[0029] Figure 1 Flowchart of the present invention;

[0030] Figure 2 It is a schematic diagram of the structure of the device of the present invention. DETAILED DESCRIPTION

[0031] To make the objectives, technical solutions, and advantages of the embodiments of the present invention more clear, the technical solutions of the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Generally, the components of the embodiments of the present invention described and shown in the drawings herein can be arranged and designed in various different configurations.

[0032] It should be noted that similar reference numerals and letters denote similar items in the following drawings, and therefore, once an item is defined in one drawing, it does not need to be further defined or explained in subsequent drawings.

[0033] The following embodiments of the present invention are described in detail with reference to the accompanying drawings. In the absence of conflict, the following embodiments and features in the embodiments may be combined with each other.

[0034] Example 1

[0035] See also Figure 1 , a method for constructing a local obstacle map of a robot, comprising the following steps:

[0036] S1: Initialize the local occupancy grid map and index offset cache;

[0037] S2: Obtain obstacle point cloud data based on the depth image;

[0038] S3: Update grid status and obstacle map based on point cloud data;

[0039] S4: Update the local map occupancy status based on the position offset, index offset cache and the original occupancy status;

[0040] S5: Update the position index offset cache.

[0041] In this embodiment, step S1 specifically includes: determining the size of the local map according to actual needs, creating an initial local occupancy grid map with the robot position as the center point, which is used to store the occupancy status of each local relative position in the three-dimensional space, and assigning an unknown state initial value logit (P init At the same time, since the grid map is indexed in integer form, it is easy to cause cumulative errors when the position changes. Therefore, the index offset cache in the X, Y, and Z axes is defined to record the index offset that cannot be rounded during the position change process. The index offset cache is represented by V tb =[T x ,T y ,Tz ].

[0042] In this embodiment, step S2 is specifically as follows: obtaining a depth image of the environment through a depth camera (for example, a binocular sensor), projecting the points on the image coordinate system to the camera coordinate system through a camera projection model, and then projecting the points on the camera coordinate system to the world coordinate system based on the camera's posture and external parameters, thereby converting the depth information into three-dimensional space point cloud data in the world coordinate system.

[0043] In this embodiment, step S3 is specifically as follows: based on the point cloud data obtained in step S2, the hit and idle times of each grid point within the local map range are counted, and the occupancy probability of the grid point is updated based on the Bayesian formula to determine whether there is an obstacle.

[0044] Specifically, during the calculation process, the hit and idle times of each grid point are first assigned to 0, and the point cloud data obtained by S2 are traversed. If the location of the point cloud data is within the local map range to be updated, a hit and C value is assigned at the corresponding location. hit =C hit +1, otherwise assign an idle C at the intersection of the local map boundary and the ray miss =C miss +1, and step from the end point of the ray to the camera point within the local map range, assigning an idle C to each midway point miss =C miss +1.

[0045] After all point cloud data are traversed, the number of hits C of each grid is calculated. hit and idle times C miss Determine the probability that the current grid is an obstacle. If the number of hits is greater than the number of idle times C hit >C miss , then the occupancy probability of the current grid is increased, otherwise the occupancy probability of the current grid is reduced. Based on the Bayesian formula, the calculation is as follows:

[0046]

[0047] Then the occupancy probability of the current grid is determined. If it is higher than a certain threshold logit(P o′ )>logit(P occ ), then it is considered that there is an obstacle in the current grid, otherwise it is considered that there is no obstacle in the current grid.

[0048] In this embodiment, step S4 is specifically as follows: As the robot moves, its positioning information will be continuously updated. Therefore, the local obstacle map centered on the robot's positioning also needs to be continuously updated. To improve the speed and accuracy of mapping, it is necessary to update the occupancy status within the local range of the current position based on the position offset, index offset cache, and the original occupancy status. After the robot's positioning information is updated, it is necessary to calculate the offset between the robot's current actual position and the position at the previous moment, divide it by the map resolution, and add the previous index offset cache to obtain the actual index offset of the local grid map. The calculation method of the actual index offset is:

[0049] V t =(P′-P) / Resolution+V tb ;

[0050] When updating the occupancy state within the local range of the current position, first initialize a new local occupancy grid map and assign the unknown state initial value logit (P init Then, the original local grid map is traversed and the position index of the original map in the new map is calculated based on the rounded index offset: Idx′=Idx+floor(Vt+0.5). If the position is still within the local range of the current robot, the original occupancy probability is assigned to the grid at the corresponding index position in the new map.

[0051] In this embodiment, step S5 is specifically as follows: when the occupancy status update is completed within the local range, in order to avoid cumulative errors, it is necessary to re-assign the index offset cache, and the updated value is the actual index offset minus the actual index offset after rounding. tb =V t +floor(V t +0.5). In practical applications, if the positioning update frequency is high, the local map occupancy status can be updated before depth image processing to avoid repeated and invalid calculations.

[0052] Parameter Description: V tb : Index offset cache; T x ,T y ,T z : Index offset cache in the X, Y, and Z axes; C hit : The number of grid cell hits during the grid status update process; C miss : The number of grid unit idle times during the grid status update process; logit(P o ): Occupancy probability of the grid cell at the previous moment; logit(P o′ ): Occupancy probability of the grid cell at the current moment; logit(Pinit ): Each grid cell is assigned an unknown initial value; logit(P hit ):When the hit count is greater than the idle count, the probability of the grid unit being occupied increases; logit(P miss ): When the hit count is less than the idle count, the probability of the grid unit being occupied increases (negative value); logit(P occ ): obstacle determination threshold; V t : The actual index offset after the positioning information is updated; P: The robot's position at the previous moment; P': The robot's position at the current moment; Idx: The grid cell position index of the previous moment; Idx': The grid cell position index of the current moment; Resolution: The obstacle map resolution.

[0053] See also Figure 2 , a robot local obstacle map construction device, comprising:

[0054] Up, down, left, right, front, and back omnidirectional depth cameras are used to obtain depth data of the surrounding environment;

[0055] The central processing module processes the depth data and constructs an obstacle map using the aforementioned robot local obstacle map construction method, and controls the robot's movement based on the map information and task information;

[0056] The robot body is used to carry relevant sensors and execute motion instructions issued by the central processing module.

[0057] Based on the above embodiments, the present invention has at least the following technical effects:

[0058] The present invention dynamically updates the local occupancy grid map based on the robot's position offset and index offset cache. It is not limited by the robot's range of activity and can accurately perceive the surrounding environment at any position, thereby solving the problem of local obstacle map construction and updating when the robot moves over a large range. At the same time, through the fusion of omnidirectional multiple sensor data, accurate obstacle environment information around the robot's current position is constructed.

[0059] For the sake of simplicity, the aforementioned embodiments are described as a series of actions. However, those skilled in the art should be aware that this application is not limited by the order of the actions described, because according to this application, some steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are preferred embodiments, and the actions involved are not necessarily required by this application.

[0060] The above embodiments describe the basic principles, main features, and advantages of the present invention. Those skilled in the art should understand that the present invention is not limited to the above embodiments. The above embodiments and descriptions are merely illustrative of the principles of the present invention. Without departing from the spirit and scope of the present invention, modifications and variations made by those skilled in the art without departing from the spirit and scope of the present invention should be within the scope of protection of the appended claims.

Claims

1. A method for constructing a local obstacle map of a robot, characterized in that: The steps include: S1: Build the initial local occupancy grid map and initialize the index offset cache; S2: Obtain obstacle depth information through the depth camera, and obtain obstacle point cloud data based on the depth camera internal parameters and the external parameters between the depth camera and the robot; S3: Update the grid state according to the point cloud data, and update the occupied grid map according to the grid state in the local range after the traversal is completed; S4: Based on the position offset, the index offset cache, and the original occupancy status, update the occupancy status within the local range of the current position; step S4 includes the following sub-steps: S41: When the robot position changes, the offset between the robot's current actual position and the previous position is calculated, divided by the map resolution, and added to the previous index offset cache to obtain the actual index offset of the local grid map; S42: Update the occupancy status within the local range of the current position. First, initialize a new local occupancy grid map, then traverse the original local grid map, and calculate the position of the original map in the new map based on the actual index offset. If the position is still within the local range of the current robot, assign the original occupancy probability to the grid at the corresponding position in the new map. S5: After the occupancy status update in the local range is completed, the robot's index offset cache is updated.

2. A method for constructing a local obstacle map of a robot according to claim 1, characterized in that: Step S1 is as follows: With the robot as the center point, an initial local occupancy grid map is created with a preset size range to store the occupancy status of each local relative position in the three-dimensional space, and each grid cell is assigned an initial value of the unknown state. At the same time, an index offset cache in the X, Y, and Z axes is defined to record tiny offsets that cannot be rounded off during position changes.

3. A method for constructing a local obstacle map of a robot according to claim 1, characterized in that: Step S2 is specifically as follows: through the depth camera projection model, the points on the image coordinate system are projected to the depth camera coordinate system, and then based on the posture of the depth camera, the points on the depth camera coordinate system are projected to the world coordinate system, thereby converting the depth information into three-dimensional space point cloud data in the world coordinate system.

4. A method for constructing a local obstacle map of a robot according to claim 3, characterized in that: Step S3 includes the following sub-steps: S31: traverse the point cloud data obtained in step S2 to determine whether the location of the point cloud data is within the range of the local map to be updated; S32: After the traversal is completed, it is determined whether there is an obstacle in the current grid according to the judgment result of step S31.

5. A method for constructing a local obstacle map of a robot according to claim 4, characterized in that: Step S31 specifically involves traversing the point cloud data obtained in step S2. If the location of the point cloud data is within the local map range that needs to be updated, a hit is assigned at the corresponding location. Otherwise, an idle is assigned at the intersection of the local map boundary and the ray. Then, within the local map range, starting from the end point of the ray toward the camera point, an idle is assigned to each intermediate point.

6. A method for constructing a local obstacle map of a robot according to claim 4, characterized in that: Step S32 is specifically as follows: After the traversal is completed, the probability that the current grid is an obstacle is judged based on the number of hits and idle times of each grid: if the number of hits is greater than the number of idle times, the occupancy probability of the current grid is increased; otherwise, the occupancy probability of the current grid is reduced. Then, the occupancy probability of the current grid is judged. If it is higher than the preset threshold, it is considered that there is an obstacle in the current grid; otherwise, it is considered that there is no obstacle in the current grid.

7. A method for constructing a local obstacle map of a robot according to claim 4, characterized in that: If there are multiple depth cameras, the data from the multiple depth cameras are fused, and the grid occupancy status and grid map are updated according to steps S2 and S3.

8. A method for constructing a local obstacle map of a robot according to claim 1, characterized in that: Step S5 is specifically as follows: after the occupancy status update is completed in the local range, the index offset cache is reassigned and updated to the actual index offset minus the actual index offset after rounding off.

9. A robot local obstacle map construction device, characterized in that: include: Multiple depth cameras for acquiring omnidirectional depth data; a central processing module, which processes the depth data and constructs an obstacle map using the robot local obstacle map construction method according to any one of claims 1 to 8, and controls the robot movement based on the map information and task information; The robot body is used to carry sensors and execute motion instructions issued by the central processing module.

Citation Information

Patent Citations

  • Multi-sensor data fusion algorithm based on SLAM mapping

    CN115031752A

  • Local point cloud map updating and maintaining method and device, moving tool and storage medium

    CN115269763A