Control method, device and equipment of mobile robot and readable storage medium

By acquiring the pose information of the global and local paths, and using change and deviation information to control the movement of the mobile robot, the problem of path stability of the mobile robot in complex environments is solved, and stable and accurate path following is achieved.

CN121523313APending Publication Date: 2026-02-13TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411105635.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-12
Publication Date
2026-02-13

AI Technical Summary

Technical Problem

How to control a mobile robot to move stably along a planned path, especially in complex environments to maintain the accuracy and stability of the path.

Method used

By acquiring the global path and first pose of the mobile robot, the local path is determined, and change and deviation information is used to control the movement of the mobile robot to ensure that it moves along the planned path.

Benefits of technology

This technology enables mobile robots to move stably along planned paths in complex environments, improving the accuracy and stability of their movements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121523313A_ABST
    Figure CN121523313A_ABST
Patent Text Reader

Abstract

The invention discloses a control method, device and equipment of a mobile robot and a readable storage medium, and belongs to the technical field of robots. The method comprises the following steps: acquiring a global path and a first pose of the mobile robot; according to the first pose, determining a local path expressed by the multiple pieces of target motion data; according to the multiple pieces of target motion data, change information is determined, and the change information is used for representing change conditions of the multiple pieces of target motion data; according to the global path and the local path, first deviation information is determined, and the first deviation information is used for representing the deviation condition between the local path and the global path; and determining multiple pieces of target motion data according to the first deviation information and the change information. According to the invention, the motion data of the multiple targets can be changed stably, so that the mobile robot can be controlled to move stably according to the planned path according to the motion data of the multiple targets.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of robotics, and in particular to a control method, apparatus, device, and readable storage medium for a mobile robot. Background Technology

[0002] In the field of robotics, motion planning for mobile robots is a common research problem. Mobile robot motion planning is a technique that plans a safe and constrained path for a mobile robot based on its environment and terrain. By planning the path, the mobile robot can move along that path; however, how to control the robot to move along the planned path is a problem that urgently needs to be solved. Summary of the Invention

[0003] This application provides a control method, apparatus, device, and readable storage medium for a mobile robot, which can control the mobile robot to move stably along a planned path. The technical solution includes the following contents.

[0004] On the one hand, a control method for a mobile robot is provided, the method comprising:

[0005] Obtain the global path and first pose of the mobile robot;

[0006] Based on the first pose, determine the local path expressed by multiple target motion data;

[0007] Based on the multiple target motion data, change information is determined, which is used to represent the changes in the multiple target motion data;

[0008] Based on the global path and the local path, a first deviation information is determined, which is used to indicate the deviation between the local path and the global path;

[0009] Based on the first deviation information and the change information, the motion data of the plurality of targets are determined;

[0010] The movement of the mobile robot is controlled based on the multiple target motion data.

[0011] On the other hand, a control device for a mobile robot is provided, the device comprising:

[0012] The acquisition module is used to acquire the global path and first pose of the mobile robot;

[0013] The determination module is used to determine a local path expressed by multiple target motion data based on the first pose;

[0014] The determining module is further configured to determine change information based on the plurality of target motion data, wherein the change information is used to indicate the change status of the plurality of target motion data;

[0015] The determining module is further configured to determine first deviation information based on the global path and the local path, wherein the first deviation information is used to indicate the deviation between the local path and the global path;

[0016] The determining module is further configured to determine the motion data of the plurality of targets based on the first deviation information and the change information;

[0017] The control module is used to control the movement of the mobile robot based on the multiple target motion data.

[0018] In one possible implementation, the acquisition module is configured to plan multiple candidate paths based on the starting point, destination, and global map of the mobile robot; determine the index of each candidate path, wherein the index of any candidate path characterizes the difficulty of the mobile robot moving along any candidate path; and select a global path that meets the index conditions from the multiple candidate paths based on the index of each candidate path.

[0019] In one possible implementation, the local path includes multiple predicted poses;

[0020] The determining module is used to determine the first predicted pose expressed by the first target motion data based on the first pose; and to determine the non-first predicted pose expressed by the non-first target motion data based on the previous predicted pose.

[0021] In one possible implementation, the local path includes multiple predicted poses, and the global path includes the global poses corresponding to each predicted pose.

[0022] The determining module is used to determine the first deviation information based on the difference between each predicted pose and the corresponding global pose.

[0023] In one possible implementation, the determining module is configured to determine change information based on the difference between every two adjacent target motion data in the plurality of target motion data.

[0024] In one possible implementation, the local path includes multiple predicted poses, and the global path includes the global poses corresponding to each predicted pose.

[0025] The determining module is used to determine second deviation information based on the last predicted pose and the last global pose, the second deviation information being used to indicate the deviation between the last predicted pose and the last global pose; and to determine the multiple target motion data based on the first deviation information, the second deviation information, and the change information.

[0026] In one possible implementation, the determining module is configured to determine constraint information based on the local path and the environmental information of the environment in which the mobile robot is located. The constraint information is used to constrain the target distance between the mobile robot and obstacles in the environment to be no less than a safe distance when the mobile robot moves on the local path. The module is also configured to determine the multiple target motion data based on the constraint information, the first deviation information, and the change information.

[0027] In one possible implementation, the device further includes a computing module;

[0028] The acquisition module is further configured to acquire a first polygon surrounding the mobile robot and a second polygon surrounding the obstacle;

[0029] The calculation module is used to calculate the target distance based on the first polygon and the second polygon.

[0030] In one possible implementation, the first polygon includes a plurality of first sides, and the second polygon includes a plurality of second sides;

[0031] The calculation module is used to calculate the first distance between each first edge and each second edge to obtain multiple first distances; and select the shortest first distance from the multiple first distances as the target distance.

[0032] In one possible implementation, any first edge includes two first vertices, and any second edge includes two second vertices;

[0033] The calculation module is used to calculate the second distance between each first vertex and any second side; calculate the third distance between each second vertex and any first side; and select the shortest distance from the second distance and the third distance as the first distance.

[0034] In one possible implementation, the plurality of target motion data are arranged in sequence number;

[0035] The control module is used to select target motion data that is located before a specified sequence number from the plurality of target motion data; and control the movement of the mobile robot according to the selected target motion data.

[0036] On the other hand, an electronic device is provided, comprising a processor and a memory, wherein the memory stores at least one computer program, which is loaded and executed by the processor to enable the electronic device to implement any of the above-described mobile robot control methods.

[0037] On the other hand, a computer-readable storage medium is also provided, wherein at least one computer program is stored in the computer-readable storage medium, the at least one computer program being loaded and executed by a processor to enable an electronic device to implement any of the above-described control methods for mobile robots.

[0038] On the other hand, a computer program is also provided, wherein the computer program is at least one, and the at least one computer program is loaded and executed by a processor to enable an electronic device to implement any of the above-described mobile robot control methods.

[0039] On the other hand, a computer program product is also provided, which stores at least one computer program, which is loaded and executed by a processor to enable an electronic device to implement any of the above-described mobile robot control methods.

[0040] The technical solution provided in this application brings at least the following beneficial effects:

[0041] In the technical solution provided in this application, a local path is determined based on the first pose of the mobile robot, and first deviation information is determined based on the global path and the local path. Since the first deviation information represents the deviation between the local path and the global path, multiple target motion data are determined through the first deviation information. This allows the mobile robot to be controlled to move on a local path that does not deviate from the global path, enabling the mobile robot to move according to the planned path.

[0042] Furthermore, change information is determined based on multiple target motion data. Since change information represents the changes in multiple target motion data, determining the multiple target motion data through change information can make the changes in multiple target motion data more stable. This allows for stable control of the mobile robot's movement based on multiple target motion data, improving the robot's motion stability. Attached Figure Description

[0043] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0044] Figure 1 This is a schematic diagram of a computer system provided in an embodiment of this application;

[0045] Figure 2 This is a flowchart of a mobile robot control method provided in an embodiment of this application;

[0046] Figure 3 This is a schematic diagram of a mobile robot based on an Ackerman structure provided in an embodiment of this application;

[0047] Figure 4 This is a schematic diagram of a mobile robot based on a single-vehicle structure provided in an embodiment of this application;

[0048] Figure 5 This is a schematic diagram illustrating the calculation of the distance between an obstacle and a mobile robot, provided in an embodiment of this application.

[0049] Figure 6 This is a schematic diagram illustrating the calculation of the distance between a first side and a second side, provided in an embodiment of this application.

[0050] Figure 7 This is a schematic diagram illustrating the calculation of the distance between a vertex and a line segment, provided in an embodiment of this application.

