Patent Description:
In the field of robot control, a center-of-mass motion trajectory of a legged robot is often determined, and a motion control parameter of the legged robot is determined according to the center-of-mass motion trajectory. During controlling motion of the legged robot, how to determine the motion control parameter based on the environment of the legged robot is an urgent problem to be resolved. Such a motion control is disclosed in document <CIT>.

To make the technical solution according to an embodiment of this disclosure better understood, the following describes in detail with reference to the accompanying drawings of the specification and specific implementations.

In order to facilitate a person skilled in the art to better understand the technical solution of this disclosure, the terms involved in this disclosure are introduced below.

Robot: It includes various machines (such as robot dogs and robot cats) that simulate human behaviors or simulate other living creatures in thought. In a broad sense, some computer programs are also referred to as robots. In the contemporary industry, a robot refers to an artificial robot that can automatically execute a task, and is used for replacing or assisting a human to work, and may be an electromechanical apparatus, or is controlled by a computer program or an electronic circuit.

Legged robot: It generally refers to a robot with a foot end. The legged robot may be configured with one or more legs, and each leg may be configured with one or more joints, usually one leg corresponds to three joints, and each leg corresponds to a foot end. For example, a two-legged robot, a four-legged robot, or a six-legged robot. For example, the four-legged robot is a robot dog. Since the legged robot may include a plurality of foot ends, and the foot ends that land at different moments may be different, the respective foot ends of the legged robot may be represented as a first foot end, a second foot end,. , an i-th foot end, and the like, for ease of distinction. In response to a foot end landing, correspondingly, the robot steps a leg corresponding to the foot end.

Preset period: It refers to a time length of each motion of the robot. A length of the preset period may be arbitrary and may be set according to programming needs. The preset period includes a plurality of moments, and in this disclosure, a moment selected from the plurality of moments in the preset period is referred to as a sampling moment (or sampling time point). During a motion process of the legged robot, the legged robot is programmed from point A to point B, a total time required from point A to point B may be divided into a plurality of preset periods, and the process of controlling the legged robot from point A to point B is specifically divided into controlling the legged robot to complete motion corresponding to each preset period in sequence.

Start moment: It refers to a moment at which the robot starts to move in the preset period. The start moment may, for example, be counted from <NUM>. A position of the robot at the start moment may be referred to as a start position.

Termination moment: It is also referred to as an end moment, which refers to a moment at which the motion ends in the preset period, that is, a moment at which the robot stops motion along the preset period. A position of the robot at the termination moment may be referred to as a termination position or an end position.

State data: It includes center-of-mass state data of the robot, and further includes a pose, a landing point, a foot end position, and the like of the robot. Since the state data is related to a current state of the robot, state data of the robot at different moments is different.

Center-of-mass state data: It is data for describing a center-of-mass state change of the robot, specifically including one or more of a center-of-mass position, center-of-mass velocity, or center-of-mass acceleration of the robot. The center-of-mass position is a central position of a mass of the robot, and is used for describing a position of the robot. The center-of-mass position changes in response to the robot being in different motion states. The center-of-mass velocity may be determined by taking a first derivative of the center-of-mass position relative to time, and the center-of-mass acceleration may be determined by taking a second derivative of the center-of-mass position relative to time. For ease of description, a center-of-mass position at the start moment may be referred to as a start center-of-mass position, a center-of-mass velocity at the start moment may be referred to as a start center-of-mass velocity, and a center-of-mass acceleration at the start moment may be referred to as a start center-of-mass acceleration. Similarly, a center-of-mass position at the end moment may be referred to as an end center-of-mass position, a center-of-mass velocity at the end moment may be referred to as an end center-of-mass velocity, and a center-of-mass acceleration at the end moment may be referred to as an end center-of-mass acceleration.

Given pose: During the motion process, the robot has continuously changing poses. Before controlling the robot to move, a pose of the robot at the start moment and a pose of the robot at the end moment may be set, and the set pose is the given pose. The given pose may be represented by a matrix, a vector, a plurality of coordinate values, or the like.

Desired pose: It refers to a pose of the robot at each moment determined according to a landing point of the robot, which can be understood as a pose that the robot is expected to achieve at a specific moment.

Landing point: It refers to a position where the foot end of the robot is in contact with a contact force, which is used for referring to a landing point of the robot in general. The landing point may be a start landing point or a candidate landing point. In response to the candidate landing point being selected as the landing point of the foot end, the candidate landing point may also be regarded as a target landing point. The start landing point refers to a landing point of the legged robot at the start moment.

Candidate landing point: It refers to a determined position where the foot end may be in contact with a contact surface in response to the foot end of the robot being in contact with the contact surface. Usually, one or more candidate landing points are determined for each landing foot end of the robot according to a motion environment of the robot. For example, candidate landing points of a landing i-th leg include A, B, and C.

Target landing point: It refers to the selected candidate landing point that are eventually determined from the candidate landing points. In an embodiment of this disclosure, the target landing point and the step order may be represented based on a binary variable βijk. After determining a value of the βijk, the selected candidate landing point can be naturally determined correspondingly, a value of the target landing point can be determined correspondingly, and according to the selected candidate landing point of each step, a leg of the each step can be determined correspondingly, that is, the step order can be determined.

Center-of-mass position change parameter: The center-of-mass position change parameter is used for describing a parameter showing a change of the center-of-mass position over time. The center-of-mass position change parameter is represented in the form of a matrix, in the form of a vector, or the like. The center-of-mass position change parameter and a time interval can jointly represent a center-of-mass position at a particular moment, and the time interval refers to a time difference between the particular moment and the start moment.

Contact surface: It is a surface where the foot end of the robot is in contact with an environment. The contact surface is, for example, the ground, or another support in contact with the foot end. The corresponding contact surface of the legged robot may be different due to other cases, such as an uneven road surface. In an embodiment of this disclosure, description is made using that the foot end is in contact with the contact surface as an example, but the method according to this embodiment of this disclosure is still applicable to a case that other portions of the legged robot are in contact with the contact surface.

Center-of-mass motion trajectory: It is also referred to as a center-of-mass position motion trajectory, or a center-of-mass trajectory, which is used for describing center-of-mass positions of the robot at different moments. The center-of-mass motion trajectory is formed by the center-of-mass positions of the robot at different moments.

A quantity of contact points: It refers to a quantity of the foot ends of the robot being in contact with the contact surface. Certainly, the quantities of the foot ends of the robot being in contact with the contact surface at different moments are not the same, and thus a quantity of contact points may change over time.

Step timing: The step timing indicates when the robot steps which leg, specifically including a step time and a step order. The step time is used for describing when the robot steps a leg during the preset period. The step order refers to an order in which the robot steps a leg during the preset period, for example, the robot first steps a left hind leg and then steps a right hind leg.

Foot end contact force: It refers to a contact force size between the foot end of the robot and the contact surface. In response to the foot end of the robot not being in contact with the contact surface, there is no foot end contact force between the foot end and the contact surface, or it may be understood that the foot end contact force is <NUM>.

Constraint condition set: It is used for constraining one or more of four variables of the center-of-mass position change parameter, the step order, the landing point, or the foot end contact force. The constraint condition set includes one or more constraint conditions. The constraint condition set in this embodiment of this disclosure includes a constraint condition used for constraining the step order, a spatial landing constraint condition, a friction force constraint condition, and a contact force constraint condition. The constraint conditions are respectively described below:.

Target motion control parameter: It refers to a parameter required for controlling the motion of the legged robot. The target motion control parameter specifically includes a desired joint rotation angle of the legged robot at each sampling moment and a j oint torque at each sampling moment.

Pose change angle parameter: It includes a pose change angle, a pose change angle velocity, and a pose change angle acceleration of the robot. The pose change angle may refer to a change angle of the robot from one pose to another pose. For example, the robot moves from a point A to a point B in a first pose, and the robot is also in the first pose at the point B, then the pose change angle of the robot is <NUM>. The pose change angle velocity is determined by taking a first derivative of the pose change angle relative to time, and the pose change angle acceleration is determined by taking a second derivative of the pose change angle relative to time.

In addition, in the embodiments of this disclosure, "a plurality of" refers to two or more, and "at least one" refers to one or more.

In order to improve the adaptability of the generated motion control parameter to the environment, an embodiment of this disclosure provides a method for controlling motion of a legged robot. The design idea of the method for controlling motion of a legged robot involved in this embodiment of this disclosure is introduced below.

In this embodiment of this disclosure, candidate landing points and a quantity of steps are set for each leg that needs to be stepped in a preset period. A first correlation between a center-of-mass position change parameter, a candidate landing point, and a foot end contact force is determined according to candidate landing points of each foot end and a quantity of steps. Therefore, a target center-of-mass position change parameter, a target landing point, and a target step order of the legged robot are determined in combination with the first correlation and a constraint condition set. Further, a center-of-mass motion trajectory of the legged robot is determined according to the target center-of-mass position change parameter and the step order, and a target motion control parameter is determined according to the center-of-mass motion trajectory and the target landing point. The legged robot is controlled to move in the preset period using the target motion control parameter.

In this embodiment of this disclosure, in determining the target motion control parameter of the legged robot, the center-of-mass position change parameter, the step order, the landing point, and other variables of the legged robot are all determined according to cases, so that the motion control parameter determined based on these variables can be more consistent with a motion environment of the legged robot, thereby improving the adaptability between the determined motion control parameter and the environment, and also improving the adaptability of the motion of the legged robot to the environment. In addition, in this embodiment of this disclosure, it is possible to automatically generate a center-of-mass position and the step order of the legged robot, and to automatically select the landing point and the step order of the legged robot, which improves the intelligent degree of the legged robot.

