Map construction method, device and equipment based on multi-legged robot and medium
By using GPUs for parallel computing and Kalman filtering in a multi-legged robot system, the problem of elevation map offset was solved, achieving faster computing speed and more accurate elevation map updates, thus meeting the needs of real-time movement and navigation of multi-legged robots.
Patent Information
- Application Number
- CN202210827149.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-13
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2042-07-13
AI Technical Summary
In existing technologies, the elevation maps of multi-legged robots are offset due to state estimation errors, and the data processing efficiency using CPUs is low, which cannot meet the requirements for real-time motion and navigation.
Parallel computing using GPUs is employed to acquire point cloud data and robot pose, which are then converted to the robot coordinate system. The height difference is calculated and the elevation map is adjusted. Kalman filtering is used for updating and smoothing to eliminate map misalignment and faults.
It achieves faster computing speed and more accurate elevation map updates, meeting the needs of multi-legged robots for real-time movement and navigation.
Smart Images

Figure CN117433543B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of map construction, for example to a map construction method, device, equipment and medium based on a multi-legged robot. BACKGROUND
[0002] A mobile robot perceives the environment and constructs a map through a sensor. During the movement of the robot, due to the limited sensing range of the sensor, the map is updated in real time with the input of the sensor data and is used for subsequent path planning and navigation tasks. There are various forms of maps, such as a two-dimensional occupancy grid map, which indicates whether each grid is occupied by an obstacle and is usually used for obstacle avoidance and path planning on flat ground. However, for a legged robot, since it usually needs to move on complex outdoor terrain, the occupancy grid map is not suitable. A three-dimensional map requires high computing resources and memory and consumes a large amount of memory. The problem of map deviation caused by state estimation error is solved. In the process of constructing an altitude map, as the robot moves, the sensor measures new data through a camera. A legged robot usually only cares about the accuracy of the local map, so the observation point at the current time is used to update the past altitude map. However, due to inaccurate motion estimation, there is usually a certain deviation in the estimated attitude of the robot between two frames, so there will be misalignment and faults between the estimated altitude maps at the previous and subsequent times. In addition, the existing technology uses a CPU for data processing, which has the problem of low operation efficiency. SUMMARY
[0003] The present application aims to provide a map construction method, device, equipment and medium based on a multi-legged robot, which can solve the problem of altitude map deviation caused by state estimation error and also has faster operation speed.
[0004] To achieve the above-mentioned purpose, the present application provides a map construction method based on a multi-legged robot, comprising:
[0005] Obtaining point cloud data and a robot pose; converting the point cloud data to a robot coordinate system through a GPU to obtain an observation point, and establishing an altitude map according to the robot pose;
[0006] Calculating the height difference between each observation point at the current time and the corresponding position point of the altitude map;
[0007] Based on all the height differences, a height drift error is calculated, and the height drift error is used to adjust the height of the altitude map to obtain a height-adjusted map;
[0008] The height-adjusted map is updated according to the observation point to obtain an updated altitude map, and the updated altitude map is post-processed to obtain a final altitude map.
[0009] Further, before the calculating the height difference between each observation point and the corresponding position point on the altitude map, the method further comprises:
[0010] judging whether the current altitude map is an initial altitude map, and if yes, setting the length, width, resolution and map boundary of a robot local map; the robot local map is a local map of a region where the robot is located in the current altitude map;
[0011] calculating the height value of each cell of the initial altitude map according to the observation points, to obtain a first frame of the altitude map.
[0012] the height adjustment of the altitude map using the height drift error to obtain a height adjustment map, comprising:
[0013] adding the height drift error to the height of the current altitude map to obtain the height adjustment map.
[0014] the updating of the height adjustment map according to the observation points to obtain an updated altitude map, comprising:
[0015] updating the height estimate value and the height estimate value variance of the height adjustment map using a Kalman filtering method;
[0016] obtaining the updated altitude map according to the height estimate value and the height estimate value variance.
[0017] the post-processing of the updated altitude map to obtain a final altitude map, comprising:
[0018] clearing the historical data of the multi-layer region;
[0019] performing smoothing processing on the updated altitude map to obtain the final altitude map.
[0020] the updating of the height estimate value and the height estimate value variance of the height adjustment map using a Kalman filtering method, comprising:
[0021] when the cell of the height adjustment map corresponds to a vertical wall surface, the cell is a wall surface cell;
[0022] counting the total number of observation points in the wall surface cell, and removing the observation points less than the height estimate value in the wall surface cell if the total number of observation points is greater than a total number of observation points threshold;
[0023] recalculating the height estimate value and the height estimate value variance of the wall surface cell.
[0024] The height drift error is calculated based on all the height differences.
[0025] The height drift error is calculated based on all the height differences.
[0026] The application also provides a map construction device based on a multi-legged robot, comprising:
[0027] A data acquisition module is configured to acquire point cloud data and a robot pose.
[0028] A point cloud data conversion module is configured to convert the point cloud data to a robot coordinate system by using a GPU to obtain observation points and establish an elevation map according to the robot pose.
[0029] A height difference calculation module is configured to calculate the height difference between each observation point at the current time and the corresponding position point of the elevation map.
[0030] A height drift error calculation module is configured to calculate a height drift error based on all the height differences.
[0031] A height adjustment module is configured to use the height drift error to perform height adjustment on the elevation map to obtain a height-adjusted map.
[0032] A height-adjusted map updating module is configured to update the height-adjusted map according to the observation points to obtain an updated elevation map.
[0033] A post-processing module is configured to perform post-processing on the updated elevation map to obtain a final elevation map.
[0034] The application also provides a computer device comprising a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the map construction method based on a multi-legged robot and / or the steps of the map construction method based on a multi-legged robot.
[0035] This application also provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements the steps of the map construction method based on a multi-legged robot described in any of the above claims and / or the map construction method based on a multi-legged robot described in any of the above claims. The map construction method based on a multi-legged robot of this application acquires point cloud data and robot pose; converts the point cloud data to the robot coordinate system using a GPU to obtain observation points. An elevation map is built based on the robot pose, and the height difference between each observation point at the current moment and the corresponding position point on the elevation map is calculated. A height drift error is calculated based on all the height differences. The elevation map is adjusted using the height drift error to obtain a height-adjusted map. The height-adjusted map is updated based on the observation points to obtain an updated elevation map. The updated elevation map is post-processed to obtain a final elevation map. As the robot moves, previous maps are updated using the current observation points, and the height drift error is used to compensate for the height of previous elevation maps, ensuring that the elevation map matches the current observation points, thereby solving the problem of misalignment and discontinuity between the estimated elevation maps at different times. Using GPUs for parallel computing is faster than using CPUs, thus meeting the needs of multi-legged robots for real-time movement and navigation. Attached Figure Description
[0036] Figure 1 This is a flowchart illustrating a map building method based on a multi-legged robot, as shown in one embodiment.
[0037] Figure 2 This is a schematic block diagram of a map building device based on a multi-legged robot according to an embodiment;
[0038] Figure 3 This is a schematic block diagram of the structure of a computer device according to one embodiment.
[0039] The realization of the purpose, functional features and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. Detailed Implementation
[0040] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0041] It will be understood by those within the art that, in this specification and in the claims that follow, relative terms are used to describe features that can be understood relative to the particular claim feature under discussion. These relative terms are intended to encompass different positional, structural, and / or functional attributes of the features in addition to the attributes specifically recited in the claims. The specific recitation of these terms will not limit the scope or meaning of the claims or the specification. It will be further understood that the use of relational terms such as first, second, and the like are used to distinguish between two or more features or steps in the specification and claims and are not meant to, nor should they be interpreted to, imply that a particular feature is superior or subordinate to or larger or smaller than another feature or step. It will be further understood that the terms "comprises," "comprising," "includes," and "including" are used inclusively and open- ended and do not exclude the presence of unused, additional, or unrecited features, integers, steps, operations, elements, modules, modules, and / or groups thereof. It will be further understood that the terms "connected," "coupled," or the like, as used in the specification and claims, are used in their broadest sense and can mean either an indirect, direct, wireless, wired, and / or physical connection or coupling. It will be further understood that the term "and / or" as used in the specification and claims includes all possible combinations of the associated listed items, and that the term "or" as used in the specification and claims includes the logical disjunction of the items joined by the term "or." It will be further understood that the terms "comprise," "comprising," "comprises," "include," "including," "includes," "contain," "containing," "contains," "have," "having," "has," "may," "might," and "could" are open-ended linking verbs for purposes of interpreting the scope of the claims and are not intended to exclude the presence of one or more additional features, integers, steps, operations, elements, modules, modules, and / or groups thereof.
[0042] It will be understood by those within the art that, unless otherwise defined, all terms used herein including technical and scientific terms have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the specification and claims and should not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0043] Referring to Figure 1 is a flowchart of a map construction method based on a multi-legged robot according to the present disclosure, comprising:
[0044] S1: Obtain point cloud data and robot pose.
[0045] The point cloud data is obtained by a sensor, and the robot pose is obtained by a real-time positioning and map construction method.
[0046] The robot pose can be obtained by a real-time positioning and map construction method or a visual-inertial odometry system.
[0047] The robot pose includes a three-dimensional direction and a three-dimensional position.
[0048] The point cloud data and the robot pose are obtained at a certain refresh frequency.
[0049] The point cloud data and the robot pose are put into a GPU, and subsequent calculations from converting the point cloud data to the robot coordinate system to obtaining the final elevation map are all performed in the GPU.
[0050] Using a GPU for subsequent parallel computing is more rapid than using a CPU, because most of the subsequent calculations are traversing and iteratively updating each square in the elevation map, which is more in line with the nature of GPU parallel acceleration.
[0051] S2: converting the point cloud data to a robot coordinate system by a GPU to obtain observation points, and establishing an elevation map according to the robot pose.
[0052] The point cloud data is converted to the robot coordinate system for subsequent updating of the map. The robot coordinate system is a local map coordinate system.
[0053] The point cloud data is based on a sensor coordinate system, and the elevation map is based on a robot coordinate system. The point cloud data is converted to the robot coordinate system by the GPU to calculate the height drift error.
[0054] S3: calculating the height difference between each observation point at the current time and the corresponding position point of the elevation map.
[0055] The observation point at the current time is the observation point of the point cloud data.
[0056] The height difference is used for subsequent calculation of the height drift error, and the elevation map is compensated in height using the elevation error.
[0057] The elevation map is based on the robot coordinate system.
[0058] The height difference between each observation point at the current time and the corresponding position point of the elevation map is calculated in the GPU.
[0059] S4: calculating the height drift error based on all the height differences.
[0060] All the height differences can be integrated by averaging, weighted averaging, or other methods, depending on the actual situation.
[0061] During the movement of the robot, due to the positioning error of the robot position, the robot body may drift, and the elevation map calculated based on the robot pose may also drift, resulting in a height drift error.
[0062] The height drift error is calculated in the GPU.
[0063] S5: adjusting the height of the elevation map using the height drift error to obtain a height-adjusted map.
[0064] The height of the current elevation map is added to the height drift error to obtain the height-adjusted map.
[0065] The height of the current elevation map is adjusted in the GPU.
[0066] S6: updating the height adjustment map according to the observation points, to obtain an updated height map.
[0067] updating the height estimation value and the height estimation value variance of the height adjustment map using Kalman filtering method;
[0068] obtaining the updated height map according to the height estimation value and the height estimation value variance.
[0069] detecting which observation points are in each cell of each height map, and finely adjusting the height value and the variance of the cell according to the height value and the variance of the observation points.
[0070] updating the height adjustment map according to the observation points is implemented in GPU, and since GPU has the characteristic of parallel processing, the updating efficiency of the height adjustment map can be improved.
[0071] S7: post-processing the updated height map to obtain a final height map.
[0072] clearing the historical data of the multi-layer region;
[0073] smoothing the updated height map to obtain the final height map.
[0074] If the robot navigates through a multi-layer environment, such as going up and down stairs, the previously estimated map actually located on other layers needs to be cleared.
[0075] In actual application, the filter used for smoothing the updated height map can be a Gaussian filter, or other filters, which is determined according to actual situation, and is not limited here.
[0076] As described above, the map construction method based on the multi-legged robot according to the embodiments of the present application obtains point cloud data and a robot pose; converts the point cloud data to the robot coordinate system through a GPU to obtain observation points. An elevation map is established according to the robot pose, and the height difference between each observation point at the current time and the corresponding position point of the elevation map is calculated. Based on all the height differences, the height drift error is calculated. The height drift error is used to adjust the height of the elevation map to obtain a height-adjusted map. The height-adjusted map is updated according to the observation points to obtain an updated elevation map. The updated elevation map is post-processed to obtain a final elevation map. With the movement of the robot, the previous map is updated with the observation points at the current time, and the height drift error is used to compensate the height of the previous elevation map, so that the elevation map conforms to the observation points at the current time, thereby solving the problem of misalignment and fault between the elevation maps estimated at different times. The parallel calculation using the GPU is more rapid than the CPU, thereby meeting the real-time movement and navigation requirements of the multi-legged robot.
[0077] In one embodiment, the method further comprises:
[0078] If the current elevation map is the initial elevation map, the length, width, resolution and map boundary of the robot local map are set; the robot local map is a local map of the area where the robot is located in the current elevation map.
[0079] The height value of each cell of the initial elevation map is calculated according to the observation points to obtain the first frame of the elevation map.
[0080] The initial elevation map is a map without the length, width, resolution and map boundary of the robot local map, and each cell of the initial elevation map does not have a height value.
[0081] If the point cloud falls in the cell of the initial elevation map, i.e., contains the point cloud data, the average height of all point clouds can be used as the height value of the cell, or the height of all point clouds can be weighted and summed to obtain the height value of the cell by setting the height weight of the point cloud in advance. The method for calculating the height value of the cell in the initial elevation map is determined according to the actual situation, which is not limited here.
[0082] The elevation map is a cell map, which is composed of many cells. Each cell stores its two-dimensional position (x, y) and the elevation value h and the variance For the actual environment where the robot is located, the map boundary and the grid size are specified. The grid size determines the map resolution, and the smaller the grid, the higher the map resolution, and the larger the grid, the lower the map resolution. The user specifies the length, width, resolution and map boundary of the robot local map according to the needs, then interpolates the height value of each grid in the map according to the observation point at the current time, and calculates the height value of each grid in the initial height map The initial height map is manually set to a large initial value.
[0083] As described above, it is judged whether the current height map is the initial height map, and if the current height map is the initial height map, the length, width, resolution and map boundary of the robot local map are set; the robot local map is a local map of the area where the robot is located in the current height map; the height value of each grid in the initial height map is calculated according to the observation point, and the first frame height map is obtained. By setting the length, width, resolution and map boundary of the robot local map, and calculating the height value of each grid in the initial height map according to the observation point, the initialization of the initial height map is realized.
[0084] In one embodiment, the height adjustment map is obtained by adjusting the height of the height map using the height drift error, comprising:
[0085] The height of the current height map is added to the height drift error to obtain the height adjustment map.
[0086] With the movement of the robot, the sensor updates the measurement data at a certain frequency, and the sensor is specifically an Intel Realsense type RGB-D camera. The legged robot usually only cares about the accuracy of the local map, so the observation point at the current time is used to update the past map. However, due to inaccurate motion estimation, there will be a certain deviation in the robot pose estimation between two frames, so it will cause discontinuity of the estimated height map at the previous and subsequent time, resulting in misplacement and fault of the height map. The discontinuity of the estimated height map can be eliminated by height compensation.
[0087] The height drift error is used to adjust the entire height map, that is, the height values of all position points in the height map are added to the height drift error, so that the height map conforms to the observation point at the current time.
[0088] As described above, the height adjustment map is obtained by adjusting the height of the current height map using the height drift error, and the height adjustment map is obtained by adding the height of the current height map to the height drift error for height compensation. The discontinuity of the estimated height map can be eliminated by height compensation.
[0089] In one embodiment, the updating of the height adjustment map according to the observation point to obtain an updated altitude map comprises:
[0090] updating the height estimate value and the height estimate value variance of the height adjustment map using a Kalman filtering method;
[0091] obtaining the updated altitude map according to the height estimate value and the height estimate value variance.
[0092] The formula for updating the height estimate value of the height adjustment map is as follows:
[0093]
[0094] wherein h - is the height estimate value of each grid before updating the altitude map, is the variance of the height estimate value before updating the altitude map, indicating the uncertainty of the height estimate value before updating the altitude map, p is the measurement value of the observation point at the current time, is the variance of the measurement value of the observation point at the current time, indicating the uncertainty of the measurement value of the observation point at the current time, h + is the height estimate value of each grid after updating the altitude map.
[0095] For each observation point in the updated altitude map, the variance of the measurement value of the observation point at the current time is proportional to the distance between the observation point and the sensor. The farther the distance between the observation point and the sensor, the greater the variance of the measurement value of the observation point at the current time, and the stronger the uncertainty of the measurement value of the observation point at the current time.
[0096] The formula for updating the height estimate value variance of the height adjustment map is as follows:
[0097]
[0098] wherein, is the variance of the height estimate value after updating the altitude map.
[0099] The variance of the height estimate value after updating the altitude map indicates the uncertainty of the height estimate value after updating the altitude map. The uncertainty of the height estimate value after updating the altitude map can also be represented by the standard deviation of the height estimate value or an integer multiple of the standard deviation of the height estimate value, which is determined according to the actual situation and is not limited here.
[0100] For multi-legged robot mapping, especially outdoor environment mapping, usually only a small local map near the current area of the robot is retained, i.e. the robot local map. Multi-legged robot mapping is more concerned about the accuracy of the latest robot local map, unlike wheeled robots which maintain a large global map through loop closure detection.
[0101] As described above, the height adjustment map is updated using the observation point at the current time to obtain an updated elevation map. The height estimate value and the height estimate value variance of the height adjustment map are updated using the Kalman filtering method, and the updated elevation map is obtained according to the height estimate value and the height estimate value variance. For each observation point in the updated elevation map, the variance of the measurement value of the observation point at the current time is proportional to the distance between the observation point and the sensor. The farther the distance between the observation point and the sensor, the greater the variance of the measurement value of the observation point at the current time, and the stronger the uncertainty of the measurement value of the observation point at the current time.
[0102] In one embodiment, the post-processing of the updated elevation map to obtain the final elevation map comprises:
[0103] Clearing the historical data of the multi-layer area;
[0104] Smoothing the updated elevation map to obtain the final elevation map.
[0105] If the robot navigates through a multi-layer environment, such as going up and down stairs, the elevation map estimated in the past but actually located on other floors needs to be cleared.
[0106] The specific method of clearing the historical data of the multi-layer area is to set a threshold in advance. If the difference between the height of the robot and the elevation is greater than the threshold, the elevation map located on other floors is cleared.
[0107] In actual application, the filter used for smoothing the updated elevation map can be a Gaussian filter or other filters, which is determined according to actual situation and is not limited here.
[0108] After obtaining the final elevation map, the final elevation map is transmitted from the GPU to the CPU.
[0109] As described above, the post-processed updated altitude map is obtained to obtain a final altitude map, and the historical data of the multi-layer area is cleared; the updated altitude map is smoothed to obtain a final altitude map. When the robot navigates through the multi-layer environment, the previously estimated altitude map actually located on other layers is cleared, so that the obtained altitude map is more accurate. The smoothing processing can eliminate the noise in the updated altitude map.
[0110] In one embodiment, the Kalman filtering method is used to update the height estimate value and the height estimate value variance of the height adjustment map, including:
[0111] When the cell of the height adjustment map corresponds to a vertical wall, the cell is a wall cell;
[0112] The total number of observation points in the wall cell is counted, and if the total number of observation points is greater than the total number of observation points threshold, the observation points less than the height estimate value in the wall cell are removed;
[0113] The height estimate value and the height estimate value variance of the wall cell are recalculated.
[0114] When a vertical wall or edge is encountered, the formula for calculating the height estimate value and the height estimate value variance of the height adjustment map is invalid. This is because the cell at the same two-dimensional position (x, y) corresponds to multiple observed different height values h, so the calculated height value h will be smaller than the actual value. To solve this problem, a threshold for the number of observation points falling into the same cell can be set. If the threshold is exceeded, the observation points less than the current height estimate value are removed, and the height estimate value and the height estimate value variance of the wall cell are recalculated using the remaining observation points in the cell, and then the altitude map is updated.
[0115] As described above, the Kalman filtering method is used to update the height estimate value and the height estimate value variance of the height adjustment map, and when the cell of the height adjustment map corresponds to a vertical wall, the cell is a wall cell. The total number of observation points in the wall cell is counted, and if the total number of observation points is greater than the total number of observation points threshold, the observation points less than the height estimate value in the wall cell are removed. The height estimate value and the height estimate value variance of the wall cell are recalculated. By recalculating the height estimate value and the height estimate value variance of the cell corresponding to the vertical wall, the height estimate value and the height estimate value variance of the cell corresponding to the vertical wall are closer to the true value.
[0116] In one embodiment, the height drift error is calculated based on all the height differences, including:
[0117] Average all the height differences to obtain the height drift error.
[0118] The formula for calculating the height drift error is as follows:
[0119]
[0120] Wherein, b i is the height difference between the i-th current time observation point and the corresponding position point of the altitude map, m is the total number of observation points at the current time, b is the height drift error.
[0121] The average operation is fast and occupies less computing resources, and the height drift error can be calculated quickly.
[0122] As described above, the height drift error is calculated based on all the height differences, and the height drift error is obtained by averaging all the height differences. The average operation is fast and occupies less computing resources, and the height drift error can be calculated quickly.
[0123] Referring to Figure 2 It is a structure schematic block diagram of a map construction device based on a multi-legged robot disclosed by the application, and the device comprises:
[0124] The data acquisition module 10 is configured to acquire point cloud data and robot pose;
[0125] The point cloud data conversion module 20 is configured to convert the point cloud data to the robot coordinate system through the GPU to obtain observation points, and establish an altitude map according to the robot pose;
[0126] The height difference calculation module 30 is configured to calculate the height difference between each observation point at the current time and the corresponding position point of the altitude map;
[0127] The height drift error calculation module 40 is configured to calculate the height drift error based on all the height differences;
[0128] The height adjustment module 50 is configured to use the height drift error to adjust the altitude map to obtain a height-adjusted map;
[0129] The height-adjusted map updating module 60 is configured to update the height-adjusted map according to the observation points to obtain an updated altitude map;
[0130] The post-processing module 70 is configured to post-process the updated altitude map to obtain a final altitude map.
[0131] As described above, the map construction device based on a multi-legged robot of the embodiments of the application can implement the map construction method based on a multi-legged robot.
[0132] Referring to Figure 3 The computer device in the embodiments of the present application can have an internal structure as shown in Figure 3 The computer device includes a processor, a memory, a network interface and a database connected through a system bus. The processor of the computer device is designed to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating device, a computer program and a database. The internal memory provides an environment for the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store height drift errors and height-adjusted maps. The network interface of the computer device is used to communicate with external terminals through network connection. The computer program is executed by the processor to implement the map construction method based on the multi-legged robot, including the following steps: obtaining point cloud data and robot pose; converting the point cloud data to the robot coordinate system through the GPU to obtain observation points, and establishing an elevation map according to the robot pose; calculating the height difference between each observation point and the corresponding position point of the elevation map at the current time; calculating based on all the height differences to obtain a height drift error; using the height drift error to adjust the height of the elevation map to obtain a height-adjusted map; updating the height-adjusted map according to the observation points to obtain an updated elevation map; and post-processing the updated elevation map to obtain a final elevation map.
[0133] Those skilled in the art can understand that Figure 3 The structure shown in the embodiments of the present application is only a block diagram of part of the structure related to the present application, and does not constitute a limitation on the computer device to which the present application is applied.
[0134] An embodiment of the present application further provides a computer readable storage medium, which stores a computer program. The computer program is executed by a processor to implement a map construction method based on a multi-legged robot, and the method comprises the following steps: obtaining point cloud data and a robot pose; converting the point cloud data to a robot coordinate system by a GPU to obtain observation points, and establishing an elevation map according to the robot pose; calculating a height difference between each observation point at a current time and a corresponding position point of the elevation map; calculating a height drift error based on all the height differences; adjusting the elevation map in height by using the height drift error to obtain a height-adjusted map; updating the height-adjusted map according to the observation points to obtain an updated elevation map; and post-processing the updated elevation map to obtain a final elevation map. It can be understood that the computer readable storage medium in the embodiment can be a volatile readable storage medium or a non-volatile readable storage medium.
[0135] It can be understood by those skilled in the art that all or part of the processes in the above-mentioned embodiments can be completed by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer readable storage medium, and when executed, can include the processes of the above-mentioned embodiments. Any reference to memory, storage, database or other medium provided by the present application and used in the embodiments can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration but not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (SSRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).
[0136] It is to be understood that the terminology "including", "comprising", or any other variation thereof, is intended to cover a non-exclusive inclusion such that process, method, article, or apparatus that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises a... " does not, without more constraints, exclude the presence of additional identical elements in the process, method, article, or apparatus that comprises the element.
[0137] The preferred embodiments of the present application have been described above with the specific language and / or illustrative examples, but it should be understood that the patent protection is not limited to the specific embodiments and / or examples described. Any alterations and / or further modifications in the described embodiments and / or examples, made by any one of ordinary skill in the art, having the benefit of this disclosure, are to be considered within the scope of the patent protection.
Claims
1. A map construction method based on a multi-legged robot, characterized in that, include: Acquire point cloud data and robot pose; convert the point cloud data to the robot coordinate system using GPU to obtain observation points, and build an altitude map based on the robot pose; Calculate the height difference between each observation point at the current moment and the corresponding location point on the altitude map; The altitude drift error is calculated based on all the aforementioned altitude differences; the altitude drift error is then used to adjust the altitude map to obtain an adjusted altitude map. The altitude adjustment map is updated based on the observation points to obtain an updated altitude map; the updated altitude map is then post-processed to obtain the final altitude map.
2. The map construction method based on a multi-legged robot according to claim 1, characterized in that, Before calculating the height difference between each observation point at the current moment and the corresponding location point on the altitude map, the method further includes: Determine whether the current elevation map is the initial elevation map. If so, set the length, width, resolution, and map boundary of the robot's local map. The robot's local map is a local map of the area where the robot is located within the current elevation map. The height value of each square in the initial elevation map is calculated based on the observation point to obtain the first frame of the elevation map.
3. The map construction method based on a multi-legged robot according to claim 2, characterized in that, The process of adjusting the altitude map using the altitude drift error to obtain an altitude-adjusted map includes: The altitude adjustment map is obtained by adding the altitude drift error to the current altitude map.
4. The map construction method based on a multi-legged robot according to claim 1, characterized in that, The step of updating the altitude adjustment map based on the observation points to obtain an updated altitude map includes: The height estimate and variance of the height estimate of the height-adjusted map are updated using the Kalman filter method. The updated altitude map is obtained based on the altitude estimate and the variance of the altitude estimate.
5. The map construction method based on a multi-legged robot according to claim 1, characterized in that, The post-processing of the updated elevation map to obtain the final elevation map includes: Clear historical data from multiple data layers; The updated elevation map is smoothed to obtain the final elevation map.
6. The map construction method based on a multi-legged robot according to claim 4, characterized in that, The step of updating the height estimate and variance of the height estimate of the height-adjusted map using the Kalman filtering method includes: When a grid on the height adjustment map corresponds to a vertical wall, that grid is a wall grid. The total number of observation points within the wall grid is counted. If the total number of observation points is greater than the threshold for the total number of observation points, then the observation points in the wall grid that are less than the estimated height are removed. Recalculate the height estimate and the variance of the height estimate for the wall grid.
7. The map construction method based on a multi-legged robot according to claim 1, characterized in that, The altitude drift error is calculated based on all the altitude differences, including: The height drift error is obtained by averaging all the height differences.
8. A map-building device based on a multi-legged robot, characterized in that, include: The data acquisition module is used to acquire point cloud data and robot pose. The point cloud data conversion module is used to convert the point cloud data to the robot coordinate system through the GPU to obtain observation points and to build an altitude map based on the robot's pose. The height difference calculation module is used to calculate the height difference between each observation point and the corresponding location point on the altitude map at the current moment; The altitude drift error calculation module is used to calculate the altitude drift error based on all the altitude differences. The altitude adjustment module is used to adjust the altitude map using the altitude drift error to obtain an altitude-adjusted map. The altitude adjustment map update module is used to update the altitude adjustment map according to the observation point to obtain the updated altitude map; The post-processing module is used to post-process the updated altitude map to obtain the final altitude map.
9. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the map building method based on a multi-legged robot as described in any one of claims 1 to 7.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the steps of the map building method based on a multi-legged robot as described in any one of claims 1 to 7.
Citation Information
Patent Citations
Kinect-based robot self-positioning method
CN105045263A
System, computer program and method for 3-d measurement of objects from single imagery
CN1918451A