Robot escape method, robot, storage medium, device and program product

By actively predicting robot entrapment events and combining local and global escape strategies, the problems of low timeliness and success rate of passive escape methods in existing technologies are solved, and the robot can be efficiently escaped in complex environments.

CN119247954BActive Publication Date: 2025-09-16ZHEJIANG ZHIDING ROBOT CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411341499.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-24
Publication Date
2025-09-16
Estimated Expiration
2044-09-24

AI Technical Summary

Technical Problem

Existing robot escape methods are mostly passive, resulting in low timeliness and success rate, making it difficult to work efficiently in complex environments.

Method used

By proactively predicting the robot's impending entrapment, utilizing environmental data and historical paths, dynamically adjusting the probability of entrapment, and combining local and global escape strategies, the system can implement escape measures in advance.

Benefits of technology

It improves the timeliness and success rate of the robot's escape from trouble, enhances its autonomous escape capability in complex environments, and reduces its reliance on human intervention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119247954B_ABST
    Figure CN119247954B_ABST
Patent Text Reader

Abstract

This application provides a robot escape method, robot, storage medium, device, and program product. The method includes: performing escape procedures for the robot when it is predicted that the robot is about to be trapped. By proactively predicting an impending robot trap and performing escape procedures in advance, the present application can effectively improve the timeliness and success rate of the robot's escape, ensuring that the robot can operate more efficiently in complex environments.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of robot control technology, and in particular to a robot escape method, a robot, a storage medium, a device, and a program product. Background Art

[0002] With the development of robotics technology, robots have been widely used in both indoor and outdoor environments. However, in complex environments, robots often face the challenge of becoming trapped. For example, when entering areas with dense obstacles or in depressions or bumps on the ground, robots often struggle to find a suitable path out of the situation due to their limited perception of the surrounding environment. This can cause them to become stuck or move back and forth in the same spot, seriously affecting their work efficiency. Currently, most robot escape methods are passive.

[0003] Based on this, the present application provides a robot escape method, a robot, a storage medium, a device and a program product to improve the relevant technology. Summary of the Invention

[0004] The purpose of this application is to provide a robot escape method, robot, storage medium, device and program product to proactively predict entrapment and improve the timeliness and success rate of the robot's escape.

[0005] The purpose of this application is achieved by the following technical solutions:

[0006] In a first aspect, the present application provides a method for a robot to escape from distress, the method comprising:

[0007] When it is predicted that the robot is about to be trapped, the robot is rescued.

[0008] In some embodiments, the process of predicting whether the robot is about to be trapped includes:

[0009] In the case where the current environment data does not match the historical environment data, initializing the trapped probability value of the robot;

[0010] Accumulate the time duration during which the position change of the robot is less than the target position change as the accumulated time duration;

[0011] Using the accumulated time, updating the trapped probability value;

[0012] When the trapped probability value is greater than the target probability value, it is predicted that the robot will be trapped; or, when the trapped probability value is not greater than the target probability value, it is predicted that the robot will not be trapped.

[0013] In some embodiments, the process of determining whether the current environment data matches the historical environment data includes:

[0014] Calculating the similarity between the current environment data and the historical environment data;

[0015] If the similarity is greater than the target similarity, the current environment data is determined to match the historical environment data; or if the similarity is not greater than the target similarity, the current environment data is determined to not match the historical environment data.

[0016] In some embodiments, the position change of the robot is determined based on the position information and / or motion information of the robot, and the motion information includes motion distance and / or motion angle.

[0017] In some embodiments, the updating of the trapped probability value by using the accumulated duration includes:

[0018] Calculating the trapped probability value according to the corresponding relationship between the accumulated time and the target;

[0019] The target correspondence relationship is represented by a corresponding formula or a corresponding model.

[0020] In some embodiments, the step of rescuing the robot from distress includes:

[0021] In the case that the local escape times of the robot are greater than the target times, performing a global escape process on the robot and clearing the local escape times of the robot; or

[0022] In a case where the number of partial escapes of the robot is not greater than the target number, a partial escape process is performed on the robot, and the number of partial escapes of the robot is increased by one.

[0023] In some embodiments, performing global escape processing on the robot includes:

[0024] Use historical path and / or historical environmental data to determine the global escape location;

[0025] A motion path of the robot moving from a current position to the global escape position is obtained, where the motion path is used to guide the robot to complete the global escape.

[0026] In some embodiments, performing local rescue operations on the robot includes:

[0027] controlling the robot to perform one or more target actions so that the robot can escape from a local situation;

[0028] The target action includes one or more of forward, backward, left turn and right turn.

[0029] In a second aspect, the present application provides a robot, comprising a control module, wherein the control module is configured to execute any one of the above methods.

[0030] In a third aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any of the above methods is implemented.

[0031] In a fourth aspect, the present application provides a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements any one of the above methods when executing the computer program.

[0032] In a fifth aspect, the present application provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, implements any of the above methods.