Further, in this embodiment of this disclosure, a mixed integer quadratic programming may be constructed according to the first correlation, the constraint condition set, and a cost function, and the target center-of-mass position change parameter, the target landing point, and the target step order may be solved by a method for solving the mixed integer quadratic programming. If there is a solution of the mixed integer quadratic programming problem, it is inevitable that a global optimal solution can be solved. Therefore, by converting the solving of the target center-of-mass position change parameter, the target landing point, and the target step order into the mixed integer quadratic programming problem, the optimal target center-of-mass position change parameter, the target landing point, and the target step order can be solved.

Based on the above design ideas, an application scenario of the method for controlling motion of a legged robot according to an embodiment of this disclosure is introduced below.

The method for controlling motion of a legged robot is adapted to control various gaits of various types of legged robots in various environments. Various types of legged robots include a two-legged robot, a four-legged robot, and the like. Various environments include flat ground, uneven ground, slopes, stairs, and the like. Various gaits include bipedal walking, quadrupedal walking, quadrupedal trotting, random gaits, and the like.

Referring to <FIG>, which is an application scenario diagram of the method for controlling motion of a legged robot, or may be understood as an architecture diagram of a system for controlling motion of a legged robot. The architecture diagram includes a legged robot <NUM> and a control device <NUM>. An example of the interaction between the control device <NUM> and the legged robot <NUM> is described below.

In a possible case, the control device <NUM> and the legged robot <NUM> are two relatively independent devices. In this case, the legged robot <NUM> performs wired or wireless communication with the control device <NUM>. In <FIG>, for example, the communication between the legged robot <NUM> and the control device <NUM> is implemented using a communications network.

Before controlling the legged robot <NUM> to move, the control device <NUM> may set state data and a step order of the legged robot <NUM> at a start moment according to an operation of a user or a task of the legged robot <NUM>. Alternatively, the legged robot <NUM> may detect the state data at the start moment and upload the state data at the start moment to the control device <NUM>. Alternatively, the control device <NUM> directly collects the state data of the legged robot <NUM> at the start moment. In some cases, it may be unnecessary to determine a quantity of steps of the legged robot <NUM>.

Further, the control device <NUM> collects an image of the environment in which the legged robot <NUM> is currently located, or receives an environment image reported by the legged robot <NUM>. The control device <NUM> determines, according to the environment image, a possible candidate landing point for a foot end of the legged robot <NUM> that needs to land in a preset period. Certainly, there are many ways for the control device <NUM> to determine the candidate landing point, which are described in detail below.

The control device <NUM> determines a motion control parameter of the legged robot <NUM> according to the state data, the step order, and the candidate landing point, and then controls the legged robot <NUM> to perform corresponding motion. The content of determining the motion control parameter is described below.

The control device <NUM> may be implemented by a server or a terminal, and the server includes, but is not limited to: an independent physical server, a server cluster or a distributed system formed by a plurality of physical servers, or a cloud server that provides a basic cloud computing service such as a cloud service, a cloud database, cloud computing, a cloud function, cloud storage, a network service, cloud communication, a middleware service, a domain name service, a security service, a content delivery network (CDN), big data, and an artificial intelligence platform. The terminal is, for example, a mobile phone, a personal computer, a smart television, or a portable tablet computer.

In another possible case, the control device <NUM> is part of the legged robot <NUM>. In this case, the control device <NUM> may be arranged in a body of the legged robot <NUM>, for example, the control device <NUM> is an internal processor in the legged robot <NUM>, or the like.

Before the control device <NUM> controls the legged robot <NUM> to move, the control device <NUM> may receive a motion instruction from a host computer or operate according to an input by the user to determine the motion instruction. The motion instruction may instruct the legged robot <NUM> to perform a specific task, or instruct a start moment and an end moment of the legged robot <NUM> in the preset period. The host computer may be any device that is wirelessly connected to or wired to the control device <NUM>, such as a terminal or a server.

Similarly, the control device <NUM> collects the state data of the legged robot <NUM>. The control device <NUM> may determine a possible candidate landing point for each landing foot end of the legged robot <NUM> according to an image of the environment in which the legged robot <NUM> is currently located. The control device <NUM> determines a target motion control parameter of the legged robot according to the state data, the quantity of steps, and the candidate landing point, to control the legged robot <NUM> to move. The content of determining the target motion control parameter is described below.

For a clearer introduction of a structure of the control device <NUM>, exemplary introduction is made below with reference to a system for controlling motion of a legged robot shown in <FIG>. In <FIG>, for example, the control device <NUM> includes a visual sensing unit <NUM>, a trajectory generation unit <NUM>, and a motion control unit <NUM>.

The visual sensing unit <NUM> may be arranged on the legged robot <NUM>, for example, the visual sensing unit <NUM> is mounted on a head portion of the legged robot <NUM>. The visual sensing unit <NUM> includes, for example, one or more of a camera and an infrared camera. For example, the camera is an RGBD camera. The visual sensing unit further includes a function for implementing simultaneous localization and mapping.

The visual sensing unit <NUM> collects the state data of the robot. The state data includes the state data at the start moment of the legged robot <NUM>.

In addition, the visual sensing unit <NUM> may further collect an image of the environment in which the legged robot <NUM> is located, and determine a possible candidate landing point for each landing of the legged robot <NUM>. After determining the state data and the environment image, the visual sensing unit <NUM> may send the state data and the environment image to the trajectory generation unit <NUM>.

Alternatively, the trajectory generation unit <NUM> may determine the state data of the legged robot <NUM> through an internal sensor and an external sensor of the legged robot <NUM>. Alternatively, the trajectory generation unit <NUM> may use desired state data at an end moment in a previous preset period as state data at a start moment in a current preset period. Alternatively, the trajectory generation unit <NUM> determines the state data of the legged robot <NUM> through a state estimator of the motion control unit <NUM>.

The trajectory generation unit <NUM> receives the state data and the candidate landing point, and determines center-of-mass positions, target landing points, and step orders of the legged robot <NUM> at a plurality of moments according to the state data, the candidate landing point, and the quantity of steps. The trajectory generation unit <NUM> determines a center-of-mass motion trajectory of the legged robot <NUM> according to the center-of-mass positions, the step orders and the like at the plurality of moments. Then, the trajectory generation unit <NUM> determines a whole-body motion trajectory of the legged robot <NUM> according to the center-of-mass motion trajectory and the target landing point, and sends the whole-body motion trajectory and the target landing point to the motion control unit <NUM>.

The motion control unit <NUM> may determine a joint torque of each joint of the legged robot <NUM> according to the whole-body motion trajectory and the target landing point, and control each joint of the legged robot <NUM> to rotate according to each joint torque, so as to implement motion of the legged robot <NUM>.

Further, the motion control unit <NUM> may further monitor real-time state data during movement of the legged robot <NUM>, and control the motion of the legged robot <NUM> according to the real-time state data to ensure stable movement of the legged robot <NUM>.

Based on the above application scenario, a general idea of the method for controlling motion of a legged robot involved in this embodiment of this disclosure is introduced as follows:.

In this embodiment of this disclosure, a first correlation between a center-of-mass position change parameter, a foot end contact force, and a landing point and a constraint condition set are determined according to state data, a step order, and a candidate landing point of each foot end. Then, a center-of-mass position change parameter, a step order, and a landing point are solved. Further, a center-of-mass motion trajectory of the legged robot <NUM> is determined according to the target center-of-mass position change parameter and the target step order, and a target motion control parameter of the legged robot <NUM> is determined according to the center-of-mass motion trajectory, the step order, and the target landing point. The target motion control parameter is used for controlling the motion of the legged robot <NUM>.

Further, in response to determining the target center-of-mass position change parameter, the target landing point, and the target step order, the constraint condition set and the first correlation may be used for converting the problem of determining the center-of-mass position change parameter, the landing point, and the step order into a mixed integer quadratic programming problem. By solving the mixed integer quadratic programming problem, the target center-of-mass position change parameter, the target landing point, and the target step order are determined. The first correlation, the second correlation, and the constraint condition set are pre-configured in the control device <NUM>, or determined by the control device <NUM> from other devices or network resources, or created by the control device <NUM>. An example of how the control device <NUM> creates the first correlation, the second correlation, and the constraint condition set is described below:.

The control device <NUM> may determine a center-of-mass dynamics equation from a network resource or another device, where the center-of-mass dynamics equation represents the relationship between the legged robot and an external force received. The control device <NUM> expresses a center-of-mass position at each sampling moment in the center-of-mass dynamics equation by using a start center-of-mass position, a center-of-mass position change parameter, and a time interval, so as to transform the center-of-mass dynamics equation into the first correlation between the center-of-mass position change parameter, the foot end contact force, and the landing point.

After determining the first correlation, the control device <NUM> may store the first correlation in any form, such as a function form or a description statement form.

A specific example of a process in which the control device <NUM> creates the first correlation is described below:.

The center-of-mass dynamics equation may be expressed in various forms, such as the Newton-Euler equation, and an example of the center-of-mass dynamics equation is as follows: <MAT>
where m is a total mass of the legged robot <NUM>, g ∈ R<NUM> is a gravitational acceleration, pG ∈ R<NUM> is a center-of-mass position of the legged robot <NUM>, <MAT> is a position of an i-th contact point in which the legged robot <NUM> is in contact with a contact surface, or may be referred to as a landing point, that is, a position of a foot end being in contact with the contact surface, L ∈ R<NUM> is a center-of-mass angular momentum of the legged robot <NUM>, L̇ represents a first derivative of the center-of-mass angular momentum relative to time, fi ∈ R<NUM> is a foot end contact force of the i-th contact point, Nc is a quantity of contact points, that is, a quantity of landing foot ends, a <MAT> operation represents an oblique diagonal array of ( ), <MAT> represents a second derivative of pG relative to a time interval, I represents a unit matrix, and R<NUM> represents three coordinate values in a coordinate system.

In the embodiments of this disclosure, unless otherwise specified, each amount is a representation result in a world coordinate system. For example, each variable in formula (<NUM>) is a representation result in the world coordinate system.

