Mobile robot, its movement control method, device and storage medium

By generating a global path through obstacle intersection analysis and trajectory following, the method improves the stability and smoothness of robot movement, especially during turns.

CN114637288BActive Publication Date: 2025-07-15MIDEA ROBOZONE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210230655.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-03-09
Publication Date
2025-07-15
Estimated Expiration
2042-03-09

AI Technical Summary

Technical Problem

When the robot moves through PID control, it cannot effectively avoid entering the set restricted area when it encounters the turning position, which affects the stability and smoothness of the movement.

Method used

By obtaining the location of the obstacle in the scene where the robot is located, determining the path surrounding the obstacle, and cutting and combining it according to the intersection information of the path to generate a global path, and controlling the robot to move in a trajectory follow-up manner.

Benefits of technology

It improves the smoothness and stability of robot movement, effectively avoids entering the restricted area, and ensures reliable execution of work tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114637288B_ABST
    Figure CN114637288B_ABST
Patent Text Reader

Abstract

This application belongs to the field of robots, and provides a robot, a method and device for controlling its movement, and a storage medium. The method includes: obtaining the positions of obstacles in the scene where the robot is located, where the obstacles include at least one of virtual obstacles and physical obstacles; determining a path around the obstacles according to the positions of the obstacles; cutting and combining the paths corresponding to two or more obstacles according to the intersection information of the paths to generate a global path; controlling the robot to move in a trajectory-following manner according to the global path. This enables the robot to move according to the global path, maintaining smooth movement while effectively avoiding the robot entering a movement restricted area, which is beneficial to improving the stability of the robot during movement.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application belongs to the field of robots, and particularly relates to mobile robots, their mobile control methods, devices, and storage media. Background Art

[0002] With the development of robot technology, more and more robots are applied to people's lives and work, bringing great convenience to people's lives and work. For example, a floor cleaning robot can automatically complete the floor cleaning work for people, an air purification robot can automatically purify the air in multiple areas, and a food delivery robot can automatically complete the delivery of food, etc.

[0003] During the process of a robot completing the set tasks, it is necessary to plan the task path of the robot so that the robot can efficiently and smoothly complete the work tasks. In order to enable the robot to walk stably, virtual obstacles, including restricted areas such as virtual walls, may be set in the robot's working scenario. When the robot is walking, it usually uses the PID control method to keep the desired distance from the virtual wall and the restricted area. However, when the robot moves at a certain speed, if it encounters a turning position, it may not be able to effectively avoid entering the restricted area, which is not conducive to improving the smoothness of the robot's movement and affects the fluency of the robot's movement. Summary of the Invention

[0004] In view of this, embodiments of the present application provide a robot, its mobile control method, device, and storage medium to solve the problem that when the robot in the prior art moves through the PID control method, if it encounters a turning position, it cannot effectively avoid entering the set restricted area, which is not conducive to improving the smoothness of the robot's movement and affects the fluency of the robot's movement.

[0005] The first aspect of the embodiments of the present application provides a mobile control method for a robot, and the method includes:

[0006] Obtain the positions of the obstacles in the scene where the robot is located, where the obstacles include at least one of virtual obstacles and physical obstacles;

[0007] Determine a path surrounding the obstacle according to the position of the obstacle;

[0008] Cut and combine the paths corresponding to two or more obstacles according to the intersection information of the paths to generate a global path;

[0009] Control the robot to move in a trajectory following manner according to the global path.

[0010] In combination with the first aspect, in the first possible implementation manner of the first aspect, according to the intersection information of the paths corresponding to two or more obstacles, cutting and combining the paths to generate a global path, including:

[0011] When the first path corresponding to the first obstacle intersects with the second path corresponding to the second obstacle, determining a first area included in the first path and a second area included in the second path, where the first area includes the first obstacle and the second path includes the second obstacle;

[0012] Cutting off the path segment of the first path located in the second area and cutting off the path segment of the second path located in the first area;

[0013] Combining the remaining path segments of the first path and the remaining path segments of the second path to generate a global path.

[0014] In combination with the first possible implementation manner of the first aspect, in the second possible implementation manner of the first aspect, after combining the remaining path segments of the first path and the remaining path segments of the second path, the method further includes:

