Robot control method, device, robot and computer-readable storage medium

The local point cloud map is obtained through the radar on the robot for navigation along the edge, which solves the problem of intelligent escape when the robot is trapped in a narrow area, and improves the efficiency and success rate of escape.

CN116000924BActive Publication Date: 2025-09-05UBTECH ROBOTICS CORP LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202211679840.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-26
Publication Date
2025-09-05
Estimated Expiration
2042-12-26

AI Technical Summary

Technical Problem

When a robot is trapped in a narrow area, the existing technology's escape method is low in intelligence and has poor user experience.

Method used

The local point cloud map is obtained through the radar installed on the robot, and the edge navigation is carried out. The polar coordinate map is used to search for control points, and move along the edge to get out of trouble.

Benefits of technology

It improves the efficiency and success rate of robots to get out of trouble, enhances intelligence, and reduces the possibility of failure to get out of trouble.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116000924B_ABST
    Figure CN116000924B_ABST
Patent Text Reader

Abstract

This application applies to the field of robotics and provides a robot control method, device, robot, and computer-readable storage medium. The method comprises: when a robot is trapped, obtaining a local point cloud map of the current trapped area via a radar installed on the robot; performing edge navigation based on the local point cloud map to control the robot to move along the edge of the trapped area; and if an escape path is detected during the edge navigation, controlling the robot to move out of the trapped area along the escape path. The above method can effectively improve the efficiency and success rate of the robot's escape, and enhance the robot's intelligence.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of robotics technology, and in particular to a robot control method, device, robot, and computer-readable storage medium. Background Art

[0002] With the development of intelligent control technology, the application of robots is becoming increasingly widespread. Some robots that perform area-coverage tasks, such as sweeping robots, disinfection robots, and lawn mowing robots, may become trapped in a small area during their mission and unable to escape. For example, in a home environment, there are many narrow areas such as the gap between the four legs of a stool and the entrance to a coffee table. Due to factors such as cumulative errors and the low resolution of collision sensors and infrared sensors, when a sweeping robot enters these narrow areas and attempts to exit from the original entrance, even the slightest deviation can easily cause it to collide with a corner, resulting in being trapped in the narrow area.

[0003] Currently, when a robot encounters the above situation, it usually issues an alarm message to prompt the user to help it escape. This escape method has a low level of intelligence and a poor user experience. Summary of the Invention

[0004] The embodiments of the present application provide a robot control method, device, robot, and computer-readable storage medium, which can effectively improve the intelligence level of the robot.

[0005] In a first aspect, an embodiment of the present application provides a robot control method, comprising:

[0006] When the robot is in a trapped state, a local point cloud map of the current trapped area is obtained through a radar installed on the robot;

[0007] Performing edge navigation according to the local point cloud map to control the robot to move along the edge in the trapped area;

[0008] If an escape path is detected during the edge navigation process, the robot is controlled to move out of the trapped area along the escape path.

[0009] In an embodiment of the present application, when a robot is trapped, it navigates along the edges based on a local point cloud map of the trapped area. Because the local point cloud map of the trapped area is acquired by a radar installed on the robot, compared to the global map used during normal operation, this local point cloud map can more clearly and detailedly reflect the environmental conditions of the trapped area, providing a reliable data foundation for subsequent control. By controlling the robot to move along the edges of the trapped area through edge navigation, the robot can more easily avoid obstacles and quickly find a way out. This method effectively improves the efficiency and success rate of the robot's escape, greatly enhancing the robot's intelligence.

[0010] In a possible implementation of the first aspect, performing edge navigation according to the local point cloud map includes:

[0011] For each control process of the edge navigation, generating a polar coordinate map according to the local point cloud map, wherein the polar coordinate map includes a plurality of polar coordinate points, and a polar coordinate system of the polar coordinate map takes the current position of the robot as an origin;

[0012] Searching for a first control point in the polar coordinate map;

[0013] Determine a first target point according to the first control point and the current posture of the robot;

[0014] Control the robot to move to the first target point.

[0015] In a possible implementation of the first aspect, searching for the first control point in the polar coordinate map includes:

[0016] Determining a first search range in the polar coordinate map according to the current posture of the robot;

[0017] Traversing the polar coordinate points within the first search range in sequence;

[0018] If there are two polar coordinate points that meet the preset conditions within the first search range, the polar coordinate point that is later in the traversal order of the two polar coordinate points that meet the preset conditions is determined as the first control point, wherein the two polar coordinate points meet the preset conditions if the distance between the two polar coordinate points is greater than a first preset value or the angle between the two polar coordinate points is greater than a first preset angle;

