Robot and motion control method and apparatus therefor, and robot cluster motion system

By using a decentralized communication framework and robot motion control methods, the congestion problem in multi-robot scenarios is solved, enabling robots to efficiently avoid obstacles and move collaboratively in two-dimensional space.

WO2026157859A1PCT designated stage Publication Date: 2026-07-30SHENZHEN YOUBIXING TECH CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
SHENZHEN YOUBIXING TECH CO LTD
Filing Date
2025-12-30
Publication Date
2026-07-30

AI Technical Summary

Technical Problem

In multi-robot scenarios, congestion can easily occur between robots, and existing drone swarm control algorithms cannot effectively solve the robot avoidance problem in two-dimensional space.

Method used

A decentralized communication framework is adopted, in which each robot responds to task instructions to obtain its own status and obstacle information, plans a safe path, and constructs a static safe space through vectorization, optimizes its motion trajectory, and broadcasts it to the cluster network to achieve obstacle avoidance.

Benefits of technology

This enables multiple robots to move efficiently in a two-dimensional space, avoiding collisions and blockages, and improving the system's adaptability and scalability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025147673_30072026_PF_FP_ABST
    Figure CN2025147673_30072026_PF_FP_ABST
Patent Text Reader

Abstract

A robot and a motion control method and apparatus therefor, and a robot cluster motion system. The control method comprises: in response to a task instruction, acquiring the current state of a robot itself and external obstacle information (S110); on the basis of the obstacle information, planning a safe path for the robot to reach, from the current state, a target state indicated in the task instruction (S120); vectorizing the obstacle information to construct a static safe space along the safe path (S130); performing optimization on the basis of an objective function to obtain a motion trajectory of the robot, wherein the objective function comprises constraint conditions constructed on the basis of the safe path, the static safe space and received trajectory information of other robots in a cluster network (S140); and on the basis of the motion trajectory, controlling the robot to execute a target motion, and broadcasting the motion trajectory to the cluster network (S150). Thus, congestion and collision problems during the motion of multiple robots can be effectively solved.
Need to check novelty before this filing date? Find Prior Art

Description

Robots and their motion control methods, devices and robot swarm motion systems

[0001] This application claims priority to Chinese Patent Application No. 202510105934.X, filed on January 22, 2025, entitled "Robot and its Motion Control Method, Device and Robot Swarm Motion System", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of robot control, and more particularly to a robot and its motion control method, device and robot swarm motion system. Background Technology

[0003] Currently, wheeled robots are being used more and more widely in restaurants, shopping malls, and office buildings. These robots cover a wide range of service functions such as cleaning, delivery, and greeting. For example, an office building usually deploys multiple robots to perform various types of tasks simultaneously. As the number of robots deployed in the same application scenario increases, congestion often occurs between the robots. This is because each robot prioritizes completing its own task. When multiple robots meet, they will treat other robots as obstacles and try to find space to go around them. At the same time, other robots are also doing the same thing, which causes congestion. As the congestion lasts longer, more and more robots will be stuck in the congestion. Summary of the Invention

[0004] In view of this, this application provides a robot and its motion control method, device and robot swarm motion system, which can solve the congestion problem of multi-robot motion.

[0005] In a first aspect, embodiments of this application provide a robot motion control method, comprising:

[0006] Respond to task instructions to obtain information about the robot's current state and external obstacles;

[0007] Based on the obstacle information, plan a safe path for the robot to reach the target state indicated in the task instruction from the current state;

[0008] The obstacle information is vectorized to construct a static safety space along the safety path;

[0009] The robot's motion trajectory is obtained by optimizing an objective function, which includes constraints constructed based on the safe path, the static safe space, and trajectory information of other robots in the received cluster network.

[0010] The robot is controlled to perform the target motion according to the motion trajectory, and the motion trajectory is broadcast to the cluster network.

[0011] Secondly, embodiments of this application also provide a robot motion control device, comprising:

[0012] The data acquisition module is used to respond to task instructions and obtain information about the robot's current state and external obstacles.

[0013] The path planning module is used to plan a safe path for the robot to reach the target state indicated in the task instruction from the current state based on the obstacle information.

[0014] The vector processing module is used to vectorize the obstacle information to construct a static safety space along the safety path;

[0015] The path optimization module is used to optimize the robot's motion trajectory based on an objective function, wherein the objective function includes constraints constructed based on the safe path, the static safe space, and trajectory information of other robots in the received cluster network.

[0016] The motion control module is used to control the robot to perform target motion according to the motion trajectory, and to broadcast the motion trajectory to the cluster network.

[0017] Thirdly, embodiments of this application also provide a robot swarm motion system, comprising: a plurality of robots, wherein the robots form a swarm network through a broadcast protocol;

[0018] Each robot is used to receive real-time trajectory information from other robots in the cluster network, execute the robot motion control method to generate its own motion trajectory to control the robot to perform its own target motion, and broadcast its own motion trajectory to the cluster network.

[0019] Fourthly, embodiments of this application also provide a robot, the robot including a processor and a memory, the memory storing a computer program, and the processor executing the computer program to implement the robot motion control method.

[0020] Fifthly, embodiments of this application also provide a computer-readable storage medium storing a computer program, which, when executed, implements the robot motion control method described above.

[0021] The embodiments of this application have the following advantages:

[0022] The robot motion control method proposed in this application adopts a decentralized communication framework. It obtains the robot's current state and external obstacle information by having each robot respond to task commands. Based on the obstacle information, a safe path is planned from the current state to the target state. The obstacle information is vectorized to construct a static safety space along the safe path. Then, the robot's motion trajectory is obtained based on an objective function, which includes constraints constructed based on the safe path, the static safety space, and the trajectory information of other robots in the received cluster network. The robot is controlled to execute the target motion according to the motion trajectory, and the motion trajectory is broadcast to the cluster network for other robots to use in generating their own motion trajectories. This method enables multiple robots to move efficiently within a region without colliding or blocking each other. Attached Figure Description