[0051] Figure 8 This is a flowchart of another mobile robot control method provided in the embodiments of this application;

[0052] Figure 9 This is a control framework diagram of a mobile robot provided in an embodiment of this application;

[0053] Figure 10 This is a schematic diagram of the structure of a control device for a mobile robot provided in an embodiment of this application;

[0054] Figure 11 This is a schematic diagram of the structure of a terminal device provided in an embodiment of this application;

[0055] Figure 12 This is a schematic diagram of the structure of a server provided in an embodiment of this application. Detailed Implementation

[0056] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0057] It should be noted that the terms "first," "second," etc., used in this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0058] In the field of robotics, motion planning for mobile robots is a common research problem. Mobile robot motion planning is a technique that plans a safe and constrained path for a mobile robot based on its environment and terrain. By planning the path, the mobile robot can move along that path; however, how to control the robot to move along the planned path becomes a problem that urgently needs to be solved. To address this, this application provides a mobile robot control method that can control the mobile robot to move stably along the planned path.

[0059] The following describes the computer system of the mobile robot control method provided in the embodiments of this application, such as... Figure 1 As shown, the computer system includes a client for a mobile robot 101 and a server 102 that provides services to the client. The method in this embodiment can be executed by the client, by the server 102, or by both the client and the server 102; this embodiment does not limit the specific execution method.

[0060] Server 102 provides background services to the client. In one possible implementation, server 102 undertakes the primary computational work, while the client undertakes secondary computational work. Alternatively, server 102 undertakes secondary computational work, while the client undertakes the primary computational work. Or, the client and server 102 collaborate on computation using a distributed computing architecture.

[0061] Optionally, the mobile robot 101 is equipped with a terminal device, or the mobile robot can connect to a terminal device, with the client installed and running on the terminal device. The terminal device is any electronic device that allows human-computer interaction with a user through one or more methods such as a keyboard, touchpad, remote control, voice interaction, or handwriting recognition. For example, the terminal device can be a smartphone, tablet, laptop, desktop computer, PC (Personal Computer), or smart vehicle system.

[0062] A terminal device can refer to one of multiple terminal devices; this embodiment uses only one terminal device as an example. Those skilled in the art will understand that the number of terminal devices can be more or less. For example, there may be only one terminal device, or there may be dozens or hundreds, or even more. This application embodiment does not limit the number or type of terminal devices.

[0063] Server 102 can be a single server, a server cluster consisting of multiple servers, or any of the following: a cloud computing platform or a virtualization center. This embodiment of the application does not limit this. Server 102 communicates directly or indirectly with terminal devices via a wired or wireless network. Server 102 has data receiving, data processing, and data sending functions. Of course, server 102 may also have other functions, which are not limited in this embodiment of the application.

[0064] In an exemplary embodiment of this application, the location of the mobile robot 101 can be used as the starting point, while the destination can be input by the target object. The client sends the starting point and destination to the server 102 via a wireless or wired network. The server 102 constructs a global path based on the starting point and destination. The mobile robot 101 is equipped with an image acquisition device, which acquires environmental images 103 of the environment in which the mobile robot 101 is located in real time. The client sends the pose of the mobile robot 101 and the environmental images 103 to the server 102 via a wireless or wired network. The server 102 determines the target motion data based on the environmental images 103, the global path, and the pose, and sends the target motion data to the client. The client controls the movement of the mobile robot 101 based on the target motion data to update the pose and environment of the mobile robot 101. Then, the client sends the updated pose and environmental images 103 to the server 102, so that the server 102 determines new target motion data based on the environmental images 103, the global path, and the pose, and the client controls the movement of the mobile robot 101 based on the target motion data. The above process is repeated until the mobile robot 101 reaches its destination.

[0065] In the above content, environmental image 103 corresponds to the environmental information mentioned below, and pose corresponds to the first pose mentioned below. Based on this, the implementation principle of the above content can be found in... Figure 2 The relevant method implementations will not be described in detail here.

[0066] Those skilled in the art should understand that the terminal device and server 102 described above are merely illustrative examples. Other existing or future terminal devices or servers that are applicable to this application should also be included within the scope of protection of this application, and are hereby incorporated by reference.

[0067] This application provides a control method for a mobile robot, which can be applied to the aforementioned computer system and can control the mobile robot to move stably along a planned path. Figure 2 Taking the flowchart shown as an example, the mobile robot control method of this application embodiment is executed by a terminal device and / or server 102. For ease of description, the terminal device and server 102 are collectively referred to as electronic devices. That is to say, the method of this application embodiment can be executed by electronic devices. Figure 2 As shown, the method includes the following steps.

[0068] Step 201: Obtain the global path and first pose of the mobile robot.

[0069] A mobile robot is a robot capable of movement, typically consisting of at least two wheels or moving parts. For example, a quadruped robot includes four moving parts (i.e., four leg components). Movement is controlled by manipulating the wheels or by controlling the swinging of the moving parts. The following section introduces mobile robots based on the Ackermann architecture, such as... Figure 3 As shown.

[0070] The Ackermann structure originated in automotive applications and is a method for achieving vehicle steering. When a car turns, the inner and outer tires have different turning angles, resulting in the inner tire having a smaller turning radius than the outer tire. Figure 3 In the diagram, the mobile robot is modeled as a rectangle with four vertices labeled A, B, C, and D. The mobile robot has four wheels: 301 and 302 are the two front wheels (also called guide wheels), and 303 and 304 are the two rear wheels (also called drive wheels). When the mobile robot turns, the innermost wheel is called the inner tire, and the outermost wheel is called the outer tire. Figure 3 In the diagram, the front wheel indicated by number 301 and the rear wheel indicated by number 303 are called inner tires, and the front wheel indicated by number 302 and the rear wheel indicated by number 304 are called outer tires.

[0071] The symbol L can be used to represent the wheelbase between the drive wheels and the guide wheels, and the symbol W can be used to represent the wheelbase between the drive wheels or the wheelbase between the guide wheels. f The distance between the guide wheel and the front edge of the mobile robot is indicated by the symbol L. r This represents the distance between the drive wheel and the rear edge of the mobile robot. A two-dimensional world coordinate system is established, specifically the XOY coordinate system, with O as the origin, X as the horizontal coordinate, and Y as the vertical coordinate. In this world coordinate system, the mobile robot's coordinates are (x, y), representing its position within the world coordinate system. Figure 3 In the diagram, this position is the center of the line connecting the two drive wheels. (Use the symbol...) This indicates the orientation of the mobile robot, which generally refers to the orientation of the drive wheels. The symbol δ represents the turning angle of the mobile robot, which is the angle between the orientation of the guide wheels and the orientation of the drive wheels. The symbol v is used to represent this. f The speed of the guide wheel is indicated by the symbol v. r This indicates the speed of the drive wheels.

[0072] Can be Figure 3 The structure shown is reasonably simplified to reduce the Ackerman-based mobile robot to a vehicle-based mobile robot, such as... Figure 4 As shown. The simplified process is as follows: For a mobile robot based on the Ackerman structure, only one wheel from each of the front and rear wheels is placed on the central axle of the mobile robot, thus obtaining a mobile robot based on a single-vehicle structure. For example... Figure 4 In this context, the mobile robot based on a single-vehicle structure includes only the front wheel (as indicated by reference numeral 401) and the rear wheel (as indicated by reference numeral 402). The meanings of each symbol can be found in [link to documentation]. Figure 3 The relevant descriptions will not be repeated here.

[0073] Generally, a straight line perpendicular to the wheelbase L between the drive wheel and the guide wheel is drawn. A point on this line is connected to the guide wheel, and the angle between the line connecting this point and the guide wheel and the straight line is equal to the robot's turning angle δ. This point is called the Instantaneous Center of Rotation (ICR). The distance between the Instantaneous Center of Rotation and the drive wheel is called the turning radius R, and the robot's orientation... The ratio of angular velocity to time t is called angular velocity ω. Furthermore, the steering angle δ, wheelbase L, and turning radius R satisfy the following formula (1).

[0074]

[0075] Under normal circumstances, the speed v of the guide wheel f and the speed v of the drive wheel r For ease of description, the speed v of the mobile robot is used to represent v in the embodiments of this application and hereinafter. f and v r Based on this, the mobile robot satisfies the kinematic equations shown in formula (2).

[0076]

[0077] in, The component of velocity of a mobile robot along the X-axis in the world coordinate system can be denoted as v. x , The component of velocity of a mobile robot along the Y-axis in the world coordinate system can be denoted as v.y , The angular velocity of a mobile robot can be denoted as ω. tan is the tangent symbol, sin is the sine symbol, and cos is the cosine symbol. The meanings of the remaining parameters are described above and will not be repeated here.