[0019] If there are no two polar coordinate points meeting the preset condition within the first search range, and the maximum distance between the polar coordinate points within the first search range is greater than a second preset value, determining the polar coordinate point corresponding to the maximum distance within the first search range as the first control point;

[0020] If there are no two polar coordinate points meeting the preset conditions within the first search range, and the maximum distance value of the polar coordinate points within the first search range is less than a second preset value, the polar coordinate point last traversed within the first search range is determined as the first control point.

[0021] The edge navigation method in this embodiment converts radar-detected point cloud data into polar coordinate points. By sequentially traversing the polar coordinate points within the search range, it gradually searches for local control points and local target points, thereby achieving edge control of the robot. This method in this embodiment enables precise control of the robot's edge movement. Furthermore, because the edge control sampling points are radar point clouds, the accuracy of edge control can be effectively improved.

[0022] In a possible implementation of the first aspect, the method further includes:

[0023] If an obstacle is detected during the edge navigation, obtaining point cloud data of the obstacle;

[0024] The point cloud data is added to the local point cloud map.

[0025] In a possible implementation of the first aspect, the method further includes:

[0026] At every preset period, calculating the average position of the robot in a first preset time period before the current moment;

[0027] calculating the maximum distance between the position of the robot and the average position within the first preset time period;

[0028] If the maximum distance is less than a third preset value, it is determined that the robot is in a trapped state.

[0029] In a possible implementation of the first aspect, the method further includes:

[0030] If it is detected during the edge navigation process that a first escape condition is met, the edge navigation is stopped, wherein the first escape condition is met when the distance between the current position of the robot and the average position is greater than the maximum distance.

[0031] In a possible implementation of the first aspect, the method further includes:

[0032] When the robot is in a trapped state, determining a trapped area according to the trajectory of the robot within a second preset time period before the current moment;

[0033] If it is detected during the edge navigation process that a second escape condition is met, the edge navigation is stopped, wherein the second escape condition is met when the current position of the robot is outside the trapped area.

[0034] In a possible implementation of the first aspect, the trajectory of the robot includes a plurality of trajectory points;

[0035] When the robot is in a trapped state, determining a trapped area according to a trajectory of the robot within a second preset time period before a current moment includes:

[0036] When the robot is in a trapped state, calculating the center point of the robot's trajectory within the second preset time period before the current moment;

[0037] Traversing a plurality of trajectory points of the robot within the second preset time period;

[0038] For any of the trajectory points, if the distance between the previous traversal point of the trajectory point and the center point of the trajectory, and the distance between the next traversal point of the trajectory point and the center of the trajectory are both greater than the distance between the trajectory point and the center point of the trajectory, then the trajectory point is deleted;

[0039] The trapped area is determined according to the remaining track points after traversal.

[0040] In a second aspect, an embodiment of the present application provides a robot control device, comprising:

[0041] an acquisition unit, configured to acquire a local point cloud map of the current trapped area through a radar installed on the robot when the robot is in a trapped state;

[0042] a navigation unit, configured to perform edge navigation according to the local point cloud map to control the robot to move along the edge within the trapped area;

[0043] A control unit is used to control the robot to move out of the trapped area along the escape path if an escape path is detected during the edge navigation process.

[0044] In a third aspect, an embodiment of the present application provides a robot comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the robot control method as described in any one of the first aspects above is implemented.

[0045] In a fourth aspect, an embodiment of 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, the robot control method as described in any one of the above-mentioned first aspects is implemented.

[0046] In a fifth aspect, an embodiment of the present application provides a computer program product, which, when executed on a terminal device, enables the terminal device to execute the robot control method described in any one of the above-mentioned first aspects.

[0047] It can be understood that the beneficial effects of the second to fifth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0048] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the embodiments or descriptions of the prior art. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0049] Figure 1 is a schematic diagram of a convex polygon provided in an embodiment of the present application;

[0050] Figure 2 1 is a flow chart of a robot control method provided in an embodiment of the present application;

[0051] Figure 3 This is a schematic diagram of the search for control points provided in an embodiment of the present application;

[0052] Figure 4 This is a structural block diagram of a robot control device provided in an embodiment of the present application;

[0053] Figure 5 It is a schematic diagram of the structure of the robot provided in the embodiment of the present application. DETAILED DESCRIPTION

[0054] In the following description, specific details such as specific system structures and techniques are provided for purposes of illustration rather than limitation to facilitate a thorough understanding of the embodiments of the present application. However, it will be apparent to those skilled in the art that the present application may be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to avoid obscuring the description of the present application with unnecessary detail.