[0023] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0024] Figure 1 shows a schematic diagram of an application of the robot swarm motion system according to an embodiment of this application;

[0025] Figure 2(a) and (b) show schematic diagrams of using a central node and a central node anomaly, respectively;

[0026] Figure 3 shows a schematic diagram of a robot sharing trajectory information via broadcast in an embodiment of this application;

[0027] Figure 4 shows a first flowchart of a robot motion control method according to an embodiment of this application;

[0028] Figure 5 shows a flowchart of a safe path planning embodiment of this application;

[0029] Figure 6 illustrates a diagram of the robot searching for all possible states for the next step from the current state;

[0030] Figure 7 shows a schematic diagram of a planned safe path from the current state to the target state;

[0031] Figure 8 shows a flowchart of static security space construction according to an embodiment of this application;

[0032] Figure 9 shows a schematic diagram defining the convex polygon constituting the static safety space as a rectangle;

[0033] Figure 10 shows a schematic diagram of determining and expanding the convex polygon from the robot's current state;

[0034] Figure 11 shows a schematic diagram of searching for all the largest convex polygons along the safe path;

[0035] Figure 12 shows a schematic diagram defining the robot as a rectangular model;

[0036] Figure 13 shows a schematic diagram illustrating how the robot avoids colliding with other robots at different times;

[0037] Figure 14(a) and (b) show schematic diagrams of the robot interacting with other robots in the absence of collision and in the presence of collision, respectively;

[0038] Figure 15(a) and (b) show schematic diagrams of the distances from points to lines for the first polygon A and the second polygon B, respectively.

[0039] Figure 16 shows a schematic diagram of a robot motion control device according to an embodiment of this application. Detailed Implementation

[0040] The technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments.

[0041] The components of the embodiments of this application described and illustrated in the accompanying drawings can be arranged and designed in a variety of different configurations. Therefore, the following detailed description of the embodiments of this application provided in the drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

[0042] Unless otherwise specified, all terms used herein (including technical and scientific terms) shall have the same meaning as commonly understood by one of ordinary skill in the art to which the various embodiments of this application pertain. Terms (such as those defined in commonly used dictionaries) shall be interpreted as having the same meaning as in their contextual meaning in the relevant technical field and shall not be construed as having an idealized or overly formal meaning, unless clearly defined in the various embodiments of this application.

[0043] In scenarios involving multiple robots, congestion can easily occur between them. Currently, common swarm control algorithms are primarily used in drone scenarios. These algorithms mainly schedule each drone by calculating its trajectory in three-dimensional space to avoid collisions. However, wheeled robots operating on the ground essentially operate in two-dimensional space. Unlike three-dimensional space, two-dimensional space does not provide sufficient space for all robots to avoid collisions like drones. Therefore, existing drone swarm control algorithms cannot be adapted to multi-robot applications. To address this, this application discloses a robot motion control method that proposes a two-dimensional robot trajectory generation algorithm to control the motion of multiple robot swarms, thus solving the problem of insufficient avoidance space.

[0044] The technical solution of this application will be described below with reference to some specific embodiments.

[0045] This application proposes a robot, exemplary in that the robot includes a processor and a memory, wherein the memory stores a computer program, and the processor executes the computer program to enable the robot to perform the robot motion control method of this application. This method not only improves the efficiency of the robot's own motion trajectory control for individual robots, but also effectively enables mutual avoidance among multiple robots for the entire cluster system. Furthermore, since each robot deploys the same control strategy, i.e., a decentralized distributed framework design is adopted, task allocation and resource optimization can be achieved, as well as improving the adaptability and scalability of the entire cluster system.

[0046] The processor can be an integrated circuit chip with signal processing capabilities. The processor can be a general-purpose processor, including at least one of a Central Processing Unit (CPU), Graphics Processing Unit (GPU), Network Processor (NP), Digital Signal Processor (DSP), Application-Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The general-purpose processor can be a microprocessor or any conventional processor, capable of implementing or executing the methods, steps, and logic block diagrams disclosed in the embodiments of this application.

[0047] The memory can be, but is not limited to, Random Access Memory (RAM), Read Only Memory (ROM), Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), etc. The memory is used to store computer programs, and the processor can execute the computer programs accordingly after receiving execution instructions.

[0048] It is understood that the aforementioned robots can be wheeled robots that move on the ground using wheels, such as delivery robots (including food delivery and mail delivery robots), cleaning robots, and guiding robots; or they can be robots that move using tracks or other structures. Furthermore, taking wheeled robots as an example, they can be single-wheeled robots, humanoid robots with both legs and rolling wheels integrated into one unit, or they can be two-wheeled, three-wheeled, or four-wheeled robots, and their specific form is not limited.

[0049] Based on the robot with the above structure, this application proposes a robot swarm motion system. Exemplarily, the swarm motion system includes: several robots as described above, which form a swarm network through a broadcast protocol. Each robot can send information (including but not limited to, such as its own trajectory information) to the network via broadcast, and can also receive all information in the network (including but not limited to, such as the trajectory information of other robots).

[0050] For example, as shown in Figure 1, suppose there are three robots (denoted as robots A, B, and C) forming a cluster network. These three robots can send information to any other robot, i.e., broadcast to the network. It can be seen that the robot cluster motion system of this application adopts a decentralized framework, that is, there is no central node as shown in Figure 2(a) for unified information calculation and forwarding among the robots. It is understandable that if the central node fails, for example, due to network communication abnormalities, as shown in Figure 2(b), all robots will be unable to receive trajectory information from the central node, leading to abnormalities in all robots and potentially collisions. Therefore, this application adopts a decentralized framework design, where each robot can communicate through broadcast messages. Even if a single robot malfunctions, it will not affect the normal operation of other robots. Compared with existing solutions based on a centralized framework, this design has a stronger fault tolerance and higher risk resistance. Furthermore, this decentralized system can flexibly adapt to changes in task scale. For example, new robots can seamlessly join or leave the task by deploying the same control strategy without needing to redesign the overall system's control strategy.