[0078] In this embodiment, the pose of a mobile robot refers to its position and orientation in space. Generally, the position of the mobile robot is represented by its coordinates (x, y) in the world coordinate system, and its orientation relative to the world coordinate system is used. This represents the pose of the mobile robot. Based on this, the pose of the mobile robot in the world coordinate system is: The pose of a mobile robot can be represented by the symbol X, and

[0079] Because mobile robots have the ability to move, their pose can change over time. Electronic devices can acquire the first pose of the mobile robot at a certain point in time (such as the current point in time). The method of acquisition is not limited here. For example, if the mobile robot is equipped with an inertial sensor, the electronic device can determine the first pose based on the data from the inertial sensor. Alternatively, the electronic device can determine the first pose based on the previous pose according to kinematic formulas, and so on.

[0080] In addition, the electronic device can also acquire the global path of the mobile robot, which is a path from the starting point to the destination. The mobile robot can move from the starting point to the destination along the global path. The method of acquiring the global path is not limited here. For example, the electronic device can acquire the global path input by the target object, or the electronic device can plan the global path based on the global map, the starting point, and the destination, and so on.

[0081] In one possible implementation, step 201, "obtaining the global path of the mobile robot," includes steps 2011 to 2013 (not shown in the figure).

[0082] Step 2011: Based on the mobile robot's starting point, destination, and global map, plan multiple candidate paths.

[0083] The starting point and destination can be the same or different. The electronic device can obtain the starting point and destination input by the target object, or it can randomly determine the starting point and destination, etc. For example, the electronic device can use the location of the mobile robot as the starting point and obtain the destination input by the target object. In addition, the electronic device can also obtain a global map, and the method of acquisition is not limited here. For example, the electronic device can obtain a global map input by the target object, or the electronic device can obtain a global map from the Internet.

[0084] The global map includes a starting point and a destination. Based on the starting point and destination on the global map, electronic devices can plan multiple passable candidate paths. Each candidate path is a passable path from the starting point to the destination.

[0085] Step 2012: Determine the index of each candidate path. The index of any candidate path represents the difficulty of the mobile robot moving along any candidate path.

[0086] Optionally, the index of the candidate path is positively correlated with the difficulty of the mobile robot moving along the candidate path; that is, the larger the index of the candidate path, the greater the difficulty of the mobile robot moving along the candidate path. Alternatively, the index of the candidate path is negatively correlated with the difficulty of the mobile robot moving along the candidate path; that is, the larger the index of the candidate path, the lower the difficulty of the mobile robot moving along the candidate path.

[0087] The method for determining the indicators is not limited here. For example, indicator values ​​for multiple road types can be set, and these values ​​characterize the difficulty level of each road type. Based on the indicator values ​​for the road types of the candidate paths, the indicators for the candidate paths are determined.

[0088] For example, index values ​​can be set for different road types such as straight, turning, flat road, mountain road, and gravel road. For each candidate path, the path is divided into multiple segments. The index value for each segment is determined based on the set index values. Then, the index values ​​of all segments are summed to obtain the index of the candidate path. Assuming that the index value for straight is 1, the index value for turning is 2, and a candidate path includes three turns and four straight sections, then the index of the candidate path is: 4 × 1 + 3 × 2 = 10.

[0089] It should be noted that there are other ways to determine the indicators in practical applications, which will not be elaborated here.

[0090] Step 2013: Based on the indicators of each candidate path, select the global path that meets the indicator conditions from multiple candidate paths.

[0091] If the metrics of a candidate path are positively correlated with its difficulty, then the metric that meets the condition is the smallest. That is, the candidate path with the smallest metric is selected from all candidate path metrics, and the candidate path corresponding to the smallest metric is the path with the lowest difficulty, which is the global path.

[0092] If the metrics of a candidate path are negatively correlated with its difficulty, then the metric that satisfies the condition is the largest metric. That is, the candidate path with the largest metric is selected from all candidate path metrics, and the candidate path corresponding to the largest metric is the path with the lowest difficulty, which is the global path.

[0093] By determining the global path with the lowest difficulty from multiple candidate paths, it is beneficial to control the robot to move quickly and stably along the global path, thereby reducing the difficulty of the robot's movement and improving its efficiency.

[0094] Step 202: Based on the first pose, determine the local path expressed by multiple target motion data.

[0095] A local path is a path originating from the position in the first pose. It can be expressed through multiple target motion data and represented in the form of a mathematical model (or mathematical formula). This target motion data is the data used to control the mobile robot's movement along the local path. For example, suppose the mobile robot's movement is controlled based on its velocity v and turning angle δ, and... Then U represents the target motion data, and the local path can be a mathematical model expressed by multiple Us.

[0096] This application does not limit the method of determining the local path. For example, the local path includes multiple predicted poses, and step 202 includes steps 2021 to 2022 (not shown in the figure).

[0097] Step 2021: Determine the first predicted pose expressed by the first target motion data based on the first pose.

[0098] In this embodiment, by controlling the mobile robot to move according to the first target motion data, the pose of the mobile robot can be changed from the first pose to the first predicted pose. Assume the first pose is X. k The first predicted pose is X k+1 ,but in, dt is the first derivative of the pose, representing the rate of change of the pose, and dt represents the derivative with respect to time t. Based on formula (2), the formula for the first predicted pose can be transformed to obtain the following formula (3).

[0099]

[0100] Where, x k+1 y k+1 , The x-coordinate, y-coordinate, and orientation of the first predicted pose are represented sequentially. E 3×3 The identity matrix represents a 3×3 matrix. Represents the orientation in the first pose, v k δ k The velocity and turning angle in the first target motion data are represented sequentially. From formula (3), it can be seen that the first predicted pose X... k+1 It is based on the first posture X k Determined, through the first target motion data vk δ k The mathematical model used to express this.

[0101] Step 2022: Determine the non-first predicted pose expressed by the non-first target motion data based on the previous predicted pose.

[0102] By controlling the mobile robot to move according to the second target motion data, the robot's pose can be changed from the first predicted pose to the second predicted pose. Following the implementation principle of step 2021, the second predicted pose, expressed through the second target motion data, can be determined based on the first predicted pose, and the second predicted pose is represented in the form of a mathematical model.

[0103] Similarly, by controlling the mobile robot to move according to the third target motion data, the pose of the mobile robot can be changed from the second predicted pose to the third predicted pose. Following the implementation principle of step 2021, the third predicted pose, expressed through the third target motion data, can be determined based on the second predicted pose, and the third predicted pose is represented in the form of a mathematical model.

[0104] Similarly, each predicted pose can be determined according to the implementation principle of step 2021, and the determination method will not be repeated here.

[0105] Generally, a local path is a continuous trajectory that extends over time, and can be viewed as a continuous-time nonlinear system model. In this embodiment, the forward Euler method is used to discretize the system model at fixed sampling intervals, transforming the continuous system model into a discrete mathematical model. In other words, the local path is a discrete model including multiple predicted poses. Representing the local path through multiple predicted poses simplifies the local path and ensures its accuracy.

[0106] Step 203: Determine change information based on multiple target motion data. The change information is used to represent the changes in the multiple target motion data.

[0107] In this embodiment, model predictive control (MPC) technology can be used to construct change information based on multiple target motion data. MPC derives the state expression for a future time period based on the state transition model at each sampling time, solves for the control quantity for that period, and aims to approximate the target state as closely as possible while minimizing control changes and satisfying the threshold range constraint of the control output. MPC can be expressed as formulas (4) to (8) shown below.

[0108] min U J(X,U)(4)

[0109]

[0110] X l ≤X≤X u U l ≤U≤U u (6)

[0111] g l ≤g(X,U)≤g u (7)

[0112] h(X,U)=H (8)

[0113] Where J(X,U) is the objective function to be optimized, X is the state variable, and U is the control variable. Let f(X,U) be the first derivative of the state variable. A satisfactory prediction model, also known as a state transition model, uses "st" as an abbreviation for "subject to (such that)," indicating that it is subject to constraints. X l X u These are the lower and upper bounds of X, respectively, and U. l U u These are the lower and upper bounds of U, respectively. g(X,U) represents the inequality constraint, g l g u H and H represent the lower and upper bounds of the values ​​in the inequality constraints, respectively. The upper bound is a value greater than or equal to all elements in the set, and the lower bound is a value less than or equal to all elements in the set. h(X,U) represents the equality constraint, and H represents the value in the equality constraint.