[0055] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, integers, steps, operations, elements and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or collections thereof.

[0056] It will also be understood that the term "and / or" used in this specification and the appended claims refers to and includes any and all possible combinations of one or more of the associated listed items.

[0057] As used in this specification and the appended claims, the term "if" can be interpreted as "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrase "if it is determined" or "if [described condition or event] is detected" can be interpreted as meaning "upon determination" or "in response to determining" or "upon detection of [described condition or event]" or "in response to detecting [described condition or event]," depending on the context.

[0058] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.

[0059] References to "one embodiment" or "some embodiments" in this specification mean that a particular feature, structure, or characteristic described in conjunction with the embodiment is included in one or more embodiments of the present application. Thus, phrases such as "in one embodiment," "in some embodiments," "in other embodiments," and "in yet other embodiments" appearing in various places in this specification do not necessarily refer to the same embodiment, but rather mean "one or more but not all embodiments," unless otherwise specifically emphasized.

[0060] With the development of intelligent control technology, the application of robots is becoming increasingly widespread. Some robots that perform area-coverage tasks, such as sweeping robots, disinfection robots, and lawn mowing robots, may become trapped in a small area during their mission and unable to escape. For example, in a home environment, there are many narrow areas such as the gap between the four legs of a stool and the entrance to a coffee table. Due to factors such as cumulative errors and the low resolution of collision sensors and infrared sensors, when a sweeping robot enters these narrow areas and attempts to exit from the original entrance, even the slightest deviation can easily cause it to collide with a corner, resulting in being trapped in the narrow area.

[0061] Currently, when a robot encounters the above situation, it usually issues an alarm message to prompt the user to help it escape. This escape method has a low level of intelligence and a poor user experience.

[0062] To address the aforementioned issues, embodiments of the present application provide a robot control method, apparatus, robot, and computer-readable storage medium. In this embodiment, the robot is detected in real time to determine whether it is trapped. When the robot is detected as trapped, the robot is controlled to move along the edge based on a local point cloud map of the trapped area acquired by a radar installed on the robot. The methods in this embodiment effectively improve the efficiency and success rate of the robot's escape, significantly enhancing the robot's intelligence.

[0063] The robot control method provided in the embodiment of the present application includes two parts: entrapment detection and escape control. First, the robot entrapment detection method is introduced.

[0064] Case 1: Trapped detection methods may include:

[0065] During the robot's task execution, the average position of the robot within a first preset time period before the current moment is calculated at every preset period; the maximum distance between the position of the robot within the first preset time period and the average position is calculated; if the maximum distance is less than a third preset value, it is determined that the robot is in a trapped state; if the maximum distance is greater than or equal to the third preset value, it is determined that the robot is not in a trapped state.

[0066] For example, while the robot is performing a task, the robot's location coordinates in the global map are recorded every 2 seconds (sampling period) to generate a location list L2. Every 20 seconds (preset period), the robot's average position within the 1 minute before the current moment (the first preset time period) is calculated. For example, if the current moment is 10:00, all location coordinates within the time period of 09:59-10:00 are obtained from L2, and the average of these location coordinates is calculated and recorded as the average position. The distance between all location coordinates within the time period of 09:59-10:00 and the average position is then calculated to find the maximum distance.

[0067] It should be noted that the data in the above examples are only examples and are not intended to be limiting. In actual applications, the sampling period, the preset period, and the first preset time period can be adjusted as needed.

[0068] In response to the above situation 1, the escape detection method may include:

[0069] If it is detected that the first escape condition is met during the edge navigation process, the edge navigation is stopped; if the first escape condition is not met during the edge navigation process, the edge navigation is continued; wherein, the first escape condition is met when the distance between the current position of the robot and the average position is greater than the maximum distance.

[0070] Case 2: While the robot is performing a task, it navigates along the edge according to the global map. In this case, the trapped state detection method can be: if the navigation path of the edge navigation forms a closed area, the robot is determined to be trapped.

[0071] For the above situation 2, the escape detection method may include:

[0072] If it is detected during the edge navigation process that a second escape condition is met, the edge navigation is stopped, wherein the second escape condition is met when the current position of the robot is outside the trapped area.

[0073] In the embodiment of the present application, the premise for performing escape detection for the second situation is that when the robot is in a trapped state, the trapped area is determined based on the robot's trajectory within a second preset time period before the current moment. The robot's trajectory includes multiple track points.