[0051] Based on a decentralized framework, to address issues such as congestion or collisions among multiple robots, this robot swarm motion system, demonstratively, involves each robot receiving real-time trajectory information from other robots in the swarm network, as shown in Figure 3. Each robot then executes the robot motion control method of this application to generate its own trajectory, thereby controlling the robot to perform the target motion. Simultaneously, each robot broadcasts its trajectory to the swarm network for other robots to receive and use, for example, as an avoidance condition to generate their own trajectories. It can be understood that each robot makes optimal motion decisions based on local information, and then cooperates with each other through local optima to achieve a globally near-optimal effect, enabling efficient action of the entire system through collaboration.

[0052] For example, in some implementations, the broadcast motion trajectory information includes each robot's unique identifier (such as ID) and its trajectory points (such as 2D coordinates) and attitude (such as heading angle) at the corresponding time. Since each robot's identifier is unique, each robot removes any identifiers from all received trajectory information that match its own identifier to obtain the trajectory information for all other robots. It can be understood that message communication between robots primarily shares necessary motion trajectory information, rather than global data, which significantly reduces network load.

[0053] Optionally, when multiple robots are initially forming a cluster network, there is no information in the network at this time. Each robot does not need to consider the state of other robots. It only needs to generate an initial motion trajectory based on its own current state using a trajectory generation method, and then broadcast it to the network.

[0054] For each robot in the aforementioned robot swarm motion system, the robot motion control method of this application is used to achieve its own motion trajectory planning in two-dimensional space and to execute its own target task without affecting each other. At the same time, the motion trajectory generated by this method can enable each robot to avoid collisions with each other and with obstacles in the external environment. The robot motion control method will be described in detail below.

[0055] Figure 4 shows a flowchart of a robot motion control method according to an embodiment of this application. Exemplarily, the robot motion control method includes the following steps:

[0056] S110 responds to task instructions to obtain information about the robot's current state and external obstacles.

[0057] The delivery of task instructions can take various forms. For example, users can obtain task instructions through voice interaction with the robot, or the robot can receive task instructions from the server backend. The type of task can also be set according to the type of service required by each robot in the application scenario, without specific limitations here. For example, in a certain area, robot A can be assigned to perform item delivery tasks, robot B to perform cleaning tasks, and robot C to perform wayfinding tasks, etc.