[0114] In this example, pose is the state variable, and motion data is the control variable. Since formula (3) constrains the relationship between pose, the first derivative of pose, and target motion data, while formula (5) constrains the state variable X and the first derivative of the state variable... The relationship between the control quantity U and the above formula (3) is the prediction model corresponding to the above formula (5) determined based on MPC technology.

[0115] This application does not limit the method for determining change information. For example, the standard deviation or variance of multiple target motion data is used as change information. The objective function shown in formula (4) above includes change information, so that the objective function can represent the changes in multiple target motion data.

[0116] In one possible implementation, step 203 includes: constructing change information based on the difference between every two adjacent target motion data in the multiple target motion data.

[0117] In this example, multiple target motion data and multiple predicted poses are associated one-to-one. Each target motion data is used to control the robot's movement, causing the robot's pose to change to the corresponding predicted pose. Assuming there are N predicted poses, there are also N target motion data. Change information can be constructed based on the difference between every two adjacent target motion data (i.e., through the differences between N target motion data). Since the target motion data includes velocity and steering angle, the difference between two motion data includes the difference between two velocities and the difference between two steering angles. Optionally, the change information is shown in the following formula (9).

[0118]

[0119] Among them, J dynamic For information about changes, ω vel The weighting coefficient ω represents the velocity. δ The weighting coefficients represent the steering angles. v(i+1) represents the velocity in the (i+1)th target motion data, and v(i) represents the velocity in the ith target motion data. δ(i+1) represents the steering angle in the (i+1)th target motion data, and δ(i) represents the steering angle in the ith target motion data. i takes any positive integer from k to k+N-1.

[0120] By constructing change information through the difference between every two adjacent target motion data, the change information can represent the changes in adjacent target motion data, thereby representing the changes in multiple target motion data, so as to make the multiple target motion data change smoothly and achieve more stable control of the mobile robot.

[0121] Step 204: Determine the first deviation information based on the global path and the local path. The first deviation information is used to indicate the deviation between the local path and the global path.

[0122] This application does not limit the method for determining the first deviation information. For example, a portion of the road segment is determined from the global path, and the first deviation information is constructed based on this portion of the road segment and the local path. The method for determining the road segment is not limited here; for example, the location closest to the mobile robot's position is determined from the global path, and a portion of the road segment starting from that location is selected from the global path. In practical applications, the first deviation information can be constructed based on more information, such as the first pose, the global path, and the local path.

[0123] The objective function shown in formula (4) above includes first deviation information, so that the objective function can represent the deviation between the local path and the global path.

[0124] In one possible implementation, the local path includes multiple predicted poses, and the global path includes the global poses corresponding to each predicted pose. Step 204 includes: constructing first deviation information based on the difference between each predicted pose and its corresponding global pose.

[0125] As mentioned above, the first pose is X k The local path determined based on the first pose includes multiple predicted poses, which are X... k+1 To X k+N N (a positive integer) represents the number of predicted poses. Since the total number of the first pose and predicted poses is N+1, N+1 global poses can be determined from the global path. Each global pose includes a location on the global path and its corresponding orientation. The N+1 global poses can be determined as follows: First, determine the location closest to the mobile robot's position from the global path. Then, starting from this location, gradually determine N locations along the global path at fixed sampling intervals (e.g., fixed movement time or fixed length), resulting in a total of N+1 locations. For each location, the orientation pointing from that location to the next location is determined as the orientation corresponding to that location.

[0126] Next, based on the difference between the first pose and the first global pose, and the difference between the nth (n is a positive integer from 1 to N) predicted pose and the (n+1)th global pose, the first deviation information is constructed. Since pose includes position and orientation, and position includes horizontal and vertical coordinates, the difference between two poses includes the difference between the two horizontal coordinates, the difference between the two vertical coordinates, and the difference between the two orientations. Optionally, the first deviation information is shown in the following formula (10).

[0127]

[0128] Among them, J err This is the first deviation information, used to indicate the deviation between the local path and the global path. ω pos The weighting coefficient corresponding to the position is a constant. The weighting coefficients representing the orientation are also constants. x(i), y(i) The x-coordinate, y-coordinate, and orientation of the i-th pose are represented sequentially, where i = k, and the i-th pose is the first pose; if i takes any value from k+1 to k+N, the i-th pose is the predicted pose. r (i), y r (i) The x-coordinate, y-coordinate, and orientation are sequentially represented in the i-th global pose.

[0129] The first deviation information is constructed by the difference between each predicted pose and the corresponding global pose. This first deviation information can represent the deviation between the predicted pose on the local path and the global pose on the global path, thereby representing the deviation between the local path and the global path. This ensures that the local path does not deviate from the global path, thus enabling the mobile robot to reach its destination.

[0130] Step 205: Determine multiple target motion data based on the first deviation information and change information.

[0131] Since the first deviation information is constructed based on the local path, and the local path is expressed through multiple target motion data, and the change information is constructed based on multiple target motion data, multiple target motion data can be obtained by solving the first deviation information and the change information. The solution method is not limited here.

[0132] In practical applications, multiple target motion data can be determined based on more information. Several possible implementation methods are shown below, as shown in implementation method A and implementation method B respectively.

[0133] In implementation method A, the local path includes multiple predicted poses, and the global path includes the global poses corresponding to each predicted pose. Step 205 includes: determining second deviation information based on the last predicted pose and the last global pose, the second deviation information being used to represent the deviation between the last predicted pose and the last global pose; and determining multiple target motion data based on the first deviation information, the second deviation information, and the change information.

[0134] As mentioned above, pose includes position and orientation. A second deviation information can be constructed based on the differences between the position in the last predicted pose and the position in the last global pose, as well as the differences between the orientation in the last predicted pose and the orientation in the last global pose. This second deviation information represents the deviation between the last predicted pose and the last global pose. Since position includes both horizontal and vertical coordinates, the difference between two positions includes the difference between the two horizontal coordinates and the difference between the two vertical coordinates.

[0135] In practical applications, a second deviation information can be constructed based on more information. For example, the second deviation information can be constructed based on the last predicted pose, the last global pose, the last target motion data, and the set motion data. This second deviation information can represent the deviation between the last predicted pose and the last global pose, as well as the deviation between the last target motion data and the set motion data. The set motion data is pre-set motion data or motion data input from the target object. For example, the motion data includes the steering angle, which is pre-set to 0.

[0136] For example, the second deviation information can be constructed according to the formula (11) shown below.

[0137]

[0138] Among them, J terminal This indicates the second deviation information. ω tp The weighting coefficient corresponding to the position is a constant. The weighting coefficient representing the orientation is also a constant, ω. tδ The weighting coefficients representing the steering angle are constants. x(k+N), y(k+N), The x-coordinate, y-coordinate, and orientation represent the last predicted pose. r (k+N), y r (k+N) The x-coordinate, y-coordinate, and orientation are represented in the last global pose. δ(k+N) represents the turning angle in the last target motion data; in this example, the turning angle is set to 0.

[0139] Optionally, the objective function shown in formula (4) above includes first deviation information, second deviation information, and change information, so that the objective function can represent the deviation between the local path and the global path, the change of multiple target motion data, and the deviation between the last predicted pose and the last global pose (as well as the deviation of the last steering angle from 0, etc.). For example, J(X,U)=J err (X)+J dynamic (U)+J terminal J(X,U). Here, J(X,u) represents the objective function, which is related to the state variable X and the control variable U. err (X) represents the first deviation information and is related to the state variable X. J dynamic (U) represents change information and is related to the control variable U. J terminal (X, U) represents the second deviation information, which is related to the state variable X and the control variable U. The state variable X includes the first pose and multiple predicted poses, while the control variable U includes multiple target motion data. These multiple target motion data can be obtained by solving the objective function. Optionally, the multiple target motion data can be obtained by minimizing the value of the objective function. That is, the multiple target motion data can be obtained by minimizing the sum of the first deviation information, the second deviation information, and the change information.

[0140] The second deviation information is constructed by using the last predicted pose and the last global pose. This second deviation information represents the deviation between the last predicted pose and the last global pose, ensuring that the final predicted pose of the mobile robot reaches the final global pose, thus enabling the mobile robot to reach its destination. Furthermore, the second deviation information can also represent the deviation between the last target motion data and the set motion data, ensuring that the final motion data of the mobile robot reaches the set motion data, thereby enabling stable movement of the mobile robot.

[0141] In implementation method B, step 205 includes: determining constraint information based on the local path and the environmental information of the environment in which the mobile robot is located; the constraint information is used to constrain the target distance between the mobile robot and obstacles in the environment to be no less than the safe distance when the mobile robot moves on the local path; and determining multiple target motion data based on the constraint information, the first deviation information, and the change information.