[0033] This application provides a robot escape method, robot, storage medium, device, and program product that, when a robot is predicted to be trapped, can be used to escape the robot. By proactively predicting a robot's impending trapping and taking preemptive measures, the robot's escape timeliness and success rate can be effectively improved, ensuring that the robot can operate more efficiently in complex environments. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] The present application is further described below with reference to the accompanying drawings and specific implementation methods.

[0035] Figure 1 It is a flow chart of a robot escape method provided in an embodiment of the present application.

[0036] Figure 2 This is a flow chart of another robot escape method provided in an embodiment of the present application.

[0037] Figure 3 This is a structural block diagram of a robot provided in an embodiment of the present application.

[0038] Figure 4 This is a structural block diagram of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0039] The following will be combined with the drawings in this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the described embodiments are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without making creative efforts are within the scope of protection of this application.

[0040] In the description of the embodiments of this application, it should be understood that the terms "first" and "second" are used for descriptive purposes only and should not be understood to indicate or imply relative importance or implicitly indicate the number of technical features indicated. Therefore, features defined as "first" or "second" may explicitly or implicitly include one or more of the features. In the description of the embodiments of this application, the meaning of "plurality" is two or more, unless otherwise clearly and specifically defined.

[0041] With the development of robotics, cleaning robots have been widely used in indoor and outdoor environments, such as homes, shopping malls, hospitals, and factories. However, in complex environments, cleaning robots often face the challenge of becoming trapped. For example, when entering areas with dense obstacles or sunken or raised surfaces, robots often struggle to find a suitable path out of trouble due to their limited perception of the surrounding environment. This can cause them to become stuck or move back and forth in the same spot, seriously affecting their work efficiency and cleaning results.

[0042] Currently, most robot escape methods are passive. These methods trigger a specific escape strategy when a robot is detected to be trapped, such as slipping or repeatedly moving within the same location for an extended period. However, this passive escape approach often suffers from the following drawbacks: First, the escape process is judged and handled only after the robot has become trapped, resulting in poor timeliness. Second, these escape methods are prone to falling into local optimal solutions, preventing the robot from finding an effective escape path. Ultimately, the robot must wait for a timeout, failing to escape, and awaiting manual intervention, resulting in low escape efficiency and success rates.

[0043] The implementation methods of this application will be described in detail below.

[0044] See also Figure 1 , Figure 1 It is a flow chart of a robot escape method provided in an embodiment of the present application.

[0045] In order to improve the relevant technology, an embodiment of the present application provides a robot escape method, which includes: when it is predicted that the robot is about to be trapped, performing escape measures on the robot.

[0046] In the above embodiments, the robots may be, for example, cleaning robots, disinfection robots, delivery robots, inspection robots, lawn mowing robots, companion robots, robotic arms, etc. Furthermore, the robots may be wheeled robots, bipedal robots (also known as humanoid robots, humanoid robots), quadruped robots, etc. The above embodiments do not limit the robot's movement speed; the robot may be a low-speed mobile robot or a high-speed mobile robot. Furthermore, the robots may operate indoors or outdoors, and this is not limited in the above embodiments.

[0047] Prediction, for example, refers to estimating whether the robot may be trapped in the future by sensing and analyzing the robot's corresponding environmental data (for example, including current environmental data and historical environmental data). In other words, the prediction mechanism can use environmental data, historical paths and other information to estimate the probability (or possibility) of the robot being trapped during work, so as to take escape measures in advance. A robot being trapped, for example, means that the robot has difficulty continuing to perform the scheduled task due to a complex environment or limited movement. For example, situations where the robot is blocked by an obstacle, stuck in a depression in the ground, or unable to climb up a slope can all be considered trapped events. When it is predicted that the robot is about to be trapped or it is detected that the robot has already been trapped, escape measures can be taken to free the robot from the trapped situation. For example, escape measures can include adjusting the current motion path, executing a predefined action sequence (such as forward, backward, turning), replanning the motion path, etc.

[0048] Related robot escape methods primarily rely on passive judgment, meaning the robot only begins the escape process after it has become trapped. This approach often results in delayed escape, reducing the robot's escape efficiency and success rate. Due to the lack of active prediction of impending robot trapping, it is difficult to fully utilize information such as environmental data and historical paths to take escape measures in advance. The above-mentioned embodiment, by actively predicting impending robot trapping and taking steps to free the robot in advance, can effectively improve the timeliness and success rate of the robot's escape, ensuring that the robot can operate more efficiently in complex environments.

[0049] In some embodiments, the process of predicting whether the robot is about to be trapped may include: when the current environmental data does not match the historical environmental data, initializing the trapped probability value of the robot; accumulating the time period during which the position change of the robot is less than the target position change as the accumulated time period; using the accumulated time period, updating the trapped probability value; when the trapped probability value is greater than the target probability value, predicting that the robot is about to be trapped; or, when the trapped probability value is not greater than the target probability value, predicting that the robot will not be trapped.

