Map updating method, device, system, electronic device and storage medium

By obtaining the initial pose and sensor data of the robot, calculating the global pose and map matching scores, judging scene changes and updating the local map, the problem of inaccurate poses caused by dynamic areas in the map constructed by SLAM technology is solved, and the accuracy and efficiency of map updates are improved.

CN113932790BActive Publication Date: 2025-03-28YUANLI JUHE (CHONGQING) ROBOTICS TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111022563.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-01
Publication Date
2025-03-28
Estimated Expiration
2041-09-01

AI Technical Summary

Technical Problem

Dynamic changes in certain areas of the map built by SLAM technology cause the robot to fail to obtain accurate positioning, affecting the normal operation of the robot.

Method used

By obtaining the initial pose and sensor data of the robot in the current area, calculating the global pose and map matching scores, judging scene changes and updating the local map to ensure pose accuracy.

Benefits of technology

Improve the accuracy and efficiency of map updates, reduce the cost of manual composition, and ensure that the robot can work normally in a dynamic environment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113932790B_ABST
    Figure CN113932790B_ABST
Patent Text Reader

Abstract

The present application provides a map updating method, device, system, electronic device and computer-readable storage medium, wherein the method comprises: obtaining the initial posture and sensor data of the robot in the current area; obtaining the global posture and map matching score of the robot according to the initial posture, the sensor data and the global map; determining whether the scene of the current area has changed according to the global posture or the map matching score; if the scene of the current area has changed, updating the local map corresponding to the current area. The implementation of the embodiments of the present application can solve the problem that the robot cannot obtain the accurate posture due to the dynamic change of certain areas in the map constructed by SLAM technology in the prior art, and can improve the accuracy and update efficiency of map updates and reduce the cost of manual composition.
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 map updating, and in particular to a map updating method, device, system, electronic device and computer-readable storage medium. Background Art

[0002] Simultaneous localization and mapping (SLAM) is a key technology for realizing truly autonomous mobile robots. Laser navigation based on SLAM is one of the important development trends. A robot can only work properly in an actual scene if it obtains the correct posture. When obtaining the posture, the robot needs the map constructed by SLAM technology to provide the posture standard (the posture standard of the robot refers to the relative relationship of the robot relative to a certain coordinate origin, and the map constructed by SLAM technology provides the coordinate origin). The map constructed by SLAM technology can provide the global posture in real time and eliminate the accumulated error. However, in actual applications, some scenes in the map constructed by SLAM technology are constantly changing with the growth of time, resulting in the robot being unable to obtain accurate matching posture in this area (that is, the matching of the current scene and the map), and even the posture accuracy of the robot in this dynamic area does not meet the application requirements, resulting in the robot being unable to work properly. Summary of the invention

[0003] The purpose of the embodiments of the present application is to provide a map updating method, device, system, electronic device and computer-readable storage medium, which solves the problem in the prior art that the robot cannot obtain accurate posture due to dynamic changes in certain areas in the map constructed by SLAM technology.

[0004] In a first aspect, an embodiment of the present application provides a map updating method, the method comprising:

[0005] Get the robot's initial position and sensor data in the current area;

[0006] Obtaining a global pose and a map matching score of the robot according to the initial pose, the sensor data and the global map;

[0007] Determining whether the scene in the current area has changed according to the global pose or the map matching score;

[0008] If the scene in the current area changes, the local map corresponding to the current area is updated.

[0009] In the above implementation process, the robot's initial posture and sensor data in the current area are obtained, and then the robot's global posture and map matching score are obtained, and finally the robot's own local map is updated according to the changes in the scene. This can solve the problem that the robot cannot obtain accurate posture due to dynamic changes in certain areas of the map constructed by SLAM technology in the prior art, improve the accuracy and efficiency of map updates, and reduce the cost of manual map composition.

[0010] Further, determining whether the scene of the current area has changed according to the global pose or the map matching score includes:

[0011] Determining whether the difference between the global pose and the initial pose is less than a pose threshold, or determining whether the map matching score is greater than a map threshold;

[0012] If the difference between the global pose and the initial pose is smaller than a pose threshold, or if the map matching score is greater than a map threshold, it is determined that the scene of the current area has changed.

[0013] In the above implementation process, whether the scene in the current area has changed can be determined based on the difference between the global pose and the initial pose, or the map matching score, thereby improving the accuracy and effectiveness of scene change determination.

[0014] Further, obtaining the global posture and map matching score of the robot according to the initial posture, the sensor data and the global map includes:

[0015] Obtaining a relative relationship between the sensor data and the global map, and the map matching score;

[0016] The global posture of the robot is obtained according to the initial posture and the relative relationship.