[0142] In this embodiment, the electronic device can determine a local map based on the mobile robot's location and a global map. Alternatively, the mobile robot may have an image acquisition device to acquire environmental images. Environmental information includes at least one of a local map or an environmental image. Based on the environmental information, it can determine whether obstacles exist in the environment and obtain the appearance and dimensions of the obstacles. For example, if the mobile robot has a point cloud acquisition device, and if it is determined from the environmental information that obstacles exist, the point cloud acquisition device can acquire point cloud data of the obstacles, and the appearance and dimensions of the obstacles can be determined from the point cloud data.

[0143] It is understood that there is at least one obstacle in the environment. For any obstacle, a target distance between the mobile robot and the obstacle can be constructed based on information such as the local path, the mobile robot's external dimensions, and the obstacle's external dimensions. The method of constructing the target distance is not limited here; for example, a circumscribed circle is determined based on the mobile robot's external dimensions and placed on the local path. Similarly, a circumscribed circle is determined based on the obstacle's external dimensions. Then, the target distance is determined based on the circumscribed circle corresponding to the obstacle and the circumscribed circle on the local path.

[0144] In one possible implementation, the method of this application embodiment further includes steps S1 to S2 (not shown in the figure), where steps S1 and S2 are performed before the step of "constructing constraint information based on the local path and the environmental information of the environment in which the mobile robot is located".

[0145] Step S1: Obtain the first polygon surrounding the mobile robot and the second polygon surrounding the obstacle.

[0146] In this embodiment, the electronic device can acquire the first polygon input by the target object. Alternatively, the electronic device can determine the first polygon surrounding the mobile robot based on information such as the appearance dimensions of the mobile robot; the method of determining the first polygon is not limited here. For example, some software such as OpenCV (a software applied to image processing and computer vision) is configured with a contour circumscribed polygon function, which can be used to determine the first polygon based on the contour of the mobile robot. The first polygon includes, but is not limited to, any one of triangles, quadrilaterals, pentagons, etc. Optionally, the first polygon is a convex polygon.

[0147] Similarly, electronic devices can determine a second polygon surrounding an obstacle based on information such as the obstacle's dimensions, like point cloud data. The method for determining the second polygon will not be elaborated here. The second polygon may include, but is not limited to, any of the following: triangle, quadrilateral, or pentagon. Optionally, the second polygon may be a convex polygon. The second polygon and the first polygon may have the same or different shapes.

[0148] Step S2: Calculate the target distance based on the first polygon and the second polygon.

[0149] In this embodiment, the mobile robot is approximated as a first polygon, and the obstacle as a second polygon. This approximates the mobile robot and the obstacle as simple geometric shapes that are closest to their actual shapes, reducing the difficulty of calculating the target distance and improving its accuracy. By accurately calculating the target distance, the obstacle avoidance algorithm of the mobile robot is made more precise, supporting autonomous navigation in more complex and narrow environments. This allows relatively narrow paths to be included in the robot's movement path, enabling the robot to traverse narrow paths without detours and improving its movement efficiency.

[0150] This application does not limit the method of calculating the target distance in its embodiments. For example, the centroids of the first polygon and the second polygon are determined, and the distance between the two centroids is taken as the target distance; alternatively, the shortest distance between the first polygon and the second polygon is determined, and the shortest distance is taken as the target distance. Figure 5 As shown, the obstacle is approximated as a triangle, and the mobile robot is approximated as a quadrilateral. The target distance is the shortest distance between the triangle and the quadrilateral.

[0151] Optionally, the first polygon includes multiple first sides, and the second polygon includes multiple second sides. Step S2 includes: calculating the first distance between each first side and each second side to obtain multiple first distances; selecting the shortest first distance from the multiple first distances as the target distance.

[0152] By breaking down the target distance between the mobile robot and the obstacle into the shortest distance between each edge of the first polygon and each edge of the second polygon, the calculation difficulty of the target distance is reduced, and the control efficiency of the mobile robot is improved.

[0153] Since a polygon is a closed geometric solid, both the first and second sides are line segments, and the first distance is the distance between the two line segments. If the two line segments intersect, the distance between them is 0; if they do not intersect, the first distance between them can be the distance between their midpoints or the shortest distance between them. Figure 6 As shown, suppose there are distances d1, d2, d3, d4 between the first side l1 and the second side l2. Then the first distance d(l1, l2) between the first side l1 and the second side l2 satisfies: d(l1, l1) = min(d1, d2, d3, d4). That is, the minimum value among d1, d2, d3, d4 is the first distance d(l1, l2).

[0154] In an exemplary embodiment, any first edge includes two first vertices, and any second edge includes two second vertices; calculating the first distance between each first edge and each second edge includes: calculating the second distance between each first vertex and any second edge; calculating the third distance between each second vertex and any first edge; and selecting the shortest distance from the second distance and the third distance as the first distance.

[0155] By decomposing the first distance between the edges of the first polygon and the edges of the second polygon into the shortest distance between vertices and edges, the computational difficulty of the first distance is reduced and the computational efficiency of the first distance is improved.

[0156] Since both the first and second sides are line segments, and a line segment includes two vertices, the first side includes two first vertices, and the second side includes two second vertices. The first distance is the shortest distance between a vertex and a line segment. The shortest distance between a vertex and a line segment can be divided into three cases, such as... Figure 7 As shown. The line passing through vertex p is perpendicular to the line containing line segment l. If the perpendicular point lies on the backward extension of one vertex of line segment l, as... Figure 7 As shown in (1), the shortest distance between vertex p and line segment l is the distance between vertex p and this vertex. If the perpendicular point is located on line segment l, as shown in (1), the shortest distance between vertex p and line segment l is the distance between vertex p and this vertex. Figure 7 As shown in (2), the shortest distance between vertex p and line segment l is the distance between vertex p and the perpendicular point. If the perpendicular point is located on the opposite extension line of the vertex on the other side of line segment l, as shown in (2), the shortest distance between vertex p and line segment l is the distance between vertex p and the perpendicular point. Figure 7 As shown in (3), the shortest distance between vertex p and line segment l is the distance between vertex p and this vertex.

[0157] Based on the above principle, for a first edge and a first-second edge, the shortest distance between a first vertex and a second edge can be calculated to obtain the second distance. Since one first edge corresponds to two second vertices, there are two second distances between a first edge and a second edge. Similarly, the shortest distance between a second vertex and a first edge can be calculated to obtain the third distance, which consists of two distances. The shortest distance can be selected from the second and third distances as the first distance between the first and second edges.

[0158] For the first polygon and the second polygon, the shortest first distance can be selected based on the first distance between each first side and each second side to obtain the target distance between the first polygon and the second polygon, that is, the target distance between the obstacle and the mobile robot.

[0159] Next, constraint information is constructed based on the target distance and the safety distance to ensure that the target distance is not less than the safety distance. Optionally, the constraint information includes first sub-constraint information, which is: d(O j ,X i )≥d safe ,i=k,k+1,…,k+N,j=1,2,…,m, among which, d(O j ,X i ) represents the pose of the mobile robot when it is X i At that time, the mobile robot encounters the j-th obstacle O. j The target distance between them, d safe The safe distance is represented by m, where m is the number of obstacles.

[0160] By constraining the target distance between the mobile robot and obstacles to be no less than a safe distance using constraint information, the probability of collision between the mobile robot and obstacles can be reduced, thereby improving the safety and stability of the mobile robot's movement.

[0161] In practical applications, constraint information also includes other sub-constraint information. For example, constraint information may include at least one of the second to fourth sub-constraint information. The second sub-constraint information is used to constrain the lower and upper bounds of the pose, the third sub-constraint information is used to constrain the lower and upper bounds of the target motion data, and the fourth sub-constraint information is used to constrain the lower and upper bounds of the change in the target motion data. By using the second to fourth sub-constraint information, it is ensured that the pose, target motion data, and the change in the target motion data conform to the motion performance of the mobile robot, which helps improve the accuracy of the planning results.

[0162] Optionally, the second sub-constraint information is shown in formula (12), and the third sub-constraint information is shown in formula (13). Optionally, the fourth sub-constraint information is shown in formula (14). Wherein, the second and third sub-constraint information correspond to the above formula (6), and the fourth sub-constraint information corresponds to the above formula (7).

[0163]