[0050] In some embodiments, the robot's position change can be determined based on the robot's position information and / or motion information. In some embodiments, the motion information may include a motion distance and / or a motion angle. The motion distance and / or motion angle can be obtained by an odometer and / or an IMU (i.e., an inertial measurement unit), which is not limited in the above embodiment.

[0051] The above embodiment uses a trapped probability value (a value range of, for example, 0 to 1) to characterize the possibility of the robot being trapped. In addition, parameters such as a trapped degree score (a value range of, for example, 0 to 100 points) can also be used to characterize the possibility of the robot being trapped. This application does not limit this.

[0052] Environmental data (including current environmental data and historical environmental data) refers to the surrounding environmental information acquired by the robot through sensors (such as image sensors, 2D laser sensors, 3D laser sensors, etc.), including, for example, obstacle locations, terrain features, etc. The above embodiments do not limit the data type of environmental data, which may include, for example, one or more of image data (e.g., obstacle grid map data), 2D laser data, and 3D laser data. Current environmental data may be the environmental information currently perceived by the robot, and historical environmental data may be the environmental information recorded and stored by the robot during its previous work.

[0053] The probability of being trapped is used to characterize the possibility of the robot being trapped. The probability of being trapped can be dynamically adjusted according to the current environmental data and the behavioral characteristics of the robot (such as the accumulated duration) to predict whether the robot is about to be trapped. The position change, for example, refers to the position change of the robot within a unit time (for example, 100 milliseconds, 1 second, 3 seconds), which is used to characterize the degree of position change of the robot. The target position change is, for example, a preset numerical threshold, which characterizes the minimum position change of the robot within a unit time under normal motion. If the position change of the robot is less than the target position change, the duration is accumulated to achieve dynamic update of the accumulated duration. The accumulated duration is used to accumulate the duration that the robot's position change is less than the target position change. The longer the accumulated duration, the longer the robot stays in place and the greater the probability of being trapped.

[0054] It should be noted that a small change in the robot's position per unit time does not necessarily mean that the robot has been trapped. For example, when faced with a difficult-to-clean floor, the cleaning robot may need a long time to clean the same location (or within a specific location range). Here, the cumulative duration is updated, and the trapped probability value is continuously updated based on the cumulative duration. Only when the trapped probability value is greater than the target probability value is it predicted that the robot will be trapped. On the one hand, it conforms to the objective conditions of the real application scenario, and on the other hand, it reduces the risk of misjudging the normal operation of the robot as a trapped event, thereby reducing unnecessary computing resource consumption.

[0055] It should be noted that the above embodiment accumulates the duration during which the robot's position change is less than the target position change as the cumulative duration, and that during this cumulative duration, the robot's position change is always less than the target position change. Once the robot's position change is no less than the target position change (for example, if the robot moves during the detection process), the cumulative duration is reset and accumulation restarted. Furthermore, after the robot is rescued, the cumulative duration can also be reset and accumulation restarted.

[0056] The target probability value is, for example, a preset numerical threshold. When the trapped probability value exceeds the target probability value, it is predicted that the robot will be trapped, triggering the escape mechanism. The target probability value can be selected based on actual needs. For example, the target probability value can be 0.8, 0.9, 0.95, 0.99, etc.

[0057] In the above embodiment, the trapped probability value of the robot is initialized and set. For example, the trapped probability value can be set to 0.1, 0.2, 0.3, etc., which is not limited in this application.

[0058] In the above embodiment, when it is found that the current environmental data does not match the historical environmental data, it indicates that the environment around the robot has changed significantly (or, a change worthy of attention), and the robot's trapped probability value is initialized at this time. Then, the position change of the robot is monitored in real time, and the duration during which the robot's position change is less than the target position change is accumulated as the accumulated duration. The trapped probability value is updated by the accumulated duration. For example, as the accumulated duration increases, the trapped probability value gradually increases. When the trapped probability value exceeds the preset target probability value, it is predicted that the robot will be trapped and will take the initiative to escape. If the trapped probability value does not exceed the target probability value, it is predicted that the robot will not be trapped and will continue to operate normally. Through real-time dynamic adjustment of the trapped probability, accurate prediction and rapid response to the robot's trapped state are achieved.

[0059] By comparing current environmental data with historical environmental data, the above-described embodiment can promptly identify environmental changes and predict potential entrapment events in advance, reducing the need for the robot to react only after it becomes trapped. Secondly, by monitoring the robot's position changes in real time and dynamically updating the entrapment probability using accumulated time, the likelihood of the robot becoming trapped is accurately quantified, improving the accuracy of entrapment predictions. This method enhances the robot's ability to autonomously escape from complex environments, improves overall work efficiency, and reduces reliance on human intervention.

[0060] In some embodiments, the process of determining whether current environmental data matches historical environmental data may include: calculating the similarity between the current environmental data and the historical environmental data; if the similarity is greater than the target similarity, determining that the current environmental data matches the historical environmental data; or, if the similarity is not greater than the target similarity, determining that the current environmental data does not match the historical environmental data.