[0017] In the above implementation process, the map matching score and the global position and posture of the robot can be obtained through the matching process of sensor data and the global map.

[0018] Further, the updating of the local map corresponding to the current area includes:

[0019] If there is no local map corresponding to the current area, construct a new local map corresponding to the current area according to the global pose and the sensor data;

[0020] If a local map corresponding to the current area exists, the local map corresponding to the current area is updated according to the global pose and the sensor data.

[0021] In the above process, whether a new local map corresponding to the current area exists or the local map corresponding to the current area is determined to be updated, thereby achieving flexibility in map updating and improving accuracy in map updating.

[0022] Furthermore, the method further comprises:

[0023] The updated local map corresponding to the current area is sent to the server.

[0024] In the above implementation process, a new local map or an updated local map is sent to the server so that the server can update the global map in the server according to the updated local map, thereby achieving synchronization between the robot's local map and the server's global map.

[0025] Furthermore, the method further comprises:

[0026] When the number of times the local map corresponding to the current area is updated reaches a preset value, the updated local map is sent to the server.

[0027] In the above implementation process, whether to send the updated local map to the server can be determined according to the number of times the local map is updated, which can improve the accuracy of map updating and reduce the amount of data received by the server for updating the map.

[0028] Furthermore, obtaining the initial position of the robot in the current area includes:

[0029] Obtaining the global position of the robot at the last moment;

[0030] Obtaining a change in the current odometer of the robot;

[0031] The initial posture of the robot is obtained according to the global posture at the last moment and the change of the current odometer.

[0032] In the above process, by obtaining the global posture of the robot at the last moment and the change of the current odometer, the initial posture of the robot can be accurately and quickly obtained.

[0033] In a second aspect, an embodiment of the present application further provides a map updating method, the method comprising:

[0034] Receive the local map sent by the robot;

[0035] If the area corresponding to the local map in the global map is an updateable area, the area is updated in the global map according to the local map.

[0036] In the above implementation process, local maps sent by a single or multiple robots are received, and the global map is updated according to whether there is an updateable area in the local map. In this process, the local map sent by the receiving robot is the local map updated by the robot itself, which can improve the accuracy and efficiency of map updates and reduce the cost of manual map composition.

[0037] Furthermore, if the area corresponding to the local map in the global map is an updateable area, the update flag of the area corresponding to the local map is increased by 1;

[0038] The updating of the area in the global map according to the local map comprises:

[0039] If the value of the update flag of the area is greater than an update threshold, the area is updated in the global map according to the local map.

[0040] In the above implementation process, whether to update the map can be determined based on the value of the update mark of the area, which can reduce the situation where a single robot mistakenly sends update information and causes incorrect map updates, and can further enable multiple robots to jointly update a certain area.

[0041] Further, updating the area in the global map according to the local map includes:

[0042] Determine the value corresponding to each grid in the local map;

[0043] The region is updated in the global map according to the value corresponding to each grid.

[0044] In the above implementation process, updating the area in the global map according to the value corresponding to each grid can reduce the amount of data for map update and improve the efficiency of map update.

[0045] Further, determining the value corresponding to each grid in the local map includes:

[0046] According to the values ​​corresponding to each grid in the local map corresponding to the area received multiple times, an updated value corresponding to each grid in the area in the updated global map is determined.

[0047] In the above implementation process, whether the area needs to be updated can be determined based on the values ​​corresponding to each grid received multiple times, thereby improving the accuracy and effectiveness of the area update determination.

[0048] Furthermore, the method further comprises:

[0049] The updated value corresponding to each grid in the area is sent to the robot.

[0050] In the above implementation process, only the update value of each grid in the area that needs to be updated is sent to each robot in the area. All robots can update the local map according to the received update value of the grid, completing the map update of multiple robots. Figure 1 This can replace the transmission of the entire updated map, reduce the amount of transmitted data, and improve transmission efficiency.

[0051] In a third aspect, an embodiment of the present application further provides a map updating device, the device comprising:

[0052] The acquisition module is used to obtain the initial position and sensor data of the robot in the current area;

[0053] A matching module, used for obtaining a global pose and a map matching score of the robot according to the initial pose, the sensor data and the global map;

[0054] A determination module, configured to determine whether the scene in the current area has changed according to the global pose or the map matching score;

[0055] The updating module is used to update the local map corresponding to the current area if the scene of the current area changes.

[0056] In the above implementation process, the robot's initial posture and sensor data in the current area are obtained, and then the robot's global posture and map matching score are obtained, and finally the robot's own local map is updated according to the changes in the scene. This can solve the problem that the robot cannot obtain accurate posture due to dynamic changes in certain areas of the map constructed by SLAM technology in the prior art, improve the accuracy and efficiency of map updates, and reduce the cost of manual map composition.