[0164] Among them, X l X u These are the lower and upper bounds of the pose, respectively, x l y l , The x, y, and orientation are respectively represented in the lower bound of the numerical values. i y i , The x, y, and orientation coordinates in the pose are respectively represented by the x-coordinate, y-coordinate, and orientation. u y u , These represent the x-coordinate, y-coordinate, and orientation within the numerical upper bound, respectively. U l U u These are the lower and upper bounds of the target motion data, respectively, v l δ l V represents the velocity and steering angle in the lower numerical bound, respectively. i δ i These represent the velocity and steering angle from the motion data, respectively. u δ u These represent the velocity and steering angle within the numerical upper bound, respectively. i+1 -v i a is the first difference between adjacent velocities (i.e., the change in velocity). l a u These are the lower and upper bounds of the first difference, respectively. δ i+1 -δ i This is the second difference between adjacent steering angles (i.e., the change in steering angle). These are the lower and upper bounds of the second difference, respectively. Wherein, if the time difference between adjacent velocities and adjacent steering angles is one unit of time, then the first difference is the acceleration, and the second difference is the rate of change of the steering angle.

[0165] Subsequently, by solving for the first deviation information, change information, and constraint information, multiple target motion data can be obtained. The solution method will not be elaborated here. In practical applications, the first deviation information, second deviation information, change information, and constraint information can be solved to obtain multiple target motion data.

[0166] Step 206: Control the movement of the mobile robot based on multiple target motion data.

[0167] In this embodiment, the movement of the mobile robot can be controlled based on the first target motion data to change the robot's pose, making the changed pose approach the first predicted pose. Then, based on the second target motion data, the movement of the mobile robot can be controlled to change the robot's pose, making the changed pose approach the second predicted pose. This process is repeated to gradually control the mobile robot to move along a local path.

[0168] In one possible implementation, multiple target motion data are arranged in sequence. Step 206 includes: selecting the target motion data that is located before a specified sequence number from the multiple target motion data; and controlling the movement of the mobile robot according to the selected target motion data.

[0169] The specified sequence number can be a pre-set sequence number or a sequence number input by the target object. The movement of the mobile robot is controlled based on the target motion data preceding the specified sequence number. For example, if the specified sequence number is 2, then the target motion data preceding the specified sequence number is the first target motion data, and the movement of the mobile robot is controlled based on this first target motion data.

[0170] Understandably, for multiple target motion data arranged in sequence, the higher the sequence number, the lower the accuracy of the target motion data. Therefore, controlling the mobile robot's movement based on the target motion data preceding a specified sequence number can improve the robot's motion accuracy and ensure that the robot moves stably along the planned path.

[0171] It should be noted that steps 201 to 206 can be executed cyclically. That is, after executing steps 201 to 206, if the first pose changes, steps 201 to 206 can be executed again based on the changed first pose to achieve real-time navigation. During the loop, the global path can remain unchanged or be updated. For example, the global path can be updated once every N iterations of steps 201 to 206, or it can be updated at fixed intervals.

[0172] All information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application have been authorized by the user or fully authorized by all parties, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant regions. For example, environmental information, maps, etc. involved in this application were obtained with full authorization.

[0173] In the above method, a local path is determined based on the first pose of the mobile robot, and first deviation information is determined based on the global path and the local path. Since the first deviation information represents the deviation between the local path and the global path, multiple target motion data are determined through the first deviation information. This allows the mobile robot to be controlled to move on a local path without deviating from the global path, enabling the mobile robot to move according to the planned path.

[0174] Furthermore, change information is determined based on multiple target motion data. Since change information represents the changes in multiple target motion data, determining the multiple target motion data through change information can make the changes in multiple target motion data more stable. This allows for stable control of the mobile robot's movement based on multiple target motion data, improving the robot's motion stability.

[0175] The above describes the control method for a mobile robot from the perspective of methodological steps. The following is a systematic and comprehensive explanation. It should be noted that the mobile robot in this application embodiment is any robot with motion capabilities, including but not limited to tripod robots, quadruped robots, biwheeled robots, and four-wheeled robots. The method in this application embodiment can be used to control the mobile robot to move in any environment, such as forests, cities, static environments, dynamic environments, open environments, and confined environments. Figure 8 As shown, the method in this application embodiment includes the following steps.

[0176] Step 801: Obtain the starting point of the mobile robot and the destination that the mobile robot wants to reach.

[0177] Step 802: Plan the global path based on the origin and destination.

[0178] The implementation methods of steps 801 to 802 can be found in the description of step 201, and will not be repeated here.

[0179] Step 803: Obtain the pose of the mobile robot and the environmental information of its surroundings.

[0180] Step 804: Determine the local path based on the pose.

[0181] The implementation methods of steps 803 to 804 can be found in the description of step 202, and will not be repeated here.

[0182] Step 805: Construct the objective function based on the global path, local path, and multiple target motion data.

[0183] The objective function includes the first deviation information and change information mentioned above. Based on this, the implementation of step 805 can be found in the descriptions of steps 203 and 204, and will not be repeated here.

[0184] Step 806: Construct constraint information based on local path and environment information.

[0185] Step 807: Solve the objective function based on the constraint information to obtain the target motion data.

[0186] The implementation methods of steps 806 to 807 can be found in the description of step 205, and will not be repeated here.

[0187] Step 808: Control the movement of the mobile robot based on the target motion data.

[0188] The implementation method of step 808 can be found in the description of step 206, and will not be repeated here.

[0189] Step 809: Determine whether the mobile robot has reached its destination.

[0190] The mobile robot has a positioning system that can locate its position in real time. If the mobile robot's current location is not the destination, it means that the mobile robot has not reached the destination, and the process returns to step 803; if the mobile robot's current location is the destination, it means that the mobile robot has reached the destination, and the process ends.

[0191] By repeatedly executing steps 803 to 809, real-time navigation is achieved, and the mobile robot is controlled to move according to the navigation, ensuring that the mobile robot reaches its destination safely and stably.

[0192] Optionally, steps 801 to 809 above can be implemented through the control system of the mobile robot, such as... Figure 9 As shown, the control system includes a perception system and a positioning system. The perception system senses environmental information about the mobile robot's environment, including a global map and a local map. The positioning system determines the mobile robot's position and orientation, thus obtaining its pose. In practical applications, the target object inputs its target pose via planning instructions, which includes the destination and orientation. The control system includes a global planner, which plans a global path based on the global map and the target pose. The control system also includes a local planner, which determines the target motion data based on the global path and the local map. The target motion data includes velocity and turning angle. From the velocity and turning angle, the angular velocity can be determined. The local planner transmits the velocity, turning angle, and angular velocity to the mobile robot's controller, which then controls the mobile robot's movement, thereby achieving real-time navigation and enabling the mobile robot to move autonomously according to the navigation.

[0193] Figure 10 The diagram shown is a structural schematic of a control device for a mobile robot according to an embodiment of this application. Figure 10 As shown, the device includes:

[0194] The acquisition module 1001 is used to acquire the global path and first pose of the mobile robot;

[0195] The determination module 1002 is used to determine the local path expressed by multiple target motion data based on the first pose.

[0196] The determining module 1002 is also used to determine change information based on multiple target motion data, and the change information is used to represent the changes in the multiple target motion data;

[0197] The determining module 1002 is further configured to determine first deviation information based on the global path and the local path, wherein the first deviation information is used to indicate the deviation between the local path and the global path;

[0198] The determining module 1002 is also used to determine multiple target motion data based on the first deviation information and change information;

[0199] The control module 1003 is used to control the movement of the mobile robot based on multiple target motion data.

[0200] In one possible implementation, the acquisition module 1001 is used to plan multiple candidate paths based on the starting point, destination, and global map of the mobile robot; determine the index of each candidate path, wherein the index of any candidate path characterizes the difficulty of the mobile robot moving along any candidate path; and select a global path that meets the index conditions from the multiple candidate paths based on the index of each candidate path.

[0201] In one possible implementation, the local path includes multiple predicted poses;

[0202] The determination module 1002 is used to determine the first predicted pose expressed by the first target motion data based on the first pose; and to determine the non-first predicted pose expressed by the non-first target motion data based on the previous predicted pose.

[0203] In one possible implementation, the local path includes multiple predicted poses, and the global path includes the global poses corresponding to each predicted pose.

[0204] The determination module 1002 is used to determine the first deviation information based on the difference between each predicted pose and the corresponding global pose.

[0205] In one possible implementation, the determining module 1002 is used to determine change information based on the difference between every two adjacent target motion data in multiple target motion data.

[0206] In one possible implementation, the local path includes multiple predicted poses, and the global path includes the global poses corresponding to each predicted pose.

[0207] The determination module 1002 is used to determine second deviation information based on the last predicted pose and the last global pose. The second deviation information is used to indicate the deviation between the last predicted pose and the last global pose. Based on the first deviation information, the second deviation information, and the change information, multiple target motion data are determined.

