A mobile robot mapping method, device, equipment and storage medium
By acquiring and processing raw map data to generate contour points and virtual boundaries, and optimizing target point selection, the high rate of repeated exploration and security issues in active SLAM technology are solved, enabling efficient mapping in semi-closed or fully closed environments.
Patent Information
- Application Number
- CN202411376133.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-29
- Publication Date
- 2025-11-21
- Estimated Expiration
- 2044-09-29
AI Technical Summary
Existing active SLAM technology suffers from high repetition rate and low mapping efficiency in unknown environments. Furthermore, the selection of target points can easily lead to robots getting stuck or being unable to reach them, making it impossible to complete tasks efficiently in semi-closed or fully closed environments.
By acquiring raw map data, contour processing is performed to generate contour points and virtual boundaries. Target point selection is then optimized based on the contour points and virtual boundaries to reduce repetitive exploration. Map boundary closure methods are used to ensure robot safety.
To achieve efficient and safe active SLAM mission completion in semi-enclosed or fully enclosed environments, reduce the rate of repeated exploration, improve exploration efficiency, and avoid getting trapped in dangerous areas.
Smart Images

Figure CN119270843B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of robots, and in particular to a mobile robot mapping method, device, equipment and storage medium. BACKGROUND
[0002] SLAM (Simultaneous Localization and Mapping) is a technology in the field of computer science that allows mobile devices such as robots or drones to navigate in unknown environments while creating detailed maps of their surroundings. SLAM technology is very important in the field of robotics because it enables robots to navigate autonomously and perform tasks in unknown environments. The working principle of SLAM technology is that mobile devices such as robots or drones use sensors such as lidar, cameras, ultrasonic sensors, etc. to collect data of the environment while moving in their environment. The data collected by these sensors is used to construct a detailed map of the environment in real time, while the robot or drone also determines its own position on the map. SLAM technology is an active field of research, with many research institutions and companies working to improve the accuracy and efficiency of SLAM technology. With the continuous progress of technology, the application prospect of SLAM technology in the field of robots is also becoming more and more broad. SLAM technology is a core technology problem of mobile robots, which mainly solves the problem of how a robot moves in an unknown / strange environment to obtain its own pose information (position information and attitude information) using one or more sensor information of the robot, while constructing a map of the surrounding environment. The specific implementation is to process the sensor data of the robot (lidar point cloud, image data, odometry data, imu data, etc.) to obtain the mapping information of the surrounding environment of the mobile robot, and to obtain the map data reflecting the current environmental features from the mapping information.
[0003] There are two common methods of obtaining sensor data to construct complete map data: (1) passive SLAM technology, which refers to obtaining complete map data by manually controlling or moving the mobile robot to change its position and attitude; (2) active SLAM technology, which refers to obtaining complete map data of the current environment through autonomous movement in unknown environments by programs written inside the robot, and actively ending the active SLAM task.
[0004] But the current active SLAM technology repeats the exploration rate, the distance of the robot movement is too long, the distance of the robot movement is too short, the update data of the map is less, the exploration times increases; The mapping efficiency of active SLAM is low, which cannot efficiently and quickly complete the task of active SLAM; The selected target point is easy to make the mobile robot fall into trouble or cannot reach the target point in the process of active SLAM. SUMMARY
[0005] In view of the problems, the present application is proposed to provide a mobile robot mapping method, device, equipment and storage medium which overcome the problems or at least partially solve the problems, comprising:
[0006] A mobile robot mapping method, the method is used for the method of the mobile robot to quickly establish a map; The mobile robot perceives the surrounding environment through laser radar, and obtains original map data; Comprising:
[0007] Obtain the original map data, and perform contour processing on the original map data to obtain contour points;
[0008] If there is a boundary point in the contour point, a virtual boundary is generated according to the contour point; Wherein, the boundary point exists in the contour point in the unknown area around and in the original map data;
[0009] According to the contour point and the virtual boundary, an optimized target point to be explored by the mobile robot is generated.
[0010] Preferably, the step of performing contour processing on the original map data to obtain contour points comprises:
[0011] Performing morphological operation on the original map data to generate a feature map;
[0012] According to the feature map, a dangerous area map is obtained;
[0013] According to the dangerous area map, a preprocessed map is obtained by closing;
[0014] According to the preprocessed map, contour processing is performed to obtain contour points.
[0015] Preferably, the step of performing morphological operation on the original map data to generate a feature map comprises:
[0016] The original map data is binarized to generate a binary map;
[0017] According to the binary map, an opening operation is performed to generate an inflation map;
[0018] According to the inflation map, a closing operation is performed to generate a feature map.
[0019] Preferably, the step of receiving the pre-processed map and generating a line segment map by connecting points comprises:
[0020] The contour points are obtained according to the pre-processed map.
[0021] The line segment map is generated by connecting the contour points.
[0022] The boundary points are contour points in the original map data and surrounded by unknown areas.
[0023] Preferably, the step of generating a virtual boundary according to the contour points further comprises:
[0024] The isolated end points are obtained according to the contour points, and the closed line is obtained by connecting the isolated end points.
[0025] The virtual boundary is obtained by screening the closed line.
[0026] Preferably, the step of generating an optimized target point for the mobile robot to explore according to the contour points and the virtual boundary comprises:
[0027] The target points are generated according to the contour points within the virtual boundary.
[0028] The optimized target points are generated by screening obstacles according to the target points.
[0029] Preferably, the step of generating the target points according to the contour points within the virtual boundary comprises:
[0030] The contour points are classified into classified points by quadrant within the virtual boundary.
[0031] The target points are generated by empty set optimization according to the classified points.
[0032] To achieve the present application also includes a mobile robot mapping device, the device is used for the method of the mobile robot to quickly establish a map; the mobile robot perceives the surrounding environment through laser radar, and obtains original map data, including:
[0033] The contour point obtaining module is used for obtaining the original map data and performing contour processing on the original map data to obtain contour points.
[0034] The virtual boundary generating module is used for generating a virtual boundary according to the contour points if there are boundary points in the contour points.
[0035] The optimized target point generating module is used for generating an optimized target point for the mobile robot to explore according to the contour points and the virtual boundary.
[0036] To achieve the present application also includes an electronic device, including a processor, a memory and a computer program stored on the memory and capable of running on the processor, the computer program is executed by the processor to achieve the steps of the mapping method based on the mobile robot as described.
[0037] To achieve the present application also includes a computer readable storage medium, the computer readable storage medium stores a computer program, the computer program is executed by the processor to achieve the steps of the mapping method based on the mobile robot as described.
[0038] The present application has the following advantages:
[0039] In the embodiments of the present application, compared with the prior art "repeated exploration rate increases, the distance of robot movement is too long, the distance of robot movement is too short, the update data of the map is less, the number of explorations increases; the mapping efficiency of active SLAM is low, which cannot efficiently and quickly complete the active SLAM task; the selected target point is easy to make the mobile robot fall into trouble or cannot reach the target point in the process of active SLAM", the present application provides a solution for the selection of target points and the closure of boundaries, redesigns the selection rules of target points in the process of active SLAM, reduces the repeated exploration rate and the number of explorations under the condition of ensuring complete exploration, and avoids unnecessary movement; uses a map boundary closure method, so that the mobile robot can still complete the active SLAM task in a semi-closed / fully closed environment; processes the map data, eliminates noise, and increases dangerous area elements, so that the mobile robot can avoid falling into a dangerous area in the process of active SLAM and cause the task to be unable to be completed. Specifically: obtaining original map data, and performing contour processing on the original map data to obtain contour points; if there is a boundary point in the contour points, generating a virtual boundary according to the contour points; wherein the boundary point exists in the contour points in the surrounding unknown area and in the original map data; generating an optimized target point to be explored by the mobile robot according to the contour points and the virtual boundary. The present application uses the perception radius of the robot to generate the virtual boundary of the map to complete the active SLAM task in a semi-closed environment and a fully closed environment; uses the preprocessing function of the map data to complete the denoising and stitching of the map data, and avoid unreasonable target points; classifies and selects the target points, reduces the repeated exploration rate and the number of explorations, and makes the process of active SLAM more concise and efficient; reasonably evaluates the target points, so that the final target points can perceive multiple areas at a time, reduce the number of explorations of the same area, and improve the exploration efficiency; safety evaluation of the target point makes the final target point always in a safe area, avoids the mobile robot falling into trouble and causing the active SLAM process to be difficult to continue, and at the same time ensures the accuracy of the end of the active SLAM task in a semi-closed environment / fully closed environment. BRIEF DESCRIPTION OF DRAWINGS
[0040] In order to more clearly illustrate the technical solutions of the present application, the drawings needed to be used in the description of the present application will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can also be obtained by those skilled in the art without any creative labor based on these drawings.
[0041] Figure 1 is a flow chart of a mobile robot mapping method provided by an embodiment of the present application;
[0042] Figure 2 is a structural block diagram of a mobile robot mapping device provided by an embodiment of the present application;
[0043] Figure 3 is a raw map data diagram of a mobile robot mapping provided by an embodiment of the present application;
[0044] Figure 4 is a pre-processed map of a mobile robot mapping provided by an embodiment of the present application;
[0045] Figure 5 is a contour point diagram of a mobile robot mapping provided by an embodiment of the present application;
[0046] Figure 6 is an optimized target point diagram of a mobile robot mapping provided by an embodiment of the present application;
[0047] Figure 7 is a structural diagram of a computer device provided by an embodiment of the present application;
[0048] Figure 8 is a diagram of a target point classification method of a mobile robot mapping provided by an embodiment of the present application;
[0049] Figure 9 is a diagram of a map closing method of a mobile robot mapping provided by an embodiment of the present application;
[0050] 12, computer device; 14, external device; 16, processing unit; 18, bus; 20, network adapter; 22, I / O interface; 24, display; 28, memory; 30, random access memory; 32, cache memory; 34, storage system; 40, program / utility; 42, program module. DETAILED DESCRIPTION
[0051] In order to make the purposes, features and advantages of the present application more obvious and easy to understand, the present application will be further described in detail below in combination with the drawings and specific embodiments. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative labor fall within the scope of protection of the present application.
[0052] The inventors found through analysis of the prior art that the SLAM technology is the core technical problem of the mobile robot, which mainly solves the problem of how to obtain the pose information (position information and attitude information) of the mobile robot itself by using one or more sensor information of the robot in an unknown / strange environment, while constructing the map information of the surrounding environment features. The specific implementation is to process the sensor data (laser radar point cloud, image data, odometer data, imu data, etc.) of the robot itself to obtain the mapping information of the surrounding environment of the mobile robot, and to obtain the map data reflecting the current environment features from the mapping information.
[0053] There are two methods commonly used to obtain sensor data to construct complete map data at present:
[0054] (1) Passive SLAM technology, which refers to obtaining complete map data by changing the position and attitude of the mobile robot through human remote control or human movement; (2) Active SLAM technology, which refers to obtaining complete map data of the current environment through autonomous movement in an unknown environment by a program written inside the robot, and actively ending the active SLAM task.
[0055] Application of existing active SLAM technology:
[0056] It is mainly applied to autonomous mapping of mobile robots in completely closed environments, such as household cleaning robots, i.e. the mobile robot of the present application.
[0057] However, the existing active SLAM technology has the following problems and shortcomings:
[0058] The current active SLAM technology selects target points according to rules, which causes the robot to move back and forth between two areas, resulting in an increase in repeated exploration rate; in a complex unknown environment, the selected target points are not suitable, causing the robot to move too far, resulting in an increase in repeated exploration rate; or causing the robot to move too short, resulting in less updated data of the map, and an increase in exploration times; due to the high repeated exploration rate, the exploration times for the same area are more, and the mapping efficiency of the active SLAM is low, which cannot complete the active SLAM task efficiently and quickly; since the boundary of the map data completely depends on the data of the mobile robot itself, it can only be used in a completely closed environment; and since the environmental features in the map data in a complex environment are relatively fuzzy, the selected target points are relatively dangerous (closer to the dangerous area), so that the mobile robot is trapped in a dilemma or cannot reach the target point during the active SLAM process.
[0059] The technical problems to be solved by the present application are: (1) redesigning the target point selection rules in the active SLAM process, reducing the repeated exploration rate and the exploration times under the condition of ensuring complete exploration, and avoiding unnecessary movement; (2) using a map boundary closing method to enable the mobile robot to still complete the active SLAM task in a semi-closed / fully closed environment; and (3) processing the map data, eliminating noise, and increasing dangerous area elements, so that the mobile robot avoids being trapped in a dangerous area during the active SLAM process and causes the task to be unable to be completed.
[0060] In the embodiments of the present application, compared with the prior art, the present application provides a solution for target point selection and boundary closing, specifically: obtaining original map data, and performing contour processing on the original map data to obtain contour points; if there is a boundary point in the contour points, a virtual boundary is generated according to the contour points; wherein the boundary point exists in the contour points in the surrounding unknown area and in the original map data; and an optimized target point to be explored by the mobile robot is generated according to the contour points and the virtual boundary. The present application redesigns the target point selection rules in the active SLAM process, reduces the repeated exploration rate and the exploration times under the condition of ensuring complete exploration, and avoids unnecessary movement; uses a map boundary closing method to enable the mobile robot to still complete the active SLAM task in a semi-closed / fully closed environment; and processes the map data, eliminates noise, and increases dangerous area elements, so that the mobile robot avoids being trapped in a dangerous area during the active SLAM process and causes the task to be unable to be completed.
[0061] Referring to Figure 1 , a step flow chart of a mapping method based on a mobile robot is shown, and specifically includes the following steps:
[0062] S110, obtaining original map data, and performing contour processing on the original map data to obtain contour points;
[0063] S120, if there is a boundary point in the contour points, generating a virtual boundary according to the contour points; wherein the boundary point is a contour point surrounded by unknown areas and in the original map data;
[0064] S130, generating an optimized target point to be explored by the mobile robot according to the contour points and the virtual boundary.
[0065] In the following, the mapping method based on a mobile robot in the present exemplary embodiment will be further described.
[0066] In an embodiment of the present application, the specific process of the step S110 of "obtaining original map data, and performing contour processing on the original map data to obtain contour points" can be further described as follows.
[0067] In an embodiment of the present application, the mobile robot perceives the surrounding environment through a laser radar to obtain original map data.
[0068] As described in the following steps, perform morphological operation on the original map data to generate a feature map; obtain a dangerous area map according to the feature map; perform closure according to the dangerous area map to obtain a preprocessed map; and perform contour processing on the preprocessed map to obtain contour points.
[0069] It should be noted that morphological operation is a commonly used technique in image processing, which is used to perform various morphological transformations on images to extract, simplify or enhance certain features in the images. These operations are mainly based on the concepts of set theory and graph theory, and perform opening operation, closing operation, erosion, dilation, thinning, skeletonization and other processing on images. The core idea of morphological operation is to analyze the shape and structure of the image by using a structure element (or kernel), so as to achieve the purposes of pre-processing, feature extraction and noise removal of the image. Morphological processing is a commonly used technique in image processing, mainly used for noise reduction, edge detection, sharpening and other processing of images. The basic idea of morphological processing is to perform erosion and dilation operations on images to achieve morphological transformation of images.
[0070] In a specific embodiment, the dangerous area is a certain range of area on the map close to the obstacle, which is the black part of the binary original map data.
[0071] In one embodiment of the present invention, the specific process of "generating a feature map by performing morphological operations on the original map data" can be further explained in conjunction with the following description.
[0072] The original map data is binarized to generate a binarized map as described in the following steps; an opening operation is performed on the binarized map to generate an inflated map; and a closing operation is performed on the inflated map to generate a feature map.
[0073] In one specific embodiment, 1.1 Map data preprocessing
[0074] Map data preprocessing includes:
[0075] (1) Binarization to obtain a black and white map; binarization is the process of setting the pixel values of an image to only two possible values, usually 0 and 255 (for 8-bit images). In map data processing, to perform binarization, you can use image processing software such as Adobe Photoshop, GIMP, or image processing scripts written in a programming language. Here are some basic steps:
[0076] Open the original map data file, such as Figure 3 As shown. Select the "Image" menu and then the "Adjustments" submenu, then the "Brightness / Contrast" command to adjust the image contrast, making the features on the map more prominent. Select the "Image" menu and then the "Channels" submenu, then the "Separate" command to separate the image channels. You may need to experiment with different channel combinations to find the most suitable channel for binarization. Select the "Image" menu and then the "Adjustments" submenu, then the "Threshold" command to set a suitable threshold, setting the image pixel values to 0 or 255. You can adjust the threshold according to the grayscale distribution of the image to ensure a clear contrast between the features on the map and the background. Use the "Invert" command in the "Image" menu to invert the pixel values of the binarized image for subsequent processing. Save the binarized image file.
[0077] (2) Two morphological operations, in order, opening operation and closing operation, which mainly eliminate isolated noise points in the map data and suture some wall with small cracks, so that the map data can better reflect the main features of the environment. Opening operation: opening operation is a combination of erosion operation and dilation operation, which can eliminate noise and fill holes at the same time. The basic idea of opening operation is to perform erosion operation on the image first, and then perform dilation operation on the eroded image. Closing operation: closing operation is a combination of dilation operation and erosion operation, which can fill cracks and eliminate noise at the same time. The basic idea of closing operation is to perform dilation operation on the image first, and then perform erosion operation on the dilated image.
[0078] In an embodiment of the present application, the specific process of "obtaining the preprocessed map by closing according to the dangerous area map" can be further described as follows.
[0079] The preprocessed map is obtained by pre-closing the boundary according to the dangerous map through a virtual boundary, as described in the following steps.
[0080] In a specific embodiment, (3) a certain range of area on the map close to the obstacle is set as a dangerous area, i.e. the black part;
[0081] (4) Closing the map according to the virtual boundary means using a kind of data to close the map boundary, which is called virtual boundary and recorded on the map data, distinguished from the passable area, obstacle and unknown area (external area). The map closing method is shown in Figure 9 , in which the black curve segment represents the real obstacle information in an arbitrary incomplete closed environment, the left black solid dot represents the mobile robot, the black large circle represents the sensing range of the mobile robot sensor (taking laser sensor as an example), the red segment represents the virtual boundary mentioned above, and the blue segment is the sensing data of the laser sensor, as shown in Figure 4 .
[0082] In a specific embodiment, 1.2 target point search: (1) using the map data obtained by the map data preprocessing in step 1.1 to perform contour search to find all points on the contour on the map, as shown in Figure 5 .
[0083] As described in step S120 above, if there is a boundary point in the contour point, a virtual boundary is generated according to the contour point; wherein the boundary point is a contour point surrounded by unknown area and in the original map data.
[0084] In an embodiment of the present application, the specific process of the step S120 "if there is a boundary point in the contour points, a virtual boundary is generated according to the contour points; wherein the boundary point is a contour point surrounded by unknown areas and in the original map data" can be further illustrated in combination with the following description.
[0085] In a specific embodiment, isolated end points are obtained according to the contour points, and the isolated end points are connected to obtain a closed line; the closed line is screened to obtain the virtual boundary.
[0086] (2) According to the point set obtained in step 1.2(1), it is judged whether there is a reasonable point to be explored (i.e. a point surrounded by unknown areas and in the closed area of the map), if not, step 1.10 is performed; if so, step 1.3 is continued.
[0087] 1.3 Using the contour points obtained in step 1.2(1), find isolated end points and record them.
[0088] 1.4 Construct a virtual boundary for the end points obtained in step 1.3, connect all end points two by two, and only keep the line segments that meet the following conditions simultaneously:
[0089] (1) No line segment crosses the obstacles on the map
[0090] (2) In the circular range with the midpoint of the virtual boundary as the center and the sensing radius of the robot as the radius, the line segment is surrounded by the exploration area and the non-exploration area / complete closed area, i.e. the map with virtual boundary is generated in this step.
[0091] As described in step S130 above, the optimization target points to be explored by the mobile robot are generated according to the contour points and the virtual boundary.
[0092] In an embodiment of the present application, the specific process of the step S130 "generating optimization target points to be explored by the mobile robot according to the contour points and the virtual boundary" can be further illustrated in combination with the following description, as shown in Figure 6
[0093] As described in the following steps, target points are generated in the virtual boundary according to the contour points; the optimization target points are generated by screening obstacles according to the target points.
[0094] In an embodiment of the present application, the specific process of the step S130 "generating optimization target points to be explored by the mobile robot according to the contour points and the virtual boundary" can be further illustrated in combination with the following description, as shown in
[0095] In a specific embodiment, the target points are classified and explored in step 1.5
[0096] (1) According to the classification of the target points obtained in the 1.2 target point searching step, first, according to the origin of the world coordinate system, the target points are divided into four categories according to the first, second, third and fourth quadrants, which are respectively named as the first, second, third and fourth categories
[0097] (2) The four categories of points are again divided into four categories according to the center point of the category set according to the first, second, third and fourth quadrants, which are respectively named as the first, second, third and fourth categories.
[0098] The schematic diagram of the target point classification method is shown in Figure 8 The schematic diagram of the target point classification method is shown in
[0099] 1.6 Target point selection
[0100] After completing the classification of the target points, we need to complete the selection of the target points according to certain rules, and the steps are as follows:
[0101] (1) The four categories of target points obtained in step 1.3(1) are selected in the order of 4, 1, 2 and 3
[0102] (2) If the fourth category of points is empty, continue to search for the first, second and third categories of points in the above order; if all the point sets are empty, the active SLAM task is completed; if the fourth category of points is not empty, after step 1.3(2), it is selected in the order of 3, 4, 1 and 2 (Note: Let the first non-empty point set obtained in step 1.3(1) in the order of 4, 1, 2 and 3 be K, and the starting point of step 1.3(2) is (K-1), for example, if the fourth category of step 1.3(1) is not empty, then the point set obtained in step 1.3(2) is in the order of 3, 4, 1 and 2; the first category is not empty, then the point set obtained in step 1.3(2) is in the order of 2, 3, 4 and 1
[0103] (2) The point set obtained in step 1.3(2) is in the order of 2, 3, 4 and 1
[0104] (3) In each point set, the actual distance of the corresponding quadrant center point in 1.3(1) is calculated, and the points are sorted according to the actual distance, and the nearest point is selected as the latest target point
[0105] 1.7 Optimization of target point to avoid obstacles
[0106] After obtaining the target point, we need to further judge the rationality and safety of the point.
[0107] (1) Determine all target points within the search distance of the robot centered on the point, find points that are not blocked by obstacles between the point, and perform clustering analysis on these points to obtain new cluster center points
[0108] (2) The new cluster center point obtained in step 1.5(1) is judged for safety. If the point is inside or on the edge of the obstacle, move the point away from the obstacle and far from the current point or not in the dangerous area. This point is the latest cluster center point
[0109] (3) The point obtained in step 1.7(2) is the latest target point
[0110] The present application also includes 1.8 navigation
[0111] The mobile robot uses the navigation algorithm to reach the target point obtained in step 1.5
[0112] 1.9 Repeat steps 1.1-1.8
[0113] 1.10 Go to virtual boundary
[0114] Go to the midpoint of the virtual boundary marked in the map that has not been reached
[0115] 1.11 Determine whether the virtual boundary should be deleted
[0116] According to the perception information at the current position, if the information of the obstacle on the boundary perceived is much less than the information of the passable area, the virtual boundary is retained, otherwise it is deleted
[0117] 1.12 If there are still un-reached virtual boundaries, continue to the next step, otherwise return to the end
[0118] 1.13 Repeat steps 1.10-1.12
[0119] In the present application, the effects and advantages are: (1) using the robot perception radius to generate a virtual boundary of the map to complete the active SLAM task in semi-closed and fully closed environments; (2) using the preprocessing function of the map data to complete the denoising and stitching of the map data, and to avoid unreasonable target points; (3) classifying and selecting the target points to reduce the repeated exploration rate and the number of explorations, so that the active SLAM process is more concise and efficient; (4) reasonably evaluating the target points, so that the final target points can perceive multiple regions at a time, reduce the number of explorations in the same region, and improve the exploration efficiency; (5) safety evaluation of the target points, so that the final target points are always in a safe area, avoiding the mobile robot from getting into trouble and causing the active SLAM process to be difficult to continue, while ensuring the accuracy of the end of the active SLAM task in semi-closed and fully closed environments.
[0120] The above effects can greatly increase the application range of the method, including but not limited to inspection robots, household cleaning robots, commercial cleaning robots, food delivery robots, etc.
[0121] In a specific embodiment, the pseudo code is:
[0122]
[0123] If wait_explore is not 0, segment the wait_explore that records all the points to be explored, and save the result to explore_line, otherwise, return to end
[0124] Calculate the midpoint of each line segment in explore_line and save it to explore_line_mid
[0125] for i: explore_line_mid
[0126] if (belongs to the first quadrant)
[0127] explore_1
[0128] else if (belongs to the second quadrant)
[0129] explore_2
[0130] else if (belongs to the third quadrant)
[0131] explore_3
[0132] else
[0133] explore_4
[0134] end
[0135] m_explore[explore_4;explore_1;explore_2;explore_3]
[0136] for i:m_explore
[0137] if (m_explore[i] == empty)
[0138] continue
[0139] end
[0140] m_goal = Get target point(m_explore[i], center point corresponding to the current category, category of the current point)
[0141] end
[0142] The rationality of m_goal is evaluated to obtain m__temp_goal.
[0143] A security assessment is performed on m_temp_goal to obtain m_new_goal.
[0144] Navigate to the destination
[0145] Repeat steps (2) to (14) in a loop.
[0146] As the device embodiment is basically similar to the method embodiment, the description is relatively simple, and relevant parts can be found in the description of the method embodiment.
[0147] Reference Figure 2 This illustration shows a mobile robot mapping device according to an embodiment of the present application, which specifically includes the following modules:
[0148] Contour point acquisition module 210: used to acquire raw map data and perform contour processing on the raw map data to obtain contour points;
[0149] Virtual boundary generation module 220: used to generate a virtual boundary based on the contour points if there are boundary points among the contour points; wherein the boundary points are contour points in the original map data where there are unknown areas around them.
[0150] Optimized target point generation module 230: used to generate optimized target points to be explored by the mobile robot based on the contour points and the virtual boundary.
[0151] In one embodiment of the present invention, the contour point obtaining module 210 includes:
[0152] a feature map sub-module configured to perform a morphological operation on the original map data to generate a feature map;
[0153] a dangerous area map sub-module configured to obtain a dangerous area map according to the feature map;
[0154] a pre-processed map sub-module configured to perform a closure on the dangerous area map to obtain a pre-processed map;
[0155] a contour point sub-module configured to perform a contour processing on the pre-processed map to obtain contour points.
[0156] In an embodiment of the present application, the feature map sub-module comprises:
[0157] a binary map sub-module configured to perform a binaryzation on the original map data to generate a binary map;
[0158] an expansion map sub-module configured to perform an opening operation on the binary map to generate an expansion map;
[0159] a feature map sub-module configured to perform a closure operation on the expansion map to generate a feature map.
[0160] In an embodiment of the present application, the pre-processed map sub-module comprises:
[0161] a pre-closure sub-module configured to perform a pre-closure of a boundary by a virtual boundary according to the dangerous map to obtain the pre-processed map.
[0162] In an embodiment of the present application, the virtual boundary generation module 220 comprises:
[0163] a closure line sub-module configured to obtain isolated end points according to the contour points and connect the isolated end points to obtain a closure line;
[0164] a virtual boundary sub-module configured to perform a screening according to the closure line to obtain the virtual boundary.
[0165] In an embodiment of the present application, the optimization target point generation module 230 comprises:
[0166] a target point sub-module configured to generate target points according to the contour points within the virtual boundary;
[0167] an optimization target point sub-module configured to perform an obstacle screening according to the target points to generate optimization target points.
[0168] In an embodiment of the present application, the target point sub-module comprises:
[0169] a classified point sub-module configured to perform a quadrant classification on the contour points within the virtual boundary to obtain classified points;
[0170] Empty set optimization submodule: used for generating the target point according to the classification point.
[0171] It should be noted that, for the method embodiments, in order to simply describe, they are all expressed as a series of action combinations, but those skilled in the art should know that the embodiments of the present application are not limited by the order of the described actions, because according to the embodiments of the present application, certain steps can be performed in other order or simultaneously. Secondly, those skilled in the art should know that the embodiments described in the specification all belong to preferred embodiments, and the actions involved are not necessarily the necessary of the embodiments of the present application.
[0172] In the operation steps repeated in the above specific embodiments and the present specific embodiments, the present specific embodiments are simply described, and the rest of the schemes refer to the description of the above specific embodiments.
[0173] For the device embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the related parts refer to the part of the method embodiments.
[0174] Referring to Figure 7 , a computer device based on a mobile robot mapping method of the present application is shown, which can specifically include the following:
[0175] The above computer device 12 is in the form of a general-purpose computing device, and the components of the computer device 12 can include but are not limited to one or more processors or processing units 16, memory 28, bus 18 connecting different system components including memory 28 and processing unit 16.
[0176] Bus 18 represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, a graphics acceleration port, a processor or local bus using any of a variety of bus structures. For example, these architectures include but are not limited to industry standard architecture (ISA) bus, microchannel architecture (MAC) bus, enhanced ISA bus, video electronics standards association (VESA) local bus, and peripheral component interconnect (PCI) bus.
[0177] The computer device 12 typically includes a variety of computer system readable media. These media can be any available media that can be accessed by the computer device 12, including volatile and nonvolatile media, removable and non-removable media.
[0178] Memory 28 may include computer system readable media in the form of volatile memory, such as random access memory 30 and / or cache memory 32. Computer device 12 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 34 may be used to read and write non-removable, non-volatile magnetic media (commonly referred to as a "hard disk drive"). Although Figure 7 Not shown, a disk drive for reading and writing to a removable non-volatile disk (such as a "floppy disk") and an optical disk drive for reading and writing to a removable non-volatile optical disk (such as a CD-ROM, DVD-ROM, or other optical media) may be provided. In these cases, each drive may be connected to bus 18 via one or more data media interfaces. The memory may include at least one program product having a set (e.g., at least one) of program modules 42 configured to perform the functions of the embodiments of this application.
[0179] A program / utility 40 having a set (at least one) of program modules 42 may be stored, for example, in memory. Such program modules 42 include—but are not limited to—an operating system, one or more application programs, other program modules 42, and program data. Each or some combination of these examples may include an implementation of a network environment. Program modules 42 typically perform the functions and / or methods described in the embodiments of this application.
[0180] Computer device 12 can also communicate with one or more external devices 14 (e.g., keyboard, pointing device, display 24, camera, etc.), and with one or more devices that enable an operator to interact with the computer device 12, and / or with any device that enables the computer device 12 to communicate with one or more other computing devices (e.g., network card, modem, etc.). This communication can be performed through I / O interface 22. Furthermore, computer device 12 can also communicate with one or more networks (e.g., local area network (LAN)), wide area network (WAN), and / or public networks (e.g., the Internet) via network adapter 20. Figure 7 As shown, network adapter 20 communicates with other modules of computer device 12 via bus 18. It should be understood that, although... Figure 7 Not shown, it can be combined with computer device 12 to use other hardware and / or software modules, including but not limited to: microcode, device drivers, redundant processing unit 16, external disk drive array, RAID system, tape drive and data backup storage system 34, etc.
[0181] The processing unit 16 executes various function applications and data processing by running programs stored in the memory 28, such as implementing the mapping method based on a mobile robot provided in the embodiments of the present application.
[0182] That is, the processing unit 16, when executing the programs, implements the following: obtaining original map data, and performing contour processing on the original map data to obtain contour points; if there is a boundary point in the contour points, generating a virtual boundary according to the contour points; wherein the boundary point is a contour point in the original map data and surrounded by unknown areas; and generating an optimized target point to be explored by the mobile robot according to the contour points and the virtual boundary.
[0183] In the embodiments of the present application, a computer readable storage medium is also provided, which stores a computer program. The program, when executed by a processor, implements the mapping method based on a mobile robot provided in all the embodiments of the present application.
[0184] That is, the program, when executed by a processor, implements the following: obtaining original map data, and performing contour processing on the original map data to obtain contour points; if there is a boundary point in the contour points, generating a virtual boundary according to the contour points; wherein the boundary point is a contour point in the original map data and surrounded by unknown areas; and generating an optimized target point to be explored by the mobile robot according to the contour points and the virtual boundary.
[0185] Any combination of one or more computer readable medium can be employed. The computer readable medium can be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium can be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In this document, the computer readable storage medium can be any tangible medium that contains, or stores a program for use by or in connection with an instruction execution system, apparatus, or device.
[0186] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including—but not limited to—electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of transmitting, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device.
[0187] Computer program code for performing the operations of this application can be written in one or more programming languages or a combination thereof. These programming languages include object-oriented programming languages—such as Java, Smalltalk, and C++—and conventional procedural programming languages—such as the "C" language or similar programming languages. The program code can be executed entirely on the operator's computer, partially on the operator's computer, as a standalone software package, partially on the operator's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the operator's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider). The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably.
[0188] Although preferred embodiments of the present application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of the embodiments of the present application.
[0189] Finally, it needs to be pointed out that in this document, relational terms such as first and second and the like can only be used to distinguish one entity or action from another entity or action, without necessarily requiring or implying that there is any such actual relationship or order between these entities or actions. Moreover, the terms "comprises", "comprising", or any other variations thereof, are intended to cover a non-exclusive inclusion, so that a process, method, article, or terminal device including a list of elements does not include only those elements but can include other elements not expressly listed or inherent to such a process, method, article, or terminal device. Without more limitations, an element defined by the statement "comprising a" does not exclude the existence of additional identical elements in the process, method, article, or terminal device including the element.
[0190] The above describes in detail a mobile robot mapping method, device, equipment and storage medium provided by the present application. The principles and implementation manners of the present application are described by applying specific examples. The above example is only used to help understand the method and core idea of the present application. Meanwhile, for those skilled in the art, according to the idea of the present application, the specific implementation manner and application range can be changed. The content of the specification should not be understood as a limitation of the present application.
Claims
1. A mobile robot mapping method, the method is used for the method of quickly establishing a map of a mobile robot; the mobile robot perceives the surrounding environment through a laser radar and obtains original map data; characterized in that, The method comprises the following steps: obtaining original map data and performing contour processing on the original map data to obtain contour points; if there is a boundary point in the contour points, generating a virtual boundary according to the contour points; wherein the boundary point is surrounded by an unknown area and is a contour point located in the original map data; performing quadrant classification on the contour points within the virtual boundary to obtain classified points; performing empty set optimization on the classified points to obtain target points; and performing obstacle screening on the target points to obtain optimized target points to be explored by the mobile robot.
2. The mobile robot mapping method of claim 1, wherein, The step of performing contour processing on the original map data to obtain contour points comprises the following steps: performing morphological operation on the original map data to generate a feature map; obtaining a dangerous area map according to the feature map; performing closure on the dangerous area map to obtain a pretreatment map; performing contour processing on the pretreatment map to obtain contour points.
3. The mobile robot mapping method of claim 2, wherein, The step of performing morphological operation on the original map data to generate a feature map comprises the following steps: performing binaryzation on the original map data to generate a binaryzation map; performing opening operation on the binaryzation map to generate an inflation map; performing closing operation on the inflation map to generate a feature map.
4. The mobile robot mapping method of claim 2, wherein, The step of performing closure on the dangerous area map to obtain a pretreatment map comprises the following step: performing boundary pre-closure on the dangerous map through a virtual boundary to obtain the pretreatment map.
5. The mobile robot mapping method of claim 1, wherein, The step of generating a virtual boundary according to the contour points comprises the following steps: obtaining isolated end points according to the contour points, and connecting the isolated end points to obtain a closed line; performing screening on the closed line to obtain the virtual boundary.
6. The mobile robot mapping method of claim 1, wherein, The method comprises the following steps: generating the target points according to the contour points within the virtual boundary.
7. A mobile robot mapping device, the device is used for a method of quickly establishing a map for a mobile robot; the mobile robot perceives the surrounding environment through a laser radar to obtain raw map data, characterized in that, The method comprises the following steps: a contour point obtaining module, configured to obtain original map data and perform contour processing on the original map data to obtain contour points; a virtual boundary generating module, configured to generate a virtual boundary according to the contour points if there is a boundary point in the contour points; wherein the boundary point is surrounded by an unknown area and is a contour point located in the original map data; an optimized target point generating module, configured to perform quadrant classification on the contour points within the virtual boundary to obtain classified points; perform empty set optimization on the classified points to obtain target points; and perform obstacle screening on the target points to obtain optimized target points to be explored by the mobile robot.
8. An electronic device, characterized by The computer program stored on the computer readable storage medium and executable by the processor implements the steps of the mobile robot mapping method according to any one of claims 1 to 6 when executed by the processor.
9. A computer readable storage medium, characterized in that, The computer program stored on the computer readable storage medium and executable by the processor implements the steps of the mobile robot mapping method according to any one of claims 1 to 6 when executed by the processor.
Citation Information
Patent Citations
Fire source positioning method and system based on SLAM technology and image identification
CN110082781A
Rapid mapping method and device and cleaning robot
CN115191886A