[0057] In a fourth aspect, an embodiment of the present application further provides a map updating device, the device comprising:

[0058] A receiving module, used for receiving a local map sent by the robot;

[0059] An updating module is used to update the area in the global map according to the local map if the area corresponding to the local map in the global map is an updateable area.

[0060] In the above implementation process, the local map sent by a single or multiple robots is received, and the global map is updated according to whether there is an updateable area in the local map. In this process, the local map sent by the receiving robot is the local map updated by the robot itself, which can improve the accuracy and efficiency of map updating and reduce the cost of manual composition.

[0061] In a fifth aspect, the embodiment of the present application further provides a map updating system, including:

[0062] A robot, configured to execute the map updating method described in the first aspect; and

[0063] The server is used to execute the map updating method described in the second aspect.

[0064] In the above implementation process, the map update system may include a robot and a server. The robot may implement the map update method of the first aspect, and the server may implement the map update method of the second aspect. By obtaining the initial posture and sensor data of the robot in the current area, the global posture and map matching score of the robot are obtained, and finally the local map of the robot itself is updated according to the changes in the scene. The robot sends the updated local map to the server, and the server receives the local maps sent by a single or multiple robots, and updates the global map according to whether there are updateable areas in the local map. The problem that the robot cannot obtain accurate posture due to dynamic changes in certain areas of the map constructed by SLAM technology in the prior art can be solved, the accuracy and efficiency of map updates can be improved, and the cost of manual composition can be reduced.

[0065] In a sixth aspect, an embodiment of the present application further provides an electronic device, comprising a memory and a processor, wherein the memory is used to store a computer program, and the processor runs the computer program to enable the electronic device to execute the map update method described in the first aspect, or the map update method described in the second aspect.

[0066] In the seventh aspect, an embodiment of the present application further provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the map updating method described in the first aspect or the map updating method described in the second aspect.

[0067] In an eighth aspect, an embodiment of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the map updating method described in the first aspect or the map updating method described in the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0068] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for use in the embodiments of the present application will be briefly introduced below. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0069] Figure 1 A flowchart of a map updating method provided in an embodiment of the present application;

[0070] Figure 2 A schematic diagram of the process of obtaining the initial posture and sensor data of the robot in the current area in an embodiment of the present application;

[0071] Figure 3 A schematic diagram of the structure of a map updating device provided in an embodiment of the present application;

[0072] Figure 4 A flowchart of another map updating method provided in an embodiment of the present application;

[0073] Figure 5 This is a schematic diagram of a non-updated area in a local map in an embodiment of the present application;

[0074] Figure 6 A schematic diagram of the structure of another map updating device provided in an embodiment of the present application;

[0075] Figure 7 A schematic diagram of the structural composition of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0076] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.

[0077] It should be noted that similar reference numerals and letters represent similar items in the following drawings, so once an item is defined in one drawing, it does not need to be further defined and explained in subsequent drawings. At the same time, in the description of this application, the terms "first", "second", etc. are only used to distinguish the description and cannot be understood as indicating or implying relative importance.

[0078] The existing map updating method is mainly achieved by manually reconstructing a new map. At the same time, the work site relies on the map created by SLAM technology, which requires replanning the path and drawing the work site, and the accuracy cannot be guaranteed. In addition, the existing technology has some areas in the map constructed by SLAM technology. Dynamic changes make the robot unable to obtain accurate posture, and the accuracy and efficiency of map update cannot be guaranteed.

[0079] Simultaneous Localization And Mapping (SLAM) usually refers to a system that collects and calculates various sensor data on a robot or other carrier to generate positioning and scene map information of its own position and posture. SLAM technology is critical to the action and interaction capabilities of robots or other intelligent entities, and represents the foundation of the above capabilities: knowing where you are, what the surrounding environment is like, and then knowing how to act autonomously next. It has a wide range of applications in autonomous driving, service robots, drones, augmented reality (AR) / virtual reality (VR) and other fields.

[0080] It should be noted that the various defects existing in the technical solutions in the above-mentioned prior art are the results obtained by the inventor after careful practical research. Therefore, the discovery process of the above-mentioned problems and the solutions proposed in the embodiments of the present application below for the above-mentioned problems should all be the contributions made by the inventor to the present application in the process of realizing the present application.

[0081] In response to the above-mentioned problems in the prior art, the present application provides a map updating method, device, system, electronic device and computer-readable storage medium.

[0082] Embodiment 1

[0083] See also Figure 1 , an embodiment of the present application provides a map updating method, the method comprising:

[0084] S11, obtaining the initial position and sensor data of the robot in the current area;

[0085] S12, obtaining the robot's global posture and map matching score according to the initial posture, sensor data and the global map;