[0208] In one possible implementation, the determining module 1002 is used to determine constraint information based on the local path and the environmental information of the environment in which the mobile robot is located. The constraint information is used to constrain the target distance between the mobile robot and obstacles in the environment to be no less than a safe distance when the mobile robot moves on the local path. Based on the constraint information, the first deviation information and the change information, multiple target motion data are determined.

[0209] In one possible implementation, the device further includes a computing module;

[0210] The acquisition module 1001 is also used to acquire a first polygon surrounding the mobile robot and a second polygon surrounding the obstacle;

[0211] The calculation module is used to calculate the target distance based on the first polygon and the second polygon.

[0212] In one possible implementation, the first polygon includes a plurality of first sides, and the second polygon includes a plurality of second sides;

[0213] The calculation module is used to calculate the first distance between each first edge and each second edge, obtaining multiple first distances; and selects the shortest first distance from the multiple first distances as the target distance.

[0214] In one possible implementation, any first edge includes two first vertices, and any second edge includes two second vertices;

[0215] The calculation module is used to calculate the second distance between each first vertex and any second edge; calculate the third distance between each second vertex and any first edge; and select the shortest distance from the second and third distances as the first distance.

[0216] In one possible implementation, the motion data of multiple targets are arranged according to their sequence numbers;

[0217] The control module 1003 is used to select target motion data that is located before a specified sequence number from multiple target motion data; and to control the movement of the mobile robot according to the selected target motion data.

[0218] In the aforementioned device, a local path is determined based on the first pose of the mobile robot, and first deviation information is determined based on the global path and the local path. Since the first deviation information represents the deviation between the local path and the global path, multiple target motion data are determined through the first deviation information. This allows the mobile robot to be controlled to move on a local path that does not deviate from the global path, enabling the mobile robot to move according to the planned path.

[0219] Furthermore, change information is determined based on multiple target motion data. Since change information represents the changes in multiple target motion data, determining the multiple target motion data through change information can make the changes in multiple target motion data more stable. This allows for stable control of the mobile robot's movement based on multiple target motion data, improving the robot's motion stability.

[0220] It should be understood that the above Figure 10 The provided device, in implementing its functions, is only illustrated by the division of the above-described functional modules. In practical applications, the functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. Furthermore, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation processes are detailed in the method embodiments, and will not be repeated here.

[0221] Figure 11 A structural block diagram of a terminal device 1100 provided in an exemplary embodiment of this application is shown. The terminal device 1100 includes a processor 1101 and a memory 1102.

[0222] Processor 1101 may include one or more processing cores, such as a quad-core processor, an octa-core processor, etc. Processor 1101 may be implemented using at least one hardware form selected from DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array). Processor 1101 may also include a main processor and a coprocessor. The main processor, also known as a CPU (Central Processing Unit), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, processor 1101 may integrate a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content required to be displayed on the screen. In some embodiments, processor 1101 may also include an AI (Artificial Intelligence) processor, which is used to handle computational operations related to machine learning.

[0223] The memory 1102 may include one or more computer-readable storage media, which may be non-transitory. The memory 1102 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In some embodiments, the non-transitory computer-readable storage media in the memory 1102 are used to store at least one computer program, which is executed by the processor 1101 to implement the mobile robot control method provided in the method embodiments of this application.

[0224] In some embodiments, the terminal device 1100 may also optionally include: a peripheral device interface 1103 and at least one peripheral device. The processor 1101, memory 1102, and peripheral device interface 1103 can be connected via a bus or signal line. Each peripheral device can be connected to the peripheral device interface 1103 via a bus, signal line, or circuit board. Specifically, the peripheral device includes at least one of: a radio frequency circuit 1104, a display screen 1105, a camera assembly 1106, an audio circuit 1107, and a power supply 1108.

[0225] Peripheral device interface 1103 can be used to connect at least one I / O (Input / Output) related peripheral device to processor 1101 and memory 1102. In some embodiments, processor 1101, memory 1102 and peripheral device interface 1103 are integrated on the same chip or circuit board; in some other embodiments, any one or two of processor 1101, memory 1102 and peripheral device interface 1103 can be implemented on separate chips or circuit boards, which is not limited in this embodiment.

[0226] The radio frequency (RF) circuit 1104 is used to receive and transmit RF (Radio Frequency) signals, also known as electromagnetic signals. The RF circuit 1104 communicates with communication networks and other communication devices via electromagnetic signals. The RF circuit 1104 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals back into electrical signals. Optionally, the RF circuit 1104 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a user identity module card, etc. The RF circuit 1104 can communicate with other terminals via at least one wireless communication protocol. This wireless communication protocol includes, but is not limited to: the World Wide Web, metropolitan area networks, intranets, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area networks, and / or WiFi (Wireless Fidelity) networks. In some embodiments, the RF circuit 1104 may also include circuitry related to NFC (Near Field Communication), which is not limited in this application.

[0227] Display screen 1105 is used to display a UI (User Interface). This UI may include graphics, text, icons, videos, and any combination thereof. When display screen 1105 is a touch display screen, it also has the ability to collect touch signals on or above its surface. These touch signals can be input as control signals to processor 1101 for processing. In this case, display screen 1105 can also be used to provide virtual buttons and / or a virtual keyboard, also known as soft buttons and / or a soft keyboard. In some embodiments, there may be one display screen 1105, disposed on the front panel of terminal device 1100; in other embodiments, there may be at least two display screens, disposed on different surfaces of terminal device 1100 or in a folded design; in still other embodiments, display screen 1105 may be a flexible display screen, disposed on a curved or folded surface of terminal device 1100. Furthermore, display screen 1105 may be configured as a non-rectangular, irregular shape, i.e., a non-rectangular screen. The display screen 1105 can be made of materials such as LCD (Liquid Crystal Display) and OLED (Organic Light-Emitting Diode).

[0228] The camera assembly 1106 is used to acquire images or videos. Optionally, the camera assembly 1106 includes a front-facing camera and a rear-facing camera. Typically, the front-facing camera is located on the front panel of the terminal, and the rear-facing camera is located on the back of the terminal. In some embodiments, there are at least two rear-facing cameras, which are any one of a main camera, a depth-sensing camera, a wide-angle camera, and a telephoto camera, to achieve background blurring by fusion of the main camera and the depth-sensing camera, panoramic shooting by fusion of the main camera and the wide-angle camera, VR (Virtual Reality) shooting, or other fusion shooting functions. In some embodiments, the camera assembly 1106 may also include a flash. The flash can be a single-color temperature flash or a dual-color temperature flash. A dual-color temperature flash refers to a combination of a warm-light flash and a cool-light flash, which can be used for light compensation at different color temperatures.

[0229] The audio circuit 1107 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, converting the sound waves into electrical signals that are input to the processor 1101 for processing, or input to the radio frequency circuit 1104 for voice communication. For stereo sound acquisition or noise reduction purposes, multiple microphones may be used, each located at a different part of the terminal device 1100. The microphone may also be an array microphone or an omnidirectional microphone. The speaker is used to convert electrical signals from the processor 1101 or the radio frequency circuit 1104 into sound waves. The speaker may be a conventional diaphragm speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can convert electrical signals not only into audible sound waves but also into inaudible sound waves for purposes such as distance measurement. In some embodiments, the audio circuit 1107 may also include a headphone jack.

[0230] Power supply 1108 is used to supply power to the various components in terminal device 1100. Power supply 1108 can be AC ​​power, DC power, a disposable battery, or a rechargeable battery. When power supply 1108 includes a rechargeable battery, the rechargeable battery can be a wired rechargeable battery or a wireless rechargeable battery. A wired rechargeable battery is a battery that is charged via a wired line, and a wireless rechargeable battery is a battery that is charged via a wireless coil. The rechargeable battery can also be used to support fast charging technology.

[0231] In some embodiments, the terminal device 1100 further includes one or more sensors 1109. The one or more sensors 1109 include, but are not limited to: an acceleration sensor 1111, a gyroscope sensor 1112, a pressure sensor 1113, an optical sensor 1114, and a proximity sensor 1115.

[0232] Accelerometer 1111 can detect the magnitude of acceleration along the three coordinate axes of a coordinate system established by terminal device 1100. For example, accelerometer 1111 can be used to detect the components of gravitational acceleration along the three coordinate axes. Processor 1101 can control display screen 1105 to display the user interface in either a landscape or portrait view based on the gravitational acceleration signal acquired by accelerometer 1111. Accelerometer 1111 can also be used for games or for acquiring user motion data.

