BALANCE CONTROL METHOD AND APPARATUS FOR WHEEL-LEGGED ROBOT, DEVICE, AND STORAGE MEDIUM
20250353195 ยท 2025-11-20
Inventors
Cpc classification
B62D57/032
PERFORMING OPERATIONS; TRANSPORTING
B62D57/024
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1653
PERFORMING OPERATIONS; TRANSPORTING
International classification
B25J19/00
PERFORMING OPERATIONS; TRANSPORTING
B25J5/00
PERFORMING OPERATIONS; TRANSPORTING
B25J9/10
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A balance control method for a wheel-legged robot is provided. The robot includes a moving wheel, n links, and n rotating joints, the moving wheel being connected to a first link through a first rotating joint of the n rotating joints, and the n links being connected in series through n1 rotating joints other than the first rotating joint, n being a positive integer greater than 1. The method includes: acquiring a state quantity of the wheel-legged robot at a first moment; determining dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment; establishing a sliding surface according to the state quantity at the first moment; calculating rotation torques of the n rotating joints according to the sliding surface and the dynamics model parameters; and controlling the rotating joints according to the rotation torques of the n rotating joints.
Claims
1. A balance control method for a wheel-legged robot, the method being executed by a computer device, the wheel-legged robot comprising: a moving wheel, n links, and n rotating joints, the moving wheel being connected to a first link of the n links through a first rotating joint of the n rotating joints, and the n links being connected in series through n1 rotating joints other than the first rotating joint, where n being a positive integer greater than 1; the method comprising: acquiring a state quantity of the wheel-legged robot at a first moment, the state quantity at the first moment indicating a motion state of the wheel-legged robot at the first moment; determining dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment, the dynamics model parameters being configured to define a mapping relationship between an angular acceleration at the first moment and a rotation torque at a second moment, the angular acceleration at the first moment comprising angular accelerations of the n links and an angular acceleration of the moving wheel, and the rotation torque at the second moment comprising rotation torques of the n rotating joints at the second moment; establishing a sliding surface according to the state quantity at the first moment, the state quantity of the wheel-legged robot approaching a stable value on the sliding surface; calculating the rotation torques of the n rotating joints according to the sliding surface and the dynamics model parameters; and controlling the n rotating joints according to the rotation torques of the n rotating joints at the second moment.
2. The method according to claim 1, wherein the determining dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment comprises: substituting the state quantity at the first moment into the dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment, the inertia matrix indicating masses and moments of inertia of the n rotating joints at the first moment, the bias force matrix indicating a bias force of the wheel-legged robot at the first moment, the gravity matrix indicating a gravity of the wheel-legged robot at the first moment; and determining the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix.
3. The method according to claim 2, wherein the dynamics model parameters comprise: a proportion parameter matrix and an offset parameter matrix, the proportion parameter matrix indicating a proportional relationship between the angular acceleration at the first moment and the rotation torque at the second moment, the offset parameter matrix indicating an offset relationship between the angular acceleration at the first moment and the rotation torque at the second moment; the determining the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix comprises: respectfully processing, by using a selection matrix, a product of an inverse matrix of the inertia matrix and the bias force matrix, and a product of the inverse matrix of the inertia matrix and the gravity matrix, to obtain the offset parameter matrix, the selection matrix being configured to extract the rotation torques of the n rotating joints from the dynamics equation; and processing the inverse matrix of the inertia matrix by using the selection matrix to obtain the proportion parameter matrix.
4. The method according to claim 1, wherein the dynamics equation of the robot is obtained by abstracting the wheel-legged robot into an n-level inverted pendulum model and performing derivation based on an Euler-Lagrange equation.
5. The method according to claim 1, wherein the sliding surface comprises n sliding surfaces, and the n sliding surfaces are configured to constrain the rotation torques of the n rotating joints; the establishing a sliding surface according to the state quantity at the first moment comprises: determining at least two sliding mode parameters for an i.sup.th sliding surface of the n sliding surfaces, i being a positive integer less than or equal to n; and establishing the i.sup.th sliding surface according to the at least two sliding mode parameters and the state quantity at the first moment.
6. The method according to claim 5, wherein the determining at least two sliding mode parameters for an i.sup.th sliding surface of the n sliding surfaces comprises: determining a first sliding mode parameter of the at least two sliding mode parameters from a (2i1).sup.th predicted parameter set, and determining a second sliding mode parameter of the at least two sliding mode parameters from a (2i).sup.th predicted parameter set, wherein sliding mode parameters respectively comprised in the (2i1).sup.th predicted parameter set and the (2i).sup.th predicted parameter set satisfy a constraint condition of a stability criterion.
7. The method according to claim 5, wherein the state quantity comprises: deflection angles of the n links, angular velocities of the n links, and an angular velocity of the moving wheel; the establishing the i.sup.th sliding surface according to the at least two sliding mode parameters and the state quantity at the first moment comprises: processing the deflection angle of an i.sup.th link according to the first sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the i.sup.th link; processing the angular velocity of the moving wheel according to the second sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the moving wheel; and establishing the i.sup.th sliding surface according to the processing result of the i.sup.th link, the processing result of the moving wheel, and the angular velocity of the i.sup.th link.
8. The method according to claim 1, wherein the controlling the n rotating joints according to the rotation torques of the n rotating joints comprises: for a rotating joint of the n rotating joints, controlling a rotating motor corresponding to the rotating joint to rotate according to the rotation torque of the rotating joint.
9. The method according to claim 1, wherein the controlling the n rotating joints according to the rotation torques of the n rotating joints comprises: calculating a task acceleration of the wheel-legged robot at the second moment according to the rotation torques of the n rotating joints, the task acceleration comprising an acceleration related to a mass center of the wheel-legged robot; determining force and torque instructions for whole body joints of the wheel-legged robot at the second moment according to the task acceleration, the whole body joints comprising the n rotating joints; and controlling the whole body joints according to the force and torque instructions at the second moment.
10. The method according to claim 9, wherein the calculating a task acceleration of the wheel-legged robot at the second moment according to the rotation torques of the n rotating joints comprises: determining an angular acceleration at the second moment according to the dynamics equation and the rotation torques of the n rotating joints; determining an expected incremental position and an expected incremental speed of the mass center of the wheel-legged robot at the second moment according to the state quantity at the first moment and the angular acceleration at the second moment, the expected incremental position indicating a distance between a projection of the mass center of the wheel-legged robot on a contact surface and a virtual contact point in a first direction, the expected incremental speed indicating a changing speed of the distance in the first direction, the virtual contact point referring to a center of contact points between the wheel-legged robot and the contact surface; and determining the task acceleration of the wheel-legged robot at the second moment according to the expected incremental position and the expected incremental speed.
11. The method according to claim 1, wherein the state quantity comprises: the deflection angles of the n links, the angular velocities of the n links, and the angular velocity of the moving wheel; the acquiring a state quantity of the wheel-legged robot at a first moment comprises: determining the deflection angles of the n links through an inertial measurement unit and a motor encoder of the wheel-legged robot; and determining the angular velocities of the n links and the angular velocity of the moving wheel through the motor encoder.
12. A balance control apparatus for a wheel-legged robot, the wheel-legged robot comprising: a moving wheel, n links, and n rotating joints, the moving wheel being connected to a first link of the n links through a first rotating joint of the n rotating joints, and the n links being connected in series through n1 rotating joints other than the first rotating joint, where n being a positive integer greater than or equal to 2; the apparatus comprising: a processor and a memory, the memory having a computer program stored therein, the computer program being loaded and executed by the processor to implement: acquiring a state quantity of the wheel-legged robot at a first moment, the state quantity at the first moment indicating a motion state of the wheel-legged robot at the first moment; determining dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment, the dynamics model parameters being configured to define a mapping relationship between an angular acceleration at the first moment and a rotation torque at a second moment, the angular acceleration at the first moment comprising angular accelerations of the n links and an angular acceleration of the moving wheel, and the rotation torque at the second moment comprising rotation torques of the n rotating joints at the second moment; establishing a sliding surface according to the state quantity at the first moment, the state quantity of the wheel-legged robot approaching a stable value on the sliding surface; calculating the rotation torques of the n rotating joints according to the sliding surface and the dynamics model parameters; and controlling the n rotating joints according to the rotation torques of the n rotating joints at the second moment.
13. A non-transitory computer-readable storage medium, the computer-readable storage medium having a computer program stored therein, the computer program being loaded and executed by a processor, causing the processor to implement: acquiring a state quantity of the wheel-legged robot at a first moment, the state quantity at the first moment indicating a motion state of the wheel-legged robot at the first moment; determining dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment, the dynamics model parameters being configured to define a mapping relationship between an angular acceleration at the first moment and a rotation torque at a second moment, the angular acceleration at the first moment comprising angular accelerations of the n links and an angular acceleration of the moving wheel, and the rotation torque at the second moment comprising rotation torques of the n rotating joints at the second moment; establishing a sliding surface according to the state quantity at the first moment, the state quantity of the wheel-legged robot approaching a stable value on the sliding surface; calculating the rotation torques of the n rotating joints according to the sliding surface and the dynamics model parameters; and controlling the n rotating joints according to the rotation torques of the n rotating joints at the second moment.
14. The storage medium according to claim 13, wherein the determining dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment comprises: substituting the state quantity at the first moment into the dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment, the inertia matrix indicating masses and moments of inertia of the n rotating joints at the first moment, the bias force matrix indicating a bias force of the wheel-legged robot at the first moment, the gravity matrix indicating a gravity of the wheel-legged robot at the first moment; and determining the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix.
15. The storage medium according to claim 14, wherein the dynamics model parameters comprise: a proportion parameter matrix and an offset parameter matrix, the proportion parameter matrix indicating a proportional relationship between the angular acceleration at the first moment and the rotation torque at the second moment, the offset parameter matrix indicating an offset relationship between the angular acceleration at the first moment and the rotation torque at the second moment; the determining the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix comprises: respectfully processing, by using a selection matrix, a product of an inverse matrix of the inertia matrix and the bias force matrix, and a product of the inverse matrix of the inertia matrix and the gravity matrix, to obtain the offset parameter matrix, the selection matrix being configured to extract the rotation torques of the n rotating joints from the dynamics equation; and processing the inverse matrix of the inertia matrix by using the selection matrix to obtain the proportion parameter matrix.
16. The storage medium according to claim 13, wherein the dynamics equation of the robot is obtained by abstracting the wheel-legged robot into an n-level inverted pendulum model and performing derivation based on an Euler-Lagrange equation.
17. The storage medium according to claim 13, wherein the sliding surface comprises n sliding surfaces, and the n sliding surfaces are configured to constrain the rotation torques of the n rotating joints; the establishing a sliding surface according to the state quantity at the first moment comprises: determining at least two sliding mode parameters for an i.sup.th sliding surface of the n sliding surfaces, i being a positive integer less than or equal to n; and establishing the i.sup.th sliding surface according to the at least two sliding mode parameters and the state quantity at the first moment.
18. The storage medium according to claim 17, wherein the determining at least two sliding mode parameters for an i.sup.th sliding surface of the n sliding surfaces comprises: determining a first sliding mode parameter of the at least two sliding mode parameters from a (2i1).sup.th predicted parameter set, and determining a second sliding mode parameter of the at least two sliding mode parameters from a (2i).sup.th predicted parameter set, wherein sliding mode parameters respectively comprised in the (2i1).sup.th predicted parameter set and the (2i).sup.th predicted parameter set satisfy a constraint condition of a stability criterion.
19. The storage medium according to claim 17, wherein the state quantity comprises: deflection angles of the n links, angular velocities of the n links, and an angular velocity of the moving wheel; the establishing the i.sup.th sliding surface according to the at least two sliding mode parameters and the state quantity at the first moment comprises: processing the deflection angle of an i.sup.th link according to the first sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the i.sup.th link; processing the angular velocity of the moving wheel according to the second sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the moving wheel; and establishing the i.sup.th sliding surface according to the processing result of the i.sup.th link, the processing result of the moving wheel, and the angular velocity of the i.sup.th link.
20. The storage medium according to claim 13, wherein the controlling the n rotating joints according to the rotation torques of the n rotating joints comprises: for a rotating joint of the n rotating joints, controlling a rotating motor corresponding to the rotating joint to rotate according to the rotation torque of the rotating joint.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
DESCRIPTION OF EMBODIMENTS
[0030] Artificial intelligence (AI) involves a theory, a method, a technology, and an application system that use a digital computer or a machine controlled by the digital computer to simulate, extend, and expand human intelligence, perceive an environment, obtain knowledge, and use the knowledge to obtain an optimal result. In other words, AI is a comprehensive technology in computer science and attempts to understand the essence of intelligence and produce a new intelligent machine that can react in a manner similar to human intelligence. AI is to study the design principles and implementation methods of various intelligent machines, to enable the machines to have the functions of perception, reasoning, and decision-making.
[0031] The technical solution of the present disclosure mainly involves a robot technology in artificial intelligence, and mainly involves intelligent control of robots. Robots are mechanical and electronic devices that combine mechanical transmission and modern microelectronics technology to mimic certain human skills. Robots have been developed based on electronic, mechanical, and information technologies. Robots do not necessarily have to look like humans. As long as they can autonomously complete tasks and instructions assigned to them by humans, they belong to the family of robots. Robots are automated machines that possess some intelligent abilities similar to humans or organisms, such as abilities of perception, planning, motion, and collaboration, and are highly flexible automated machines. With the development of the computer technology and the artificial intelligence technology, robots have greatly improved in terms of functionality and technical level, and mobile robots and robot vision and touch technologies are typical representatives.
[0032] In the technical solution provided in the embodiment of the present disclosure, each operation may be performed by a computer device. The computer device refers to an electronic device having data computing, processing, and storage capabilities.
[0033] In some embodiments, the computer device may be a Personal Computer (PC) device configured for controlling a robot, such as a desktop computer or a laptop; and it may also be a server configured for controlling a robot. The server may be an independent physical server, or may be a server cluster composed of a plurality of physical servers or a distributed system, and may further be a cloud server providing a cloud computing service. The computer device and the robot may be connected through a physical line, a network, or the like. For example, referring to
[0034] In some embodiments, the computer device may also be the robot itself, that is, each operation in the technical solution provided in the embodiment of the present disclosure is executed by the robot. For example, referring to
[0035] In the embodiment of the present disclosure, the robot may refer to a wheel-legged robot, a footed robot, etc., the wheel-legged robot refers to a robot that has a wheeled structure and leg capabilities at the same time, and the footed robot refers to a robot that uses feet as foot parts. This is not limited in the embodiment of the present disclosure.
[0036] In an example, the robot 103 may include at least one moving wheel. For each moving wheel of the at least one moving wheel, the moving wheel is connected to a corresponding leg mechanism through a first rotating joint.
[0037] In the embodiment of the present disclosure, the wheel-legged robot includes a moving wheel and at least two links. The at least two links can be equivalent to links in an n-level inverted pendulum model. That is to say, the wheel-legged robot includes a moving wheel and n links. The n links are connected in series through n1 rotating joints. A first link of the n links is connected to the moving wheel through a first rotating joint.
[0038] The wheel-legged robot includes at least one leg mechanism. Any leg mechanism of the at least one leg mechanism is provided with a corresponding moving wheel. For example, a leg mechanism 1 corresponds to a moving wheel 1, and the leg mechanism 1 is connected to the moving wheel 1 through a first rotating joint 1.
[0039] In some embodiments, the at least one leg mechanism may be divided into an outer leg group and an inner leg group, the outer leg group includes at least two leg mechanisms, and the inner leg group includes at least one leg mechanism.
[0040] Exemplarily, the robot in the embodiment of the present disclosure will be described by taking the wheel-legged robot as an example.
[0041] The at least one leg mechanism is divided into an outer leg mechanism and an inner leg mechanism. The outer leg mechanism includes at least two leg mechanisms. The inner leg mechanism may also include at least two leg mechanisms. The at least two leg mechanisms included in the outer leg mechanism are respectively located on two sides of a central axis (i.e., sagittal plane) of the wheel-legged robot. The at least two leg mechanisms included in the inner leg mechanism are respectively located on the two sides of the central axis of the wheel-legged robot. The outer leg mechanisms and the inner leg mechanisms, i.e., rotation centers of hip joints corresponding to the outer leg mechanisms and rotation centers of hip joints corresponding to the inner leg mechanisms, are located on the same vertical plane.
[0042] Exemplarily, the wheel-legged robot is a quadruped wheel-legged robot, that is, the wheel-legged robot includes two outer leg mechanisms and two inner leg mechanisms. The wheel-legged robot may also be a tripedal wheel-legged robot, that is, the wheel-legged robot includes two outer leg mechanisms and one inner leg mechanism. The hip joint corresponding to at least one inner leg mechanism in the inner leg mechanism group is located between the hip joints corresponding to the two outer leg mechanisms in the outer leg mechanism group. The rotation centers of the hip joints corresponding to the outer leg mechanisms and the rotation center of the hip joint corresponding to the inner leg mechanism are located in the same vertical plane. The wheel-legged robot can stand on a support surface through the outer leg mechanisms or the inner leg mechanisms, can also slide on the support surface through foot wheels on the outer leg mechanisms or foot wheels on the inner leg mechanisms, and can also move (i.e., walk) on the support surface by controlling the alternating swing of the outer leg mechanism group and the inner leg mechanism group.
[0043] Exemplarily, referring to
[0044] The quadruped wheel-legged robot 200 includes four leg mechanism, including two outer leg mechanisms 201 (i.e., first leg mechanism group) and two inner leg mechanisms 202 (i.e., second leg mechanism group). The two inner leg mechanisms 202 are located between the two outer leg mechanisms 201. Four leg mechanisms may be separately extended and retracted along a direction shown. A foot wheel 203 is mounted at one end of each of the four leg mechanisms. Each foot wheel 203 may be separately driven. The quadruped wheel-legged robot 200 may stand through the two inner leg mechanisms 202 or the two outer leg mechanisms 201 to enter a two-foot-wheel support state. The quadruped wheel-legged robot 200 can stand through the two inner leg mechanisms 202 and the two outer leg mechanisms 201 to enter a four-foot-wheel support state. This is not limited in the embodiment of the present disclosure.
[0045] In some embodiments, the two inner leg mechanisms 202 may be implemented as a whole, that is, the quadruped wheel-legged robot 200 may be implemented as a tripedal wheel-legged robot with only one inner leg mechanism.
[0046] The other end of each of the four leg mechanisms is connected to a hip joint 204. Each leg mechanism may rotate around its respective hip joint 204 and maintain linkage. In the embodiment of the present disclosure, the rotation centers of the hip joints 204 corresponding to the quadruped wheel-legged robot 200 are located on the same vertical plane 205, and the rotation planes of the leg mechanisms corresponding to the quadruped wheel-legged robot 200 are parallel. The hip joints 204 corresponding to the two inner leg mechanisms 202 are located between the hip joints 204 corresponding to the two outer leg mechanisms 201.
[0047] In some embodiments, the hip joints 204 corresponding to the quadruped wheel-legged robot 200 may be coaxial, that is, the rotation centers of the hip joints 204 are located on the same straight line. The hip joints 204 corresponding to the quadruped wheel-legged robot 200 may also be non-coaxial. For example, the hip joints 204 corresponding to the two inner leg mechanisms 202 are coaxial, and the hip joints 204 corresponding to the two outer leg mechanisms 201 are coaxial, but the hip joints 204 corresponding to the two inner leg mechanisms 202 are non-coaxial with the hip joints 204 corresponding to the two outer leg mechanisms 201. Each hip joint 204 may be used as the rotating joint connected to the first link of the n rotating joints in the embodiment of the present disclosure. One end of the first link is connected to the first rotating joint, and the other end is connected to hip joint 204.
[0048] In some embodiments, the hip joints 204 corresponding to the two outer leg mechanisms 201 may share a driving motor, so that the two outer leg mechanisms 201 move synchronously; and the hip joints 204 corresponding to the two inner leg mechanisms 202 may share a driving motor, so that the two inner leg mechanisms 202 move synchronously. In a feasible example, each hip joint 204 corresponding to the quadruped wheel-legged robot 200 may also be independently driven by its respective driving motor. This is not limited in the embodiment of the present disclosure.
[0049] A body of the quadruped wheel-legged robot 200 may include a waist 206, a body 207, upper limbs 208, and a head 209.
[0050] The hip joints 204 corresponding to the quadruped wheel-legged robot 200 are connected to the same end of the waist 206, and the other end of the waist 206 is connected to one end of the body (torso mechanism) 207. The waist 206 has two rotation centers, including a pitch rotation center that can allow the body 207 to pitch, and a lateral swing rotation center that can allow the body 207 to swing laterally. The lateral swing rotation center is designed to be in series with the pitch rotation center, is located at an upper end of the pitch rotation center, and is connected to the body 207.
[0051] Exemplarily, if the body 207 in
[0052] The other end of the body 207 is connected to the upper limbs (robotic arm links) 208 and the head 209, and the upper limb 208 can be a multi degree of freedom upper limb. In some embodiments, end effectors such as robotic claws or suction cups are deployed on the upper limbs 208. Data acquisition devices, such as an image acquisition device, a video capture device and an Inertial Measurement Unit (IMU), may be deployed in the head 209 to perceive a real environment. The IMU may be placed at a geometric center of the body 207, a center point of the hip joint (i.e., the rotation center of the hip joint), or the like. It may be configured to measure the actual acceleration, actual attitude angular velocity, actual Euler angle, and the like of the body 207.
[0053] In the technical solution provided in the embodiment of the present disclosure, the moving wheels, leg mechanisms, hip joints, waist and torso mechanism (including IMU) of the quadruped wheel-legged robot 200 are necessary hardware for a control algorithm, while other components are non-necessary hardware.
[0054] The quadruped wheel-legged robot has a more stable structure and stronger resistance to external impact disturbances than a bipedal wheel-legged robot, and has fewer redundant joints and lower design complexity than a hexapedal wheel-legged robot. In addition, it can bear large loads, travel in narrow spaces, and perform tasks on objects of different heights. The quadruped wheel-legged robot has strong adaptability to the environment.
[0055] The balance control method for the wheel-legged robot provided in the embodiment of the present disclosure is applicable to various scenarios, such as the balance of the wheel-legged robot during movement. The balance control method for the wheel-legged robot provided in the embodiment of the present disclosure can flexibly control the rotation of multiple joints of the wheel-legged robot in the balance control process, thereby enriching the attitudes of the robot in the balance control process and helping to control the robot to quickly reach a balanced state.
[0056] When moving on a flat ground, the robot may maintain a four-wheel motion mode as shown in
[0057] In some embodiments, referring to
[0058]
[0059] A first state shown in
[0060] In a process that the robot moves up another step, the support leg mechanism and the swing leg mechanism will exchange. In the periodic motion of going upstairs, the support leg mechanism and the swing leg mechanism periodically exchange. Similarly, the division of a phase of a task that the robot goes downstairs is the same as the division of the phase of the task of going upstairs described above, except that the motion direction of each leg mechanism is opposite to the motion direction of each leg mechanism in the task of going upstairs. Therefore, the task that the robot goes downstairs will not be repeated here. For the specific process, a reference may be made to the schematic diagram of the motion sequence of the robot when going upstairs and downstairs shown in
[0061] Please refer to
[0062] In some embodiments, the lengths of the two outer moving legs are equal, and the lengths of the two inner moving legs are equal. The changing speeds of the lengths of the two outer moving legs are equal, and the changing speeds of the lengths of the two inner moving legs are equal.
[0063] The two outer moving legs are driven by the same rotating motor. The rotating motor is configured to adjust included angles between the outer moving legs and a straight line L1 perpendicular to the direction of the contact surface, that is, the included angles between the two outer moving legs and the straight line L1 are equal. The two inner moving legs are driven by the same rotating motor. The rotating motor is configured to adjust included angles between the inner moving legs and the straight line L1, that is, the included angles between the two inner moving legs and the straight line L1 are equal.
[0064] In addition, each joint of a torso mechanism of the wheel-legged robot is provided with a rotating motor, and the rotation of each joint can be actively driven by the rotating motor.
[0065] For all rotating motors mentioned above, each rotating motor may receive a rotation angle instruction, a rotation speed instruction, a rotation torque instruction, etc. The rotation angle instruction is configured for indicating a rotation angle of the rotating motor, the rotation speed instruction is configured for indicating a rotation speed and direction of the rotating motor, and the rotation torque instruction is configured for indicating a torque that needs to be reached in the rotation process of the rotating motor.
[0066] After the rotating motor receives any one of the above-mentioned rotation angle instruction, rotation speed instruction, and rotation torque instruction, a low-level driver board for the rotating motor will drive the motor to rotate according to the received instruction, so as to drive each joint to move.
[0067] For all linear motors mentioned above, each linear motor may receive a linear movement position instruction, a linear movement speed instruction, a driving force instruction, etc. A low-level driver board for the linear motor will drive the motor to move linearly according to the received instruction, so as to drive each leg mechanism to extend and retract.
[0068] The rotation and movement of the rotating motors and linear motors change the attitude and position of the robot in three-dimensional space, thereby achieving the balance control of the wheel-legged robot. Rapidly changing joint angle instructions may also control the attitude of the robot to change dynamically, so as to change the contact situation between the robot and the environment.
[0069] Since the attitudes and states (such as motion states) of the wheel-legged robot at different moments are different, it is necessary to acquire the attitude information and motion state information of the wheel-legged robot through sensors arranged on the wheel-legged robot, so as to generate instruction signals and achieve the balance control and motion state of the wheel-legged robot.
[0070] In some embodiments, the state of the wheel-legged robot may be acquired by different sensors mounted on the body of the wheel-legged robot. The sensors include at least one of the following sensors: [0071] an IMU sensor, configured to determine an attitude of the wheel-legged robot, including position information and attitude information of the wheel-legged robot; [0072] a motor encoder, configured to determine a rotation speed of each joint of the wheel-legged robot in a current state, position information related to movement, and speed information of rotation and movement; [0073] a force/torque sensor, configured to determine a magnitude of a force acting on a joint where the force/torque sensor is located at a current moment, and a magnitude and direction of a torque; [0074] a tactile sensor, configured to determine a magnitude of a pressure at a contact position between the moving wheel of the wheel-legged robot and the contact surface, on a body surface, inside a hand, on a fingertip, or on any other body part, and change characteristics of the pressure in a period of time; and [0075] a visual sensor (such as camera or infrared sensor), configured to identify an obstacle within a field of view of the wheel-legged robot, and determine position information of the mass center of the wheel-legged robot and speed information corresponding to the mass center of the wheel-legged robot.
[0076] In some embodiments, a control system for the wheel-legged robot includes the following modules:
[0077] 1. A state estimation module, configured to fuse various attitude and state information obtained by the wheel-legged robot, for example, fuse the current attitude of the wheel-legged robot obtained by the IMU sensor, the mileage information obtained from the rotation of the moving wheel, and the visual positioning information, so that the position of the wheel-legged robot in the world coordinate system can be obtained; fuse the information obtained by the force/torque sensor and the tactile sensor to obtain the contact situation between the robot and the external environment; fuse the current attitude of the wheel-legged robot obtained by the IMU sensor and the angle information of each motor joint encoder, and combine with the model parameters of the wheel-legged robot itself, so that the position of the mass center of the wheel-legged robot can be estimated. The state information of the wheel-legged robot obtained through fusion will be used as a feedback quantity for motion generation, planning, and control of the wheel-legged robot.
[0078] 2. A motion generation module, configured to adopt a motion generation policy corresponding to a working mode that the wheel-legged robot is in when completing a motion. The working mode of the robot includes, but not limited to, a four-wheel motion mode, a double-wheel motion mode, a four-wheel to double-wheel shifting mode, a go-upstairs/go-downstairs mode, a four-wheel active suspension mode (the four-wheel active suspension mode refers to a mode in which the contact surface is uneven in a four-wheel traveling process, and the robot adjusts the attitude of the upper body by relying on the four wheels to maintain the attitude of the upper body to be relatively stable), a folding mode, etc. Considering the complexity of the upper body, which may be configured for completing various tasks, the motion modes of the robot may be more, which will not be listed here one by one.
[0079] The ways of motion generation vary in different modes. In these modes, some common basic technologies and algorithm modules will be invoked, including, but not limited to, a model-free controller, a model-based controller such as a Linear Quadratic Regulator (LQR) or a Model Predictive Control (MPC) controller, an adaptive controller, a robust controller, etc. In some embodiments, the robust controller in the present disclosure is implemented based on sliding mode control, and the robust controller may also be referred to as a sliding mode controller.
[0080] For example, when the wheel-legged robot is in the double-wheel mode and needs to control the balance of the moving wheels, Proportional Integral Derivative Control (PID control) of the model-free controller may be used to generate reference trajectories for the foot wheels and the mass center of the robot. Exemplarily, the specific method is to invoke one or more of the model-free controller, the model-based controller (LQR or MPC), the adaptive controller, and the robust controller.
[0081] For another example, when the wheel-legged robot is in the double-wheel control phase of the four-wheel to double-wheel shifting mode, the model-free controller, the model-based controller (LQR or MPC), the adaptive controller, and the robust controller may also be used to control the balance of the moving wheels.
[0082] For another example, when the wheel-legged robot is in the four-wheel mode, if the leg mechanisms of the wheel-legged robot that extend forward and the leg mechanisms that extend backward are made equivalent, an equivalent leg mechanism is obtained, a dynamics system composed of the equivalent leg mechanism and the torso mechanism is described by using an n-level inverted pendulum, and control trajectories obtained in this way can maintain the balance of the robot in the four-wheel state. Through this method, the wheel-legged robot can maintain the body of the wheel-legged robot to be relatively stable in case of uneven contact surfaces, potholes, or obstacles. Exemplarily, when the wheel-legged robot is in the four-wheel active suspension mode, the above module may also be used to control the body of the wheel-legged robot to be relatively stable.
[0083] The input of the motion generation module is a series of task information for the wheel-legged robot, including, but not limited to, a mass center task, tasks for support legs, tasks for swing legs, tasks for a waist, etc. Similarly, considering the complexity of the upper body of the wheel-legged robot, which can independently complete various motions and tasks, the types of task information may be more, which will not be listed here one by one.
[0084] Exemplarily, these tasks may also be used as inputs of a whole body controller (WBC) (also known as a whole body dynamics controller). In the whole body controller, the wheel-legged robot is modeled and calibrated in detail, and the dynamics model and the external force situation of the wheel-legged robot are used as optimization constraints. Through the optimization process, a target joint angle instruction, a target joint angular velocity instruction, a target joint torque instruction and the like for a target joint of at least one rotating joint of the wheel-legged robot are calculated. Finally, the whole body controller will transmit the determined target joint angle instruction, target joint angular velocity instruction, target joint torque instruction and the like to the driver of each joint of the robot, thereby completing the control loop of the wheel-legged robot.
[0085] The balance control method for the wheel-legged robot provided in the present disclosure is mainly completed by the robust controller in the control system shown in
[0086] Before introducing the specific operations of the balance control method provided in the present disclosure, the method for establishing a dynamics model corresponding to the balance control method provided in the present disclosure is introduced first. To facilitate the understanding of the principle of the n-level inverted pendulum model involved in the present disclosure, a double inverted pendulum model that is relatively easy to understand is introduced first.
[0087] Please refer to
[0088] To achieve the balance control method for the wheel-legged robot, it is necessary to perform dynamics modeling on the wheel-legged robot to obtain a dynamics model of the wheel-legged robot in the balance control process. For the sake of clarity, conciseness, and ease of understanding, discussion is first made on the case where the length of at least one leg mechanism of the wheel-legged robot is equal, the included angle between the at least one leg mechanism and the ground is equal, and the rotation speeds and positions of moving wheels are the same. The specific details are as follows.
[0089] A world coordinate system is established, with a forward direction of the wheel-legged robot as a positive x-axis direction, a rightward movement direction as a positive y-axis direction, and an upward direction perpendicular to the contact surface as a positive z-axis direction. When observing the wheel-legged robot from the y-axis direction, it will be observed that at least one leg mechanism of the wheel-legged robot overlaps. The at least one leg mechanism may be outer leg mechanisms of the wheel-legged robot, or may be all leg mechanisms of the wheel-legged robot.
[0090] Exemplarily, the lengths of the four leg mechanisms of the wheel-legged robot change synchronously, and the angles between the four leg mechanisms and a base of the wheel-legged robot are synchronized. When observing from the direction corresponding to the y-axis, the four leg mechanisms overlap together, and the four moving wheels also overlap together. In this case, an abstract two-dimensional model of the wheel-legged robot on a yoz plane of the world coordinate system is shown in
[0091] Referring to
[0092] {dot over ()}, {dot over ()}, and {dot over ()} are respectively defined as derivatives of , , and with respect to time, where {dot over ()} represents a rotation speed of the moving wheel (also known as an angle of the moving wheel), {dot over ()} represents an angular velocity of the leg mechanism, and {dot over ()} represents an angular velocity of the torso mechanism. {umlaut over ()}, {umlaut over ()}, and {umlaut over ()} are respectively defined as second derivatives of , , and with respect to time, where {umlaut over ()} represents an angular acceleration of the moving wheel, {umlaut over ()} represents an angular acceleration of the leg mechanism, and {umlaut over ()} represents an angular acceleration of the torso mechanism.
[0093] The angle that the moving wheel rotates relative to the world coordinate system is driven by a joint motor on a first rotating joint (equivalent to 920 in
[0094] The angle that the torso mechanism rotates relative to the world coordinate system is driven by a joint motor on a second rotating joint (equivalent to 940 in
[0095] Masses of the moving wheel, the link B (equivalent to at least one leg mechanism that overlaps), and the link P (equivalent to the torso mechanism) are respectively expressed as m.sub.W, m.sub.B, and m.sub.P. Moments of inertia of the moving wheel, the link B, and the link P are respectively expressed as J.sub.W, J.sub.B, and J.sub.P. A radius of the moving wheel is represented by r, a length of the link is represented by L.sub.B. A length of a connecting line from an intersection point of the link B and the moving wheel to a geometric center of the link B is represented by l.sub.B. A length of a connecting line from an intersection point of the link B and the wheel to a geometric center of the link P is represented by l.sub.P.
[0096] (1) Based on defining the above physical quantities, expressions for total kinetic energy T.sub.W of the moving wheel, total kinetic energy T.sub.B of the link B, and total kinetic energy T.sub.P of the link P are respectively derived, and system total kinetic energy T of the wheel-legged robot is obtained, where in the calculation of the total kinetic energy T.sub.W of the moving wheel, total kinetic energy T.sub.B of the link B, and total kinetic energy T.sub.P of the link P, both translational kinetic energy and rotational kinetic energy are included.
[0097] (2) Partial derivatives of the system total kinetic energy T with respect to each degree of freedom (, , ) in a generalized coordinate system and with respect to a derivative of each degree of freedom are respectively calculated, and derivatives of partial derivative results for the derivative of each degree of freedom with respect to time are respectively calculated. The specific process is as follows.
[0098] A partial derivative
of the system total kinetic energy T with respect to the angular velocity {dot over ()} of the moving wheel is expressed as:
[0099] A derivative
of the partial derivative
with respect to time is expressed as:
[0100] A partial derivative
of the system total kinetic energy T with respect to the angular velocity {dot over ()} of the leg mechanism is expressed as:
[0101] A derivative
of the partial derivative
with respect to time is expressed as:
[0102] A partial derivative
of the system total kinetic energy T with respect to the angular velocity {dot over ()} of the torso mechanism is expressed as:
[0103] A derivative of the partial derivative
with respect to time is expressed as:
[0104] A partial derivative
of the system total kinetic energy T with respect to the deflection angle of the moving wheel is expressed as:
[0105] A partial derivative
of the system total kinetic energy T with respect to the deflection angle of the leg mechanism is expressed as:
[0106] A partial derivative
of the system total kinetic energy T with respect to the deflection angle of the torso mechanism is expressed as:
[0107] (3) System total potential energy U is calculated:
[0108] In the above formula, a plane where the moving wheel is located is regarded as a zero potential energy surface, that is, the potential energy of the moving wheel is considered to be 0. Therefore, the formula for the system total potential energy U does not include the potential energy of the moving wheel. Of course, other potential energy surfaces may also be selected, which will not influence the implementation of the balance control method. The present disclosure does not limit the potential energy surface used in calculating the system total potential energy.
[0109] (4) Partial derivative results of the system total potential energy U with respect to each degree of freedom in the generalized coordinate system are respectively calculated:
[0110] A partial derivative
of the system total potential energy U with respect to the deflection angle of the moving wheel is expressed as:
[0111] A partial derivative
of the system total potential energy U with respect to the deflection angle of the leg mechanism is expressed as:
[0112] A partial derivative
of the system total potential energy U with respect to the deflection angle of the torso mechanism is expressed as:
[0113] (5) Using the above formulas, based on an Euler-Lagrange equation, the following may be derived: a dynamics equation of the wheel-legged robot under the double inverted pendulum model:
[0114] The dynamics equation may be written in a polynomial form:
[0115] The dynamics equation in the polynomial form is written as a dynamics equation in a matrix form:
[0116] where M(,) is a 3*3 inertia matrix, and specifically includes
[0117] Each element m.sub.ij (i{, , }, j{, , }) in M(,) is each element in the inertia matrix, and indicates a mass and moment of inertia of each joint rigid body that composes the wheel-legged robot when the deflection angle of the leg mechanism is a and the deflection angle of the torso mechanism is , and an equivalent inertial physical quantity of each mechanism under mutual influence. C(, , {dot over ()}, {dot over ()}) is a 3*1 bias force matrix, also known as a bias force vector, specifically includes [c.sub. c.sub. c.sub.].sup.T, and indicates a Coriolis force and a centripetal force acting on each mechanism of wheel-legged robot. G(, ) represents a 3*1 gravity matrix, also known as a gravity vector, and specifically includes [0 g.sub. g.sub.].sup.T. .sub.1 represents the rotation torque of the first rotating joint, and .sub.2 represents the rotation torque of the second rotating joint.
[0118] After deriving the dynamics equation in the matrix form through the above process, the subsequent balance control process may directly use the dynamics equation in the matrix form, without repeating the above derivation process in the balance control process.
[0119] Next, an n-level inverted pendulum model will be introduced and described.
[0120] For ease of understanding, situations that at least one leg mechanism of the wheel-legged robot overlaps in the y-axis direction, the length of the at least one leg mechanism changes synchronously, the included angle between the at least one leg mechanism and the torso mechanism is the same, and the movement speed of the at least one moving wheel is equal are considered first.
[0121] A world coordinate system adopted in this example has the same definition as the world coordinate system adopted in
[0122] Referring to
[0123] The n links of the n-level inverted pendulum model correspond to the n links of the wheel-legged robot. Every two adjacent links of the n links are connected through a rotating joint. Deflection angles of the n links are respectively q.sub.1, q.sub.2, . . . , q.sub.n, where q.sub.1 is a deflection angle of a first link, q.sub.2 is a deflection angle of a second link, and so on, q.sub.n is a deflection angle of an n.sup.th link. The deflection angle of the link will be described by taking the first link as an example. Referring to
[0124] Exemplarily, when the wheel-legged robot is in a standing attitude, the distance between the first link and the contact surface l.sub.1<the distance between the second link and the contact surface l.sub.2< . . . <the distance between the n.sup.th link and the contact surface l.sub.n, and the first link of the n links (the first link may be the leg mechanism of the wheel-legged robot) is connected to the moving wheel through a first rotating joint. In some embodiments, the link refers to a simplified model of each mechanism included in the wheel-legged robot, the wheel-legged robot may have multiple components, each component may be referred to as a mechanism, and each mechanism may be simplified as a link. In some cases, the wheel-legged robot is in an attitude where multiple moving wheels are in contact with the contact surface, and each moving wheel corresponds to its respective leg mechanism. For any one of the multiple moving wheels, a rotating joint that connects the moving wheel to its corresponding leg mechanism is referred to as a first rotating joint.
[0125] After understanding the n-level inverted pendulum model, a dynamics equation of the n-level inverted pendulum model is constructed in a way similar to the way of constructing the dynamics equation corresponding to the double inverted pendulum model. Specifically, total kinetic energy and potential energy corresponding to the n links and the moving wheel (the total kinetic energy includes translational kinetic energy and rotational kinetic energy) are determined, including: adding up the kinetic energy of the n links and the moving wheel to obtain system total kinetic energy of the wheel-legged robot; adding up the potential energy of the n links and the moving wheel to obtain system total potential energy of the wheel-legged robot.
[0126] For any one of the multiple degrees of freedom in the generalized coordinate system (including the deflection angle of each link, the angular velocity of each link, the rotation angle of the moving wheel, and the angular velocity of the moving wheel), partial derivative of the system total kinetic energy with respect to the degree of freedom is determined, and a derivative of the partial derivative of the degree of freedom with respect to time is determined.
[0127] For any one of the multiple degrees of freedom in the generalized coordinate system, a partial derivative of the system total potential energy with respect to that degree of freedom is determined. According to the partial derivative of the system total potential energy with respect to each degree of freedom, the partial derivative of each degree of freedom with respect to time, and the partial derivative of each degree of freedom with respect to time, a system dynamics equation of the n-level inverted pendulum is determined through an Euler-Lagrange equation:
[0128] where
refers to an inertia matrix, including masses and moments of inertia of n rotating joints (the rotating joints are regarded as joint rigid bodies) of the wheel-legged robot involved in the n-level inverted pendulum model, q is a vector, and a transpose vector of q is q.sup.T=[q.sub.i q.sub.2 . . . q.sub.n], m.sub..sub.11, m.sub.q
.sub.1n, m.sub.q
.sub.n1, m.sub.qq
.sub.nn. {dot over ()} refers to the angular velocity of the moving wheel, {umlaut over ()} refers to the angular acceleration of the moving wheel, {dot over (q)} represents the angular velocities of the n links, {dot over (q)} is a vector, a transpose vector of {dot over (q)} is {dot over (q)}.sup.T=[{dot over (q)}.sub.1 {dot over (q)}.sub.2 . . . {dot over (q)}.sub.n], {umlaut over (q)} represents the angular acceleration of the n links, {umlaut over (q)} is a vector, a transpose matrix of {umlaut over (q)} is {umlaut over (q)}.sup.T=[{umlaut over (q)}.sub.1 {umlaut over (q)}.sub.2 . . . {umlaut over (q)}.sub.n],
refers to a bias force matrix and indicates a bias force of each link when the wheel-legged robot is in an attitude that the angle of the moving wheel is and the deflection angles of the n links are respectively q.sub.1, q.sub.2, . . . , q.sub.n, and the bias force includes a centripetal force and a Coriolis force.
is a gravity matrix and indicates gravities respectively acting on the n links when the wheel-legged robot is an attitude that the angle of the moving wheel is and the deflection angles of the n links are q.sub.1, q.sub.2, . . . , q.sub.n.
[0129] Since the plane where the moving wheel is located is determined as a zero potential energy surface, and a first term in the G matrix is zero, it represents that the gravity of the moving wheel on this zero potential energy surface is zero. Of course, other zero potential energy surfaces may also be selected, which is not limited in the present disclosure. I.sub.n represents a unit matrix of nn, and .sup.T=[ .sub.1 .sub.2 . . . .sub.n] represents rotation torques corresponding to the n rotating joints.
[0130] A balance control method after abstracting the wheel-legged robot into the n-level inverted pendulum will be introduced and described below. This method may be achieved through a robust controller in a control system for the wheel-legged robot based on observation results of sensors, or may be achieved through the cooperation between the robust controller and other control modules such as a whole body dynamics controller in the control system. For details, please refer to the following implementation embodiments.
[0131] Please refer to
[0132] Operation 1110: Acquire a state quantity of the wheel-legged robot at a first moment, where the state quantity at the first moment indicates a motion state of the wheel-legged robot at the first moment.
[0133] In some embodiments, the moving wheel is configured to be in contact with a contact surface, the rotating joint refers to a joint driven by a joint motor, and the n links refer to links connected to at least one of the n rotating joints. In some embodiments, the n rotating joints connect the n links in series into a linear shape, and the first link of the n links is connected to the moving wheel through the first rotating joint, that is, the moving wheel, the n links, and the n rotating joints of the wheel-legged robot may be abstracted into the n-level inverted pendulum introduced above. The balance control method provided in this embodiment of the present disclosure is designed based on the n-level inverted pendulum.
[0134] In some embodiments, the wheel-legged robot includes multiple components, each component (excluding an active joint) may be referred to as a mechanism, and the mechanism may be simplified as a link.
[0135] In some embodiments, any one of the n links is equivalent to a link in the n-level inverted pendulum, that is, in an ideal state, the link will not undergo bending deformation. Exemplarily, any one of the n links is an independent link (for example, in the wheel-legged robot, a leg mechanism is regarded as a link and a torso mechanism is regarded as a link).
[0136] Exemplarily, the n links include at least one combined link composed of m independent links connected through joints, where m is a positive integer greater than 1. In this case, the joints configured for connecting the m independent links do not undergo rotational or linear motion in the balance control process. For example, these joints are locked in balance control, so that a link combination composed of the m independent links is regarded as one link included in the n links.
[0137] In some embodiments, the first link refers to a link connected to the moving wheel of the wheel-legged robot through the first rotating joint. In some embodiments, in a direction perpendicular to the contact surface (i.e., the z-axis direction in the world coordinate system), among the n links, the distance between the first link and the moving wheel is the shortest.
[0138] In some embodiments, if the leg mechanism of the wheel-legged robot is a linear leg, then the first link refers to the leg mechanism of the wheel-legged robot; if the leg mechanism of the wheel-legged robot is a joint leg, that is, the leg mechanism includes two sub-mechanisms connected by a knee joint and the knee joint is configured to control a joint angle between the two sub-mechanisms, then the first link refers to a sub-mechanism directly connected to the first rotating joint in the leg mechanism.
[0139] In the present disclosure, n is a positive integer greater than 1. For example, n is equal to 2, 3, 4, 5 . . . . The maximum value of n is related to the construction of the wheel-legged robot, which is not limited in the present disclosure.
[0140] Exemplarily, in a case that n is equal to 2, the n links include a leg mechanism and a torso mechanism of the wheel-legged robot. Exemplarily, in a case that n is equal to 3, the n links include a leg mechanism (the leg mechanism is a linear leg), a torso mechanism, and a head mechanism of the wheel-legged robot. Exemplarily, in a case that n is equal to 3, the n links include a leg mechanism (the leg mechanism is a linear leg), a torso mechanism, and a robotic arm mechanism of the wheel-legged robot. Exemplarily, in a case that n is equal to 4, the n links include a leg mechanism (the leg mechanism is a linear leg), a torso mechanism, a first robotic arm link connected to the torso mechanism, and a second robotic arm link connected to the first robotic arm link, or a manipulator of the wheel-legged robot. Exemplarily, in a case that n is equal to 4, the n links include a first sub-mechanism of a leg mechanism (the leg mechanism is a linear leg), a second sub-mechanism connected to the first sub-mechanism through a knee joint, a torso mechanism, and a first robotic arm link connected to the torso mechanism.
[0141] In some embodiments, the n rotating joints are configured to connect the n links in series. Exemplarily, any one of the n rotating joints refers to a rotating joint with the same function. For example, in a case that the wheel-legged robot includes multiple moving wheels, there are multiple rotating joints configured to connect each moving wheel to its corresponding first link, and the multiple rotating joints are first rotating joints.
[0142] The value of n is related to the configuration of the wheel-legged robot, the computing power of the computer device, the power consumption, and other practical requirements, which is not limited in the present disclosure. The larger the value of n, the more the links that can be configured for adjusting the attitude in the balance control process, making the attitudes of the wheel-legged robot richer in the balance adjustment process, which helps to improve the balance ability of the wheel-legged robot to cope with external disturbances.
[0143] In some embodiments, the first moment is any moment in the motion process of the wheel-legged robot.
[0144] In some embodiments, at the first moment, the attitude of the wheel-legged robot may be as follows. Included angles between all first links and the direction perpendicular to the contact surface are equal, angular velocities of the moving wheels corresponding to each first link are equal, and at least one first rotating joint that connects the first link to the moving wheel rotates synchronously. That is to say, when observed from a side surface of the wheel-legged robot, at least one first link overlaps together, and at least one moving wheel overlaps together. Exemplarily, the wheel-legged robot is provided with four moving wheels, and at the first moment, the wheel-legged robot is in a double-wheel balance mode (it rolls and moves on the contact surface through two moving wheels, while the other two moving wheels are retracted).
[0145] In some embodiments, the state quantity is configured for describing a motion state of the wheel-legged robot at the first moment. According to the state quantity at the first moment, the attitude and motion state of the wheel-legged robot may be determined. In some embodiments, the state quantity at the first moment is obtained through observation by sensors of the wheel-legged robot.
[0146] In some embodiments, the state quantity at the first moment includes at least one of the following: deflection angles q.sub.1, q.sub.2, . . . , q.sub.n of the n links, an angular velocity {dot over ()} of the moving wheel, and angular velocities {dot over (q)}.sub.1, {dot over (q)}.sub.2, . . . , {dot over (q)}.sub.n of the n links.
[0147] Exemplarily, each physical quantity included in the state quantity is obtained through observation in the world coordinate system. The deflection angle q.sub.i(i[1, n]) of an i.sup.th link of the n links refers to the deflection angle of the i.sup.th link relative to the z-axis in the world coordinate system. The angular velocity {dot over ()} of the moving wheel refers to the rotation speed of the moving wheel in the clockwise direction of the x-axis in the world coordinate system. The angular velocity {dot over (q)}.sub.i(i[1, n]) of the i.sup.th link indicates the angular velocity of the i.sup.th link, i.e., the changing speed of the deflection angle of the i.sup.th link.
[0148] Each physical quantity in the state quantity may also be expressed by the relative positions of the links of the wheel-legged robot. For example, a deflection angle q.sub.j(i[2, n]) of a j.sup.th link refers to the deflection angle of the j.sup.th link relative to a (j1).sup.th link. The (j1).sup.th link is connected to the j.sup.th link through a rotating joint. In some embodiments, the distance between the j.sup.th link and the contact surface is greater than the distance between the (j1).sup.th link and the contact surface. An observation coordinate system corresponding to each physical quantity in the state quantity may be determined according to the actual needs, which is not limited in the present disclosure.
[0149] In the present disclosure, the physical quantities in each formula are obtained through observation based on the world coordinate system. Of course, the balance control method can also be achieved by using physical quantities determined by other observation coordinate systems. Relevant formulas may be obtained through equivalent replacement based on the formulas provided in the present disclosure, which will not be mentioned here one by one.
[0150] In a case that the moving wheels of the wheel-legged robot in contact with the contact surface overlap in the y-axis direction in the world coordinate system, the angular velocities of the n moving wheels are the same, and the deflection angles of the first links connected to at least one moving wheel are the same. For the method of acquiring the state quantity at the first moment, please refer to the following embodiments.
[0151] Exemplarily, the state quantity is composed of deflection angles q.sub.1, q.sub.2, . . . , q.sub.n of the n links, an angular velocity {dot over ()} of the moving wheel, and angular velocities {dot over (q)}.sub.1, {dot over (q)}.sub.2, . . . , {dot over (q)}.sub.n of the n links. The state quantity may be represented by using a symbol . The state quantity may be expressed as:
[0152] where q.sup.T represents a transpose vector of a vector q, q.sup.T=[q.sub.1 q.sub.2 . . . q.sub.n], and {dot over (q)}.sup.T represents a transpose vector of a vector {dot over (q)}, {dot over (q)}.sup.T=[{dot over (q)}.sub.1 {dot over (q)}.sub.2 . . . {dot over (q)}.sub.n].
[0153] In some embodiments, acquiring a state quantity of the wheel-legged robot at a first moment includes: determining the deflection angles q.sub.1, q.sub.2, . . . , q.sub.n, of the n links through an IMU sensor and a motor encoder; and determining an angular velocity {dot over ()} of the moving wheel and angular velocities {dot over (q)}.sub.1, {dot over (q)}.sub.2, . . . , {dot over (q)}.sub.n of the n links through the motor encoder. Exemplarily, clock cycles of IMU sensors and motor encoders in the wheel-legged robot are the same or in a multiple relationship, so that the physical quantities included in the state quantity are physical quantities at the first moment. For the specific content of the IMU encoder and the motor encoder, please refer to the above introduction, which will not be repeated here.
[0154] In some embodiments, the robust controller takes the state quantity at the first moment as input information and performs the balance control process through the state quantity at the first moment.
[0155] Operation 1120: Determine dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment, where the dynamics model parameters are configured to define a mapping relationship between an angular acceleration at the first moment and a rotation torque at a second moment. The angular acceleration at the first moment includes angular accelerations of the n links and an angular acceleration of the moving wheel. The rotation torque at the second moment includes rotation torques of the n rotating joints.
[0156] In some embodiments, the angular acceleration at the first moment refers to rotation accelerations of the n links (also understood as angular accelerations of joint motors corresponding to the n rotating joints) after abstracting the wheel-legged robot into the n-level inverted pendulum model. The angular acceleration at the first moment may be represented by {umlaut over (q)}.
[0157] As can be seen from the above content, after abstracting the wheel-legged robot into the n-level inverted pendulum model, a dynamics equation in a matrix form can be obtained.
[0158] In this embodiment of this method, the robust controller in the control system of the wheel-legged robot is determined based on the dynamics equation, so that the robust controller can implement the balance control method provided in the embodiment of the present disclosure.
[0159] From a physical relationship among acceleration, velocity, and position, it can be seen that the angular velocities of the n links of the wheel-legged robot at a next moment after the first moment and the attitude of the wheel-legged robot in the subsequent moment can be predicted through the acceleration at the first moment. The rotation torque of the joint can change the speed and attitude of the wheel-legged robot. In the design of the robust controller in this solution, the focus is to establish a mapping relationship between the acceleration of the wheel-legged robot and the rotation torque of the joint based on the dynamics equation in the matrix form.
[0160] Exemplarily, partial feedback linearization is performed on the dynamics equation in the matrix form, so that the matrix related to the acceleration of the wheel-legged robot is on one side of the dynamics equation and the matrix related to the rotation torque of the rotating joint is on the other side, thereby determining the mapping relationship between the acceleration at the first moment and the rotation torque of the rotating joint. The mapping relationship between the acceleration at the first moment and the rotation torque of the rotating joint is represented by dynamics parameters. This process may be completed in the design process of the robust controller and saved in the robust controller. The relevant formulas do not need to be repeatedly derived during the actual balance control.
[0161] In some embodiments, the dynamics model parameters are configured for characterizing the linear mapping relationship between the acceleration and the rotation torque at the first moment. That is to say, through dynamics model parameters, it is ensured that the acceleration and the rotation torque at the first moment satisfy an equal relationship in the formula obtained through conversion based on the dynamics formula. Since there is more than one acceleration and rotation torque at the first moment, the dynamics model parameters may be expressed in a matrix form.
[0162] Exemplarily, the dynamics model parameters include a proportion parameter matrix g[ ] and an offset parameter matrix f[ ]. The proportion parameter matrix g[ ] indicates a proportional relationship between the angular acceleration and the rotation torque at the first moment. The offset parameter matrix f[ ] indicates an offset between the angular acceleration and the rotation torque at the first moment. For the calculation methods of the two dynamics model parameter matrices described above, please refer to the following embodiments.
[0163] In some embodiments, in the design process of the robust controller, the representation form of the dynamics model parameters (i.e., the calculation formula of the dynamics model parameters) is predetermined and stored in the robust controller. In the actual balance control, after acquiring the state quantity at the first moment, the robust controller will substitute the state quantity at the first moment into the representation form of the dynamics model parameters to determine the value of each element included in the dynamics model parameters.
[0164] Operation 1130: Establish a sliding surface according to the state quantity at the first moment, where the state quantity of the wheel-legged robot gradually approaches a stable value on the sliding surface.
[0165] In some embodiments, the sliding surface is an imaginary vector plane in sliding mode control, and the state quantity of the wheel-legged robot gradually approaches a stable value on the sliding surface. In some embodiments, the stable value is 0, that is, the state quantity of the wheel-legged robot gradually approaches 0 on the sliding surface. By introducing the sliding surface into the balance process of the wheel-legged robot, and limiting the calculated values of the rotation torques of the n rotating joints through the sliding surface, the wheel-legged robot can maintain or gradually restore to a balanced state after adjusting the attitude based on the rotation torques of the n rotating joints. That is to say, the state of the wheel-legged robot can gradually approach a balance on the sliding surface. The sliding surface may be represented by a symbol s. In some embodiments, the sliding surface is a rational number, and the value of the sliding surface may be greater than 0, equal to 0, or less than 0.
[0166] In some embodiments, the sliding surface is a linear sliding surface that has a linear relationship with the state quantity, or the sliding surface is a sliding surface that has a high-order mapping relationship with the stable quantity. To reduce the computation pressure of the robust controller and lower the energy consumption of the wheel-legged robot, the method of determining the sliding surface according to the state quantity is mainly introduced and described in this embodiment by taking establishing the linear sliding surface as an example.
[0167] In some embodiments, the number of the sliding surfaces that the robust controller needs to establish is related to the number of the rotation torques to be determined. In some embodiments, the number of the sliding surfaces that the robust controller needs to establish is equal to the number of the rotation torques to be determined. In the present disclosure, abstracting the wheel-legged robot into the n-level inverted pendulum totally involves n rotating joints. Each of the n rotating joints has an independent rotation torque. Therefore, the rotation torque at the second moment includes rotation torques of the n rotating joints. Therefore, n sliding surfaces need to be established. Any two sliding surfaces of the n sliding surfaces are different sliding surfaces. For the specific operation of establishing the sliding surfaces, please refer to the following embodiments.
[0168] Operation 1140: Calculate rotation torques of the n rotating joints according to the sliding surfaces and the dynamics model parameters.
[0169] In some embodiments, for any one of the n rotating joints, the rotation torque of the rotating joint is configured for controlling a joint motor of the rotating joint to rotate. In some embodiments, the joint motor of the rotating joint can rotate according to a certain angular velocity, velocity, or torque, so that the rotating joint reaches a corresponding rotation torque.
[0170] In some embodiments, the robust controller is designed with an equation for calculating rotation torques of the n rotating joints according to the sliding surfaces and the dynamics model parameters. By substituting the sliding surfaces and the dynamics model parameters into the equation, the rotation torques of the n rotating joints can be calculated. The corresponding rotating motors of the rotating joints are controlled through the rotation torques of the n rotating joints, so as to adjust the attitude of the wheel-legged robot and help the wheel-legged robot reach or maintain a balanced state.
[0171] In some embodiments, in the process of calculating the rotation torques of the n rotating joints according to the sliding surfaces and the dynamics model parameters, a system stability criterion also needs to be considered. The system stability criterion is configured to constrain the balanced state of the robot. For the specific process of this part, please refer to the following embodiments. Exemplarily, operation 1110 to operation 1140 are completed by the robust controller.
[0172] Operation 1150: Control the n rotating joints according to the rotation torques of the n rotating joints at the second moment.
[0173] In some embodiments, the second moment refers to any moment after the first moment. In some embodiments, the second moment refers to a moment after calculating the rotation torques of the n rotating joints.
[0174] In some embodiments, the purpose of controlling the n rotating joints is to change the attitude of the wheel-legged robot. The rotation of the rotating joint drives the deflection angle of the link connected to the rotating joint to change, so that the joint angle between the two links connected to the rotating joint changes, the attitude of the wheel-legged robot changes, and the mass center of the wheel-legged robot changes, thereby helping the wheel-legged robot adjust the balanced state.
[0175] In some embodiments, after determining the rotation torques of the n rotating joints, s rotating joints may be controlled, where s is a positive integer less than or equal to n.
[0176] In some embodiments, the implementation methods for controlling the n rotating joints according to the rotation torques of the n rotating joints include the following:
[0177] 1. The torques of the n rotating joints are transmitted to the respective joint motors of the n rotating joints through the robust controller, so that the joint motors of the n rotating joints rotate to the corresponding rotation torques.
[0178] 2. A task acceleration of the wheel-legged robot is calculated according to the rotation torques of the n rotating joints. Force and torque instructions corresponding to whole body joints of the wheel-legged robot are calculated according to the task acceleration of the wheel-legged robot through a whole body dynamics controller in the control system of the wheel-legged robot, thereby determining force and torque instructions corresponding to the n rotating joints in the n-level inverted pendulum model. The force and torque instructions respectively corresponding to the n rotating joints are transmitted to the n rotating joints through the whole body dynamics controller, so that the n rotating joints rotate according to the respective force and torque instructions.
[0179] The whole body joints refer to active joints in the wheel-legged robots. After determining the force and torque instructions for the whole body joints, not only can the rotating motors of the n rotating joints be controlled, but also the joint motors corresponding to other joints except for the n rotating joints can be controlled according to the force and torque instructions corresponding to the whole body joints, thereby enriching the attitudes of the wheel-legged robot. Since the whole body dynamics controller is configured to control the robot to perform motion tasks, this method can integrate the balance control method with the motion process of the wheel-legged robot, thereby helping to improve the adaptability of the balance control method to different scenarios.
[0180] In some embodiments, the operation of calculating the task acceleration of the wheel-legged robot through the rotation torques of the n rotating joints is performed by an observation module in the control system of the wheel-legged robot. The observation module is connected to the robust controller. The observation module is also connected to the whole body dynamics controller. The observation module acquires the rotation torques of the n rotating joints from the robust controller, calculates a task acceleration according to the rotation torques of the rotating joints, and transmits the task acceleration to the whole body dynamics controller. The whole body dynamics controller determines force and torque instructions respectively corresponding to the whole body joint motors according to the task acceleration. For the specific process of this operation, please refer to the following embodiments.
[0181] By associating the control results (the n rotation torques described above) of the robust controller with the whole body dynamics controller, the whole body dynamics controller can receive information related to balance control, thereby helping the whole body dynamics controller to optimize reasonably according to the received input information (including the n rotation torques and the parameters related to the motion process), generate optimized joint instructions (i.e., force and torque instructions), and transmit these joint instructions to the corresponding joints, so that more links of the wheel-legged robot can rotate in the balance control process, thereby helping to improve the balance control ability of the wheel-legged robot in the motion process. Moreover, this method enables the wheel-legged robot to be able to complete the balance adjustment in the motion process.
[0182] To sum up, by abstracting the wheel-legged robot into a multi-level inverted pendulum model, the deflection angles of multiple links of the wheel-legged robot can be adjusted in the balance control process, thereby changing the attitude of the wheel-legged robot. Compared with the related arts in which the included angle between the moving wheel and each leg mechanism can only be adjusted in the balance control process, this solution makes the attitudes of multiple links of the wheel-legged robot changeable in the balance adjustment process, thereby greatly enriching the attitudes of the robot, helping to quickly adjust the robot to a balanced state, also improving the robot's ability to restore to a balanced state under different disturbance forces, and improving the robustness of the balance control process of the robot.
[0183] A method of acquiring the state quantity at the first moment will be introduced and described below through several embodiments.
[0184] In some embodiments, the state quantity of the wheel-legged robot at the first moment is determined through sensors included in the wheel-legged robot. The state quantity at the first moment includes deflection angles of the n links, angular velocities of the n links, and an angular velocity of the moving wheel.
[0185] In some embodiments, the method of acquiring the state quantity at the first moment is related to the attitude of the wheel-legged robot at the first moment. In one example, the state quantity at the first moment is obtained through observation by the sensors of the wheel-legged robot. In another example, the observation results obtained through observation by the sensors of the wheel-legged robot need to be processed to obtain the state quantity at the first moment.
[0186] The moving wheels of the wheel-legged robot in contact with the contact surface overlap in the y-axis direction of the world coordinate system, and the first links overlap in the y-axis direction of the world coordinate system. In some embodiments, the wheel-legged robot is in a double-wheel balanced state, and operation 1110 further includes the following sub-operations:
[0187] Sub-operation 1110-a: Determine the deflection angles of the n links through an inertial measurement unit and a motor encoder of the wheel-legged robot.
[0188] Sub-operation 1110-b: Determine the angular velocities of the n links and the angular velocity of the moving wheel through the motor encoder.
[0189] Through the inertial measurement unit and the motor encoder, the state quantity at the first moment is determined, so that the attitude and motion trend of the wheel-legged robot at the first moment can be known, making it possible to adjust the balance of the wheel-legged robot according to the state quantity at the first moment.
[0190] For the content about the inertial measurement unit and the motor encoder, please refer to the above introduction. In some embodiments, the robust controller acquires the state quantity related to each rotating joint from the IMUs and the motor encoders respectively corresponding to the n rotating joints, and combines the state quantities related to the n rotating joints to obtain the state quantity at the first moment.
[0191] A process of determining dynamics model parameters will be introduced and described below through several embodiments. Operations of this process may be executed by a computer device.
[0192] Operation 1120 in the above embodiment, i.e., determining dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment may include the following several operations:
[0193] Operation 1123 (not shown): Substitute the state quantity at the first moment into the dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment. The inertia matrix indicates masses and moments of inertia of the n rotating joints at the first moment. The bias force matrix indicates a bias force of the wheel-legged robot at the first moment. The gravity matrix indicates a gravity of the wheel-legged robot at the first moment.
[0194] In some embodiments, the inertia matrix indicates inertia quantities of joint rigid bodies respectively corresponding to the n rotating joints that compose the wheel-legged robot in the attitude at the first moment. The inertia quantities include at least one of the following: mass and moment of inertia. In some embodiments, the inertia matrix may be calculated according to the dynamics equation. In a case that the wheel-legged robot is abstracted into an n-level inverted pendulum model, the inertia matrix is a (n+1)*(n+1) matrix.
[0195] In some embodiments, the bias force matrix indicates a Coriolis force and a centripetal force acting on each link. In some embodiments, the bias force matrix includes a bias force caused by the deflection angle of the moving wheel and bias forces caused by the deflection angles of the n links.
[0196] In some embodiments, the gravity matrix indicates a gravity acting on each link. In some embodiments, the gravity matrix includes a gravity acting on the moving wheel and gravities respectively acting on the n links. In some embodiments, the moving wheel (such as the moving wheel of the outer leg mechanism) is always in contact with the contact surface. In the balance control process, the height of the moving wheel remains unchanged, and the gravity acting on the moving wheel remains unchanged. Taking a plane where the mass center of the moving wheel is located as a zero potential energy surface, the gravity acting on the moving wheel is zero, which reduces the computation overhead of the balance control process.
[0197] For the content related to the inertia matrix, the bias force matrix, and the gravity matrix, please refer to the content of the description corresponding
[0198] Operation 1126 (not shown): Determine the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix.
[0199] In some embodiments, the dynamics model parameters include a proportion parameter matrix and an offset parameter matrix. The proportion parameter matrix indicates a proportional relationship between the angular acceleration and the rotation torque at the first moment. The offset parameter matrix indicates an offset relationship between the angular acceleration and the rotation torque at the first moment. In some embodiments, the robust controller calculates the offset parameter matrix according to the inertia matrix, the bias force matrix, and the gravity matrix; and calculates the proportion parameter matrix according to the inertia matrix.
[0200] Through the dynamics model parameters, the rotational relationship between the acceleration of the wheel-legged robot and the rotation torques of the n rotating joints can be determined. Subsequently, according to the dynamics model parameters and the sliding surfaces, the rotation torques of the n rotating joints can be quickly determined, thereby helping to reduce unnecessary conversions in the process of determining the rotation torques of the rotating joints and alleviate the computation pressure of the computer device.
[0201] In some embodiments, operation 1126 further includes the following sub-operations:
[0202] Sub-operation 1126-a (not shown): Process a product of an inverse matrix of the inertia matrix and the bias force matrix by using a selection matrix. The selection matrix is configured to extract the rotation torques of the n rotating joints from the dynamics equation.
[0203] Sub-operation 1126-b (not shown): Process a product of the inverse matrix of the inertia matrix and the gravity matrix by using the selection matrix to obtain the offset parameter matrix.
[0204] In some embodiments, elements in the selection matrix include three values, i.e., (0, 1, 1). The selection matrix is configured for making each rotation torque in r exist independently in the dynamics equation. That is, the dynamics equation is processed by using the selection matrix, so that the coefficients of the rotation torques of rotating joints in the dynamics equation have the same sign, and basic operations (such as .sub.1-.sub.2) between rotation matrices of any two rotating joints are not included in the dynamics equation. Operation 1126-a may be executed before operation 1126-b, or operation 1126-b may be executed before operation 1126-a. Operation 1126-a and operation 1126-b may also be executed in parallel. The execution sequence of these two operations is not limited in the present disclosure.
[0205] Sub-operation 1126-c (not shown): Process the inverse matrix of the inertia matrix by using the selection matrix to obtain the proportion parameter matrix.
[0206] Continuing with the content about operation 1120 in the above embodiment, the two sub-operations included in operation 1126 will be introduced and described below. Partial feedback linearization is performed on the dynamics equation in the matrix form to obtain formula 1:
[0207] where M.sup.1(q) is the inverse matrix of the inertia matrix, M.sup.1(q)*M(q)=E, and E is a unit matrix. For physical meanings of other parameters in formula 1, please refer to the above embodiment, which will not be repeated here.
[0208] Further, to simplify the execution logic in the balance control process and reduce the computation amount of the robust controller, it is necessary to adjust formula 1 in the design process of the robust controller. Formula 1 is processed by using the selection matrix to obtain formula 2:
[0209] where
represents the offset parameter matrix,
represents the proportion parameter matrix, g.sub.(, {dot over ()}, q, {dot over (q)}).sup.1n, g.sub.q(, {dot over ()}, q, {dot over (q)})
.sup.nn,
and S.sup.T is the selection matrix.
[0210] In some embodiments, formula 2 is derived after modeling by abstracting the wheel-legged robot into an n-level inverted pendulum model. In the balance control process, after acquiring the state quantity at the first moment, the robust controller may calculate the proportion parameter matrix and the dynamics model parameter matrix according to formula 2 and the expressions of each element in the inertia matrix, the bias force matrix, and the gravity matrix obtained in the derivation process of the dynamics equation of the n-level inverted pendulum model.
[0211] In some embodiments, the dynamics equation of the robot is obtained by abstracting the wheel-legged robot into an n-level inverted pendulum model and performing derivation based on an Euler-Lagrange equation. The moving wheel of the wheel-legged robot corresponds to the wheel in the n-level inverted pendulum model, and the at least one link of the wheel-legged robot corresponds to the n links in the n-level inverted pendulum model. For the derivation process of the dynamics equation, please refer to the above embodiment, which will not be repeated here. After abstracting the wheel-legged robot into the n-level inverted pendulum model, the dynamics equation includes the rotation torques of the n rotating joints, so that the balance control process can control the rotation modes of the n rotating joints. The rotation of the rotating joints drives the attitudes and motion states of the links connected to the rotating joints to change, so that all n mechanisms can participate in the balance control process, thereby making the attitude of the wheel-legged robot more flexible in the balance control process, helping to adapt to different balance control requirements in different scenarios, and improving the robustness of the balance control method.
[0212] A method of establishing a sliding surface will be introduced and described below through several embodiments.
[0213] In some embodiments, the sliding surface includes n sliding surfaces; the n sliding surfaces are configured to constrain the rotation torques of the n rotating joints. In some embodiments, there are no identical sliding surfaces among the n sliding surfaces, and the n sliding surfaces are configured for jointly participating in the calculation process of the rotation torques.
[0214] Operation 1130 in the above embodiment, i.e., establishing a sliding surface according to the state quantity at the first moment, may include the following operations:
[0215] Operation 1133 (not shown): Determine two sliding mode parameters for an i.sup.th sliding surface of the n sliding surfaces, where i is a positive integer less than or equal to n.
[0216] In some embodiments, the sliding surface is related to at least one element in the state quantity, and each element in the state quantity may also be referred to as a state parameter. For example, q.sub.1, q.sub.2, . . . , q.sub.n, {dot over ()}, and {dot over (q)}.sub.1, {dot over (q)}.sub.2, . . . , {dot over (q)}.sub.n included in the state quantity =[q {dot over ()} {dot over (q)}].sup.T are state parameters.
[0217] For example, a certain sliding surface is related to the deflection angle and acceleration of the first link in the state quantity. For another example, a certain sliding surface is related to the deflection angle of the i.sup.th link and the acceleration of the i.sup.th link. In some embodiments, the n sliding surfaces are respectively related to a first state parameter in the state quantity. For example, the first state parameter is the angular velocity of the moving wheel, that is, the n sliding surfaces are related to the angular velocity of the moving wheel.
[0218] In some embodiments, the sliding mode parameters are real numbers. The sliding mode parameters are configured for characterizing a proportional relationship between the state parameters in the state quantity and the sliding surfaces. Exemplarily, the sliding mode parameters between different sliding surfaces are not shared, that is, there are at least two sliding surfaces in the n sliding surfaces, and the sliding mode parameters respectively corresponding to the at least two sliding surfaces are not equal.
[0219] In some embodiments, the number of the state parameters configured for establishing the sliding surface is greater than the number of sliding mode parameters. In some embodiments, for each sliding surface of the n sliding surfaces, the number of the state parameters used in the process of establishing the sliding surface is greater than the number of the sliding mode parameters used, which helps to ensure that the determined rotation torque can be calculated according to the sliding surface and the dynamics model parameters, thereby helping the wheel-legged robot to make balance adjustment according to the determined rotation torque.
[0220] For example, when establishing a certain sliding surface, it is necessary to use three state parameters in the state quantity and two sliding mode parameters. For another example, when establishing a certain sliding surface, it is necessary to use four state parameters in the state quantity and three sliding mode parameters.
[0221] Since the number of the sliding mode parameters used in the process of establishing the sliding surface is less than the number of the state parameters, the coefficient of at least one state parameter in the sliding surface is equal to 1, that is, there is no corresponding state parameter for these sliding mode parameters, and the remaining state parameters that need to be used in establishing a certain sliding surface correspond to the sliding mode parameters one to one.
[0222] In some embodiments, for the i.sup.th sliding surface of the n sliding surfaces, the i.sup.th sliding surface includes at least two sliding mode parameters. In some embodiments, the state parameters included in different sliding surfaces are not exactly the same, and the number of the state parameters required to establish each sliding surface is equal. For example, the number of the sliding mode parameters respectively included in the n sliding surfaces is equal, assuming that three state parameters are configured for establishing an i.sup.th sliding surface and three state parameters are also configured for establishing an (i+k).sup.th sliding surface.
[0223] In some embodiments, the number of the sliding mode parameters included in the i.sup.th sliding surface is related to the number of the state parameters configured for establishing the i.sup.th sliding surface. In some embodiments, the number of the state parameters configured for establishing the i.sup.th sliding surface is one more than the number of the sliding mode parameters configured for establishing the i.sup.th sliding surface. To ensure that exact solutions of the rotation torques of the n rotating joints can be calculated through the sliding surface and the dynamics model parameters, the i.sup.th sliding surface is related to at least three state parameters in the state quantity at the first moment. In some embodiments, at least three state parameters related to the i.sup.th sliding surface are not completely the same as at least three state parameters related to an l.sup.th sliding surface, where l is a positive integer less than or equal to n.
[0224] To improve the reliability of the determined rotation torques, the sliding mode parameters need to meet a system stability condition. For the specific details about this part, please refer to the following embodiments.
[0225] In some embodiments, the number of the state parameters respectively configured for establishing the n sliding surfaces is equal. For example, any one sliding surface of the n sliding surfaces includes three state parameters.
[0226] A method of establishing a sliding surface will be introduced and described below by taking establishing the i.sup.th sliding surface as an example.
[0227] Generally speaking, the more the state parameters related to a certain sliding surface in the state quantity at the first moment, the more the reference information used in calculating the rotation torques of the n rotating joints. The mutual constraint between various state quantities helps to improve the accuracy of the rotation torques of the n rotating joints determined according to the n sliding surfaces and the dynamics model parameters, and helps to improve the effect of balance adjustment.
[0228] In some embodiments, at least three state parameters and at least two sliding mode parameters are configured for establishing the i.sup.th sliding surface.
[0229] Exemplarily, the state parameters configured for establishing the i.sup.th sliding surface include a deflection angle of the i.sup.th link, an angular velocity of the moving wheel, and an angular velocity of the i.sup.th link. In this case, the two sliding mode parameters configured for establishing the i.sup.th sliding surface are respectively a sliding mode parameter corresponding to the deflection angle of the i.sup.th link and a sliding mode parameter corresponding to the angular velocity of the moving wheel. Exemplarily, the i.sup.th sliding surface is related to four state parameters in the state quantity, the i.sup.th sliding surface is related to the deflection angle of the i.sup.th link, the angular velocity of the moving wheel, the angular velocity of the i.sup.th link, and a deflection angle of a [(i+m)% n].sup.th link, m is a positive integer that cannot be divided by n, and % represents a remainder obtained by division. In this case, the three sliding mode parameters included in the i.sup.th sliding surface are respectively a sliding mode parameter corresponding to the deflection angle of the i.sup.th link, a sliding mode parameter corresponding to the angular velocity of the moving wheel, and a sliding mode parameter corresponding to the deflection angle of the [(i+m)% n].sup.th link. The number of the state parameters and number of the sliding mode parameters related to the sliding surface are designed according to the actual needs, which are not limited in the present disclosure.
[0230] In some embodiments, multiple sets of sliding surface establishment schemes are designed in the robust controller, and the number of the sliding mode parameters and the state parameters configured for establishing the i.sup.th sliding surface are not completely the same in different sliding surface establishment schemes. For example, in a first sliding surface establishment scheme, two sliding mode parameters and three state parameters need to be configured for establishing the i.sup.th sliding surface. In a second sliding surface establishment scheme, five sliding mode parameters and six state parameters need to be configured for establishing the i.sup.th sliding surface, that is, the number of the sliding mode parameters configured for establishing the sliding surface in the first sliding surface establishment scheme is not equal to the number of the sliding mode parameters required for establishing the sliding surface in the second sliding surface establishment scheme. The number of the state parameters configured for establishing the sliding surface in the first sliding surface establishment scheme is not equal to the number of the state parameters required for establishing the sliding surface in the second sliding surface establishment scheme.
[0231] In some embodiments, in the balance control process, the robust controller selects a target establishment scheme from the multiple sets of sliding surface establishment schemes according to the actual situation, and determines the number of the sliding mode parameters required for establishing the i.sup.th sliding surface according to the target establishment scheme.
[0232] Exemplarily, in a case that the computation performance of the robust controller is high, the robust controller selects from the multiple sets of sliding surface establishment schemes, and uses a sliding surface establishment scheme involving more sliding mode parameters as the target establishment scheme. Exemplarily, the robust controller determines the target establishment scheme according to a task currently executed by the wheel-legged robot. If the task currently executed by the wheel-legged robot has a high requirement on the balance and the robust controller has good computation ability, then the robust controller will select a sliding surface establishment scheme involving more sliding mode parameters from the multiple sets of sliding surface establishment schemes as the target establishment scheme. Exemplarily, in a case that the computation performance of the robust controller is common or there is a power consumption demand, the robust controller selects a sliding surface establishment scheme including fewer sliding mode parameters from at least one set of sliding surface establishment schemes as the target establishment scheme. Exemplarily, the robust controller receives a control instruction from a remote controller, and the control instruction is configured for indicating the target establishment scheme selected from the multiple sliding surface establishment schemes.
[0233] Operation 1136 (not shown): Establish the i.sup.th sliding surface according to the at least two sliding mode parameters and the state quantity at the first moment.
[0234] In some embodiments, the state quantity includes deflection angles of the n links, an angular velocity of the moving wheel, and angular velocities of the n links. In some embodiments, the robust controller establishes the i.sup.th sliding surface according to at least three state parameters in the state quantity at the first moment and at least two sliding mode parameters.
[0235] In some embodiments, operation 1136, i.e., establishing the i.sup.th sliding surface according to the at least two sliding mode parameters and the state quantity at the first moment, includes the following sub-operations:
[0236] Sub-operation 1136-a: Process the deflection angle of an i.sup.th link according to the first sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the i.sup.th link.
[0237] In some embodiments, the first sliding mode parameter is a coefficient corresponding to the deflection angle of the i.sup.th link and the second sliding mode parameter is a coefficient corresponding to the angular velocity of the moving wheel link.
[0238] In some embodiments, the processing result of the i.sup.th link refers to a result obtained by using the first sliding mode parameter to process the deflection angle of the i.sup.th link in the process of establishing the i.sup.th sliding surface. Exemplarily, a method of processing the deflection angle of the i.sup.th link by using the first sliding mode parameter includes, but not limited to, performing basic calculations (such as addition, subtraction, multiplication, and division) by using the first sliding mode parameter and the deflection angle of the i.sup.th mechanism to obtain a processing result of the i.sup.th link. For example, the first sliding mode parameter is multiplied by the angular velocity of the i.sup.th link to obtain the processing result of the first link.
[0239] Sub-operation 1136-b: Process the angular velocity of the moving wheel according to the second sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the moving wheel. In some embodiments, in the process of establishing the i.sup.th sliding surface, the processing result of the moving wheel refers to a result obtained by processing the angular velocity of the moving wheel by using the second sliding mode parameter. Exemplarily, a method of processing the angular velocity of the moving wheel by using the first sliding mode parameter includes, but not limited to, performing basic calculations by using the second sliding mode parameter and the angular velocity of the moving wheel. For example, the second sliding mode parameter is multiplied by the angular velocity of the moving wheel to obtain the processing result of the moving wheel.
[0240] The second sliding mode parameters corresponding to different sliding surfaces are different, that is, for the processes of establishing different sliding surfaces, the processing results of the moving wheel obtained by processing the angular velocity of the moving wheel by using the second sliding mode parameters are different.
[0241] Sub-operation 1136-c: Establish the i.sup.th sliding surface according to the processing result of the i.sup.th link, the processing result of the moving wheel, and the angular velocity of the i.sup.th link.
[0242] In some embodiments, the i.sup.th sliding surface is proportional to the processing result of the i.sup.th link, the i.sup.th sliding surface is proportional to the processing result of the moving wheel, and the first sliding surface is proportional to the angular velocity of the i.sup.th link. Exemplarily, the robust controller adds up the processing result of the i.sup.th link, the processing result of the moving wheel, and the angular velocity of the i.sup.th link to obtain the i.sup.th sliding surface.
[0243] In some embodiments, the robust controller establishes the i.sup.th sliding surface according to the processing result of the i.sup.th link, the processing result of the moving wheel, the angular velocity of the i.sup.th link, and a sliding mode constant. The sliding mode constant may be a preset value.
[0244] The robust controller respectively determines the n sliding surfaces through the method of establishing the i.sup.th sliding surface described above.
[0245] The n sliding surface may be expressed through the following formula:
[0246] where s represents a sliding surface matrix including the n sliding surfaces; .sup.nn, including first sliding mode parameters respectively corresponding to the deflection angles of the n links,
.sup.n1, including the second sliding mode parameters respectively corresponding to the angular velocity of the moving wheel in the n sliding surfaces. For the explanations of the other parameters, please refer to the introduction above, which will not be repeated here.
[0247] By establishing the n sliding surfaces in this way, on the premise of ensuring that the rotation torques of the n rotating joints can be calculated according to the sliding surfaces and the dynamics model parameters, the number of the sliding mode parameters and the state parameters used in the process of establishing the sliding surfaces is controlled, thereby helping to control the computation overhead in calculating the rotation torques of the n rotating joints, accelerate the speed of determining the rotation torques, reduce the power consumption, and achieve the balance control of the robot.
[0248] After describing the design method of the dynamics model parameters and the n sliding surfaces in the robust controller, the content related to the design of the robust controller corresponding to operation 1140, i.e., calculating rotation torques of the n rotating joints according to the sliding surface and the dynamics model parameters, will be introduced and described below.
[0249] After establishing the n sliding surfaces according to the state quantity, the robust controller determines first-order derivatives formula of the n sliding surfaces with respect to time, and uses torques to represent the angular accelerations of the n links according to the dynamics equation (formula 2). After sorting, the following formula 3 is obtained:
[0250] where {dot over (s)} represents first-order derivatives of the n sliding surfaces respectively with respect to time, f.sub. is f.sub.(, {dot over ()}, q, {dot over (q)}) in the offset parameter matrix f[ ] in formula 2 described above, f.sub.q is f.sub.q(, {dot over ()}, q, {dot over (q)}) in the offset parameter matrix f[ ] in formula 2 described above, g.sub. is g.sub.(, {dot over ()}, q, {dot over (q)}) in the proportion parameter matrix g[ ] in formula 2 described above, and g.sub.q is g.sub.q(, {dot over ()}, q, {dot over (q)}) in the proportion parameter matrix g[ ] in formula 2 described above. For other parameters, please refer to the above introduction, which will not be repeated here.
[0251] Transposition processing is performed on formula 3 to obtain formula 4:
[0252] where sgn( ) is a symbol function, k.sub..sup.nn is a constant matrix, s.sup.T is a transpose matrix of the sliding surface matrix s including the n sliding surfaces, |s| represents absolute values of the n sliding surfaces,
{dot over (s)} represents first-order derivatives of the n sliding surfaces with respect to time. For other parameters, please refer to the above introduction, which will not be repeated here.
[0253] In some embodiments, formula 3 and formula 4 are obtained by the robust controller through real-time calculation in the balance control process.
[0254] By utilizing the properties of the sliding surface, when the sliding surface is controlled to be equal to 0, the state parameters related to the sliding surface will gradually approach 0 along the sliding surface, that is, the wheel-legged robot will restore to a balanced state. The state quantity (or the state parameters in the state quantity) satisfy the following on the sliding surface:
[0255] The angular velocities of the n links may be inversely expressed through the above formula:
[0256] The robust controller determines the first-order derivatives of the angular velocities of the n links with respect to time to obtain formula 5 that can represent the angular accelerations of the n links:
[0257] Since q is a vector that includes the deflection angles of the n links, q is split: letting represent q.sub.1 (the deflection angle of the first link), and letting represent
that is, letting include the deflection angles of all links except for the first link of the n links, the dynamics equation obtained based on the n-level inverted pendulum model is written as:
[0258] where in this formula, {umlaut over ()} represents an angular acceleration of the first link; {umlaut over ()} represents angular accelerations respectively corresponding to other links except for the first link of the n links; m.sub. represents an inertia quantity related to the moving wheel in the inertia matrix M; m.sub. represents an inertia quantity related to the first link in m.sub.q in the inertia matrix M; m.sub. represents an inertia quantity unrelated to the first link in m.sub.q in the inertia matrix M; m.sub. represents an inertia quantity related to the first link in m.sub.qq in the inertia matrix M; m.sub. represents an inertia quantity unrelated to the first link in m.sub.qq in the inertia matrix M; c.sub. represents a bias force acting on the first link; c.sub. represents eccentric forces respectively acting on other links except for the first link of the n links; g.sub. represents a gravity acting the first link; g.sub. represents gravities respectively acting on other links except for the first link of the n links; .sub.1 represents a rotation torque of the first rotating joint; and .sub.2 represents rotation torques respectively corresponding to other rotating joints except for the first rotating joint of the n rotating joints.
[0259] The three formulas included in the above dynamics equation are added up to obtain formula 6:
[0260] {umlaut over ()} and {umlaut over ()} in formula 6 are merged into {umlaut over (q)} to obtain formula 7:
[0261] Equivalent replacement is performed on {umlaut over (q)} in formula 7 by using formula 5 to obtain formula 8:
[0262] A formula 9 for expressing {umlaut over ()} is obtained through formula 8:
[0263] A formula 10 for expressing {umlaut over (q)} is obtained through formula 5 and formula 9:
[0264] Simultaneous establishment is performed on {dot over (q)}, {umlaut over ()}, {umlaut over (q)} to obtain a state equation in a matrix form:
[0265] where m.sub.1=(m.sub.+m.sub.+m.sub.[m.sub.+m.sub.+m.sub.,m.sub.+m.sub.+m.sub.]), m.sub.2=[m.sub.+m.sub.+m.sub.,m.sub.+m.sub.+m.sub.], c.sub.1=c.sub.c.sub.c.sub.g.sub.g.sub., and I is a unit matrix.
[0266] In some embodiments, a system stability criterion is related to the state equation determined according to the dynamics equation and the sliding surface. Exemplarily, the stability criterion is related to the coefficient matrix in the state equation. To ensure that the system stability criterion is satisfied, the sliding mode parameters need to satisfy the coefficient matrix of the state equation:
whose characteristic roots are distributed in a left half plane of a complex plane. This state equation can serve as a matrix inequality constraint, that is, the values of the sliding mode parameters are distributed in the left half plane of the complex plane of the coefficient matrix.
[0267] In some embodiments, in the balance control process in the present disclosure, the robust controller determines the rotation torques of the n rotating joints according to formula 4 and the state equation. In the balance control process, the robust controller calculates the rotation torques of the n rotating joints according to formula 4. Formula 4 involves the n sliding surfaces that form a sliding surface matrix s. Formula 2 involves the sliding mode parameters in addition to the dynamics model parameters.
[0268] The robust controller determines the dynamics model parameters and establishes the n sliding surfaces by acquiring the state quantity at the first moment and substituting the state quantity at the first moment into the corresponding formula. The sliding mode parameters in the sliding surfaces satisfy the system stability condition. Then, the robust controller ensures that the sliding mode parameters satisfy the matrix inequality constraint formed by the state equation above, and calculates the rotation torques r of the n rotating joints based on formula 4.
[0269] Exemplarily, in the balance control method provided in the present disclosure, sliding mode parameters that satisfy the matrix inequality constraint are first determined, and then sliding surfaces are established through the sliding mode parameters. The robust controller determines a state equation according to the dynamics equation and the representation form of the sliding surfaces (at this time, the sliding mode parameters in the sliding surfaces are unknown). The robust controller determines values or value ranges of the sliding mode parameters under the system stability condition where the characteristic roots of the coefficient matrix satisfying the state equation are in the left half plane, and obtains the actual values of the sliding mode parameters required in the process of establishing the sliding surfaces. The robust controller substitutes the sliding mode parameters into the sliding surfaces and calculates the rotation torques of the n rotating joints according to the sliding surfaces and the dynamics model parameters.
[0270] Exemplarily, in the balance control method provided in the present disclosure, sliding mode parameters corresponding to any n sliding surfaces within a certain value range are first selected, n sliding surfaces are established by using these sliding mode parameters, and rotation torques r of the n rotating joints are calculated through formula 4. Then the robust controller verifies whether the four sliding mode parameters satisfy the matrix inequality constraint described above. In a case that the four sliding mode parameters satisfy the matrix inequality constraint described above, the rotation torques r of the n rotating joints can be configured for controlling the n rotating joints. In a case that the n sliding mode parameters do not satisfy the matrix inequality constraint described above, the determined rotation torques of the n rotating joints cannot be used.
[0271] A method of determining sliding mode parameters will be introduced and described below through several embodiments.
[0272] In some embodiments, for the i.sup.th sliding surface of the n sliding surfaces, the robust controller determines at least two sliding mode parameters, including: determining a first sliding mode parameter of the at least one sliding mode parameters from a (2i1).sup.th predicted parameter set, and determining a second sliding mode parameter of the at least one sliding mode parameter from a (2i).sup.th predicted parameter set. Sliding mode parameters respectively included in the (2i1).sup.th predicted parameter set and the (2i).sup.th predicted parameter set satisfy a constraint condition of a stability criterion.
[0273] In this embodiment, after determining the state at the first moment, the computer device first uses the above state equation as a matrix inequality constraint, determines solution sets respectively corresponding to the sliding mode parameters that need to be respectively configured for the n sliding surfaces, and obtains 2n predicted parameter sets. That is to say, for any one of the 2n predicted parameter sets, the sliding mode parameters in the predicted parameter set satisfy the principle of system stability.
[0274] In the process of establishing the i.sup.th sliding surface, a first sliding mode parameter of the at least two sliding mode parameters is determined from the (2i1).sup.th predicted parameter set, and a second sliding mode parameter of the at least two sliding mode parameters is determined from the (2i).sup.th predicted parameter set, the i.sup.th sliding surface is established according to the state quantity at the first time and the above at least two sliding mode parameters, and then, the robust controller calculates the rotation torques of the n rotating joints according to formula 4 above.
[0275] In this embodiment, taking establishing a sliding surface by using two sliding mode parameters as an example, the method of determining the sliding mode parameters is introduced and described. If k sliding mode parameters need to be configured for establishing a sliding surface, then in the process of establishing the i.sup.th sliding surface, a sliding mode parameter needs to be acquired from each of the k predicted parameter sets corresponding to the i.sup.th sliding surface, so as to obtain k sliding mode parameters. In a case that k is equal to 2, it is the method introduced in the above embodiment. k is a positive integer greater than or equal to 2, and the maximum value of k is set according to the actual needs, which is not limited in the present disclosure.
[0276] This method helps to avoid selecting sliding mode parameters that do not satisfy system stability, which may result in the inability to control the balance of the wheel-legged robot through the rotation torques of the n rotating joints calculated by using these sliding mode parameters, improves the usability of the determined rotation torques of the rotating joints, helps to avoid the calculation performed by the computer device when determining the rotation torques again, and helps to shorten the time required to determine the rotation torques of the n rotating joints.
[0277] A method of adjusting the attitude of the wheel-legged robot by using the rotation torques of the n rotating joints will be introduced and described below through several embodiments.
[0278] In some embodiments, operation 1150 in the above embodiment, i.e., controlling the n rotating joints according to the rotation torques of the n rotating joints, includes the following sub-operations:
[0279] Sub-operation 1150-a: For any rotating joint of the n rotating joints, control a rotating motor corresponding to the rotating joint to rotate according to the rotation torque of the rotating joint.
[0280] In this embodiment, after the robust controller calculates the rotation torques of the n rotating joints, it transmits the rotation torques of the n rotating joints respectively to rotating motors corresponding to the rotating joints. For any one of the n rotating joints, the rotating motor corresponding the rotating joint rotates according to the rotation torque of the rotating joint after receiving the rotation torque of the rotating joint, so as to drive at least one link connected to the rotating joint to move, so that the deflection angle and angular velocity of at least one link of the n links change.
[0281] In some embodiments, the rotating motors respectively corresponding to the n rotating joints rotate simultaneously at the second moment after receiving the rotation torques of the respective rotating joints, so that the attitude of the wheel-legged robot changes.
[0282] By adjusting the position and state of the wheel-legged robot through the n rotating motors, the balance control of the wheel-legged robot is achieved, so that multiple links in the wheel-legged robot can participate in the balance control process, thereby helping to improve the efficiency of adjusting the attitude and motion state of the wheel-legged robot according to the rotation torques.
[0283] In the above embodiment, the robust controller directly transmits the rotation torques of the n rotating joints to the rotating motors after determining the rotation torques of the n rotating joints, and controls the rotating motors corresponding to the n rotating joints to change the deflection angles of the n links, thereby changing the attitude of the wheel-legged robot and adjusting the balanced state. Based on the rotation torques of the rotating joints, the rotating motors of the rotating joints are controlled to rotate. After determining the rotation torques of the rotating joints, the balanced state of the wheel-legged robot can be adjusted in time, thereby helping the wheel-legged robot to quickly restore to a balanced state.
[0284] After the robust controller determines the rotation torques of the n rotating joints, it may also determine the rotation torques respectively corresponding to the whole body joints of the wheel-legged robot according to the rotation torques of the n rotating joints, so that more links in addition to the n links in the wheel-legged robot can participate in the balance control process, and the combination of the balance control process and the motion process is achieved. This method will be introduced and described below through several embodiments.
[0285] In some embodiments, operation 1150, i.e., controlling the rotating motors corresponding to the n rotating joints according to the rotation torques of the n rotating joints at the second moment, may include the following sub-operations:
[0286] Sub-operation 1153: Calculate a task acceleration of the wheel-legged robot at the second moment according to the rotation torques of the n rotating joints. The task acceleration includes an acceleration related to a mass center of the wheel-legged robot.
[0287] In some embodiments, the mass center of the wheel-legged robot refers to an imaginary point that gathers all the mass of the wheel-legged robot. The mass center of the wheel-legged robot is related to factors such as the mass distribution of each mechanism of the wheel-legged robot and the attitude of the wheel-legged robot.
[0288] In some embodiments, the task acceleration includes, but not limited to, at least one of the following: an acceleration of the mass center of the wheel-legged robot in the x-axis, an acceleration of the mass center of the wheel-legged robot in the y-axis, an acceleration of the mass center of the wheel-legged robot in the z-axis, an angular acceleration of the mass center of the wheel-legged robot when rotating around the x-axis direction, an angular acceleration of the mass center of the wheel-legged robot when rotating around the y-axis direction, and an angular acceleration of the mass center of the wheel-legged robot when rotating around the z-axis direction. Exemplarily, the task acceleration is observed in an operation space or in a joint space.
[0289] The operation space refers to a space related to an operation task of the wheel-legged robot. Physical quantities in this operation are observed in a Cartesian coordinate system (world coordinate system). The joint space refers to a coordinate system for observing the motion states of joints. Exemplarily, the physical quantities in the operation space and the physical quantities in the task space are convertible. The position information of a certain mechanism in the operation space and the position in the joint space may be converted through a kinematic formula, and the velocity in the operation space and the velocity in the joint space may be converted through a Jacobian matrix. The Jacobian matrix refers to a matrix in which first-order partial derivatives are arranged in a certain way.
[0290] In some embodiments, the task acceleration includes an acceleration related to the mass center of the wheel-legged robot when the wheel-legged robot executes an operation space task. In some embodiments, the task acceleration is related to a position of the mass center of the wheel-legged robot relative to the wheel-legged robot. For a method of determining the task acceleration, please refer to the following content.
[0291] The operation space task may be understood as a task that the wheel-legged robot needs to perform in the operation space. At a certain moment, the operation task that the wheel-legged robot needs to perform is determined according to the motion scenario of the wheel-legged robot. In some embodiments, at the first moment, the wheel-legged robot may perform multiple operation space tasks.
[0292] Exemplarily, the operation space tasks include, but not limited to, at least one of the following: a support wheel task, a vertical torso task, a torso attitude task, a swing wheel task, a mass center task, and the like. The support wheel task refers to a task related to a moving wheel of at least one moving wheel of the wheel-legged robot that is in contact with the contact surface. The vertical torso task refers to a task of the torso mechanism (also known as the body mechanism) of the wheel-legged robot in the z-axis direction of the world coordinate system. The torso attitude task refers to a task related to an Euler angle of the torso mechanism of the wheel-legged robot. The Euler angle includes a roll angle, a pitch angle, and a yaw angle. The swing wheel task refers to a task related to a moving wheel of at least one moving wheel of the wheel-legged robot that is not in contact with the contact surface. The mass center task refers to a task related to the mass center of the wheel-legged robot.
[0293] Sub-operation 1156: Determine force and torque instructions for whole body joints of the wheel-legged robot at the second moment according to the task acceleration. The whole body joints include the n rotating joints.
[0294] In some embodiments, the whole body joints refer to active joints in the wheel-legged robot. In some embodiments, the whole body joints include a rotating joint and a straight joint. Exemplarily, the rotating joint corresponds to a rotating motor. The deflection angles, angular velocities and the like of the links connected to the rotating joint are changed through the rotation of the rotating motor. The linear joint corresponds to a linear motor. The linear motor is configured to change the length of the mechanism. For example, the leg mechanism (first link) of the wheel-legged robot includes a linear motor, and the length of the leg mechanism can be adjusted through the linear motor.
[0295] In some embodiments, after determining the task acceleration, the observation module transmits the task acceleration to the whole body dynamics controller. The whole body dynamics controller determines force and torque instructions respectively corresponding to the whole body joints according to the task acceleration. In some embodiments, if the wheel-legged robot performs multiple operation space tasks at the first moment, in addition to determining the task acceleration related to the mass center of the wheel-legged robot, it is also required to calculate other task accelerations respectively corresponding to other operation space tasks. For the specific content about this process, please refer to the following embodiments.
[0296] In some embodiments, the whole body dynamics controller is designed with a whole body dynamics equation of the wheel-legged robot, and the whole body dynamics equation indicates a relationship between the attitude of the wheel-legged robot and a whole body state variable. The whole body dynamics equation is obtained by establishing a whole body dynamics model of the wheel-legged robot and deriving through kinematics.
[0297] In some embodiments, the whole body dynamics model may be expressed by the following formula:
[0298] where H.sup.N.sup.
.sup.N.sup.
.sup.N.sup.
.sup.N.sup.
.sup.N.sup.
.sup.N.sup.
.sup.N.sup.
[0299] In some embodiments, the whole body dynamics equation is obtained by establishing a whole body dynamics model of the wheel-legged robot based on rigid body dynamics, and the whole body dynamics equation is configured for describing a relationship between the attitude of the complete wheel-legged robot and the motion state of each active joint and the external force acting thereon.
[0300] In some embodiments, the force and torque instructions include at least one of the following: a force instruction and a torque instruction. In some embodiments, the force and torque instructions for the rotating motor include a torque instruction, and the torque instruction is configured for controlling the rotating motor to rotate according to the torque instruction. The force and torque instructions for the linear motor include a force instruction, and the force instruction is configured for controlling the linear motor to perform linear motion.
[0301] Sub-operation 1159: Control the whole body joints according to the force and torque instructions at the second moment.
[0302] After determining the force and torque instructions for the whole body joints, the whole body dynamics controller transmits the force and torque instructions to the joint motors respectively corresponding to the whole body joints. The joint motors respectively corresponding to the whole body joints perform linear motion or rotation according to the received force and torque instructions, so that the attitude of the wheel-legged robot changes, thereby adjusting the balanced state of the wheel-legged robot.
[0303] In some embodiments, after the rotating motors respectively corresponding to the n rotating joints receive the force and torque instructions, the rotating motors rotate to change the deflection angle, angular velocity, and angular acceleration of at least one wheel-legged robot corresponding to the n-level inverted pendulum model. For the active joints (i.e., other active joints except for the n joints) not considered in the n-level inverted pendulum, these active joints start to perform motion after receiving the force and torque instructions.
[0304] Exemplarily, after the linear motors in the leg mechanisms receive the force and torque instructions, the linear motors in the leg mechanisms change the lengths of the leg mechanisms and the height of the wheel-legged robot, so that the position of the mass center of the wheel-legged robot in the z-axis direction changes. Exemplarily, for other rotating motors except for the n rotating motors, the other rotating motors rotate according to the received force and torque instructions.
[0305] The rotation torques of the n rotating joints, and the values of the force and torque instructions for the n rotating joints may not be the same. In the process that the whole body dynamics controller determines the force and torque instructions for the whole body joints, a state quantity related to the operation space task of the wheel-legged robot is used, and more rotating joints are involved.
[0306] Balance control is performed according to the force and torque instructions generated by the whole body dynamics controller, so that more links (more than n links) can participate in the balance control, thereby enriching the attitudes of the wheel-legged robot in the balance adjustment process, and achieving the combination of the balance adjustment and the operation space task in the motion process. By combining the robust controller and the whole body dynamics controller to complete the balance adjustment, a new thought for balance control is provided.
[0307] A method of determining a task acceleration will be introduced and described below through several embodiments.
[0308] In some embodiments, sub-operation 1153: calculate a task acceleration of the wheel-legged robot at the second moment according to the rotation torques of the n rotating joints. Sub-operation 1153 may be completed by an observation module. The observation module is configured to determine the task acceleration. In some embodiments, the observation module is designed with a method of converting the rotation torques of the n rotating joints into the task acceleration.
[0309] In some embodiments, sub-operation 1153 may include the following sub-operations:
[0310] Sub-operation 1153-a: Determine an angular acceleration at the second moment according to the dynamics equation and the rotation torques of the n rotating joints.
[0311] The dynamics equation refers to a dynamics equation obtained based on the n-level inverted pendulum model. The dynamics equation is related to the motion states of the n mechanisms and the rotation torques of the n rotating joints.
[0312] In some embodiments, after the robust controller of the wheel-legged robot determines the rotation torques of the n rotating joints based on the state quantity at the first moment, it transmits the rotation torques of the n rotating joints to the observation module in the control system, and according to formula 2 described above:
[0313] the observation module calculates an angular acceleration of the wheel-legged robot at a second moment.
[0314] In some embodiments, the angular acceleration at the second moment refers to an angular acceleration related to the n-level inverted pendulum model. Exemplarily, the angular acceleration at the second moment includes angular accelerations of the n links at the second moment and an angular acceleration of the moving wheel at the second moment.
[0315] Sub-operation 1153-b: Determine an expected incremental position and an expected incremental speed of the mass center of the wheel-legged robot at the second moment according to the state quantity at the first moment and the angular acceleration at the second moment. The expected incremental position indicates a distance between a projection of the mass center of the wheel-legged robot on a contact surface and a virtual contact point in a first direction. The expected incremental speed indicates a changing speed of the distance in the first direction. The virtual contact point refers to a center of contact points between the wheel-legged robot and the contact surface.
[0316] In some embodiments, in a case that at least two moving wheels in the wheel-legged robot are in contact with the contact surface, the virtual contact point refers to a center of a connecting line between contact points of the at least two moving wheels with the contact surface.
[0317] In some embodiments, the expected incremental position indicates the position of the mass center of the wheel-legged robot relative to the wheel-legged robot. The expected incremental speed is a first-order derivative of the expected incremental position with respect to time, that is, the expected incremental speed indicates the changing speed of the position of the mass center of the wheel-legged robot relative to the wheel-legged robot.
[0318] In some embodiments, the expected incremental position and the expected incremental speed respectively refer to the relative position and relative speed of the mass center of the wheel-legged robot in the first direction. The first direction refers to a forward direction of the wheel-legged robot (i.e., the x-axis direction in the world coordinate system). If the wheel-legged robot involves motion in the left-right direction (i.e., the y-axis direction in the world coordinate system), the expected incremental speed refers to a component of the relative speed of the mass center of the wheel-legged robot in the first direction.
[0319] In some embodiments, after determining the angular acceleration at the second moment, the observation module uses a forward kinematics method to determine the expected incremental position and the expected incremental speed of the mass center of the wheel-legged robot at the second moment according to the acceleration at the second moment, the deflection angles of the n links, the rotation angle of the moving wheel, the angular velocities of the n links, and the configuration, model, and parameters of the wheel-legged robot.
[0320] In some embodiments, in a case that the state quantities such as the acceleration at the second moment, the deflection angles of the n mechanisms, the rotation angle of the moving wheel, and the angular velocities of the n mechanisms are known, the position and velocity of the end of the wheel-legged robot are calculated according to forward kinematics, that is, the attitude of the wheel-legged robot at the second moment is determined. According to the position of the wheel-legged robot in the operation space and the attitude of the wheel-legged robot, the position of the mass center of the wheel-legged robot in the operation space can be calculated, thereby obtaining the expected incremental position and the expected incremental speed.
[0321] Sub-operation 1153-c: Determine the task acceleration of the wheel-legged robot at the second moment according to the expected incremental position and the expected incremental speed.
[0322] In some embodiments, the observation module determines a reference state variable group of the mass center of the wheel-legged robot according to the expected incremental position and the expected incremental speed. The observation module determines the task acceleration according to the reference state variable group and an actual state variable group of the mass center of the wheel-legged robot.
[0323] The reference state variable group indicates a state variable of the mass center of the wheel-legged robot at the first moment inferred based on kinematics. In some embodiments, the reference state variable group includes an expected incremental position x.sup.r, an expected incremental speed {dot over (x)}.sup.r, an expected position
and an expected speed
The expected position refers to an operation space position of the mass center of the wheel-legged robot at the second moment, or the joint space position at the second moment. The expected speed refers to a first-order derivative of the expected position with respect to time.
[0324] The actual state variable group indicates a state variable of the wheel-legged robot observed through sensors. In some embodiments, the actual state variable group includes an actual incremental position x.sup.a, an actual incremental speed {dot over (x)}.sup.a, an actual position
and an actual speed
The actual position refers to an operation space position of the mass center of the wheel-legged robot. The actual speed refers to a first-order derivative of the actual position with respect to time.
[0325] In some embodiments, the task acceleration {umlaut over (x)}.sub.com of the wheel-legged robot at the second moment may be calculated through the following formula:
[0326] where K represents a feedback gain matrix. Exemplarily, an objective function of the dynamics equation of the inverted pendulum is established by using LQR, and then iteration with an objective of minimizing the objective function is performed to obtain the feedback gain matrix of the dynamics equation of the inverted pendulum. LQR is constructed based on quadratic programming. Its essence is to find a multi-dimensional vector under a linear constraint, so that a quadratic objective function of this multi-dimensional vector is minimized (or maximized).
[0327] In some embodiments, the observation module transmits the calculated task acceleration of the wheel-legged robot to the whole body dynamics controller, the whole body dynamics controller generates force and torque instructions for the whole body joints of the wheel-legged robot according to the task acceleration, and the whole body dynamics controller transmits the force and torque instructions for the whole body joints to the joint motors corresponding to the active joints to control the motion of the whole body joints, thereby adjusting the attitude of the wheel-legged robot to make the wheel-legged robot to maintain a balanced state.
[0328] In some embodiments, the observation module generating the force and torque instruction for the whole body joints of the wheel-legged robot according to the task acceleration includes the following operations: the whole body dynamics controller determines an expected operation space task of the wheel-legged robot at the second moment, where the expected operation space task includes a task acceleration corresponding to at least one operation space task; the whole body dynamics controller performs spatial transformation on the expected operation space task to obtain an expected joint space task; and the whole body dynamics controller substitutes the joint space task into the whole body dynamics equation of the wheel-legged robot to obtain the force and torque instructions for the whole body joints.
[0329] In some embodiments, the expected operation space task includes the task acceleration at the second moment. The expected operation space task
may be expressed as:
[0330] where
refers to a first acceleration corresponding to the support wheel task,
refers to a second acceleration corresponding to the vertical torso task,
refers to a third acceleration corresponding to the torso attitude task,
refers to a fourth acceleration corresponding to the swing wheel task, and
refers to a task acceleration corresponding to the mass center task. In some embodiments, the operation space tasks of the wheel-legged robots are different at different moments, that is, the values of some accelerations included in the expected operation space task may be 0.
[0331] In some embodiments, a relationship between the acceleration included in the expected operation space task and the joint space velocity and acceleration included in the joint space task is:
[0332] where J.sub.t represents a Jacobian matrix of the operation space task, and {dot over (J)}.sub.t represents a derivative of the number of Jacobian matrices of the operation space task.
[0333] According to the whole body dynamics equation
and the expected joint space task {dot over (J)}.sub.t{dot over (q)}+J.sub.t{umlaut over (q)},
can be calculated, where represents the force and torque instructions for the whole body joints.
[0334] To improve the rationality of the force and torque instructions for the whole body joints, at least one constraint condition is added in the process of solving the whole body dynamics equation. The constraint condition includes, but not limited to, at least one of the following: a joint physical constraint and a friction constraint.
[0335] In some embodiments, the joint physical constraint is used to limit the amplitude of the force and torque instructions according to the characteristics of the joint motors respectively corresponding to the whole body joints of the wheel-legged robot. The joint physical constraint may be expressed as:
[0336] where represents a matrix including the force and torque instructions for the whole body joints, .sub.lb represents a matrix including the minimum values of the force and torque instructions respectively corresponding to the active joints, and .sub.ub represents a matrix including the maximum values of the force and torque instructions respectively corresponding to the active joints.
[0337] In some embodiments, the friction constraint refers to the contact force f.sub.i at the i.sup.th contact point satisfying a friction cone constraint. To reduce nonlinearity, a friction cone may be approximated as a friction pyramid, and a friction force inequality constraint may be expressed as:
[0338] where n.sub.x, n.sub.y and n.sub.z respectively represent a unit orthogonal basis along a contact surface in an operation space system, .sub.i represents a friction coefficient, and f.sub.i,zlb and f.sub.i,zub respectively represent the minimum value and maximum value of a non-negative positive pressure perpendicular to the contact surface.
[0339] A process of solving the whole body dynamics equation will be introduced and described below. In some embodiments, this process may be completed through an optimizer: the whole body dynamics equation is expressed in an AX=B form of polynomial solving,
[0340] where
an objective function is constructed by using a quadratic programming optimizer, and the objective function may be expressed as: J=min(AXB).sup.TQ(AXB)+X.sup.TRX, where Q, R is a weight matrix, and the minimum value of the objective function is calculated through the quadratic programming optimizer to obtain each variable in
thereby obtaining the force and torque instructions T for the whole body joints.
[0341] Through this method, the force and torque instructions respectively corresponding to the whole body joints can be independently determined. In a scenario where multiple real wheels of the wheel-legged robot do not overlap in the first direction, the control of at least one real wheel and at least one real first rotating joint can also be achieved.
[0342] Methods for determining each expected acceleration in the expected operation space task will be introduced and described below. The methods for determining each element in the expected operation space task are preset. In some embodiments, the expected acceleration is determined according to the actual acceleration and the reference acceleration.
1. Method for Determining First Acceleration
Corresponding to Support Wheel Task
[0343] Since the support wheel rolls on the contact surface and does not slide relative to the contact surface, the expected acceleration
of the support wheel is always equal to 0. The expected acceleration of the support wheel may be expressed as
If the wheel-legged robot works in a four-wheel mode, there are four support wheels, and each support wheel has a task in the x-direction. Assuming that the support wheels do not get off the ground, the height of the support wheels in the z-axis direction of the world coordinate system is constant, so the tasks of four support wheels in the z-axis direction are not considered temporarily. Assuming that the wheel-legged robot does not perform leftward and rightward turning motions or translation motions along the y-axis of the world coordinate system in the four-wheel mode, the tasks of the four support wheels in the y-axis direction are not considered temporarily.
[0344] If the wheel-legged robot works in a double-wheel balance mode, there are two support wheels and the other two moving wheels are swing wheels. The tasks of the support wheels are not considered temporarily. The tasks related to the two support wheels are already included in the mass center task introduced below. Moreover, the tasks of both swing wheels include two dimensions, i.e., the x-axis direction and the z-axis direction. If the leftward and rightward turning motion of the wheel-legged robot in the double-wheel balance mode and the translation motion of the wheel-legged robot along the y-axis direction are not considered, the tasks of the two swing wheels in the y-axis direction are not considered temporarily.
2. Method for Determining Second Acceleration
Corresponding to Vertical Torso Task
[0345] The camera in the wheel-legged robot captures the height change of the contact surface within the line of sight to obtain position information of the support wheels at multiple future moments. Through a planning method such as spline curve interpolation, an expression formula for the position information at multiple future moments is determined, and the vertical reference position
velocity
and acceleration
of the torso mechanism are determined according to this expression formula. According to the IMU sensors and the deflection angles (joint angles) and angular velocities of the mechanisms, the actual vertical position
and velocity
of the torso mechanism through forward kinematics. A Proportional Derivative (PD) feedback controller corresponding to the vertical torso task is constructed to calculate the expected vertical acceleration of the torso, i.e., the second acceleration
3. Method for Determining Third Acceleration
Corresponding to Attitude Task
[0346] In some scenarios (such as going upstairs), the torso mechanism of the wheel-legged robot needs to be kept as vertical as possible, and the torso mechanism does not rotate, that is, Euler angle reference trajectories composed of the roll angle, pitch angle, and yaw angle of the torso mechanism are zero, i.e.,
The wheel-legged robot calculates the actual Euler angle
and angular velocity
according to a forward kinematics formula based on the observation results of the IMU sensors. Through the PD feedback controller corresponding to the torso attitude task, the expected attitude angular acceleration of the torso, i.e., the third acceleration
can be calculated.
4. Method for Determining Fourth Acceleration
Corresponding to Swing Wheel Task
[0347] In a scenario in the double-wheel balance mode, such as in a scenario that the two swing wheels require to present specific attitudes and motions when two wheels travel on the ground, or there is a shifting process between the support wheel leg and the swinging wheel leg when two wheels step forward on the ground, or there is a shifting process between the support wheel leg and the swing wheel leg when stepping forward to go upstairs or downstairs, there is a corresponding fourth acceleration
[0348] The reference positions
velocity
and acceleration
of the swing wheel in the operation space are planned through spline curve interpolation. Based on information such as the observation results of the IMU sensors, the joint angles, and the angular velocity, the actual position
and velocity
of the swing wheel are calculated according to forward kinematics. By constructing the PD feedback controller corresponding to the swing wheel task, the expected acceleration of the swing wheel, i.e., the third acceleration
can be calculated. The PD feedback controller calculates the third acceleration
through the following formula:
5. Method for Determining Task Acceleration {umlaut over (x)}.sub.com Corresponding to Mass Center Task
[0349] In some embodiments, the reference position
and velocity
of the mass center along the forward direction are planned through a heuristic or model-based method. During the motion of the wheel-legged robot, the execution mass center of the wheel-legged robot not only needs to continuously move along the forward direction, but also needs to be within a range that the wheel-legged robot maintains a dynamic balance. Based on this, the method for determining the expected acceleration (i.e., task acceleration) of the mass center is designed.
[0350] Assuming that the mass of the wheel-legged robot is concentrated at the mass center of the wheel-legged robot and a center of a connecting line between at least two support wheels is a virtual contact point between the inverted pendulum related to the mass center and the contact surface, the mass center is connected to the virtual contact point to construct an inverted pendulum model of the mass center.
[0351]
[0352] It shows a mass center 1210 of the wheel-legged robot, and a virtual contact point 1220. A dynamics equation related to the mass center is determined according to the inverted pendulum model related to the mass center:
[0353] A feedback gain matrix K is determined by using a linear quadratic regulator. An input of the state equation may be obtained based on an LQR controller:
where
represents an actual state variable group, and
represents an actual state variable group. For other parameters, please refer to the above introduction, which will not be repeated here.
[0354] In some embodiments, the balance control method provided in the present disclosure is continuously executed during the operation of the wheel-legged robot. That is, the robust controller continuously performs the process of acquiring a state quantity at a current moment, determining dynamics model parameters according to the state quantity at the current moment, establishing a sliding surface, and determining rotation torques of n rotating joints according to the dynamics model parameters and the sliding surface.
[0355] In other embodiments, in a case that the IMU sensors detect a fierce change in the deflection angles of certain links (such as first links) in the wheel-legged robot, the robust controller executes the balance control method starting from operation 1110. For example, in a case the TIU sensor detects that the change in the deflection angle of the corresponding first link is greater than an angle threshold, the IMU sensor transmits detected state parameters to the robust controller to start a balance adjustment process. In some embodiments, the angle threshold is preset.
[0356] In some other embodiments, in a case that the moving wheel does not receive a control signal from the controller and the motor encoder detects the movement of the moving wheel, the robust controller starts to execute the balance control method starting from operation 1110.
[0357] By using this method to intermittently perform balance control on the wheel-legged robot through the robust controller, without significantly affecting the balance control effect, it helps to reduce the energy consumption of the wheel-legged robot, improve the ability of the wheel-legged robot to resist external interference, and also improve the robustness of balance control.
[0358] A process of the balance control method will be introduced and described below through an example. In some embodiments, in a case that the IMU sensor detects that the change in the deflection angle of the corresponding first link is greater than the angle threshold, indicating that under external disturbances, the swing of the wheel-legged robot changes greatly and affects the balance of the wheel-legged robot, the robust controller starts to perform the balance control process.
[0359] Operation A10: The robust controller acquires a state quantity at a first moment t.sub.i. The state quantity includes: deflection angles q.sub.1, q.sub.2, . . . , q.sub.n of the n links, an angular velocity {dot over ()} of the moving wheel, and angular velocities {dot over (q)}.sub.1, {dot over (q)}.sub.2, . . . , {dot over (q)}.sub.n of the n links.
[0360] Operation A20: The robot controller substitutes the state quantity at the first moment into a dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment. This operation is completed mainly by using the following formula:
[0361] The robust controller respectively processes a product of an inverse matrix of the inertia matrix and the bias force matrix and a product of the inverse matrix of the inertia matrix and the gravity matrix by using a selection matrix to obtain the offset parameter matrix. The offset parameter matrix is calculated mainly by using the following formula:
[0362] The robust controller processes the inverse matrix of the inertia matrix by using the selection matrix to obtain a proportion parameter matrix. The proportion parameter matrix is calculated mainly by using the following formula:
[0363] Operation A30: The robust controller determines sliding mode parameters respectively required for determining n sliding surfaces from predicted parameter sets.
[0364] Operation A40: The robust controller respectively establishes the n sliding surfaces: s=q+{dot over ()}+{dot over (q)}.
[0365] Operation A50: Calculate rotation torques of the n rotating joints according to the sliding surfaces and the dynamics model parameters. In the process of calculating the rotation torques of the n rotating joints, the formulas used are mainly formula 3 and formula 4 described above. The two formulas are specifically formula 3: {dot over (s)}={dot over (q)}+{umlaut over ()}+{umlaut over (q)}={dot over (q)}+f.sub.+g.sub.+f.sub.q+g.sub.q, and formula 4:
[0366] In some embodiments, after determining the rotation torques of the n rotating joints, the robust controller may further first determine whether to continuously execute the balance adjustment process; for example, the robust controller determines whether the rotation torques of the n rotating joints are greater than a first threshold; if the rotation torques of the n rotating joints are greater than the first threshold, the robust controller continuously executes operation A60; and if the rotation torques of the n rotating joints are less than the first threshold, the robust controller does not execute operation A60 and the balance control ends.
[0367] Operation A60: The wheel-legged robot controls rotating motors of the n rotating joints according to the rotation torques of the n rotating joints at a second moment t.sub.i+1 to adjust an included angle between a torso link and a leg link. Operation A10 to operation A60 are repeated before the balance control process ends. The formulas in this example are formulas in the above embodiments. For the explanations of the parameters in these formulas, please refer to the above embodiments, which will not be repeated here.
[0368] By abstracting the wheel-legged robot into an n-level inverted pendulum model, the joint motors of multiple rotating joints can be adjusted in the balance adjustment process, thereby enriching the attitudes of multiple links in the balance adjustment process, helping to quickly reach a balanced state, and helping to improve the robustness of the balance control method.
[0369] A process of the balance control method will be introduced and described below through another example.
[0370] In a balance control process, operation B10: the robust controller acquires a state quantity at a first moment t.sub.i. The state quantity includes: deflection angles q.sub.1, q.sub.2, . . . , q.sub.n of the n links, an angular velocity {dot over ()} of the moving wheel, and angular velocities {dot over (q)}.sub.1, {dot over (q)}.sub.2, . . . , {dot over (q)}.sub.n of the n links.
[0371] Operation B20: The robot controller substitutes the state quantity at the first moment into a dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment; and the robust controller respectively processes a product of an inverse matrix of the inertia matrix and the bias force matrix and a product of the inverse matrix of the inertia matrix and the gravity matrix by using a selection matrix to obtain the offset parameter matrix. For the specific content about this process, please refer to the above embodiments, which will not be repeated here.
[0372] Operation B30: The robust controller determines sliding mode parameters respectively required for determining n sliding surfaces from predicted parameter sets.
[0373] Operation B40: The robust controller establishes the n sliding surfaces according to the sliding mode parameters and the state quantity: s=q+{dot over ()}+{dot over (q)}.
[0374] Operation B50: Calculate rotation torques of the n rotating joints according to the sliding surfaces and the dynamics model parameters. In some embodiments, after determining the rotation torques of the n rotating joints, the robust controller determines whether the rotation torques of the n rotating joints are greater than a first threshold; if the rotation torques of the n rotating joints are greater than the first threshold, the robust controller continuously executes operation B50; and if the rotation torques of the n rotating joints are less than the first threshold, the robust controller does not execute operation B50 and the balance control ends.
[0375] Operation B60: The robust controller transmits the rotation torques of the n rotating joints to an observation module, and the observation module determines a task acceleration according to the rotation torques of the n rotating joints. The observation module transmits the task acceleration to a whole body dynamics controller, the whole body dynamics controller determines force and torque instructions of the whole body joints according to the task acceleration, and the whole body dynamics controller transmits the corresponding force and torque instructions to joint motors.
[0376] Operation B70: The wheel-legged robot controls the motion of the motors respectively corresponding to the whole body joints according to the force and torque instructions at a second moment t.sub.i+1 to adjust the attitude of the wheel-legged robot. Operation B10 to operation B70 are repeated before the balance control process ends. The formulas used in this example are formulas in the above embodiments. For the explanations of the parameters in these formulas, please refer to the above embodiments, which will not be repeated here.
[0377] By abstracting the wheel-legged robot into an n-level inverted pendulum model, calculating the rotation torques of the n rotating joints, and determining the task acceleration of the wheel-legged robot according to the rotation torques of the n rotating joints, the input of the whole body dynamics controller in the balance control process is obtained, so that the whole body dynamics controller can calculate the force and torque instructions for the whole body joints, and various mechanisms in the wheel-legged robot can participate in the balance control process, thereby further enriching the attitudes of the wheel-legged robot in the balance control process, and helping to improve the robustness of the balance control method.
[0378] The balance control method will be introduced and described below by taking n being equal to 2 as an example. From
[0379] Operation 1310: Acquire a state quantity of the wheel-legged robot at a first moment, where the state quantity at the first moment indicates a motion state of the wheel-legged robot at the first moment.
[0380] In some embodiments, the state quantity at the first moment includes at least one of the following: a deflection angle of the leg mechanism, a deflection angle of the torso mechanism, an angular velocity {dot over ()} of the moving wheel, an angular velocity {dot over ()} of the leg mechanism, and an angular velocity {dot over ()} of the torso mechanism. The state quantity may be represented by using a symbol . The state quantity may be expressed as =[, , {dot over ()}, {dot over ()}, {dot over ()}].sup.T. Each physical quantity included in the state quantity is obtained through observation in the world coordinate system. The deflection angle of the leg mechanism refers to the deflection angle of the leg mechanism relative to the z-axis in the world coordinate system. The deflection angle of the torso mechanism refers to the deflection angle of the torso mechanism relative to the z-axis in the world coordinate system. The angular velocity {dot over ()} of the moving wheel refers to the rotation speed of the moving wheel in the anticlockwise (or clockwise) direction on the x-axis in the world coordinate system. The angular velocity a of the leg mechanism indicates the changing speed of the deflection angle of the leg mechanism. The angular velocity {dot over ()} of the torso mechanism is configured for charactering the changing speed of the deflection angle of the torso mechanism.
[0381] Each physical quantity in the state quantity may also be determined through the relative positions of the mechanisms of the wheel-legged robot. For example, the deflection angle of the leg mechanism refers to the deflection angle of the leg mechanism relative to the z-axis in the world coordinate system. The deflection angle of the torso mechanism refers to the deflection angle of the torso mechanism relative to the leg mechanism, that is, =+ (positive directions of and are the same). The coordinate system configured for observing each physical quantity is determined according to the actual needs, which is not limited here.
[0382] In some embodiments, a computer device acquiring a state quantity of the wheel-legged robot at a first moment includes: determining the deflection angle of the leg mechanism and the deflection angle of the torso mechanism through an IMU sensor and a motor encoder; and determining the angular velocity {dot over ()} of the moving wheel and the angular velocity {dot over ()} of the leg mechanism, and the angular velocity {dot over ()} of the torso mechanism through the motor encoder.
[0383] Operation 1320: Determine dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment.
[0384] Operation 1320 may include the following sub-operations: Sub-operation 1323: The robust controller substitutes the state quantity at the first moment into the dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment. The inertia matrix indicates a mass and a moment of inertia of each joint rigid body that composes the wheel-legged robot at the first moment. The bias force matrix indicates a bias force of the wheel-legged robot at the first moment. The gravity matrix indicates a gravity of the wheel-legged robot at the first moment.
[0385] Sub-operation 1326: Determine the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix.
[0386] In a case that n is equal to 2, after abstracting the wheel-legged robot into a double inverted pendulum model, a dynamics equation used in the balance control process is derived based on an Euler-Lagrange equation. The dynamics equation may be expressed as:
[0387] In some embodiments, the dynamics model parameters are derived and determined according to the double inverted pendulum model configured for balance control. The dynamics model parameters include a proportion parameter matrix and an offset parameter matrix.
[0388] In the design process of the robust controller, partial linearization is performed on dynamics equation
[0389] to obtain formula a:
[0390] where M.sup.1(,) is an inverse matrix of the inertia matrix, M.sup.1(,)*M(,)=E, and E is a unit matrix. For physical meanings of other parameters in the equation, please refer to the above embodiment, which will not be repeated here.
[0391] Formula a is processed, so that the rotation torque .sub.1 of the first rotating joint and the rotation torque .sub.2 of the second rotating joint are unified in formula a. Formula a is processed by using a selection matrix to obtain formula b:
[0392] where
is an offset parameter matrix f[ ],
is a proportion parameter matrix g[ ], S.sup.T is a transpose matrix of matrix S, S.sup.T matrix is a 3*2 selection matrix. For example, S.sup.T matrix is specifically
[0393] Formula b may be designed in advance after abstracting the wheel-legged robot into a double inverted pendulum model. In the process of the balance control method, after acquiring the state quantity at the first moment, the robust controller substitutes the state quantity at the first moment into the dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment, and determine the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix.
[0394] In some embodiments, sub-operation 1326 may be implemented through the following operations: the robust controller respectively processes a product of an inverse matrix of the inertia matrix and the bias force matrix and a product of the inverse matrix of the inertia matrix and the gravity matrix by using a selection matrix to obtain the offset parameter matrix, where the selection matrix is configured to extract the rotation torque of the first rotating joint and the rotation torque of the second rotating joint from the dynamics equation; and the robust controller processes the inverse matrix of the inertia matrix by using the selection matrix to obtain a proportion parameter matrix. For the specific content about this process, please refer to the above embodiments, which will not be repeated here.
[0395] That is to say, in the balance control process, the robust controller can calculate the proportion parameter matrix and the dynamics model parameter matrix according to formula b and the various equations in (5) of the content in the description corresponding
[0396] Operation 1330: Establish a sliding surface according to the state quantity at the first moment, where the state quantity of the wheel-legged robot gradually approaches 0 on the sliding surface.
[0397] In a case that n is equal to 2, it is necessary to determine the rotation torque of the first rotating joint and the rotation torque of the second rotating joint, and the robust controller needs to establish two sliding surfaces. The two sliding surfaces include: 1. a sliding surface of the first rotating joint, that is, the state quantity related to the first rotating joint approaching 0 on this sliding surface; and 2. a sliding surface of the second rotating joint, that is, the state quantity related to the second rotating joint approaching 0 on this sliding surface.
[0398] In some embodiments, the first sliding surface is different from the second sliding surface. The purpose of setting the first sliding surface and the second sliding surface is to calculate the rotation torque of the first rotating joint and the rotation torque of the second rotating joint. The first sliding surface and the second sliding surface jointly participate in the calculation process of the rotation torque of the first rotating joint and the rotation torque of the second rotating joint. The definition of the first sliding surface may not be limited to the sliding surface corresponding to the first rotating joint. Similarly, the definition of the second sliding surface may not be limited to the sliding surface corresponding to the second rotating joint. The first sliding surface and the second sliding surface may be defined according to the actual needs, which are not limited in the present disclosure.
[0399] From the introduction of the n-level inverted pendulum model above, it can be seen that to ensure the calculation of a certain rotation torque, establishing a sliding surface requires at least three state parameters and at least two sliding mode parameters in the state quantity. The state quantity is written as =[, , {dot over ()}, {dot over ()}, {dot over ()}].sup.T, and , , {dot over ()}, {dot over ()}, {dot over ()} are state parameters.
[0400] In some embodiment, operation 1330 includes sub-operation 1333: The robust controller determines at least four sliding mode parameters, where the sliding mode parameters are configured to constrain the rotation torque of the first rotating joint and the rotation torque of the second rotating joint to satisfy the system stability condition of the wheel-legged robot.
[0401] In some embodiments, establishing different sliding surfaces require respectively using different state parameters and different sliding mode parameters. Exemplarily, establishing the first sliding surface at least requires the deflection angle of the leg mechanism, the angular velocity of the moving wheel, and the angular velocity of the leg mechanism in the state quantity; and establishing the second sliding surface at least requires the deflection angle of the torso mechanism, the angular velocity of the moving wheel, and the angular velocity of the torso mechanism in the state quantity at the first moment. In this case, the at least two sliding mode parameters included in the first sliding surface are respectively a sliding mode parameter corresponding to the deflection angle of the leg mechanism and a sliding mode parameter corresponding to the angular velocity of the moving wheel. The at least two sliding mode parameters included in the second sliding surface are respectively a sliding mode parameter corresponding to the deflection angle of the torso mechanism and a sliding mode parameter corresponding to the angular velocity of the moving wheel.
[0402] In some embodiments, operation 1330 further includes sub-operation 1336: The robust controller establishes a first sliding surface and a second sliding surface according to the state quantity at the first moment and at least four sliding mode parameters.
[0403] In some embodiments, the robust controller establishes a first sliding surface according to a first sliding mode parameter, a second sliding mode parameter, the deflection angle of the leg mechanism, the angular velocity of the moving wheel, and the angular velocity of the leg mechanism; and establishes a second sliding surface according to a third sliding mode parameter, a fourth sliding mode parameter, the deflection angle of the torso mechanism, the angular velocity of the torso mechanism, and the angular acceleration of the leg mechanism.
[0404] Exemplarily, the robust controller processes the deflection angle of the leg mechanism through the first sliding mode parameter to obtain a processing result of the leg mechanism; and processes the angular velocity of the moving wheel through the second sliding mode parameter to obtain a processing result of the moving wheel. The robust controller determines the first sliding surface according to the processing result of the leg mechanism, the processing result of the moving wheel, and the angular velocity of the leg mechanism. In some embodiments, the first sliding surface is proportional to the processing result of the leg mechanism, the first sliding surface is proportional to the processing result of the moving wheel, and the first sliding surface is proportional to the angular velocity of the leg mechanism.
[0405] For example, the robust controller adds up the processing result of the leg mechanism, the processing result of the moving wheel, and the angular velocity of the leg mechanism to obtain the first sliding surface.
[0406] Exemplarily, the robust controller processes the deflection angle of the torso mechanism through the third sliding mode parameter to obtain a processing result of the torso mechanism; and processes the angular velocity of the moving wheel through the fourth sliding mode parameter to obtain a processing result of the moving wheel. The robust controller determines the second sliding surface according to the processing result of the torso mechanism, the processing result of the moving wheel, and the angular velocity of the torso mechanism. In some embodiments, the second sliding surface is proportional to the processing result of the torso mechanism, the second sliding surface is proportional to the processing result of the moving wheel, and the second sliding surface is proportional to the angular velocity of the leg mechanism.
[0407] For example, the robust controller adds up the processing result of the torso mechanism, the processing result of the moving wheel, and the angular velocity of the torso mechanism to obtain the second sliding surface.
[0408] In some embodiments, the robust controller establishes the first sliding surface s.sub.1 and the second sliding surface s.sub.2 according to the following two formulas in the balance control process:
[0409] where .sub.1 represents the first sliding mode parameter, .sub.2 represents the second sliding mode parameter, .sub.3 represents the third sliding mode parameter, .sub.4 represents the fourth sliding mode parameter, .sub.1 represents a first element in the state quantity =[, , {dot over ()}, {dot over ()}, {dot over ()}].sup.T, .sub.2 represents a second element in the state quantity =[, , {dot over ()}, {dot over ()}, {dot over ()}].sup.T, .sub.3 represents a third element {dot over ()} in the state quantity =[, , {dot over ()}, {dot over ()}, {dot over ()}].sup.T, and .sub.4 represents a fourth element {dot over ()} in the state quantity =[, , {dot over ()}, {dot over ()}, {dot over ()}].sup.T, and .sub.5 represents a fifth element {dot over ()} in the state quantity =[, , {dot over ()}, {dot over ()}, {dot over ()}].sup.T.
[0410] By establishing the first sliding surface and the second sliding surface in this way, and controlling the number of the sliding mode parameters in the first sliding surface and the second sliding surface, the rotation torque of the first rotating joint and the rotation torque of the second rotating joint that satisfy the system stability principle can be determined at small computation overhead, thereby helping to improve the speed of determining the rotation torque and achieve the balance control of the robot.
[0411] Operation 1340: Calculate a rotation torque of the first rotating joint and a rotation torque of the second rotating joint according to the sliding surfaces and the dynamics model parameters.
[0412] After determining the first sliding surface and the second sliding surface, the robust controller calculates a first-order derivative formula of the first sliding surface s.sub.1 with respect to time and a first-order derivative formula of the second sliding surface s.sub.2 with respect to time:
[0413] where {dot over (s)}.sub.1 represents a first-order derivative of the first sliding surface s.sub.1 with respect to time, {dot over (s)}.sub.2 represents a first-order derivative of the second sliding surface s.sub.2 with respect to time, f.sub.k (k(1, 2, 3)) is an element in the offset parameter matrix f[ ] in formula 2 above, and g.sub.mn (m(1, 2, 3), n(1, 2, 3)) is an element in the proportion parameter matrix g[ ] in formula 2 above.
[0414] The first-order derivative formula of the first sliding surface s.sub.1 with respect to time and the first-order derivative formula of the second sliding surface s.sub.2 with respect to time are sorted into a matrix form to obtain formula c:
[0415] Transposition processing is performed on formula c to obtain formula d:
[0416] where
is an inverse matrix of g.sub.s, and sgn( ) is a symbol function,
[0417] Formula d may be further written as formula e:
[0418] That is, in a case that n of the n-level inverted pendulum model is equal to 2, formula 4 above is implemented as formula d, and formula 5 is implemented as formula e. In the balance control method based on the double inverted pendulum model, the calculation process of the rotation torque of the first rotating joint and the rotation torque of the second rotating joint requires using formula d and formula e.
[0419] In some embodiments, in the process of calculating the rotation torque, the robust controller needs to consider the system stability condition. For the method of satisfying the system stability condition in the balance control process of the double inverted pendulum model, please refer to the following embodiments.
[0420] Operation 1350: At a second moment, adjust an included angle between the leg mechanism and the moving wheel according to the rotation torque of the first rotating joint, and adjust an included angle between the torso mechanism and the leg mechanism according to the rotation torque of the second rotating joint.
[0421] In an implementation, the robust controller transmits the rotation torque of the first rotating joint and the rotation torque of the second rotating joint to a joint motor of the first rotating joint and a joint motor of the second rotating joint. That is, operation 1350 is implemented as: The robust controller adjusts an included angle between the leg mechanism and the moving wheel according to the rotation torque of the first rotating joint through the rotating motor of the first rotating joint; and the robust controller adjusts an included angle between the torso mechanism and the leg mechanism according to the rotation torque of the second rotating joint through the rotating motor of the second rotating joint.
[0422] In another implementation, after determining the rotation torque of the first rotating joint and the rotation torque of the second rotating joint, the robust controller transmits the rotation torque of the first rotating joint and the rotation torque of the second rotating joint to an observation module; the observation module calculates an angular acceleration at the first moment according to the rotation torque of the first rotating joint, the rotation torque of the second rotating joint, and the dynamics equation, and calculates a task acceleration of the wheel-legged robot according to the angular acceleration at the first moment; the observation module transmits the task acceleration to the whole body dynamics controller; the whole body dynamics controller determines force and torque instructions for the whole body joints of the wheel-legged robot according to the task acceleration; the whole body dynamics controller controls the joint motor of the first rotating joint to adjust the included angle between the leg mechanism and the moving wheel according to the force and torque instructions for the first rotating joint in the force and torque instructions for the whole body joints; and the whole body dynamics controller controls the joint motor of the second rotating joint to adjust the included angle between the torso mechanism and the leg mechanism based on the force and torque instructions for the second rotating joint in the force and torque instructions for the whole body joints.
[0423] In some embodiments, the whole body dynamics controller may also control the motion of other joints except for the first rotating joint and the second rotating joints in the wheel-legged robot according to the force and torque instructions for the whole body joints, so that more active joints can participate in the balance control process, thereby enriching the attitudes of the wheel-legged robot in the balance control process.
[0424] For the specific introduction to the content about this, please refer to the relevant content in the n-level inverted pendulum model described above, which will not be repeated here.
[0425] To sum up, by abstracting the wheel-legged robot into a double inverted pendulum model, in the balance control process, the included angle between the moving wheel and the leg mechanism can be adjusted, and the included angle between the torso mechanism and the leg mechanism can be adaptively adjusted, thereby enriching the attitudes of the robot in the balance adjustment process, making the attitude of the robot changes more flexibly, helping to quickly adjust the robot to a balanced state, improving the ability of the robot to restore to a balanced state under different disturbance forces, and improving the robustness of the balance control process of the robot.
[0426] A process of satisfying the system stability criterion in the calculation of the rotation torque of the first rotating joint and the rotation torque of the second rotating joint will be introduced and described below through an embodiment.
[0427] According to the definition and property of the sliding surface, the state parameters on the sliding surface satisfy:
[0428] Through the above two formulas, .sub.4 and .sub.5 may be reversely expressed as:
[0429] So, a first-order derivative {dot over ()}.sub.4 of .sub.4 with respect to time and first-order derivative {dot over ()}.sub.5 of .sub.5 with respect to time may be expressed as:
[0430] Since .sub.4 represents {dot over ()}, .sub.1 represents , .sub.5 represents {dot over ()}, and .sub.2 represents , .sub.1 and .sub.2 may be expressed through the following formulas:
[0431] Reviewing the dynamics equation of the double inverted pendulum model in a polynomial form described above:
[0432] the three formulas included in the dynamics equation in the polynomial form are added up to obtain formula f:
[0433] {dot over ()}.sub.4, {dot over ()}.sub.5 in formula f is replaced to obtain formula g:
[0434] Formula g is sorted to obtain formula h:
[0435] {dot over ()}.sub.3 is reversely expressed through formula h to obtain:
[0436] Simultaneous establishment is performed on the three formulas respectively including {dot over ()}.sub.1, {dot over ()}.sub.2, {dot over ()}.sub.3 to obtain equation set 1:
[0437] Due to space constraints, the expression form of the right side of 3 in equation set 1 is somewhat distorted. [ ] represents an algebraic expression and does not represent a matrix or have any other meaning. Please refer to the expression form of {dot over ()}.sub.3 above equation set 1 to understand the expression form of {dot over ()}.sub.3 in equation set 1.
[0438] Equation set 1 may be written as a state equation with respect to a state variable of (.sub.1, .sub.2, .sub.3). In some embodiments, the state equation refers to an equation related to the state quantity.
[0439] For the convenience of reading, a.sub.1 is configured for representing [(m.sub.+m.sub.+m.sub.).sub.2(m.sub.+m.sub.+m.sub.).sub.4(m.sub.+m.sub.+m.sub.)].sup.1, m.sub.1 is configured for representing .sub.1.sup.2(m.sub.+m.sub.+m.sub.), m.sub.2 is configured for representing .sub.3.sup.2(m.sub.+m.sub.+m.sub.), m.sub.3 is configured for representing .sub.1.sub.2(m.sub.+m.sub.+m.sub.).sub.3.sub.4(m.sub.+m.sub.+m.sub.), and the state equation may be written as:
[0440] In some embodiments, the system stability criterion refers to characteristic root of a coefficient matrix in the state equation determined according to the sliding surface and the dynamics equation being negative, that is, the characteristic roots being distributed in a left half plane of a phase plane.
[0441] To ensure that the system satisfies the stability criterion, it is necessary to satisfy that the characteristic roots of the coefficient matrix
are distributed in a left half plane of a complex plane. This state equation can serve as a matrix inequality constraint, that is, the values of the sliding mode parameters need to make the characteristic roots of the coefficient matrix negative.
[0442] In some embodiments, in the balance control process in the present disclosure, the robust controller determines the rotation torque of the first rotating joint and the rotation torque of the second rotating joint according to formula d and equation set 1.
[0443] In the balance control process, the robust controller calculates the rotation torque .sub.1 of the first rotating joint and the rotation torque .sub.2 of the second rotating joint according to formula d. Formula d involves the sliding surface s.sub.i and the second sliding surface s.sub.2. Formula 2 involves the dynamics model parameters and the sliding mode parameters. The robust controller acquires the state quantity at the first moment from the sensors, substitutes the state quantity at the first moment into the corresponding formula to determine the sliding surface s.sub.1, the second sliding surface s.sub.2, and the dynamics model parameters, finds the sliding mode parameters that satisfy the system stability condition, then calculates the rotation torque .sub.1 of the first rotating joint and the rotation torque .sub.2 of the second rotating joint through formula d, and simultaneously ensures that the sliding mode parameters satisfy the matrix inequality constraint formed by the state equation above.
[0444] In the balance control method provided in the present disclosure, four sliding mode parameters that satisfy the matrix inequality constraint may be first determined, and then a first sliding surface and a second sliding surface are established through the sliding mode parameters.
[0445] Alternatively, any four sliding mode parameters may be first selected within a certain value range, a first sliding surface and a second sliding surface are established by using these four sliding mode parameters, and the rotation torque .sub.1 of the first rotating joint and the rotation torque .sub.2 of the second rotating joint are calculated through formula d, and then whether the four sliding mode parameters satisfy the matrix inequality constraint described above is verified.
[0446] In some embodiments, in a case that the four sliding mode parameters satisfy the matrix inequality constraint described above, the determined rotation torque .sub.1 of the first rotating joint and rotation torque .sub.2 of the second rotating joint can be used; and in a case that the four sliding mode parameters do not satisfy the matrix inequality constraint described above, the determined rotation torque .sub.1 of the first rotating joint and rotation torque .sub.2 of the second rotating joint cannot be used.
[0447] A method of determining sliding mode parameters will be introduced and described below through several embodiments.
[0448] In some embodiments, determining at least four sliding mode parameters includes the following operation: the computer device determines a first sliding mode parameter from a first predicted parameter set, a second sliding mode parameter from a second predicted parameter set, a third sliding mode parameter from a third predicted parameter set, and a fourth sliding mode parameter from a fourth predicted parameter set. The sliding mode parameters respectively included in the first predicted parameter set, the second predicted parameter set, the third predicted parameter set, and the fourth predicted parameter set satisfy a constraint condition of a stability criterion.
[0449] In this embodiment, after determining the state at the first moment, the robust controller first uses the above state equation as a matrix inequality constraint to determine solution sets respectively corresponding to .sub.1, .sub.2, .sub.3 and .sub.4, i.e., a first predicted parameter set, a second predicted parameter set, a third predicted parameter set, and a fourth predicted parameter set, then selects a first sliding mode parameter, a second sliding mode parameter, a third sliding mode parameter, and a fourth sliding mode parameter respectively from the parameter sets, establishes a first sliding surface and a second sliding surface through the first sliding mode parameter, the second sliding mode parameter, the third sliding mode parameter, the fourth sliding mode parameter and the state quantity at the first moment, and calculates a rotation torque of the first rotating joint and a rotation torque of the second rotating joint according to formula d above.
[0450] In some embodiments, a process of determining any one predicted parameter set of the above four predicted parameter sets includes: calculating characteristic roots of the coefficient matrix
and using all characteristic roots corresponding to the coefficient matrix as a predicted parameter set.
[0451] This method can avoid selecting sliding mode parameters that do not satisfy system stability, which may result in the inability to control the balance of the wheel-legged robot through the rotation torque of the first rotating joint and the rotation torque of the second rotating joint calculated by using these sliding mode parameters, prevent the computer device from performing ineffective calculation, and help to shorten the time required to determine the rotation torque corresponding to the first rotating joint and the rotation torque corresponding to the second rotating joint.
[0452] Next, the robustness control effect of the balance control of the wheel-legged robot under the action of the balance control method provided in this embodiment will be experimentally verified.
[0453]
[0454] The background of
[0455]
[0456] What is described below is an apparatus embodiment of the present disclosure, which may be configured for executing the method embodiment of the present disclosure. For details that are not disclosed in the apparatus embodiment of the present disclosure, please refer to the method embodiment of the present disclosure.
[0457] Please refer to
[0458] Referring to
[0459] The state acquisition module 1610 is configured to acquire a state quantity of the wheel-legged robot at a first moment. The state quantity at the first moment indicates a motion state of the wheel-legged robot at the first moment.
[0460] The parameter determination module 1620 is configured to determine dynamics model parameters according to a dynamics equation of the wheel-legged robot and the state quantity at the first moment. The dynamics model parameters are configured to define a mapping relationship between an angular acceleration at the first moment and a rotation torque at a second moment. The angular acceleration at the first moment includes angular accelerations of the n links and an angular acceleration of the moving wheel. The rotation torque at the second moment includes rotation torques of the n rotating joints.
[0461] The sliding surface establishment module 1630 is configured to establish a sliding surface according to the state quantity at the first moment. The state quantity of the wheel-legged robot gradually approaches a stable value on the sliding surface.
[0462] The torque calculation module 1640 is configured to calculate the rotation torques of the n rotating joints according to the sliding surface and the dynamics model parameters.
[0463] The joint rotation module 1650 is configured to control the n rotating joints according to the rotation torques of the n rotating joints at the second moment.
[0464] In some embodiments, the parameter determination module 1620 includes: a matrix calculation unit configured to substitute the state quantity at the first moment into the dynamics equation to determine an inertia matrix, a bias force matrix, and a gravity matrix at the first moment, where the inertia matrix indicates masses and moments of inertia of the n rotating joints at the first moment, the bias force matrix indicates a bias force of the wheel-legged robot at the first moment, and the gravity matrix indicates a gravity of the wheel-legged robot at the first moment; and a parameter determination unit configured to determine the dynamics model parameters according to the inertia matrix, the bias force matrix, and the gravity matrix.
[0465] In some embodiments, the dynamics model parameters include a proportion parameter matrix and an offset parameter matrix. The proportion parameter matrix indicates a proportional relationship between the angular acceleration at the first moment and the rotation torque at the second moment. The offset parameter matrix indicates an offset relationship between the angular acceleration at the first moment and the rotation torque at the second moment. The parameter determination unit is configured to respectively process a product of an inverse matrix of the inertia matrix and the bias force matrix and a product of the inverse matrix of the inertia matrix and the gravity matrix by using a selection matrix to obtain the offset parameter matrix, where the selection matrix is configured to extract the rotation torques of the n rotating joints from the dynamics equation; and process the inverse matrix of the inertia matrix by using the selection matrix to obtain the proportion parameter matrix.
[0466] In some embodiments, the dynamics equation of the robot is obtained by abstracting the wheel-legged robot into an n-level inverted pendulum model and performing derivation based on an Euler-Lagrange equation.
[0467] In some embodiments, the sliding surface includes n sliding surfaces, and the n sliding surfaces are configured to constrain the rotation torques of the n rotating joints; the sliding surface establishment module 1630 includes: a sliding mode parameter determination unit configured to determine at least two sliding mode parameters for an i.sup.th sliding surface of the n sliding surfaces, where i is a positive integer less than or equal to n; and a sliding surface establishment unit configured to establish the i.sup.th sliding surface according to the at least two sliding mode parameters and the state quantity at the first moment.
[0468] In some embodiments, the sliding mode parameter determination unit is configured to determine a first sliding mode parameter of the at least one sliding mode parameters from a (2i1).sup.th predicted parameter set, and determine a second sliding mode parameter of the at least one sliding mode parameters from a (2i).sup.th predicted parameter set. Sliding mode parameters respectively included in the (2i1).sup.th predicted parameter set and the (2i).sup.th predicted parameter set satisfy a constraint condition of a stability criterion.
[0469] In some embodiments, the state quantity at the first moment includes deflection angles of the n links, angular velocities of the n links, and an angular velocity of the moving wheel; the sliding surface establishment unit is configured to process the deflection angle of an i.sup.th link according to the first sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the i.sup.th link; process the angular velocity of the moving wheel according to the second sliding mode parameter of the at least two sliding mode parameters to obtain a processing result of the moving wheel; and establish the i.sup.th sliding surface according to the processing result of the i.sup.th link, the processing result of the moving wheel, and the angular velocity of the i.sup.th link.
[0470] In some embodiments, the joint rotation module 1650 is configured to, for any rotating joint of the n rotating joints, control a rotating motor corresponding to the rotating joint to rotate according to the rotation torque of the rotating joint.
[0471] In some embodiments, the joint rotation module 1650 is configured to calculate a task acceleration of the wheel-legged robot at the second moment according to the rotation torques of the n rotating joints, where the task acceleration is an acceleration related to a mass center of the wheel-legged robot; determine force and torque instructions for whole body joints of the wheel-legged robot at the second moment according to the task acceleration, where the whole body joints includes the n rotating joints; and control the whole body joints according to the force and torque instructions at the second moment.
[0472] In some embodiments, the joint rotation module 1650 is configured to determine an angular acceleration at the second moment according to the dynamics equation and the rotation torques of the n rotating joints; determine an expected incremental position and an expected incremental speed of the mass center of the wheel-legged robot at the second moment according to the state quantity at the first moment and the angular acceleration at the second moment, where the expected incremental position indicates a distance between a projection of the mass center of the wheel-legged robot on a contact surface and a virtual contact point in a first direction, the expected incremental speed indicates a changing speed of the distance in the first direction, and the virtual contact point refers to a center of contact points between the wheel-legged robot and the contact surface; and determine the task acceleration of the wheel-legged robot at the second moment according to the expected incremental position and the expected incremental speed.
[0473] In some embodiments, the state quantity includes deflection angles of the n links, angular velocities of the n links, and an angular velocity of the moving wheel; the state acquisition module 1610 is configured to determine the deflection angles of the n links through an inertial measurement unit and a motor encoder of the wheel-legged robot; and determine the angular velocities of the n links and the angular velocity of the moving wheel through the motor encoder.
[0474] In some embodiments, the moving wheel refers to a virtual wheel formed by the superposition of at least two real wheels of the wheel-legged robot that do not overlap in a first direction, the first link refers to a virtual first link formed by the superposition of at least two real first links of the wheel-legged robot that do not overlap in the first direction, and the first direction refers to a forward direction of the wheel-legged robot.
[0475] In some embodiments, the state quantity includes deflection angles of the n links, angular velocities of the n links, and an angular velocity of the moving wheel; the state acquisition module 1610 is configured to determine the deflection angles of other links except for the first link of the n links and the deflection angle of each real first link through an inertial measurement unit and a motor encoder of the wheel-legged robot; and determine the angular velocities of other links except for the first link of the n links, the angular velocity of each real first link, and the angular velocity of each real wheel through the motor encoder; determine the angular velocity of the moving wheel according to the angular velocity of each real wheel; and determine the deflection angle and angular velocity of the first link according to the length, deflection angle and angular velocity of each real first link.
[0476] When the apparatus provided in the above embodiment implements the functions of the apparatus, only division of the above functional modules is described by using examples. In a practical application, the functions may be completed by different functional modules as required. To be specific, a content structure of a device is divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same conception. For the specific implementation process, a reference may be made to the method embodiments, which will not be repeated here.
[0477] The term module (and other similar terms such as submodule, unit, subunit, etc.) in this disclosure may refer to a software module, a hardware module, or a combination thereof. A software module (e.g., computer program) may be developed using a computer programming language. A hardware module may be implemented using processing circuitry and/or memory. Each module can be implemented using one or more processors (or processors and memory). Likewise, a processor (or processors and memory) can be used to implement one or more modules. Moreover, each module can be part of an overall module that includes the functionalities of the module.
[0478]
[0479] Generally, the computer device 1700 includes: a processor 1701 and a memory 1702.
[0480] The processor 1701 may include one or more processing cores, for example, a 4-core processor or an 8-core processor. The processor 1701 may be implemented in at least one hardware form of a Digital Signal Processor (DSP), a Field-Programmable Gate Array (FPGA), and a Programmable Logic Array (PLA). The processor 1701 may also include a main processor and a coprocessor. The main processor is configured to process data in an active state, also referred to as a Central Processing Unit (CPU). The coprocessor is a low power consumption processor configured to process data in a standby state. In some embodiments, the processor 1701 may be integrated with a Graphics Processing Unit (GPU). The GPU is configured to render and draw content that needs to be displayed on a display screen. In some embodiments, the processor 1701 may also include an Artificial Intelligence (AI) processor. The AI processor is configured to process a computing operation related to machine learning.
[0481] The memory 1702 may include one or more computer-readable storage media. The computer-readable storage medium may be non-transient. The memory 1702 may further include a high-speed random access memory and a nonvolatile memory, for example, one or more disk storage devices or flash storage devices. In some embodiments, the non-transient computer-readable storage medium in the memory 1702 is configured to store a computer program. The computer program is configured to be executed by one or more processors to implement the above balance control method for the wheel-legged robot.
[0482] A person skilled in the art may understand that the structure shown in
[0483] In an exemplary embodiment, a computer-readable storage medium is further provided. The computer-readable storage medium has a computer program stored therein. The computer program, when executed by a processor of a computer device, implements the above balance control method for the wheel-legged robot. In some embodiments, the computer-readable storage medium may be a Read-Only Memory (ROM), a Random Access Memory (RAM), a Compact Disc Read-Only Memory (CD-ROM), a magnetic tape, a floppy disk, an optical data storage device, or the like.
[0484] In an exemplary embodiment, a computer program product is further provided. The computer program product includes a computer program. The computer program is stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium. The processor executes the computer program to cause the computer device to perform the above balance control method for the wheel-legged robot.
[0485] Plurality of mentioned in the specification means two or more. And/or describes an association relationship for describing associated objects, and represents that three relationships may exist. For example, A and/or B may represent the following three cases: only A exists, both A and B exist, and only B exists. The character / in this specification generally indicates an or relationship between the associated objects. In addition, the operation numbers described in this specification merely exemplarily show a possible execution sequence of the operation s. In some other embodiments, the operation s may not be performed according to the number sequence. For example, two operation s with different numbers may be performed simultaneously, or two operation s with different numbers may be performed according to a sequence contrary to the sequence shown in the figure. This is not limited in the embodiments of the present disclosure.