The first three rows in formula (<NUM>) are determined according to Newton's law, and the last three rows are determined according to Euler's equation.

Further, according to the first three rows in the above formula (<NUM>), it can be seen that: <MAT>.

Substitute formula (<NUM>) into formula (<NUM>) to determine the following formula: <MAT>
where <MAT> is a <NUM> × <NUM> matrix.

<NUM>: Express a center-of-mass position at each sampling moment in the center-of-mass dynamics equation as a sum of a start center-of-mass position and a center-of-mass position change amount after a time interval t to determine a second correlation.

Terms in the second correlation are analyzed below:.

The first term <MAT> is in a linear relationship with <MAT> and pt, the second term <MAT> is a constant term, the third term <MAT> has L̇, and the fourth term <MAT> has a product of <MAT> and p̈t.

As an embodiment, in response to a pose of the legged robot <NUM> changing less, L is approximately <NUM><NUM>×<NUM>, alternatively, a value of the third term <MAT> may be determined according to a pre-configured pose of the legged robot <NUM> at each sampling moment.

In a possible embodiment, the value of L̇ may be determined according to a given pose at the start moment and a given pose at the end moment of the legged robot. A formula for determining L̇ is described below:.

A pose change amount in the preset period may be expressed as: <MAT>
where ()T in this disclosure represents performing transposition processing on (); ΔR is the pose change amount, Rts is the given pose at the start moment, and Rte is the given pose at the end moment. The pose change amount may be represented as rotating a specific pose angle θ around a specific unit axis l: <MAT> <MAT>
where the unit axis l is a rotation axis represented by a vector, ΔR<NUM> represents an element in row <NUM> and column <NUM> in ΔR, ΔR<NUM> represents an element in row <NUM> and column <NUM> in ΔR, ΔR<NUM> represents an element in row <NUM> and column <NUM> in ΔR, ΔR<NUM> represents an element in row <NUM> and column <NUM> in ΔR, ΔR<NUM> represents an element in row <NUM> and column <NUM> in ΔR, ΔR<NUM> represents an element in row <NUM> and column <NUM> in ΔR, ΔR<NUM> represents an element in row <NUM> and column <NUM> in ΔR.

In response to satisfying the following conditions, cubic curve interpolation is performed on a pose change angle:<MAT>,
where θts represents a pose change angle at the start moment, θte represents a pose change angle at the end moment, <MAT> represents a value of a first derivative of the pose change angle relative to time at the start moment, <MAT> represents a value of the first derivative of the pose change angle relative to time at the end moment, and thus, the given pose of the legged robot at any moment may be expressed as: <MAT>
where I represents a unit matrix, Rt ∈ R<NUM>×<NUM> is a rotation matrix and represents a given pose of the legged robot <NUM> at a corresponding moment, and θt represents a corresponding pose change angle at any moment. <MAT>
where I<NUM> represents a rotation inertia of the legged robot about the center-of-mass in a body coordinate system. <MAT> represents a rotation inertia of the legged robot in a specific coordinate system, an origin of the coordinate system is the center-of-mass position of the legged robot <NUM>, and a pose of the coordinate system is the same as a pose of the world coordinate system. <MAT> may be a fixed value, <MAT> represents a representation result of ω in the world coordinate system, and ω represents an angle velocity in the body coordinate system. θ̇t represents a pose change angle velocity, and <MAT> represents a pose change angle acceleration.

<NUM>: Express the center-of-mass position change amount in the fourth term <MAT> in the second correlation as a vector sum of the change amount in each direction to determine a fourth correlation: <MAT>
where pt = ptxy + ptz, and ptxy includes components of pt on x and y axes. <MAT> refers to a second derivative of a component of the center-of-mass position change amount pt on a plane formed by the x and y axes relative to time, that is, a component of a center-of-mass acceleration on the plane formed by the x and y axes; <MAT> refers to a second derivative of a component of the center-of-mass position change amount pt on a z axis relative to time, that is, a component of the center-of-mass acceleration on the z axis; <MAT> represents an oblique diagonal array of the component of the center-of-mass position change amount pt on the plane formed by the x and y axes, and <MAT> represents an oblique diagonal array of the component of center-of-mass position change amount pt on the z axis.

A z-coordinate of ptxy is <NUM>, ptz includes a component of pt on the z axis, and an x-coordinate and a y-coordinate of ptz are <NUM>. A torque generated around the z axis is <MAT>, and a torque in one direction in an x-y plane is <MAT> and ptz are co-linear, therefore <MAT>.

Additionally, the motion of the legged robot <NUM> in a z-axis direction is generally relatively stable, and thus <MAT>, ptz, and <MAT> may be ignored. In addition, absolute values of ptxy, <MAT>, and <MAT> are relatively small and may also be ignored. In a process of controlling the legged robot <NUM>, a torque <MAT> related to the above formula (<NUM>) may be compensated by adjusting the foot end contact force between the foot end and the contact surface.

As an embodiment, the fifth term in the second correlation may be ignored to determine a fifth correlation: <MAT>
where: <MAT>
where H<NUM> may be calculated and determined according to the center-of-mass position at the start moment, w may be a fixed value, or calculated and determined according to a pose of the legged robot at each sampling moment, and xt includes the center-of-mass position change amount pt and the center-of-mass acceleration <MAT>, which is to be determined.

<NUM>: Set the center-of-mass position change amount to an n-order polynomial with time as an independent variable, which is specifically:
Set the center-of-mass position change amount to an n-order polynomial with time as an independent variable, which is specifically: <MAT>
where TP = [<NUM> t. tn] ∈ R<NUM>×(n+<NUM>), c* = [c*,<NUM> c*,<NUM>. c*,n]T ∈ Rn+<NUM> is a polynomial coefficient, * represents x, y, and z, and t represents the time interval, that is, a time interval between the moment and a moment corresponding to the spatial path start point, and c refers to the center-of-mass position change parameter and includes all polynomial coefficients. In applications, after the center-of-mass position change parameter c is determined, the center-of-mass position at each sampling moment of a plurality of moments may be calculated according to formula (<NUM>).

As an embodiment, a value of n is any integer greater than or equal to <NUM>.

<NUM>: Take a second-order derivative of formula (<NUM>) relative to time, to determine the following expression: determine a center-of-mass acceleration, and determine a sixth correlation according to the center-of-mass acceleration and the second correlation.

The center-of-mass acceleration is specifically represented as follows: <MAT>.

Substitute formula (<NUM>) and formula (<NUM>) into formula (<NUM>) to determine the sixth correlation as follows: <MAT>
where H = H<NUM>[TT T̈T]T is related to the time interval t, formula (<NUM>) represents a relationship between a polynomial coefficient c and a foot end contact force fi. The relationship is determined by transforming the center-of-mass dynamics equation.

<NUM>: Introduce a selected candidate landing point into formula (<NUM>). The selected candidate landing point refers to a landing point determined for the foot end from a plurality of candidate landing points, also regarded as a target landing point.

As an embodiment, it is assumed that the legged robot plans K (<NUM> < K ≤ h) steps in a preset period and that a leg takes at most one step, and h represents a quantity of legs of the legged robot. The foot end of the legged robot <NUM> that needs to step usually has more than one candidate landing point, a j-th candidate landing point of an i-th leg is represented by rij(j = <NUM>,<NUM>,. , Ni), and Ni represents a quantity of candidate landing points of an i-th foot end.

A set of binary variables βijk(i = <NUM>,<NUM>,. , h; j = <NUM>,<NUM>,. , Nj; k = <NUM>,<NUM>,. , K) is introduced to indicate whether the j-th candidate landing point of the i-th leg of the legged robot <NUM> at a step k is selected. In this way, after the k-th step of the legged robot <NUM>, a landing point of the i-th leg is determined as: <MAT>
where constraint conditions used for constraining the step order are involved, including at least one or more of a first constraint condition, a second constraint condition, and a third constraint condition, and the step order is related to the selected candidate landing point, which is described below:.

The first constraint condition is used for constraining the legged robot to select at most one candidate landing point per leg in response to stepping, which may be specifically expressed as follows: <MAT>.

Formula (<NUM>) indicates that only one binary variable is equal to <NUM> in N;, the rest is <NUM>, "<NUM>" indicates that a candidate landing point is selected, "<NUM>" indicates that no candidate landing point is selected.

The second constraint condition is used for constraining each leg not to withdraw after a step, which may be specifically expressed as follows: <MAT>.

The third constraint condition is used for indicating that a quantity of steps of the legged robot during a preset period satisfies a preset quantity of steps, which may be specifically expressed as follows: <MAT>.

Formula (<NUM>) indicates that in a preset period, the legged robot <NUM> needs to complete K steps, and βijK represents a value of βijk corresponding to each leg after a K-th step (that is, after the last step).

As an embodiment, the constraint conditions used for constraining the step order may be determined by the control device <NUM> from network resources or other devices, or created by the control device <NUM>, and the control device <NUM> may store the constraint conditions used for constraining the step order in any form.

After the k-th step, if the value of βijk is <NUM>, it means that the landing point is not on the candidate landing point, and the candidate landing point rij does not provide an acting force. In response to the value of βijk being <NUM>, it means that rij is a current landing point. In response to the i-th foot end moving, a contact force of an initial landing point of a corresponding leg fis = <NUM>, indicating that the initial landing point does not provide a support force. In response to the i-th foot end being located at the initial landing point, then <MAT>, it means that the initial landing point provides a support force, that is, fis is not <NUM>. Therefore, formula (<NUM>) may be rewritten as the following formula: <MAT>
where fis and Gis respectively represent values of the foot end contact force corresponding to the initial landing point and Gi.