[0058] As an example, upon receiving a task instruction, each robot will parse the instruction to obtain specific task information, such as, but not limited to, the target state to be reached (e.g., the pose of the target point to be reached). In addition, the robot will also acquire obstacle information from its current environment, as well as its own current state (including the robot's pose and motion state).

[0059] External obstacle information mainly includes the position and shape of static obstacles in the robot's environment, such as their location on the environment map. Typically, to facilitate position information processing, the environment map is first rasterized to obtain a corresponding grid map. Then, based on the position and shape information of each obstacle, the grid area occupied by each obstacle on the environment's grid map can be obtained.

[0060] In some cases, the aforementioned obstacle information can be identified by external sensing modules deployed in the environment. These static obstacles (such as walls, tables, chairs, or other static objects that may obstruct the robot's movement) can be identified. It is understood that these robots may also pre-store a map of their environment and the aforementioned obstacle information. Of course, if the obstacles are updated, the robot will also acquire the latest obstacle information accordingly. This obstacle information includes the location of each obstacle on the map of the robot's environment.

[0061] S120, based on obstacle information, plans a safe path for the robot to reach the target state indicated in the task instructions from its current state.

[0062] A safe path refers to a continuous path that allows the robot to safely reach the task objective from its current state. Here, "safe" is relative to static obstacles, meaning it can avoid the aforementioned static obstacles.

[0063] In this application, after knowing the obstacle information of the external environment, a continuous safe path is first planned, and then a motion trajectory based on the safe path is generated in two-dimensional space.

[0064] In some embodiments, as shown in FIG5, step S120 includes the following sub-steps:

[0065] S210. Based on the robot configuration, determine the kinematic state parameters and control quantities of the robot to construct the state transition equation of the robot.

[0066] Different robot configurations affect the robot's kinematic state parameters and control variables. It can be understood that by inputting appropriate control variables into the robot, its state parameters can change as expected in a timely manner, thereby enabling the robot to move and reach the task target point.

[0067] For example, in one embodiment, the robot is configured as a wheeled robot as described above. Its kinematic state parameters may include the wheeled robot's position and orientation on the surrounding environment map. For instance, the state parameters could be defined as ξ = [x, y, φ]. T In the formula, x and y represent two-dimensional coordinates used to indicate position, and φ is the heading angle used to indicate attitude; correspondingly, its kinematic control quantities may include the robot's linear velocity and angular velocity, for example, the control quantity is defined as u = [v, ω] T In the formula, v and ω represent linear velocity and angular velocity, respectively. Therefore, the state transition equation for this wheeled robot is: Expand to reveal:

[0068] In the formula, Let x, y, and φ be the derivatives of x, y, and φ with respect to time t, respectively.

[0069] Based on this, the state parameter ξ in the (k+1)th period within a unit time interval... k+1 With the state parameter ξ of the kth period k The change Δξ can be described as: Δξ = ξ k+1 -ξ k =f′(ξ k ,u k ), which can be expanded to include:

[0070] In the formula, Δx, Δy, and Δφ represent the changes in x, y, and φ within a unit time interval Δt.

[0071] It is understandable that if the control quantity is sampled periodically, given the current state and the change in the state parameter per unit time interval, the robot's state in subsequent sampling cycles can be progressively searched, thus obtaining all possible states of the robot sampled in each cycle. Regarding the selection of the sampling cycle, for example, the safe path can be sampled at equal intervals (the size of which can be determined based on the actual situation) to determine the position information of each sampling point.

[0072] In addition, before searching for candidate states in the robot's environment map, the environment map can be rasterized to obtain a grid map. This allows us to determine all possible states (including position and orientation) that can be reached at each step during the search process in the grid map.

[0073] S220: According to the state transition equation, starting from the current state, search all candidate states in each subsequent sampling period step by step according to a preset step size, and remove invalid candidate states that collide with any obstacle, until the target state indicated in the task instruction is found, thus obtaining a safe path. The preset step size can be set according to actual needs and is not limited here.

[0074] Assume the robot's current state (initial state) is ξ0 = [x0, y0, φ0]. T And the initial control variable u0 = [v0, 0] T At the beginning, the search is performed according to the set step size, as shown in Figure 6. Then, in the first cycle, all possible states (i.e. candidate states) of the second cycle are sampled and obtained as follows: Ξ1={ξ1|ξ1=ξ0+f′(ξ0,u0+KΔu)};

[0075] In the formula, Ξ1 is the set of all possible states ξ1 in the second period, and the step size Δu = [Δv, Δω]. TLet K be the coefficient matrix, where different values ​​of K result in different states for a single sampling period. Taking the second sampling period as an example, multiple different candidate states can be obtained by adjusting the values ​​of the elements of K.

[0076] Considering the presence of obstacles in the environment, it is necessary to further utilize obstacle information to remove candidate states that collide with any obstacle (denoted as invalid candidate states). For example, as shown in Figure 6, among the six candidate states, one of the candidate states represented by the dashed line will collide and therefore needs to be removed. The remaining five are all the candidate states for the second period.

[0077] Similarly, by using the same method described above, all possible states {Ξ2,Ξ3,…} for each subsequent cycle can be searched until the target state ξ is found. f =[x f ,y f ,φ f ] T ∈Ξ n , among which, Ξ n This represents all possible states, including the target state. It's understandable that the number of sampling periods can be determined based on requirements.

[0078] Finally, by starting from the target state ξ f If we backtrack to the current state ξ0, we can find a continuous safe path (denoted as P) that can avoid obstacles, as shown in Figure 7.

[0079] S130 vectorizes obstacle information to construct a static safety space along the safety path.

[0080] Vectorization refers to the process of converting raster data describing obstacle information into vector data. Considering that each robot has a certain volume and moves in a two-dimensional space such as the ground, it is impossible to directly treat each robot as a simple point mass to generate its trajectory. Furthermore, given the existence of static obstacles of varying shapes and the limited avoidance space on the ground, this application uses geometric methods (i.e., vectorization processing) to describe the safe space (i.e., static safe space) that the robot can avoid when moving along a safe path, thus preventing collisions with external static obstacles. It can be understood that as long as the robot remains within this safe space during its movement, collisions with external static obstacles can be avoided.

[0081] For example, in some embodiments, as shown in FIG8, step S130 includes the following sub-steps:

[0082] S310: Based on the location information of each obstacle, starting from the current state, initially determine a convex polygon region on the map that does not contain any obstacles, and expand the convex polygon region without collision until the maximum area is obtained, thus obtaining the maximum convex polygon region.

[0083] The aforementioned location information mainly refers to the grid area occupied by the obstacle in the grid map. The safe space in the two-dimensional space to be constructed can be defined as a set of convex polygons (denoted as q), which should satisfy the following conditions: no obstacle should be included or intersected by any convex polygon, and its area should be as large as possible to ensure that the robot will not collide with obstacles inside any convex polygon and has sufficient room to move.

[0084] In some embodiments, each convex polygon q is formed by multiple straight lines, defining a straight line l in two-dimensional space. m The expression is: A m X = b m , X = [x, y] T Where [x, y] are the coordinates of a point on a line in two-dimensional space. For ease of calculation, we take the simplified convex polygon q as a rectangle enclosed by four lines as an example. Then, the vector data of a rectangle can be expressed as a set. As shown in Figure 9, the set ∈ consisting of multiple rectangles can be represented as:

[0085] in,

[0086] For step S310, taking the robot's current state as an example, first, an initial convex polygon (a rectangle as shown in Figure 10) is determined. Then, the area of ​​this convex polygon is continuously increased until it cannot be increased further (without colliding with obstacles). It is understood that the initial determination or expansion of the convex polygon region cannot include any grid region. In this way, the convex polygon with the largest area corresponding to the current state (i.e., the largest convex polygon region) can be found.

[0087] S320, continue searching for the largest convex polygon region of the next state around the safe path until the target state is reached. All the obtained largest convex polygon regions are described in vector form to obtain the static safe space.

[0088] Similarly, using the method described above, the search for the next largest convex polygon is performed around the safety path P on the raster map until the largest convex polygon containing the target state is found. These largest convex polygons form a convex polygon set ∈, as shown by the dashed rectangles in Figure 11, which constitute the vector data of the safety space. This completes the vectorization process of the static obstacle.

[0089] S140, the robot's motion trajectory is obtained based on the objective function optimization. The objective function includes constraints constructed based on the safe path, static safe space, and trajectory information of other robots in the received cluster network.

[0090] The objective function is used to find the optimal trajectory for the robot to perform the current objective task. It can be understood that in this application, the objective function and constraint range are constructed using the obtained safe path, safe space, and trajectory information of other robots. Then, the extreme value of the objective function within the constraint range is obtained, ultimately yielding a trajectory that is safe relative to static obstacles and other robots.

[0091] The construction of the objective function and constraints in step S140 will be explained below.

[0092] First, before constructing the objective function, we need to define the motion trajectory. In one implementation, the motion trajectory is defined as a continuous curve. t represents time, and T is the maximum running time of the entire trajectory. Wherein, the points on the trajectory are defined as (Note that T in a matrix or vector represents a permutation operation). Typically, a trajectory can be divided into multiple sub-trajectories, i.e.: In the formula, the j-th sub-trajectory can be represented as M represents the total number of sub-trajectories, which can be determined based on actual circumstances and is not limited here. Optionally, the running time t′ required for each sub-trajectory is equal, in which case its value ranges from t′∈[0,T′], and T′=μT.

[0093] Based on this, a sub-trajectory can be expressed using a parameter vector α(t) and a basis matrix β:

[0094]

[0095] In the formula, α j (t)=[1,t,t 2 ,...,t N ] T , N is the order. For ease of calculation, we can choose an empirical value of N=5 as an example, but other values ​​can also be used, depending on the actual needs. Generally, the larger N is, the smoother the trajectory will be, but the amount of calculation will also increase.

[0096] Therefore, a trajectory can be determined by a set of basis matrices, which are represented as follows:

[0097] Furthermore, based on the expression for a sub-trajectory, the entire motion trajectory can be represented as:

[0098] Therefore, a motion trajectory represented by the basis matrix β and the maximum running time T can be obtained. It can be understood that the basis matrix is ​​a linearly independent vector; any vector in the vector space can be obtained by a linear combination of vectors in the basis matrix. Since the motion trajectory has multiple sub-trajectories, this application uses a set of basis matrices to describe these sub-trajectories and the entire motion trajectory, facilitating calculation and analysis. It should be understood that by performing differentiation operations on the basis matrix and parameter vectors, the heading angle (i.e., attitude information) contained in the trajectory can be obtained.

[0099] Next, after defining the expression for the motion trajectory, the objective function will be constructed.

[0100] The objective function consists of two parts: the target to be optimized and the variables to be optimized. The numerical optimization process involves iteratively optimizing these variables until the objective function reaches its minimum value. For example, as an alternative approach, the basis matrix β used to represent the motion trajectory and the maximum running time T can be used as the optimization variables, and the objective can be chosen to minimize the efficiency of the robot's movement along the trajectory.

[0101] The quantification of this operational efficiency can be considered from two aspects, including: the maximum running time of the entire motion trajectory and the energy required to control the robot along the trajectory. Expressed as an expression, we have: J(β,T)=G+q T T s In the formula, J represents operating efficiency, G represents energy, and T represents... s For the maximum running time, q T These are the weighting coefficients used to adjust the maximum runtime.

[0102] For example, by integrating the entire trajectory represented by the basis matrix and the maximum running time within that maximum running time, an expression for the energy can be constructed. If described by this expression, we have: Q is a weighting coefficient used to adjust the energy; where T s =T,

[0103] Among them, the superscript letter 's' corresponds to the trajectory of motion. The highest differential order differs by one, and s usually takes a value greater than 1. For example, if s = 2, then If s = 3, then It is understandable that, given any time t, by calculating The robot's position can be obtained through calculation. The robot's direction and speed can be obtained through calculation. Acceleration can be obtained. Since the robot's acceleration information is needed here, we can set s = 3. If... If we simplify it to a function η(t) that is dependent on time t, then the final form of the objective function can be:

[0104] in,

[0105] It should be noted that the objective function J(β,T) mentioned above also has some constraints, such as including, but not limited to, a first constraint related to trajectory smoothness and a second constraint related to motion safety.

[0106] The first constraint includes, but is not limited to, the states of the starting point and the ending point of the motion trajectory to be generated conforming to the current state and the target state of the robot, respectively, that is, the state of the starting point of the motion trajectory is the current state and the state of the ending point is the target state; and the state continuity between each two adjacent sub-trajectories in the motion trajectory to be generated, that is, the state at the last moment of the previous sub-trajectory is the same as the state at the beginning moment of the next sub-trajectory, including position, heading angle, velocity and acceleration, etc.

[0107] For example, to ensure that the starting state of the trajectory is the current state ξ0 and the ending state is the target state ξ f The corresponding design constraints are:

[0108] In the formula,

[0109] In the formula, and The current state ξ0 and the target state ξ are respectively. f First-order differentials, v0 and v f Let φ0 and φ be the velocities at the beginning and end points of the trajectory, respectively. f The posture at the starting point and the end point.

[0110] Due to trajectory Composed of multiple sub-trajectories To ensure the smoothness and continuity of the entire trajectory, an equality constraint is designed to guarantee a smooth connection between the j-th sub-trajectory and the (j+1)-th sub-trajectory, namely: In the formula, the superscript [d] indicates the order of differentiation of the sub-trajectory. For example, when d = 1, it means that the velocity and heading angle of the last moment (t = T′) of the j-th sub-trajectory and the initial moment (t = 0) of the (j+1)-th sub-trajectory are equal; similarly, when d = 2, it means that the accelerations at the corresponding moments are equal.

[0111] The second constraint includes, for example, the robot's own kinematic constraints, the robot being within a static safe space at any given time, and the minimum safe distance between robots being satisfied at any given time based on the trajectory information of other robots.

[0112] Taking a wheeled robot as an example, the kinematic constraints for the robot itself include, but are not limited to, ensuring that the velocity, acceleration, and / or curvature at any given time do not exceed the upper limit of the corresponding parameters of the robot. The construction of the above kinematic constraints is explained below.

[0113] Taking speed as an example, inequality constraint terms can be designed: In the formula, v max This is the maximum speed the robot can achieve. It is calculated based on the kinematic formulas for state parameters and control variables. Therefore:

[0114] Taking acceleration as an example, the acceleration 'a' of a wheeled robot includes lateral acceleration 'a'. n and longitudinal acceleration a t It is understandable that, based on the relationship between acceleration and velocity, the lateral acceleration a n and longitudinal acceleration a t These are the projections in the velocity normal direction and the velocity direction, respectively.

[0115] In some implementations, the lateral acceleration a n and longitudinal acceleration a t The corresponding constraint terms are:

[0116] In the formula

[0117] Taking curvature as an example, based on robot kinematics, we know the transformation relationship between curvature and motion state parameters. Therefore, we can design inequality constraint terms:

[0118] Among the constraints, the main requirement for the robot to be within the static safe space at any given time is that the robot must be safe relative to static obstacles. This can be calculated from two factors: the size and position of the robot E itself, and the set of convex polygons ∈ corresponding to the static safe space. For example, in one implementation, the robot can be defined as a first polygon matching the size of the robot. Exemplarily, this can be represented as the robot's polygon being composed of n... e Two-dimensional vertex Composition. For ease of calculation, let n be... e =4, as shown in Figure 12. In this case, the robot is defined as a rectangle. It is understood that the definition of a robot's polygon, including but not limited to rectangles, is only an example and not the only limitation.

[0119] It is understandable that as long as all vertices v of the first polygon of robot E are... e All are maximal convex polygons q in the set of convex polygons ∈ z Internally, this ensures that robot E is always in position q. z This ensures the robot's safety relative to static obstacles.

[0120] As an example, if the position of the robot is defined by the coordinates of a point on the motion trajectory... Using the rotation matrix R of the points, the corresponding constraint term expression can be constructed as follows:

[0121] In the formula,

[0122] Furthermore, the constraint on the minimum safe distance between robots primarily requires that the robot be safe relative to other moving robots, meaning that the robot should not collide with other robots at any time, as shown in Figure 13, where there is no collision at t=0 and t=t'. This can be calculated from two factors: the size of robot E itself and its position at time t, and the trajectory information S of other robots. Here, S is used as the basis for the constraint. i For the other robots numbered i, then for time t, the corresponding constraint expression can be constructed as follows: C Ψ,i (t)=d min -U i (t)≤0;

[0123] In the formula, d min U represents the minimum distance between robots to ensure safety. i (t) represents the number of robots E and the i-th other robot S at time t. iThe distance between them, n s This represents the total number of other robots.

[0124] To calculate U i As an alternative approach, considering that each robot has a certain size, we can first define the robot and other robots as a first polygon (denoted as A) and a second polygon (denoted as B) that match their respective sizes; then, we design a distance function to calculate the minimum distance between the two polygons A and B.

[0125] In some embodiments, regarding robot E and the i-th other robot S i The distance between them can be further divided into two cases for design. The first case is when there is no collision, as shown in Figure 14(a). In this case, U i (t)>0; where |U i The larger (t)| is, the greater C Ψ,i The smaller (t) is, the more likely a collision will occur, as shown in Figure 14(b), in which case U i (t)>0; where |U i The smaller (t)| is, the better C Ψ,i The smaller (t) is, the better. The above design allows C to be smaller. Ψ,i To minimize (t), the optimized motion trajectory should be as far away from other robots as possible.

[0126] For ease of calculation, an approximation method can be used: approximating the minimum distance between two polygons by using the distances between their edges and vertices. Exemplarily, the minimum distance Δ(A,B) between the two robots is approximated by calculating the set of distances between the edges and vertices of the first and second polygons and selecting the maximum value from this set. This can be expressed as:

[0127] In the formula, Refers to the p-th edge of the first polygon A. This refers to the q-th edge of the second polygon B. For example, as shown in Figure 15(a), B is located at... Below; as shown in Figure 15(b), A is located Below.

[0128] Furthermore, by selecting the maximum value among the minimum distances from two sets of points to lines, the distance between A and B can be approximated. It can be understood that there is a correspondence between the vertices of each robot's polygon and its occupied position. Therefore, the vertex and edge information of the first polygon A used for calculation at any time t can be expressed through trajectory information; similarly, the vertex and edge information of the second polygon B at any time t can also be directly expressed based on the trajectory information of the corresponding other robots, which will not be elaborated here.

[0129] Thus, the objective function and related constraints are constructed. Then, an open-source numerical optimization solver can be used to iteratively solve the objective function, ultimately yielding a set of optimization variables (β, T) that minimize the objective function within the constraints. These two known variables can then be used to determine a complete motion trajectory. This serves as the output of trajectory optimization.

[0130] It is understandable that by performing polygon modeling on the trajectories and movements of other robots, the robot considers its safety relative to other robots in time and space (as a constraint) when generating its own motion trajectory. When the robot moves along the trajectory, this safety ensures that no robot will collide with each other at any time. Furthermore, since the functional module for trajectory generation runs in real time, it ensures that each robot can adjust its own motion trajectory in a timely manner in scenarios with multiple robots, thereby achieving the effect that all robots can smoothly avoid each other and efficiently complete their own business objectives.

[0131] S150 controls the robot to perform target motion based on the motion trajectory and broadcasts the motion trajectory to the cluster network.

[0132] Demonstratively, through the optimized output motion trajectory By performing equally spaced sampling, we can obtain a trajectory S containing n discrete points, i.e., S = {s0,...,s...} w ,...,s n}, where the w-th discrete point s w =[t w ,x w ,y w ,φ w ] T , t w Let x represent the time at time w. w ,y w This indicates that the robot is at time t w Two-dimensional coordinates (corresponding to the X and Y directions respectively), φ w This indicates that the robot is at time t w The heading angle (i.e., attitude).

[0133] Therefore, the linear and angular velocities corresponding to the trajectories of these discrete points are calculated and sent to the robot's drive module to control the robot's movement. Simultaneously, the trajectories S of these discrete points are linked with the robot's own identification number to generate a message, which is then broadcast to the cluster network for use by other robots. This allows each robot in the cluster network to move efficiently without colliding with each other.

[0134] The robot motion control method of this application is deployed on each robot, and the robots communicate with each other through an agreed broadcast protocol to form a decentralized cluster network. Each robot in the network can receive trajectory information from other robots in real time and, based on task instructions, first plan a continuous safe path that allows it to avoid obstacles in the external environment. Then, through vectorization processing, a static safe space along this safe path is constructed to ensure that the robot's movement at any time will not result in a collision. Next, a trajectory optimization problem for motion efficiency is constructed, and a series of safety constraints are designed using the safe path, safe space, and trajectory information of other robots. Finally, by solving this optimization problem, the robot generates its own motion trajectory, which ensures both the smoothness of robot movement and improves work efficiency.

[0135] Figure 16 shows a schematic diagram of a robot motion control device 100 according to an embodiment of this application. Exemplarily, the robot motion control device 100 includes:

[0136] The data acquisition module 110 is used to respond to task instructions to acquire the robot's current state and information about external obstacles;

[0137] The path planning module 120 is used to plan a safe path for the robot to reach the target state indicated in the task instruction from the current state based on the obstacle information.

[0138] Vector processing module 130 is used to vectorize the obstacle information to construct a static safety space along the safety path;

[0139] The path optimization module 140 is used to optimize the robot's motion trajectory based on an objective function, wherein the objective function includes constraints constructed based on the safe path, the static safe space, and trajectory information of other robots in the received cluster network.

[0140] The motion control module 150 is used to control the robot to perform target motion according to the motion trajectory;

[0141] The trajectory broadcasting module 160 is used to broadcast the motion trajectory to the cluster network.

[0142] In some embodiments, the path planning module 120 includes a parameter definition unit and a state search unit. The parameter definition unit is used to determine the kinematic state parameters and control quantities of the robot based on the robot configuration, so as to construct the state transition equation of the robot. The state search unit is used to search all candidate states in each subsequent sampling period step by step according to the state transition equation, starting from the current state, and remove invalid candidate states that collide with any obstacle, until the target state indicated in the task instruction is found, so as to obtain a safe path.

[0143] In one optional embodiment, the obstacle information includes the location information of each obstacle on the map of the robot's environment. The vector processing module 130 includes a convex polygon determination unit and a safety space generation unit. The convex polygon determination unit is used to initially determine a convex polygon region without any obstacles in the map, starting from the current state, based on the location information of each obstacle. This convex polygon region is then expanded without collision to its maximum area to obtain the maximum convex polygon region. The safety space generation unit continues to search for the maximum convex polygon region for the next state around the safety path until the target state is reached. All obtained maximum convex polygon regions are described in vector form to obtain the static safety space.

[0144] In some alternative schemes, the path optimization module 140 obtains the robot's motion trajectory based on the objective function optimization, and previously includes:

[0145] The objective function is constructed by using the basis matrix representing the motion trajectory and the maximum running time as optimization variables, and minimizing the running efficiency of the motion trajectory as the optimization objective.

[0146] In some alternative schemes, the running efficiency of the motion trajectory includes the maximum running time of the entire motion trajectory and the energy required to control the robot to run along the motion trajectory; the expression for energy is constructed by integrating the trajectory based on the basis matrix and the maximum running time over the maximum running time.

[0147] In some alternative schemes, the constraints of the objective function include a first constraint related to trajectory smoothness and a second constraint related to motion safety. The first constraint includes that the starting and ending states of the trajectory to be generated conform to the robot's current and target states, respectively, and that state continuity is maintained between every two adjacent sub-trajectories in the trajectory to be generated. The second constraint includes constraints on the robot's own kinematic parameters, that the robot is within a static safe space at any given time, and that the minimum safe distance between robots is maintained at any given time based on the trajectory information of other robots.

[0148] In some alternative schemes, the construction of constraints for the robot being located within the static safety space at any given time includes: defining the robot as a first polygon matching the size of the robot; and constructing corresponding constraints based on the premise that all vertices of the first polygon are located within any maximally convex polygon region within the static safety space.

[0149] In some alternative solutions, constraints are constructed based on the trajectory information of other robots to ensure that the minimum safe distance between robots is satisfied at any given time. This includes: defining the robot and other robots as a first polygon and a second polygon that match their respective sizes; and constructing corresponding constraints based on ensuring that the minimum distance between the first polygon and the second polygon at any given time is not greater than a preset minimum safe distance.

[0150] In some alternative approaches, the minimum distance between the two robots is obtained by calculating the set of distances between the edges and vertices of the first and second polygons and selecting the maximum value from the set of distances.

[0151] In some alternative solutions, the robot's own kinematic parameters are constrained to ensure that the velocity, acceleration, and / or curvature at any given time do not exceed the upper limit of the corresponding parameters of the robot.

[0152] It is understood that the device in this embodiment corresponds to the robot motion control method in the above embodiments, and the options in the above embodiments are also applicable to this embodiment, so they will not be described again here.

[0153] This application also provides a computer-readable storage medium for storing the computer program used in the robot described above. For example, the computer-readable storage medium may include, but is not limited to, various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0154] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can also be implemented in other ways. The apparatus embodiments described above are merely illustrative. For example, the flowcharts and block diagrams in the accompanying drawings show the architecture, functionality, and operation of possible implementations of apparatus, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that, in alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.

