Path planning methods and devices for robot swarms
By updating the map using dynamic target points and planning each path individually, the problems of collisions and low driving efficiency in robot swarms are solved, achieving safe and stable operation and efficient path planning.
Patent Information
- Application Number
- CN202211710976.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-12-29
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2042-12-29
AI Technical Summary
In existing robot swarm path planning, collisions between robots are difficult to avoid, and existing traffic control strategies are complex and prone to failure, resulting in low driving efficiency and long travel time.
The dynamic target point method is adopted, which updates the map by treating other robots as obstacles and performs path planning round by round, sets dynamic target points, avoids collisions, and simplifies traffic control strategies.
It effectively prevents collisions between robots, ensures the safe and stable operation of the cluster, improves driving efficiency, shortens driving time, and has wide applicability.
Smart Images

Figure CN116048075B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of robot control technology, specifically to a path planning method and a path planning device for a robot swarm. Background Technology
[0002] With the development of technologies such as machine vision, automatic control, and artificial intelligence, robot application technology has also made significant progress. Currently, robots are used in various scenarios to save manpower, improve work efficiency, and avoid the dangers of manual operation. In particular, robot swarm technology, through the simultaneous or collaborative work of multiple robots, further enhances work efficiency.
[0003] Controlling robot swarms involves path planning for multiple robots. Path planning enables robots to avoid obstacles and reach their target locations as quickly as possible. However, current path planning methods for multiple robots in a swarm, while some can prevent collisions with obstacles in the working environment, struggle to prevent collisions with other robots. Other methods employ traffic control strategies, setting up traffic control zones and using complex traffic rules to constrain the movement of each robot. This significantly increases the planning difficulty. Furthermore, if the working environment or the state of some robots changes due to malfunctions, the established traffic control strategies become ineffective, requiring significant time and computational resources to redesign them.
[0004] Furthermore, current robot path planning methods result in low robot mobility and long travel times. Summary of the Invention
[0005] To address the aforementioned technical problems, this invention provides a path planning method and apparatus for robot swarms, which can effectively prevent collisions between robots and ensure the safe and stable operation of the robot swarm; it eliminates the need for complex traffic control strategies, is simple and convenient, easy to implement, and widely applicable; it can improve the robot's driving efficiency and shorten the robot's driving time.
[0006] The technical solution adopted in this invention is as follows:
[0007] A path planning method for a robot swarm includes the following steps: S1, acquiring an environmental map of the robot swarm's working scene, wherein the environmental map includes information about obstacles in the robot swarm's working scene; S2, starting the total planning time and entering a path planning loop, executing steps S3 to S7 in the path planning loop; S3, acquiring the position data of each robot in the robot swarm; S4, assigning tasks to the robot swarm to determine N robots with service targets to be planned, wherein the N robots to be planned correspond one-to-one with the N service targets, and N is an integer greater than 1; S5, selecting the i-th robot to be planned, and adding all robots in the robot swarm except the i-th robot to be planned as obstacles to the environmental map to update... The environment map, where 1≤i≤N, and i is an integer; S6, based on the updated environment map, set a dynamic target point for the i-th robot to be planned, and perform path planning for the i-th robot to be planned from its current position to the dynamic target point, and control the i-th robot to be planned to drive along the planned path to the dynamic target point, wherein the dynamic target point is on a line segment with the current position of the i-th robot to be planned and the position of the service target corresponding to the i-th robot to be planned as its two endpoints; S7, for N robots to be planned, execute steps S5 to S6 until the path planning of N robots to be planned is completed, wait for a first preset time, return to step S3, and enter the next round of path planning loop; S8, when the total planning time reaches a second preset time, end the path planning loop.
[0008] Each robot in the robot cluster is connected to a central node, through which steps S1 to S8 are executed.
[0009] Step S4 specifically includes: constructing a cost function, wherein the cost function aims to minimize the total time spent by the robots in the robot cluster to reach the service target; and solving the cost function under preset constraints to determine the correspondence between the N robots to be planned and the N service targets.
[0010] When the number of robots in the robot cluster is less than or equal to the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot must serve one service target, each robot can only serve one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services; when the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot can serve at most one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services.
[0011] The location data obtained in step S3 is coordinates. Step S6, which sets a dynamic target point for the i-th robot to be planned, specifically includes: setting a dynamic target distance; obtaining the current coordinates of the i-th robot to be planned; obtaining the coordinates of the service target corresponding to the i-th robot to be planned; calculating the total distance between the i-th robot to be planned and its service target; based on the ratio between the dynamic target distance and the total distance; and based on the ratio, the current coordinates of the i-th robot to be planned, and the coordinates of the service target corresponding to the i-th robot to be planned, calculating the coordinates of the dynamic target point, so as to use the dynamic target point as the driving target of the i-th robot to be planned at the current moment.
[0012] A path planning device for a robot swarm includes a first acquisition module, a timing module, a second acquisition module, an allocation module, an update module, and a planning module. The first acquisition module acquires an environmental map of the robot swarm's working environment, including information about obstacles in the working environment. The timing module starts timing the total planning time, and after starting the total planning time, enters a path planning loop. In this loop: the second acquisition module acquires the position data of each robot in the robot swarm; the allocation module allocates tasks to the robot swarm to determine N robots with service targets to be planned, where each of the N robots corresponds to one of the N service targets, and N is an integer greater than 1; the update module selects the i-th robot to be planned, and updates the robot swarm by adding all robots except the i-th robot. All robots except the i-th robot to be planned are added as obstacles to the environment map to update the environment map, where 1≤i≤N and i is an integer. Based on the updated environment map, the planning module sets a dynamic target point for the i-th robot to be planned, performs path planning for the i-th robot to be planned from its current position to the dynamic target point, and controls the i-th robot to be planned to travel along the planned path to the dynamic target point. The dynamic target point is located on a line segment with the current position of the i-th robot to be planned and the position of the service target corresponding to the i-th robot to be planned as its two endpoints. After the update module and the planning module complete the path planning for N robots to be planned, the system waits for a first preset time and enters the next round of path planning. When the total planning time reaches a second preset time, the path planning cycle ends.
[0013] Each robot in the robot cluster is connected to a central node, and the first acquisition module, the timing module, the second acquisition module, the allocation module, the update module, and the planning module are integrated in the central node.
[0014] The allocation module is specifically used for: constructing a cost function, wherein the cost function aims to minimize the total time spent by the robots in the robot cluster to reach the service target; and solving the cost function under preset constraints to determine the correspondence between the N robots to be planned and the N service targets.
[0015] When the number of robots in the robot cluster is less than or equal to the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot must serve one service target, each robot can only serve one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services; when the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot can serve at most one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services.
[0016] The location data acquired by the second acquisition module is coordinates. The planning module sets a dynamic target point for the i-th robot to be planned, specifically including: setting a dynamic target distance; acquiring the current coordinates of the i-th robot to be planned; acquiring the coordinates of the service target corresponding to the i-th robot to be planned; calculating the total distance between the i-th robot to be planned and its service target; based on the ratio between the dynamic target distance and the total distance; and based on the ratio, the current coordinates of the i-th robot to be planned, and the coordinates of the service target corresponding to the i-th robot to be planned, calculating the coordinates of the dynamic target point, so as to use the dynamic target point as the driving target of the i-th robot to be planned at the current moment.
[0017] The beneficial effects of this invention are:
[0018] This invention updates the map using other robots as obstacles and plans paths for each robot individually and round by round according to the dynamic target point method. This effectively prevents collisions between robots and ensures the safe and stable operation of the robot swarm. It eliminates the need for complex traffic control strategies, making it simple, convenient, easy to implement, and widely applicable. It can improve the robot's driving efficiency and shorten its driving time. Attached Figure Description
[0019] Figure 1 This is a flowchart of a path planning method for a robot swarm according to an embodiment of the present invention;
[0020] Figure 2 This is a block diagram of a path planning device for a robot swarm according to an embodiment of the present invention. Detailed Implementation
[0021] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0022] like Figure 1 As shown, the path planning method for a robot swarm according to an embodiment of the present invention includes the following steps:
[0023] S1, Obtain the environmental map of the robot cluster's working scene, where the environmental map includes information about obstacles in the robot cluster's working scene.
[0024] The robot cluster working scenario in this embodiment of the invention can be either an industrial or non-industrial scenario. For example, in an industrial scenario, the robot cluster can be a cluster of multiple AGVs with robotic arms, and the service target in the scenario can be a CNC machine tool, with the AGVs performing loading and unloading operations on the corresponding CNC machine tool. In a non-industrial scenario, the robot cluster can be a cluster of multiple robots with the function of carrying blood collection tubes, and the service target in the scenario can be a blood testing device, with the robots placing the blood collection tubes into the corresponding blood testing device.
[0025] In one embodiment of the present invention, each robot in the robot cluster is connected to a central node, and steps S1 to S8 can be executed through the central node.
[0026] The environment map of the robot swarm's working scenario can be stored in the central node. The environment map includes information on all obstacles in the environment, such as walls, tables, and machines, but does not include information on the robots.
[0027] S2: Begin timing the overall planning time and enter one round of path planning loop. Execute steps S3 to S7 within one round of path planning loop.
[0028] The timer starts when the first round of path planning begins.
[0029] S3, obtains the position data of each robot in the robot cluster.
[0030] In one embodiment of the present invention, the location data is coordinates. The central node can continuously send coordinate requests to each robot in the robot cluster, and each robot, upon receiving the request, sends its own real-time coordinates to the central node.
[0031] S4. Assign tasks to the robot cluster to identify N robots with service objectives to be planned. Each of the N robots to be planned corresponds one-to-one with a service objective, where N is an integer greater than 1.
[0032] Task allocation for a robot swarm refers to determining the service targets of the robots in the swarm, and then planning the path for the robots to eventually reach their service targets. Therefore, in this embodiment of the invention, robots with service targets are referred to as robots to be planned.
[0033] Specifically, a cost function can be constructed, where the objective is to minimize the total time spent by robots in the robot swarm to reach the service target. Then, the cost function is solved under preset constraints to determine the correspondence between the N robots to be planned and the N service targets.
[0034] Specifically, when the number of robots in the robot cluster is less than or equal to the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot must serve one service target; each robot can only serve one service target; each robot's state can only be "not serving" or "serving"; and each service target can only request service from one robot. When the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot can serve at most one service target; each robot's state can only be "not serving" or "serving"; and each service target can only request service from one robot.
[0035] In other words, in this embodiment of the invention, different task allocation algorithms are executed for different scenarios involving the relationship between the number of robots and the number of service targets.
[0036] In a specific embodiment of the present invention, for scenario 1: the number of robots in the robot swarm is less than or equal to the number of service targets in the robot swarm's work scenario, task allocation algorithm 1 is used. Task allocation algorithm 1 uses an integer programming method, constructing the following integer programming problem:
[0037] min u(x)=c T x
[0038] Where u(x) is the cost function, and x represents the robot state, which is a vector with the following form:
[0039]
[0040] in,
[0041]
[0042] Where nT represents the number of the service target and nR represents the number of the robot.
[0043] Each element in the robot's state To represent the state of robot nR in relation to service target nT, this embodiment of the invention uses two state values to describe the state, namely 0 and 1:
[0044]
[0045] in, This indicates that robot nR does not provide services to the service target nT. This indicates that robot nR provides services to service target nT.
[0046] c is the time matrix used to describe robot n R Reaching service target n T The time spent, the matrix size is N T ×N R Row 1, Column 1, as follows:
[0047]
[0048] in, This indicates that the time it takes for the robot to reach the service target is a positive value.
[0049] The constraints in task allocation algorithm 1 consist of four parts.
[0050] The first constraint states that each robot must serve a service objective, as follows:
[0051] ...
[0053]
[0054] Where, N R ={0, ..., N R {-1} represents the set of all robot IDs; N T ={0, ..., N T} -1 represents the set of all service target numbers.
[0055] The second constraint states that each robot can only serve one service target, as follows:
[0056] ...
[0058]
[0059] The third constraint states that each robot's state can only be 0 or 1, as follows:
[0060]
[0061] Part Four states that each service objective can only request one robot to provide the service, as follows:
[0062] ...
[0064]
[0065] For scenario 2: the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's work scenario, task allocation algorithm 2 is used. Task allocation algorithm 2 also uses the integer programming method, and the following integer programming problem is constructed:
[0066] min u(x)=c T x
[0067] That is, the form of the cost function u(x) is exactly the same as that of task allocation algorithm 1.
[0068] The constraints in task allocation algorithm 2 consist of three parts.
[0069] The first constraint states that each robot can serve at most one service target, as follows:
[0070] ...
[0072]
[0073] The second constraint states that each robot's state can only be 0 or 1, as follows:
[0074]
[0075] Part Three states that each service objective can only request one robot to provide the service, as follows:
[0076] ...
[0078]
[0079] S5: Select the i-th robot to be planned, and add all robots in the robot cluster except the i-th robot to be planned as obstacles to the environment map to update the environment map. Where 1 ≤ i ≤ N, and i is an integer.
[0080] S6: Based on the updated environment map, set a dynamic target point for the i-th robot to be planned, and perform path planning for the i-th robot from its current position to the dynamic target point, and control the i-th robot to move towards the dynamic target point along the planned path. The dynamic target point lies on a line segment with the current position of the i-th robot and the position of the service target corresponding to the i-th robot as its two endpoints.
[0081] In related technologies, the target point refers to the robot's final position, that is, the position where the robot arrives at the service target and begins its work. The target point setting method in these technologies is the fixed target point method, which means that the target point remains unchanged throughout a robot's task, always representing the robot's position while working at the service target. The disadvantage of this method is low robot mobility and long processing time. This drawback is that the robot swarm's position is constantly changing, requiring the robots to continuously modify their paths during travel. Especially in narrow passage scenarios, robots will pass through the passage intermittently, causing the passage to alternate between clear and blocked states over time. For a robot about to pass through this passage, if the current passage state is blocked, the robot will find a longer path to reach the target point; if the current passage state is clear, the robot will pass through the passage to reach the target point.
[0082] To address the shortcomings of the fixed target point method, this invention proposes a dynamic target point method. Instead of fixing the target point, a location that can be effectively reached in the short term is set based on the robot's current state. By continuously updating the dynamic target point, the robot's movement is guided. In the dynamic target point method, the selection process for the dynamic target point of the i-th robot to be planned is as follows: Set the dynamic target distance l... d Get the current coordinates of the i-th robot to be planned. Obtain the coordinates of the service target corresponding to the i-th robot to be planned. Calculate the total distance between the i-th robot to be planned and its service target. Based on the ratio between dynamic target distance and total distance The coordinates of the dynamic target point are calculated based on the ratio, the current coordinates of the i-th robot to be planned, and the coordinates of the service target corresponding to the i-th robot to be planned. To dynamically target points This serves as the driving target for the i-th robot to be planned at the current moment.
[0083] In one embodiment of the present invention, the dynamic target distance l d It can be manually set, for example, by setting a dynamic target distance l based on the size of the work environment. dThe distance can be 10cm or 1m, etc. It should be understood that when the total distance between the i-th robot to be planned and its service target is less than or equal to the dynamic target distance, the position of the service target corresponding to the i-th robot to be planned can be directly used as the dynamic target point.
[0084] S7. For all N robots to be planned, execute steps S5 to S6 until the path planning of all N robots is completed. Then wait for the first preset time and return to step S3 to enter the next path planning cycle.
[0085] The first preset time can be set manually, for example, it can be 1 second or 10 seconds. It should be understood that the shorter the first preset time, the better the path of the robot cluster, but the greater the amount of computation. Therefore, it can be set according to the actual situation such as the quality requirements for the path control of the robot cluster and the computing power of the central node.
[0086] S8, when the total planning time reaches the second preset time, the path planning loop ends.
[0087] The second preset time can be set manually, for example, it can be 2 hours. Generally, within the manually set second preset time, it is sufficient to complete the path planning and driving control of each robot to its service target. Therefore, when the timing reaches the second preset time, the path planning loop of steps S3 to S7 can be terminated.
[0088] The path planning method for robot swarms according to embodiments of the present invention updates the map by using other robots as obstacles and plans the paths of robots one by one and round by round according to the dynamic target point method. This can effectively prevent collisions between robots and ensure the safe and stable operation of the robot swarm. It does not require the design of complex traffic control strategies, is simple, convenient, easy to implement, and widely applicable. It can improve the driving efficiency of robots and shorten the driving time of robots.
[0089] Corresponding to the path planning method for robot swarms in the above embodiments, the present invention also proposes a path planning device for robot swarms.
[0090] like Figure 2 As shown, the path planning device for a robot swarm in this embodiment of the invention includes a first acquisition module 10, a timing module 20, a second acquisition module 30, an allocation module 40, an update module 50, and a planning module 60.
[0091] The first acquisition module 10 is used to acquire an environmental map of the robot cluster's working scene, wherein the environmental map includes information about obstacles in the robot cluster's working scene; the timing module 20 is used to start timing the total planned time. After the start of the overall planning time, a path planning loop is entered. In this loop: the second acquisition module 30 acquires the position data of each robot in the robot cluster; the allocation module 40 allocates tasks to the robot cluster to determine N robots with service targets to be planned, where each of the N robots to be planned corresponds to one of the N service targets, and N is an integer greater than 1; the update module 50 selects the i-th robot to be planned and adds all robots in the robot cluster except the i-th robot to be planned as obstacles to update the environment map, where 1≤i≤N and i is an integer; the planning module 60 sets a dynamic target point for the i-th robot to be planned based on the updated environment map, and performs path planning from the current position to the dynamic target point for the i-th robot to be planned, and controls the i-th robot to be planned to drive along the planned path to the dynamic target point, where the dynamic target point is on the line segment with the current position of the i-th robot to be planned and the position of the corresponding service target of the i-th robot to be planned as its two endpoints. After completing path planning for N robots through update module 50 and planning module 60, wait for the first preset time, enter the next path planning cycle, and end the path planning cycle when the total planning time reaches the second preset time.
[0092] The robot cluster working scenario in this embodiment of the invention can be either an industrial or non-industrial scenario. For example, in an industrial scenario, the robot cluster can be a cluster of multiple AGVs with robotic arms, and the service target in the scenario can be a CNC machine tool, with the AGVs performing loading and unloading operations on the corresponding CNC machine tool. In a non-industrial scenario, the robot cluster can be a cluster of multiple robots with the function of carrying blood collection tubes, and the service target in the scenario can be a blood testing device, with the robots placing the blood collection tubes into the corresponding blood testing device.
[0093] In one embodiment of the present invention, each robot in the robot cluster is connected to a central node, and a first acquisition module 10, a timing module 20, a second acquisition module 30, an allocation module 40, an update module 50, and a planning module 60 are integrated in the central node.
[0094] The environment map of the robot swarm's working scenario can be stored in the central node. The environment map includes information on all obstacles in the environment, such as walls, tables, and machines, but does not include information on the robots.
[0095] Timing module 20 starts timing when the first round of path planning begins.
[0096] In one embodiment of the present invention, the location data is coordinates. The second acquisition module 30 can continuously send coordinate requests to each robot in the robot cluster, and each robot sends its own real-time coordinates to the second acquisition module 30 after receiving the request.
[0097] Task allocation for a robot swarm refers to determining the service targets of the robots in the swarm, and then planning the path for the robots to eventually reach their service targets. Therefore, in this embodiment of the invention, robots with service targets are referred to as robots to be planned.
[0098] The allocation module 40 can specifically construct a cost function, wherein the cost function aims to minimize the total time spent by robots in the robot cluster to reach the service target. Then, under preset constraints, the cost function is solved to determine the correspondence between N robots to be planned and N service targets.
[0099] Specifically, when the number of robots in the robot cluster is less than or equal to the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot must serve one service target; each robot can only serve one service target; each robot's state can only be "not serving" or "serving"; and each service target can only request service from one robot. When the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot can serve at most one service target; each robot's state can only be "not serving" or "serving"; and each service target can only request service from one robot.
[0100] In other words, in this embodiment of the invention, the allocation module 40 executes different task allocation algorithms for different scenarios of the relationship between the number of robots and the number of service targets.
[0101] In a specific embodiment of the present invention, for scenario 1: the number of robots in the robot cluster is less than or equal to the number of service targets in the robot cluster's working scenario, the allocation module 40 uses task allocation algorithm 1. Task allocation algorithm 1 uses an integer programming method, constructing the following integer programming problem:
[0102] min u(x)=c T x
[0103] Where u(x) is the cost function, and x represents the robot state, which is a vector with the following form:
[0104]
[0105] in,
[0106]
[0107] Where nT represents the number of the service target and nR represents the number of the robot.
[0108] Each element in the robot's state To represent the state of robot nR in relation to service target nT, this embodiment of the invention uses two state values to describe the state, namely 0 and 1:
[0109]
[0110] in, This indicates that robot nR does not provide services to the service target nT. This indicates that robot nR provides services to service target nT.
[0111] c is the time matrix used to describe robot n R Reaching service target n T The time spent, the matrix size is N T ×N R Row 1, Column 1, as follows:
[0112]
[0113] in, This indicates that the time it takes for the robot to reach the service target is a positive value.
[0114] The constraints in task allocation algorithm 1 consist of four parts.
[0115] The first constraint states that each robot must serve a service objective, as follows:
[0116] ...
[0118]
[0119] Where, N R ={0, ..., N R {-1} represents the set of all robot IDs; N T ={0, ..., N T} -1 represents the set of all service target numbers.
[0120] The second constraint states that each robot can only serve one service target, as follows:
[0121] ...
[0123]
[0124] The third constraint states that each robot's state can only be 0 or 1, as follows:
[0125]
[0126] Part Four states that each service objective can only request one robot to provide the service, as follows:
[0127] ...
[0129]
[0130] For scenario 2: the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's work scenario, the allocation module 40 uses task allocation algorithm 2. Task allocation algorithm 2 also uses an integer programming method, constructing the following integer programming problem:
[0131] min u(x)=c T x
[0132] That is, the form of the cost function u(x) is exactly the same as that of task allocation algorithm 1.
[0133] The constraints in task allocation algorithm 2 consist of three parts.
[0134] The first constraint states that each robot can serve at most one service target, as follows:
[0135] ...
[0137]
[0138] The second constraint states that each robot's state can only be 0 or 1, as follows:
[0139]
[0140] Part Three states that each service objective can only request one robot to provide the service, as follows:
[0141] ...
[0143]
[0144] In related technologies, the target point refers to the robot's final position, that is, the position where the robot arrives at the service target and begins its work. The target point setting method in these technologies is the fixed target point method, which means that the target point remains unchanged throughout a robot's task, always representing the robot's position while working at the service target. The disadvantage of this method is low robot mobility and long processing time. This drawback is that the robot swarm's position is constantly changing, requiring the robots to continuously modify their paths during travel. Especially in narrow passage scenarios, robots will pass through the passage intermittently, causing the passage to alternate between clear and blocked states over time. For a robot about to pass through this passage, if the current passage state is blocked, the robot will find a longer path to reach the target point; if the current passage state is clear, the robot will pass through the passage to reach the target point.
[0145] To address the shortcomings of the fixed target point method, this invention proposes a dynamic target point method. Instead of fixing the target point, a location that can be effectively reached in the short term is set based on the robot's current state. By continuously updating the dynamic target point, the robot's movement is guided. In the dynamic target point method, the planning module 60 sets the dynamic target point for the i-th robot to be planned, specifically including: setting the dynamic target distance l. d Get the current coordinates of the i-th robot to be planned. Obtain the coordinates of the service target corresponding to the i-th robot to be planned. Calculate the total distance between the i-th robot to be planned and its service target. Based on the ratio between dynamic target distance and total distance The coordinates of the dynamic target point are calculated based on the ratio, the current coordinates of the i-th robot to be planned, and the coordinates of the service target corresponding to the i-th robot to be planned. To dynamically target points This serves as the driving target for the i-th robot to be planned at the current moment.
[0146] In one embodiment of the present invention, the dynamic target distance l d It can be manually set, for example, by setting a dynamic target distance l based on the size of the work environment. d The distance can be 10cm or 1m, etc. It should be understood that when the total distance between the i-th robot to be planned and its service target is less than or equal to the dynamic target distance, the position of the service target corresponding to the i-th robot to be planned can be directly used as the dynamic target point.
[0147] The first preset time can be set manually, for example, it can be 1 second or 10 seconds. It should be understood that the shorter the first preset time, the better the path of the robot cluster, but the greater the amount of computation. Therefore, it can be set according to the actual situation such as the quality requirements for the path control of the robot cluster and the computing power of the central node.
[0148] The second preset time can be set manually, for example, it can be 2 hours. Generally, within the manually set second preset time, it is sufficient to complete the path planning and driving control of each robot to its service target. Therefore, when the timing reaches the second preset time, the above path planning cycle can be terminated.
[0149] The path planning device for a robot swarm according to an embodiment of the present invention updates the map using other robots as obstacles and plans the path for each robot one by one and round by round according to the dynamic target point method. This effectively prevents collisions between robots and ensures the safe and stable operation of the robot swarm. It does not require the design of complex traffic control strategies, is simple, convenient, easy to implement, and widely applicable. It can improve the driving efficiency of robots and shorten the driving time of robots.
[0150] In the description of this invention, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. "A plurality of" means two or more, unless otherwise explicitly specified.
[0151] In this invention, unless otherwise explicitly specified and limited, the terms "installation," "connection," "linking," and "fixing," etc., should be interpreted broadly. For example, they can refer to a fixed connection, a detachable connection, or an integral part; they can refer to a mechanical connection or an electrical connection; they can refer to a direct connection or an indirect connection through an intermediate medium; they can refer to the internal communication of two components or the interaction between two components. Those skilled in the art can understand the specific meaning of the above terms in this invention according to the specific circumstances.
[0152] In this invention, unless otherwise explicitly specified and limited, "above" or "below" the second feature can mean that the first feature is in direct contact with the second feature, or that the first feature is in indirect contact with the second feature through an intermediate medium. Furthermore, "above," "over," and "on top" of the second feature can mean that the first feature is directly above or diagonally above the second feature, or simply that the first feature is at a higher horizontal level than the second feature. "Below," "below," and "under" the second feature can mean that the first feature is directly below or diagonally below the second feature, or simply that the first feature is at a lower horizontal level than the second feature.
[0153] In the description of this specification, the references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic described in connection with that embodiment or example is included in at least one embodiment or example of the present invention. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples. Furthermore, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of different embodiments or examples.
[0154] Any process or method description in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more executable instructions for implementing a particular logical function or process, and the scope of the preferred embodiments of the invention includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the functions involved, as will be understood by those skilled in the art to which embodiments of the invention pertain.
[0155] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a ordered list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus, or device (such as a computer-based system, a processor-included system, or other system that can fetch and execute instructions from, an instruction execution system, apparatus, or device). For the purposes of this specification, "computer-readable medium" can be any means that can contain, store, communicate, propagate, or transmit programs for use by, or in conjunction with, an instruction execution system, apparatus, or device. More specific examples (a non-exhaustive list) of computer-readable media include: an electrical connection having one or more wires (electronic device), a portable computer disk drive (magnetic device), random access memory (RAM), read-only memory (ROM), erasable and editable read-only memory (EPROM or flash memory), fiber optic devices, and portable optical disc read-only memory (CDROM). Alternatively, the computer-readable medium may be paper or other suitable media on which the program can be printed, since the program can be obtained electronically, for example, by optically scanning the paper or other medium, followed by editing, interpreting, or otherwise processing as necessary, and then stored in a computer memory.
[0156] It should be understood that various parts of the present invention can be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.
[0157] Those skilled in the art will understand that all or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, the program includes one or a combination of the steps of the method embodiments.
[0158] Furthermore, the functional units in the various embodiments of the present invention can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.
[0159] Although embodiments of the present invention have been shown and described above, it is understood that the above embodiments are exemplary and should not be construed as limiting the present invention. Those skilled in the art can make changes, modifications, substitutions and variations to the above embodiments within the scope of the present invention.
Claims
1. A path planning method for a robot swarm, characterized in that, Includes the following steps: S1, Obtain an environmental map of the robot cluster's working scene, wherein the environmental map includes information about obstacles in the robot cluster's working scene; S2, start timing the total planning time and enter a path planning loop, in which steps S3 to S7 are executed; S3, Obtain the position data of each robot in the robot cluster; S4, perform task allocation on the robot cluster to determine N robots with service targets to be planned in the robot cluster, wherein the N robots to be planned correspond one-to-one with the N service targets, and N is an integer greater than 1; S5, Select the i-th robot to be planned, and add all robots in the robot cluster except the i-th robot to be planned as obstacles to the environment map to update the environment map, where 1≤i≤N and i is an integer; S6, based on the updated environment map, set a dynamic target point for the i-th robot to be planned, and perform path planning for the i-th robot to be planned from its current position to the dynamic target point, and control the i-th robot to be planned to drive along the planned path to the dynamic target point, wherein the dynamic target point is on a line segment with the current position of the i-th robot to be planned and the position of the service target corresponding to the i-th robot to be planned as the two endpoints; S7. For all N robots to be planned, execute steps S5 to S6 until the path planning of all N robots is completed. Then wait for a first preset time and return to step S3 to enter the next path planning cycle. S8, when the total planning time reaches the second preset time, the path planning loop ends.
2. The path planning method for robot swarms according to claim 1, characterized in that, Each robot in the robot cluster is connected to a central node, through which steps S1 to S8 are executed.
3. The path planning method for a robot swarm according to claim 1, characterized in that, Step S4 specifically includes: Construct a cost function, wherein the cost function aims to minimize the total time spent by robots in the robot cluster to reach the service target; The cost function is solved under preset constraints to determine the correspondence between the N robots to be planned and the N service targets.
4. The path planning method for a robot swarm according to claim 3, characterized in that, When the number of robots in the robot cluster is less than or equal to the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot must serve one service target, each robot can only serve one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services. When the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot can serve at most one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services.
5. The path planning method for a robot swarm according to claim 1, characterized in that, The location data obtained in step S3 is coordinates. The specific steps in step S6 of setting a dynamic target point for the i-th robot to be planned include: Set dynamic target distance; Obtain the current coordinates of the i-th robot to be planned; Obtain the coordinates of the service target corresponding to the i-th robot to be planned; Calculate the total distance between the i-th robot to be planned and its service target; Based on the ratio between the dynamic target distance and the total distance; The coordinates of the dynamic target point are calculated based on the ratio, the current coordinates of the i-th robot to be planned, and the coordinates of the service target corresponding to the i-th robot to be planned, so as to use the dynamic target point as the driving target of the i-th robot to be planned at the current moment.
6. A path planning device for a robot swarm, characterized in that, It includes a first acquisition module, a timing module, a second acquisition module, an allocation module, an update module, and a planning module. The first acquisition module is used to acquire an environmental map of the robot cluster's working scene, wherein the environmental map includes information about obstacles in the robot cluster's working scene; The timing module is used to start timing the total planned time. After the start of the overall planning time, a path planning loop is entered. In this loop: the second acquisition module acquires the position data of each robot in the robot cluster; the allocation module allocates tasks to the robot cluster to determine N robots with service targets to be planned, where each of the N robots to be planned corresponds to one of the N service targets, and N is an integer greater than 1; the update module selects the i-th robot to be planned, and adds all robots in the robot cluster except the i-th robot to be planned as obstacles to the environment map to update the environment map, where 1 ≤ i ≤ N, and i is an integer; based on the updated environment map, the planning module sets a dynamic target point for the i-th robot to be planned, performs path planning from the current position to the dynamic target point for the i-th robot to be planned, and controls the i-th robot to move along the planned path to the dynamic target point, where the dynamic target point lies on a line segment with the current position of the i-th robot to be planned and the position of the corresponding service target of the i-th robot to be planned as its two endpoints. After the update module and the planning module complete the path planning for N robots to be planned, wait for a first preset time and enter the next path planning cycle. When the total planning time reaches a second preset time, the path planning cycle ends.
7. The path planning device for a robot swarm according to claim 6, characterized in that, Each robot in the robot cluster is connected to a central node, and the first acquisition module, the timing module, the second acquisition module, the allocation module, the update module, and the planning module are integrated in the central node.
8. The path planning device for a robot swarm according to claim 6, characterized in that, The allocation module is specifically used for: Construct a cost function, wherein the cost function aims to minimize the total time spent by robots in the robot cluster to reach the service target; The cost function is solved under preset constraints to determine the correspondence between the N robots to be planned and the N service targets.
9. The path planning device for a robot swarm according to claim 8, characterized in that, When the number of robots in the robot cluster is less than or equal to the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot must serve one service target, each robot can only serve one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services. When the number of robots in the robot cluster is greater than the number of service targets in the robot cluster's working scenario, the preset constraints include: each robot can serve at most one service target, each robot's state can only be either not serving or serving, and each service target can only request one robot to provide services.
10. The path planning device for a robot swarm according to claim 6, characterized in that, The location data acquired by the second acquisition module is coordinates. The planning module sets a dynamic target point for the i-th robot to be planned, specifically including: Set dynamic target distance; Obtain the current coordinates of the i-th robot to be planned; Obtain the coordinates of the service target corresponding to the i-th robot to be planned; Calculate the total distance between the i-th robot to be planned and its service target; Based on the ratio between the dynamic target distance and the total distance; The coordinates of the dynamic target point are calculated based on the ratio, the current coordinates of the i-th robot to be planned, and the coordinates of the service target corresponding to the i-th robot to be planned, so as to use the dynamic target point as the driving target of the i-th robot to be planned at the current moment.
Citation Information
Patent Citations
Multi-robot path planning method based on time window
CN105652838A
Path planning method, device and equipment of service robot and storage medium
CN114740847A