[0086] S13, determining whether the scene in the current area has changed according to the global posture or the map matching score;

[0087] S14: If the scene in the current area changes, update the local map corresponding to the current area.

[0088] In the embodiments of the present application, the global posture refers to the posture of the robot in the global map, and the initial posture refers to the initial posture of the robot in the current area when the robot is started. The robot's sensor can be a positioning sensor, which can include but is not limited to a variety of sensors such as laser radar and vision. In the embodiments, a laser radar sensor is used as the robot's positioning sensor. Specifically, a two-dimensional laser sensor is used to obtain sensor data. The distance information between the robot and the obstacle in a certain environment can be directly obtained through laser scanning ranging. Its main working principle is to emit laser through a rotating reflector and measure the distance by measuring the time difference between the emitted light and the reflected light from the surface of the object. Laser radar has the advantages of high measurement accuracy, good directionality, and no interference from ambient light.

[0089] The map matching score refers to the degree of match between sensor data and the global map. Specifically, the robot can obtain laser scanning distance data within the scanning range of the two-dimensional laser sensor (scanning at a certain frequency within a certain angle range), and map the obtained laser scanning distance data on the global map (grid map) to obtain the map matching score.

[0090] Furthermore, if Figure 2 As shown, S11 includes:

[0091] S111, obtaining the global position and posture of the robot at the last moment;

[0092] S112, obtaining the change of the current odometer of the robot;

[0093] S113, obtaining the initial posture of the robot according to the global posture at the last moment and the change of the current odometer.

[0094] Further, S112 includes:

[0095] Get the linear velocity and angular velocity of the robot;

[0096] Get the current odometer change based on linear velocity and angular velocity.

[0097] Specifically, obtain the global position of the robot at the last moment And obtain the change of the robot's current odometer, where the linear velocity is obtained by the robot's encoder, and the angular velocity is obtained by the robot's gyroscope. The linear velocity and angular velocity are pre-integrated to obtain t i-1 to i The change in odometer Further according to Get the initial position of the robot Optionally, the encoder may be a wheel encoder.

[0098] S12 further comprises:

[0099] Obtain the relative relationship between sensor data and the global map, as well as the map matching score;

[0100] The global pose of the robot is obtained based on the initial pose and relative relationship.

[0101] The sensor data is acquired by the robot's two-dimensional laser sensor. The two-dimensional laser sensor is a sensor used to acquire two-dimensional plane information and to detect two-dimensional plane contour information of the surrounding environment. The type of laser sensor used in the embodiments of the present application is not limited.

[0102] Optionally, after obtaining the sensor data of the robot, the sensor data may be subjected to voxel filtering (downsampling) processing to obtain the filtered sensor data. Downsampling the sensor data may increase the rate of subsequent matching. Specifically, the sensor data may be subjected to downsampling processing by a voxel filter.

[0103] Furthermore, by matching the sensor data with the global map, the relative relationship between the sensor data and the global map, as well as the map matching score, can be obtained. Specifically, in this embodiment, the Correlation Scan Match (CSM) algorithm can be used for matching. The CSM algorithm subdivides the environmental resolution, and the accuracy is limited by the resolution. However, this method can reduce the amount of calculation through acceleration strategies, such as the branch and bound method. After obtaining the relative relationship between the sensor data and the global map, since the global map itself carries the information of the global posture, the global posture of the robot can be obtained according to the initial posture and the relative relationship.

[0104] Furthermore, the global position and map matching score of the robot are optimized by trilinear interpolation to obtain the final global position and map matching score of the robot.

[0105] The trilinear interpolation optimization used in the embodiments of the present application is a method of linear interpolation on a tensor product grid of three-dimensional discrete sampled data. This tensor product grid may have any non-overlapping grid points in each dimension. This method linearly approximates the value of a point (x, y, z) on a local rectangular prism through the data points on the grid. Trilinear interpolation is often used in fields such as numerical analysis, data analysis, and computer graphics.

[0106] Further, in S13, it is determined whether the difference between the global pose and the initial pose is less than a pose threshold, or it is determined whether the map matching score is greater than a map threshold;

[0107] If the difference between the global pose and the initial pose is less than the pose threshold, or the map matching score is greater than the map threshold, it is determined that the scene in the current area has changed.

[0108] Specifically, determine whether the difference between the global pose and the initial pose (position deviation value + angle deviation value) is less than the pose threshold. If the difference is less than the preset threshold, it is determined that the scene in the current area has changed. Alternatively, in a specific implementation, the range of the obtained map matching score is usually 0-1, and the pre-set map threshold can be 0.5. When the map matching score is greater than 0.5, it is determined that the scene in the current area has changed.