[0074] In some embodiments, a trapped area can be described by a convex polygon. Specifically, one implementation method for determining the trapped area includes: when the robot is in a trapped state, calculating the center point of the robot's trajectory within a second preset time period before the current moment; traversing multiple trajectory points of the robot within the second preset time period; for any trajectory point, if the distance between the previous traversal point of the trajectory point and the trajectory center point, and the distance between the next traversal point of the trajectory point and the trajectory center are both greater than the distance between the trajectory point and the trajectory center point, then deleting the trajectory point; and determining the trapped area based on the remaining trajectory points after the traversal.

[0075] In the embodiment of the present application, the center point of the trajectory may be the average value of multiple trajectory points.

[0076] Optionally, after calculating the trajectory center point, the trajectory points can be filtered. In one implementation, the polar coordinates of the trajectory points in the robot's trajectory are calculated. The polar coordinates include the distance and angle from the trajectory center point. For any two adjacent trajectory points, if the difference between the angles in the polar coordinates corresponding to the two trajectory points is less than a preset angle value (e.g., 20 degrees), the trajectory points with later sampling times are deleted. After the filtering process, the remaining multiple trajectory points are traversed.

[0077] For example, the relationship between the point cloud coordinates (x, y) of a trajectory point and its polar coordinates (r, θ) is: x = rcosθ, y = rsinθ, where r represents the distance between the trajectory point and the trajectory center, and θ represents the angle of the trajectory point.

[0078] For example, see Figure 1 , is a schematic diagram of a convex polygon provided in an embodiment of the present application. Figure 1 As shown in (a), after screening, there are 9 trajectory points n1-n9, and the center point of the trajectory is o1. Traverse in order from point n1 to point n9. For point n9, the distance d1 between its previous traversal point n8 and o1 is greater than the distance d2 between n9 and o1, and the distance d3 between its next traversal point n1 and o1 is greater than the distance d2 between n9 and o1. Therefore, n9 is a concave point and n9 is deleted. It should be noted that the next traversal point of the last traversal point n9 is the first traversal point n1. Figure 1As shown in (b), it is a convex polygon formed by the remaining traversal points, and the area occupied by the convex polygon is regarded as the trapped area.

[0079] Optionally, after obtaining the convex polygon, the convex polygon can be expanded to a certain extent, and the expanded extent is determined as the trapped area. Specifically: each trajectory point on the convex polygon is expanded by a preset distance along the angle in its polar coordinates. For example, for Figure 1 The polar coordinate angle of n1 in (b) is th1, and it expands 0.2m along the th1 direction, that is, the o1n1 segment is extended by 0.2m.

[0080] By appropriately enlarging the trapped area in the above manner, the inaccurate trapped range caused by calculation errors and detection data errors can be prevented, so that the determined trapped area includes the actual trapped range as much as possible, thereby improving the detection accuracy of the trapped area.

[0081] Based on the above two methods of robot trapped detection, the following introduces the robot escape control method. Figure 2 , is a flow chart of the robot control method provided in the embodiment of the present application, which is provided as an example and not as a limitation. Figure 2 As shown, the robot control method may include the following steps:

[0082] S101, when the robot is in a trapped state, a local point cloud map of the current trapped area is obtained through a radar installed on the robot.

[0083] The radar may be a laser radar or a line radar, etc. It is understandable that if other sensors are installed on the robot, such as a depth camera or an RGB camera, the sensor data obtained by the other sensors may also be projected into the local point cloud map.

[0084] In one method, the robot slowly rotates a certain angle (such as 180 degrees), obtains a frame of radar data every certain angle (such as 45 degrees), and then superimposes the obtained radar data to generate a local point cloud map.

[0085] Each point in the radar data represents the angle and distance of a point on the detected target relative to the radar center. During the overlay process, the radar data points are converted to the map coordinate system to obtain the points in the local point cloud map. It should be noted that the conversion relationship between the radar data and the map coordinate system can be pre-calibrated.

[0086] S102: Perform edge navigation according to the local point cloud map to control the robot to move along the edge in the trapped area.

[0087] Optionally, if an obstacle is detected during the edge navigation process, point cloud data of the obstacle is obtained; and the point cloud data is added to the local point cloud map.

[0088] In the embodiment of the present application, the point cloud data of the obstacle can be obtained through the radar on the robot, or through other sensors on the robot (such as a camera, etc.).

[0089] The obstacle may be detected by a sensor on the robot, or by a collision between the robot and the obstacle, or when the elevation angle of the robot chassis is greater than a certain angle threshold.

[0090] Add point cloud data to the local point cloud map. Specifically, obtain the conversion relationship between the sensor coordinate system and the map coordinate system corresponding to the point cloud data, and project the point cloud data into the map coordinate system based on this conversion relationship. For example, when acquiring point cloud data through a camera, project the point cloud data into the map coordinate system based on the conversion relationship between the camera coordinate system and the map coordinate system; when acquiring point cloud data through a radar, project the point cloud data into the map coordinate system based on the conversion relationship between the radar coordinate system and the map coordinate system.