[0061] In some embodiments, the calculating of the similarity between the current environment data and the historical environment data may include: calculating the similarity between the current environment data and the historical environment data according to a target matching algorithm. In other embodiments, the calculating of the similarity between the current environment data and the historical environment data may include: inputting the current environment data and the historical environment data into a target similarity model to obtain the similarity between the current environment data and the historical environment data; the target similarity model is, for example, a model based on deep learning. In some further embodiments, the calculating of the similarity between the current environment data and the historical environment data may include: finding a frame of historical environment data from multiple frames of historical environment data that is closest in position to the current environment data as the target historical environment data; and calculating the similarity between the current environment data and the target historical environment data.

[0062] Similarity is, for example, a numerical indicator that measures the degree of similarity between current environmental data and historical environmental data. As described above, similarity can be calculated using a specific algorithm, and the value range can be between 0 and 1, or between 0 and 100 points, with larger values ​​indicating more similarity between the two sets of data. A high similarity means that the current environment is more similar to the environment pre-modeled by the robot. Target similarity is, for example, a preset numerical threshold used to determine whether current environmental data matches historical environmental data, and can be determined based on the robot's operating environment and task requirements. As an example, the target similarity can be 0.5, 0.6, 0.8, etc.

[0063] The above embodiment first calculates the similarity between the current environment data and the historical environment data. When the calculated similarity is greater than the preset target similarity, it is determined that the current environment data matches the historical environment data, indicating that the environment has not changed significantly and the robot can continue to perform the task according to the established path; when the similarity is not greater than the target similarity, it is determined that the current environment data does not match the historical environment data, indicating that the environment has changed significantly and the possibility of the robot being trapped has increased. It is necessary to initialize the trapped probability value and dynamically update the trapped probability value so as to timely predict that the robot will be trapped. The above embodiment can accurately judge environmental changes by calculating the similarity between the current environment data and the historical environment data. Through similarity calculation, the robot can monitor changes in the surrounding environment in real time, trigger the trapped prediction mechanism in time, and reduce the passive waiting for being trapped in a complex environment. In addition, this method reduces misjudgments and unnecessary escape operations, and improves the robot's adaptability in dynamic environments.

[0064] In some embodiments, updating the trapped probability value by using the accumulated time may include: calculating the trapped probability value according to the accumulated time and the target correspondence relationship; wherein the target correspondence relationship is represented by a corresponding formula or a corresponding model.

[0065] In the above embodiment, the target correspondence is a correspondence established between the cumulative duration and the probability of being trapped, which is used to calculate the probability of being trapped. The target correspondence can be represented by a correspondence formula or a correspondence model, and based on the target correspondence, the cumulative duration can be mapped to the probability of being trapped. The correspondence formula is, for example, a mathematical expression that describes the relationship between the cumulative duration and the probability of being trapped. The correspondence model is, for example, a deep learning-based model, which is not limited in the above embodiment.

[0066] In some embodiments, the target correspondence relationship can be expressed using a corresponding formula. As an example, the corresponding formula can be expressed as: P = 1-0.8 t Where P represents the probability of being trapped, and t represents the cumulative duration. The corresponding formula is used to dynamically adjust the probability of being trapped so that it updates as the cumulative duration changes.

[0067] In the above embodiment, first, the position change of the robot is monitored in real time. When the position change is continuously less than the target position change, the cumulative time is started. Then, the probability of being trapped is calculated based on the cumulative time and the target correspondence. As the cumulative time t increases, the probability of being trapped P gradually increases. When P exceeds the set threshold (i.e., the target probability value), it is predicted that the robot will be trapped and the escape strategy is started in advance. This method achieves accurate quantification of the possibility of the robot being trapped by establishing a target correspondence between the cumulative time and the probability of being trapped, reduces the possibility of misjudgment, and improves the accuracy of the prediction of being trapped. Secondly, by utilizing the target correspondence, the probability of being trapped can be updated in real time according to the actual performance of the robot in the environment, thereby achieving accurate grasp of the escape opportunity and reducing unnecessary escape operations. This method enhances the robot's autonomous escape capability in complex environments, improves the success rate of escape and work efficiency, and reduces dependence on human intervention.

[0068] In some embodiments, the robot may be subjected to a rescue operation, which may include: when the number of local escapes of the robot is greater than the target number, performing a global rescue operation on the robot and performing a zeroing operation on the local escape number of the robot; or, when the number of local escapes of the robot is not greater than the target number, performing a local rescue operation on the robot and performing a plus operation on the local escape number of the robot.

[0069] The above embodiment does not limit the order of performing the global escape operation and the reset operation. For example, the global escape operation can be performed on the robot first, and then the local escape count of the robot can be reset; or the local escape count of the robot can be reset first, and then the global escape operation can be performed on the robot; or both operations can be performed simultaneously, and the above embodiment does not limit this. Similarly, the above embodiment does not limit the order of performing the local escape operation and the increment operation, and will not be further described here.