[0015] Determining the magnitude of the pose change when the robot passes through the connection point of the first path and the second path;

[0016] When the magnitude of the pose change is greater than a preset magnitude threshold, smoothing the path at the connection point.

[0017] In combination with the first aspect, in the third possible implementation manner of the first aspect, before cutting and combining the paths according to the intersection information of the paths corresponding to two or more obstacles, the method further includes:

[0018] Obtaining the closest distance between two obstacles;

[0019] Comparing the closest distance with twice the safety radius of the robot;

[0020] When the closest distance is less than or equal to twice the safety radius, determining that the paths determined by the two obstacles corresponding to the closest distance intersect;

[0021] When the closest distance is greater than twice the safety radius, determining that the paths determined by the two obstacles corresponding to the closest distance do not intersect.

[0022] In combination with the third possible implementation manner of the first aspect, in the fourth possible implementation manner of the first aspect, before comparing the closest distance with twice the safety radius of the robot, the method further includes:

[0023] Obtain the external shape of the obstacle;

[0024] When the external shape of the obstacle is a straight line shape, determine that the narrowest body width of the robot is twice the safety radius;

[0025] When the external shape of the obstacle is a curved shape, determine that the widest body width of the robot is twice the safety radius.

[0026] Combined with the fourth possible implementation manner of the first aspect, in the fifth possible implementation manner of the first aspect, before cutting and combining the path according to the intersection information of the paths corresponding to two or more obstacles, the method further includes:

[0027] Obtain the local shapes of the two obstacles corresponding to the shortest distance between the two obstacles;

[0028] When the local shape is a straight line segment, determine that the safety distance at the shortest distance of the obstacle is half of the narrowest body width of the robot as the safety radius, and when the local shape is a curve, determine that the safety distance at the shortest distance of the obstacle is half of the widest body width of the robot;

[0029] Compare the sum of the safety distances of the two obstacles determined with the shortest distance to determine whether the two paths intersect.

[0030] Combined with the first aspect, in the sixth possible implementation manner of the first aspect, cutting and combining the path according to the intersection information of the paths corresponding to two or more obstacles to generate a global path, including:

[0031] When N obstacles in the scene where the robot is located intersect, obtain the paths corresponding to the N intersecting obstacles, and determine the no-go areas included in the paths, where N is greater than or equal to 3;

[0032] Compare the i-th path with the no-go areas determined by the other N - 1 obstacles, and cut off the path segments of the i-th path located in the other N - 1 no-go areas, where i is less than or equal to N;

[0033] Combine the remaining path segments after the N paths are cut to generate a global path.

[0034] The second aspect of the embodiments of the present application provides a mobile control device for a robot, and the device includes:

[0035] A sensor, configured to collect the positions of the obstacles in the scene where the robot is located, and the obstacles include at least one of virtual obstacles and physical obstacles;

[0036] A processor is configured to determine a path around an obstacle based on the position of the obstacle in the scene where the robot is located, cut and combine the path according to the intersection information of the paths corresponding to two or more obstacles to generate a global path, and control the robot to move in a trajectory following manner according to the global path.

[0037] In a third aspect of the embodiments of the present application, a robot is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, the steps of the method according to any one of the first aspects are implemented.

[0038] In a fourth aspect of the embodiments of the present application, a computer-readable storage medium is provided. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the method according to any one of the first aspects are implemented.

[0039] The beneficial effects of the embodiments of the present application compared with the prior art are as follows: By obtaining the obstacle information in the scene where the robot is located, determining the path around the obstacle, and cutting and combining the path based on the intersection information of the paths, the global path corresponding to the obstacles in the scene is obtained, so that the robot can move according to the global path, which can maintain the smoothness of movement while effectively preventing the robot from entering the moving restricted area, and is beneficial to improving the stability of the robot during movement. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings required for use in the embodiments or the description of the prior art. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0041] Figure 1 It is a schematic flowchart of the implementation of a method for controlling the movement of a robot provided by an embodiment of the present application;

[0042] Figure 2 It is a schematic diagram of a path around an obstacle provided by an embodiment of the present application;

[0043] Figure 3 It is a schematic diagram for determining whether the paths of obstacles intersect provided by an embodiment of the present application;