[0233] The gyroscope sensor 1112 can detect the orientation and rotation angle of the terminal device 1100. The gyroscope sensor 1112 can work in conjunction with the accelerometer sensor 1111 to collect the user's 3D movements on the terminal device 1100. Based on the data collected by the gyroscope sensor 1112, the processor 1101 can perform the following functions: motion sensing (e.g., changing the UI based on the user's tilt), image stabilization during shooting, game control, and inertial navigation.

[0234] The pressure sensor 1113 can be disposed on the side bezel of the terminal device 1100 and / or on the lower layer of the display screen 1105. When the pressure sensor 1113 is disposed on the side bezel of the terminal device 1100, it can detect the user's grip signal on the terminal device 1100, and the processor 1101 can perform left / right hand recognition or quick operation based on the grip signal collected by the pressure sensor 1113. When the pressure sensor 1113 is disposed on the lower layer of the display screen 1105, the processor 1101 can control the operable controls on the UI interface based on the user's pressure operation on the display screen 1105. The operable controls include at least one of button controls, scroll bar controls, icon controls, and menu controls.

[0235] Optical sensor 1114 is used to collect ambient light intensity. In one embodiment, processor 1101 can control the display brightness of display screen 1105 based on the ambient light intensity collected by optical sensor 1114. Specifically, when the ambient light intensity is high, the display brightness of display screen 1105 is increased; when the ambient light intensity is low, the display brightness of display screen 1105 is decreased. In another embodiment, processor 1101 can also dynamically adjust the shooting parameters of camera assembly 1106 based on the ambient light intensity collected by optical sensor 1114.

[0236] The proximity sensor 1115, also known as a distance sensor, is typically located on the front panel of the terminal device 1100. The proximity sensor 1115 is used to detect the distance between the user and the front of the terminal device 1100. In one embodiment, when the proximity sensor 1115 detects that the distance between the user and the front of the terminal device 1100 is gradually decreasing, the processor 1101 controls the display screen 1105 to switch from a screen-on state to a screen-off state; when the proximity sensor 1115 detects that the distance between the user and the front of the terminal device 1100 is gradually increasing, the processor 1101 controls the display screen 1105 to switch from a screen-off state to a screen-on state.

[0237] Those skilled in the art will understand that Figure 11 The structure shown does not constitute a limitation on the terminal device 1100, and may include more or fewer components than shown, or combine certain components, or use different component arrangements.

[0238] Figure 12This is a schematic diagram of the server structure provided in the embodiments of this application. The server 1200 can vary considerably due to different configurations or performance. It may include one or more processors 1201 and one or more memories 1202. The one or more memories 1202 store at least one computer program, which is loaded and executed by the one or more processors 1201 to implement the mobile robot control method provided in the above-described method embodiments. For example, the processor 1201 is a CPU. Of course, the server 1200 may also have wired or wireless network interfaces, a keyboard, and input / output interfaces for input and output. The server 1200 may also include other components for implementing device functions, which will not be elaborated here.

[0239] In an exemplary embodiment, a computer-readable storage medium is also provided, which stores at least one computer program that is loaded and executed by a processor to enable an electronic device to implement any of the above-described mobile robot control methods.

[0240] Optionally, the aforementioned computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a compact disc read-only memory (CD-ROM), magnetic tape, floppy disk, and optical data storage device, etc.

[0241] In an exemplary embodiment, a computer program is also provided, which is at least one such computer program, loaded and executed by a processor, to enable an electronic device to implement any of the above-described mobile robot control methods.

[0242] In an exemplary embodiment, a computer program product is also provided, which stores at least one computer program that is loaded and executed by a processor to enable an electronic device to implement any of the above-described mobile robot control methods.

[0243] It should be understood that "multiple" as used in this article refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.

[0244] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0245] The above description is merely an exemplary embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.

Claims

1. A control method for a mobile robot, characterized in that, The method includes: Obtain the global path and first pose of the mobile robot; Based on the first pose, determine the local path expressed by multiple target motion data; Based on the multiple target motion data, change information is determined, which is used to represent the changes in the multiple target motion data; Based on the global path and the local path, a first deviation information is determined, which is used to indicate the deviation between the local path and the global path; Based on the first deviation information and the change information, the motion data of the plurality of targets are determined; The movement of the mobile robot is controlled based on the multiple target motion data.

2. The method according to claim 1, characterized in that, The process of obtaining the global path of the mobile robot includes: Based on the mobile robot's starting point, destination, and global map, multiple candidate paths are planned; The indicators for each candidate path are determined, and the indicator of any candidate path represents the difficulty of the mobile robot moving along any candidate path. Based on the indicators of each candidate path, a global path that meets the indicator conditions is selected from the multiple candidate paths.

3. The method according to claim 1, characterized in that, The local path includes multiple predicted poses; determining the local path expressed by multiple target motion data based on the first pose includes: The first predicted pose, expressed by the first target motion data, is determined based on the first pose. The non-first predicted pose is determined based on the previous predicted pose and expressed by the non-first target motion data.

4. The method according to claim 1, characterized in that, The local path includes multiple predicted poses, and the global path includes the global pose corresponding to each predicted pose. Determining the first deviation information based on the global path and the local path includes: The first deviation information is determined based on the difference between each predicted pose and the corresponding global pose.

5. The method according to claim 1, characterized in that, The step of determining change information based on the multiple target motion data includes: Change information is determined based on the difference between every two adjacent target motion data in the plurality of target motion data.

6. The method according to claim 1, characterized in that, The local path includes multiple predicted poses, and the global path includes the global poses corresponding to each predicted pose; determining the multiple target motion data based on the first deviation information and the change information includes: Based on the last predicted pose and the last global pose, a second deviation information is determined, which is used to indicate the deviation between the last predicted pose and the last global pose. Based on the first deviation information, the second deviation information, and the change information, the motion data of the plurality of targets are determined.

7. The method according to claim 1, characterized in that, The step of determining the motion data of the plurality of targets based on the first deviation information and the change information includes: Based on the local path and the environmental information of the environment in which the mobile robot is located, constraint information is determined. The constraint information is used to constrain the target distance between the mobile robot and obstacles in the environment to be no less than the safe distance when the mobile robot moves on the local path. Based on the constraint information, the first deviation information, and the change information, the motion data of the plurality of targets are determined.

8. The method according to claim 7, characterized in that, The method further includes: Obtain a first polygon surrounding the mobile robot and a second polygon surrounding the obstacle; The target distance is calculated based on the first polygon and the second polygon.

9. The method according to claim 8, characterized in that, The first polygon includes a plurality of first sides, and the second polygon includes a plurality of second sides; the step of calculating the target distance based on the first polygon and the second polygon includes: Calculate the first distance between each first edge and each second edge to obtain multiple first distances; The shortest first distance is selected from the plurality of first distances as the target distance.

10. The method according to claim 9, characterized in that, Any first edge includes two first vertices, and any second edge includes two second vertices; calculating the first distance between each first edge and each second edge includes: Calculate the second distance between each first vertex and any of the second edges; Calculate the third distance between each second vertex and any of the first edges; Choose the shortest distance from each of the second and third distances as the first distance.

11. The method according to any one of claims 1 to 10, characterized in that, The plurality of target motion data are arranged in sequence; controlling the movement of the mobile robot based on the plurality of target motion data includes: From the plurality of target motion data, select the target motion data that is located before the specified sequence number; The movement of the mobile robot is controlled based on the selected target motion data.

12. A control device for a mobile robot, characterized in that, The device includes: The acquisition module is used to acquire the global path and first pose of the mobile robot; The determination module is used to determine a local path expressed by multiple target motion data based on the first pose; The determining module is further configured to determine change information based on the plurality of target motion data, wherein the change information is used to indicate the change status of the plurality of target motion data; The determining module is further configured to determine first deviation information based on the global path and the local path, wherein the first deviation information is used to indicate the deviation between the local path and the global path; The determining module is further configured to determine the motion data of the plurality of targets based on the first deviation information and the change information; The control module is used to control the movement of the mobile robot based on the multiple target motion data.

13. An electronic device, characterized in that, The electronic device includes a processor and a memory, the memory storing at least one computer program, which is loaded and executed by the processor to enable the electronic device to implement the control method for the mobile robot as described in any one of claims 1 to 11.

14. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores at least one computer program, which is loaded and executed by a processor to enable the electronic device to implement the control method for the mobile robot as described in any one of claims 1 to 11.

15. A computer program product, characterized in that, The computer program product stores at least one computer program, which is loaded and executed by a processor to enable the electronic device to implement the control method of the mobile robot as described in any one of claims 1 to 11.