Formula (<NUM>) is described below. Only the foot end in contact with the contact surface can generate the foot end contact force, and the legged robot is a robot with h feet. Therefore, there are at most h foot end contact forces generated by contact with the contact surface at each sampling moment, and the h foot end contact forces are non-zero. In response to the legged robot stepping out a specific foot end, fis corresponding to the foot end is <NUM>, and the contact force of the candidate landing point corresponding to the foot end is determined according to whether the leg falls and whether the landing point is selected. In response to the legged robot not stepping out a specific foot end, the value of fis corresponding to the foot end is not <NUM>.

Since values of fij, w, and H may be different at different moments, the above formula (<NUM>) may be further expressed as the first correlation shown below: <MAT>
where u represents a corresponding moment, fisu represents a value of fis at a u-th moment, Hu represents a value of H of at the u-th moment, and wu represents a value ofw at the u-th moment.

The above content is an exemplary description of the process of creating the first correlation. In the above process, other dynamics equations may be used for describing the center-of-mass motion trajectory of the legged robot <NUM>, thereby transforming the other dynamics equations to determine the first correlation.

The constraint condition set includes one or more constraint conditions. Each constraint condition is a value used for constraining one or more of the center-of-mass position change parameter, the landing point, the step order, and the foot end contact force. Each constraint condition may be in the form of an inequality. The constraint condition set includes one or more of a spatial landing constraint condition, a friction force constraint condition, and a foot end contact force constraint condition. The meaning of each constraint condition may refer to the content discussed above, and details are not described herein again.

Since a size of the foot end contact force of the legged robot <NUM> is different at each sampling moment, a friction force between the foot end and the contact surface is also different at each sampling moment. Therefore, a friction force constraint condition constrains a size of the friction force between the foot end being in contact with the contact surface and the contact surface at each sampling moment. Similarly, a contact force constraint condition constrains a contact force size of the foot end contact force in a normal direction at each sampling moment.

The control device <NUM> may determine the constraint condition set from network resources, or other devices, or create the constraint condition set by itself. The following exemplarily describes the creation of each constraint condition by the control device <NUM>:.

Specifically, the control device <NUM> discretely determines a position reachable by the foot end of the legged robot <NUM> relative to the joint, according to the motion range of the joint and the length of the j oint of the legged robot <NUM>. The j oint is a j oint configured at the landing foot end, which may be specifically a joint directly connected to the foot end, or other joints connected to the foot end through the joint. The motion range of the joint refers to a range including the minimum and maximum angles at which the j oint is able to move, for example, the motion range of the joint is <NUM>° to <NUM>°, which is generally known. The length of the joint is, for example, <NUM> meter.

After discretely determining a plurality of positions reachable by the foot end of the legged robot <NUM> relative to the joint, the control device <NUM> fits the plurality of positions, thereby determining a workspace of the foot end of the legged robot <NUM>. The workspace of the foot end of the legged robot <NUM> is usually a non-convex region, but the workspace may be approximated as a convex polyhedron by a fitting method. The convex polyhedron is specifically a convex polyhedron <NUM> as shown in <FIG>, and each of a plurality of points shown in <FIG> represents a position reachable by the foot end relative to the j oint.

After approximating the workspace as a convex polyhedron, the control device <NUM> may determine a linear inequality representation of each surface in the convex polyhedron, and the linear inequality representation of each surface is specifically expressed as silTxi ≤ dil. The control device <NUM> combines the inequalities of the surfaces of the convex polyhedron to determine formula (<NUM>) as described above.

In a specific implementation, the above formula (<NUM>) may be performed in a local fixed coordinate system of the joint. The local fixed coordinate system of the joint refers to a coordinate system established with a local part of the joint as a coordinate origin, that is, the coordinate origin of the local fixed coordinate system of the joint may be different from a coordinate origin of the world coordinate system. The joint may be any joint related to the landing foot end.

For example, referring to <FIG>, which is a schematic structural diagram of a legged robot <NUM>, the legged robot <NUM> includes a plurality of joints <NUM> and four foot ends <NUM>, and each foot end <NUM> is configured with a plurality of joints. The local fixed coordinate system of the joint is as shown in <FIG>. In the local fixed coordinate system of the joint, each variable may be decomposed into a plurality of variables according to the local fixed coordinate system of the joint.

As discussed above, the control device <NUM> has determined in advance a candidate landing point <NUM> corresponding to a foot end that needs to land, and the control device <NUM> may determine whether a selected candidate landing point <NUM> is located in the convex polyhedron of the foot end according to the above formula (<NUM>). For example, it may be determined whether a landing point of the i-th foot end of the legged robot <NUM> is located in the convex polyhedron after the time interval t.

<NUM>: Convert a landing point position ri into a representation result of the local fixed coordinate system to determine a seventh correlation.

Since the above formula (<NUM>) is a representation result in the local fixed coordinate system, it is necessary to convert the position ri of the landing foot end in the world coordinate system (also referred to as a global coordinate system) into a representation result xi in the local fixed coordinate system, and a specific conversion process is expressed as follows: <MAT>
where pil ∈ R<NUM> is a position of the joint of the i-th foot end in the legged robot <NUM> relative to the center-of-mass of the legged robot <NUM> in a body coordinate system, and Ril ∈ R<NUM> is a pose of the joint relative to the body coordinate system in the local fixed coordinate system. Both pil and Ril are constants.

As an embodiment, in response to the pose of the legged robot <NUM> changing less, Rt may be a constant, or the control device <NUM> may determine according to a given pose of the legged robot <NUM> at a corresponding moment.

<NUM>: Express the center-of-mass position change amount in formula (<NUM>) as a time-related n-order polynomial, and substitute the polynomial into the seventh correlation, and determine an eighth correlation according to the seventh correlation and formula (<NUM>):.

The control device <NUM> combines formulas (<NUM>), (<NUM>), (<NUM>), and (<NUM>) to determine the eighth correlation as follows: <MAT>
where: <MAT> <MAT> <MAT>.

However, since it is uncertain which leg the legged robot <NUM> takes each time, the landing point of the legged robot after taking k steps may be expressed using the following correlation: <MAT>
where ris represents an initial landing point ris at an initial moment (i=<NUM>, <NUM>, <NUM>,. , h) The above formula (<NUM>) indicates that in response to a leg of the legged robot <NUM> not moving, a position of the leg is at the initial landing point, and if the leg moves, the position of the leg is at the selected candidate landing point.

Substitute formula (<NUM>) into formula (<NUM>) to determine the eighth correlation as follows: <MAT>.

<NUM>: Introduce time into the eighth correlation to determine the spatial landing constraint condition.

Since values of some amounts corresponding to the spatial landing constraint condition are different at different moments, time may be introduced into the eighth correlation to determine the spatial landing constraint condition as follows: <MAT>
where Aiu, Biu, and biu represent Ai, Bi, and bi corresponding to the u-th moment respectively.

An example of how the control device <NUM> creates the friction force constraint condition and the contact force constraint condition is described below:
(<NUM>) Determine the friction force constraint condition.

Each foot end contact force fi (i=<NUM>, <NUM>,. , h) is constrained by a friction force. The friction force constraint is to constrain the foot end contact force to be in a friction cone. The friction cone is generally a cone, but since the expression of the cone is a non-linear trigonometric function, the cone is approximated as an inscribed pyramid in this embodiment of this disclosure. The inscribed pyramid may be represented jointly by four surfaces of the pyramid. Therefore, the friction force constraint condition in this embodiment of this disclosure may be specifically approximately expressed using the following ninth correlation: <MAT>
where a normal vector corresponding to an initial landing point ris may be represented as nis, and a normal vector corresponding to a candidate landing point rij may be represented as nij. Nis = -[µinis - οi µinis + oi µinis - tis µinis + tis] ∈ R<NUM>×<NUM>, nis represents a normal vector of a landing point of an i-th leg, ois represents a vector of a landing point of an i-th foot end in a tangential direction, tis represents a vector of the landing point of the i-th foot end in another tangential direction, and µi represents a friction coefficient between the foot end and the contact surface. Nis may be understood as constraints of the four surfaces of the friction cone, and the foot end contact force corresponding to the initial landing point satisfying formula (<NUM>) is located in the friction cone.

Nij = - [µinij - oi µinij + οi µinij - tij µinij + tij] ∈ R<NUM>×<NUM>, nij represents a normal vector of a landing point of an i-th leg, oij represents a vector of a landing point of an i-th foot end in a tangential direction, tij represents a vector of the landing point of the i-th foot end in another tangential direction, and µi represents a friction coefficient between the foot end and the contact surface. Nij may be understood as constraints of the four surfaces of the friction cone, and the foot end contact force corresponding to the initial landing point satisfying formula (<NUM>) is located in the friction cone. fis represents the foot end contact force of the legged robot <NUM> corresponding to the initial landing point, and fij represents the foot end contact force of the legged robot <NUM> corresponding to the candidate landing point.

In response to the legged robot <NUM> being at the initial landing point, a value of fis corresponding to the initial landing point of the legged robot <NUM> is not <NUM>, and on the contrary, a value of fij is <NUM>. In response to the legged robot <NUM> moving from the initial landing point to the candidate landing point, fis corresponding to the initial landing point of the legged robot <NUM> takes a value of <NUM>, and on the contrary, fij takes a value other than <NUM>.

For example, referring to <FIG>, which is an example diagram of a friction cone, the friction cone is a cone shown in <FIG>, and in this embodiment of this disclosure, the cone is replaced by the inscribed pyramid shown in <FIG>.

For example, further referring to <FIG>, a local coordinate system determined by a normal direction of the contact point is shown in <FIG>. The local coordinate system may refer to oi, ni and ti as shown in <FIG>, and oi, ni, and ti in <FIG> correspond to oi, ni and ti in <FIG> respectively.

A value of the corresponding friction coefficient may also be different in response to the material of the contact surface contacted by the foot end being different. At the same moment, contact surfaces contacted by different foot ends are different, and friction force coefficients between the different foot ends and the contact surfaces may also be different.

In this embodiment of this disclosure, description is made using that the cone is approximated as an inscribed pyramid as an example, but the cone may be approximated as another multi-pyramid, which is not specifically limited.