[0044] Figure 4 It is another schematic diagram for determining whether the paths of obstacles intersect provided by an embodiment of the present application;

[0045] Figure 5It is a schematic diagram of a robot movement control device provided by an embodiment of the present application;

[0046] Figure 6 It is a schematic diagram of a robot provided by an embodiment of the present application. Specific embodiments

[0047] In the following description, for the purpose of illustration rather than limitation, specific details such as specific system structures and technologies are proposed to thoroughly understand the embodiments of the present application. However, those skilled in the art should clearly understand that the present application can also 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 unnecessary details from interfering with the description of the present application.

[0048] In order to illustrate the technical solutions described in the present application, specific embodiments will be used for illustration below.

[0049] During the process of a robot performing a work task, such as a sweeping robot performing a sweeping task or a mobile air purification robot performing an air purification task, it may encounter actual obstacles and virtual obstacles. Actual obstacles include items stacked, desks and chairs, etc., and virtual obstacles include artificially set obstacles, as well as setting some special terrains as obstacles for safety considerations. For example, indoor steps and thresholds can be set as virtual obstacles, so that the robot can work in a reliable working area, improving the stability and reliability of the robot's work.

[0050] Currently, when a robot works in a scenario including obstacles, it usually adopts a PID control method to ensure the distance between the robot and the obstacles. That is, the distance between the robot and the obstacles is detected in real time by the sensors set on the robot. When the distance between the robot and the obstacles is less than the set safety distance, a virtual collision is triggered, the robot is controlled to leave the restricted area, and the robot moves along the obstacle according to the detected distance between the robot and the obstacles.

[0051] However, when the robot moves along an obstacle, when there is a turn in the path of moving along the obstacle, since the sensors of the robot cannot obtain the shape of the obstacle in the turning area before turning, the size of the turning angle cannot be determined in advance. If the robot needs to move at a certain speed, it may perform turning control according to the empirical angle. For example, the turning angle of the wall is determined to be 90 degrees according to experience. Although this control method can maintain the smoothness of the robot's movement to a certain extent, the obstacles in the actual scenario may be different from the empirical obstacles. When the obstacles in the actual scenario are inconsistent with the empirical angle when the robot turns, the robot may enter the virtual obstacle area or fail to effectively stick to the obstacle to perform tasks such as cleaning.

[0052] To solve the above problems, an embodiment of the present application proposes a method for controlling the movement of a robot, as Figure 1 shown, the implementation process of this method includes:

[0053] In S101, obtain the positions of obstacles in the scene where the robot is located, and the obstacles include at least one of virtual obstacles and physical obstacles.

[0054] Specifically, the way to obtain the positions of the obstacles can be determined according to the types of the obstacles. For example, when the obstacle is a physical obstacle, it can be obtained through the sensors set on the robot. For example, a lidar sensor can emit lidar, and based on the laser signals reflected by the obstacle, the distance between the robot and the obstacle and the orientation of the obstacle relative to the robot can be obtained, so as to determine the position of the obstacle in the scene. Alternatively, an image sensor can also be used to collect images in the scene where the robot is located, identify the obstacles in the scene based on the image content, and determine the distance between the robot and the obstacle based on a depth sensor. The depth sensor can include, for example, a binocular camera, an optical sensor, or an infrared sensor, etc.

[0055] When the obstacle is a virtual obstacle, if the virtual obstacle is a software virtual wall, the position of the obstacle can be determined according to the setting information of the software. For example, the position setting information of the virtual obstacle in the scene map of the robot can be received, and based on the position setting information of the virtual obstacle, the position of the virtual obstacle can be determined. Alternatively, the feature settings of the virtual obstacle can also be received. For example, a step, a threshold, or other specific identifiers are set as virtual obstacles. When the robot detects a specific identifier through a sensor, the position where the specific identifier is located is determined as the position of the virtual obstacle.

[0056] When the robot obtains the positions of the obstacles in the scene, the obstacle information in the scene can be collected in a mapping manner according to a preset path or a specific mapping path.