[0109] In S14, if the scene in the current area changes, updating the local map corresponding to the current area further includes:

[0110] If there is no local map corresponding to the current area, a new local map corresponding to the current area is constructed based on the global posture and sensor data;

[0111] If there is a local map corresponding to the current area, update the local map corresponding to the current area according to the global pose and sensor data.

[0112] In the specific implementation, the construction and update of the local map are both carried out by static binary Bayesian filtering. The input data is: pose (initial pose) + scan (sensor data) + local_map (local map, if the first local_map is empty), and the output data is: local_map (new local map corresponding to the current area). The local map has the attributes of the global pose, which is used to distinguish the submaps of other areas.

[0113] After updating the local map corresponding to the current area, it also includes:

[0114] The updated local map corresponding to the current area is sent to the server.

[0115] In the present application, sending the updated map of the local area to the server instead of sending the entire global map to the server can reduce the data transmission between the robot and the server and improve the transmission efficiency.

[0116] Specifically, before sending, the new local map or the updated local map corresponding to the current area is serialized according to the Protobuf protocol to obtain a local map with a serialized data structure; and then the local map with a serialized data structure is sent to the server through the GRPC communication method.

[0117] Protobuf (Google Protocol Buffers) is a tool library for efficient protocol data exchange format (similar to JSON) provided by Google. It is a platform-independent, language-independent, scalable, lightweight and efficient serialized data structure protocol that can be used for network communication and data storage. Compared with JSON, Protobuf has higher conversion efficiency, and its time efficiency and space efficiency are 3-5 times that of JSON. The data after Protobuf serialization is compressed, which can reduce the amount of data transmission and further improve the transmission efficiency.

[0118] GRPC is a language-independent, high-performance remote procedure call (RPC) framework. Using the GRPC communication protocol, data such as local maps based on the Protobuf protocol serialized data structure can be quickly sent to the server.

[0119] Before sending, record the number of times a new local map is built or the number of times a local map corresponding to the current area is updated. When the local map is updated, add 1 to the area update mark corresponding to the local map. If the number of update marks reaches a preset threshold, send the new local map or the updated local map corresponding to the current area to the server. Sending a local map to the server only when the number of updates of a local area reaches a preset value can eliminate temporary scene changes in a certain area, which is conducive to enhancing the accuracy of the local map.

[0120] It should be noted that, in this embodiment, there may be one or more robots, and the number of updates is independent of the number of robots. The local map corresponding to the same area may be updated by the same or different robots.

[0121] Embodiment 2

[0122] In order to execute the method corresponding to the above embodiment 1 and achieve the corresponding functions and technical effects, a map updating device is provided below. Figure 3 As shown, the map updating device includes:

[0123] An acquisition module 31 is used to acquire the initial position and sensor data of the robot in the current area;

[0124] A matching module 32, for obtaining a global pose and a map matching score of the robot according to the initial pose, sensor data and the global map;

[0125] A determination module 33, used to determine whether the scene in the current area has changed according to the global posture or the map matching score;

[0126] The updating module 34 is used to update the local map corresponding to the current area if the scene in the current area changes.

[0127] Furthermore, the acquisition module 31 is also used to obtain the global posture of the robot at the last moment; obtain the change of the current odometer of the robot; and obtain the initial posture of the robot according to the global posture at the last moment and the change of the current odometer.

[0128] Furthermore, the matching module 32 is also used to obtain the relative relationship between the sensor data and the global map, as well as the map matching score; and obtain the global posture of the robot according to the initial posture and the relative relationship.

[0129] The matching module 32 is also used to obtain the relative relationship between the sensor data and the global map, as well as the map matching score; and obtain the global posture of the robot according to the initial posture and the relative relationship.

[0130] The determination module 33 is also used to determine whether the difference between the global pose and the initial pose is less than the pose threshold, or to determine whether the map matching score is greater than the map threshold; if the difference between the global pose and the initial pose is less than the pose threshold, or the map matching score is greater than the map threshold, it is determined that the scene in the current area has changed.

[0131] Furthermore, the update module 34 is also used to construct a new local map corresponding to the current area according to the global posture and sensor data if there is no local map corresponding to the current area; if there is a local map corresponding to the current area, update the local map corresponding to the current area according to the global posture and sensor data.

[0132] Furthermore, the device further includes: a sending module (not shown in the figure) for sending a new local map or an updated local map corresponding to the current area to a server. In a specific implementation, the sending module is also used to send the updated local map to the server when the number of times the local map corresponding to the current area is updated reaches a preset value.

[0133] The map updating device of the second embodiment can be applied to but not limited to robots, and can implement the map updating method of the first embodiment. The optional items in the first embodiment are also applicable to this embodiment, and will not be described in detail here. The rest of the content of this embodiment can refer to the content of the first embodiment, and will not be repeated in this embodiment.