[0091] Through the above method, the local point cloud map can be updated in real time according to the actual road conditions of the robot, providing a reliable data basis for edge navigation.

[0092] Optionally, during edge navigation, a frame of radar data is acquired every third preset time period and superimposed onto the local point cloud map. The superimposition method is the same as the method for adding point cloud data to the local point cloud map described above, and will not be repeated here.

[0093] Through the above method, the local point cloud map can be updated in real time according to the actual road conditions of the robot, providing a reliable data basis for edge navigation, which is conducive to quickly finding a way out of trouble.

[0094] S103: If an escape path is detected during the edge navigation process, control the robot to move out of the trapped area along the escape path.

[0095] In the embodiment of the present application, during the edge navigation process, the existence of an escape path can be detected based on the local point cloud map every fourth preset time period. The escape path here refers to a path that is wider than the width of the robot and connects the trapped area with the non-trapped area.

[0096] In one method, when an escape path is detected, the robot is controlled to retreat a preset distance, and sensor data of the road ahead of the current robot (such as captured images or radar data, etc.) is obtained through sensors on the robot; the escape path is re-identified based on the sensor data; if the result of the re-identification indicates that an escape path is detected, the robot is controlled to move out of the trapped area along the escape path.

[0097] By using the above-mentioned method of re-identifying the escape path, it is possible to effectively avoid misidentification of the escape path, reduce the failure rate of the robot's escape, and improve the efficiency of the robot's escape.

[0098] In some embodiments, an escape detection may be performed every fifth preset time period; if the result of the escape detection indicates that the robot meets the escape conditions, edge navigation is stopped; if the result of the escape detection indicates that the robot does not meet the escape conditions, edge navigation is continued.

[0099] The escape detection methods for the two types of trapped detection are described in detail in the above embodiments and will not be repeated here.

[0100] In the above-mentioned S101-S103 embodiments, when the robot is trapped, it navigates along the edges based on a local point cloud map of the trapped area. Because the local point cloud map of the trapped area is acquired by the robot's radar, compared to the global map used during normal operation, this local point cloud map can more clearly and detailedly reflect the environmental conditions of the trapped area, providing a reliable data foundation for subsequent control. By controlling the robot to move along the edges of the trapped area through edge navigation, the robot can more easily avoid obstacles and quickly find an escape route. This method effectively improves the efficiency and success rate of the robot's escape attempts, significantly enhancing the robot's intelligence.

[0101] In some embodiments, the edge navigation process in S102 may include:

[0102] For each control process of the edge navigation, generating a polar coordinate map according to the local point cloud map, wherein the polar coordinate map includes a plurality of polar coordinate points, and a polar coordinate system of the polar coordinate map takes the current position of the robot as an origin;

[0103] Searching for a first control point in the polar coordinate map;

[0104] Determine a first target point according to the first control point and the current posture of the robot;

[0105] Control the robot to move to the first target point.

[0106] In the embodiment of the present application, the robot moves from the first control point to the first target point, completing one edge navigation control. Each time the robot reaches a target point and enters the next control process, it is necessary to re-establish the polar coordinate map with the current position of the robot as the origin.

[0107] Optionally, when the number of edge navigation control times reaches a preset number and no escape path is detected, or the current robot is still in a trapped state, the edge navigation is stopped and an alarm message is issued.

[0108] By limiting the number of times to a preset number, when the robot is unable to escape on its own in an extreme environment, it can effectively prevent the robot from being stuck in the task of navigating along the edge to escape.

[0109] Optionally, searching for the first control point in the polar coordinate map may include the following steps:

[0110] Determining a first search range in the polar coordinate map according to the current posture of the robot;

[0111] Traversing the polar coordinate points within the first search range in sequence;

[0112] If there are two polar coordinate points that meet the preset conditions within the first search range, the polar coordinate point that is later in the traversal order of the two polar coordinate points that meet the preset conditions is determined as the first control point, wherein the two polar coordinate points meet the preset conditions if the distance between the two polar coordinate points is greater than a first preset value or the angle between the two polar coordinate points is greater than a first preset angle;

[0113] If there are no two polar coordinate points meeting the preset condition within the first search range, and the maximum distance between the polar coordinate points within the first search range is greater than a second preset value, determining the polar coordinate point corresponding to the maximum distance within the first search range as the first control point;