[0057] The robot described in the embodiment of the present application can be a robot that needs to comprehensively cover the scene. For example, the robot can be a floor cleaning robot that needs to clean the non-obstacle areas in the scene, or a cleaning robot that purifies the air in the scene, or an epidemic prevention robot that sterilizes and disinfects the scene, etc.

[0058] In S102, according to the positions of the obstacles, determine a path around the obstacles.

[0059] After the position of the obstacle is acquired, the path surrounding the obstacle can be determined according to the external shape of the obstacle. Wherein, there is a predetermined distance between the path and the obstacle. By maintaining a predetermined distance between the obstacle and the path, when the robot follows the trajectory along the path, the area between the path and the obstacle can be effectively covered, so that the working task of the robot can be effectively completed. The working tasks include but are not limited to the cleaning work of the sweeping robot in the scene, the air purification work of the air purification robot in the scene, the disinfection work of the epidemic prevention robot in the scene, etc.

[0060] When determining the path corresponding to the obstacle in the scene, the obstacle can be first identified to determine the number of obstacles included in the scene. According to the determined number of obstacles, the paths corresponding to the obstacles are determined respectively.

[0061] When determining the number of obstacles, the connection relationship between the obstacle areas can be determined according to the positions of the acquired obstacle areas. When there is a connection relationship between two obstacle areas, it is determined that the two obstacle areas belong to the same obstacle. When there is no connection relationship between two obstacle areas, it can be determined that the two obstacle areas belong to two obstacles.

[0062] For example, Figure 2 The figure shows a schematic diagram of an obstacle provided by an embodiment of the present application. As Figure 2 shown, it is detected that the scene includes an obstacle area formed by the intersection of two virtual walls, and these two obstacle areas intersect. Therefore, these two obstacle areas can be classified into the same obstacle.

[0063] According to the shape information of the robot, the safety distance between the robot and the obstacle can be determined. For example, the safety distance can be the distance at which the robot will not collide with the obstacle during movement. This safety distance can be determined according to the movement trajectory of the robot. For example, when the movement trajectory of the robot is a straight line, the safety distance can be half of the narrowest body width of the robot. When the movement trajectory of the robot is a curve, the safety distance can be half of the widest body width of the robot. That is to say, when the movement trajectory of the robot is a straight-line movement, the robot maintains its posture unchanged in the forward direction of the straight line, so that the robot can be as close to the obstacle as possible, so as to be able to complete reliable cleaning and other working tasks in the area close to the obstacle. When the movement trajectory of the robot is a curve movement, since the posture of the robot constantly changes during the curve movement, in order to avoid the robot colliding with the obstacle, half of the widest body width of the robot can be selected as the safety distance, so as to be as close to the obstacle as possible on the premise of ensuring the reliability of the robot movement, so as to be able to safely and effectively perform cleaning work on the obstacle area.

[0064] Since the path of the robot's movement can be determined according to the shape of the obstacle, that is, the width between the robot's movement path and the obstacle is a predetermined distance. Therefore, it is possible to first determine whether the shape of the obstacle is composed of straight line segments. If the shape of the obstacle is composed of straight line segments and the length of the straight line segment is greater than the predetermined length, then half of the narrowest body width of the robot can be used as the safety distance to determine the path corresponding to the obstacle. If the shape of the obstacle is a curved shape, then half of the widest body width of the robot can be used as the safety distance to determine the path corresponding to the obstacle.

[0065] It can be understood that in the shape of the same obstacle, it can include both a straight line area and a curved area. For the straight line area, half of the narrowest body width of the robot can be used as the safety distance to determine the corresponding path, and for the curved area, half of the widest body width of the robot can be used as the safety distance to determine the corresponding path. That is to say, for the same obstacle, the determined safety distance may include two or more. Determining the path according to two or more safety distances enables the robot to effectively ensure the safety of the robot's movement when moving along the path, avoid moving into the restricted area, and can also effectively approach the obstacle to improve the efficiency of the robot's cleaning and other work.

[0066] In S103, according to the intersection information of the paths corresponding to two or more obstacles, the paths are cut and combined to generate a global path.

[0067] After determining the path corresponding to each obstacle, if the determined paths do not intersect, then the global path of the robot's movement in this scenario can be determined according to the generated paths. That is, in this global path, for the area where the obstacle is located, the movement control is performed in a trajectory following manner according to the path corresponding to the obstacle.