<NUM>: Introduce time into formula (<NUM>) to determine the friction force constraint condition.

Introduce moment, so that the above formula (<NUM>) may be expressed as the following friction force constraint condition: <MAT>
where fisu represents a foot end contact force between an i-th foot end and an initial landing point at a u-th moment, and fijk represents a foot end contact force of the i-th foot end and a j-th candidate landing point at a k-th moment.

During the motion of the legged robot <NUM>, an excessively strong foot end contact force between the foot end and the contact surface is likely to damage a component of the legged robot <NUM>. Therefore, the contact force constraint condition may be set to constrain the foot end contact force between the legged robot <NUM> and the contact surface, so as to avoid an excessively strong acting force between the legged robot <NUM> and the contact surface during each motion.

An example of how the control device <NUM> creates the contact force constraint condition is described below:.

Since the first correlation, the second correlation, and the constraint condition set include relatively few correlations, and there are many unknowns to be solved, it is not the only solution to solve the center-of-mass position change parameter, the landing point, and the step order based on the first correlation, the second correlation, and the constraint condition set. Therefore, in response to solving the center-of-mass position change parameter, the target landing point, and the step order described above, a target center-of-mass position change parameter, a target landing point, and a target step order may be determined randomly from the values satisfying the first correlation, the second correlation, and the constraint condition set.

Alternatively, in order to determine a better center-of-mass position change parameter, a better target landing point, and a better step order, a cost function may further be introduced in this embodiment of this disclosure. The cost function is used for selecting an optimal center-of-mass position change parameter, an optimal target landing point, and an optimal step order. Further, the optimal center-of-mass position change parameter is determined as the target center-of-mass position change parameter, the optimal landing point is determined as the target landing point, and the optimal step order is determined as the target step order.

Since solving the mixed integer quadratic programming necessarily makes it possible to determine a corresponding solution, the determining of the target center-of-mass position change parameter, the target landing point, and the target step order may be transformed into a mixed integer quadratic programming problem in this embodiment of this disclosure. To this end, the cost function in this embodiment of this disclosure includes at least a quadratic term of one or more variables, and the one or more variables may be any variable related to a candidate result satisfying the first correlation, the second correlation, and the constraint condition set. The quadratic term may be constructed according to the quadratic of the variable.

In a possible embodiment, the cost function includes at least one of A1 to A3 as follows:.

The first center-of-mass state data includes one or more of a first center-of-mass position, a first center-of-mass acceleration, and a first center-of-mass velocity, and the desired center-of-mass state data includes one or more of a desired center-of-mass position, a desired center-of-mass acceleration, and a desired center-of-mass velocity. Therefore, A3 may specifically include one or more of the following:
A3-<NUM>: A quadratic term of a difference between a first center-of-mass position and a desired center-of-mass position at the end moment in the preset period.

In a possible embodiment, the desired center-of-mass position is determined according to a landing point in the candidate result.

The desired center-of-mass position may be understood as a position of a suitable height above a center point of a polygon constituted by the target landing point of the legged robot in the preset period, and the position of a suitable height above the center point may specifically refer to adding a constant value based on the center point to determine the desired center-of-mass position. The constant value may be determined according to a height of the legged robot. Alternatively, the desired center-of-mass position may be preset. For example, the target landing point specifically includes four target landing points, center points of the four target landing points may be determined, and then the height of the legged robot <NUM> may be added based on the center points, thereby determining the desired center-of-mass position.

The first center-of-mass position may be determined according to the center-of-mass position change parameter, and a specific calculation formula may refer to the above formula (<NUM>) and formula (<NUM>).

A3-<NUM>: A quadratic term of a difference between a first center-of-mass velocity and a desired center-of-mass velocity at the end moment in the preset period.

In a possible embodiment, the desired center-of-mass velocity is determined according to the landing point in the candidate result, to be specific, after the desired center-of-mass position is determined, the desired center-of-mass velocity is determined by dividing a difference between the desired center-of-mass position and an initial center-of-mass position by time.

For example, the first center-of-mass velocity is determined according to a first derivative correlation of formula (<NUM>).

A3-<NUM>: A quadratic term of a difference between a first center-of-mass acceleration and a desired center-of-mass acceleration at the end moment in the preset period.

In a possible embodiment, the desired center-of-mass acceleration is determined according to the landing point in the candidate result, to be specific, after the desired center-of-mass velocity is determined, the desired center-of-mass acceleration is determined by dividing a difference between the desired center-of-mass velocity and an initial center-of-mass velocity by time. For example, the first center-of-mass acceleration is determined according to formula (<NUM>).

The following is an analysis of a role of each of the above quadratic terms:.

Combining the above A1 to A3, an expression of a cost function is as follows: <MAT>
where Jgrf is a weighted sum of squares of all foot end contact forces in the preset period, Jlen is a weighted sum of squares of a difference between center-of-mass position change amounts at every two adjacent moments, and Jtgt is a weighted sum of squares of a difference between the first center-of-mass position and the desired center-of-mass position at the end moment in the preset period, a difference between the first center-of-mass velocity and the desired center-of-mass velocity at the end moment in the preset period, and a difference between the first center-of-mass acceleration and the desired center-of-mass acceleration at the end moment in the preset period.

After introducing the construction of the first correlation, the constraint condition set, and the cost function, the following exemplarily describes how to use the constructed first correlation and constraint condition set to control the motion process of the legged robot in this embodiment of this disclosure in combination with the flow of the method for controlling motion of a legged robot shown in <FIG>. With reference to <FIG>, the method is performed by an electronic device, such as the control device <NUM> in <FIG>, and the method includes:
S501: Determine, according to state data of a legged robot at a start moment in a preset period, a candidate landing point of each foot end in a preset period.

In controlling the motion of the legged robot <NUM>, the control device <NUM> controls the lifting and lowering of the foot end of the legged robot <NUM>, thereby implementing the movement of the legged robot <NUM>, so that the legged robot <NUM> can complete the motion from the start moment to the end moment in the entire preset period. The start moment is a position where the legged robot <NUM> is located at the current moment. The end moment is a position to be reached by the legged robot <NUM>, which may be set in advance or determined by the control device <NUM> according to a task to be performed by the legged robot <NUM>.

The meaning of the state data and a method for determining the state data may refer to the content discussed above, and details are not described herein again. The state data at the start moment may include a center-of-mass position at the start moment. The state data at the start moment may further include a center-of-mass velocity and a center-of-mass acceleration at the start moment, and in addition, the state data may further include a given pose of the legged robot <NUM> at the start moment. The given pose, the center-of-mass position, the center-of-mass velocity, or the center-of-mass acceleration may all be represented by coordinates in a coordinate system or by vectors, or the like.

As an embodiment, the preset period, the start moment, and the end moment are related to a sampling period of the selected legged robot <NUM>, and the preset period, the start moment, and the end moment may be flexibly set according to needs. For example, the control device <NUM> may determine the current moment of the legged robot <NUM> as the start moment, the control device <NUM> may determine a moment corresponding to the <NUM>rds as the end moment, and the <NUM>rds may be selected as a start moment of the motion of the legged robot <NUM> in a next sampling period.

As an embodiment, candidate landing points of each foot end within a preset period may be determined according to state data at a start moment.

During the process from the start moment to the end moment of the legged robot <NUM>, there may be one or more foot ends to land, and each foot end may land one or more times, which is specifically related to the set start moment and end moment. The control device <NUM> may pre-determine a plurality of candidate landing points for the foot end that needs to land each time. The candidate landing point refers to a possible landing point of the legged robot <NUM> in the preset period. The landing point may be represented by coordinates in a world coordinate system or by vectors, or the like.

In a specific implementation, the control device <NUM> may collect an environment image of the legged robot <NUM> through the visual sensing unit <NUM>, and construct a conversion relationship between each pixel in the environment image and the world coordinate system. The control device <NUM> determines a possible candidate landing point along a moving direction from the start moment to the end moment through the environment image and the conversion relationship.

Specifically, the control device <NUM> may identify an obstacle that occurs from the start moment to the end moment according to the environment image, determine a position of a non-obstacle along the moving direction from the start moment to the end moment according to the conversion relationship, and use the determined position as a candidate landing point.

Alternatively, the control device <NUM> collects a three-dimensional point cloud map of the environment through the visual sensing unit <NUM>, for example, the three-dimensional point cloud map may be determined by collection in response to the visual sensing unit <NUM> being an RGBD camera, or the three-dimensional point cloud map may be determined by, for example, collecting a plurality of images of the environment in which the legged robot <NUM> is currently located, and reconstructing the plurality of environment images three-dimensionally. According to the three-dimensional point cloud map of the environment, a candidate plane in which the legged robot <NUM> may land is determined from the three-dimensional point cloud map, and specifically, a plane capable of supporting the legged robot may be determined as the candidate plane from the three-dimensional point cloud map. The control device <NUM> determines a candidate landing point corresponding to the foot end of the legged robot from the candidate plane.

Since the legged robot <NUM> may land more than once in the preset period, the control device <NUM> may determine all possible candidate landing points of the robot in the preset period, and all possible candidate landing points are the corresponding candidate landing points for each landing. Alternatively, in determining the candidate landing point, a possible landing region of the legged robot <NUM> for each landing may be determined according to a motion velocity of the legged robot <NUM>, and the candidate landing point may be selected sequentially from the possible landing region for each landing according to any of the foregoing methods.

For example, further referring to <FIG>, the current position of the legged robot <NUM> is shown in <FIG>, and the control device <NUM> respectively determines candidate landing points <NUM> of the foot end, which include a plurality of circles on the ground shown in <FIG>.

Assuming that the legged robot <NUM> takes four steps in a preset period, one step for each leg, the candidate landing points of each leg are specifically shown in Table <NUM> below:.