[0114] If there are no two polar coordinate points meeting the preset conditions within the first search range, and the maximum distance value of the polar coordinate points within the first search range is less than a second preset value, the polar coordinate point last traversed within the first search range is determined as the first control point.

[0115] In this embodiment of the present application, for the first control process of edge navigation, the starting point of the first search range is the polar coordinate point in the polar coordinate map with the smallest angle difference from the robot's current heading direction. For the nth control process of edge navigation (n>1), the starting point of the first search range is the control point determined in the n-1th control process.

[0116] The first search range is a preset angle rotated clockwise or counterclockwise from the angle of the polar coordinate corresponding to the starting point.

[0117] For example, see Figure 3 , is a schematic diagram of the search for control points provided in the embodiment of the present application. Figure 3 As shown in the figure, the solid arrow indicates the robot's current heading (i.e., the direction from o2 to o3). Assume that the polar coordinate point with the smallest angular difference from the robot's current heading on the polar coordinate map is m9, and the preset angle is 120 degrees. Using the polar coordinate angle of m9 as a reference, rotate 120 degrees clockwise to obtain the polar coordinate angle of m1. This means that the first search range includes nine polar coordinate points, m1 through m9.

[0118] Assuming that the distance between points m6 and m7 is greater than a first preset value or the angle between the two points is greater than a first preset angle, m7 is determined as the first control point.

[0119] Assume that the distance between each two adjacent points in m1-m9 is less than the first preset value, the included angle is less than the first preset angle, and the distance of the polar coordinates corresponding to m6 is the largest; if the distance of the polar coordinates corresponding to m6 is greater than the second preset value, then m6 is determined as the first control point. Figure 3 As shown, m6 is determined as the first control point.

[0120] Assume that the distance between every two adjacent points in m1-m9 is less than the first preset value, the included angle is less than the first preset angle, and the distance of the polar coordinates corresponding to m6 is the largest; if the distance of the polar coordinates corresponding to m6 is less than the second preset value, then m9 is determined as the first control point.

[0121] In an embodiment of the present application, the first target point is determined based on the first control point and the current posture of the robot as follows: the perpendicular point corresponding to the shortest distance from the first control point to the current orientation direction of the robot is determined as the first target point.

[0122] like Figure 3 As shown, line segment m6o3 is perpendicular to the line o2o3, and the first target point is o3. The direction from o2 to o3 is the direction of the robot.

[0123] The edge navigation method in this embodiment converts radar-detected point cloud data into polar coordinate points. By sequentially traversing the polar coordinate points within the search range, it gradually searches for local control points and local target points, thereby achieving edge control of the robot. This method in this embodiment enables precise control of the robot's edge movement. Furthermore, because the edge control sampling points are radar point clouds, the accuracy of edge control can be effectively improved.

[0124] It should be understood that the size of the serial numbers of the steps in the above embodiments 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 embodiments of this application.

[0125] Corresponding to the robot control method described in the above embodiment, Figure 4 This is a structural block diagram of the robot control device provided in an embodiment of the present application. For the sake of convenience, only the parts related to the embodiment of the present application are shown.

[0126] Reference Figure 4 , the device comprises:

[0127] The acquisition unit 41 is used to acquire a local point cloud map of the current trapped area through a radar installed on the robot when the robot is in a trapped state.

[0128] The navigation unit 42 is configured to perform edge navigation according to the local point cloud map to control the robot to move along the edge in the trapped area.

[0129] The control unit 43 is configured to control the robot to move out of the trapped area along the escape path if an escape path is detected during the edge navigation process.

[0130] Optionally, the navigation unit 42 is further configured to:

[0131] For each control process of the edge navigation, generating a polar coordinate map according to the local point cloud map, wherein the polar coordinate map includes a plurality of polar coordinate points, and a polar coordinate system of the polar coordinate map takes the current position of the robot as an origin;

[0132] Searching for a first control point in the polar coordinate map;

[0133] Determine a first target point according to the first control point and the current posture of the robot;

[0134] Control the robot to move to the first target point.

[0135] Optionally, the navigation unit 42 is further configured to:

[0136] Determining a first search range in the polar coordinate map according to the current posture of the robot;

[0137] Traversing the polar coordinate points within the first search range in sequence;

[0138] If there are two polar coordinate points that meet the preset conditions within the first search range, the polar coordinate point that is later in the traversal order of the two polar coordinate points that meet the preset conditions is determined as the first control point, wherein the two polar coordinate points meet the preset conditions if the distance between the two polar coordinate points is greater than a first preset value or the angle between the two polar coordinate points is greater than a first preset angle;