[0068] In a possible implementation scenario, the determined paths of the obstacles may intersect. To prevent the robot from entering the obstacle area or the restricted area during movement, it is necessary to perform cutting processing on the intersecting paths.

[0069] When judging whether the paths will intersect, it can be judged according to the generated paths, or it can be judged according to the distance between the obstacles.

[0070] When judging the intersection of paths according to the paths generated by the obstacles, it can be judged whether there are the same trajectory points in two paths. If there are the same trajectory points in two paths, then it can be judged that these two paths are related, otherwise it is judged that these two paths do not intersect.

[0071] When judging according to the distance between obstacles, first determine the shortest distance between two obstacles. Then compare this shortest distance with the safety distance of the robot.

[0072] When the safety distance of the robot is a fixed safety distance, the shortest distance can be compared with twice the safety distance of the robot. If the shortest distance is greater than twice the safety distance of the robot, it means that the paths of these two obstacles do not intersect. If the shortest distance is less than or equal to twice the safety distance of the robot, it means that these two obstacles intersect.

[0073] Among them, the safety distance can be half of the narrowest body width of the robot or half of the widest body width of the robot.

[0074] Since the safety distance of the robot's movement is related to the path of the robot's movement, when the path of the robot's movement is a straight-line movement, the safety distance of the robot's movement can be half of the narrowest body width of the robot. When the path of the robot's movement is a curved movement, the safety distance of the robot's movement can be half of the widest body width of the robot.

[0075] Since the path of the robot's movement is related to the shape of the obstacle, when the shape of the obstacle is a straight-line segment, the corresponding path is a straight path. When the shape of the obstacle is a curve, the corresponding path is a curved path. Therefore, when the shape of the obstacle is a straight-line segment, the safety distance of the robot's movement can be half of the narrowest body width of the robot. When the shape of the obstacle is a curve, the safety distance of the robot's movement can be half of the widest body width of the robot.

[0076] In a possible implementation, the shape of the same obstacle includes both a straight-line segment area and a curved area. Therefore, the safety distance corresponding to the same obstacle can include half of the widest body width of the robot and half of the narrowest body width of the robot. In this case, when judging whether the paths of two obstacles intersect, it is necessary to first judge the local shape of the obstacle corresponding to the obstacle distance (which may or may not be the shortest distance between obstacles). If the local shape corresponding to the obstacle distance is a straight-line segment, the corresponding safety distance is half of the narrowest body width of the robot. If the local shape corresponding to the obstacle distance is a curve, the corresponding safety distance is half of the widest body width of the robot. Sum the local safety distances of the two obstacles and compare this sum value with the corresponding obstacle distance. If the sum value is less than or equal to the obstacle distance, it means that the paths of the two obstacles intersect. If the sum value is greater than the obstacle distance, it means that the paths of the two obstacles do not intersect. Figure 3As shown, the obstacle distance between the first obstacle and the second obstacle, i.e., the shortest distance is L. At the shortest distance between the first obstacle and the second obstacle, since the local shape of the first obstacle is a straight line, the safety distance corresponding to the first obstacle is r, which is half of the narrowest body width of the robot, and the safety distance corresponding to the second obstacle is R, which is half of the widest body width of the robot. Compare the sum value R + r of the shortest distance L and the safety distance. If L is greater than R + r, it means that the two paths do not intersect at this position. If L is less than or equal to R + r, it means that the two paths intersect at this position.

[0077] Since the safety distances corresponding to the local shapes of the obstacles are different, therefore, in order to improve the accuracy of judging whether the paths of the robot intersect, the safety distances can be judged at all positions where the obstacle distance between the two obstacles is less than the widest body width of the robot. For example Figure 4 As shown, the scene includes a first obstacle and a second obstacle, and both the first obstacle and the second obstacle include a straight-line segment shape and a curved shape. The shortest distance L1 between the two obstacles is in the straight-line segment shape area, but in the curved shape areas of the two obstacles, the distance L2 between the two obstacles is still less than the widest body width of the robot. Assume that r is half of the narrowest body width of the robot and R is half of the widest body width of the robot. As Figure 4 shown, in the straight-line segment area of the obstacle, the shortest distance L1 of the obstacle is greater than 2r. Therefore, it is judged that the two paths do not intersect in the straight-line segment area. In the curved segment area, the distance L2 between the two obstacles is less than 2R, then it is judged that the two paths intersect. That is, by comparing all positions where the obstacle distance is less than the widest body width of the robot, it is possible to more accurately determine whether the paths of the obstacles intersect.