[0155] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.

Claims

1. A robot motion control method, characterized in that, include: Respond to task instructions to obtain information about the robot's current state and external obstacles; Based on the obstacle information, plan a safe path for the robot to reach the target state indicated in the task instruction from the current state; The obstacle information is vectorized to construct a static safety space along the safety path; The robot's motion trajectory is obtained by optimizing an objective function, which includes constraints constructed based on the safe path, the static safe space, and trajectory information of other robots in the received cluster network. The robot is controlled to perform the target motion according to the motion trajectory, and the motion trajectory is broadcast to the cluster network.

2. The robot motion control method according to claim 1, characterized in that, The step of planning a safe path for the robot to reach the target state indicated in the task instruction from the current state based on the obstacle information includes: Based on the robot configuration, the kinematic state parameters and control variables of the robot are determined in order to construct the state transition equation of the robot; According to the state transition equation, starting from the current state, all candidate states in each subsequent sampling period are searched step by step according to a preset step size, and invalid candidate states that collide with any of the obstacles are removed, until the target state indicated in the task instruction is found, so as to obtain a safe path.

3. The robot motion control method according to claim 2, characterized in that, The robot is configured as a wheeled robot, and the state transition equation is constructed based on the kinematic state parameters and control variables of the wheeled robot. The state parameters include the position and attitude of the wheeled robot in the surrounding environment map, and the control quantities include the linear velocity and angular velocity of the wheeled robot.