[0139] If there are no two polar coordinate points meeting the preset condition within the first search range, and the maximum distance between the polar coordinate points within the first search range is greater than a second preset value, determining the polar coordinate point corresponding to the maximum distance within the first search range as the first control point;

[0140] If there are no two polar coordinate points meeting the preset conditions within the first search range, and the maximum distance value of the polar coordinate points within the first search range is less than a second preset value, the polar coordinate point last traversed within the first search range is determined as the first control point.

[0141] Optionally, the acquiring unit 41 is further configured to:

[0142] If an obstacle is detected during the edge navigation, obtaining point cloud data of the obstacle;

[0143] The point cloud data is added to the local point cloud map.

[0144] Optionally, the device 4 further includes:

[0145] The detection unit 44 is used to calculate the average position of the robot in a first preset time period before the current moment at each preset period; calculate the maximum distance between the position of the robot in the first preset time period and the average position; if the maximum distance is less than a third preset value, determine that the robot is in a trapped state.

[0146] Optionally, the control unit 43 is further configured to:

[0147] If it is detected during the edge navigation process that a first escape condition is met, the edge navigation is stopped, wherein the first escape condition is met when the distance between the current position of the robot and the average position is greater than the maximum distance.

[0148] Optionally, the control unit 43 is further configured to:

[0149] When the robot is in a trapped state, determining a trapped area according to the trajectory of the robot within a second preset time period before the current moment;

[0150] If it is detected during the edge navigation process that a second escape condition is met, the edge navigation is stopped, wherein the second escape condition is met when the current position of the robot is outside the trapped area.

[0151] Optionally, the trajectory of the robot includes multiple trajectory points.

[0152] Accordingly, the control unit 43 is further configured to:

[0153] When the robot is in a trapped state, calculating the center point of the robot's trajectory within the second preset time period before the current moment;

[0154] Traversing a plurality of trajectory points of the robot within the second preset time period;

[0155] For any of the trajectory points, if the distance between the previous traversal point of the trajectory point and the center point of the trajectory, and the distance between the next traversal point of the trajectory point and the center of the trajectory are both greater than the distance between the trajectory point and the center point of the trajectory, then the trajectory point is deleted;

[0156] The trapped area is determined according to the remaining track points after traversal.

[0157] It should be noted that the information interaction, execution process, etc. between the above-mentioned devices / units are based on the same concept as the method embodiment of this application. Their specific functions and technical effects can be found in the method embodiment section and will not be repeated here.

[0158] in addition, Figure 4 The robot control device shown can be a software unit, a hardware unit, or a combination of software and hardware units built into an existing terminal device, or can be integrated into the terminal device as an independent pendant, or can exist as an independent terminal device.

[0159] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In actual applications, the above-mentioned functions can be distributed and completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated into one processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.

[0160] Figure 5 This is a schematic diagram of the structure of the robot provided in the embodiment of the present application. Figure 5 As shown, the robot 5 of this embodiment includes: at least one processor 50 ( Figure 5Only one is shown in the figure) a processor, a memory 51, and a computer program 52 stored in the memory 51 and executable on the at least one processor 50, wherein the processor 50 implements the steps of any of the above-mentioned robot control method embodiments when executing the computer program 52.

[0161] The robot may include, but is not limited to, a processor and a memory. It will be understood by those skilled in the art that Figure 5 This is merely an example of the robot 5 and does not constitute a limitation on the robot 5 . The robot 5 may include more or fewer components than shown in the figure, or a combination of certain components, or different components. For example, the robot 5 may also include input and output devices, network access devices, etc.