[0078] When it is determined that the two paths intersect, the obstacle area can be determined according to the paths of the obstacles. For example Figure 4 As shown, the two obstacles are the first obstacle and the second obstacle respectively. By the above distance judgment, when it is determined that the first path of the first obstacle intersects the second path of the second obstacle, the first area corresponding to the first obstacle and the second area corresponding to the second obstacle can be determined. Among them, the first area is surrounded by the first path, the second area is surrounded by the second path, and the first area includes the first obstacle, and the second area includes the second obstacle. Since both the first area and the second area are no-go areas, therefore, the second path can be cut by the first area, and the path segment of the second path located in the no-go area of the first area can be removed. Similarly, the first path can be cut by the second area, and the path segment of the first path located in the no-go area of the second area can be removed. The remaining path segments after excision are spliced and combined to obtain the paths corresponding to the first obstacle and the second obstacle. According to the paths corresponding to all the obstacles in the scene, the global path of the scene can be obtained.

[0079] Alternatively, by judging the distance to the obstacles, when there are three or more obstacles intersecting in the scene, after determining the paths corresponding to the three or more obstacles and the restricted areas corresponding to the paths, the restricted areas formed by each path and other paths can be compared, and the path segments within the restricted areas can be cut off. By combining the remaining road segments after cutting off multiple restricted areas, the paths corresponding to three or more obstacles can be obtained.

[0080] It should be noted that the obstacles in the embodiments of the present application may include obstacles with complete shapes that can be detected in the scene, such as items, tables, and chairs in the scene, or may also include obstacles whose entire shapes cannot be detected in the scene, such as walls. For obstacles such as walls whose entire shapes cannot be detected, the corresponding area is all areas outside the scene. For example, for a task-performing robot in a room, the obstacles corresponding to the four surrounding walls detected are all areas outside the room.

[0081] In a possible implementation, among the paths combined according to the remaining path segments, there may be sharp turns at the path intersections. When the robot moves along this path, it may cause the robot to get stuck during the movement. Therefore, after combining the remaining path segments, the present application can also determine the smoothness of the combined path, or detect the pose change amplitude of the robot at the connection points of the combined path (which can also be the entire combined path). When the smoothness of the path is less than a pre-set smoothness threshold, or the pose change amplitude at the connection point is greater than a predetermined amplitude threshold, the combined path is further smoothed to improve the fluency of the robot's movement.

[0082] In S104, control the robot to move in a trajectory following manner according to the global path.

[0083] After determining the path according to one or more obstacles in the scene, the robot can follow the determined path, enabling the robot to perform tasks reliably and stably in the obstacle area. And since the robot moves according to the global path, it can avoid the situation where the robot gets stuck or moves into the restricted area when it fails to detect the turning information of the scene when using the PID control method for movement, thereby effectively improving the reliability and stability of the robot's movement.

[0084] It should be understood that the magnitudes of the sequence numbers of the steps in the above embodiments do not mean the order of execution. The execution order of each process should be determined according to its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.

[0085] Figure 5Schematic diagram of a mobile control device for a robot provided by an embodiment of the present application, as Figure 5 shown, the device includes:

[0086] A sensor 501 for collecting the positions of obstacles in the scene where the robot is located, where the obstacles include at least one of virtual obstacles and physical obstacles;

[0087] A processor 502 for determining a path around the obstacle according to the positions of the obstacles in the scene where the robot is located, cutting and combining the paths according to the intersection information of the paths corresponding to two or more obstacles to generate a global path, and controlling the robot to move in a trajectory following manner according to the global path.

[0088] Figure 5 The mobile control device of the robot shown corresponds to Figure 1 the mobile control method of the robot shown.