4. The robot motion control method according to claim 1, characterized in that, The obstacle information includes the location information of each obstacle in the map of the robot's environment; the step of vectorizing the obstacle information to construct a static safety space along the safety path includes: Based on the location information of each obstacle, starting from the current state, a convex polygon region that does not contain any of the obstacles is initially determined in the map. The convex polygon region is then expanded without collision to the maximum area to obtain the maximum convex polygon region. Continue searching for the largest convex polygon region of the next state around the safe path until the target state is reached. Describe all the obtained largest convex polygon regions in vector form to obtain the static safe space.

5. The robot motion control method according to claim 4, characterized in that, Before vectorizing the obstacle information, the process also includes: The environment map of the robot is rasterized to obtain a raster map; Based on the obstacle information, the grid area occupied by each obstacle in the grid map is determined, wherein the convex polygon area does not contain any of the grid areas during the initial determination or the expansion.

6. The robot motion control method according to claim 1, characterized in that, The process of obtaining the robot's motion trajectory based on objective function optimization also includes, prior to: The objective function is constructed by using the basis matrix representing the motion trajectory and the maximum running time as optimization variables, and minimizing the running efficiency of the motion trajectory as the optimization objective.

7. The robot motion control method according to claim 6, characterized in that, The operating efficiency of the motion trajectory includes the maximum operating time of the entire motion trajectory and the energy required to control the robot to run along the motion trajectory; The expression for the energy is constructed by integrating the trajectory represented by the basis matrix and the maximum running time within the maximum running time.