[0070] For example, a local escape attempt involves a series of simple maneuvers, such as forward, backward, and turning, to escape a localized situation. Local escapes generally do not rely on global path planning, but instead make immediate decisions based on information about the robot's surroundings. This is suitable for situations involving simple obstacles and short periods of entrapment. The local escape count is used to record how many times the robot has attempted local escapes, allowing for decisions about whether to switch to a global escape strategy.

[0071] Global escape, for example, involves the robot using global path planning to find an escape path after multiple local escape attempts have failed. This can leverage the robot's historical paths and environmental data to search for a historical path to the global escape location, or re-plan a path to the global escape location. This is suitable for complex environments and scenarios where multiple local escape attempts have failed. After the global escape is completed, the local escape count is reset.

[0072] The target number of times is, for example, a preset maximum number of local escape attempts. When a robot is predicted to be trapped and the number of local escape attempts reaches the target number, a global escape strategy is switched. The target number of times can be determined based on the complexity of the environment and the robot's escape capabilities. For example, the target number of times can be 2, 3, 5, 10, etc.

[0073] In the above embodiment, the escape strategy is dynamically determined by recording the number of local escape attempts. After detecting an entrapment event, the robot performs a local escape operation and records the number of local escape attempts. When the local escape is successful, the robot continues its normal task; when the number of local escape attempts is not greater than the preset target number, the robot continues to attempt local escape and adds one to the number of local escape attempts. If the number of local escape attempts exceeds the target number, indicating that the local escape method is difficult to work in the current environment, the robot switches to a global escape strategy and clears the number of local escape attempts. In this way, the robot can switch strategies in a timely manner when local escape is ineffective, thereby improving the efficiency of escape.

[0074] The above embodiment adopts a treatment method that combines global escape and local escape, which has a high success rate of escape and is superior to the treatment methods of adopting all global escape or all local escape. The specific application scenarios of robots are diverse. For simple robot trapped scenarios, the use of local escape treatment method can achieve the purpose of escape without wasting more time and computing power to solve the global target point (i.e., the global escape position). Therefore, the local escape treatment method can be tried first. However, in the face of more complex scenarios, such as large unknown obstacles, long corridors, etc., the local escape treatment method is difficult for the robot to successfully escape. At this time, switching to the global escape treatment method, determining a reasonable global escape position as the global target point from the historical path and / or historical environment data, and further determining the motion path from the current position to the global escape position, guiding the robot to complete the escape faster. The above embodiment establishes a flexible escape strategy switching mechanism through the number of local escapes and the target number. By recording the number of local escapes, the effectiveness of the local escape can be dynamically judged, reducing the blind repetition of local escape operations and shortening the escape time. Secondly, if local escape attempts repeatedly fail, the robot can promptly switch to a global escape strategy, utilizing global path planning to improve the escape success rate and adapt to the demands of complex environments. This method effectively combines the immediacy of local escape attempts with the comprehensiveness of global escape attempts, improving the robot's autonomous escape capabilities in diverse and complex environments.

[0075] In some embodiments, the global escape operation for the robot may include: determining a global escape position using historical paths and / or historical environmental data; obtaining a motion path for the robot to move from a current position to the global escape position, the motion path being used to guide the robot to complete the global escape.

[0076] For example, the global escape process can first determine the specific location that the robot needs to reach, i.e., the global escape location, in order to achieve the escape goal. Therefore, a reasonable global escape location can be determined as the global target point from historical paths and historical environmental data (e.g., historical raster map data). Then, a motion path from the current position to the global escape location can be searched or replanned, and used as the escape path to guide the robot to complete the global escape.

[0077] In some embodiments, the local escape treatment of the robot may include: controlling the robot to perform one or more target actions to enable the robot to complete the local escape; wherein, the target action includes one or more of forward, backward, left turn and right turn.

[0078] As an example, local escape handling may not determine the specific location that the machine needs to reach, but rather try to get the robot out of the trapped situation through simple actions. For example, the robot can perform target actions such as forward, backward, left turn, right turn, or a combination of target actions. In some embodiments, during the local escape handling process, a local map of the robot's current location (for example, obstacle grid map data corresponding to the local environment) can be obtained. Based on the local map, the robot is controlled to perform one or more target actions to get the robot away from obstacles, thereby achieving the purpose of escape.

[0079] The above embodiment improves the robot's escape effect from the two perspectives of timeliness and success rate. First, improvements are made to the passive detection of robot entrapment. That is, if the environmental data perceived by the robot is relatively different from the historical environmental data when the map is built, then it is considered that the robot is more likely to be trapped in the subsequent work process. Therefore, the historical area information (as an example of historical environmental data) and historical paths where the robot is not trapped can be saved in advance as a priori input for the subsequent escape process. Through the initialization operation, the initial value of the probability of being trapped is set (for example, 0.2). As the probability of being trapped increases, it will be predicted at a faster speed that the robot will be trapped. On the other hand, if the escape disposal is triggered, the robot can give priority to the local escape disposal method. When the number of local escapes is greater than the target number, the global escape disposal method is used. When performing the global escape disposal, the previously saved historical area information and historical paths can be used to increase the success rate of escape.