[0089] Figure 6 is a schematic diagram of a robot provided by an embodiment of the present application. As Figure 6 shown, the robot 6 of this embodiment includes: a processor 60, a memory 61, and a computer program 62 stored in the memory 61 and executable on the processor 60, such as a mobile control program for the robot. When the processor 60 executes the computer program 62, the steps in the above-mentioned embodiments of the mobile control method for each robot are implemented. Alternatively, when the processor 60 executes the computer program 62, the functions of each module / unit in the above-mentioned device embodiments are implemented.

[0090] Exemplarily, the computer program 62 can be divided into one or more modules / units, and the one or more modules / units are stored in the memory 61 and executed by the processor 60 to complete the present application. The one or more modules / units can be a series of computer program instruction segments capable of performing specific functions, and these instruction segments are used to describe the execution process of the computer program 62 in the robot 6.

[0091] The robot may include, but is not limited to, a processor 60 and a memory 61. Those skilled in the art can understand that Figure 6 this is only an example of the robot 6 and does not constitute a limitation on the robot 6. It may include more or fewer components than shown in the figure, or combine some components, or different components. For example, the robot may further include input / output devices, network access devices, buses, etc.

[0092] The so-called processor 60 may be a Central Processing Unit (CPU), or may also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.

[0093] The memory 61 may be an internal storage unit of the robot 6, such as the hard disk or memory of the robot 6. The memory 61 may also be an external storage device of the robot 6, such as a plug-in hard disk equipped on the robot 6, a Smart Media Card (SMC), a Secure Digital (SD) card, a Flash Card, etc. Further, the memory 61 may also include both the internal storage unit of the robot 6 and the external storage device. The memory 61 is used to store the computer program and other programs and data required by the robot. The memory 61 may also be used to temporarily store data that has been output or will be output.

[0094] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the above division of each functional unit and module is used as an example. In actual applications, the above functions can be assigned to 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. Each functional unit and module in the embodiments 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 integrated unit can be implemented in the form of hardware or in the form of a software functional unit. In addition, the specific names of each functional unit and module are only for the convenience of mutual distinction and do not limit the protection scope of this application. The specific working processes of the units and modules in the above system can refer to the corresponding processes in the foregoing method embodiments and will not be elaborated herein.

[0095] In the above embodiments, the descriptions of the various embodiments have their own emphases. For the parts not detailed or recorded in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0096] Those of ordinary skill in the art will realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed in hardware or software depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of this application.

[0097] In the embodiments provided in this application, it should be understood that the disclosed device / terminal device and method can be implemented in other ways. For example, the device / terminal device embodiments described above are merely illustrative. For example, the division of the modules or units is only a logical function division. In actual implementation, there may be other division methods. For example, 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 displayed or discussed mutual coupling or direct coupling or communication connection can be through some interfaces. The indirect coupling or communication connection of the device or unit can be in an electrical, mechanical or other form.

[0098] The units described as separate components may or may not be physically separated. The components displayed as units may or may not be physical units, that is, they can be located in one place, or they can be distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0099] In addition, the functional units in each embodiment of this application can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The above integrated units can be implemented in the form of hardware or in the form of software functional units.

[0100] When the integrated module / 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, to implement all or part of the processes in the above-mentioned embodiment methods of this application, it can also be completed by hardware related to computer program instructions. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by a processor, the steps of the above-mentioned various method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in the form of source code, object code, executable file or some intermediate form, etc. The computer-readable medium can include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disc, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signal, telecommunication signal, and software distribution medium, etc. It should be noted that the content included in the computer-readable medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, the computer-readable medium does not include electrical carrier signals and telecommunication signals.

[0101] The above-mentioned embodiments are only used to illustrate the technical solutions of this application, rather than to limit them; although this application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the various embodiments of this application, and should all be included in the protection scope of this application.

Claims