8. The robot motion control method according to claim 1, characterized in that, The constraints of the objective function include a first constraint related to trajectory smoothness and a second constraint related to motion safety. The first constraint includes that the starting and ending states of the motion trajectory to be generated conform to the current state and the target state of the robot, respectively, and that the state continuity is satisfied between every two adjacent sub-trajectories in the motion trajectory to be generated; The second constraint includes the robot's own kinematic parameters, the robot being within the static safe space at any given time, and the minimum safe distance between robots being satisfied at any given time based on the trajectory information of other robots.

9. The robot motion control method according to claim 8, characterized in that, The construction of constraints for the robot's location within the static safety space at any given time includes: Define the robot as a first polygon that matches the robot's size; Based on the premise that all vertices of the first polygon are located inside any maximally convex polygon region within the static safety space, the corresponding constraint terms are constructed.

10. The robot motion control method according to claim 8, characterized in that, The construction of the constraint term that satisfies the minimum safe distance between robots at any time based on the trajectory information of other robots includes: The robot and the other robots are defined as a first polygon and a second polygon, respectively, matching their respective sizes. The corresponding constraint terms are constructed based on the principle that the minimum distance between the first polygon and the second polygon at any given time is not greater than a preset minimum safe distance.

11. The robot motion control method according to claim 10, characterized in that, The minimum distance between the two robots is obtained by calculating the set of distances between the edges and vertices of the first polygon and the second polygon, and selecting the maximum value from the set of distances.