[0080] Specifically, the robot first determines whether the perceived current environment differs significantly from the mapped environment. Generally speaking, before actually operating, the robot can create a map of its working environment (or work area, which can be indoors or outdoors) as historical environmental data. For example, the map created can be an obstacle grid map, which is discretized and stores the probability of obstacles being present at specific grid locations in the environment. During the robot's actual operation, in the absence of dynamic obstacles, the obstacle grid map perceived by the robot in real time (as an example of current environmental data) and the obstacle grid map used during mapping (as an example of historical environmental data) should be similar. Therefore, a similarity can be calculated between the two to determine whether the current environment has changed significantly compared to the mapped environment. When the similarity is lower than a target similarity (e.g., 0.5), the current environment is considered to have changed significantly. The target similarity can be set, for example, using an empirical value. The period for determining whether the current environmental data matches the historical environmental data can be, for example, the sensor update period, or an integer or non-integer multiple of the sensor update period, although this is not limited in the above embodiment.

[0081] When it is detected that the current environment has significantly changed compared to the mapped environment, an initial trapped probability value P0 is established. P0 can be determined, for example, based on the similarity described above (i.e., the similarity between the current environment data and the historical environment data). Alternatively, to simplify processing, P0 can be directly set to a fixed value (e.g., 0.2). This fixed value can be selected as needed and is not limited to this in the above embodiment.

[0082] During the robot's operation, historical area information and historical paths can also be saved. For example, historical area information includes an obstacle grid map around the robot at a specific location, which represents the distribution of obstacles around the robot. Historical area information can be accumulated over time and space, thereby updating historical environmental data. For example, historical paths include the robot's trajectory information before it became trapped. As an example, the maximum time duration for which this historical trajectory information can be saved can be set.

[0083] It should be noted that the step of establishing the initial trapped probability value and the step of saving the historical area information and historical paths do not have a sequential relationship in terms of time sequence and can be performed according to the needs of actual applications. The above embodiment does not limit this.

[0084] Under normal circumstances, the robot can follow a preset route during operation. For example, a cleaning robot can follow a designated cleaning route during operation. However, if the robot gets stuck, it will stay where it is. In addition, if the cleaning robot needs to clean a floor that is difficult to clean, it will also cause the position to change little over a long period of time. Therefore, it is possible to determine whether the robot is about to be trapped by detecting the time the robot has been stationary. The longer the robot has been stationary, the greater the probability of it being trapped (i.e., the probability of being trapped). As an example, the corresponding formula for calculating the probability of being trapped can be as follows. P = 1-0.8 t ; Wherein, P represents the probability of being trapped, and t represents the cumulative duration, with units such as milliseconds or seconds. When t=0, P0=0. This corresponding formula is used to dynamically adjust the probability of being trapped so that it is updated as the cumulative duration changes. By superimposing on P0, the probability value of judging whether the robot is trapped at the current moment can be obtained. When the probability of being trapped exceeds the target probability value (for example, 0.9), the escape mechanism is triggered.

[0085] In practical applications, a combination of local and global escape methods can be used to rescue the robot. Furthermore, the local escape method, which is efficient and requires minimal computation, should be prioritized. For example, if the robot still fails to escape after three consecutive attempts at local escape, the global escape method can be used next.

[0086] See also Figure 2 , Figure 2 This is a flow chart of another robot escape method provided in an embodiment of the present application.

[0087] In a specific application scenario, an embodiment of the present application also provides a method for a robot to escape from trouble, which may include the following steps.

[0088] Calculate the similarity between the current environment data and the historical environment data; if the similarity is greater than the target similarity, determine that the current environment data matches the historical environment data; or, if the similarity is not greater than the target similarity, determine that the current environment data does not match the historical environment data.

[0089] In the event that the current environmental data does not match the historical environmental data, the robot's probability of being trapped is initialized and set; the duration during which the robot's position change is less than the target position change is accumulated as the accumulated duration; the trapped probability is calculated based on the accumulated duration and the target correspondence; if the trapped probability is greater than the target probability, it is predicted that the robot will be trapped; or, if the trapped probability is not greater than the target probability, it is predicted that the robot will not be trapped. The robot's position change is determined based on the robot's position information and / or motion information, the motion information including motion distance and / or motion angle; and the target correspondence is represented by a corresponding formula or a corresponding model.

[0090] In the event that it is predicted that the robot is about to be trapped: if the number of local escape attempts of the robot is greater than the target number, the global escape position is determined using historical paths and / or historical environmental data, the motion path of the robot moving from the current position to the global escape position is obtained, and the local escape attempts of the robot are cleared; or, if the number of local escape attempts of the robot is not greater than the target number, the robot is controlled to perform one or more target actions to enable the robot to complete the local escape, and the local escape attempts of the robot are incremented by one. The motion path is used to guide the robot to complete the global escape; the target action includes one or more of forward, backward, left turn, and right turn.

[0091] An embodiment of the present application further provides a robot escape device, which includes an escape handling module for performing an escape handling on the robot when it is predicted that the robot is about to be trapped.