Table <NUM> shows that candidate landing points corresponding to a left front leg in a preset period are <NUM>, <NUM>, and <NUM> respectively; candidate landing points corresponding to a right front leg are <NUM> and <NUM>; candidate landing points corresponding to a left hind leg are <NUM>, <NUM>, and <NUM>; and candidate landing points corresponding to a right hind leg are <NUM>, <NUM>, and <NUM>.

S502: Determine, according to the state data at the start moment and the candidate landing point of each foot end, a first correlation between a center-of-mass position change parameter, a candidate landing point, and a foot end contact force.

The first correlation is, for example, formula (<NUM>) discussed above, and the meaning of the change parameter may refer to the content discussed above.

Referring to the first correlation shown in the above formula (<NUM>), the first correlation is not only related to the center-of-mass position change parameter, the landing point, and the foot end contact force, but also includes parameters such as Hu and wu. Therefore, values of these parameters may be determined by knowns such as the state data, thereby determining a first correlation including only three unknowns of the center-of-mass position change parameter, the landing point, and the foot end contact force.

The following is a specific example of how the control device <NUM> determines the first correlation including only three unknowns of the center-of-mass position change parameter, the landing point, and the foot end contact force:
In a first possible manner, the control device <NUM> calculates a parameter such as Hu corresponding to the start moment in formula (<NUM>) according to the state data at the start moment, thereby determining a first correlation corresponding to the start moment.

Specifically, a value of L̇ in a wu calculation formula involved in formula (<NUM>) may be <NUM>, and a value of w is calculated according to formula (<NUM>) according to the center-of-mass position at the start moment. In this case, the value of w at each sampling moment is the same, and thus a value of wu at each sampling moment is the same.

Alternatively, in another case, the control device <NUM> may calculate L̇ according to the given pose at the start moment and the given pose at the end moment in combination with formulas (<NUM>) to (<NUM>), thereby calculating the value of wu corresponding to the start moment. The control device <NUM> may calculate a value of Hu according to a calculation formula of Hu and the center-of-mass position at the start moment.

The control device <NUM> substitutes the calculated value of Hu at the start moment and the calculated value of wu at the start moment into formula (<NUM>), thereby determining the first correlation corresponding to the start moment.

In this manner, a target center-of-mass position change coefficient, a target foot end contact force, a target step order, and a target landing point are determined according to the first correlation corresponding to the start moment, the correlations involved are less, and the calculation amount is small.

In a second possible manner, a plurality of sampling moments are determined from a preset period, a time interval corresponding to each sampling moment is determined, that is, a time interval between each sampling moment and the start moment is determined, and then the first correlation corresponding to each sampling moment is determined.

In a process of controlling the motion of the legged robot <NUM>, it is necessary to determine a center-of-mass position of the legged robot <NUM> at an arbitrary moment from the start moment to the end moment, but such a calculation amount is relatively large. For this reason, in this embodiment of this disclosure, the control device <NUM> may determine the center-of-mass position at each sampling moment in the plurality of moments in the sampling period, and then determine a center-of-mass motion trajectory of the legged robot <NUM> based on the center-of-mass positions at the plurality of moments. The following describes the method for determining the first correlation corresponding to each sampling moment:
S1. <NUM>: Determine a plurality of sampling moments.

Specifically, the plurality of sampling moments are determined from the preset period, and a time interval between each sampling moment and the start moment is determined.

The control device <NUM> may predict a preset period required by the legged robot according to a total length of the preset period and a motion velocity of the legged robot <NUM>, or the control device <NUM> is pre-configured with the preset period required by the legged robot <NUM>. The preset period is a duration corresponding to the sampling period. The control device <NUM> may determine a plurality of sampling moments from the sampling period.

After determining the preset period, the control device <NUM> may randomly sample from the preset period to determine a plurality of sampling moments. The method for determining the sampling moment by randomly sampling is simpler.

Alternatively, the control device <NUM> determines a plurality of sampling moments by sampling from a duration of each motion stage according to a step time of the legged robot <NUM>. Since there is the corresponding sampling moment at each motion stage, it can be ensured that there is a corresponding sampling moment at each motion stage, which is conducive to improving the accuracy of a center-of-mass motion trajectory determined later.

As an embodiment, time intervals between every two adjacent sampling moments may be the same or different. Being different refers to that the time intervals between every two adjacent sampling moments are not completely the same, or there is a different time interval between two adjacent sampling moments.

As an embodiment, the greater a quantity of sampling moments, the more reasonable the distribution of sampling moments, and the higher the reliability of the determined center-of-mass motion trajectory. However, the more sampling moments, the greater a quantity of subsequent correlations constructed to solve the target center-of-mass position change parameter, the target landing point, and the target order, and the longer the time required for solving the target center-of-mass position change parameter, the target landing point, and the target order, so it is extremely important to properly program a quantity of sampling points. In an embodiment of this disclosure, the sampling moment includes at least a stage start moment and a stage end moment for each motion stage, and at least an intermediate moment in each motion stage. The intermediate moment refers to an arbitrary moment between the stage start moment and the stage end moment of the motion stage, for example, an intermediate moment between a start moment of the motion stage and an end moment of the motion stage may be selected.

For example, a quadrupedal walking gait of the legged robot <NUM> is set as a sampling period, and the control device <NUM> sequentially divides a motion process of the legged robot <NUM> in the sampling period into eight motion stages, which are specifically: quadrupedal support for center-of-mass movement, first stepping, second stepping, quadrupedal support for center-of-mass movement, quadrupedal support for center-of-mass movement, third stepping, fourth stepping, and quadrupedal support for center-of-mass movement.

Referring to a schematic distribution diagram of sampling moments shown in <FIG>, durations of the eight motion stages are respectively t<NUM>, t<NUM>, t<NUM>, t<NUM>, t<NUM>, t<NUM>, t<NUM>, and t<NUM> shown in <FIG>. For ease of description, the eight motion stages are referred to as a first motion stage, a second motion stage, and so on. The control device <NUM> determines a plurality of sampling moments by sampling from each motion stage, i.e., sampling moments <NUM> and <NUM> in the first motion stage, sampling moments <NUM>, <NUM>, and <NUM> in the second motion stage, sampling moments <NUM>, <NUM>, and <NUM> in the third motion stage, sampling moments <NUM>, <NUM>, and <NUM> in the fourth motion stage, and so on, as shown in <FIG>. In <FIG>, sampling moments represented by the same shape represent that the sampling moments belong to the same motion stage, and sampling moments represented by different shapes represent that the two sampling moments belong to two different motion stages.

Since each motion stage in a sampling period is continuous, an end moment of a specific motion stage may be regarded as both a sampling moment in the motion stage and a sampling moment in a next motion stage. For example, the sampling moment <NUM> shown in <FIG> above may be regarded as a sampling moment in both the second motion stage and the third motion stage.

<NUM>: Determine, for each sampling moment, a first correlation between a center-of-mass position change parameter, a foot end contact force, and a landing point at the sampling moment according to a center-of-mass position at a start moment, a time interval between each sampling moment and the start moment, and a second correlation.

The second correlation represents a change relationship between the foot end contact force of the legged robot at each sampling moment and a center-of-mass position, a center-of-mass acceleration, a candidate landing point, and the foot end contact force corresponding to the sampling moment. The center-of-mass position may represent a sum of the start center-of-mass position and the center-of-mass position change amount. The second correlation may specifically refer to the above formula (<NUM>).

The control device <NUM> determines each time interval between the start moment and each sampling moment, so that the first correlation between the center-of-mass position change parameter, the landing point, and the foot end contact force can be determined in combination with the second correlation.

In an embodiment, according to a given pose at a start moment and a given pose at an end moment in a preset period, a given pose of a legged robot for each sampling moment, and a pose change angle parameter of the legged robot for each sampling moment are determined; for each sampling moment, a first derivative of a center-of-mass angular momentum relative to time at the sampling moment is determined according to the given pose at the sampling moment and the pose change angle parameter at the sampling moment; and according to the first derivative and the second correlation, the first correlation corresponding to the sampling moment is determined.

Specifically, the control device <NUM> may calculate values of Hu and wu in the above formula (<NUM>) corresponding to each sampling moment, and substitute an initial landing point ris and a candidate landing point rij, so as to determine the first correlation of three unknowns of the center-of-mass position change parameter, the foot end contact force, and the landing point. The content of the calculation of the value of Hu may refer to the content discussed above, and details are not described herein again.

The value of wu may be fixed, or the control device <NUM> determines a corresponding pose change angle of the legged robot at each sampling moment, and determines, according to the pose change angle at each sampling moment and the given pose corresponding to the start moment, a first derivative of a center-of-mass angular momentum at each sampling moment relative to time, that is, a value of L̇, thereby calculating the value of wu corresponding to each sampling moment.

Further, since the control device <NUM> determines a step time of the legged robot <NUM> and then determines a foot end that needs to land in each motion stage, a value of Ni corresponding to each sampling moment in formula (<NUM>) may be determined.

After determining the value of wu, the value of Hu, and the value of Ni at each sampling moment, the determined values corresponding to each sampling moment are substituted into the above formula (<NUM>), so as to determine the first correlation between the center-of-mass position change parameter, the foot end contact force at each sampling moment, and the landing point. If there are a plurality of sampling moments, each sampling moment corresponds to a first correlation.

Further referring to the example shown in <FIG>, values of variables involved in each motion stage are analyzed below:.

S503: Determine, under constraint of a constraint condition set, a target center-of-mass position change parameter, a target step order, and a target landing point that satisfy the first correlation.

The constraint condition set at least includes a constraint condition used for constraining a step order, and the constraint condition used for constraining the step order specifically include a first constraint condition, a second constraint condition, and a third constraint condition. The first constraint condition is specifically shown as the foregoing formula (<NUM>), the second constraint condition is specifically shown as the foregoing formula (<NUM>), and the third constraint condition is specifically shown as the foregoing formula (<NUM>). In addition, the constraint condition set further includes one or more of a spatial landing constraint condition, a friction force constraint condition, and a foot end contact force constraint condition.