12. The robot motion control method according to claim 8, characterized in that, The kinematic parameter constraints of the robot itself include: the velocity, acceleration and / or curvature at any time shall not exceed the upper limit value of the corresponding parameter of the robot.

13. A robot motion control device, characterized in that, include: The data acquisition module is used to respond to task instructions and obtain information about the robot's current state and external obstacles. The path planning module is used to plan a safe path for the robot to reach the target state indicated in the task instruction from the current state based on the obstacle information. The vector processing module is used to vectorize the obstacle information to construct a static safety space along the safety path; The path optimization module is used to optimize the robot's motion trajectory based on an objective function, wherein the objective function includes constraints constructed based on the safe path, the static safe space, and trajectory information of other robots in the received cluster network. The motion control module is used to control the robot to perform target motion according to the motion trajectory, and to broadcast the motion trajectory to the cluster network.

14. A robot swarm motion system, characterized in that, include: Several robots, which form a cluster network through a broadcast protocol; Each robot is used to receive real-time trajectory information from other robots in the cluster network, execute the robot motion control method as described in any one of claims 1-12 to generate its own motion trajectory to control the robot to perform its own target motion, and broadcast its own motion trajectory to the cluster network.

15. A robot, characterized in that, The robot includes a processor and a memory, the memory storing a computer program, and the processor executing the computer program to implement the robot motion control method according to any one of claims 1-12.

16. A computer-readable storage medium, characterized in that, It stores a computer program, which, when executed, implements the robot motion control method according to any one of claims 1-12.