[0092] In some embodiments, the device may further include a prediction module for predicting whether the robot is about to be trapped.

[0093] In some embodiments, the prediction module can predict whether the robot is about to be trapped in the following manner: when the current environmental data does not match the historical environmental data, the trapped probability value of the robot is initialized; the time when the position change of the robot is less than the target position change is accumulated as the accumulated time; the trapped probability value is updated using the accumulated time; when the trapped probability value is greater than the target probability value, it is predicted that the robot is about to be trapped; or, when the trapped probability value is not greater than the target probability value, it is predicted that the robot will not be trapped.

[0094] In some embodiments, the prediction module can determine whether the current environmental data matches the historical environmental data in the following manner: calculate the similarity between the current environmental data and the historical environmental data; when the similarity is greater than the target similarity, determine that the current environmental data matches the historical environmental data; or, when the similarity is not greater than the target similarity, determine that the current environmental data does not match the historical environmental data.

[0095] In some embodiments, the position change of the robot may be determined based on the position information and / or motion information of the robot, and the motion information may include a motion distance and / or a motion angle.

[0096] In some embodiments, the prediction module may update the trapped probability value using the accumulated duration in the following manner: calculating the trapped probability value based on the accumulated duration and the target correspondence; wherein the target correspondence is represented by a corresponding formula or a corresponding model.

[0097] In some embodiments, the escape handling module may perform an escape handling on the robot in the following manner: when the number of local escapes of the robot is greater than the target number, perform a global escape handling on the robot, and perform a zeroing operation on the local escape number of the robot; or, when the number of local escapes of the robot is not greater than the target number, perform a local escape handling on the robot, and perform a plus one operation on the local escape number of the robot.

[0098] In some embodiments, the escape handling module can perform global escape handling on the robot in the following manner: using historical paths and / or historical environmental data to determine the global escape position; obtaining the motion path of the robot from the current position to the global escape position, and the motion path is used to guide the robot to complete the global escape.

[0099] In some embodiments, the escape handling module can perform local escape handling on the robot in the following manner: control the robot to perform one or more target actions to enable the robot to complete local escape; wherein, the target actions include one or more of forward, backward, left turn and right turn.

[0100] See also Figure 3 , Figure 3 This is a structural block diagram of a robot provided in an embodiment of the present application.

[0101] An embodiment of the present application further provides a robot, comprising a control module, and the control module is configured to execute any one of the above methods.

[0102] In some embodiments, the robot may further include one or more target sensors, including one or more of an image sensor, a laser sensor, an odometer, and an IMU.

[0103] In some embodiments, the robot may further include an image sensor. The image sensor may include one or more cameras (or camera modules). The camera may be an optical camera or an infrared camera.

[0104] In some embodiments, the robot may further include a laser sensor. The laser sensor may include a 2D laser sensor and / or a 3D laser sensor.

[0105] In some embodiments, the robot may also include an odometry and / or an IMU.

[0106] In some embodiments, the robot may further include one or more of an angle encoder, a torque sensor, and a PIR sensor.

[0107] In some embodiments, the robot may be a multi-jointed robot.

[0108] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, any of the above methods is implemented.

[0109] An embodiment of the present application further provides a computer program product, which includes a computer program, and when the computer program is executed by a processor, implements any of the above methods.

[0110] The computer program product may be a portable compact disc read-only memory (CD-ROM) and include program code, and may be run on a terminal device, such as a personal computer. However, the computer program product of the present application is not limited thereto, and the computer program product may be any combination of one or more computer-readable media.

[0111] An embodiment of the present application further provides a computer device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements any of the above methods when executing the computer program.

[0112] See also Figure 4 , Figure 4 This is a structural block diagram of a computer device provided in an embodiment of the present application.

[0113] The embodiments of the present application do not limit the computer device, which may be, for example, a local computer device, a cloud computer device, a distributed computer device, etc.

[0114] The computer device may include: a memory 110, a processor 120, and a communication interface 130. The memory 110, the processor 120, and the communication interface 130 are connected via an internal connection path.

[0115] The memory 110 is used to store computer programs. In some implementations, the computer programs may include codes for implementing the methods of the embodiments of the present application.

[0116] The processor 120 is configured to execute the computer program stored in the memory 110 to control the communication interface 130 to receive input data and information and output data such as operation results. In some implementations, when the solutions of the embodiments of the present application are implemented through software or firmware, the computer program for implementing the solutions of the embodiments of the present application may be stored in the processor 120 and executed by the processor 120.

[0117] The memory 110 may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (EEPROM) or a flash memory. The volatile memory may be a random access memory (RAM). It should be noted that the memory 110 described herein is intended to include, but is not limited to, any memory of these and other suitable types. As an example, the memory 110 includes a random access memory (RAM), a cache memory and a read-only memory (ROM). Among them, the memory 110 stores a computer program, and the computer program can be executed by the processor 120 so that the processor 120 implements the steps of any of the above methods.