For example, in response to the legged robot <NUM> only taking one step in a preset period, a corresponding constraint condition used for constraining a step order for the legged robot <NUM> may only include the first constraint condition or the third constraint condition.

Since a unique solution cannot be determined according to the first correlation at each sampling moment and the constraint condition set, the control device <NUM> may determine a plurality of sets of candidate results that satisfy the first correlation at each sampling moment and the constraint condition set. Each set of candidate results includes the center-of-mass position change parameter, the target landing point, and the step order. If the step order and the target landing point are represented by βijk, then a value of βijk is determined in the candidate results, and the step order and the target landing point corresponding to each step can be further determined according to the value of βijk.

There may be one or more target landing points in a set of candidate results, which is specifically related to landing times of the legged robot in the preset period. Certainly, each set of candidate results may further include a foot end contact force fiju corresponding to each sampling moment.

Further referring to the example shown in Table <NUM> above, the determined values in a set of candidate results are shown in Table <NUM> below:.

From the above Table <NUM>, it can be seen that in in response to not taking a step (k=<NUM>), each foot end of the legged robot <NUM> is located at the initial landing point, and in response to taking a first step (k=<NUM>), the legged robot <NUM> moves a right front leg, and the corresponding landing point is the candidate landing point represented by <NUM>; in response to taking a second step (k=<NUM>), the legged robot moves a left hind leg, and the corresponding landing point is the candidate landing point represented by <NUM>; in response to taking a third step (k=<NUM>), the legged robot moves a left front leg, and the corresponding landing point is the candidate landing point represented by <NUM>; and in response to taking a fourth step (k=<NUM>), the legged robot moves a right hind leg, and the corresponding landing point is the candidate landing point represented by <NUM>.

In order to describe the motion process of the legged robot <NUM> more clearly, referring to a schematic diagram of motion of a legged robot <NUM> shown in <FIG>, the right front leg of the legged robot <NUM> is currently at a landing point B, candidate landing points for a next step include <NUM> and <NUM>, and the right front leg is to land on <NUM> next time. Similarly, the left hind leg of the legged robot <NUM> is currently at a landing point C, corresponding candidate landing points for a next step are <NUM>, <NUM>, and <NUM>, a next landing point of the right hind leg is <NUM>, and so on.

In a possible embodiment, the control device <NUM> may randomly select a set of candidate results from the plurality of sets of candidate results as a target result, that is, take a center-of-mass position change parameter in the set of candidate results as a target center-of-mass position change parameter, take a landing point in the candidate results as a target landing point, and determine a step order in the candidate results as a target step order.

In another possible embodiment, the control device <NUM> may determine, from the plurality of sets of candidate results, a candidate result corresponding to an optimized cost function, and take the candidate result corresponding to the optimized cost function as a target result.

Further, in response to the constraint condition set further including a spatial landing constraint condition, the spatial landing constraint condition is used for constraining a landing point of a foot end of the legged robot to be within a workspace of the foot end at each step, where a landing point of the foot end at each step is represented by a correlation between the step order, the candidate landing point of the foot end, and an initial landing point of the foot end. The process of determining the candidate result by the control device <NUM> is described as an example below:
Step <NUM>: Determine, for each sampling moment, a target constraint relationship between the center-of-mass position change parameter, the step order, and the candidate landing point according to the given pose of the legged robot <NUM> at each sampling moment and the spatial landing constraint condition.

An expression of the spatial landing constraint condition may refer to formula (<NUM>) discussed above. In formula (<NUM>), in addition to the center-of-mass position change parameter c, the candidate landing point, and the step order, some variables that need to be solved by the control device <NUM> may further be included, to be specific, such as Aiu, Biu, biu, and Ni in formula (<NUM>). The following exemplarily describes the method for determining these variables by the control device <NUM>:.

In response to a joint length of the legged robot <NUM> and a rotation range of the joint being known, the control device <NUM> may calculate values of Si and di corresponding to the legged robot. Alternatively, in response to the j oint length and the j oint rotation range of the legged robot <NUM> respectively being the same as a joint length and a rotation range of a conventional legged robot, the control device <NUM> may directly determine pre-stored values of Si and di.

Lengths of any two legs of the legged robot <NUM> are the same, and a rotation range of each leg of any two legs is the same, so the values of Si and di corresponding to each leg of the legged robot <NUM> are the same. If a length of one leg of the legged robot <NUM> is different from a length of another leg, or a rotation range of one leg of the legged robot <NUM> is different from a rotation range of another leg, the control device <NUM> may respectively determine the values of Si and di corresponding to each leg of the legged robot <NUM>.

Further, the control device may calculate a corresponding given pose of the legged robot <NUM> at each sampling moment according to the given pose at the start moment and the given pose at the end moment, and then in combination with the above formula (<NUM>) to formula (<NUM>). That is, a value of Rt of the legged robot <NUM> is determined. Then, values of Aiu, Biu, biu, and Ni corresponding to each sampling moment may be calculated in combination with formula (<NUM>) and formula (<NUM>). The known Aiu, Biu, biu, and Ni at each sampling moment are substituted into formula (<NUM>), so as to determine a target constraint relationship between the center-of-mass position change parameter, the step order, and the candidate landing point at each sampling moment.

In a possible case, if the pose of the legged robot <NUM> changes less, the value of Rt may also be a fixed value.

As an embodiment, in response to the constraint condition set further including a friction force constraint condition, the meaning of the friction force constraint condition may refer to the content discussed above, and details are not described herein again. The control device <NUM> may determine a constraint relationship between the landing point and the foot end contact force at each sampling moment according to the candidate landing point corresponding to each sampling moment and the friction force constraint condition. The friction force constraint condition is specifically shown in the above formula (<NUM>).

Specifically, the control device <NUM> may determine the candidate landing point corresponding to each sampling moment, represent Nij and Nis using the candidate landing point corresponding to the sampling moment, and determine a fourth constraint relationship of the foot end contact force fiju corresponding to each sampling moment, and a fifth constraint relationship of the foot end contact force fisu of the initial landing point corresponding to each sampling moment.

As an embodiment, in response to the constraint condition set further including a contact force constraint condition, the meaning of the contact force constraint condition may refer to the content discussed above, and details are not described herein again. The control device <NUM> may represent the candidate landing point as nij, and introduce a known upper limit of the contact force into the contact force constraint condition described above, that is, formula (<NUM>), so as to determine a sixth constraint relationship between each sampling moment βijk and the foot end contact force fiju, and a seventh constraint relationship between each sampling moment and the foot end contact force fisu.

Step <NUM>: Determine a plurality of sets of candidate results that satisfy a first correlation at each sampling moment and a target constraint relationship at each sampling moment.

The control device <NUM> may determine each set of candidate results satisfying these relationships according to the first correlation at each sampling moment and the target constraint relationship at each sampling moment. The meaning of the candidate results may refer to the above contents, and details are not described herein again.

In response to the constraint condition set further including a friction force constraint condition and/or a contact force constraint condition, a plurality of sets of candidate results that satisfy the first correlation at each sampling moment, the target constraint relationship at each sampling time, the fourth constraint relationship at each sampling moment, the fifth constraint relationship, the sixth constraint relationship, and the seventh constraint relationship are determined.

For example, each set of candidate results is to specifically satisfy each of the following correlations: <MAT>
where k represents any selected sampling moment, and the meanings of other letters in the above formula may refer to the content discussed above, and details are not described herein again. T(<NUM>) represents the center-of-mass change amount corresponding to the start moment, v<NUM> represents the center-of-mass velocity corresponding to the start moment, and a<NUM> represents the center-of-mass acceleration corresponding to the start moment.

Since the above involved correlations are still less than a quantity of unknowns to be solved, there are a plurality of sets of candidate results satisfying the above correlation, and after determining the plurality of sets of candidate results, the control device <NUM> may arbitrarily select one set as the target result; or minimize the cost function to determine the target result.

In an embodiment, a plurality of sets of candidate results that satisfy a first correlation and a constraint condition set are determined; each set of candidate results includes a center-of-mass position change parameter, a step order, and a landing point; a cost function is minimized according to the plurality of sets of candidate results to determine a target result from the plurality of sets of candidate results; and the cost function is a quadratic term constructed according to a correlation amount included in the candidate results, and the target result includes a target center-of-mass position change parameter, a step order, and a target landing point.

In an embodiment, for each set of candidate results in the plurality of sets of candidate results, a sum of squares of the foot end contact force in the preset period, a sum of squares of the center-of-mass position change amount in the preset period, and a sum of squares of a difference between first center-of-mass state data at the end moment of the preset period and desired center-of-mass state data are summed up to determine a value of the cost function corresponding to the each set of candidate results; the desired center-of-mass state data is determined according to the landing point in the candidate results, and the first center-of-mass state data is determined according to the step order and the center-of-mass position change parameter in the candidate results; and a set of candidate results having the cost function with a smallest value is determined as the target result.

Specifically, after determining the plurality of sets of candidate results, the control device <NUM> may determine a value of the cost function corresponding to each set of candidate results, and determine a candidate result corresponding to the cost function having a smallest value as the target result. Taking the cost function being formula (<NUM>) discussed above as an example, the following introduces the determining of the value of the cost function corresponding to a set of candidate results by the control device <NUM>:.

After determining the value of Jgrf, the value of Jlen, and the value of Jtgt in the cost function shown in formula (<NUM>), the control device <NUM> determines a sum of the value of Jgrf, the value of Jlen, and the value of Jtgt, thereby determining a value of the cost function corresponding to the candidate result.

By analogy, the value of the cost function corresponding to each set of candidate results of the control device <NUM> may be determined, thereby determining a candidate result corresponding to the cost function having the smallest value as the target result.

S504: Control, according to the target center-of-mass position change parameter, the target step order, and the target landing point, motion of the legged robot in the preset period.

