Path planning method, device, computer-readable storage medium and electronic device
By combining static maps and temporary obstacle information, dynamically adjusting the path weights to achieve real-time updates and optimization of robot paths, the problems of frequent and inefficient path updates caused by temporary obstacles in the prior art are solved, and the work efficiency of multi-robot collaboration is significantly improved.
Patent Information
- Application Number
- CN202210333261.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-03-30
- Publication Date
- 2025-03-18
- Estimated Expiration
- 2042-03-30
AI Technical Summary
Existing robot path planning methods are difficult to effectively deal with the continuous changes in the scene, especially in scenarios with narrow paths. The emergence and disappearance of temporary obstacles lead to frequent path updates and inefficiency.
By obtaining information about static maps and temporary obstacles, re-planning the robot's walking path, using dynamic path weight calculation method to adjust the section weight, and planning the walking paths of other robots based on the global map to ensure real-time update and optimization of the paths.
It realizes that the robot can update its walking path in a timely manner when facing scene changes, improves the collaborative work efficiency of multiple robots, and avoids repeated path updates and reduced efficiency caused by temporary obstacles.
Smart Images

Figure CN114740844B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of robots, and in particular, to a path planning method, device, computer-readable storage medium, and electronic device. Background Art
[0002] A static map is constructed based on the robot's environment, in which path planning in the static map is the most critical part of the mobile robot's work. For most service robots that perform services such as delivery, food delivery, and welcoming guests, users often have high requirements for the efficiency of service robots in moving and executing tasks. Users expect the robot to be able to search for the optimal or approximately optimal path from the starting position to the target position to walk when performing tasks, and to be able to intelligently adapt to dynamic changes in the environment. Especially in some scenarios with narrow paths, there are often some sudden obstacles that cause certain passages to be blocked. In this case, being able to obtain the optimal path or update the walking path in a timely manner in response to the constant changes in the scene is a difficult problem that the current robot system needs to solve. Summary of the invention
[0003] The purpose of the present disclosure is to provide a path planning method, which enables a robot to obtain an optimal path or update the walking path in a timely manner in response to the continuous changes in the scene.
[0004] In order to achieve the above-mentioned objectives, in a first aspect, the present disclosure provides a path planning method, comprising: obtaining a static map; the static map is constructed according to the environment in which the robot is located, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot; in the event that obstacle avoidance fails when at least one robot performs a navigation task according to the static map, obtaining information of temporary obstacles on the temporary obstacle path where the obstacle avoidance failure occurs; the information of the temporary obstacle includes a life cycle, and the life cycle represents the existence duration of the temporary obstacle, and the temporary obstacle path is a path from a starting position to a target position; replanning the walking path of the at least one robot according to the information of the temporary obstacle and the static map, and planning the walking paths of other robots according to the information of the temporary obstacle and the static map.
[0005] Optionally, the step of planning the walking paths of other robots according to the information of the temporary obstacles includes: constructing a temporary obstacle map according to the information of the temporary obstacles; obtaining a global map by superimposing the static map and the temporary obstacle map; and planning the walking paths of other robots according to the global map during the life cycle.
[0006] Optionally, the path consists of multiple road sections, and the step of planning the walking path of the other robots based on the information of the temporary obstacle includes: calculating the dynamic path weight of the road section where the temporary obstacle is located; and planning the walking path of the other robots based on the dynamic path weight and the static map.
[0007] Optionally, the step of calculating the dynamic path weight of the road section where the temporary obstacle is located includes: obtaining the initial path weight of the road section where the temporary obstacle is located; and obtaining the dynamic path weight based on the initial path weight, the life cycle, and the length of time that the temporary obstacle has existed.
[0008] Optionally, the calculation formula of the dynamic path weight includes:
[0009]
[0010] Among them, Weight is the dynamic path weight, Weight 0 is the initial path weight, Lim_Period is the life cycle, and T_elapse is the duration for which the temporary obstacle currently exists.
[0011] Optionally, the static map includes the starting position and the target position of the robot; the step of planning the walking path of the other robots according to the dynamic path weight and the static map includes: obtaining all feasible paths from the starting position to the target position; obtaining the weight value of each section of all the feasible paths; the weight value of each section includes the value of the current dynamic path weight; calculating the path weights of all the feasible paths according to the weight value of each section; and planning the walking paths of the other robots according to the size of the path weights of all the feasible paths.
[0012] Optionally, the step of planning the walking paths of the other robots according to the dynamic path weights and the static map includes: controlling the other robots to move according to the walking path; if at least one of the other robots detects that the temporary obstacle has not disappeared, recording the number of consecutive obstacle avoidance failures on the temporary obstacle path; if at least one of the other robots detects that the temporary obstacle has disappeared, re-planning the walking paths of all robots according to the static map, and clearing the number of consecutive obstacle avoidance failures on the temporary obstacle path.
[0013] Optionally, when the number of obstacle avoidance failures that occur consecutively on the temporary obstacle path is greater than a predetermined threshold, the temporary obstacle is added to the static map, or a notification requesting manual assistance in clearing the obstacle is issued.
[0014] Optionally, the information of the temporary obstacle includes the location of the road section where the temporary obstacle is located; when the road section where the temporary obstacle is located is the only path from the starting position to the target position, a notification requesting manual assistance in clearing the obstacle is issued.
[0015] In a second aspect, the present disclosure provides a path planning device, comprising: an acquisition module, used to acquire a static map; the static map is constructed according to the environment in which the robot is located, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot; the acquisition module is also used to acquire information of temporary obstacles on the temporary obstacle path where the obstacle avoidance failure occurs when at least one robot fails to avoid obstacles when performing a navigation task according to the static map; the information of the temporary obstacle includes a life cycle, and the life cycle represents the existence duration of the temporary obstacle, and the temporary obstacle path is a path from a starting position to a target position; a processing module is used to re-plan the walking path of the at least one robot according to the information of the temporary obstacle and the static map, and to plan the walking paths of other robots according to the information of the temporary obstacle and the static map.
[0016] According to a third aspect of an embodiment of the present disclosure, there is provided a non-temporary computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps of the aforementioned path planning method are implemented.
[0017] According to a fourth aspect of an embodiment of the present disclosure, there is provided an electronic device, comprising: a memory on which a computer program is stored; and a processor for executing the computer program in the memory to implement the steps of the aforementioned path planning method.
[0018] Through the above technical solution, a static map constructed according to the environment in which the robot is located is obtained, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot. When at least one robot fails to avoid obstacles when performing a navigation task according to the static map, information of temporary obstacles on the temporary obstacle path where the obstacle avoidance failure occurs is obtained, and the information of the temporary obstacle includes a life cycle, and the life cycle represents the existence duration of the temporary obstacle. The temporary obstacle path is the path from the starting position to the target position. The walking path of at least one robot is replanned according to the information of the temporary obstacle and the static map, and the walking paths of other robots are planned according to the information of the temporary obstacle and the static map; when any robot fails to avoid obstacles when performing a navigation task according to the static map, the information of the temporary obstacle can be obtained, and then the walking paths of all robots are replanned according to the information of the temporary obstacle and the static map. The data of environmental changes are shared among multiple robots, so that the robot can still obtain the optimal path in response to the continuous changes in the scene and update the walking path in time, thereby significantly improving the efficiency of multi-robot collaborative work.
[0019] Other features and advantages of the present disclosure will be described in detail in the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] The accompanying drawings are used to provide a further understanding of the present disclosure and constitute a part of the specification. Together with the following specific embodiments, they are used to explain the present disclosure but do not constitute a limitation of the present disclosure. In the accompanying drawings:
[0021] Figure 1 It is a schematic diagram of an application scenario of a robot shown in an exemplary embodiment of the present disclosure.
[0022] Figure 2 It is a flow chart of a path planning method shown in an exemplary embodiment of the present disclosure.
[0023] Figure 3 is a flow chart of another path planning method shown in an exemplary embodiment of the present disclosure.
[0024] Figure 4 It is a schematic diagram of a two-dimensional grid map shown in an exemplary embodiment of the present disclosure.
[0025] Figure 5 It is a schematic diagram of a road network planning table shown in an exemplary embodiment of the present disclosure.
[0026] Figure 6 It is a schematic diagram of a static map shown in an exemplary embodiment of the present disclosure.
[0027] Figure 7It is a schematic diagram of a temporary obstacle map shown in an exemplary embodiment of the present disclosure.
[0028] Figure 8 It is a flow chart of a method for planning a walking path shown in an exemplary embodiment of the present disclosure.
[0029] Fig. 9 It is a schematic diagram of a feasible path shown in an exemplary embodiment of the present disclosure.
[0030] Fig.10 It is a block diagram of a path planning device shown in an exemplary embodiment of the present disclosure.
[0031] Fig.11 It is a block diagram of an electronic device shown in an exemplary embodiment of the present disclosure.
[0032] Fig.12 is a block diagram of another electronic device according to an exemplary embodiment of the present disclosure.
[0033] Description of Reference Numerals
[0034] 120-robot; 140-server; 20-path planning device; 201-acquisition module; 203-processing module; 700-electronic device; 701-processor; 702-memory; 703-multimedia component; 704-I / O interface; 705-communication component; 1900-electronic device; 1922-processor; 1932-memory; 1926-power supply component; 1950-communication component; 1958-I / O interface. DETAILED DESCRIPTION
[0035] The specific implementation of the present disclosure is described in detail below in conjunction with the accompanying drawings. It should be understood that the specific implementation described herein is only used to illustrate and explain the present disclosure, and is not used to limit the present disclosure.
[0036] It should be noted that all actions of acquiring signals, information or data in the present disclosure are carried out in compliance with the relevant data protection laws and policies of the country where the device is located and with the authorization given by the owner of the corresponding device.
[0037] Figure 1 A schematic diagram of an application scenario of a robot provided by an exemplary embodiment of the present disclosure is shown, and the application scenario of the robot includes multiple robots 120 and a server 140.
[0038] The robot 120 and the server 140 are connected to each other via a wired or wireless network.
[0039] The robot 120 includes a display, which can be used to display information such as the robot's starting position, target position, and execution task.
[0040] The robot 120 includes a first memory and a first processor. The first memory stores a static map constructed according to the environment in which the robot is located. The first memory may include, but is not limited to, the following: Random Access Memory (RAM), Read Only Memory (ROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), and Electric Erasable Programmable Read-Only Memory (EEPROM).
[0041] The first processor may be composed of one or more integrated circuit chips. Optionally, the first processor may be a general-purpose processor, such as a central processing unit (CPU) or a network processor (NP). Optionally, the first processor may control the robot to perform navigation tasks, delivery services, meal delivery services, guest reception services, etc. according to the walking path in the static map.
[0042] The server 140 includes a second memory and a second processor. A second program is stored in the second memory, and the second program is called by the second processor to implement the path planning method provided by the present disclosure. Exemplarily, a static map constructed according to the environment in which the robot is located is stored in the second memory, and the second program is called to implement the path planning method provided by the present disclosure. Optionally, the second memory may include but is not limited to the following: RAM, ROM, PROM, EPROM, EEPROM. Optionally, the second processor may be a general-purpose processor, such as a CPU or NP.
[0043] The server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), and basic cloud computing services such as big data and artificial intelligence platforms, etc., but is not limited to these. The robot and the server can be directly or indirectly connected through wired or wireless communication, which is not limited in this disclosure.
[0044] Normally, there will be some temporary obstacles with randomness and accidental nature in the robot's environment at any time. In the process of performing navigation tasks, the robot continuously detects environmental data through sensors to detect changes in the environment for intelligent obstacle avoidance to achieve the purpose of non-collision. The appearance and disappearance of these temporary obstacles are random and short-term in nature, and are not suitable for solidification in medium- and long-term maps. In order to improve the work efficiency of the robot, the general practice is to carry out global path planning in advance on the known medium- and long-term maps constructed based on the static environment, and then combine the dynamically detected environmental data to achieve non-collision navigation through intelligent obstacle avoidance and path update algorithms. The static planning and dynamic update method commonly used in the robot movement process takes into account the known and random nature of the environment, but it still cannot effectively solve the efficiency reduction caused by environmental changes (the appearance of temporary obstacles) in the short term.
[0045] In the actual working scenarios of robots, the number of sections is often limited (each path consists of multiple sections). The robot always repeatedly passes through each section to perform tasks. It is possible that the robot is blocked by an obstacle when passing through path 1 at the current moment, resulting in an update of the path. The same robot or other robots will enter path 1 at the next moment and find the same obstacle, and will also enter repeated obstacle avoidance calculations and path updates, resulting in low robot work efficiency. For example, during the peak business hours of a restaurant, the robot always repeatedly passes through or enters the same sections according to the optimal path calculated according to a fixed algorithm when performing different meal delivery tasks, and the passage sections are often highly repetitive. The robot's dynamic detection and obstacle avoidance process takes a certain amount of time, which is necessary. On the one hand, the robot's intelligence is limited by hardware. On the other hand, obstacles can be static (objects that do not move by themselves) or dynamic (people who avoid obstacles by themselves, or objects that are immediately moved away by someone nearby). Therefore, robots generally use certain time-consuming strategies (such as voice reminders) to distinguish and request people to avoid them. This request is highly efficient after dynamic obstacles are effectively avoided. However, during the short period of time when completely ineffective temporary obstacles (such as a chair that occupies a narrow passage) exist, the robot enters the same blocked passage many times and repeats detection and obstacle avoidance calculations. The voice reminder strategy and the process of updating the path are slow, which is often regarded as inefficient and not intelligent enough.
[0046] In response to the problems and shortcomings raised by the above situation, the present disclosure provides a more intelligent method for global path planning based on temporary obstacles and static maps.
[0047] Figure 2 A flowchart of a robot path planning method provided by an exemplary embodiment of the present disclosure is shown. The method is executed by an electronic device, for example, Figure 1 The robot or server shown is used to execute. Figure 2 The path planning method shown includes the following steps:
[0048] In step S101, a static map is obtained.
[0049] Static maps are constructed based on the robot's environment. They can be constructed based on environmental data obtained by various types of laser radar scanners, depth image cameras, and other devices, or based on laser point cloud data. Static maps include the location of fixed obstacles in the robot's environment and the robot's walking path.
[0050] In step S102, when obstacle avoidance fails when at least one robot performs a navigation task according to a static map, information of temporary obstacles on the temporary obstacle path where the obstacle avoidance failure occurs is obtained.
[0051] When multiple robots perform navigation tasks according to the static map, if one of the robots fails to avoid obstacles, the robot will obtain the information of temporary obstacles on the temporary obstacle path where the obstacle avoidance failure occurred. The information of temporary obstacles includes the life cycle of temporary obstacles, the attributes of temporary obstacles and the position of temporary obstacles. The life cycle represents the existence time of temporary obstacles. The temporary obstacle path is the path from the starting position to the target position, and the path includes the section where the temporary obstacle is located. The section where the temporary obstacle is located is the section where the temporary obstacle occupies the area.
[0052] In step S103, the walking path of at least one robot is replanned according to the information of the temporary obstacle and the static map, and the walking paths of other robots are planned according to the information of the temporary obstacle and the static map.
[0053] After obtaining the information of the temporary obstacle, the walking path of at least one robot is replanned according to the information of the temporary obstacle and the static map. Here, the at least one robot refers to the robot that has failed to avoid the obstacle. Since the at least one robot has failed to avoid the obstacle when performing the navigation task according to the static map, the at least one robot is already on the temporary obstacle path and is in the section where the temporary obstacle is located. At this time, the information of the temporary obstacle is obtained and uploaded to the server. The server replans the walking path of at least one robot according to the information of the temporary obstacle and the static map. Since other robots have not driven to the section where the temporary obstacle is located, the server can replan the walking paths of other robots according to the information of the temporary obstacle and the static map to avoid the robots from repeatedly entering the temporarily blocked section, thereby improving the working efficiency of the robots.
[0054] See also Figure 3 , Figure 3FIG. 1 is a flow chart of another path planning method shown in an exemplary embodiment of the present disclosure. The method is executed by a computer device, for example, Figure 1 The computer system shown is executed by a terminal or a server.
[0055] It should be noted that Figure 3 The path planning method shown is similar to Figure 2 The implementation methods of the path planning methods shown are consistent with each other. Figure 3 For reference not mentioned in Figure 2 The description will not be repeated here. Figure 3 The path planning method shown includes the following steps:
[0056] In step S201, a static map is obtained.
[0057] The static map is constructed based on the environment in which the robot is located. For example, environmental data can be obtained through various devices such as laser radar scanners, depth image (RGB-D) cameras, etc., or through sensors such as the robot's inertial measurement unit (IMU), global positioning system (GPS), odometer, etc., and then the acquired environmental data is optimized through the editing tool; the building layout of the work scene and the positions of some fixed obstacles with long-term and stability are accurately identified in the static map, such as the layout of VIP rooms in the restaurant environment, the placement of tables and chairs, the robot walking passages in the restaurant environment, the locations of food preparation and delivery locations, etc., and the robot's walking path is planned according to the locations of fixed obstacles; the robot static map constructed and edited in advance in this way contains fixed obstacles with long-term and fixed nature, and the positions of these fixed obstacles will not change arbitrarily in the short term. It can also be called a medium- and long-term map here. For a multi-story building, such a medium- and long-term map may also be a map set composed of multiple floor maps.
[0058] The point cloud data of the robot's environment can also be obtained by laser. The grid map obtained by rasterizing the point cloud data can realize the precise positioning and navigation of the mobile robot. The grid map represents the entire working environment with several grids of the same size, and the size of the grid can reflect the accuracy of the grid map. Each grid corresponds to a set of values, which can reflect the coordinates (x, y) of the point on the grid map, as well as the spatial attributes and other information corresponding to the point. The spatial attributes represent the spatial occupancy characteristics of the point. For example, 0 can be used to indicate that the point is not occupied by an obstacle, 100 can be used to indicate that the point is occupied by an obstacle, and -1 can be used to indicate that the point is unknown. Therefore, the value in the grid can be used to determine whether the point corresponding to the grid is a passable ground or an obstacle point, forming the basic situation of the robot's environment passage. The grid map can be regarded as a matrix structure composed of grid element values. Each grid element value can be associated with a complex spatial attribute table to identify various information attributes of the point. The obtained grid map is used as a static map.
[0059] Static maps accurately identify the building layout of the work scene and some fixed obstacles with long-term and stability. Therefore, static maps can also be called medium- and long-term maps. When using mapping tools and manual editing methods to build the robot's medium- and long-term map in advance, the mobile robot can be manually controlled to collect all environmental information in the work scene through simultaneous localization and mapping (SLAM) / vision-based localization and mapping (VSLAM) technology, build an overall environmental map in the coordinate system, and remove noise points, add walking paths, starting positions, target positions and virtual walls through manual editing methods. When creating and archiving the robot's medium- and long-term map, different layers of the medium- and long-term map will be archived, such as the original laser point cloud layer with complete information, the raster map layer after rasterization, the road network layer that analyzes and divides the road section and road network capacity (the number of robots that can pass through the road section at the same time), and the sparse point cloud layer / dense point cloud layer constructed by VSLAM technology, etc., which are used for different purposes such as robot navigation or three-dimensional presentation.
[0060] For example, see Figure 4 , Figure 4 The following is a schematic diagram of a two-dimensional grid map shown in an exemplary embodiment of the present disclosure. Figure 4 Based on the grid map shown, we can extract Figure 5The road network planning table shown in the figure includes all the walking paths of the robot, the sections of each walking path, the connection and separation relationship between the sections, the road network capacity, weights, starting points, end points and service points; the weight can be a value measuring the distance of the section, or a value measuring the time required to pass the section. The weight of a path is the sum of the weights of all the sections that make up the path. Usually, the path with the smallest weight value can be used as the optimal path. The service point can be the location where the robot is charged. Figure 5 The road network planning table shown can be expressed as:
[0061]
[0062] In step S202, when obstacle avoidance fails when at least one robot performs a navigation task according to a static map, information of temporary obstacles on the temporary obstacle path where the obstacle avoidance failure occurs is obtained.
[0063] For example, some temporary obstacles with randomness and accidental nature may appear in the environment where the robot is located at any time. In the process of performing navigation tasks, the robot continuously detects environmental data through sensors to detect changes in the environment for intelligent obstacle avoidance to achieve the purpose of collision avoidance. The appearance and disappearance of these temporary obstacles are random and short-term in nature, and are not in the static map as a medium- and long-term map. When multiple robots perform navigation tasks according to the static map, if one of the robots detects a temporary obstacle and fails to avoid the obstacle, then this robot will obtain the information of the temporary obstacle.
[0064] The information of temporary obstacles includes the life cycle of temporary obstacles, the properties of temporary obstacles and the location of temporary obstacles; the life cycle represents the existence time of temporary obstacles, which is predetermined according to the properties of temporary obstacles. For example, the moving of tables and chairs, and the forgotten dining carts may be moved away by people in a few minutes, so the corresponding life cycle may be 3 minutes, 5 minutes, etc. For example, two robots traveling in opposite directions on a narrow road collide and cannot pass through. Either of the two robots uploads the other's information to the server, and the server updates the walking path of the two robots according to the information of the robot, or controls one of the robots to issue an alarm notification so that the user can move the positions of the two robots. In this case, the corresponding life cycle may be 10 seconds, 20 seconds, etc. The temporary obstacle path is the path from the starting position to the target position, and the path includes the section where the temporary obstacle is located. The section where the temporary obstacle is located is the section where the area occupied by the temporary obstacle is located.
[0065] In step S203, the walking path of at least one robot is replanned according to the information of the temporary obstacle and the static map, and the walking paths of other robots are planned according to the information of the temporary obstacle and the static map.
[0066] After obtaining the information of the temporary obstacle, the walking path of at least one robot is replanned according to the information of the temporary obstacle and the static map. The at least one robot here refers to the robot that fails to avoid the obstacle.
[0067] It should be noted that there are two ways to replan the robot's walking path based on temporary obstacle information and static maps:
[0068] First, a temporary obstacle map is constructed based on the information of temporary obstacles. The temporary obstacle map includes the information of temporary obstacles, specifically the life cycle, attributes and location of temporary obstacles. A global map is obtained by superimposing the static map and the temporary obstacle map. During the life cycle of the temporary obstacle, the robot's walking path is planned according to the global map.
[0069] When the robot performs a navigation task for the first time, the temporary obstacle map layer is blank, and the global map at this time is equal to the static map. Figure 6 As shown in the static map, it is assumed that the robot needs to perform a navigation task from point S to point T. During the first navigation, it is assumed that its optimal path is S→a (section AB)→b (section BC)→c (section CT). Assuming that an obstacle avoidance failure event occurs at point B during the robot's navigation task, triggering the construction of a temporary obstacle map. During the navigation process, a temporary obstacle is detected at point B and the obstacle avoidance fails. Based on the robot's multi-sensor fusion algorithm, a local temporary obstacle map is generated, as shown in Figure 7 As shown. The global map is obtained by superimposing the static map and the temporary obstacle map with a life cycle after coordinate system conversion, and the robot's walking path is planned according to the global map. The life cycle is the preset existence duration of the temporary obstacle. The temporary obstacle exists within this life cycle. If it exceeds the life cycle, the temporary obstacle map is judged to be invalid. At this time, the section where the temporary obstacle is located re-enters the robot's path planning. The robot can try to pass through the section again and detect whether the temporary obstacle exists through the sensor. If not, the temporary obstacle map is judged to be invalid; if it exists, the temporary obstacle map can be maintained valid, and the number of consecutive obstacle avoidance failures on the section where the temporary obstacle is located is recorded. When the number is greater than the predetermined threshold, the temporary obstacle is added to the static map as a medium- and long-term fixed obstacle, or the server controls the robot to issue a notification requesting manual assistance in clearing obstacles, so that the temporary obstacle can be cleared manually.
[0070] The second is to calculate the dynamic path weight of the road section where the temporary obstacle is located, and plan the walking path of other robots based on the dynamic path weight and the static map.
[0071] The calculation method of dynamic path weight includes: obtaining the initial path weight of the section where the temporary obstacle is located, and obtaining the dynamic path weight according to the initial path weight, the life cycle, and the length of time the temporary obstacle has existed. In the process of performing navigation tasks, the robot continuously detects environmental data through sensors to detect changes in the environment for intelligent obstacle avoidance. When a temporary obstacle is detected and obstacle avoidance fails, the information of the temporary obstacle is uploaded to the server. The server resets the weight of the section where the temporary obstacle is located to a larger virtual weight. The weight value of a normal section is generally 5, 6, 8, 2, and the value of the virtual weight can be set to 100. This virtual weight can also be called the initial path weight. The initial path weight will gradually decay during the life cycle of the temporary obstacle. Therefore, the weight of the section where the temporary obstacle is located changes dynamically. In one embodiment, the calculation formula of the dynamic path weight can be
[0072] Among them, Weight is the dynamic path weight, Weight 0 is the initial path weight, Lim_Period is the life cycle, and T_elapse is the length of time that the temporary obstacle currently exists. It can be understood that when T_elapse is equal to Lim_Period, it indicates that the length of time that the temporary obstacle currently exists is exactly equal to its life cycle. At this time, the value of the dynamic path weight is 0, and the weight of the section where the temporary obstacle is located is restored to the normal weight value; after the normal weight value is restored, the section where the temporary obstacle is located re-enters the robot's path planning, or the initial path weight decays to a certain range, which will also make the section where the temporary obstacle is located re-enter the robot's path planning. Under a certain probability, the robot can retry to pass through the section, and detect whether the temporary obstacle exists through the sensor. If not, it is determined that the section where the temporary obstacle is located enters the normal path planning; if it exists, the dynamic path weight can be maintained valid, and the number of consecutive obstacle avoidance failures on the section where the temporary obstacle is located is recorded. When the number is greater than the predetermined threshold, the temporary obstacle is added to the static map as a medium- and long-term fixed obstacle, or the server controls the robot to issue a notification requesting manual assistance in clearing obstacles, so that the temporary obstacle is manually cleared.
[0073] See also Figure 8 , is a flow chart of a method for planning a walking path shown in an exemplary embodiment of the disclosure. Planning the walking paths of other robots according to the dynamic path weights and the static map includes the following steps:
[0074] Step S301, obtaining all feasible paths from the starting position to the target position.
[0075] The server can plan a new walking path from a global perspective based on the current service status of the robot and obtain all feasible paths from the starting position to the target position of each robot, such as Fig. 9 The feasible path diagram shown in the figure shows that the robot starts from the starting position S and needs to deliver food to seat number T02. Fig. 9 It can be seen that there are two different feasible paths, one of which is segment a-segment b-segment f-segment n-target position T02, and the other feasible path is segment a-segment b-segment d-segment g-segment h-target position T02.
[0076] Step S302, obtaining the weight value of each road segment of all feasible paths.
[0077] Get the weight value of each section of each feasible path. If there is a temporary obstacle on one of the sections, the current dynamic path weight of the section is used as the weight value of the section.
[0078] Step S303, calculating the path weights of all feasible paths according to the weight value of each road section.
[0079] The weight can be a value measuring the distance of the road section, or a value measuring the time required to pass through the road section. In one embodiment, the sum of the weights of all the sections that make up the feasible path can be used as the path weight of the feasible path. For example, the sum of the weights of one feasible path is section a + section b + section f + section n = 6 + 5 + 25 + 10 = 46, and the sum of the weights of another feasible path is section a + section b + section d + section g + section h = 6 + 5 + 12 + 15 + 35 + 10 = 83.
[0080] Step S304, planning the walking paths of other robots according to the path weights of all feasible paths.
[0081] In one embodiment, the path with the smallest weight sum can be used as the optimal path and as the walking path when the robot performs a navigation task.
[0082] It should be noted that when the robot fails to avoid obstacles when performing navigation tasks based on static maps, no matter which method is used to plan a new path, if the section where the temporary obstacle is located is the only path from the starting position to the target position, it is necessary to send a notification requesting manual assistance in clearing obstacles so that the temporary obstacle can be cleared manually. For example, in a typical restaurant scenario, some places have narrow passages, and the width of this narrow passage can only accommodate one robot. If the guest's seat is accidentally pulled open and occupies the aisle, or a small cart may block a narrow passage, or two robots may drive towards each other in this narrow passage. In order to ensure that the robot can walk in an orderly manner in this working environment and ensure that the robots do not collide with each other, the server can control the robot to send a notification requesting manual assistance in clearing obstacles so that the temporary obstacles can be cleared manually.
[0083] The path planning method provided by the present disclosure includes obtaining a static map constructed according to the environment in which the robot is located, the static map including the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot, obtaining information of temporary obstacles on the temporary obstacle path where the obstacle avoidance failure occurs when at least one robot fails to avoid obstacles when performing a navigation task according to the static map, the information of the temporary obstacles includes a life cycle, the life cycle represents the existence duration of the temporary obstacles, the temporary obstacle path is a path from a starting position to a target position, replanning the walking path of at least one robot according to the information of the temporary obstacles and the static map, and planning the walking paths of other robots according to the information of the temporary obstacles and the static map; when any robot fails to avoid obstacles when performing a navigation task according to the static map, the information of the temporary obstacles can be obtained, and then the walking paths of all robots can be replanned according to the information of the temporary obstacles and the static map, and the data of environmental changes can be shared between multiple robots, so that the robots can still obtain the optimal path in response to the continuous changes in the scene, and the walking path can be updated in time, thereby significantly improving the collaborative work efficiency of multiple robots.
[0084] Fig.10 is a block diagram of a path planning device shown in an exemplary embodiment of the present disclosure. Fig.10 The device 20 includes an acquisition module 201 and a processing module 203.
[0085] The acquisition module 201 is used to acquire a static map; the static map is constructed according to the environment in which the robot is located, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot;
[0086] The acquisition module 201 is further configured to, when obstacle avoidance fails when at least one robot performs a navigation task according to the static map, acquire information of a temporary obstacle on a temporary obstacle path where obstacle avoidance fails; the information of the temporary obstacle includes a life cycle, the life cycle represents the existence duration of the temporary obstacle, and the temporary obstacle path is a path from a starting position to a target position;
[0087] The processing module 203 is used to re-plan the walking path of the at least one robot according to the information of the temporary obstacle and the static map, and to plan the walking paths of other robots according to the information of the temporary obstacle and the static map.
[0088] Optionally, the processing module 203 is further configured to construct a temporary obstacle map according to the information of the temporary obstacle;
[0089] Obtaining a global map by superimposing the static map and the temporary obstacle map;
[0090] During the life cycle, walking paths of the other robots are planned according to the global map.
[0091] Optionally, the processing module 203 is further used to calculate the dynamic path weight of the road section where the temporary obstacle is located;
[0092] The walking paths of the other robots are planned according to the dynamic path weights and the static map.
[0093] Optionally, the processing module 203 is further used to obtain an initial path weight of the road section where the temporary obstacle is located;
[0094] The dynamic path weight is obtained according to the initial path weight, the life cycle and the existing duration of the temporary obstacle.
[0095] Optionally, the calculation formula of the dynamic path weight includes:
[0096]
[0097] Among them, Weight is the dynamic path weight, Weight 0 is the initial path weight, Lim_Period is the life cycle, and T_elapse is the duration for which the temporary obstacle currently exists.
[0098] Optionally, the processing module 203 is further configured to obtain all feasible paths from the starting position to the target position;
[0099] Obtaining a weight value of each road section of all the feasible paths; the weight value of each road section includes a value of the current dynamic path weight;
[0100] Calculate the path weights of all the feasible paths according to the weight value of each road section;
[0101] The walking paths of the other robots are planned according to the path weights of all the feasible paths.
[0102] Optionally, the processing module 203 is further used to control the other robots to move according to the walking path;
[0103] If at least one of the other robots detects that the temporary obstacle has not disappeared, the number of consecutive obstacle avoidance failures occurring on the temporary obstacle path is recorded;
[0104] If at least one of the other robots detects that the temporary obstacle has disappeared, the walking paths of all robots are replanned according to the static map, and the number of consecutive obstacle avoidance failures on the temporary obstacle path is cleared.
[0105] Optionally, when the number of obstacle avoidance failures that occur consecutively on the temporary obstacle path is greater than a predetermined threshold, the temporary obstacle is added to the static map, or a notification requesting manual assistance in clearing the obstacle is issued.
[0106] Optionally, when the road section where the temporary obstacle is located is the only path from the starting position to the target position, a notification requesting manual assistance in clearing the obstacle is issued.
[0107] Regarding the device in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.
[0108] Fig.11 FIG. 7 is a block diagram of an electronic device 700 according to an exemplary embodiment. Fig.11 As shown, the electronic device 700 may be Figure 1 The robot shown in FIG. 7 , the electronic device 700 may include: a processor 701 , a memory 702 . The electronic device 700 may also include one or more of a multimedia component 703 , an input / output (I / O) interface 704 , and a communication component 705 .
[0109] The processor 701 is used to control the overall operation of the electronic device 700 to complete all or part of the steps in the above-mentioned path planning method. The memory 702 is used to store various types of data to support the operation of the electronic device 700, and these data may include, for example, instructions for any application or method used to operate on the electronic device 700, and application-related data, such as contact data, sent and received messages, pictures, audio, video, etc. The memory 702 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (Static Random Access Memory, referred to as SRAM), electrically erasable programmable read-only memory (Electrically Erasable Programmable Read-Only Memory, referred to as EEPROM), erasable programmable read-only memory (Erasable Programmable Read-Only Memory, referred to as EPROM), programmable read-only memory (Programmable Read-Only Memory, referred to as PROM), read-only memory (Read-Only Memory, referred to as ROM), magnetic memory, flash memory, magnetic disk or optical disk. The multimedia component 703 may include a screen and an audio component. The screen may be, for example, a touch screen, and the audio component is used to output and / or input audio signals. For example, the audio component may include a microphone for receiving external audio signals. The received audio signal may be further stored in the memory 702 or sent through the communication component 705. The audio component also includes at least one speaker for outputting audio signals. The I / O interface 704 provides an interface between the processor 701 and other interface modules, and the other interface modules may be keyboards, mice, buttons, etc. These buttons may be virtual buttons or physical buttons. The communication component 705 is used for wired or wireless communication between the electronic device 700 and other devices. Wireless communication, such as Wi-Fi, Bluetooth, Near Field Communication (NFC), 2G, 3G, 4G, NB-IOT, eMTC, or other 5G, etc., or a combination of one or more of them, is not limited here. Therefore, the corresponding communication component 705 may include: Wi-Fi module, Bluetooth module, NFC module, etc.
[0110] In an exemplary embodiment, the electronic device 700 can be implemented by one or more application specific integrated circuits (ASIC), digital signal processors (DSP), digital signal processing devices (DSPD), programmable logic devices (PLD), field programmable gate arrays (FPGA), controllers, microcontrollers, microprocessors or other electronic components to execute the above-mentioned path planning method.
[0111] In another exemplary embodiment, a computer-readable storage medium including program instructions is also provided, and when the program instructions are executed by a processor, the steps of the above-mentioned path planning method are implemented. For example, the computer-readable storage medium can be the above-mentioned memory 702 including program instructions, and the above-mentioned program instructions can be executed by the processor 701 of the electronic device 700 to complete the above-mentioned path planning method.
[0112] Fig.12 1 is a block diagram of an electronic device 1900 according to an exemplary embodiment. For example, the electronic device 1900 may be provided as a server. Fig.12 The electronic device 1900 includes a processor 1922, which may be one or more, and a memory 1932 for storing a computer program executable by the processor 1922. The computer program stored in the memory 1932 may include one or more modules each corresponding to a set of instructions. In addition, the processor 1922 may be configured to execute the computer program to perform the above-mentioned path planning method.
[0113] In addition, the electronic device 1900 may further include a power supply component 1926 and a communication component 1950. The power supply component 1926 may be configured to perform power management of the electronic device 1900, and the communication component 1950 may be configured to implement communication of the electronic device 1900, for example, wired or wireless communication. In addition, the electronic device 1900 may further include an input / output (I / O) interface 1958. The electronic device 1900 may operate based on an operating system stored in the memory 1932, such as Windows Server 2003. TM , Mac OS X TM , Unix TM , Linux TM etc.
[0114] In another exemplary embodiment, a computer-readable storage medium including program instructions is also provided, and when the program instructions are executed by a processor, the steps of the above-mentioned path planning method are implemented. For example, the computer-readable storage medium can be the above-mentioned memory 1932 including program instructions, and the above-mentioned program instructions can be executed by the processor 1922 of the electronic device 1900 to complete the above-mentioned path planning method.
[0115] In another exemplary embodiment, a computer program product is further provided. The computer program product includes a computer program executable by a programmable device. The computer program has a code portion for executing the above-mentioned path planning method when executed by the programmable device.
[0116] The preferred embodiments of the present disclosure are described in detail above in conjunction with the accompanying drawings; however, the present disclosure is not limited to the specific details in the above embodiments. Within the technical concept of the present disclosure, a variety of simple modifications can be made to the technical solution of the present disclosure, and these simple modifications all fall within the protection scope of the present disclosure.
[0117] It should also be noted that the various specific technical features described in the above specific embodiments can be combined in any suitable manner without contradiction. In order to avoid unnecessary repetition, the present disclosure will not further describe various possible combinations.
[0118] In addition, various embodiments of the present disclosure may be arbitrarily combined, and as long as they do not violate the concept of the present disclosure, they should also be regarded as the contents disclosed by the present disclosure.
[0119] Example
[0120] 1. A path planning method, applied to a server, comprising:
[0121] Acquire a static map; the static map is constructed according to the environment in which the robot is located, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot;
[0122] When obstacle avoidance fails when at least one robot performs a navigation task according to the static map, information of a temporary obstacle on a temporary obstacle path where obstacle avoidance fails is obtained; the information of the temporary obstacle includes a life cycle, the life cycle represents the existence time of the temporary obstacle, and the temporary obstacle path is a path from a starting position to a target position;
[0123] The walking path of the at least one robot is replanned according to the information of the temporary obstacle and the static map, and the walking paths of other robots are planned according to the information of the temporary obstacle and the static map.
[0124] 2. The method according to embodiment 1, wherein the step of planning the walking path of other robots according to the information of the temporary obstacle comprises:
[0125] Constructing a temporary obstacle map according to the information of the temporary obstacles;
[0126] Obtaining a global map by superimposing the static map and the temporary obstacle map;
[0127] During the life cycle, walking paths of the other robots are planned according to the global map.
[0128] 3. The method according to embodiment 1, wherein the path consists of multiple road sections, and the step of planning the walking path of the other robots according to the information of the temporary obstacle comprises:
[0129] Calculating a dynamic path weight of the road section where the temporary obstacle is located;
[0130] The walking paths of the other robots are planned according to the dynamic path weights and the static map.
[0131] 4. The method according to embodiment 3, wherein the step of calculating the dynamic path weight of the section where the temporary obstacle is located comprises:
[0132] Obtaining an initial path weight of the road section where the temporary obstacle is located;
[0133] The dynamic path weight is obtained according to the initial path weight, the life cycle and the existing duration of the temporary obstacle.
[0134] 5. The method according to embodiment 4, wherein the calculation formula of the dynamic path weight includes:
[0135]
[0136] Among them, Weight is the dynamic path weight, Weight 0 is the initial path weight, Lim_Period is the life cycle, and T_elapse is the duration for which the temporary obstacle currently exists.
[0137] 6. The method according to embodiment 3, wherein the static map includes a starting position and a target position of the robot; and the step of planning the walking path of the other robots according to the dynamic path weight and the static map comprises:
[0138] Obtain all feasible paths from the starting point to the target position;
[0139] Obtaining a weight value of each road section of all the feasible paths; the weight value of each road section includes a value of the current dynamic path weight;
[0140] Calculate the path weights of all the feasible paths according to the weight value of each road section;
[0141] The walking paths of the other robots are planned according to the path weights of all the feasible paths.
[0142] 7. The method according to embodiment 2 or 6, wherein the step of planning the walking path of the other robots according to the dynamic path weight and the static map comprises:
[0143] Controlling the other robots to move along the walking path;
[0144] If at least one of the other robots detects that the temporary obstacle has not disappeared, the number of consecutive obstacle avoidance failures occurring on the temporary obstacle path is recorded;
[0145] If at least one of the other robots detects that the temporary obstacle has disappeared, the walking paths of all robots are replanned according to the static map, and the number of consecutive obstacle avoidance failures on the temporary obstacle path is cleared.
[0146] 8. The method according to embodiment 7, wherein:
[0147] When the number of obstacle avoidance failures that occur continuously on the temporary obstacle path is greater than a predetermined threshold, the temporary obstacle is added to the static map, or a notification requesting manual assistance in clearing the obstacle is issued.
[0148] 9. The method according to embodiment 2 or 6, wherein the information of the temporary obstacle includes the location of the road section where the temporary obstacle is located;
[0149] When the road section where the temporary obstacle is located is the only path from the starting position to the target position, a notification requesting manual assistance in clearing the obstacle is issued.
[0150] 10. A path planning device, applied to a server, comprising:
[0151] An acquisition module is used to acquire a static map; the static map is constructed according to the environment in which the robot is located, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot;
[0152] The acquisition module is further used to acquire information of a temporary obstacle on a temporary obstacle path where obstacle avoidance failure occurs when at least one robot fails to avoid an obstacle when performing a navigation task according to the static map; the information of the temporary obstacle includes a life cycle, the life cycle represents the existence duration of the temporary obstacle, and the temporary obstacle path is a path from a starting position to a target position;
[0153] A processing module is used to re-plan the walking path of at least one robot according to the information of the temporary obstacle and the static map, and to plan the walking paths of other robots according to the information of the temporary obstacle and the static map.
[0154] 11. A computer-readable storage medium having a computer program stored thereon, wherein when the program is executed by a processor, the steps of the method described in any one of embodiments 1-9 are implemented.
[0155] 12. An electronic device, comprising:
[0156] a memory having a computer program stored thereon;
[0157] A processor is used to execute the computer program in the memory to implement the steps of the method described in any one of Examples 1-9.
Claims
1. A path planning method, applied to a server, characterized in that: include: Get a static map; The static map is constructed according to the environment in which the robot is located, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot; When at least one robot fails to avoid an obstacle while performing a navigation task according to the static map, obtaining information about a temporary obstacle on a temporary obstacle path where the obstacle avoidance failure occurs; The information of the temporary obstacle includes a life cycle, which represents the existence time of the temporary obstacle, and the temporary obstacle path is a path from the starting position to the target position; Replanning the walking path of the at least one robot according to the information of the temporary obstacle and the static map, and obtaining an initial path weight of the section where the temporary obstacle is located; Obtaining a dynamic path weight according to the initial path weight, the life cycle, and the duration of existence of the temporary obstacle; The walking paths of other robots are planned according to the dynamic path weight and the static map, wherein the path consists of a plurality of sections.
2. The method according to claim 1, characterized in that The step of planning the walking paths of other robots according to the information of the temporary obstacle comprises: Constructing a temporary obstacle map according to the information of the temporary obstacles; Obtaining a global map by superimposing the static map and the temporary obstacle map; During the life cycle, walking paths of the other robots are planned according to the global map.
3. The method according to claim 1, characterized in that The calculation formula of the dynamic path weight includes: in, is the dynamic path weight, is the initial path weight, is the life cycle, is the duration that the temporary obstacle currently exists.
4. The method according to claim 1, characterized in that: The static map includes the starting position and the target position of the robot; the step of planning the walking path of the other robots according to the dynamic path weight and the static map includes: Obtain all feasible paths from the starting point to the target position; Obtaining a weight value of each road section of all the feasible paths; the weight value of each road section includes a value of the current dynamic path weight; Calculate the path weights of all the feasible paths according to the weight value of each road section; The walking paths of the other robots are planned according to the path weights of all the feasible paths.
5. The method according to claim 2 or 4, characterized in that: The step of planning the walking paths of the other robots according to the dynamic path weight and the static map includes: Controlling the other robots to move along the walking path; If at least one of the other robots detects that the temporary obstacle has not disappeared, the number of consecutive obstacle avoidance failures occurring on the temporary obstacle path is recorded; If at least one of the other robots detects that the temporary obstacle has disappeared, the walking paths of all robots are replanned according to the static map, and the number of consecutive obstacle avoidance failures on the temporary obstacle path is cleared.
6. The method according to claim 5, characterized in that When the number of obstacle avoidance failures that occur continuously on the temporary obstacle path is greater than a predetermined threshold, the temporary obstacle is added to the static map, or a notification requesting manual assistance in clearing the obstacle is issued.
7. The method according to claim 2 or 4, characterized in that: The information of the temporary obstacle includes the location of the road section where the temporary obstacle is located; When the road section where the temporary obstacle is located is the only path from the starting position to the target position, a notification requesting manual assistance in clearing the obstacle is issued.
8. A path planning device, applied to a server, characterized in that: include: Acquisition module, used to obtain static maps; The static map is constructed according to the environment in which the robot is located, and the static map includes the positions of fixed obstacles in the environment in which the robot is located and the walking path of the robot; The acquisition module is further used to acquire information of temporary obstacles on the temporary obstacle path where obstacle avoidance failure occurs when at least one robot fails to avoid obstacles when performing a navigation task according to the static map; The information of the temporary obstacle includes a life cycle, which represents the existence time of the temporary obstacle, and the temporary obstacle path is a path from the starting position to the target position; A processing module, configured to replan the walking path of the at least one robot according to the information of the temporary obstacle and the static map, and to obtain an initial path weight of the section where the temporary obstacle is located; Obtaining a dynamic path weight according to the initial path weight, the life cycle, and the duration of existence of the temporary obstacle; The walking paths of other robots are planned according to the dynamic path weight and the static map, wherein the path consists of a plurality of sections.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the steps of the method described in any one of claims 1 to 7 are implemented.
10. An electronic device, characterized in that: include: a memory having a computer program stored thereon; A processor, configured to execute the computer program in the memory to implement the steps of the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Automatic cruise method and device for robot and storage medium
CN111752275A
Path planning method and device, electronic equipment and storage medium
CN112540607A