Exploration point generation
By generating local exploration points from real-time pose and local grid maps, and utilizing two-stage validity detection, the problem of low efficiency in existing exploration point generation methods in complex environments is solved, enabling robots to achieve efficient autonomous navigation and task execution in complex environments.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-08-21
- Publication Date
- 2026-03-05
AI Technical Summary
Existing exploration point generation methods are difficult to adapt to complex and ever-changing environments, resulting in low efficiency for robots during autonomous navigation and task execution.
Local exploration points are generated based on the robot's real-time pose, real-time laser frames, and local grid maps. Valuable exploration points are then selected using a two-stage validity check, including a first validity check and a second validity check, to ensure the accuracy and efficiency of the exploration points.
It improves the efficiency of the exploration process, reduces computational load and resource consumption, ensures that only valuable exploration points are retained, and increases the success rate of exploration tasks.
Smart Images

Figure CN2025116206_05032026_PF_FP_ABST
Abstract
Description
Exploration point generation Technical Field
[0001] This application relates to the field of robotics, and more particularly to a method, apparatus, robot, and storage medium for generating exploration points. Background Technology
[0002] With the rapid development of technology, robots are increasingly being used in various fields such as daily life, industrial production, medical care, and military exploration. In these applications, the environments in which robots operate are often complex and changeable, and accurate localization is fundamental for achieving autonomous navigation and task execution. However, the exploration point generation methods of related technologies often rely on pre-built maps or fixed exploration point generation strategies, making it difficult to adapt to complex and changing environments. Summary of the Invention
[0003] In view of this, embodiments of this application provide at least one method, apparatus, robot, storage medium, and program product for generating exploration points. The technical solution of embodiments of this application is implemented as follows:
[0004] On one hand, embodiments of this application provide an exploration point generation method, the method comprising: generating local exploration points based on the robot's real-time pose, real-time laser frames, and a local grid map; performing a first validity test on the local exploration points using the current global exploration point set, and adding the local exploration points that pass the first validity test as global exploration points to the global exploration point set, thereby obtaining a set of exploration points to be verified; performing a second validity test on the set of exploration points to be verified, and removing global exploration points that fail the second validity test from the set of exploration points to be verified, thereby obtaining a target global exploration point set as a new global exploration point set; and, in response to receiving an exploration point generation event, determining a target exploration point in the target global exploration point set as the robot's moving destination based on the real-time pose and the local grid map.
[0005] On the other hand, embodiments of this application provide an exploration point generation device, the device comprising: a generation module, configured to generate local exploration points based on the robot's real-time pose, real-time laser frames, and a local grid map; a first validity detection module, configured to perform a first validity detection on the local exploration points using the current global exploration point set, and add the local exploration points that pass the first validity detection as global exploration points to the global exploration point set, thereby obtaining a set of exploration points to be verified; a second validity detection module, configured to perform a second validity detection on the set of exploration points to be verified, and remove global exploration points that fail the second validity detection from the set of exploration points to be verified, thereby obtaining a target global exploration point set as a new global exploration point set; and a determination module, configured to, in response to receiving an exploration point generation event, determine a target exploration point in the target global exploration point set as the robot's moving destination based on the real-time pose and the local grid map.
[0006] In another aspect, embodiments of this application provide a robot, including a memory and a processor. The memory stores a computer program that can run on the processor, and the processor executes the program to implement some or all of the steps in the above-described method.
[0007] In another aspect, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements some or all of the steps in the above-described method.
[0008] In another aspect, embodiments of this application provide a computer program product, including a computer program or instructions. When the computer program or instructions are executed by a processor, they implement some or all of the steps in the above-described method.
[0009] In this embodiment, by using real-time acquired laser frames and pose information, and the instantaneous construction of a local grid map, the generated local exploration points can be ensured to have high real-time performance and accuracy. Simultaneously, using the local grid map for preliminary exploration point generation and filtering significantly reduces computational load and resource consumption compared to global searching. Furthermore, the two-stage validity check (first validity check and second validity check) further improves the efficiency of the exploration process, ensuring that only valuable exploration points are retained, thereby helping to reduce invalid exploration and potential risks, and increasing the success rate of the exploration task.
[0010] It should be understood that the above general description and the following detailed description are merely exemplary and explanatory, and are not intended to limit the technical solutions of this application. Attached Figure Description
[0011] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with this application and, together with the specification, serve to explain the technical solutions of this application.
[0012] Figure 1 is a schematic diagram of the implementation flow of an exploration point generation method according to an embodiment of this application.
[0013] Figure 2 is a schematic diagram of the implementation flow of an exploration point generation method according to another embodiment of this application.
[0014] Figure 3 is a schematic diagram of the implementation process of an exploration point generation method according to another embodiment of this application.
[0015] Figure 4 is a schematic diagram of the implementation flow of an exploration point generation method according to another embodiment of this application.
[0016] Figure 5 is a schematic diagram of the implementation flow of an exploration point generation method according to another embodiment of this application.
[0017] Figure 6 is a schematic diagram of the overall process in a real-world scenario provided by an embodiment of this application.
[0018] Figure 7 is a schematic diagram of the overall process of a local exploration point module in a real-world scenario according to an embodiment of this application.
[0019] Figure 8 is a schematic diagram of the overall process of a global exploration point module in a real-world scenario according to an embodiment of this application.
[0020] Figure 9 is a schematic diagram of a global exploration point tree provided according to an embodiment of this application.
[0021] Figure 10 is a schematic diagram of the composition of an exploration point generation device according to an embodiment of this application.
[0022] Figure 11 is a schematic diagram of a hardware entity that implements robot functions according to an embodiment of this application. Detailed Implementation
[0023] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application are further described in detail below with reference to the accompanying drawings. The described embodiments should not be considered as limitations on this application. All other embodiments obtained by those skilled in the art without inventive effort are within the scope of protection of this application.
[0024] In the following description, references to "some embodiments" refer to a subset of all possible embodiments. It is understood that "some embodiments" may be the same or different subsets of all possible embodiments and may be combined with each other without conflict. The terms "first / second / third" are used merely to distinguish similar objects and do not represent a specific ordering of objects. "First / second / third" may be interchanged in a specific order or sequence where permissible, so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein.
[0025] In particular, the nouns and terms used in the embodiments of this disclosure shall be interpreted as follows.
[0026] Simultaneous Localization and Mapping (SLAM) allows robots to determine their own position and build a map of their surroundings in real time in unknown environments, achieving both localization and mapping. In SLAM, the robot first acquires information about its environment using its sensors (such as LiDAR, cameras, and inertial measurement units). This sensor data may include LiDAR point clouds, image frames, and inertial measurement data. Next, feature points are extracted from this raw data; these feature points represent key parts of the environment that can be used for localization and mapping. Then, data association is performed, matching the features of the current frame with features from previous maps or other frames. This process is crucial for understanding how the robot moves and how the environment changes. Through data association, the robot's trajectory, including translation and rotation, can be inferred. After determining the robot's trajectory, this information can be used to build a map of the environment. Various map construction methods exist, commonly including overlaid grid maps and point cloud maps.
[0027] Unless otherwise defined, all technical and scientific terms used herein have the meanings commonly understood by those skilled in the art. The terminology used herein is for the purposes of describing this application only and is not intended to limit this application.
[0028] With the continuous development of industrial technology, more and more mobile robots are being applied in various scenarios, such as intelligent robotic vacuum cleaners, mobile service robots, and Automated Guided Vehicles (AGVs) in workshops. The prerequisite for autonomous navigation of indoor mobile robots is having a prior environmental map of the area where the robot is currently located. The map type used by indoor mobile robots is typically a grid map, which uses a series of continuous small grids to describe the robot's surrounding environment. Each small grid has three states: unknown, occupied, and idle, respectively identifying unknown, infeasible, and feasible areas. Robots can use grid maps to achieve autonomous movement and navigation.
[0029] Currently, grid maps used for robot navigation are typically acquired using SLAM methods. When a robot needs to work in a new area, the robot platform first runs the SLAM algorithm to start mapping. Then, a human operator guides the robot to traverse the entire environment. Finally, the map generated by the SLAM algorithm is saved as the robot's prior map for that area. This method of manually controlling the robot to create maps has many problems. For example, it requires the user to have certain robot operation experience, and the user also needs to control the robot's travel and turning speeds during the mapping process. This not only increases labor costs but also significantly reduces the user experience, which is very detrimental to the application and promotion of autonomous mobile robots.
[0030] This application proposes a method for autonomous exploration and mapping by a robot, in which the robot uses its onboard sensors to complete exploratory mapping of an entire area. Compared to manual remote-controlled mapping, this invention enables autonomous exploratory mapping, greatly improving the user experience and the intelligence level of the mobile navigation robot.
[0031] This application provides a method for generating exploration points, which can be executed by a robot's processor. The robot can be a device with autonomous mobility, sensor integration, and data processing capabilities. Such devices can perform complex tasks, including but not limited to navigation, path planning, object recognition and manipulation, and environmental perception.
[0032] In some embodiments, the robot may not only possess basic data processing capabilities but also integrate components such as sensors (e.g., cameras, lidar, ultrasonic sensors, gyroscopes, accelerometers, etc.), actuators (e.g., motors, wheels, robotic arms, etc.), and algorithms and software for controlling and optimizing these components. Exemplarily, the robot may be a service robot (e.g., a household cleaning robot, a restaurant delivery robot, a hospital care robot, etc.), an industrial robot (a robot performing repetitive, high-precision processing, assembly, and handling tasks on a production line), an exploratory robot (for exploration and reconnaissance tasks in extreme environments or dangerous areas), or a mobile robot (autonomous vehicles, drones, etc.).
[0033] Figure 1 is a schematic diagram of the implementation flow of an exploration point generation method according to an embodiment of this application. As shown in Figure 1, the method includes the following steps S101 to S104.
[0034] Step S101: Generate local exploration points based on the robot's real-time pose, real-time laser frames, and local grid map.
[0035] In some embodiments, the aforementioned local grid map reflects environmental information observable by the robot in its real-time pose. It is important to understand that the local grid map changes with the robot's different poses. In other words, the local grid map is continuously updated as the robot moves.
[0036] Step S102: Use the current (created based on the historical movement process) global exploration point set to perform a first validity test on the local exploration points, and add the local exploration points that pass the first validity test as global exploration points to the global exploration point set to obtain the exploration point set to be verified.
[0037] In some embodiments, the aforementioned current global exploration point set may be created based on the robot's historical movement process, which may be the movement process before the robot reaches the position indicated by the real-time pose. Generally, this historical movement process includes all the movements that the robot has made during the exploration and mapping process, after which the robot will continue to move to complete the entire exploration and mapping process.
[0038] It is understood that at each time point / sampling point during the robot's movement process (including the historical movement process), the global exploration point set can be created and updated through steps S101 to S103 of this application. In the embodiments of this application, the aforementioned global exploration point set can be a global exploration point set updated based on the local exploration points of the robot in the real-time pose of the previous time point / sampling point. Of course, in the process of performing the first validity detection on the local exploration points corresponding to the next real-time pose, the global exploration point set used should be the target global exploration point set created based on the real-time pose.
[0039] In some embodiments, the aforementioned set of global exploration points includes at least one global exploration point created during the historical movement. Accordingly, the aforementioned first validity check is used to determine whether each generated local exploration point conflicts with at least one already created global exploration point. Local exploration points with conflicts are deemed to have failed the first validity check; local exploration points that do not conflict with any global exploration points are deemed to have passed the first validity check. Conflicts here may include local exploration points being too close to global exploration points. If a local exploration point is too close to an existing global exploration point, the environmental information collected by these two exploration points may have significant overlap and redundancy. This not only increases the complexity and computational load of map processing but may also make it difficult for the robot to maintain efficient and stable movement during exploration. By filtering out local exploration points that are too close, it can be ensured that each area in the map is covered by an appropriate number of exploration points, thereby improving the quality and reliability of the map. Of course, other conflict situations may also be included.
[0040] In this embodiment, after performing a first validity check on the obtained local exploration points, the local exploration points that pass the first validity check are added to the global exploration point set as global exploration points, resulting in a set of exploration points to be verified. Here, since the first validity check is based only on the dimension of whether there is a conflict between exploration points, the obtained global exploration points may still contain unreasonable points. Therefore, it is necessary to use the obtained global exploration point set as the set of exploration points to be verified for a subsequent second validity check.
[0041] Step S103: Perform a second validity check on the set of exploration points to be verified, and remove global exploration points that fail the second validity check from the set of exploration points to be verified to obtain the target global exploration point set.
[0042] In this embodiment, the first validity detection is used to remove unqualified local exploration points (i.e., the local exploration points generated in step 101 above), and the first validity detection is actually based on the relationship between global exploration points and local exploration points. Unlike the first validity detection, the second validity detection is used to remove unqualified global exploration points. Here, the removed global exploration points can be exploration points that have just been added to the global exploration point set (i.e., the local exploration points added in step S102), or global exploration points generated during the historical movement process. This second validity detection is based on other factors in the exploration mapping process, which can be the robot's historical trajectory at the real-time pose, or the already created global grid map.
[0043] In some embodiments, performing a second validity check on the set of exploration points to be verified and removing global exploration points that fail the second validity check from the set of exploration points to be verified to obtain a target global exploration point set includes at least one of the following: determining the second validity check result of the global exploration point based on the spatial distance between the global exploration point and the viewpoint trajectory, wherein the viewpoint trajectory is generated based on the viewpoint pose saved by the robot; searching for paths between the global exploration point and the viewpoint trajectory in the global grid map, and determining the second validity check result of the global exploration point based on the search results.
[0044] During the robot's exploration and mapping process, multiple viewpoint poses are saved. The method further includes: simultaneously adding local exploration points that pass the first validity detection as global exploration points to the global exploration point set, and saving the real-time poses as viewpoint poses. In some embodiments, the multiple viewpoint poses are arranged sequentially according to the storage order (or temporal sequence) of the viewpoint poses.
[0045] In some embodiments, the viewpoint trajectory of the robot during the exploration and mapping process can be obtained by saving multiple viewpoint poses. Then, the spatial distance between each global exploration point and the viewpoint trajectory can be calculated. Global exploration points with a spatial distance less than a preset distance threshold are determined to have failed the second validity detection, while global exploration points with a spatial distance greater than or equal to the preset distance threshold are determined to have passed the second validity detection.
[0046] Understandably, if a global exploration point is already near the robot's viewpoint trajectory (i.e., the spatial distance is less than a preset threshold), it means that the area has likely been explored or is about to be explored. Marking this global exploration point as "failed the second validity check" can prevent the robot from revisiting the area for unnecessary repeated exploration, thereby improving exploration efficiency. Conversely, global exploration points far from the current viewpoint trajectory (i.e., the spatial distance is greater than or equal to the preset threshold) more likely represent areas that have not yet been fully explored or observed by the robot. Marking global exploration points far from the current viewpoint trajectory as "passed the second validity check" helps the robot focus on these unexplored areas to determine the next exploration target, thereby accelerating the complete construction of the map.
[0047] During the robot's exploration and mapping process, a global grid map is constructed based on real-time acquired laser frames and corresponding poses. As the global grid map is updated, the generated global exploration points need to be re-verified using the latest global grid map. Therefore, in some embodiments, the existence of paths between global exploration points and the viewpoint trajectory can be searched within the global grid map. Global exploration points without paths to the viewpoint trajectory are determined to have failed the second validity check, while global exploration points with paths to the viewpoint trajectory are determined to have passed the second validity check. For example, the above path search scheme can employ the Jump Point Search (JPS) algorithm from related technologies.
[0048] It is understood that steps S101 to S103 are executed cyclically. That is, during the robot's exploration and mapping process, as the robot moves and reaches each real-time pose, steps S101 to S103 can be executed to obtain the latest target global exploration point set. This continues until an exploration point generation event is received. In some embodiments, due to the limited sampling rate and processing speed of the robot's sensors (such as LiDAR, cameras, etc.) and the limitations of computing resources, the target global exploration point set (steps S101 to S103) is not continuously updated, but is updated discretely according to a certain time interval or spatial interval. For example, the target global exploration point set can be set to be updated once every time the robot moves a certain distance (such as 0.5 meters, 1 meter, etc.), or it can be set to be updated once every certain time (such as 0.1 seconds, 0.5 seconds, etc.). It can also detect whether the environmental change is greater than a preset requirement, and update the target global exploration point set once if it is greater than the preset requirement.
[0049] In some embodiments, if the robot has just begun moving and there is neither a historical movement process nor an existing global exploration point set, an initial global exploration point set can be constructed using the following method: Based on the robot's real-time pose, real-time laser frames, and a local grid map, local exploration points are generated; these generated local exploration points are then directly added to the global exploration point set as global exploration points, resulting in the initial global exploration point set. During subsequent movement, a historical movement process and a corresponding global exploration point set exist.
[0050] Step S104: In response to receiving the exploration point generation event, based on the real-time pose and the local grid map, determine the target exploration point in the target global exploration point set as the robot's moving destination.
[0051] In some embodiments, the aforementioned exploration point generation event is an event that requires determining the robot's moving destination, such as an event that redetermines the robot's moving destination.
[0052] In some embodiments, the exploration point generation event includes at least one of the following: the robot reaches the previous target exploration point; the robot detects that it cannot reach the previous target exploration point while moving towards it; and the exploration point generation cycle is reached.
[0053] In some embodiments, determining the target exploration point in the target global exploration point set based on the real-time pose and the local grid map includes: for each global exploration point existing in the target global exploration point set, sequentially selecting one global exploration point from the target global exploration point set, determining the score of the global exploration point based on the local grid map, and if the score is higher than a preset score threshold, designating the global exploration point as the target exploration point; if the score is not higher than the preset score threshold, continuing to select the next global exploration point from the target global exploration point set until all global exploration points in the target global exploration point set have been selected, or a target exploration point has been found; if there is no global exploration point in the target global exploration point set with a score higher than the preset score threshold, designating the global exploration point with the highest score as the target exploration point.
[0054] The scoring process described above actually involves searching for a path from the real-time pose to the global exploration point in the local grid map, and then scoring the global exploration point based on the found path.
[0055] In this embodiment, by using real-time acquired laser frames and pose information, and the instantaneous construction of a local grid map, the generated local exploration points can be ensured to have high real-time performance and accuracy. Simultaneously, using the local grid map for preliminary exploration point generation and filtering significantly reduces computational load and resource consumption compared to global searching. Furthermore, the two-stage validity check (first validity check and second validity check) further improves the efficiency of the exploration process, ensuring that only valuable exploration points are retained, thereby helping to reduce invalid exploration and potential risks, and increasing the success rate of the exploration task.
[0056] In some embodiments, the method further includes: constructing a local laser frame based on at least one historical laser frame adjacent to the real-time laser frame and the historical pose corresponding to each historical laser frame; and constructing the local grid map based on the local laser frame.
[0057] The lidar installed on the robot scans the environment at a preset frequency to obtain a sequence of laser frames. For this real-time laser frame, the at least one historical laser frame adjacent to the real-time laser frame is at least one adjacent laser frame in the laser frame sequence that precedes the real-time laser frame.
[0058] In some embodiments, the local laser frame can be constructed from at least one historical laser frame adjacent to the real-time laser frame and the historical pose corresponding to each historical laser frame; it can also be constructed from the real-time laser frame, the real-time pose, at least one historical laser frame adjacent to the real-time laser frame and the historical pose corresponding to each historical laser frame.
[0059] In some embodiments, for the at least one historical laser frame, since they are in different poses, each historical laser frame needs to be transformed to the coordinate system of the real-time laser frame (or another preset coordinate system) according to its corresponding historical pose. This generally involves rotation and translation operations to ensure that all laser frames are aligned when constructing the local laser frame. Then, the pose-transformed historical laser frames are fused with the real-time laser frames to obtain the local laser frame. The fusion process can be implemented through simple superposition, weighted averaging, or more complex fusion algorithms. The local laser frame obtained by this scheme contains information about the real-time laser frame and its neighboring historical laser frames, and can more comprehensively reflect the current state of the environment.
[0060] In some embodiments, after obtaining the complete local laser frame, the local grid map can be constructed based on the local laser frame: all laser points in the complete local laser frame are projected onto the two-dimensional coordinate system of the local grid map to determine the grid in which each laser point falls; then, based on the number of laser points in the grid, the grid state of each grid stored in the local grid map is determined. For example, if a grid is hit by multiple laser points and the number of hits exceeds a certain threshold (or the occupancy probability calculated according to the probability model exceeds a certain threshold), the grid can be considered to be occupied by an obstacle, and the grid state is set to occupied state; if a grid is not hit by laser points, or although it is hit, the number of hits is very small (and does not exceed the occupancy threshold), the grid can be considered to be idle, and the grid state is set to idle state; in some special cases (such as missing sensor data or noise interference), some grids may not be clearly classified as occupied or idle, and the state of these grids can be set to unknown state.
[0061] Figure 2 is a schematic diagram of the implementation flow of an exploration point generation method provided in an embodiment of this application. This method can be executed by the robot's processor. Based on Figure 1, step S101 in Figure 1 can be updated to steps S201 to S202, which will be explained in conjunction with the steps shown in Figure 2.
[0062] Step S201: In the real-time laser frame, determine the first laser point that hits the local grid map and / or the second laser point that does not hit the local grid map.
[0063] In some embodiments, for multiple laser points in a real-time laser frame, the laser points can be projected onto a two-dimensional coordinate system containing a local grid map to determine the grid in which each laser point falls. Then, using the grid states of each grid stored in the local grid map, it is determined whether the laser point hits the local grid map. It should be noted that hitting the local grid map here refers to the laser point falling into a grid that is in an "occupied state".
[0064] In other words, the types of laser points include a first laser point that hits the local grid map and a second laser point that does not hit the local grid map. If a laser point falls into a grid cell that is in an "occupied state" in the local grid map, the laser point is identified as the first laser point that hits the local grid map. If a laser point falls into a grid cell that is not in an "occupied state" (such as "idle state" or "unknown state") in the local grid map, the laser point is identified as the second laser point that does not hit the local grid map.
[0065] In some embodiments, the method further includes: preprocessing the local grid map to obtain a processed local grid map; the preprocessing includes at least one of the following: reducing the resolution of the local grid map, dilating obstacles in the local grid map; and using the processed local grid map to determine the type of each laser point in the real-time laser frame.
[0066] The resolution mentioned above refers to the actual spatial size represented by each grid cell. Lower resolution means larger grid cells and lower spatial accuracy. Dilation refers to setting the state of neighboring grid cells to "occupied" for grid cells (i.e., obstacles) in the aforementioned local grid map, thereby increasing the boundary range of obstacles and improving obstacle avoidance safety.
[0067] In some embodiments, the process of reducing the resolution of the local raster map described above may include: merging multiple rasters in the original raster map into a new, larger raster, and calculating the state of the new raster based on the state (occupied, idle, or unknown) of each merged raster in the original raster map to obtain a local raster map with reduced resolution.
[0068] In some embodiments, the process of expanding obstacles in a local grid map described above may include: obtaining an expansion radius, which is used to determine the extent to which the obstacle boundary expands outward; traversing each grid (i.e., obstacle) marked as occupied in the local grid map and expanding the surrounding grids; if a grid in an empty or unknown state is within the expansion radius, changing its state to occupied.
[0069] In the above embodiments, by reducing the resolution, the amount of computation is reduced and the map processing speed is accelerated; in addition, by expanding the obstacles, the safety of the obstacle boundaries is increased and the risk of collision between the robot and the obstacles is reduced.
[0070] Step S202: Generate the local exploration point based on the first laser point and / or the second laser point.
[0071] In some embodiments, when the first laser point exists, the local exploration point can be generated based on the first laser point through steps S2021 to S2023.
[0072] Step S2021: Cluster the first laser points to obtain at least two sets of first laser points.
[0073] The process of clustering the first laser points described above essentially groups laser points belonging to the same obstacle together for subsequent analysis. Here, a set of first laser points includes laser points belonging to the same obstacle.
[0074] In some embodiments, the clustering algorithm used in the above clustering process includes, but is not limited to, K-means, DBSCAN (Density-Based Spatial Clustering of Applications with Noise), etc., which groups the first laser point according to its spatial location. Accordingly, the clustering results can reflect the approximate shape and location of the obstacle.
[0075] Step S2022: In at least two sets of first laser points, determine the minimum spatial distance between any two adjacent sets of first laser points.
[0076] In this embodiment of the application, in order to find possible passage spaces, that is, areas that the robot can pass through without colliding with obstacles, this embodiment of the application can calculate the minimum spatial distance between every two adjacent sets of first laser points (considering the boundaries of obstacles). Generally, this distance should be the distance between the nearest points in the two sets of first laser points.
[0077] Step S2023: If the minimum spatial distance satisfies the robot's passage, generate the local exploration point based on the two first laser points corresponding to the minimum spatial distance.
[0078] In this embodiment of the application, after obtaining two obstacles that allow the robot to pass (i.e., the two sets of first laser points corresponding to the minimum spatial distance), it is necessary to select a suitable point as a local exploration point in the passage space corresponding to the minimum spatial distance to guide the robot to explore further.
[0079] In some embodiments, if the calculated minimum spatial distance is greater than or equal to the robot's minimum safe passage distance, a point is selected at or near the midpoint of that minimum spatial distance as a local exploration point. This local exploration point allows the robot to safely pass through the space between two obstacles. Of course, if the calculated minimum spatial distance is less than the robot's minimum safe passage distance, no corresponding local exploration point is generated.
[0080] In some embodiments, when the second laser point is present, the local exploration point can be generated based on the second laser point through steps S2024 to S2026.
[0081] Step S2024: Cluster the second laser points to obtain at least one set of second laser points.
[0082] In this embodiment of the application, compared to the clustering process in step S2021, step S2024 can use the same clustering algorithm or a different clustering algorithm, but this time it is to find possible unexplored areas or open spaces.
[0083] In some embodiments, the second laser points can be grouped using clustering algorithms (such as K-means, DBSCAN, etc.) to obtain at least one set of second laser points. Then, the cluster center of each set of second laser points is calculated. For example, the cluster center can be obtained by calculating the average or centroid of all second laser points within the set.
[0084] Step S2025: Determine the cluster center of each of the second laser point sets, and perform a third validity test on each of the cluster centers.
[0085] In some embodiments, the third validity detection includes determining the third validity detection result of the cluster center point based on the distance between the cluster center and the robot's historical trajectory. For example, if a cluster center is too close to the nearest trajectory point in the robot's historical trajectory (e.g., less than a preset threshold, which may mean that the area has already been explored), or too far away (e.g., greater than another preset threshold, which may mean that the area is not relevant enough for the current task or is difficult to reach), it may be considered invalid.
[0086] Step S2026: The cluster centers that pass the third validity test are determined as the local exploration points.
[0087] In this process, all cluster centers that pass the third validity test are considered valid local exploration points. These local exploration points can guide the robot to explore areas that have not yet been fully explored but have potential value in the current exploration task, in order to gain a more comprehensive understanding of the surrounding environment.
[0088] In this embodiment, the robot can generate effective local exploration points based on real-time laser data. The resulting global exploration points enable the robot to explore the current environment more intelligently and efficiently.
[0089] Figure 3 is a schematic diagram of the implementation process of an exploration point generation method provided in an embodiment of this application. This method can be executed by the robot's processor. Based on Figure 1, the step of "using the global exploration point set created based on the historical movement process to perform a first validity detection on the local exploration point" in Figure 1 can be implemented as step S301.
[0090] Step S301: Based on the spatial distance between the local exploration point and each global exploration point in the global exploration point set, determine the first validity detection result of the local exploration point.
[0091] In some embodiments, performing a second validity check on the set of exploration points to be verified, removing global exploration points that fail the second validity check, and obtaining a target set of global exploration points includes at least one of the following: determining the second validity check result of the global exploration points based on the spatial distance between the global exploration points and the viewpoint trajectory; the viewpoint trajectory is generated based on the viewpoint pose saved by the robot; searching for paths between the global exploration points and the viewpoint trajectory in the global grid map, and determining the second validity check result of the global exploration points based on the search results.
[0092] The second validity check, based on the spatial distance between the global exploration point and the viewpoint trajectory, essentially eliminates global exploration points that are too close by comparing the spatial distance between them. This is because a close distance might indicate that the area has already been explored by the robot or has a low priority in the current exploration task.
[0093] In some embodiments, a viewpoint trajectory is generated based on the viewpoint pose (i.e., the position and posture information of the robot at different points in time) saved by the robot; the minimum distance from each global exploration point to this viewpoint trajectory (i.e., the shortest distance from the global exploration point to all points on the trajectory) is calculated; if this minimum distance is less than a preset threshold, the global exploration point is considered to be too close to the viewpoint trajectory and should be removed.
[0094] The second validity check, which involves searching for paths between global exploration points and viewpoint trajectories in the global grid map, is actually a further verification of the validity of global exploration points by searching for valid paths between global exploration points and viewpoint trajectories in the actual global grid map. In some embodiments, this may include checking whether a path exists and whether the path length is reasonable.
[0095] In some embodiments, the JPS algorithm or other path planning algorithms are used to search for a valid path from a global exploration point to the viewpoint trajectory (or a point on the viewpoint trajectory) in the global grid map. If no valid path is found, the global exploration point is considered unreachable in the current global map and should be removed. If a valid path is found, but the path length exceeds a preset threshold, the path is considered too long and may not meet the needs of the current exploration task, so the global exploration point should also be removed.
[0096] In this embodiment, by detecting the two aspects mentioned above, global exploration points that do not meet specific conditions can be removed, thereby obtaining a more effective and feasible set of target global exploration points. These target global exploration points will serve as guidance for the robot's next exploration action, helping the robot to complete the exploration task more efficiently.
[0097] In some embodiments, the global exploration point set is stored in a global exploration point tree, which includes a plurality of first nodes connected in sequence and second nodes connected to the first nodes; the first nodes are nodes corresponding to viewpoint poses, and the second nodes are nodes corresponding to global exploration points;
[0098] The aforementioned set of global exploration points is stored in the form of a global exploration point tree. This tree-structured data structure effectively organizes the relationship between viewpoint pose (first node) and global exploration points (second node), making data addition, deletion, modification, and query operations more intuitive and efficient.
[0099] The step in Figure 1, "adding the local exploration points that pass the first validity test as global exploration points to the global exploration point set to obtain the set of exploration points to be verified", can be updated to steps S302 and S303.
[0100] Step S302: The new first node corresponding to the real-time pose is taken as the child node of the last first node in the global exploration point tree.
[0101] In this embodiment of the application, step S302 includes: creating a new first node, which contains real-time pose data; and adding this new first node to the global exploration point tree as a child node of the current last first node.
[0102] In this approach, the node corresponding to the robot's current real-time pose (i.e., the new viewpoint pose) is used as a new first node in the global exploration point tree, and then connected to the last existing first node (i.e., the last viewpoint pose node) in the tree as its child node. In this way, the global exploration point tree can reflect the robot's movement trajectory over time (i.e., the viewpoint trajectory in the above embodiment).
[0103] Step S303: The local exploration point that passes the first validity test is taken as the global exploration point, and the new second node corresponding to the global exploration point is taken as the child node of the new first node, so as to obtain the global exploration point tree to be verified; the global exploration point tree includes the set of exploration points to be verified.
[0104] In this embodiment of the application, step S303 includes: taking each of the at least one local exploration point that has passed the first validity test as a global exploration point, creating a new second node for the global exploration point, the new second node containing information related to the global exploration point; connecting these new second nodes as child nodes of the new first node created in step S302 to the new first node to add them to the global exploration point tree, thereby obtaining a global exploration point tree to be verified; at this time, all the second nodes in the global exploration point tree constitute the set of global exploration points to be verified, i.e., the set of exploration points to be verified.
[0105] In the above embodiments, the robot's viewpoint trajectory and global exploration point set are stored through a global exploration point tree. This data structure not only helps the robot plan its next exploration path but also allows for quick retrieval and modification of exploration point information when needed. Furthermore, because the global exploration point tree is a tree structure, it has high query efficiency and low storage space consumption, making it suitable for use in resource-constrained robot systems.
[0106] Accordingly, step S103 can be updated to step S304.
[0107] Step S304: Based on the global exploration point tree to be verified, perform a second validity check on the global exploration points stored in the global exploration point tree to be verified, remove the second nodes corresponding to the global exploration points that fail the second validity check, and obtain the target global exploration point tree.
[0108] In some embodiments, the aforementioned global exploration point tree to be verified includes a viewpoint trajectory and a set of exploration points to be verified. The viewpoint trajectory is stored using all first nodes in the global exploration point tree to be verified, and the set of exploration points to be verified is stored using all second nodes in the global exploration point tree to be verified.
[0109] In some embodiments, the above-described second validity detection of global exploration points stored in the global exploration point tree to be verified includes at least one of steps S3041 and S3042.
[0110] Step S3041: Based on the first node in the global exploration point tree to be verified, determine the robot's viewpoint trajectory; based on the spatial distance between the global exploration point and the viewpoint trajectory, determine the second validity detection result of the global exploration point.
[0111] In this embodiment of the application, in the global exploration point tree to be verified, all the first nodes represent the viewpoint poses of the robot at different time points. In order to determine the viewpoint trajectory, it is necessary to traverse all the first nodes in the global exploration point tree to be verified and connect the viewpoint poses corresponding to these first nodes according to the order in which they appear in the global exploration point tree to be verified (or according to other information such as timestamps) to obtain the viewpoint trajectory of the robot.
[0112] In some embodiments, the spatial distance between each global exploration point (i.e., the second node) and the viewpoint trajectory is calculated. Based on the calculated spatial distance, it can be determined whether the global exploration point is far enough away from the viewpoint trajectory. If the spatial distance is less than a certain preset threshold, the global exploration point may be considered to have been explored or no longer needs to be explored in depth, so the global exploration point needs to be removed. If the spatial distance is large, the global exploration point is considered to be a valuable exploration target and the global exploration point is retained.
[0113] Step S3042: Search for the path between the global exploration point and the viewpoint pose corresponding to the first node in the global exploration point tree to be verified in the global grid map, and determine the second validity detection result of the global exploration point based on the search results.
[0114] In some embodiments, the JPS algorithm or other path planning algorithms can be used to search for a valid path from a global exploration point to the viewpoint trajectory (or a point on the viewpoint trajectory) in the global grid map. If no valid path is found, the global exploration point is considered unreachable in the current global map and should be removed. If a valid path is found, but the path length exceeds a preset threshold, the path is considered too long and may not meet the needs of the current exploration task, so the global exploration point should also be removed.
[0115] Figure 4 is a schematic diagram of the implementation flow of an exploration point generation method provided in an embodiment of this application. This method can be executed by the robot's processor. Based on Figure 1, S104 in Figure 1 can be updated to steps S401 to S403, which will be explained in conjunction with the steps shown in Figure 4.
[0116] Step S401: For each global exploration point in the target global exploration point set, search for a path from the real-time pose to the global exploration point based on the local grid map to obtain the path search result.
[0117] It's important to note that the search path here refers to the local grid map corresponding to the real-time pose, not the global grid map. The global grid map typically contains detailed information about the entire exploration environment, requiring consideration of a large number of data points and complex obstacle situations when searching for a path. The local grid map, however, only contains environmental information within the robot's current field of view. Therefore, searching for a path in the local grid map significantly reduces the computational load of the path search algorithm compared to searching in the global grid map.
[0118] In some embodiments, the JPS algorithm or other path planning algorithms can be used to search for an effective path from the real-time pose to the global exploration point in a local grid map, thereby obtaining the path search result.
[0119] Step S402: Based on the path search results of each of the global exploration points, determine the priority of at least two candidate global exploration points in the target global exploration point set.
[0120] In some embodiments, the method further includes: if there are path search results indicating that a global exploration point exists on a local raster map, determining the global exploration point with the path as the candidate global exploration point; if there are no path search results indicating that a global exploration point exists on a local raster map, determining all global exploration points in the target global exploration point set as the candidate global exploration points.
[0121] In some embodiments, if the path search results indicate the existence of a valid path from the real-time pose to a global exploration point in the local map, then that global exploration point is identified as the candidate global exploration point. In other embodiments, if there is only one target global exploration point or candidate global exploration point, then that target global exploration point or global exploration point is directly identified as the target exploration point.
[0122] In some embodiments, after obtaining at least two candidate global exploration points, the priority of each candidate global exploration point can be determined based on the path search results corresponding to each candidate global exploration point. The path search results may include path information between the candidate global exploration point and the current pose. In some embodiments, the path information may include at least one of the following: distance, direction, and neighboring grid information along the path. The path information can be used to determine the priority of each candidate global exploration point.
[0123] In some embodiments, the method for determining the priority of candidate global exploration points includes: scoring the candidate global exploration points based on at least one dimension to obtain the score of the candidate global exploration points in each dimension; and performing a weighted summation of the scores of the candidate global exploration points in each dimension based on the weights corresponding to each dimension to obtain the priority of the candidate global exploration points.
[0124] The at least one dimension includes at least one of the following: exploration dimension, distance dimension, and orientation dimension; the score of the exploration dimension is related to the grid state of each grid on the path corresponding to the candidate global exploration point; the distance dimension is related to the length of the path corresponding to the candidate global exploration point; and the orientation dimension is related to the relative orientation of the candidate global exploration point with respect to the real-time pose.
[0125] In some embodiments, the priority score of the candidate global exploration point is determined according to the priority function to obtain the priority of the candidate global exploration point. The priority function is shown in formula (1): costfunction_G=ω1g s +ω2g d +ω3g o Formula (1); where ω1, ω2, and ω3 are the weights of the exploration dimension, the distance dimension, and the direction dimension, respectively. s g d and g o These are the scores for the exploration dimension, the distance dimension, and the direction dimension, respectively. Generally, ω1, ω2, and ω3 are all between 0 and 1.
[0126] In some embodiments, the exploration dimension score can be obtained by counting the number of grid cells with unknown states around the searched path. The more grid cells with unknown states, the higher the exploration dimension score.
[0127] In some embodiments, the score for the exploration dimension can be determined by the length of the searched path. The shorter the path length, the higher the score for the distance dimension.
[0128] In some embodiments, the orientation dimension score can be obtained by calculating the relative orientation between the robot's current orientation and the candidate global exploration point. The closer the robot's current pose is to the candidate global exploration point (target point), the higher the orientation dimension score.
[0129] In this embodiment of the application, the priority score of each candidate global exploration point can be determined as its priority. Accordingly, the higher the priority score, the higher the priority.
[0130] In some embodiments, when no path search results indicate that a target global exploration point exists on the local grid map, all target global exploration points are identified as candidate global exploration points. In this case, it is necessary to determine the path from the real-time pose to each candidate global exploration point in the global grid map, and based on this path, determine the priority of each candidate global exploration point. It should be noted that the method for determining the priority of candidate global exploration points in this embodiment is consistent with the method in the above embodiment (i.e., when a path search results indicate that a target global exploration point exists on the local grid map), but in both cases, the weights of the exploration dimension, distance dimension, and direction dimension can be the same or different.
[0131] Step S403: Determine the highest priority candidate global exploration point as the target exploration point.
[0132] In this embodiment, by determining the priority of candidate global exploration points, the robot can more intelligently select the next exploration target. The priority determination considers multiple dimensions, such as exploration, distance, and direction, thereby enabling the robot to achieve efficient and orderly exploration.
[0133] Figure 5 is a schematic flowchart illustrating the implementation of an exploration point generation method provided in an embodiment of this application. This method can be executed by the robot's processor. Based on Figure 1, the method further includes steps S501 to S502, which will be described in conjunction with the steps shown in Figure 5.
[0134] Step S501: Control the robot to move towards the target exploration point.
[0135] Based on the current pose and target position, a movement path is planned. The robot's motion control system sends control commands to the actuators (such as motors) to drive the robot along the planned path. In some embodiments, the robot's pose changes can be monitored in real time to control the robot to move along the expected path.
[0136] Step S502: During the movement of the target exploration point, a global grid map is constructed based on the acquired laser frames and corresponding poses.
[0137] During robot movement, laser frame data is continuously collected and combined with real-time pose information to dynamically construct a global grid map using SLAM algorithms or similar techniques. SLAM algorithms can simultaneously estimate the robot's pose and build an environmental map, enabling real-time map updates.
[0138] In some embodiments, the method further includes: in response to the target global exploration point set being empty, controlling the robot to move to the mapping starting point and saving the grid map constructed during the movement.
[0139] For example, suppose a robot is performing an exploration task in an unknown environment, with the goal of traversing and constructing a global grid map of the entire environment. After finding the first target exploration point, the robot begins to move towards it (step S501). During the movement, the robot continuously collects environmental data (laser frames) using LiDAR and combines it with its own pose information to construct and update the global grid map in real time (step S502). When the robot reaches the target exploration point, if there are new exploration points to visit, the above process is repeated; if the target global exploration point set is empty, the robot may return to the mapping starting point and save the finally constructed global grid map.
[0140] In this embodiment, the robot can autonomously move in an unknown environment and simultaneously construct a global grid map of the environment. This not only improves the robot's autonomy and intelligence but also provides crucial environmental information support for its subsequent navigation, path planning, and task execution. Furthermore, when the target global exploration point set is empty, the robot can return to the mapping starting point and save the map, which helps ensure the integrity of the exploration task and the reusability of the data.
[0141] The following describes the application of the exploration point generation method provided in the embodiments of this application in a real-world scenario, mainly involving a global positioning scheme in a large-scale indoor scene.
[0142] The overall process of this application method is shown in Figure 6. The inputs of the exploration point generation scheme provided in this embodiment include laser frames (laser point cloud frames) 71 generated by the lidar and real-time robot pose information 72. The pose information 72 is acquired by the pose acquisition module and used as the input of this scheme. The positioning information can be provided by a wheel odometry system or by SLAM or other positioning methods. By acquiring the laser frames 71 and pose information 72 in real time, a local grid map is generated by the local map module 73. The local exploration point module 74 uses the local grid map to generate local exploration points and transmits them to the global exploration point module 75 for processing. When the global exploration points are not an empty set, the optimal exploration point publishing module 78 publishes the target exploration point and controls the robot to move to the designated target exploration point through the motion control module 79. During the robot's movement, the global map is constructed and new local exploration points are generated by the map building module 710. When all global exploration points have been traversed and the global exploration points are an empty set, the map saving module 76 saves the grid map 77 and the motion control module 79 controls the robot to return to the mapping start point and end the exploration mapping.
[0143] The local map module 73 receives laser frames 71 and real-time pose information 72, and utilizes several adjacent laser frames F = {F... i ,F i+1 ,...,F j-1 ,F j} and the pose during the acquisition of each laser frame (which can be the pose of the sensor / component acquiring the laser frame, or the robot's pose) T = {T i ,T i+1 ,...,T j-1 ,T j} spliced together to form a large laser frame F M And by this large laser frame F M Generate a local raster map M local The local map module 73 is continuously updated as the robot moves. local In some embodiments, the lidar acquires the aforementioned laser frames based on a preset frequency. Accordingly, after each acquisition of a laser frame, a local grid map M is constructed based on that laser frame and several neighboring laser frames. local .
[0144] The overall process of the local exploration point module 74 is shown in Figure 7. It utilizes a local grid map M. local 741. Current robot pose T cur and the current laser frame F cur 742 Generate local exploration points 743. First, reduce the local raster map M using the resolution module 744. local The resolution is determined, and the obstacles are dilated using the dilation processing module 745 to obtain the processed local raster map M'. local Then determine the current laser frame F. cur Did it hit the local raster map M'? local If laser frame F cur Missed local raster map M' local Then, the clustering module 746 is used to analyze the non-hit local raster map M' local The laser points are clustered to find the center of each laser point, and the validity detection module 747 performs validity detection processing. The validity is judged by detecting the distance between these clustered center points and the robot's historical trajectory (third validity detection). If the spatial distance between these clustered center points and the robot's historical trajectory is too close, they are considered invalid; otherwise, these clustered center points are generated as local exploration points.
[0145] The hit point determination module 748 determines the hit local grid map M'. local The set of laser points, and the hit point processing module 749 based on the aforementioned hit local grid map M' localThe laser point set is used to find the endpoints of each obstacle, and it is determined whether the spatial distance between these endpoints allows the robot to pass. If the robot can pass, the midpoint of the nearest endpoints of the two obstacles is taken as a local exploration point; otherwise, no local exploration point is generated. In some embodiments, a clustering algorithm can be used to analyze the hit local grid map M'. local The laser point sets are clustered, and each resulting laser point set represents an obstacle's laser point set. Then, the distances between each pair of laser points in the two laser point sets corresponding to two obstacles are calculated. The minimum distance between the two obstacles is determined as the total distance between them. Specifically, the distance between each pair of laser points in two laser point sets is calculated by taking a laser point from one set and then calculating the distance between each laser point in the other set, and so on, repeating this process for each laser point in the set until the minimum distance is obtained.
[0146] The overall process of the global exploration point module 75 is shown in Figure 8. First, the received local exploration points 751 are converted into a tree structure by the tree structure module 752 for subsequent fast searching and operation. Then, the local exploration points are subjected to validity detection (first validity detection). This validity detection is used to determine whether the spatial distance between the local exploration point and the existing global exploration points is greater than or equal to a preset distance threshold. If not, the local exploration point is directly deleted; if so, the local exploration point and the current robot pose of observing these local exploration points are recorded by the recording module 753 as viewpoint T. eye Furthermore, by using global exploration point tree block 754, local exploration points that have undergone validity checks (first validity checks) are added to the global exploration point tree, and further validity checks (second validity checks) are performed on the global exploration points.
[0147] It is understandable that, for all local exploration points corresponding to a pose, after performing a validity check (first validity check), the remaining local exploration points are added to the global exploration point tree as child nodes corresponding to the nodes of the current pose (viewpoint). Please refer to Figure 9, which shows a schematic diagram of the structure of a global exploration point tree. The black nodes are viewpoints generated during the exploration process, and the nodes connected to each viewpoint are the global exploration points that the robot can observe from that viewpoint. Taking viewpoint 90 as an example, when the robot is at viewpoint 90, all local exploration points under that pose are first acquired. After performing the first validity check, three local exploration points are left. Then, viewpoint 90 is inserted into the global exploration point tree after the previous viewpoint, and these three local exploration points are added to the global exploration point tree as global exploration points and as child nodes corresponding to viewpoint 90. Nodes 91, 92, and 93 are the three global exploration points under viewpoint 90.
[0148] In some embodiments, the above-mentioned second validity detection for global exploration points may include: (1) if a global exploration point is far from the historical trajectory (by all viewpoints T) eye If the distance of the formed trajectory is less than the threshold, the global exploration point is removed. (2) If the JPS (Jump Point Search) graph search algorithm is used on the low-resolution global map M, the global exploration point is removed. global If no valid path from the historical trajectory to the global exploration point can be found, the global exploration point will be removed. (3) If a valid path is found using JPS, but the length of the valid path is greater than the threshold, the global exploration point will be removed.
[0149] After verifying the validity of all global exploration points, global exploration point 755 is sent to the optimal exploration point publishing module 78.
[0150] The optimal exploration point publishing module 78 utilizes the current robot pose and viewpoint T. eye Local raster map M local Prioritize all global exploration points. First, prioritize the local raster map M. local Map M' is obtained by performing low-resolution and obstacle dilation processing. local .
[0151] If in a low-resolution local raster map M' local If a global exploration point can be reached directly from the top, then these exploration points are given priority. The priority scores of the candidate global exploration points are determined according to the priority function to obtain the priority of the candidate global exploration points. The priority function is shown in Formula (1).
[0152] If the global exploration point is not on the low-resolution map M' local In the middle, the weights of ω2 and ω3 are adjusted, and the priority function costfunction_G sorts all global exploration points by priority. Then, the highest priority point is published as the target exploration point P for the robot's movement. goal .
[0153] It should be noted that the above priority sorting process is carried out in response to the robot reaching the previous target exploration point. No new target exploration points are generated during the process of the robot reaching the previous target exploration point.
[0154] The motion control module 79 utilizes the current robot pose T cur 1. Moving target exploration point P goal and global map M global The JPS graph search algorithm generates the optimal motion path based on this information, and generates corresponding real-time robot motion control information to control the robot to move to the target exploration point P. goalDuring the robot's movement, the local exploration point module continuously generates new local exploration points to sustain the mapping process.
[0155] During the robot's movement, the map building module 710 utilizes the laser frames F stored during the exploration and mapping process. m ={F1,F2,...,F n-1 ,F n} and the pose during the acquisition of each laser frame (which can be the pose of the sensor / component acquiring the laser frame, or the robot's pose) T m ={T1,T2,...,T n-1 ,T n Generate raster map M global .
[0156] During the exploration and mapping process, the global exploration point module 75 checks the validity of global exploration points. During this check, some global exploration points are removed, including those already published by the optimal exploration point publishing module. Finally, after the robot has traversed the entire environment and no new global exploration points are available for publishing, the motion control module 79 controls the robot to return to the mapping starting point, and the map saving module 76 saves the grid map M. global End the exploration and mapping process.
[0157] In this embodiment, local exploration points are generated using a local grid map. After verifying the validity of these local exploration points, they are added to the global exploration points. The optimal exploration point is then selected from the global exploration points, resulting in the closest and shortest optimal path. Furthermore, global exploration points are dynamically updated and deleted during robot movement to prevent redundant path planning. A local map is constructed from the robot's surrounding environment, and local exploration points are generated from this map. After verifying the local exploration points, valid local exploration points are added to the global exploration points, and the validity of the global exploration points is checked, removing points that are too close together or unnecessary to explore. A tree structure is used to maintain the global exploration points, making searching and deletion operations faster and more convenient. This method utilizes a jump-point graph search algorithm to quickly search for paths to each global exploration point, compares the paths, and selects the optimal path for exploration. The jump-point graph search algorithm reduces the time spent calculating exploration paths and improves the efficiency of exploration and mapping.
[0158] Based on the foregoing embodiments, this application provides an exploration point generation device, which includes various units and modules included in each unit. It can be implemented by a processor in a robot; of course, it can also be implemented by specific logic circuits. In the implementation process, the processor can be a central processing unit (CPU), a microprocessor unit (MPU), a digital signal processor (DSP), or a field programmable gate array (FPGA), etc.
[0159] Figure 10 is a schematic diagram of the composition structure of an exploration point generation device provided in an embodiment of this application. As shown in Figure 10, the exploration point generation device 1000 includes: a generation module 1010, a first validity detection module 1020, a second validity detection module 1030, and a determination module 1040.
[0160] The generation module 1010 is used to generate local exploration points based on the robot's real-time pose, real-time laser frames, and local grid map.
[0161] The first validity detection module 1020 is used to perform a first validity detection on the local exploration points based on the current global exploration point set, and add the local exploration points that pass the first validity detection as global exploration points to the global exploration point set, so as to obtain the set of exploration points to be verified.
[0162] The second validity detection module 1030 is used to perform a second validity detection on the set of exploration points to be verified, and remove global exploration points that fail the second validity detection from the set of exploration points to be verified, so as to obtain a target global exploration point set as the new global exploration point set.
[0163] The determination module 1040 is used to, in response to receiving an exploration point generation event, determine a target exploration point as the robot's moving destination from the target global exploration point set based on the real-time pose and the local grid map.
[0164] In some embodiments, the generation module 1010 is further configured to: construct a local laser frame based on at least one historical laser frame adjacent to the real-time laser frame and the historical pose corresponding to each historical laser frame; and construct the local grid map based on the local laser frame.
[0165] In some embodiments, the generation module 1010 is further configured to: determine, in the real-time laser frame, a first laser point that hits the local grid map and / or a second laser point that does not hit the local grid map; and generate the local exploration point based on the first laser point and / or the second laser point.
[0166] In some embodiments, the generation module 1010 is further configured to: cluster the first laser point to obtain at least two sets of first laser points when the first laser point exists; determine the minimum spatial distance between any two adjacent sets of first laser points in the at least two sets of first laser points; generate the local exploration point based on the two first laser points corresponding to the minimum spatial distance when the minimum spatial distance satisfies robot passage; cluster the second laser point to obtain at least one set of second laser points when the second laser point exists; perform a third validity test on the cluster centers of each set of second laser points; and determine the cluster centers that pass the third validity test as the local exploration point.
[0167] In some embodiments, the generation module 1010 is further configured to: preprocess the local grid map to obtain a processed local grid map; the preprocessing includes at least one of the following: reducing the resolution of the local grid map, dilating obstacles in the local grid map; and using the processed local grid map to determine the type of each laser point in the real-time laser frame.
[0168] In some embodiments, the first validity detection module 1020 is further configured to: determine the first validity detection result of the local exploration point based on the spatial distance between the local exploration point and each global exploration point in the global exploration point set.
[0169] In some embodiments, the global exploration point set is stored in a global exploration point tree, and the first validity detection module 1020 is further configured to: generate a node corresponding to the real-time pose as a first node connected to the last first node in the global exploration point tree, wherein the first node in the global exploration point tree corresponds to the viewpoint pose of the robot; for each local exploration point that passes the first validity detection, generate a node corresponding to the local exploration point as a second node connected to the new first node, wherein the second node in the global exploration point tree corresponds to the global exploration point.
[0170] In some embodiments, the second validity detection module 1030, when performing a second validity detection on the set of exploration points to be verified, is specifically used for at least one of the following: determining the robot's viewpoint trajectory based on multiple first nodes in the global exploration point tree corresponding to the set of exploration points to be verified, and determining the second validity detection result of the global exploration point corresponding to each second node based on the spatial distance between each second node in the global exploration point tree and the viewpoint trajectory; or searching in the global grid map for the path between each second node in the global exploration point tree corresponding to the set of exploration points to be verified and each first node in the global exploration point tree, and determining the second validity detection result of the global exploration point corresponding to the second node based on the search result.
[0171] In some embodiments, the second validity detection module 1030 is further configured to: determine a second validity detection result of the global exploration point based on the spatial distance between the global exploration point and the viewpoint trajectory; the viewpoint trajectory is generated based on the viewpoint pose saved by the robot; search for paths between the global exploration point and the viewpoint trajectory in the global grid map, and determine a second validity detection result of the global exploration point based on the search results.
[0172] In some embodiments, the exploration point generation event includes at least one of the following: the robot reaches the previous target exploration point; the robot detects that it cannot reach the previous target exploration point while moving towards it; and the exploration point generation cycle is reached.
[0173] In some embodiments, the determining module 1040 is further configured to: for each global exploration point in the target global exploration point set, search for a path from the real-time pose to the global exploration point based on the local grid map to obtain a path search result; determine the priority of at least two candidate global exploration points in the target global exploration point set based on the path search results of each global exploration point; and determine the candidate global exploration point with the highest priority as the target exploration point.
[0174] In some embodiments, the determining module 1040 is further configured to: determine the target global exploration point containing the path as the candidate global exploration point when there is a path search result indicating that the local raster map contains the target global exploration point; and determine all target global exploration points as the candidate global exploration points when there is no path search result indicating that the local raster map contains the target global exploration point.
[0175] In some embodiments, the determining module 1040 is further configured to: score the candidate global exploration point based on at least one dimension to obtain the score of the candidate global exploration point in each dimension; and perform a weighted summation of the scores of the candidate global exploration point in each dimension based on the weights corresponding to each dimension to obtain the priority of the candidate global exploration point; wherein the at least one dimension includes at least one of the following: exploration dimension, distance dimension, and orientation dimension; the score of the exploration dimension is related to the grid state of each grid on the path corresponding to the candidate global exploration point, the distance dimension is related to the length of the path corresponding to the candidate global exploration point, and the orientation dimension is related to the relative orientation of the candidate global exploration point with respect to the real-time pose.
[0176] In some embodiments, the exploration point generation device 1000 further includes a control module. The control module is configured to: control the robot to move toward the target exploration point; and during the movement toward the target exploration point, construct a global grid map based on acquired laser frames and corresponding poses.
[0177] In some embodiments, the control module is further configured to: in response to the target global exploration point set being empty, control the robot to move to the mapping starting point and save the grid map constructed during the movement.
[0178] The descriptions of the apparatus embodiments above are similar to those of the method embodiments above, and have similar beneficial effects. In some embodiments, the functions or modules included in the apparatus provided in this application can be used to perform the methods described in the method embodiments above. For technical details not disclosed in the apparatus embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0179] It should be noted that, in the embodiments of this application, if the above-described exploration point generation method is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiments of this application, or the part that contributes to the related technology, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a robot (which may be a service robot, industrial robot, exploration robot, or mobile robot, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, mobile hard drives, read-only memory (ROM), magnetic disks, or optical disks. Thus, the embodiments of this application are not limited to any specific hardware, software, or firmware, or any combination of hardware, software, and firmware.
[0180] This application provides a robot including a memory and a processor. The memory stores a computer program that can run on the processor. When the processor executes the program, it implements some or all of the steps in the above-described method.
[0181] This application provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor, implements some or all of the steps in the above-described method. The computer-readable storage medium can be transient or non-transient.
[0182] This application provides a computer program including computer-readable code, wherein when the computer-readable code is run in a robot, a processor in the robot performs some or all of the steps in the above-described method.
[0183] This application provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program. When the computer program is read and executed by a computer, it implements some or all of the steps in the above-described method. This computer program product can be implemented specifically through hardware, software, or a combination thereof. In some embodiments, the computer program product is specifically embodied as a computer storage medium; in other embodiments, the computer program product is specifically embodied as a software product, such as a software development kit (SDK), etc.
[0184] It should be noted that the descriptions of the various embodiments above tend to emphasize the differences between them, while their similarities or commonalities can be referred to interchangeably. The descriptions of the above embodiments of the device, storage medium, computer program, and computer program product are similar to the descriptions of the above method embodiments and have similar beneficial effects. For technical details not disclosed in the embodiments of the device, storage medium, computer program, and computer program product of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0185] Figure 11 is a schematic diagram of the hardware entity of a robot provided in an embodiment of this application. As shown in Figure 11, the hardware entity of the robot 1100 includes a processor 1101 and a memory 1102. The memory 1102 stores a computer program that can run on the processor 1101. When the processor 1101 executes the program, it implements the steps in the method of any of the above embodiments.
[0186] The memory 1102 stores computer programs that can run on the processor. The memory 1102 is configured to store instructions and applications that can be executed by the processor 1101. It can also cache data to be processed or already processed (e.g., image data, audio data, voice communication data, and video communication data) of the processor 1101 and various modules in the robot 1100. It can be implemented by flash memory or random access memory (RAM).
[0187] When processor 1101 executes the program, it implements the steps of the exploration point generation method described above. Processor 1101 typically controls the overall operation of robot 1100.
[0188] This application provides a computer storage medium storing one or more programs that can be executed by one or more processors to implement the steps of the exploration point generation method as described in any of the above embodiments.
[0189] It should be noted that the descriptions of the storage medium and device embodiments above are similar to those of the method embodiments above, and have similar beneficial effects. For technical details not disclosed in the storage medium and device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.
[0190] The aforementioned processor can be at least one of the following: Application Specific Integrated Circuit (ASIC), Digital Signal Processor (DSP), Digital Signal Processing Device (DSPD), Programmable Logic Device (PLD), Field Programmable Gate Array (FPGA), Central Processing Unit (CPU), Controller, Microcontroller, and Microprocessor. It is understood that other electronic devices can also implement the functions of the aforementioned processor, and this application does not specifically limit the specific implementation.
[0191] The aforementioned computer storage media / memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM), etc.; or it can be various terminals that include one or any combination of the above-mentioned memories, such as mobile phones, computers, tablet devices, personal digital assistants, etc.
[0192] It should be understood that the phrase "one embodiment" or "an embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above steps / processes do not imply a sequential order of execution; the execution order of each step / process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above embodiments of this application are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0193] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0194] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative. For example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple units or components can be combined, or integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the various components shown or discussed can be through some interfaces, and the indirect coupling or communication connection between devices or units can be electrical, mechanical, or other forms.
[0195] The units described above as separate components may or may not be physically separate. The components shown as units may or may not be physical units. They may be located in one place or distributed across multiple network units. Some or all of the units may be selected to achieve the purpose of this embodiment according to actual needs.
[0196] Furthermore, in the various embodiments of this application, all functional units can be integrated into one processing unit, or each unit can be a separate unit, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or in a combination of hardware and software functional units. Those skilled in the art will understand that all or part of the steps of the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps of the above method embodiments. The aforementioned storage medium includes various media capable of storing program code, such as mobile storage devices, read-only memory (ROM), magnetic disks, or optical disks.
[0197] The above description is merely an embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.
Claims
An exploration point generation method, applied to a robot, the method comprising: Based on the robot's real-time pose, real-time laser frames, and local grid map, local exploration points are generated; The local exploration points are first validity tested using the current global exploration point set, and the local exploration points that pass the first validity test are added to the global exploration point set as global exploration points to obtain the exploration point set to be verified. A second validity check is performed on the set of exploration points to be verified, and global exploration points that fail the second validity check are removed from the set of exploration points to be verified, resulting in a target set of global exploration points as the new set of global exploration points; In response to receiving an exploration point generation event, based on the real-time pose and the local grid map, a target exploration point is determined from the target global exploration point set as the robot's moving destination. The method according to claim 1, characterized in that, The generation of local exploration points based on the robot's real-time pose, real-time laser frames, and local grid map includes: In the real-time laser frame, a first laser point that hits the local grid map and / or a second laser point that does not hit the local grid map are identified; The local exploration point is generated based on the first laser point and / or the second laser point. The method according to claim 2, characterized in that, The generation of the local exploration point based on the first laser point and / or the second laser point includes at least one of the following: In the presence of the first laser point Cluster the first laser points to obtain at least two sets of the first laser points; In the at least two sets of first laser points, determine the minimum spatial distance between any two adjacent sets of first laser points; as well as If the minimum spatial distance satisfies the robot's passage conditions, the local exploration point is generated based on the two first laser points corresponding to the minimum spatial distance; In the presence of the second laser point Cluster the second laser points to obtain at least one set of second laser points; A third validity test is performed on the cluster centers of each of the second laser point sets; and The cluster centers that pass the third validity test are identified as the local exploration points. The method according to any one of claims 1 to 3, characterized in that, The global exploration point set is stored in the global exploration point tree. The step of adding the local exploration points that pass the first validity test as global exploration points to the global exploration point set includes: Generate a node corresponding to the real-time pose, and use it as a new first node connected to the last first node in the global exploration point tree, wherein the first node in the global exploration point tree corresponds to the robot's viewpoint pose; For each local exploration point that passes the first validity test, a node corresponding to the local exploration point is generated as a second node connected to the new first node, wherein the second node in the global exploration point tree corresponds to the global exploration point. The method according to claim 4, characterized in that, The second validity check on the set of exploration points to be verified includes at least one of the following: Based on multiple first nodes in the global exploration point tree corresponding to the set of exploration points to be verified, the robot's viewpoint trajectory is determined, and based on the spatial distance between each second node in the global exploration point tree and the viewpoint trajectory, a second validity detection result for the global exploration point corresponding to each second node is determined; or In the global grid map, search for the path between each second node in the global exploration point tree corresponding to the set of exploration points to be verified and each first node in the global exploration point tree, and determine the second validity detection result of the global exploration point corresponding to the second node based on the search result. The method according to any one of claims 1 to 5, characterized in that, The step of determining the target exploration point from the target global exploration point set based on the real-time pose and the local grid map includes: For each global exploration point in the target global exploration point set, a path from the real-time pose to the global exploration point is searched based on the local grid map to obtain the path search result; Based on the path search results of each global exploration point, determine the priority of at least two candidate global exploration points in the target global exploration point set; The highest priority candidate global exploration point is determined as the target exploration point. The method according to claim 6, characterized in that, The methods for determining the priority of candidate global exploration points include: The candidate global exploration point is scored based on at least one dimension to obtain the score of the candidate global exploration point in each dimension. Based on the weight corresponding to each dimension, the scores of the candidate global exploration points in each dimension are weighted and summed to obtain the priority of the candidate global exploration points; The at least one dimension includes at least one of the following: exploration dimension, distance dimension, and orientation dimension; the score of the exploration dimension is related to the grid state of each grid on the path corresponding to the candidate global exploration point; the distance dimension is related to the length of the path corresponding to the candidate global exploration point; and the orientation dimension is related to the relative orientation of the candidate global exploration point with respect to the real-time pose. An exploration point generation device, the device comprising: The generation module is used to generate local exploration points based on the robot's real-time pose, real-time laser frames, and local grid map; The first validity detection module is used to perform a first validity detection on the local exploration points using a global exploration point set created based on the historical movement process, and add the local exploration points that pass the first validity detection as global exploration points to the global exploration point set to obtain a set of exploration points to be verified. The second validity detection module is used to perform a second validity detection on the set of exploration points to be verified, remove global exploration points that fail the second validity detection, and obtain the target global exploration point set; A determination module is used to determine the target exploration point in the target global exploration point set based on the real-time pose and the local grid map in response to receiving an exploration point generation event. A robot includes a memory and a processor, the memory storing a computer program executable on the processor, the processor executing the program to implement the steps of the method according to any one of claims 1 to 7. A computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Leading-edge target point generation method for automatic exploration of mobile robot
CN106197421A
Indoor mobile robot autonomous exploration method based on laser radar
CN108592912A
Exploration method and device based on reinforcement learning and intelligent equipment
CN114859932A
Robot map generation method and device, storage medium and mobile robot
CN115326058A
Indoor environment robot efficient exploration decision-making method based on generalized Voronoi diagram
CN116679712A