[0134] Embodiment 3

[0135] The present application also provides a map updating method, which can be applied to but not limited to a server, such as Figure 4 As shown, the method includes:

[0136] S31, receiving a local map sent by a robot; for example, receiving local maps sent by multiple robots respectively;

[0137] S32: If the area corresponding to the local map in the global map is an updateable area, update the area in the global map according to the local map.

[0138] Optionally, the method may further include: sending the updated area to the robot.

[0139] In a specific implementation, certain areas can be pre-set in the global map as non-update areas. If the area corresponding to the received local map is a non-update area, the area will not be updated in the global map based on the local map; if the area corresponding to the received local map is an update area, the area will be updated in the global map based on the local map. This ensures that static areas (i.e., non-update areas) will not be updated, avoids the occurrence of ultra-high frequency large dynamic updates being erroneous, and improves the robustness of the updated map.

[0140] It should be noted that, in this embodiment, there may be one or more robots, and the received local maps may be sent by the same robot or by different robots.

[0141] Compared with the method of updating the map on the robot, detecting and updating the map through the server can avoid the computing load of a single robot due to map updates, thereby ensuring that the performance of the robot will not be affected by the map updates.

[0142] In a specific implementation, if the area corresponding to the local map in the global map is an updateable area, the update flag of the area corresponding to the local map is increased by 1;

[0143] S32 specifically includes:

[0144] If the value of the update flag of a region is greater than the update threshold, the region is updated in the global map according to the local map.

[0145] In the above implementation process, whether to update the map can be determined based on the value of the update mark of the area, which can reduce the situation of incorrect map updates and further enable multiple robots to jointly update and determine a certain area.

[0146] That is to say, the map corresponding to a certain area is updated only after the scene change in a certain area is observed multiple times, which ensures the accuracy of the updated map. This can be the case when the same robot observes the scene change in a certain area multiple times, or when multiple robots observe the scene change in a certain area multiple times.

[0147] In S32, the value corresponding to each grid in the local map is first determined; and the region is updated in the global map according to the value corresponding to each grid. In the embodiment of the present application, the value corresponding to each grid is an obstacle probability value corresponding to each grid, and the obstacle probability value is used to indicate the possibility that the grid is occupied by an obstacle.

[0148] In the specific implementation, the local map is converted to the global map according to the conversion relationship between the local map and the global map, and it is determined whether the area corresponding to the local map in the global map is within the set non-update area, such as Figure 5 As shown in the figure, two non-updated areas are shown. If the area corresponding to the local map in the global map falls entirely into the two non-updated areas shown in the figure, no update is performed; if the area corresponding to the local map in the global map partially falls into the two non-updated areas shown in the figure, the non-updated area in the local map is removed (if the grid in the area is in the non-updated area, the obstacle probability value corresponding to the grid is assigned to unknown and removed).

[0149] Furthermore, based on the values ​​corresponding to each grid in the local map corresponding to the region received multiple times, an updated value corresponding to each grid in the region in the updated global map is determined.

[0150] After marking the area corresponding to the local map, if the value (number of times) of the update mark of a certain area is greater than the update threshold (the update threshold can be set according to the implementation situation, usually set to 5), it is also possible to: perform consistency judgment on the grids of the area corresponding to the local map that needs to be updated. In specific implementations, the values ​​corresponding to each grid in the local map corresponding to a certain area may be received multiple times, so the local map is traversed and the global position of the grids in the area corresponding to the local map is updated. Figure 1 Correspondingly, for each grid, find its mean (updated value) and mean covariance.

[0151] Among them, the mean i represents the number of traversals; variance The mean covariance is the square root of the variance. The mean covariance of the entire area is calculated (all covariances are averaged). If the mean covariance of the area is less than a set value (the set value can be set to 0.5 according to the specific implementation situation), it is considered that the judgment that the area needs to be updated is consistent.

[0152] After updating the area in the global map according to the local map, the method further includes: sending the update value corresponding to each grid in the area to the robot. The robot here can be understood as all robots in the area corresponding to the local map, which can be one or more. Specifically, only the update value of each grid in the area to be updated is sent to each robot in the area, and all robots can update the local map according to the received update value of the grid, completing the local map of multiple robots. Figure 1 This can replace the transmission of the entire updated map, reduce the amount of data transmitted, and improve transmission efficiency. Similarly, the update value of the grid can be serialized according to the Protobuf protocol to obtain the serialized and compressed update value, which can be sent to each robot through the GRPC communication method to further improve transmission efficiency.

[0153] Embodiment 4

[0154] In order to execute the method corresponding to the above-mentioned embodiment 3 and achieve the corresponding functions and technical effects, a map updating device is provided below. Figure 6 As shown, the map updating device includes:

[0155] A receiving module 61, used for receiving a local map sent by the robot;

[0156] The updating module 62 is configured to update the area in the global map according to the local map if the area corresponding to the local map in the global map is an updateable area.

[0157] Furthermore, the update module 62 is also used to increase the update mark of the area corresponding to the local map by 1 if the area corresponding to the local map in the global map is an updateable area; if the value of the update mark of the area is greater than the update threshold, update the area in the global map according to the local map.

[0158] The updating module 62 is also used to determine the value corresponding to each grid in the local map; and update the area in the global map according to the value corresponding to each grid.

[0159] In one embodiment, the updating module 62 is further configured to determine an update value corresponding to each grid of the region in the updated global map according to the values ​​corresponding to each grid in the local map corresponding to the region received multiple times.

[0160] The device also includes: a sending module, which is used to send the update value corresponding to each grid in the area to the robot.

[0161] The map updating device of the fourth embodiment can be applied to but not limited to the server, and can implement the map updating method of the third embodiment. The optional items in the third embodiment are also applicable to this embodiment, and will not be described in detail here. The rest of the content of this embodiment can refer to the content of the third embodiment, and will not be repeated in this embodiment.

[0162] Embodiment 5

[0163] The present application also provides a map updating system, including:

[0164] A robot, configured to execute the map updating method described in the first embodiment; and

[0165] The server is used to execute the map updating method described in the third embodiment.

[0166] The options in the above-mentioned embodiments 1 and 3 are also applicable to this embodiment, and will not be described in detail here. The rest of the content of this embodiment can refer to the content of the above-mentioned embodiment 3, and will not be described in detail in this embodiment.

[0167] Embodiment 6

[0168] An embodiment of the present application provides an electronic device, including a memory and a processor, wherein the memory is used to store a computer program, and the processor runs the computer program to enable the electronic device to execute the map updating method of the first embodiment, or execute the map updating method of the third embodiment.

[0169] Optionally, the above-mentioned electronic device may be a server.

[0170] See also Figure 7 , Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. The electronic device may include a processor 71, a communication interface 72, a memory 73 and at least one communication bus 74. The communication bus 74 is used to realize direct connection and communication between these components. The communication interface 72 of the device in the embodiment of the present application is used to communicate signaling or data with other node devices. The processor 71 may be an integrated circuit chip with signal processing capabilities.

[0171] The processor 71 can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor 71 can also be any conventional processor, etc.

[0172] The memory 73 may be, but is not limited to, a random access memory (RAM), a read only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable read-only memory (EEPROM), etc. The memory 73 stores computer-readable instructions. When the computer-readable instructions are executed by the processor 71, the device may execute the various steps involved in the method of the first embodiment above, or execute the various steps involved in the method of the third embodiment above.

[0173] Optionally, the electronic device may further include a storage controller and an input / output unit. The memory 73, the storage controller, the processor 71, the peripheral interface, and the input / output unit are electrically connected to each other directly or indirectly to achieve data transmission or interaction. For example, these components may be electrically connected to each other via one or more communication buses 74. The processor 71 is used to execute executable modules stored in the memory 73, such as software function modules or computer programs included in the device.

[0174] The input and output unit is used to provide users with the task creation and to create a start optional time period or preset execution time for the task to realize the interaction between the user and the server. The input and output unit can be, but is not limited to, a mouse and a keyboard.

[0175] Understandably, Figure 7 The structure shown is for illustration only. The electronic device may also include Figure 7 More or fewer components as shown, or with Figure 7 Different configurations shown. Figure 7Each component shown in the figure can be implemented by hardware, software or a combination thereof.

[0176] In addition, an embodiment of the present application further provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the map updating method of the first embodiment, or implements the map updating method of the third embodiment.

[0177] An embodiment of the present application further provides a computer program product, which includes a computer program. The computer program runs on a computer and is executed by a processor to implement the method described in the above-mentioned embodiment 1 or embodiment 3.

[0178] In several embodiments provided in the present application, it should be understood that the disclosed devices and methods can also be implemented in other ways. The device embodiments described above are merely schematic. For example, the flowcharts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the devices, methods and computer program products according to multiple embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, a program segment or a part of a code, and the module, a program segment or a part of a code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.

[0179] In addition, the functional modules in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist separately, or two or more modules may be integrated to form an independent part.

[0180] If the functions are implemented in the form of software function modules and sold or used as independent products, they 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 embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk or an optical disk.

[0181] The above description is only an embodiment of the present application and is not intended to limit the scope of protection of the present application. For those skilled in the art, the present application may have various changes and variations. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application should be included in the scope of protection of the present application. It should be noted that similar reference numerals and letters represent similar items in the following drawings, so once an item is defined in one drawing, it does not need to be further defined and explained in the subsequent drawings.