[0162] The processor 50 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (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 any conventional processor.

[0163] In some embodiments, the memory 51 may be an internal storage unit of the robot 5, such as a hard drive or memory of the robot 5. In other embodiments, the memory 51 may also be an external storage device of the robot 5, such as a plug-in hard drive, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the robot 5. Furthermore, the memory 51 may include both an internal storage unit of the robot 5 and an external storage device. The memory 51 is used to store an operating system, application programs, a boot loader, data, and other programs, such as the program code of the computer program. The memory 51 may also be used to temporarily store data that has been output or is about to be output.

[0164] 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, the steps in the above-mentioned various method embodiments can be implemented.

[0165] An embodiment of the present application provides a computer program product. When the computer program product runs on a robot, the robot can implement the steps in the above-mentioned method embodiments when executing the computer program product.

[0166] If the integrated unit 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 present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium, and when the computer program is executed by the processor, it can implement the steps of the above-mentioned various method embodiments. Wherein, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device that can carry the computer program code to the device / robot, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electric carrier signal, a telecommunication signal and a software distribution medium. For example, a USB flash drive, a mobile hard disk, a magnetic disk or an optical disk. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electric carrier signals and telecommunication signals.

[0167] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant description of other embodiments.

[0168] 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.

[0169] In the embodiments provided in this application, it should be understood that the disclosed devices / robots and methods can be implemented in other ways. For example, the device / robot embodiments described above are merely schematic. For example, the division of the modules or units is merely 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.

[0170] The units described as separate components may or may not be physically separate, and the 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 to achieve the purpose of this embodiment according to actual needs.

[0171] The above-described embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. These modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the various embodiments of the present application, and should all be included in the scope of protection of the present application.

Claims

1. A robot control method, characterized in that: include: When the robot is in a trapped state, a local point cloud map of the current trapped area is obtained through a radar installed on the robot; Performing edge navigation according to the local point cloud map to control the robot to move along the edge in the trapped area; If an escape path is detected during the edge navigation process, controlling the robot to move out of the trapped area along the escape path; The performing edge navigation according to the local point cloud map includes: For each control process of the edge navigation, generating a polar coordinate map according to the local point cloud map, wherein the polar coordinate map includes a plurality of polar coordinate points, and a polar coordinate system of the polar coordinate map takes the current position of the robot as an origin; Determining a first search range in the polar coordinate map according to the current posture of the robot; Traversing the polar coordinate points within the first search range in sequence; Searching for a first control point in the polar coordinate map according to a distance between polar coordinate points within the first search range; Determine a first target point according to the first control point and the current posture of the robot; Control the robot to move to the first target point.

2. The robot control method according to claim 1, wherein: The searching for the first control point in the polar coordinate map according to the distance of the polar coordinate point within the first search range includes: If there are two polar coordinate points that meet the preset conditions within the first search range, the polar coordinate point that is later in the traversal order of the two polar coordinate points that meet the preset conditions is determined as the first control point, wherein the two polar coordinate points meet the preset conditions if the distance between the two polar coordinate points is greater than a first preset value or the angle between the two polar coordinate points is greater than a first preset angle; If there are no two polar coordinate points meeting the preset condition within the first search range, and the maximum distance between the polar coordinate points within the first search range is greater than a second preset value, determining the polar coordinate point corresponding to the maximum distance within the first search range as the first control point; If there are no two polar coordinate points meeting the preset conditions within the first search range, and the maximum distance value of the polar coordinate points within the first search range is less than a second preset value, the polar coordinate point last traversed within the first search range is determined as the first control point.

3. The robot control method according to claim 1, wherein: The method further comprises: If an obstacle is detected during the edge navigation, obtaining point cloud data of the obstacle; The point cloud data is added to the local point cloud map.

4. The robot control method according to claim 1, wherein: The method further comprises: At every preset period, calculating the average position of the robot in a first preset time period before the current moment; calculating the maximum distance between the position of the robot and the average position within the first preset time period; If the maximum distance is less than a third preset value, it is determined that the robot is in a trapped state.

5. The robot control method according to claim 4, wherein: The method further comprises: If it is detected during the edge navigation process that a first escape condition is met, the edge navigation is stopped, wherein the first escape condition is met when the distance between the current position of the robot and the average position is greater than the maximum distance.

6. The robot control method according to claim 1, wherein: The method further comprises: When the robot is in a trapped state, determining a trapped area according to the trajectory of the robot within a second preset time period before the current moment; If it is detected during the edge navigation process that a second escape condition is met, the edge navigation is stopped, wherein the second escape condition is met when the current position of the robot is outside the trapped area.

7. The robot control method according to claim 6, wherein: The trajectory of the robot includes a plurality of trajectory points; When the robot is in a trapped state, determining a trapped area according to a trajectory of the robot within a second preset time period before a current moment includes: When the robot is in a trapped state, calculating the center point of the robot's trajectory within the second preset time period before the current moment; Traversing a plurality of trajectory points of the robot within the second preset time period; For any of the trajectory points, if the distance between the previous traversal point of the trajectory point and the center point of the trajectory, and the distance between the next traversal point of the trajectory point and the center of the trajectory are both greater than the distance between the trajectory point and the center point of the trajectory, then the trajectory point is deleted; The trapped area is determined according to the remaining track points after traversal.

8. A robot comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the computer program, the method according to any one of claims 1 to 7 is implemented.

9. A computer-readable storage medium storing a computer program, characterized in that: 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 trapping detection and de-trapping method

    CN110448241A

  • Robot edge control method and device, robot and storage medium

    CN114625135A

  • Obstacle-crossing and detrapping method of cleaning robot, cleaning robot and storage medium

    CN115357016A