The control device <NUM> may control the corresponding joint of the legged robot <NUM> to implement the lifting and lowering of each foot of the legged robot, thereby driving the legged robot <NUM> to move along a moving path. Specifically, the control device <NUM> controls target motion control parameters such as a joint torque of the corresponding joint of the legged robot <NUM> to cause at least one foot of the legged robot to support the movement of the legged robot, and to cause a true center-of-mass position of the legged robot to be as far as possible maintained at the center-of-mass position determined above. Therefore, in response to the control device <NUM> determining the target center-of-mass position change parameter, the target step order, and the target landing point, the control device <NUM> may first determine the target motion control parameters, and then control the motion of the legged robot <NUM> according to the target motion control parameters.

The process of determining the target motion control parameters by the control device <NUM> is described below:
After determining the target result, the control device <NUM> determines the target center-of-mass position change parameter, the target step order, and the target landing point. Therefore, the control device <NUM> may determine the center-of-mass position corresponding to any moment according to the start center-of-mass position, the center-of-mass position change parameter, and the target step order. The specific calculation formula involved may refer to the above formula (<NUM>) and formula (<NUM>). For example, after the control device <NUM> determines the center-of-mass position change parameter c, the center-of-mass position at each moment can be calculated; and after determining the value of βijk, the control device <NUM> can determine the leg of each step, that is, the step order, and the candidate landing point selected for each step, that is, the target landing point.

For example, referring to <FIG>, which is an exemplary diagram of a motion process of a legged robot <NUM>, the center-of-mass motion trajectory of the legged robot may be shown as <NUM> in <FIG>. It can be seen from <FIG> that, the center-of-mass position of the legged robot <NUM> varies continuously over time with less fluctuation.

The control device <NUM> determines the center-of-mass position of the legged robot at each sampling moment according to the target center-of-mass position change parameter; and determines the desired foot end position of the legged robot at each sampling moment in the preset period according to the start landing point, the target step order, and the target landing point at the start moment.

Specifically, the control device <NUM> determines the corresponding foot of the legged robot <NUM> that needs to land at each motion stage according to the determined target landing point at each sampling moment and the target step order, and performs interpolation on the start landing point and the target landing point, thereby determining the corresponding desired foot end position of the legged robot <NUM> at each sampling moment.

The control device <NUM> determines the desired pose of the legged robot at each sampling moment according to the given pose at the start moment and the desired pose of the legged robot <NUM> at the end moment. Specifically, a desired pose change angle corresponding to each sampling moment is calculated, so as to calculate the corresponding desired pose of the legged robot <NUM> at each sampling moment according to the desired pose change angle corresponding to each sampling moment. The specific calculation formula may refer to the above formula (<NUM>) to formula (<NUM>), where the desired pose at the end moment may be determined according to the landing point of the legged robot <NUM> at the end moment.

Further, the control device <NUM> performs an inverse kinematic operation on the center-of-mass position of the legged robot at each sampling moment, the desired pose at the sampling moment, and the desired foot end position at the sampling moment, to determine a desired joint rotation angle of the legged robot at the sampling moment. The desired joint rotation angle is differentiated to determine a desired angular velocity corresponding to each sampling moment.

The control device <NUM> determines, for each sampling moment, a joint torque of the legged robot at each sampling moment according to the desired joint rotation angle at each sampling moment and a current joint rotation angle at the sampling moment.

Specifically, the control device <NUM> determines the j oint torque of the legged robot at the corresponding moment through a robot dynamics control method according to the desired joint rotation angle at each sampling moment, the desired angular velocity, the current joint rotation angle at the sampling moment, and the angular velocity, to determine the target motion control parameters.

During a control process, the control device <NUM> determines a desired foot end contact force according to the desired pose, the desired center-of-mass position, a determined pose, and a center-of-mass position, and determines a feed-forward torque through multiplying the optimized foot end contact force by the transposition corresponding to a Jacobian matrix to convert the foot end contact force to a joint. Then, a feedback torque is calculated by using independent joint control according to the desired joint rotation angle and the joint angle of the joint. Finally, a sum of the feed-forward torque and the feedback torque is limited, and a final torque control signal for controlling the legged robot <NUM> is determined.

As an embodiment, steps of S501 to S504 may be performed by the trajectory generation unit <NUM>, or the visual sensing unit <NUM> is configured to collect the state data at the start moment in the preset period, the trajectory generation unit <NUM> executes the steps of S501 to S503, and a trajectory control unit <NUM> executes the step of S504.

In this embodiment of this disclosure, in the process of controlling the motion of the legged robot <NUM>, the center-of-mass position change parameter, the step order, and the landing point are determined according to a motion process of the legged robot <NUM>. That is, before the motion of the legged robot <NUM>, the programmed motion control parameter of the legged robot <NUM> can be more in line with the motion process of the legged robot. Moreover, since it is unnecessary to set the center-of-mass position change parameter, the step order, the landing point, and the like of the legged robot <NUM>, the intelligence degree of the motion of the legged robot <NUM> is improved.

Based on the same inventive concept, an embodiment of this disclosure provides an apparatus for controlling motion of a legged robot, which is equivalent to being arranged in the control device <NUM> discussed above. Referring to <FIG>, the legged robot includes a plurality of foot ends, and the apparatus <NUM> for controlling motion of a legged robot includes:.

In a possible embodiment, the step order is related to the selected candidate landing point of the corresponding foot end, and the constraint condition used for constraining the step order includes at least one of the following:.

In a possible embodiment, the second determining module <NUM> is specifically configured to:.

In a possible embodiment, the state data at the start moment further includes a given pose at the start moment, and the second determining module <NUM> is specifically configured to:.

In a possible embodiment, the constraint condition set further includes a spatial landing constraint condition, the spatial landing constraint condition is used for constraining a landing point of a foot end of the legged robot to be within a workspace of the foot end at each step, where a landing point of the foot end at each step is represented by a correlation between the step order, the candidate landing point of the foot end, and an initial landing point of the foot end; and The third determining module <NUM> is specifically configured to:
determine, for each sampling moment, a target constraint relationship between the center-of-mass position change parameter, the step order, and the candidate landing point according to the spatial landing constraint condition and a given pose at each sampling moment; and determine the target center-of-mass position change parameter, the target step order, and the target landing point in response to satisfying the target constraint relationship and the first correlation.

In a possible embodiment, the constraint condition set further includes at least one of the following:.

In a possible embodiment, the third determining module <NUM> is specifically configured to:.

In a possible embodiment, the control module <NUM> is specifically configured to:.

The apparatus shown in <FIG> can implement any one of the methods for controlling motion of a legged robot, and details are not described herein again.

Referring to <FIG>, an electronic device <NUM> is represented in the form of a general-purpose computer device. Components of the electronic device <NUM> may include, but are not limited to: at least one processor <NUM>, at least one memory <NUM>, and a bus <NUM> connected to different system components (including the processor <NUM> and the memory <NUM>).

The bus <NUM> represents one or more of several types of bus structures, including a memory bus or a memory controller, a peripheral bus, a processor, or a local bus using any bus structure among various bus structures.

The memory <NUM> may include a readable medium in the form of a volatile memory, such as a random access memory (RAM) <NUM> and/or a cache memory <NUM>, and may further include a read-only memory (ROM) <NUM>. The memory <NUM> may further include a program/utility <NUM> having a set of (at least one) program modules <NUM>. Such program modules <NUM> include, but are not limited to: an operating system, one or more application programs, other program modules, and program data, and each or a combination of these examples may include implementation of a network environment. The processor <NUM> is configured to execute program instructions, etc., stored in the memory <NUM> to implement the method for controlling motion of a legged robot described above.

The electronic device <NUM> may communicate with one or more external devices <NUM> (such as a keyboard and a pointing device), and may also communicate with one or more devices that enable a terminal to interact with the electronic device <NUM>, and/or communicate with any device (such as a router or a modem) that enables the electronic device <NUM> to communicate with one or more other devices. This communication may proceed through an input/output (I/O) interface <NUM>. In addition, the electronic device <NUM> may further communicate with one or more networks (such as a local area network (LAN), a wide area network (WAN), and/or a public network (such as the Internet)) through a network adapter <NUM>. As shown in the drawing, the network adapter <NUM> communicates with other modules of the electronic device <NUM> through the bus <NUM>. It is to be understood that although not shown in the drawing, other hardware and/or software modules may be used in combination with the electronic device <NUM>, including, but not limited to, microcode, a device driver, a redundancy processing unit, an external magnetic disk driving array, a RAID system, a magnetic tape drive, a data backup storage system, and the like.

Based on the same inventive concept, an embodiment of this disclosure provides a storage medium, storing computer instructions, the computer instructions, when run on a computer, causing the computer to perform the method for controlling motion of a legged robot described above.

Based on the same inventive concept, an embodiment of this disclosure provides a computer program product, including computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and executes the computer instructions, to cause the computer device to perform the method for controlling motion of a legged robot described above.

Claim 1:
A method for controlling motion of a legged robot (<NUM>) executed by an electronic device (<NUM>), the legged robot (<NUM>) comprising a plurality of foot ends (<NUM>), and the method comprising:
determining (S501), according to state data of the legged robot (<NUM>) at a start moment in a preset period, a candidate landing point (<NUM>) of each foot end in the preset period;
determining (S502), according to the state data at the start moment and the candidate landing point (<NUM>) of each foot end, a first correlation between a center-of-mass position change parameter, a candidate landing point (<NUM>), and a foot end contact force;
determining (S503), under constraint of a constraint condition set, a target center-of-mass position change parameter, a target step order, and a target landing point that satisfy the first correlation, the constraint condition set comprising a constraint condition used for constraining a step order; and
controlling (S504), according to the target center-of-mass position change parameter, the target step order, and the target landing point, motion of the legged robot (<NUM>) in the preset period.