1. A method for controlling the movement of a robot, characterized in that, The method includes: Obtaining the positions of obstacles in the scene where the robot is located, where the obstacles include at least one of virtual obstacles and physical obstacles; Determining a path around the obstacle according to the position of the obstacle; Cutting and combining the paths according to the intersection information of the paths corresponding to two or more obstacles to generate a global path; Controlling the robot to move in a trajectory-following manner according to the global path; Cutting and combining the paths according to the intersection information of the paths corresponding to two or more obstacles to generate a global path, including: When the first path corresponding to the first obstacle intersects the second path corresponding to the second obstacle, determining the first area included in the first path and the second area included in the second path, where the first area includes the first obstacle and the second path includes the second obstacle; removing the path segment of the first path located in the second area and removing the path segment of the second path located in the first area; combining the remaining path segments of the first path and the remaining path segments of the second path to generate a global path; Or, when N obstacles in the scene where the robot is located intersect, obtaining the paths corresponding to the N intersecting obstacles, determining the no-go area included in the paths, where N is greater than or equal to 3; comparing the i-th path with the no-go areas determined by the other N-1 obstacles, and removing the path segments of the i-th path located in the no-go areas of the other N-1 obstacles, where i is less than or equal to N; combining the remaining path segments after the N paths are cut to generate a global path.

2. The method according to claim 1, characterized in that, After combining the remaining path segments of the first path and the remaining path segments of the second path, the method further includes: Determining the pose change amplitude when the robot passes through the connection point of the first path and the second path; When the pose change amplitude is greater than a preset amplitude threshold, smoothing the path at the connection point.

3. The method according to claim 1, wherein Before cutting and combining the paths according to the intersection information of the paths corresponding to two or more obstacles, the method further includes: Obtaining the closest distance between two obstacles; Comparing the closest distance with twice the safety radius of the robot; When the closest distance is less than or equal to twice the safety radius, determining that the paths determined by the two obstacles corresponding to the closest distance intersect; When the closest distance is greater than twice the safety radius, determining that the paths determined by the two obstacles corresponding to the closest distance do not intersect.

4. The method according to claim 3, wherein Before comparing the closest distance with twice the safety radius of the robot, the method further includes: Obtaining the external shape of the obstacle; When the external shape of the obstacle is a straight line shape, determining that the narrowest body width of the robot is twice the safety radius; When the external shape of the obstacle is a curved shape, determining that the widest body width of the robot is twice the safety radius.

5. The method according to claim 1, characterized in that Before cutting and combining the paths according to the intersection information of the paths corresponding to two or more obstacles, the method further includes: Obtain the local profiles of two obstacles corresponding to the obstacle distance between the two obstacles; When the local profile is a straight line segment, determine that the safety distance at the obstacle distance of the obstacle is half of the narrowest body width of the robot; when the local profile is a curve, determine that the safety distance at the obstacle distance of the obstacle is half of the widest body width of the robot; Compare the sum of the safety distances of the two obstacles determined with the obstacle distance to determine whether the two paths intersect.

6. A mobile control device for a robot, characterized in that, The device includes: A sensor for collecting the positions of obstacles in the scene where the robot is located, and the obstacles include at least one of virtual obstacles and physical obstacles; A processor for determining a path around the obstacle according to the positions of the obstacles in the scene where the robot is located, cutting and combining the paths corresponding to two or more obstacles according to the intersection information of the paths, generating a global path, and controlling the robot to move in a trajectory following manner according to the global path. Cutting and combining the paths corresponding to two or more obstacles according to the intersection information of the paths to generate a global path, including: When the first path corresponding to the first obstacle intersects with the second path corresponding to the second obstacle, determine the first area included in the first path and the second area included in the second path. The first area includes the first obstacle, and the second path includes the second obstacle; Cut off the path segment of the first path located in the second area and the path segment of the second path located in the first area; Combine the remaining path segments of the first path and the remaining path segments of the second path to generate a global path; Or, when N obstacles in the scene where the robot is located intersect, obtain the paths corresponding to the N intersecting obstacles, and determine the no-go area included in the paths, where N is greater than or equal to 3; Compare the i-th path with the no-go areas determined by the other N-1 obstacles, and cut off the path segments of the i-th path located in the other N-1 no-go areas, where i is less than or equal to N; Combine the remaining path segments after cutting the N paths to generate a global path.

7. A robot, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 5.

8. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the method according to any one of claims 1 to 5.

Citation Information

Patent Citations

  • Path planning method of mobile robot, chip and mobile robot

    CN112947486A

  • Path navigation planning method and device, storage medium and electronic equipment

    CN113534818A