[0118] The processor 120 may be a central processing unit (CPU), or other general-purpose processors, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. A general-purpose processor may be a microprocessor, or the processor 120 may be any conventional processor.

[0119] During implementation, each step of the above method can be completed by an integrated logic circuit of the hardware in the processor 120 or by instructions in the form of software. The method disclosed in conjunction with the embodiments of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor 120. The software module can be located in a mature storage medium in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 110, and the processor 120 reads the information in the memory 110 and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.

[0120] In some implementations, in addition to the hardware units described above, the computer device may also include software modules, where the software modules may be, for example, an operating system, a basic input and output system (BIOS), application software, etc.

[0121] An operating system manages the hardware and / or software resources of a computer device and is the core and cornerstone of the computer. It handles basic tasks such as managing and allocating memory, prioritizing the supply and demand of system resources, controlling input and output devices, operating the network, and managing the file system. To facilitate user operation, most operating systems provide an interface for users to interact with the system.

[0122] The BIOS is used to run hardware initialization during the power-on boot phase and provide runtime services for the operating system and applications. In some implementations, the BIOS can also monitor and display the processor temperature and execute functions such as adjusting temperature protection strategies.

[0123] Application software, also known as an application program, is software written for a specific user purpose. It is a major category of computer software. For example, application software might be a program used for power control, temperature management, and other purposes.

[0124] It should be noted that although some embodiments of this application take mobile robots as an example, this application can be applied to other bionic robots, such as AGVs, drones, etc., and this application is not limited to this.

[0125] It should be understood that the specific examples in this application are only intended to help those skilled in the art better understand the implementation methods of this application, rather than to limit the scope of protection of this application.

[0126] It can be understood that in various implementations of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the present application.

[0127] It can be understood that the various embodiments described in this application can be implemented individually or in combination, and this application is not limited to this.

[0128] Unless otherwise indicated, all technical and scientific terms used in this application have the same meaning as those generally understood by those skilled in the art in the technical field of this application. The terms used in this application are only for the purpose of describing specific embodiments and are not intended to limit the scope of this application. The term "and / or" used in this application includes any and all combinations of one or more related listed items. The singular forms "a", "above", and "the" used in this application and the appended claims are also intended to include plural forms, unless the context clearly indicates otherwise.

[0129] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0130] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the above-described embodiments may refer to the corresponding processes in other embodiments and will not be repeated here.

[0131] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of units is only a logical function division. 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. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0132] Units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected according to actual needs to achieve the objectives of the technical solutions of this application.

[0133] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0134] If the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0135] The above are only specific embodiments of the present application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

Claims

1. A robot escape method, characterized in that: The method comprises: In the event that it is predicted that the robot is about to be trapped, taking measures to free the robot; The process of predicting whether the robot is about to be trapped includes: In the case where the current environment data does not match the historical environment data, initializing the trapped probability value of the robot; Accumulate the time duration during which the position change of the robot is less than the target position change as the accumulated time duration; Using the accumulated time, updating the trapped probability value; When the trapped probability value is greater than the target probability value, it is predicted that the robot will be trapped; or, when the trapped probability value is not greater than the target probability value, it is predicted that the robot will not be trapped.

2. The robot escape method according to claim 1, characterized in that: The process of determining whether the current environmental data matches the historical environmental data includes: Calculating the similarity between the current environment data and the historical environment data; If the similarity is greater than the target similarity, the current environment data is determined to match the historical environment data; or if the similarity is not greater than the target similarity, the current environment data is determined to not match the historical environment data.

3. The robot escape method according to claim 1, characterized in that: The position change of the robot is determined based on the position information and / or motion information of the robot, where the motion information includes a motion distance and / or a motion angle.

4. The robot escape method according to claim 1, characterized in that: The updating of the trapped probability value by using the accumulated time includes: Calculating the trapped probability value according to the corresponding relationship between the accumulated time and the target; The target correspondence relationship is represented by a corresponding formula or a corresponding model.

5. The robot escape method according to claim 1, characterized in that: The step of performing rescue operations on the robot includes: In the case that the local escape times of the robot are greater than the target times, performing a global escape process on the robot and clearing the local escape times of the robot; or In a case where the number of partial escapes of the robot is not greater than the target number, a partial escape process is performed on the robot, and the number of partial escapes of the robot is increased by one.

6. The robot escape method according to claim 5, characterized in that: The global escape process for the robot includes: Use historical path and / or historical environmental data to determine the global escape location; A motion path of the robot moving from a current position to the global escape position is obtained, where the motion path is used to guide the robot to complete the global escape.

7. The robot escape method according to claim 5, characterized in that: The performing of local rescue treatment on the robot includes: controlling the robot to perform one or more target actions so that the robot can escape from a local situation; The target action includes one or more of forward, backward, left turn and right turn.

8. A robot, characterized in that: The robot comprises a control module for executing the method according to any one of claims 1 to 7.

9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.

10. A computer device, characterized in that: The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the method according to any one of claims 1 to 7 when executing the computer program.

11. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Robot escape method and device, robot and storage medium

    CN116107309A