[0182] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

[0183] It should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.

Claims

1. A map updating method, characterized in that: The method comprises: Acquire the initial posture and sensor data of the robot in the current area; the sensor data includes laser scanning distance data; wherein acquiring the initial posture of the robot in the current area includes: acquiring the global posture of the robot at the last moment; acquiring the change of the current odometer of the robot; obtaining the initial posture of the robot according to the global posture at the last moment and the change of the current odometer; Obtaining the global posture and map matching score of the robot according to the initial posture, the sensor data and the global map; the map matching score refers to the degree of matching between the sensor data and the global map; wherein obtaining the global posture of the robot according to the initial posture, the sensor data and the global map comprises: matching the sensor data with the global map to obtain the relative relationship between the sensor data and the global map, and obtaining the global posture of the robot according to the initial posture and the relative relationship; Determining whether the scene in the current area has changed according to the global posture; If the scene in the current area changes, update the local map corresponding to the current area; The determining, according to the global posture, whether the scene in the current area has changed includes: Determine whether the difference between the global pose and the initial pose is less than a pose threshold; If the difference between the global pose and the initial pose is less than the pose threshold, it is determined that the scene in the current area has changed; the initial pose refers to the initial pose of the robot in the current area; the global pose refers to the pose of the robot in the global map.

2. The map updating method according to claim 1, characterized in that: The obtaining of the global posture and map matching score of the robot according to the initial posture, the sensor data and the global map comprises: Obtaining a relative relationship between the sensor data and the global map, and the map matching score; The global posture of the robot is obtained according to the initial posture and the relative relationship.

3. The map updating method according to any one of claims 1 to 2, characterized in that: The updating of the local map corresponding to the current area includes: If there is no local map corresponding to the current area, construct a new local map corresponding to the current area according to the global pose and the sensor data; If a local map corresponding to the current area exists, the local map corresponding to the current area is updated according to the global pose and the sensor data.

4. The map updating method according to claim 1, characterized in that: The method further comprises: When the number of times the local map corresponding to the current area is updated reaches a preset value, the updated local map is sent to the server.

5. The map updating method according to any one of claims 1 to 2 and 4, characterized in that: The obtaining of the initial position of the robot in the current area includes: Obtaining the global position of the robot at the last moment; Obtaining the change in the current odometer of the robot; The initial posture of the robot is obtained according to the global posture at the last moment and the change of the current odometer.

6. A map updating method, characterized in that: The method comprises: Receiving a local map sent by the robot; wherein the local map is obtained by the method according to any one of claims 1 to 5; If the area corresponding to the local map in the global map is an updateable area, the area is updated in the global map according to the local map.

7. The map updating method according to claim 6, characterized in that: If the area corresponding to the local map in the global map is an updateable area, the update flag of the area corresponding to the local map is increased by 1; The updating of the area in the global map according to the local map comprises: If the value of the update flag of the area is greater than an update threshold, the area is updated in the global map according to the local map.

8. The map updating method according to claim 7, characterized in that: The updating of the area in the global map according to the local map comprises: Determine the value corresponding to each grid in the local map; The region is updated in the global map according to the value corresponding to each grid.

9. The map updating method according to claim 8, characterized in that: Determining the value corresponding to each grid in the local map includes: According to the values ​​corresponding to each grid in the local map corresponding to the area received multiple times, an updated value corresponding to each grid in the area in the updated global map is determined.

10. The map updating method according to claim 9, characterized in that: The method further comprises: The updated value corresponding to each grid in the area is sent to the robot.

11. A map updating system, characterized in that: include: A robot, configured to execute the map updating method according to any one of claims 1 to 5; as well as, A server, configured to execute the map updating method according to any one of claims 6 to 10.

12. An electronic device, characterized in that: The electronic device comprises a memory and a processor, wherein the memory is used to store a computer program, and the processor runs the computer program to enable the electronic device to execute the map updating method according to any one of claims 1 to 5, or the map updating method according to any one of claims 6 to 10.

13. A computer-readable storage medium, characterized in that: The device stores a computer program, which, when executed by a processor, implements the map updating method according to any one of claims 1 to 5, or the map updating method according to any one of claims 6 to 10.

14. A computer program product, characterized in that The method comprises a computer program, wherein when the computer program is executed by a processor, the map updating method according to any one of claims 1 to 5 or the map updating method according to any one of claims 6 to 10 is implemented.

Citation Information

Patent Citations

  • Robot map difference updating method and equipment

    CN111928866A

  • Map updating method, map updating device and computer readable storage medium

    CN113295176A