Control method and apparatus for robot, device, and storage medium
By setting mechanical wheels and mechanical feet on the four-legged wheeled robot and using precise joint angle control, the problem of unstable standing of the robot is solved, and more stable movement and control are achieved.
Patent Information
- Application Number
- PCT/CN2025/079819
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-20
- Filing Date
- 2025-02-28
- Publication Date
- 2025-09-25
AI Technical Summary
In the existing technology, quadruped wheel-legged robots are not stable enough when standing and moving, mainly because there are insufficient contact points between the mechanical feet and the support surface, resulting in unstable movement.
By setting mechanical wheels and mechanical feet on the robot's mechanical legs, using the mechanical feet to assist the mechanical wheels to achieve support at least two contact points, combined with precise control of joint angles, the robot is ensured to stand and move stably on the support surface.
The robot's motion stability and control accuracy have been improved, allowing the robot to stand and move more stably and reduce the risk of falling.
Smart Images

Figure CN2025079819_25092025_PF_FP_ABST
Abstract
Description
Robot control method, device, equipment and storage medium
[0001] This application claims priority to Chinese patent application number 202410325402.2, filed on March 20, 2024, entitled “Robot control method, device, equipment and storage medium”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The embodiments of the present application relate to the field of artificial intelligence technology, and in particular to a robot control method, device, equipment, and storage medium. Background Art
[0003] With the development of robot control technology, some organizations and scientific research institutions have successively launched wheel-legged robots with mechanical wheels as feet. These wheel-legged robots can not only rely on mechanical wheels to slide quickly, but also rely on mechanical wheels to walk, climb stairs, and overcome obstacles.
[0004] Taking a quadruped wheeled leg robot as an example, related technologies can control the alternating swinging of the robot's two sets of mechanical legs to perform tasks such as gait walking on a support surface, climbing stairs, and overcoming obstacles. However, related technologies rely solely on the contact between the mechanical legs and the support surface. For example, during the swinging of the mechanical legs, the robot is kept standing by only two contact points between one set of mechanical legs and the support surface (i.e., the contact points between the mechanical legs and the support surface). This can easily lead to unstable standing of the robot, and thus unstable movement of the robot. Summary of the Invention
[0005] The embodiments of the present application provide a robot control method, device, equipment, and storage medium. The technical solutions provided by the embodiments of the present application include the following contents.
[0006] According to one aspect of an embodiment of the present application, a method for controlling a robot is provided, the method being executed by a computer device. The robot includes a body, a first mechanical leg group and a second mechanical leg group connected to the body via a hip joint, at least one of the first mechanical leg group and the second mechanical leg group includes at least two mechanical legs, at least one of the mechanical legs having a foot remote from the hip joint provided with a mechanical wheel and a mechanical foot, and the rotation axis of the hip joint corresponding to the first mechanical leg group and the rotation axis of the hip joint corresponding to the second mechanical leg group are located in the same vertical plane; the method comprising:
[0007] Obtaining a first desired task for the robot on a support surface, wherein the first desired task includes a desired position of the robot in an operating space of the robot, and the first desired task is used to guide the robot to move on the support surface. During the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot standing on the support surface;
[0008] Acquire an expected angle set for the first expected task, the expected angle set including expected angles of joints for controlling various parts of the robot;
[0009] According to the desired angle set, the robot is controlled to move under the guidance of the first desired task.
[0010] According to one aspect of an embodiment of the present application, a control device for a robot is provided, wherein the robot includes a body, a first mechanical leg group and a second mechanical leg group connected to the body via a hip joint, at least one of the first mechanical leg group and the second mechanical leg group includes at least two mechanical legs, at least one of the mechanical legs having a foot remote from the hip joint provided with a mechanical wheel and a mechanical foot, and the rotation axis of the hip joint corresponding to the first mechanical leg group and the rotation axis of the hip joint corresponding to the second mechanical leg group are located in the same vertical plane; the device includes:
[0011] an expected task acquisition module, configured to acquire a first expected task of the robot on a support surface, wherein the first expected task includes an expected position of the robot in the robot's operating space, and the first expected task is used to guide the robot to move on the support surface, and during the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot to stand on the support surface;
[0012] an expected angle acquisition module, configured to acquire an expected angle set for the first expected task, wherein the expected angle set includes expected angles of joints for controlling various parts of the robot;
[0013] A robot control module is used to control the robot to move under the guidance of the first expected task according to the expected angle set.
[0014] According to one aspect of an embodiment of the present application, a chip is provided, in which a computer program is stored. The computer program is loaded and executed by a processor to implement the above-mentioned robot control method.
[0015] According to one aspect of an embodiment of the present application, a computer device is provided, comprising a processor and a memory, wherein a computer program is stored in the memory, and the computer program is loaded and executed by the processor to implement the above-mentioned robot control method.
[0016] According to one aspect of an embodiment of the present application, a computer-readable storage medium is provided, in which a computer program is stored. The computer program is loaded and executed by a processor to implement the above-mentioned robot control method.
[0017] According to one aspect of an embodiment of the present application, a computer program product is provided, the computer program product including a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to perform the above-described robot control method.
[0018] The technical solutions provided in the embodiments of the present application may include the following beneficial effects.
[0019] For a robot having a first mechanical leg group and a second mechanical leg group, and having mechanical legs with mechanical wheels and mechanical feet on the feet, the expected angles of the robot's joints are calculated based on the robot's expected position in the operating space, and then the joints are directly controlled through the expected angles so that the robot moves on the support surface, thereby achieving effective tracking of the robot's joints to the expected angles. Compared with the related art that indirectly controls the robot through the expected acceleration and has the problem of poor force control transparency, that is, when a smaller expected acceleration is given, the joints do not move, and when a larger expected acceleration is given, the joints will move violently, and it is impossible to ensure that the parts corresponding to the joints can accurately move to the expected positions, resulting in low tracking accuracy of the robot to the expected positions. The embodiments of the present application can achieve direct tracking of the parts corresponding to the joints to the expected positions through the effective tracking of the robot's joints to the expected angles, thereby effectively improving the control accuracy of the robot.
[0020] In addition, during the movement of the robot, the mechanical foot assists the mechanical wheel to keep the robot standing on the support surface, so that the foot can keep the robot standing with no less than two contact points (such as the contact points between the mechanical foot and the mechanical wheel and the support surface respectively). Compared with one contact point in the related technology, the robot can stand more stably on the support surface and is not prone to falling, thereby effectively improving the robot's movement stability. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] FIG1 is a schematic diagram of an implementation environment of a solution provided by an embodiment of the present application;
[0022] FIG2 is a schematic diagram of a quadrupedal, foot-wheel hybrid robot provided by one embodiment of the present application;
[0023] FIG3 is a schematic diagram of a foot-wheel hybrid robot climbing stairs provided by one embodiment of the present application;
[0024] FIG4 is a schematic diagram of a wheeled-foot hybrid robot crossing a road shoulder according to an embodiment of the present application;
[0025] FIG5 is a schematic diagram of a foot-wheel hybrid robot crossing a pit provided by one embodiment of the present application;
[0026] FIG6 is a flow chart of a robot control method provided by one embodiment of the present application;
[0027] FIG7 is a schematic diagram of a stepping process of a robot provided by one embodiment of the present application;
[0028] FIG8 is a schematic diagram of a stepping process of a robot provided by another embodiment of the present application;
[0029] FIG9 is a flowchart of a method for obtaining a first desired task according to an embodiment of the present application;
[0030] FIG10 is a schematic diagram of an inverted pendulum model of a robot provided in one embodiment of the present application;
[0031] FIG11 is a simplified diagram of a quadrupedal hybrid robot according to an embodiment of the present application;
[0032] FIG12 is a simplified diagram of a quadrupedal hybrid robot with wheels and feet provided in another embodiment of the present application;
[0033] FIG13 is a flowchart of a method for obtaining a desired angle set according to an embodiment of the present application;
[0034] FIG14 is a flowchart of a method for obtaining a desired angle set according to another embodiment of the present application;
[0035] FIG15 is a flowchart of a robot control method provided by another embodiment of the present application;
[0036] FIG16 is a flowchart of a method for obtaining a second desired task according to an embodiment of the present application;
[0037] FIG17 is a schematic diagram of a control method for a quadrupedal-foot-wheel hybrid robot provided by one embodiment of the present application;
[0038] FIG18 is a schematic diagram of simulated flat-ground stepping motion data of a quadrupedal-foot-wheel hybrid robot provided by one embodiment of the present application;
[0039] FIG19 is a schematic diagram of simulated flat-ground stepping motion data of a quadrupedal-foot-wheel hybrid robot provided by another embodiment of the present application;
[0040] FIG20 is a block diagram of a control device of a robot provided by one embodiment of the present application;
[0041] FIG21 is a block diagram of a robot control device provided by another embodiment of the present application;
[0042] FIG22 is a simplified structural block diagram of a computer device provided by one embodiment of the present application. DETAILED DESCRIPTION
[0043] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
[0044] Artificial Intelligence (AI) refers to the theories, methods, techniques, and application systems that use digital computers or machines controlled by digital computers to simulate, extend, and expand human intelligence, to perceive the environment, acquire knowledge, and use that knowledge to achieve optimal results. In other words, AI is a comprehensive technology within computer science that seeks to understand the essence of intelligence and produce new intelligent machines that can respond in a manner similar to human intelligence. AI also studies the design principles and implementation methods of various intelligent machines, enabling them to possess the capabilities of perception, reasoning, and decision-making.
[0045] Artificial intelligence (AI) technology is a comprehensive discipline encompassing a wide range of fields, encompassing both hardware and software technologies. Foundational AI technologies generally include sensors, specialized AI chips, cloud computing, distributed storage, big data processing, pre-trained models, operating / interaction systems, and mechatronics. Pre-trained models, also known as large models or basic models, can be fine-tuned and widely applied to downstream tasks across various AI disciplines. AI software technologies primarily encompass computer vision, speech processing, natural language processing, and machine learning / deep learning.
[0046] With the research and advancement of artificial intelligence technology, artificial intelligence technology has been studied and applied in many fields, such as common smart homes, smart wearable devices, virtual assistants, smart speakers, smart marketing, unmanned driving, autonomous driving, drones, digital twins, virtual humans, robots, artificial intelligence generated content (AIGC), conversational interaction, smart medical care, smart customer service, game AI, etc. It is believed that with the development of technology, artificial intelligence technology will be applied in more fields and play an increasingly important role.
[0047] The technical solutions provided in the embodiments of the present application mainly relate to robotics technology in artificial intelligence technology, and mainly to intelligent control of robots. A robot is a mechanical and electronic device that can imitate certain human skills by combining mechanical transmission and modern microelectronics technology. Robots are developed on the basis of electronic, mechanical and information technologies. A robot does not necessarily have to look like a human. As long as it can independently complete the tasks and commands assigned to it by humans, it belongs to the robot family. A robot is an automated machine that has some intelligent capabilities similar to those of humans or biological organisms, such as perception, planning, movement and coordination capabilities. It is an automated machine with high flexibility. With the development of computer technology and artificial intelligence technology, robots have been greatly improved in terms of function and technical level. Mobile robots and robot vision and touch technologies are typical representatives.
[0048] In the technical solution provided in the embodiments of the present application, the execution entity of each step may be a computer device, which may refer to an electronic device with data calculation, processing and storage capabilities.
[0049] Optionally, the computer device can be a PC (Personal Computer) device such as a desktop computer or laptop computer used to control the robot; it can also be a server used to control the robot. The server can be an independent physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server providing cloud computing services. The computer device and the robot can be connected via physical lines, a network, or the like. For example, referring to FIG1 , the computer device 101 can calculate a desired angle set corresponding to the robot 103 based on a first desired task on the support surface. The first desired task can be used to guide the robot 103 to move on the support surface. The robot 103 (e.g., each joint) can then be controlled to move based on the desired angle set via the network 102. For example, the computer device 101 can control the first and second mechanical leg groups 104 and 105 of the robot 103 to alternately swing based on the desired angle set corresponding to the first desired task, so that the robot 103 moves on the support surface according to the desired position corresponding to the first desired task. During the movement of the robot 103, the computer device 101 can control the mechanical feet to assist the mechanical wheels to support the robot 103 standing on the support surface. The expected position can be obtained by planning the robot according to the support surface, and the corresponding first expected task can be planned for different tasks.
[0050] Alternatively, the computer device may be the robot itself, that is, the execution subject of each step in the technical solution provided in the embodiment of the present application may also be a robot. For example, with reference to FIG1 , the computer device 101 may send the first desired task of the robot 103 (such as the desired position of each part of the robot 103) to the robot 103 via the network 102. The robot 103 calculates the corresponding desired angle set (such as the desired angle of each joint) according to the first desired task, and then controls each joint to move according to the desired angle set. Optionally, the robot 103 may also automatically plan the first desired task according to the real environment to perform different tasks in the real environment, and the embodiment of the present application does not limit this.
[0051] In some embodiments, the robot in the embodiments of the present application may refer to a foot-wheel hybrid robot, and the foot-wheel hybrid robot may refer to a leg-type robot with mechanical wheels and mechanical feet on its feet (i.e., a robot that moves based on mechanical legs). If there is at least one leg-type robot with a pair of mechanical wheels and mechanical feet on its feet, the leg-type robot is a robot that moves based on mechanical legs. For example, the robot 103 shown in FIG1 has two mechanical leg groups, and the feet of each mechanical leg are provided with a pair of coaxial mechanical wheels and mechanical feet. Optionally, the foot-wheel hybrid robot can perform tasks such as sliding, gait walking, climbing stairs, and crossing obstacles by mechanical wheels alone, or it can perform tasks such as gait walking, climbing stairs, crossing obstacles, and stepping on the spot by mechanical feet assisted by mechanical wheels. The embodiments of the present application do not limit this.
[0052] Exemplarily, the robot in the embodiment of the present application may include a body, a first mechanical leg group and a second mechanical leg group connected to the body through a hip joint, and at least one of the first mechanical leg group and the second mechanical leg group includes at least two mechanical legs. For example, the first mechanical leg group includes at least two mechanical legs, and the second mechanical leg group may also include at least two mechanical legs. There are at least two mechanical legs in the first mechanical leg group, which are respectively located on both sides of the central axis (i.e., the sagittal plane) of the robot, and there are at least two mechanical legs in the second mechanical leg group, which are also respectively located on both sides of the central axis of the robot. Optionally, the various mechanical legs of the robot are distributed side by side, that is, the rotation axis of the hip joint corresponding to the first mechanical leg group and the rotation axis of the hip joint corresponding to the second mechanical leg group are located in the same vertical plane. For example, when the first mechanical leg group is an outer mechanical leg group, the first mechanical leg group includes at least two mechanical legs, and the at least two mechanical legs can be evenly arranged on both sides of the second mechanical leg group. The mechanical legs in the first mechanical leg group and the mechanical legs in the second mechanical leg group are distributed side by side. In this case, the second mechanical leg group can be called an inner mechanical leg group; when the second mechanical leg group is an outer mechanical leg group, the second mechanical leg group includes at least two mechanical legs, and the at least two mechanical legs can be evenly arranged on both sides of the first mechanical leg group. The embodiments of the present application are not limited to this.
[0053] In one example, the robot may be a quadrupedal-wheeled hybrid robot, such as one comprising four mechanical legs, each mechanical leg group comprising two mechanical legs, each mechanical leg having a foot, such as one comprising two outer mechanical legs and two inner mechanical legs; the robot may also be a tripodal-wheeled hybrid robot, such as one comprising two outer mechanical legs and one inner mechanical leg, which is not limited in the embodiments of the present application. Optionally, the robot may stand on a support surface via mechanical wheels (or a combination of mechanical wheels and mechanical feet) on outer or inner mechanical legs, or may slide on a support surface via mechanical wheels on outer or inner mechanical legs, or may move (i.e., walk) on a support surface by controlling the outer mechanical leg group and the inner mechanical leg group to swing alternately.
[0054] In an embodiment of the present application, for the above-mentioned robot, there is at least one mechanical leg that is provided with a mechanical wheel and a mechanical foot at the foot away from the hip joint. The embodiment of the present application does not limit the number of mechanical wheels and the number of mechanical feet on the same foot, which can be set and adjusted according to actual use requirements. For example, there is at least one mechanical leg that is provided with a pair of coaxial mechanical wheels and mechanical feet at the foot away from the hip joint, that is, there is at least one foot, the rotation axis of its corresponding mechanical wheel and the rotation axis of its corresponding mechanical foot are located on the same straight line. Optionally, all the mechanical legs of the above-mentioned robot are provided with a pair of coaxial mechanical wheels and mechanical feet; or, some of the mechanical legs of the above-mentioned robot are provided with a pair of coaxial mechanical wheels and mechanical feet, which is not limited in the embodiment of the present application.
[0055] For example, taking a quadruped-foot-wheel hybrid robot as an example, each mechanical leg corresponding to the quadruped-foot-wheel hybrid robot can be provided with a pair of coaxial mechanical wheels and mechanical feet; or, for the two mechanical leg groups corresponding to the quadruped-foot-wheel hybrid robot, each mechanical leg in one and only one mechanical leg group is provided with a pair of coaxial mechanical wheels and mechanical feet; or, for the two mechanical leg groups corresponding to the quadruped-foot-wheel hybrid robot, each mechanical leg group has a mechanical leg corresponding to a pair of coaxial mechanical wheels and mechanical feet; or, for each mechanical leg corresponding to the quadruped-foot-wheel hybrid robot, one and only one mechanical leg is provided with a pair of coaxial mechanical wheels and mechanical feet. The embodiments of the present application do not limit this.
[0056] Optionally, each mechanical wheel can be driven independently, and each mechanical foot can rotate independently. The mechanical foot can be placed on the left side of the mechanical wheel, or on the right side of the mechanical wheel. The mechanical wheel can also be placed in a hollowed-out area at the root of the mechanical foot in a hollowed-out style. The embodiment of the present application does not limit the position between the mechanical foot and the mechanical wheel.
[0057] The embodiments of the present application do not limit the size of the mechanical wheels and mechanical feet. For example, the diameters of the mechanical wheels are the same, and the lengths of the mechanical feet are the same. The lengths of the mechanical feet can be 1.5 times or 2 times the diameter of the mechanical wheels. The embodiments of the present application do not limit the style of the mechanical feet. For example, the style of the mechanical feet can include at least one of the following: a foot-like style, a rectangular style, or a triangular style.
[0058] The aforementioned mechanical feet can be used to assist the mechanical wheels to enable the robot to stand more stably on the support surface. Optionally, when the mechanical feet are not needed, the mechanical feet can be rotated to coincide with the mechanical legs, or can be rotated to be perpendicular to the mechanical legs, or can be rotated to any angle that does not affect the contact between the mechanical wheels and the support surface. This embodiment of the present application is not limited to this. When the mechanical feet are needed, the mechanical feet can be rotated to contact the support surface to jointly support the robot standing on the support surface with the mechanical wheels.
[0059] For example, taking a quadruped-foot-wheel hybrid robot as an example, when a pair of coaxial mechanical wheels and mechanical feet are provided on each corresponding mechanical leg of the quadruped-foot-wheel hybrid robot, if any mechanical wheel contacts the support surface, the mechanical foot coaxial with the mechanical wheel can be used to assist the mechanical wheel to support the robot to stand; or, when a pair of coaxial mechanical wheels and mechanical feet are provided on each mechanical leg in only one mechanical leg group, if the mechanical leg group without mechanical feet is used for support, the robot can only rely on the mechanical wheels corresponding to the mechanical leg group to support the robot to stand, and if the mechanical leg group with mechanical feet is used for support, the robot can rely on the mechanical wheels and mechanical feet corresponding to the mechanical leg group to support the robot to stand; or, when a pair of coaxial mechanical wheels and mechanical feet are provided on one and only one mechanical leg, if the mechanical leg group without mechanical feet is used for support, the robot can only rely on the mechanical wheels corresponding to the mechanical leg group to support the robot to stand, and if the mechanical leg group with mechanical feet is used for support, the robot can rely on the mechanical wheels and one mechanical foot corresponding to the mechanical leg group to support the robot to stand. The embodiments of the present application are not limited to this.
[0060] For the sake of convenience, the following will take the example of each foot of the robot being provided with a pair of coaxial mechanical wheels and mechanical feet to illustrate the technical solution provided in the embodiment of the present application.
[0061] Optionally, the robot's body is provided with a corresponding pitch joint, through which the body rotation (such as forward and backward pitch) can be controlled. For example, by rotating the pitch joint, the robot's body can be controlled to make a pitching movement. The robot's hip joint can be used to rotate the robot's mechanical legs. For example, by rotating the hip joint, the robot's mechanical legs can be controlled to rotate, and each mechanical leg of the robot can be independently extended and retracted. In one example, the mechanical feet corresponding to the first mechanical leg group move synchronously, and the mechanical feet corresponding to the second mechanical leg group move synchronously. For example, for any mechanical leg group, each mechanical foot in the mechanical leg group rotates synchronously; the mechanical legs corresponding to the first mechanical leg group move synchronously, and the mechanical legs corresponding to the second mechanical leg group move synchronously. For example, for any mechanical leg group, each mechanical leg in the mechanical leg group rotates and retracts synchronously; the mechanical wheels corresponding to the first mechanical leg group move synchronously, and the mechanical wheels corresponding to the second mechanical leg group move synchronously. For example, for any mechanical leg group, each mechanical wheel in the mechanical leg group rotates synchronously.
[0062] For example, referring to Figure 2, which is a schematic diagram of the structure of a quadrupedal, wheeled hybrid robot provided by one embodiment of the present application, the quadrupedal, wheeled hybrid robot 200 may include: a body (including a waist 207, a torso 208, a head 209, and upper limbs 210), a hip joint 211, and mechanical legs (such as a lateral mechanical leg 201 and an inner mechanical leg 202).
[0063] Among them, the quadrupedal hybrid robot 200 has four mechanical legs: two outer mechanical legs 201 and two inner mechanical legs 202. The two inner mechanical legs 202 are located between the two outer mechanical legs 201. The four mechanical legs can be independently extended and retracted along the direction shown in Figure 2 (bidirectional arrows) (which can be achieved by corresponding retractable joints). The four mechanical legs can be symmetrically distributed on both sides of the sagittal plane 206, and the four mechanical legs are distributed side by side. The two outer mechanical legs 201 can form a first mechanical leg group (also referred to as an outer mechanical leg group), and the two inner mechanical legs 202 can form a second mechanical leg group (also referred to as an inner mechanical leg group).
[0064] Each of the four robotic legs is equipped with a pair of coaxial mechanical wheels 203 and mechanical feet 204. That is, the rotation axes corresponding to the mechanical wheels 203 and the mechanical feet 204 are located on the same straight line, and the mechanical feet 204 are installed outside the mechanical wheels 203. Each mechanical wheel 203 can be driven independently (via the corresponding wheel joint), and each mechanical foot 204 can also be driven independently (via the corresponding ankle joint).
[0065] The quadruped-wheel hybrid robot 200 can stand on the two inner mechanical legs 202 or the two outer mechanical legs 201 to be in a two-legged standing state; the quadruped-wheel hybrid robot 200 can also stand on the two inner mechanical legs 202 and the two outer mechanical legs 201 at the same time to be in a four-legged standing state, which is not limited in the embodiments of the present application.
[0066] In one feasible example, the two inner mechanical legs 202 may be implemented as a whole, that is, the quadrupedal-wheeled hybrid robot 200 may be implemented as a tripedal-wheeled hybrid robot having only one inner mechanical leg.
[0067] Each mechanical leg is connected to a hip joint 211 at the other end away from the foot. Each mechanical leg can rotate around its own hip joint 211 and maintain linkage. In the embodiment of the present application, the rotation axes of the hip joints 211 corresponding to the quadrupedal-wheeled hybrid robot 200 are located in the same vertical plane 205, and the rotation planes of the mechanical legs corresponding to the quadrupedal-wheeled hybrid robot 200 are parallel. The hip joints 211 corresponding to the two inner mechanical legs 202 are located between the hip joints 211 corresponding to the two outer mechanical legs 201. The four hip joints 211 are symmetrically distributed on both sides of the sagittal plane 206.
[0068] Optionally, the hip joints 211 corresponding to the quadruped-wheeled hybrid robot 200 may be coaxial, i.e., the rotation axes of the hip joints 211 are located on the same straight line. The hip joints 211 corresponding to the quadruped-wheeled hybrid robot 200 may also be coaxial, such as the hip joints 211 corresponding to the two inner mechanical legs 202 and the hip joints 211 corresponding to the two outer mechanical legs 201, but the hip joints 211 corresponding to the two inner mechanical legs 202 are not coaxial with the hip joints 211 corresponding to the two outer mechanical legs 201.
[0069] In one example, the hip joints 211 corresponding to the two outer mechanical legs 201 share a common drive motor, enabling synchronous movement of the two outer mechanical legs 201; and the hip joints 211 corresponding to the two inner mechanical legs 202 share a common drive motor, enabling synchronous movement of the two inner mechanical legs 202. In another feasible example, each hip joint 211 corresponding to the quadrupedal-wheel hybrid robot 200 can also be independently driven by its own corresponding drive motor, which is not limited in this embodiment of the present application.
[0070] Optionally, the body of the quadrupedal-wheeled hybrid robot 200 may include a waist 207, a torso 208, a head 209, and upper limbs 210. Each hip joint 211 corresponding to the quadrupedal-wheeled hybrid robot 200 is connected to the same end of the waist 207, and the other end of the waist 207 is connected to one end of the torso 208. The waist 207 has two rotation axes: a pitch rotation axis that enables the torso 208 to pitch (a pitch joint may be provided correspondingly), and a side swing rotation axis that enables the torso 208 to swing sideways (a side swing joint may be provided correspondingly). The side swing joint maintains a series design with the pitch joint and is located at the upper end of the pitch joint, connected to the torso 208. The rotating body in the embodiment of the present application may refer to the process of rotating the pitch joint around the pitch rotation axis to rotate (pitch) the torso 208. Alternatively, by rotating the roll joint about the roll axis, the trunk 208 can be rotated, such as rotating left and right about the roll axis, to complete a roll (turn) of the trunk 208. The roll axis can be parallel to the direction of gravity, and the pitch axis can be horizontal.
[0071] The other end of the torso 208 is connected to the head 209 and the upper limb 210. The upper limb 210 can be a multi-degree-of-freedom upper limb, such as the upper limb 210 can be implemented as a multi-degree-of-freedom robotic arm. Optionally, an end effector, such as a robotic gripper, a suction cup, etc., is deployed on the upper limb 210. Data acquisition equipment can be deployed in the head 209 to perceive the real environment, such as an image acquisition device, a video shooting device, an IMU (Inertial Measurement Unit), etc. Among them, the IMU can also be placed at the geometric center of the torso 208, the center point of the hip joint, etc., which can be used to measure the actual acceleration, actual attitude angular velocity, actual Euler angle, actual position, actual angle, actual angular velocity, etc. of the torso 208.
[0072] In some feasible examples, a workstation can also be deployed in the quadruped-wheel hybrid robot 200. This workstation can be used to control the movement of various parts of the robot, such as controlling the rotation of the drive motors of each joint to enable the movement of each part. Optionally, the workstation can be implemented as a NUC (Next Unit of Computing) small computer.
[0073] Optionally, the corresponding hip joints, ankle joints, wheel joints, telescopic joints, pitch joints and roll joints of the quadruped-leg-wheel hybrid robot 200 can be independently driven by their respective corresponding drive motors.
[0074] In the technical solution provided in the embodiment of the present application, the mechanical wheels, mechanical feet, mechanical legs, body (including IMU), and various joints (including 4 hip joints, 4 ankle joints, 4 wheel joints, 4 telescopic joints, 1 pitch joint and 1 roll joint) of the quadruped-foot-wheel hybrid robot 200 are necessary hardware for the control algorithm, and the rest are non-essential hardware.
[0075] In some embodiments, the robot control method provided by the embodiments of the present application can be applied to a variety of scenarios, such as robot gait walking, robot climbing stairs, robot crossing thresholds, robot crossing curbs, robot crossing pits, robot marking time, and any scenario involving crossing obstacles. This helps improve the robot's adaptability to the environment and its versatility. In addition, the embodiments of the present application can improve the robot's motion stability by using mechanical feet to assist mechanical wheels in maintaining the robot's standing position.
[0076] The following will take a quadruped-legged and wheeled hybrid robot as an example to illustrate the application scenarios of the technical solution provided in the embodiments of the present application.
[0077] Compared to quadruped, wheeled, and legged robots, quadrupedal hybrid robots have a more stable structure. Thanks to their mechanical legs, they are more resistant to external impacts and disturbances. They can carry heavy loads, navigate narrow spaces, and perform tasks on objects of varying heights, making them highly adaptable to their environment.
[0078] In one example, referring to FIG3 , when a quadruped-wheeled hybrid robot 301 performs a stair climbing task, it can first plan a first desired task corresponding to the quadruped-wheeled hybrid robot 301 according to the stairs. The first desired task can guide the quadruped-wheeled hybrid robot 301 to complete the stair climbing task, then calculate the desired angle set corresponding to the first desired task, and then control the outer mechanical leg group 302 (i.e., the first mechanical leg group) and the inner mechanical leg group 303 (i.e., the second mechanical leg group) to alternately swing according to the desired angle set to complete the stair climbing. For example, the outer mechanical leg group 302 is first used as the supporting mechanical leg group for support, and the inner mechanical leg group 303 is used as the swinging mechanical leg group for swinging, so that the quadruped-wheeled hybrid robot 301 climbs the first step. Then, the inner mechanical leg group 303 is used as the supporting mechanical leg group for support, and the outer mechanical leg group 302 is used as the swinging mechanical leg group for swinging, so that the quadruped-wheeled hybrid robot 301 climbs the second step. The outer mechanical leg group 302 and the inner mechanical leg group 303 alternately swing in sequence to complete the stair climbing task. Among them, during the movement of the robot, the mechanical leg group used for swinging is the swinging mechanical leg group, and the mechanical leg group used for standing is the supporting mechanical leg group.
[0079] During this process, the mechanical feet can also be controlled to assist the mechanical wheels so that the quadrupedal-foot-wheel hybrid robot 301 can maintain a stable standing position; or, the robot can also be controlled to rotate its body to cooperate with the alternating swinging of the mechanical leg group, so that the quadrupedal-foot-wheel hybrid robot 301 can climb stairs more bionically.
[0080] In one example, referring to FIG4 , when the quadruped-wheeled hybrid robot 401 performs a shoulder-crossing task, it can first plan a first desired task corresponding to the quadruped-wheeled hybrid robot 401 based on the shoulder. The first desired task can guide the quadruped-wheeled hybrid robot 401 to complete the shoulder-crossing task, and then calculate the desired angle set corresponding to the first desired task. Finally, according to the desired angle set, the outer mechanical leg group 402 and the inner mechanical leg group 403 are controlled to swing alternately to complete the shoulder-crossing task. For example, the inner mechanical leg group 403 is first used as the supporting mechanical leg group for support, and the outer mechanical leg group 402 is used as the swinging mechanical leg group for swinging, so that the outer mechanical leg group 402 of the quadruped-wheeled hybrid robot 401 climbs onto the shoulder. Then, the outer mechanical leg group 402 is used as the supporting mechanical leg group for support, and the inner mechanical leg group 403 is used as the swinging mechanical leg group for swinging, so that the quadruped-wheeled hybrid robot 401 completely crosses the shoulder.
[0081] During this process, the mechanical feet can also be controlled to assist the mechanical wheels so that the quadrupedal-foot-wheel hybrid robot 401 can maintain a stable standing position; or, the robot can also be controlled to rotate its body to cooperate with the alternating swinging of the mechanical leg group, so that the quadrupedal-foot-wheel hybrid robot 401 can cross the shoulder of the road in a more bionic way.
[0082] In one example, referring to FIG5 , when the quadruped-wheeled hybrid robot 501 performs a pit-crossing task, it can first plan a first desired task corresponding to the quadruped-wheeled hybrid robot 501 according to the pit. The first desired task can guide the quadruped-wheeled hybrid robot 501 to complete the pit-crossing task, then calculate the desired angle set corresponding to the first desired task, and finally control the outer mechanical leg group 502 and the inner mechanical leg group 503 to swing alternately according to the desired angle set to complete the pit-crossing task. For example, the inner mechanical leg group 503 is first used as the supporting mechanical leg group for support, and the outer mechanical leg group 502 is used as the swinging mechanical leg group for swinging, so that the outer mechanical leg group 502 of the quadruped-wheeled hybrid robot 501 crosses the pit. Then, the outer mechanical leg group 502 is used as the supporting mechanical leg group for support, and the inner mechanical leg group 503 is used as the swinging mechanical leg group for swinging, so that the quadruped-wheeled hybrid robot 501 completely crosses the pit.
[0083] During this process, the mechanical feet can also be controlled to assist the mechanical wheels so that the quadrupedal-foot-wheel hybrid robot 501 can maintain a stable standing position; or, the robot can also be controlled to rotate its body to cooperate with the alternating swinging of the mechanical leg group, so that the quadrupedal-foot-wheel hybrid robot 501 can cross the shoulder of the road in a more bionic way.
[0084] The following will use a method embodiment to illustrate the control method of the robot provided in the embodiment of the present application. For matters not described in the method embodiment, please refer to the above embodiment and will not be repeated here.
[0085] Please refer to Figure 6, which shows a flow chart of a robot control method provided by one embodiment of the present application. In this embodiment of the present application, the robot control method is described by taking the robot as the execution subject of each step as an example. The method may include the following steps (601-603).
[0086] Step 601, obtaining a first expected task of the robot on the support surface, wherein the first expected task includes an expected position of the robot in the robot's operating space, and the first expected task is used to guide the robot to move on the support surface. During the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot to stand on the support surface.
[0087] In the embodiments of the present application, a desired task refers to the task that the robot is expected to perform in the operating space. For example, the desired task can be set for each part of the robot, such as the position, velocity, and acceleration of each part; the desired task can also be set for each joint of the robot, such as the angle, angular velocity, and angular acceleration of each joint, but this embodiment of the present application is not limited to this. The robot is the same as described in the above embodiment. For any content not described in the embodiments of the present application, please refer to the above embodiment and will not be repeated here.
[0088] Optionally, the first expected task may refer to a task set for the position of various parts of the robot, such as the first expected task including the expected positions of various parts of the robot in the robot's operating space. The first expected task may be planned based on the robot and the real environment in which the robot is located. For example, the expected positions of various parts of the robot relative to the support surface may be planned based on the size of the support surface, the size of various parts of the robot, and the structure of the robot, thereby obtaining the first expected task corresponding to the scenario. For each part, the expected position relative to the support surface is the expected position of the part, and the expected position of a part may be used to indicate the position at which the part is expected to reach.
[0089] Optionally, the first desired task corresponds to the robot's complete motion process. If the complete motion process corresponds to multiple control moments, the first desired task can include the desired positions of various parts of the robot at each of the multiple control moments. Control moments refer to the moments at which the robot is controlled by control signals. Control moments are arranged at specified time intervals, which can be set and adjusted based on actual usage requirements. In this way, a unified plan can be made for the robot's entire motion process to obtain the first desired task.
[0090] In one example, the above-mentioned first expected task can be used to guide the robot to alternately swing the first mechanical leg group and the second mechanical leg group to move in the first direction on the support surface. For example, corresponding first expected tasks can be planned for scenes such as gait walking, climbing stairs, crossing obstacles, and marking time. For example, the first expected task corresponding to gait walking can be used to guide the robot to alternately swing the first mechanical leg group and the second mechanical leg group to achieve the gait walking task; the first expected task corresponding to climbing stairs can be used to guide the robot to alternately swing the first mechanical leg group and the second mechanical leg group to achieve the stair climbing task; the first expected task corresponding to crossing obstacles can be used to guide the robot to alternately swing the first mechanical leg group and the second mechanical leg group to achieve the obstacle crossing task, and the embodiments of the present application are not limited to this.
[0091] The robot can control the movement of various parts of the robot based on the desired positions in the first desired task to achieve movement of the robot on the support surface. For example, the robot can control the robot's mechanical legs, mechanical feet, mechanical wheels, and body based on the desired positions in the first desired task to enable the robot to alternately swing the first and second mechanical leg groups to move on the support surface, and can control the mechanical feet to assist the mechanical wheels to support the robot to stand more stably on the support surface.
[0092] In one example, the first expected task includes the expected positions of the mechanical feet, mechanical wheels, and fuselage at each control moment, so that the robot can complete the above-mentioned complete motion process. Optionally, the expected positions corresponding to the mechanical legs can be used to control the mechanical legs (including mechanical wheels and mechanical feet) to swing, and to control the mechanical legs to extend and retract, the expected positions corresponding to the mechanical feet can be used to control the mechanical feet to rotate, and the expected positions corresponding to the fuselage can be used to control the fuselage to rotate (including pitch and roll). In a feasible example, the above-mentioned various parts can also include the robot's mechanical legs, mechanical feet, mechanical wheels, and fuselage, then the first expected task can include the expected positions of the mechanical legs, mechanical feet, mechanical wheels, and fuselage at each control moment, respectively, and the embodiments of the present application are not limited to this.
[0093] The robot's operating space may refer to the robot's corresponding Cartesian space. In task-oriented whole-body control (TWBC), the robot's corresponding Cartesian space may be referred to as the robot's operating space. In embodiments of the present application, each position in the robot's operating space may be represented based on the robot's world coordinate system.
[0094] For example, the robot's world coordinate system can be constructed with the contact point between the robot's foot (such as a mechanical wheel) and the support surface in the initial state as the origin, the horizontal direction as the x-axis direction, the vertical direction as the z-axis direction, and the direction perpendicular to both the horizontal and vertical directions as the y-axis direction. The position of the robot in the operating space can be characterized based on the three-dimensional coordinates of the robot in the world coordinate system. Optionally, the calculation processes in the embodiments of the present application all occur in the robot's world coordinate system.
[0095] The embodiment of the present application does not limit the first direction, which can be used to indicate the forward direction of the robot. For example, in scenes such as gait walking, climbing stairs, crossing obstacles, and marking time, the first direction may refer to the horizontal direction (i.e., the direction perpendicular to the direction of gravity) to indicate the forward direction of the robot, such as the first direction may be horizontal to the right. The support surface refers to the surface for the robot to stand. In the embodiment of the present application, the support surface may include only one plane, such as a flat ground, a road, etc., and the support surface may also include multiple planes of different heights, such as stairs, a road surface with shoulders, a ground with pits, etc., which is not limited in the embodiment of the present application.
[0096] In one example, the robot stops moving after a plurality of control moments, i.e., completing the first desired task. During the robot's movement, the mechanical legs used for swinging are called swinging mechanical legs, and the mechanical legs used for standing are called supporting mechanical legs. The mechanical feet on the swinging mechanical legs are called swinging mechanical feet, the mechanical feet on the supporting mechanical legs are called supporting mechanical feet, the mechanical wheels on the swinging mechanical legs are called swinging mechanical wheels, and the mechanical wheels on the supporting mechanical legs are called supporting mechanical wheels. The supporting mechanical feet can assist the supporting mechanical wheels, allowing the robot to stand on the supporting surface. The mechanical leg group consisting of the swinging mechanical legs is called the swinging mechanical leg group, and the mechanical leg group consisting of the supporting mechanical legs is called the supporting mechanical leg group.
[0097] For example, when the robot stands on a supporting surface by the first mechanical leg group and controls the second mechanical leg group of the robot to swing, the mechanical legs in the first mechanical leg group can be called supporting mechanical legs, and the mechanical legs in the second mechanical leg group can be called swinging mechanical legs; when the robot stands on a supporting surface by the second mechanical leg group and controls the first mechanical leg group of the robot to swing, the mechanical legs in the second mechanical leg group can be called supporting mechanical legs, and the mechanical legs in the first mechanical leg group can be called swinging mechanical legs; when the robot stands on a supporting surface by the first mechanical leg group and the second mechanical leg group at the same time, both the mechanical legs in the first mechanical leg group and the mechanical legs in the second mechanical leg group can be called supporting mechanical legs, and this embodiment of the application does not limit this.
[0098] Alternatively, in scenarios such as robot walking, climbing stairs, stepping over obstacles, and marching in place, the robot's movement process can be implemented as a process of alternating swinging of the first and second mechanical leg groups. For example, referring to Figure 7 , taking walking as an example, the robot 701 first uses the first mechanical leg group 702 as support and swings the second mechanical leg group 703 to complete the first step of movement. Then, using the second mechanical leg group 703 as support, it swings the first mechanical leg group 702 to complete the second step of movement. The alternating swinging of the first and second mechanical leg groups 702 and 703 completes the walking process.
[0099] For another example, referring to Figure 8, taking climbing stairs as an example, the robot 801 first uses the first mechanical leg group 802 as support, swings the second mechanical leg group 803, and crosses the first step, and then uses the second mechanical leg group 803 as support, swings the first mechanical leg group 802, and crosses the second step. By alternately swinging the first mechanical leg group 802 and the second mechanical leg group 803, the robot can complete climbing the stairs.
[0100] When the mechanical leg group is used for support, the mechanical feet and mechanical wheels on the mechanical leg group are in contact with the support surface at the same time, so that the robot can stand more stably, such as the mechanical feet and mechanical wheels on the supporting mechanical legs are in contact with the support surface at the same time.
[0101] In one example, the first expected task includes the expected position of the mechanical wheel, such as the expected positions of the supporting mechanical wheel and the swinging mechanical wheel at each control moment, as shown in Figure 9. For any control moment corresponding to the robot, step 601 may include the following sub-steps.
[0102] Step 601a: For the supporting mechanical wheels on the supporting mechanical legs, obtain the expected positions of the supporting mechanical wheels at the control time according to the supporting surface planning.
[0103] In the embodiment of the present application, the robot moves on the support surface by taking steps (i.e., by alternately swinging its two mechanical leg groups). During the robot's steps, there is no relative displacement between the supporting mechanical wheels and the support surface. Therefore, it is only necessary to plan the position of the supporting mechanical wheels during each step to obtain the desired position of the supporting mechanical wheels at each control moment. One step corresponds to one swing of the robot's mechanical leg groups.
[0104] For example, the desired position of the supporting mechanical wheel at each control moment can be planned based on the size information of the supporting surface (such as width, height, length, etc.) and the size of the supporting mechanical wheel (such as radius, diameter, etc.).
[0105] Taking a quadruped-legged, wheeled hybrid robot climbing stairs as an example, for each step corresponding to the stairs, the center position of the step can be determined as the contact point between the supporting mechanical wheel and the supporting surface. After the position of the contact point in each step is determined, the expected position corresponding to the supporting mechanical wheel at each control moment can be obtained based on the position of the contact point and the size of the supporting mechanical wheel.
[0106] For example, when the expected position of the wheel center of the supporting mechanical wheel is used as the expected position corresponding to the supporting mechanical wheel, for each step, the x-coordinate and y-coordinate of the supporting mechanical wheel can be determined based on the x-coordinate and y-coordinate of the center position of the step (i.e., the contact point), and the z-coordinate of the supporting mechanical wheel can be determined based on the wheel radius of the supporting mechanical wheel, thereby obtaining the expected position of the supporting mechanical wheel on each step, and further obtaining the expected position corresponding to the supporting mechanical wheel at each control moment. Among them, the x-coordinate, y-coordinate, and z-coordinate are all represented based on the world coordinate system of the robot, and the world coordinate system can be based on the first contact point between the robot and the supporting surface as the origin, the x-axis is parallel to the first direction, and the z-axis is parallel to the vertical direction. The first contact point is the contact point between the supporting mechanical wheel of the robot and the supporting surface in the initial state.
[0107] For example, in the embodiment of the present application, the desired position of the supporting mechanical wheel at the control moment may be recorded as Wherein, t is a certain control moment, r is used to indicate that x is a desired position, and stance wheel is used to indicate that the position is a desired position of the supporting mechanical wheel.
[0108] Step 601b: For the swinging mechanical wheel on the swinging mechanical leg, the expected position of the swinging mechanical wheel at the control time is planned based on the support surface and the expected position of the supporting mechanical wheel at the control time.
[0109] During the robot's stride, there is relative displacement between the oscillating mechanical wheel and the supporting surface. This stride is essentially a process of functional interchange between the oscillating mechanical wheel and the supporting mechanical wheel. For example, for the nth stride, the supporting mechanical wheel during the n+1th stride is the oscillating mechanical wheel during the nth stride, where n is a positive integer. This means that the initial position of the oscillating mechanical wheel during the nth stride is the expected position of the supporting mechanical wheel during the nth stride, and the final position is the expected position of the supporting mechanical wheel during the n+1th stride. Using a spline curve interpolation method, the initial and final positions of the oscillating mechanical wheel during the nth stride are interpolated to obtain the expected position of the oscillating mechanical wheel at each control moment corresponding to the nth stride.
[0110] For example, in the embodiment of the present application, the desired position of the swinging mechanical wheel at the control moment can be recorded as Wherein, t is a certain control moment, r is used to indicate that x is a desired position, and swing wheel is used to indicate that the position is a desired position corresponding to the swinging mechanical wheel.
[0111] Optionally, the spline curve interpolation method described above can be constrained by the size of the support surface to prevent collisions between the swinging mechanical leg and the support surface. For example, referring to Figure 8 , for each step, the relative distance between the swinging mechanical wheel and the step can be set to be greater than a collision threshold to prevent collisions between the swinging mechanical leg and the left side of the step. This collision threshold can be set and adjusted based on empirical values and is not limited in this embodiment of the present application.
[0112] In one example, the first expected task also includes an expected position of the fuselage, such as the expected position of the fuselage at each control moment. As shown in FIG9 , for any control moment corresponding to the robot, step 601 may further include the following sub-steps.
[0113] Step 601c: For the center of mass of the robot, the expected position of the center of mass at the control time is planned based on the expected positions of the support surface and the supporting mechanical wheels at the control time.
[0114] The robot's center of gravity is the point where the robot's gravity is concentrated. The robot's center of mass is the weighted average of the mass positions relative to their mass. If gravity is uniform, the center of mass and center of gravity can coincide. During robot movement, the robot's center of mass not only needs to continuously move along a first direction (i.e., the forward direction) but also needs to help the robot maintain dynamic balance. In this embodiment of the present application, the expected position of the center of mass in the first direction can be determined as the expected position of the center of mass.
[0115] Optionally, the expected position of the center of mass in the first direction can be obtained based on the expected position planning of the supporting mechanical legs using planning methods such as heuristics (i.e., giving the position based on experience and the real environment) and inverted pendulum models (planning the position using an inverted pendulum model). This is not limited to the embodiments of the present application.
[0116] For example, since the robot always moves in the first direction (such as no displacement in the y-axis direction of the above-mentioned world coordinate system), and the mechanical legs in the supporting mechanical leg group move synchronously, the mechanical legs in the swinging mechanical leg group move synchronously, and the hip joints of the robot are coaxial, the robot can be simplified into a plane model under the sagittal plane (such as the sagittal plane in Figure 2).
[0117] Referring to Figure 10, when the gravitational field in which the robot is located is uniform, the mass of the robot is concentrated at the center of mass 1002 of the robot (that is, the center of mass and the center of gravity coincide). The center of the line between the feet of the two supporting mechanical legs is set as the virtual support contact point 1001 between the robot's inverted pendulum model and the supporting surface. By connecting the center of mass 1002 and the virtual support contact point 1001, the robot's plane model can be converted into an inverted pendulum model 1000 of the robot.
[0118] After the expected positions of the two supporting mechanical legs at the control moment are determined, the expected position of the virtual support contact point 1001 at the control moment can also be determined. By averaging the expected positions of the two supporting mechanical legs at the control moment, the expected position of the virtual support contact point 1001 at the control moment can be obtained. Then, combined with the relative distance between the center of gravity of the robot and the virtual support contact point 1001, the expected position of the center of mass 1002 at the control moment can be calculated. For example, the Pythagorean theorem can be used for calculation to determine the expected position of the center of mass 1002 at the control moment and in the first direction (i.e., the x-axis).
[0119] For example, in the embodiment of the present application, the expected position of the center of mass at the control time can be recorded as Among them, t is a certain control moment, r is used to indicate that x is the expected position, and com is used to indicate that the position is the expected position of the center of mass.
[0120] Step 601d: Determine the expected position of the fuselage at the control time based on the expected position of the center of mass at the control time, the actual position of the center of mass at the control time, and the actual position of the fuselage at the control time.
[0121] In real-world scenarios, there is a positional deviation between the position of the body and the position of the center of mass. Therefore, embodiments of the present application distinguish the expected position of the center of mass from the expected position of the body. For example, referring to Figure 11, which is a simplified model diagram of a quadrupedal hybrid robot with feet and wheels provided in one embodiment of the present application. Based on the body 1102 and each mechanical leg 1103, the center of mass 1101 of the robot 1100 can be determined. There is a positional deviation between the body 1102 and the center of mass 1101.
[0122] In one example, the desired position of the fuselage at the time of control can be planned based on the positional deviation between the center of mass and the fuselage, as well as the desired position of the center of mass at the time of control. This allows for accurate determination of the desired position of the fuselage, which helps improve the accuracy of determining the desired position of the fuselage. The positional deviation between the center of mass and the fuselage can be calculated in real time based on the actual angles of each joint. The actual angles refer to the actual angles of the joints measured at the current moment.
[0123] For example, the expected position of the fuselage can be calculated based on the difference between the actual position of the center of mass and the actual position of the fuselage, as well as the expected position of the center of mass. The expected position of the fuselage at the control moment can be expressed as follows:
[0124] in, is the desired position of the fuselage at the control time t, is the expected position of the center of mass at the control time t, is the actual position of the center of mass at the control time t, is the actual position of the fuselage at the control time t.
[0125] In some feasible examples, when the position deviation between the center of mass and the fuselage is small, it can be approximately considered that the posture (position and attitude) of the center of mass is basically consistent with the posture of the fuselage. In this way, the expected position of the center of mass at the control moment can be directly determined as the expected position of the fuselage at the control moment, thereby effectively reducing the workload of determining the expected position corresponding to the fuselage, and thus improving the efficiency of determining the expected position.
[0126] In one example, the first expected task may also include the expected position of the mechanical foot, such as the expected positions corresponding to the supporting mechanical foot and the swinging mechanical foot at each control moment, as shown in Figure 9. For any control moment corresponding to the robot, step 601 may also include the following sub-steps.
[0127] Step 601e: Determine the expected position of the supporting mechanical foot at the control time based on the expected position of the supporting mechanical wheel at the control time and the size of the supporting mechanical foot corresponding to the supporting mechanical wheel.
[0128] The supporting mechanical foot corresponding to the supporting mechanical wheel can be the supporting mechanical foot of the supporting mechanical leg to which the supporting mechanical wheel belongs, such as a supporting mechanical foot that is coaxial with the supporting mechanical wheel. In an embodiment of the present application, the supporting mechanical wheel on the supporting mechanical leg is coaxial with the supporting mechanical foot, and when the supporting mechanical wheel starts the supporting function, the supporting mechanical foot also contacts the supporting surface to start the supporting function at the same time, such as the supporting mechanical foot can contact the supporting surface through the toe, or can contact the supporting surface through the auxiliary surface, which is not limited in the embodiment of the present application. Among them, the auxiliary surface of the mechanical foot can be used to contact the supporting surface to assist the mechanical wheel so that the robot stands. The auxiliary surface can be a plane, which can be set at the bottom of the toe so that it fits the supporting surface (i.e., is parallel and in contact) when in contact with the supporting surface. The embodiment of the present application does not limit the size and style of the auxiliary surface, which can be set and adjusted according to actual use requirements.
[0129] When the toe of the mechanical foot is in contact with the support surface, each foot includes a contact point between the mechanical wheel and the support surface, and a contact point between the mechanical foot and the support surface; when the auxiliary surface of the mechanical foot is in contact with the support surface, each foot includes a contact point between the mechanical wheel and the support surface, and multiple contact points between the auxiliary surface and the support surface, so that each foot supports the robot to stand through at least two contact points. This enables the robot to stand more stably on the support surface and is less likely to fall, thereby effectively improving the robot's movement stability.
[0130] In one example, the position of the auxiliary surface of the supporting mechanical foot when it just contacts and is parallel to the supporting surface can be determined as the expected position of the supporting mechanical foot. The position of any contact point between the supporting mechanical foot and the supporting surface can also be determined as the expected position of the supporting mechanical foot. The position of the contact point between the toe of the supporting mechanical foot and the supporting surface can also be determined as the expected position of the supporting mechanical foot. The embodiments of the present application are not limited to this.
[0131] For example, referring to Figure 12, which is a simplified model diagram of a quadrupedal and wheeled hybrid robot provided in another embodiment of the present application, when the expected position of the supporting mechanical wheel 1202 of the robot 1200 and the size of the supporting mechanical foot 1203 are known, the position of the contact point between the supporting mechanical foot 1203 and the supporting surface can be calculated, and then the position of the contact point can be directly determined as the expected position of the supporting mechanical foot 1203.
[0132] During each step, no displacement occurs between the supporting mechanical foot and the supporting surface. After determining the position of the contact point between the supporting mechanical foot and the supporting surface, the spline curve interpolation method can be used to determine the expected position of the supporting mechanical foot at each control moment corresponding to the step process.
[0133] For example, in the embodiment of the present application, the desired position of the supporting mechanical foot at the control moment can be recorded as Among them, t is a certain control moment, r is used to indicate that x is the desired position, and stance foot is used to indicate that the position is the desired position of the supporting mechanical foot.
[0134] Step 601f: Determine the expected position of the swinging mechanical foot at the control time based on the expected position of the swinging mechanical wheel at the control time and the size of the swinging mechanical foot corresponding to the swinging mechanical wheel.
[0135] The swinging mechanical foot corresponding to the swinging mechanical wheel can be a swinging mechanical foot of a swinging mechanical leg to which the swinging mechanical wheel belongs, such as a swinging mechanical foot coaxial with the swinging mechanical wheel. Optionally, the swinging mechanical wheel and the corresponding swinging mechanical wheel move synchronously, and the desired position of the swinging mechanical foot can be constrained by the desired position of the corresponding swinging mechanical wheel. For example, the desired position of the swinging mechanical foot at the control time can be calculated based on the desired position of the swinging mechanical wheel at the control time, while ensuring that the swinging mechanical wheel does not collide with the supporting surface, using the size of the swinging mechanical foot as a parameter.
[0136] For example, the robot's step process is essentially a process of functional replacement between the swinging mechanical wheel and the supporting mechanical wheel, and also a process of functional replacement between the swinging mechanical foot and the supporting mechanical foot. For example, for the nth step process, the supporting mechanical foot in the n+1th step process is the swinging mechanical foot in the nth step process. That is, for the swinging mechanical foot in the nth step process, its initial position is the expected position of the supporting mechanical foot in the nth step process, and its ending position is the expected position of the supporting mechanical foot in the n+1th step process. Using the spline curve interpolation method, the initial position and ending position of the swinging mechanical wheel foot in the nth step process are interpolated to obtain the expected position of the swinging mechanical foot at each control moment corresponding to the nth step process.
[0137] For example, in the embodiment of the present application, the desired position of the swinging mechanical foot at the control moment can be recorded as Among them, t is a certain control moment, r is used to indicate that x is the desired position, and swing foot is used to indicate that the position is the desired position of the swinging mechanical foot.
[0138] In one example, the first desired task includes the desired positions of the supporting mechanical wheels, supporting mechanical feet, swinging mechanical wheels, swinging mechanical feet, and the robot body within the robot's operating space. As shown in FIG9 , for any corresponding control moment of the robot, step 601 may further include the following sub-steps.
[0139] Step 601g, based on the expected position of the supporting mechanical wheels at the control moment, the expected position of the supporting mechanical feet at the control moment, the expected position of the body at the control moment, the expected position of the swinging mechanical wheels at the control moment, and the expected position of the swinging mechanical feet at the control moment, obtain the first expected task of the robot at the control moment.
[0140] Optionally, the first expected task includes the expected position of the swinging mechanical wheel on the swinging mechanical leg, the expected position of the swinging mechanical foot on the swinging mechanical leg, the expected position of the supporting mechanical wheel on the supporting mechanical leg, the expected position of the supporting mechanical foot on the supporting mechanical leg, and the expected position of the fuselage. The expected position of the supporting mechanical wheel at the control moment, the expected position of the supporting mechanical foot at the control moment, the expected position of the fuselage at the control moment, the expected position of the swinging mechanical wheel at the control moment, and the expected position of the swinging mechanical foot at the control moment can be combined to obtain the first expected task of the robot at the control moment.
[0141] In a feasible example, the first expected task may include the expected position of the swinging mechanical wheel on the swinging mechanical leg, the expected position of the supporting mechanical wheel on the supporting mechanical leg, and the expected position of the fuselage. The expected position of the swinging mechanical wheel at the control moment, the expected position of the supporting mechanical wheel at the control moment, and the expected position of the fuselage at the control moment are combined to obtain the first expected task of the robot at the control moment.
[0142] In one example, the robot's body is kept vertical as much as possible during the robot's movement (hereinafter referred to as the vertical task), that is, the Euler angles composed of the body's roll, pitch, and yaw are all zero, denoted as While performing the first desired task, the vertical task also needs to be performed.
[0143] In one example, the body of the robot rotates dynamically during the movement of the robot (hereinafter referred to as the angular momentum task). The angular momentum task can be achieved by planning the angular momentum of the center of mass. While executing the first desired task, the angular momentum task also needs to be executed.
[0144] In one example, during the robot's movement, the robot takes into account the vertical task and angular momentum task of the fuselage in a weighted manner. For example, when the weight parameter of the vertical task is greater than the weight parameter of the angular momentum task, the robot will focus on performing the vertical task but will not abandon the angular momentum task; when the weight parameter of the vertical task is less than or equal to the weight parameter of the angular momentum task, the robot will focus on performing the angular momentum task but will not abandon the vertical task. The weight parameters of the vertical task and the weight parameters of the angular momentum task can be dynamically set and adjusted according to actual usage requirements, and this embodiment of the application does not limit this.
[0145] Step 602: Obtain an expected angle set for a first expected task, where the expected angle set includes expected angles of joints for controlling various parts of the robot.
[0146] In an embodiment of the present application, the expected angle set for the first expected task may include the expected angles corresponding to the hip joint, ankle joint, wheel joint, telescopic joint, pitch joint, and roll joint at each control moment. The expected angle refers to the angle to which the joint is expected to rotate. The expected angles corresponding to the hip joint, wheel joint, and telescopic joint are associated with the expected position of the mechanical wheel, the expected angle of the ankle joint is associated with the expected position of the mechanical foot, and the expected angles corresponding to the pitch joint and roll joint are associated with the expected position of the fuselage.
[0147] In one example, the robot's whole-body kinematics model may be used to calculate the desired angle set for the first desired task. For example, as shown in FIG13 , step 602 may include the following sub-steps.
[0148] Step 602a, based on the whole-body kinematic model of the robot, obtain a first kinematic model and a second kinematic model, where the first kinematic model is used to indicate the relationship between the position of each part of the robot in the operating space and the angle of each joint of the robot in the joint space of the robot, and the second kinematic model is used to indicate the relationship between the speed of each part of the robot in the operating space and the angular velocity of each joint of the robot in the joint space.
[0149] A robot's full-body kinematic model is a mathematical expression that describes the robot's motion state and positional relationships. The robot's motion state can be represented by joint angles or the position of its end effector. The full-body kinematic model includes a forward kinematic model and a kinematic model. The forward kinematic model determines the robot's position by using the robot's joint angles or the position of its end effector. In this embodiment, the first kinematic model and the second kinematic model are determined based on the forward kinematic model.
[0150] Exemplarily, the forward kinematics model can be directly determined as the first kinematics model, denoted as x=f(q), where X is the position of each part of the robot in the operating space, and q is the angle of each joint of the robot in the joint space of the robot.
[0151] The variant of the forward kinematic model can be determined as the second kinematic model, which is recorded as in, is the speed of each part of the robot in the operating space, is the angular velocity of each joint of the robot in the joint space of the robot.
[0152] Step 602b: constructing a kinematic equation to be solved based on the first kinematic model and the second kinematic model. The kinematic equation to be solved uses the joint angles of the robot's joints in the joint space as unknown variables.
[0153] For example, the kinematic equation to be solved after simplifying the first kinematic model and the second kinematic model can be expressed as follows:
[0154] Among them, q cmd is the desired angle set corresponding to each joint, J t is the Jacobian Matrix corresponding to the first desired task t, q act is the actual angle set corresponding to each joint, which can be obtained by the encoder feedback of the joint motor (also called drive motor) corresponding to the joint, x des is the first expected task t (i.e. the expected position of each joint), x act are the actual positions of the parts corresponding to each joint.
[0155] The second line of the kinematic equations to be solved gives (The first-order derivative of the expected position of each joint corresponding to the control moment (i.e., the expected speed)), and (ie, the first-order derivative of the desired angle set with respect to the control moment). It should be noted that the positions in the embodiments of the present application are all represented based on the world coordinate system.
[0156] Among them, q act 、x des 、x act and All of them are known variables. By solving the kinematic equation to be solved, the unknown variable q can be obtained. cmd For example, the q cmd It may include the desired angles of the robot's hip joint, ankle joint, wheel joint, telescopic joint, pitch joint and yaw joint at the control moment.
[0157] Step 602c: For any control moment corresponding to the robot, the first expected task of the robot at the control moment is substituted into the kinematic equation to be solved, and the expected angle set of the robot at the control moment is calculated.
[0158] Optionally, the movement of the joint is also subject to the physical limitations of the joint motor corresponding to the joint. In order to improve the rationality and accuracy of obtaining the desired angle set, the embodiment of the present application also sets constraints in the process of solving the desired angle set. For example, the calculation process of the kinematic equation to be solved can be as follows:
[0159] 1. Replace the positions of the various parts of the robot in the operating space in the kinematic equation to be solved with the first desired task of the robot at the control moment to obtain the intermediate kinematic equation.
[0160] Optionally, replace x in the kinematic equation to be solved des Replace with x r , we can get the intermediate kinematic equation.
[0161] in,
[0162] 2. Construct the joint physical constraint expression of the robot. The joint physical constraint expression is used to constrain each joint of the robot.
[0163] Optionally, the expected angle set q in the unknown variables is calculated based on the actual physical characteristics of the robot's joint motors. cmd Line limit, that is, the physical constraint expression of the joint can be: lb ≤q cmd ≤q ub ; Among them, q lb and q ub Respectively represent the minimum and maximum rotation angles of the joint motor.
[0164] 3. Under the constraints of the joint physical constraint expression, based on the intermediate kinematic equations, the expected angle set of the robot at the control moment is calculated.
[0165] Optionally, a quadratic programming optimization method is used to construct an objective function of the intermediate kinematic equation; under the constraints of the joint physical constraint expression, the desired angle set of the robot at the control moment is calculated with minimization of the objective function as the optimization goal.
[0166] For example, a Linear Quadratic Programming Regulator (LQR) is used to construct the objective function of the intermediate kinematic equations. Under the constraints of the joint physical constraint expressions, the desired angle set of the robot at the control moment is calculated with the objective function minimized. This LQR is based on the Quadratic Programming optimization method, which essentially seeks to find a multidimensional vector that minimizes (or maximizes) the quadratic objective function of the multidimensional vector under linear constraints.
[0167] For example, first rewrite the intermediate kinematic equation into the form of AX = B;
[0168] in,
[0169] The essence of the solution process of AX=B is to find the solution of the linear equation system. A and B are known variables, and X is an unknown variable. Here, a linear quadratic programming regulator can be used to construct the objective function of the intermediate kinematic equation.
[0170] Alternatively, the objective function of the intermediate kinematic equation can be expressed as follows:
[0171] Z=(AX-B) T W1(AX-B)+X T W2X;
[0172] Among them, W1 and W2 represent weight matrices, () T Indicates transpose.
[0173] Through the linear quadratic programming optimizer, under the constraints of the robot's joint physical constraint expression, the optimization goal is to minimize the objective function, and the unknown variable X can be obtained. The q in X can be directly cmd Determine the desired angle set.
[0174] Taking the quadruped-foot-wheel hybrid robot in Figure 2 as an example, the above-mentioned expected angle set can include the expected angles corresponding to two hip joints (each hip joint corresponds to a mechanical leg group), the telescopic joints corresponding to the four mechanical legs, the wheel joints of the four mechanical wheels, the ankle joints of the four mechanical feet, one pitch joint and one roll joint.
[0175] Alternatively, if the robot model structure is relatively simple, the robot's whole-body dynamics model (such as the forward kinematics model) is also relatively simple, and the intermediate kinematics equation can be solved directly by using the matrix inversion method, that is, X = A -1 B, to obtain the desired angle set.
[0176] The first term in the objective function above represents the kinematic relationship, and the second term is to make the desired angle smaller to save energy. Using the linear quadratic programming optimizer to calculate the desired angle can ensure that the robot's motion conforms to the kinematic relationship while making the desired angle of the joint relatively small, thereby saving energy.
[0177] The embodiment of the present application adopts a whole-body kinematic model of the robot. According to the first desired task, the desired angle set corresponding to the execution of the first desired task can be accurately obtained, and then the first desired task can be accurately achieved according to the desired angle set, thereby improving the control accuracy of the robot.
[0178] In one example, the robot's structural relationships can be used to calculate the desired angle set for the first desired task without using a full-body kinematic model of the robot. This helps reduce the computational complexity of the desired angle set and, in turn, improves the efficiency of obtaining the desired angle set. For example, as shown in FIG14 , for any control moment corresponding to the robot, step 602 can further include the following sub-steps.
[0179] Step 602d, based on the expected position of the body at the control time, as well as the expected positions of the supporting mechanical wheels and the expected positions of the swinging mechanical wheels at the control time, obtain the expected angles of each hip joint at the control time, and the expected angles corresponding to the telescopic joints of each mechanical leg at the control time.
[0180] Constrained by the robot's model structure, the desired position of the body and the desired position of the mechanical wheels satisfy a geometric relationship. Based on this geometric relationship, the desired angles corresponding to the hip joint and the telescopic joint can be determined. For example, this process may include the following:
[0181] 1. Determine a first relative expected position between the fuselage and the supporting mechanical wheel based on the expected position of the fuselage at the control moment and the expected position of the supporting mechanical wheel at the control moment; and determine a second relative expected position between the fuselage and the oscillating mechanical wheel based on the expected position of the fuselage at the control moment and the expected position of the oscillating mechanical wheel at the control moment.
[0182] Optionally, the difference between the expected position of the fuselage at the control moment and the expected position of the supporting mechanical wheel at the control moment is determined as the first relative expected position between the fuselage and the supporting mechanical wheel. The first relative expected position can be expressed as:
[0183] The difference between the desired position of the fuselage at the control moment and the desired position of the oscillating mechanical wheel at the control moment is determined as the second relative desired position between the fuselage and the oscillating mechanical wheel. The second relative desired position can be expressed as:
[0184] In an embodiment of the present application, the first desired task is used to guide the robot to move in a first direction, and the relative desired position includes a relative position in the first direction and a relative position in a second direction, where the second direction is perpendicular to the first direction, such as the first direction being horizontal and the second direction being vertical. For example, the first relative desired position includes the relative desired position of the supporting mechanical wheel and the body in the first direction, and the relative desired position of the supporting mechanical wheel and the body in the second direction, and the second relative desired position includes the relative desired position of the oscillating mechanical wheel and the body in the first direction, and the relative desired position of the oscillating mechanical wheel and the body in the second direction.
[0185] For example, referring to FIG12 , for the mechanical wheel 1202 and the body 1201 , their corresponding relative desired positions may include: and
[0186] 2. Determine the desired angle of the hip joint on the supporting mechanical leg where the supporting mechanical wheel is located based on the first relative desired position, and determine the desired angle of the hip joint on the swinging mechanical leg where the swinging mechanical wheel is located based on the second relative desired position.
[0187] Optionally, the arc tangent of the relative expected positions of the supporting machine wheel and the body in the first direction and the relative expected positions in the second direction are determined as the expected angle of the hip joint on the supporting machine leg.
[0188] For example, the desired angle of the hip joint on the supporting robotic leg can be expressed as follows:
[0189] The desired relative positions of the swinging mechanical wheel and the body in the first direction and the arc tangent of the desired relative positions in the second direction are determined as the desired angles of the hip joints on the swinging mechanical legs.
[0190] For example, the desired angle of the hip joint on a swinging robotic leg can be expressed as follows:
[0191] The embodiment of the present application uses the inverse tangent to determine the desired angle of the hip joint, which can effectively reduce the amount of calculation of the desired angle, thereby effectively improving the efficiency of determining the desired angle.
[0192] 3. Determine the expected length of the supporting mechanical leg where the supporting mechanical wheel is located based on the first relative expected position, and determine the expected length of the swinging mechanical leg where the swinging mechanical wheel is located based on the second relative expected position.
[0193] Alternatively, the norm of the relative expected positions of the supporting mechanical wheels and the body in the first direction, and the relative expected positions in the second direction, is determined as the expected length of the supporting mechanical leg. For example, referring to FIG12 , for mechanical leg 1204, once the position of the mechanical wheel 1202 on the mechanical leg 1204 and the position of the hip joint of the mechanical wheel 1202 on the mechanical leg 1204 (i.e., the position of the body 1201) are determined, the length of the mechanical leg 1204 can be determined. This essentially involves calculating the distance between two points.
[0194] For example, the desired length of the supporting robot leg can be expressed as follows:
[0195] Optionally, the norm of the relative expected positions of the swinging mechanical wheel and the body in the first direction and the relative expected positions in the second direction is determined as the expected length of the swinging mechanical leg.
[0196] For example, the expected length corresponding to the swinging mechanical leg can be expressed as follows:
[0197] The embodiment of the present application uses the norm to determine the expected length of the robotic leg, which can effectively reduce the amount of calculation of the expected length of the robotic leg, thereby improving the efficiency of determining the expected angle.
[0198] 4. Determine the desired angle of the telescopic joint of the supporting robotic leg based on the desired length of the supporting robotic leg, and determine the desired angle of the telescopic joint of the swinging robotic leg based on the desired length of the swinging robotic leg.
[0199] Optionally, there is a mapping relationship between the expected length of the robotic leg and the expected angle of the telescopic joint, such as a linear correlation between the expected length of the robotic leg and the expected angle of the telescopic joint.
[0200] According to this mapping relationship, the desired angles of the telescopic joints supporting the robotic leg and the desired angles of the telescopic joints swinging the robotic leg can be determined, which are respectively expressed as: and
[0201] The embodiment of the present application can accurately calculate the expected angles of the hip joint and the telescopic joint through the relative positions between the parts and the expected lengths of the parts, which is beneficial to reducing the calculation complexity of the expected angles and further beneficial to improving the efficiency of obtaining the expected angle set.
[0202] Step 602e, based on the expected angle of each hip joint at the control time, or the expected position of the body at the control time, as well as the expected position of the supporting mechanical wheel and the expected position of the swinging mechanical wheel at the control time, obtain the expected angle of the ankle joint of each mechanical foot at the control time.
[0203] In one example, for each hip joint, the negative of the expected angle of the hip joint at the control moment can be directly determined as the expected angle of the ankle joint on the robotic leg where the hip joint is located at the control moment.
[0204] For example, the desired angle of the ankle joint at the control moment can be expressed as follows:
[0205] as well as
[0206] In one example, the ankle joint acquisition process can also be as follows: based on the expected position of the supporting mechanical wheel at the control moment and the expected position of the supporting mechanical foot at the control moment, the third relative expected position between the supporting mechanical wheel and the supporting mechanical foot can be determined, and based on the expected position of the swinging mechanical wheel at the control moment and the expected position of the swinging mechanical foot at the control moment, the fourth relative expected position between the swinging mechanical wheel and the swinging mechanical foot can be determined; based on the third relative expected position, the expected angle of the ankle joint on the supporting mechanical leg where the supporting mechanical foot is located is determined, and based on the fourth relative expected position, the expected angle of the ankle joint on the swinging mechanical leg where the swinging mechanical foot is located is determined.
[0207] Alternatively, the inverse tangent of the third relative desired position can be used to determine the desired angle of the ankle joint corresponding to the supporting mechanical foot, and the inverse tangent of the fourth relative desired position can be used to determine the desired angle of the ankle joint corresponding to the swinging mechanical foot. This method is similar to the method for calculating the desired angle of the hip joint described above and will not be repeated here.
[0208] For example, the desired angle of the ankle joint on the supporting robotic leg can be expressed as follows:
[0209] The desired angle of the ankle joint on a swinging robotic leg can be expressed as follows:
[0210] The embodiment of the present application uses the inverse tangent to determine the desired angle of the ankle joint, which can effectively reduce the amount of calculation of the desired angle, thereby effectively improving the efficiency of determining the desired angle.
[0211] Optionally, the robot's desired angle set at the control time may include, in addition to the desired angles of each ankle joint, each hip joint, and each telescopic joint, the desired angles of each mechanical wheel joint and the desired angles of the body's pitch and roll joints. For example, step 602 may further include the following sub-steps.
[0212] Step 602f: setting the expected angle of the wheel joint of each mechanical wheel at the control moment to zero.
[0213] During the robot's steps, the mechanical wheels do not need to rotate, and the desired angles corresponding to the wheel joints at each control moment can be directly set to zero, which is conducive to the mechanical wheels providing stable support for the robot.
[0214] Alternatively, the desired angle of the wheel joint at the control moment can be expressed as follows:
[0215] Step 602g: Set the expected angles of the pitch joint and roll joint of the fuselage at the control moment to zero.
[0216] During the robot's steps, the body can be kept vertical as much as possible. The expected angles of the pitch joint and the roll joint at each control moment can be directly set to zero. This helps to reduce the impact of the body on the robot's movement and reduce the control complexity of the robot.
[0217] Optionally, the desired angles of the pitch joint and the roll joint at the control moment can be expressed as follows:
[0218] In one example, the desired angles include the desired angles corresponding to the hip joint, the telescopic joint, the ankle joint, the wheel joint, the pitch joint, and the roll joint, respectively, to achieve full joint control of the robot. Exemplarily, step 602 may further include the following sub-steps.
[0219] Step 602h, based on the expected angles of each hip joint at the control moment, the expected angles of each telescopic joint at the control moment, the expected angles of each ankle joint at the control moment, the expected angles of each wheel joint at the control moment, the expected angles of the pitch joint at the control moment, and the expected angles of the roll joint at the control moment, obtain the expected angle set of the robot at the control moment.
[0220] Alternatively, the desired angle set can be expressed as follows:
[0221] The embodiment of the present application utilizes the model structure of the robot to calculate the expected angle of each joint based on the expected position of each part, which can effectively reduce the amount of calculation of the expected angle set, thereby helping to improve the efficiency of obtaining the expected angle set.
[0222] In one example, in order to reduce joint oscillation during the desired angle following process, the angular velocity of all joints is set to zero, which is denoted as
[0223] Step 603: Control the robot to move under the guidance of the first expected task according to the expected angle set.
[0224] Optionally, each desired angle in the desired angle set may be converted into a corresponding desired torque, so as to control the movement of each joint through the desired torque, so that the robot achieves the first desired task.
[0225] Exemplarily, step 603 may further include the following content:
[0226] 1. A PD (Proportional Derivative) feedback controller is used to calculate a first desired torque set for the desired angle set based on the desired angle set, the actual angle set corresponding to each joint, and the actual angular velocity set corresponding to each joint. The first desired torque set includes a first desired torque for controlling each joint.
[0227] For example, based on the difference between the desired angle set and the actual angle set, and the desired angular velocity set The difference between the actual angular velocity set and the first expected torque set is calculated, and the first expected torque set can be expressed as follows:
[0228] in, is the desired angle set, is the actual angle set, is the actual angular velocity set, k p,q and They correspond to the proportional coefficient of position feedback and the differential coefficient of speed feedback respectively.
[0229] k p,q and This ensures the accuracy of following the desired angle, thereby improving the robot's motion stability and accuracy. Following the desired angle effectively avoids the poor force control transparency that results from following the desired acceleration. This means that when a small torque (equivalent to the effect of the desired acceleration) is applied, the joint remains stationary. When the torque exceeds a certain value, the joint moves violently under the influence of a larger force, effectively improving the control accuracy of the robot's joints.
[0230] 2. According to the first desired torque set, control the robot to move under the guidance of the first desired task.
[0231] The first desired torque set includes the first desired torques of each joint of the robot at each control moment. The first desired torques are used to control the rotation of the joints. At any control moment, for any joint, simply driving the joint motor corresponding to that joint based on the first desired torque of that joint at that control moment can achieve the first desired task. That is, the robot can move under the guidance of the first desired task and follow each desired position corresponding to the first desired task, thereby achieving robot control.
[0232] In summary, the technical solution provided by the embodiment of the present application is for a robot having a first mechanical leg group and a second mechanical leg group, and having mechanical legs with mechanical wheels and mechanical feet on the feet. The desired angles of the various joints of the robot are calculated by the desired position of the robot in the operating space, and then the various joints are directly controlled by the desired angles so that the robot moves on the support surface, thereby achieving effective tracking of the robot's joints to the desired angles. Compared with the related art that indirectly controls the robot through the desired acceleration and has the problem of poor force control transparency, that is, when a smaller desired acceleration is given, the joints do not move, and when a larger desired acceleration is given, the joints will move violently, and it is impossible to ensure that the parts corresponding to the joints can accurately move to the desired position, resulting in low tracking accuracy of the robot to the desired position. The embodiment of the present application can achieve direct tracking of the parts corresponding to the joints to the desired position by the effective tracking of the robot's joints to the desired angles, thereby effectively improving the control accuracy of the robot.
[0233] In addition, during the movement of the robot, the mechanical foot assists the mechanical wheel to keep the robot standing on the support surface, so that the foot can keep the robot standing with no less than two contact points (such as the contact points between the mechanical foot and the mechanical wheel and the support surface respectively). Compared with one contact point in the related technology, the robot can stand more stably on the support surface and is not prone to falling, thereby effectively improving the robot's movement stability.
[0234] In addition, since the rotation centers of the corresponding hip joints of the robot are located in the same vertical plane, the robot can be planned to stand with one set of mechanical legs and move quickly with another set of mechanical legs in a dynamic equilibrium state (i.e., the center of gravity of the robot can exceed the support area of the robot) by swinging, thereby improving the movement efficiency of the robot. The support area of the robot refers to the area surrounded by the contact points between the feet of each mechanical leg of the robot and the support surface. The related technology needs to always control the projection of the center of gravity within the support area, resulting in a very small center of mass speed of the robot and a very slow entire movement. However, the center of gravity of the robot in the embodiment of the present application can exceed the support area of the robot, and the entire movement is very fast, thereby improving the movement efficiency of the robot.
[0235] In addition, by adopting the robot's whole-body kinematic model, according to the first expected task, the expected angle set corresponding to the execution of the first expected task can be accurately obtained, and then the first expected task can be accurately achieved according to the expected angle set, which is conducive to improving the control accuracy of the robot.
[0236] In addition, under the constraints of the robot's joint physical constraint expressions, solving the intermediate kinematic equations can obtain a reasonable and accurate set of expected angles, which can further improve the robot's control accuracy.
[0237] Please refer to Figure 15, which shows a flow chart of a robot control method provided by another embodiment of the present application. In this embodiment of the present application, the robot control method is described by taking the robot as the execution subject of each step as an example. The method may include the following steps (1501-1506):
[0238] Step 1501, obtain the first expected task of the robot on the support surface, wherein the first expected task includes the expected position of the robot in the robot's operating space, and the first expected task is used to guide the robot to move on the support surface. During the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot to stand on the support surface.
[0239] Step 1502: Obtain an expected angle set for a first expected task, where the expected angle set includes expected angles of joints for controlling various parts of the robot.
[0240] Steps 1501-1502 are the same as steps 601-602 in the above embodiment. For matters not described in the embodiment of this application, reference can be made to the above embodiment and will not be repeated here.
[0241] Step 1503: Acquire a first desired torque set of the desired angle set, where the first desired torque set includes a first desired torque for controlling each joint.
[0242] The method for obtaining the first desired torque set corresponding to step 1503 is the same as the method for obtaining the first desired torque set corresponding to step 603 in the above embodiment. The contents not described in the embodiment of this application can be referred to the above embodiment and will not be repeated here.
[0243] Step 1504: Obtain a second expected task of the robot on the support surface, wherein the second expected task includes an expected acceleration of the robot in the robot's operating space and an expected acceleration of the robot's center of mass in the operating space. The second expected task is used to guide the robot to move on the support surface. During the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot to stand on the support surface.
[0244] In the embodiment of the present application, the expected task refers to the task that the robot is expected to perform in the operating space, and the above-mentioned second expected task may refer to the task set for the acceleration of each part of the robot, such as the second expected task may include the expected acceleration of each part of the robot in the operating space of the robot. Optionally, the above-mentioned second expected task can be obtained by planning based on the robot and the real environment in which the robot is located. For example, according to the size of the support surface, the size of each part of the robot and the structure of the robot, the expected acceleration of each part and center of mass of the robot is planned to obtain the second expected task corresponding to the scene. Among them, for each part or center of mass, the expected acceleration is the expected acceleration of the part or center of mass. The expected acceleration of a part or center of mass can be used to indicate the acceleration that the part or center of mass is expected to achieve.
[0245] Optionally, the second desired task corresponds to the robot's complete motion process. If the complete motion process corresponds to multiple control moments, the second desired task can include the desired accelerations of various parts and the center of mass of the robot at each of these multiple control moments. Control moments refer to the moments at which the robot is controlled by control signals. Control moments are arranged at specified time intervals, which can be set and adjusted based on actual usage requirements. In this way, the second desired task can be uniformly planned for the robot's entire motion process.
[0246] In one example, the second desired task can be used to guide the robot to alternately swing the first and second mechanical leg groups to move in a first direction on the support surface. For example, corresponding second desired tasks can be planned for scenarios such as gait walking, stair climbing, obstacle crossing, and marking time. For example, the second desired task corresponding to gait walking can be used to guide the robot to alternately swing the first and second mechanical leg groups to achieve the gait walking task; the second desired task corresponding to stair climbing can be used to guide the robot to alternately swing the first and second mechanical leg groups to achieve the stair climbing task; and the second desired task corresponding to obstacle crossing can be used to guide the robot to alternately swing the first and second mechanical leg groups to achieve the obstacle crossing task.
[0247] The robot can control the movement of various parts of the robot using the desired acceleration in the second desired task to achieve movement of the robot on the support surface. For example, the robot can control the robot's mechanical legs, mechanical feet, mechanical wheels, and body using the desired acceleration in the second desired task to enable the robot to alternately swing the first and second mechanical leg groups to move on the support surface, and control the mechanical feet to assist the mechanical wheels to support the robot standing on the support surface.
[0248] The desired acceleration refers to the acceleration used to control the robot based on the real environment, while the reference acceleration is a planned value used to guide the robot along a reference trajectory. The reference trajectory is a planned trajectory for the robot, and can include reference trajectories for various robot parts and their center of mass.
[0249] The robot can be controlled to follow the reference movement trajectory through the above-mentioned expected acceleration. Exemplarily, the second expected task includes the expected accelerations of the robotic legs, robotic feet, mechanical wheels, and body, as well as the robot's center of mass, at each control moment, so as to enable the robot to complete the above-mentioned complete motion process. For example, the expected acceleration of the robotic legs can be used to control the robotic legs to swing and control the robotic legs to extend and retract, the expected acceleration of the robotic feet can be used to control the robotic feet to rotate, the expected acceleration of the mechanical wheels can be used to control the mechanical wheels to rotate, and the expected accelerations corresponding to the body and center of mass can be used to control the body to rotate (including pitch and roll).
[0250] The robot's operating space may refer to the robot's corresponding Cartesian space. In task-oriented whole-body control (TWBC), the robot's corresponding Cartesian space may be referred to as the robot's operating space. In embodiments of the present application, each position in the robot's operating space may be represented based on the robot's world coordinate system.
[0251] For example, the robot's world coordinate system can be constructed with the contact point between the robot's foot (such as a mechanical wheel) and the support surface in the initial state as the origin, the horizontal direction as the x-axis direction, the vertical direction as the z-axis direction, and the direction perpendicular to both the horizontal and vertical directions as the y-axis direction. The position of the robot in the operating space can be characterized based on the three-dimensional coordinates of the robot in the world coordinate system. Optionally, the calculation processes in the embodiments of the present application all occur in the robot's world coordinate system.
[0252] The embodiment of the present application does not limit the first direction, which can be used to indicate the forward direction of the robot. For example, in scenes such as gait walking, climbing stairs, crossing obstacles, and marking time, the first direction may refer to the horizontal direction (i.e., the direction perpendicular to the direction of gravity) to indicate the forward direction of the robot. The support surface refers to the surface for the robot to stand. In the embodiment of the present application, the support surface may include only one plane, such as a flat ground, a road, etc., and the support surface may also include multiple planes of different heights, such as stairs, a road surface with shoulders, a ground with pits, etc., which is not limited in the embodiment of the present application.
[0253] In one example, the robot stops moving after a plurality of control moments, i.e., completing the second desired task. During the robot's movement, the mechanical legs used for swinging are swinging mechanical legs, and the mechanical legs used for standing are supporting mechanical legs. The mechanical feet on the swinging mechanical legs are swinging mechanical feet, the mechanical feet on the supporting mechanical legs are supporting mechanical feet, the mechanical wheels on the swinging mechanical legs are swinging mechanical wheels, and the mechanical wheels on the supporting mechanical legs are supporting mechanical wheels. The supporting mechanical feet can assist the supporting mechanical wheels, allowing the robot to stand on the supporting surface. For example, the second desired task at a certain control moment includes the desired acceleration of each part and center of mass of the robot at that control moment.
[0254] For example, when the robot stands on a support surface by means of the first mechanical leg group and controls the robot's second mechanical leg group to swing, the mechanical legs in the first mechanical leg group may be referred to as supporting mechanical legs, and the mechanical legs in the second mechanical leg group may be referred to as swinging mechanical legs; when the robot stands on a support surface by means of the second mechanical leg group and controls the robot's first mechanical leg group to swing, the mechanical legs in the second mechanical leg group may be referred to as supporting mechanical legs, and the mechanical legs in the first mechanical leg group may be referred to as swinging mechanical legs; when the robot stands on a support surface by means of both the first mechanical leg group and the second mechanical leg group, the mechanical legs in the first mechanical leg group and the mechanical legs in the second mechanical leg group may both be referred to as supporting mechanical legs, and this embodiment of the application does not limit this. When the mechanical leg group is used for support, the mechanical feet and mechanical wheels on the mechanical leg group are in contact with the support surface at the same time, so that the robot can stand stably.
[0255] Optionally, the expected acceleration included in the second expected task can be calculated by a feedback controller, such as a PD feedback controller, and other feedback controllers based on the reference movement trajectory of each part of the robot and the actual state of the robot.
[0256] In one example, referring to FIG16 , the above step 1504 may further include at least one of the following sub-steps:
[0257] Step 1504a, obtaining the expected swing acceleration of the swinging mechanical leg group in the operating space according to the swinging reference movement trajectory of the swinging mechanical leg group, wherein the swinging reference movement trajectory is obtained according to the movement trajectory planning of the support surface to the swinging mechanical leg group.
[0258] The expected swing acceleration is the expected acceleration of the swinging mechanical leg. The swing reference movement trajectory refers to the reference movement trajectory of the swinging mechanical leg in the swinging mechanical leg group, such as it can be represented by the reference movement trajectory of the swinging mechanical wheel on the swinging mechanical leg. Among them, the reference movement trajectory can be used to guide the movement of the robot, such as the reference movement trajectory can include the reference position of the robot at each control moment, and the reference position refers to the position that the robot is planned to reach. For example, the reference movement trajectory of the mechanical wheel includes the reference position of the mechanical wheel at each control moment to guide the mechanical wheel to move according to the reference movement trajectory of the mechanical wheel. The reference position in the embodiment of the present application is the expected position in the above embodiment, which is a planned value.
[0259] Optionally, the reference motion trajectory in the embodiments of the present application can be obtained using a spline curve interpolation method. For example, the initial and final positions of the supporting mechanical leg (e.g., a mechanical wheel) during each step can be planned based on the dimensional information of the supporting surface. The initial and final positions can then be interpolated using a spline curve interpolation method to obtain the swing reference motion trajectory corresponding to the swinging mechanical leg.
[0260] For example, taking a quadruped-legged, wheeled hybrid robot climbing stairs as an example, the reference position (i.e., the above-mentioned expected position) of the supporting mechanical legs (such as mechanical wheels) on each step can be planned based on the size information of each step of the stairs (such as width, height, length, etc.), and then interpolation is performed between each reference position to obtain the swing reference movement trajectory.
[0261] The aforementioned desired swing acceleration may include the desired acceleration of the swinging mechanical leg at various control moments. For example, the desired acceleration of the swinging mechanical wheel of the swinging mechanical leg at various control moments may be determined as the desired swing acceleration. The desired swing acceleration may be used to control the swinging mechanical leg (including the mechanical wheel) to follow the swing reference movement trajectory, thereby causing the swinging mechanical leg to swing.
[0262] For example, when the robot stops moving after a plurality of control moments, the process of obtaining the desired acceleration of the swing may be as follows:
[0263] 1. For any control moment corresponding to the robot, obtain the reference position, reference velocity, and reference acceleration of the swinging mechanical leg group at the control moment according to the swing reference movement trajectory.
[0264] Alternatively, the reference position of the swinging mechanical leg group (e.g., a mechanical wheel) at a certain control moment can be directly determined based on the swinging reference movement trajectory. Furthermore, the reference velocity and reference acceleration of the swinging mechanical leg group at that control moment can be obtained based on the reference position of the swinging mechanical leg group at that control moment. For example, by taking the first-order and second-order derivatives of the reference position of the swinging mechanical leg group at that control moment with respect to time, the reference velocity and reference acceleration of the swinging mechanical leg group at that control moment can be obtained. The reference velocity refers to the speed planned to be achieved, and the reference acceleration refers to the acceleration planned to be achieved, but they are not directly used to control the robot.
[0265] Alternatively, since the robotic legs in the robotic leg group move synchronously, the reference movement trajectory of the robotic leg group can be the movement trajectory of any robotic leg in the robotic leg group in the x-axis and z-axis directions, and the y-axis direction can be ignored. In addition, the robotic legs in the embodiments of the present application always remain vertical and cannot be bent.
[0266] 2. Using a PD feedback controller, the expected acceleration of the swing at the control moment is calculated based on the reference position, reference speed and reference acceleration of the swing mechanical leg group at the control moment, as well as the actual position and actual speed of the swing mechanical leg group at the control moment.
[0267] Optionally, based on the IMU on the fuselage, the acceleration, angular velocity, and attitude of the fuselage (i.e., the actual Euler angle) can be measured. Combined with the actual angles and actual accelerations of all the robot's joints, as well as the contact points between the robot and the support surface, the actual position, actual velocity, actual attitude, and actual angular velocity of the fuselage in the world coordinate system can be obtained using a state estimation algorithm. Given the relative position, relative velocity, and relative angular velocity between the hip joint center point and the IMU of the hip joint, the state of the hip joint center point can be calculated based on the state of the fuselage (i.e., the actual position, actual velocity, actual attitude, and actual angular velocity of the fuselage in the world coordinate system).
[0268] In an embodiment of the present application, the center point of the hip joint is the origin of the floating base coordinate system of the robot. According to the state of the center point of the hip joint, the state of the floating base coordinate system can be obtained. Combined with the actual angles and actual angular velocities of all joints of the robot, the forward kinematics model of the full model of the robot can be used to calculate the actual position, actual speed, actual posture and actual angular velocity of all the links corresponding to the robot in the world coordinate system. All the links include the swinging mechanical legs, and the actual position and actual speed of the swinging mechanical legs (such as mechanical wheels) in the operating space can be obtained. Among them, the actual position refers to the actual position of the swinging mechanical legs, which is a true value, and the actual speed refers to the actual speed of the swinging mechanical legs, which is a true value. A variant of the forward kinematics model can be used to indicate the relationship between the acceleration of the robot in the operating space and the speed and acceleration of the robot in the joint space of the robot.
[0269] For example, a PD feedback controller is used to determine the desired swing acceleration based on the difference between the actual position and the reference position of the swinging mechanical leg, the difference between the actual speed and the reference speed of the swinging mechanical leg, and the reference acceleration of the swinging mechanical leg. The desired swing acceleration can be expressed as follows:
[0270] in, and are the reference position, reference velocity and reference acceleration of the swinging mechanical leg (such as a mechanical wheel) in the operating space at the control time t, and are the actual position and actual speed of the swinging mechanical leg (such as mechanical wheel) in the operating space at the control time t, respectively. p,swing and k d,swing They correspond to the proportional coefficient (position feedback) and differential coefficient (speed feedback) for the swinging mechanical legs.
[0271] In one example, the mechanical legs corresponding to the first and second mechanical leg groups move synchronously, meaning that all the swinging mechanical legs in the swinging mechanical leg group move synchronously. If the robot has no displacement in the y-axis direction, then ignoring the y-axis, the swing reference movement trajectory of each swinging mechanical leg in the swinging mechanical leg group is the same. By calculating the expected swing acceleration for any swinging mechanical leg, the expected swing acceleration corresponding to the swinging mechanical leg group can be obtained. This reduces the computational effort required to calculate the expected swing acceleration, thereby improving robot control efficiency.
[0272] Step 1504b, obtaining the expected support acceleration of the supporting mechanical leg group in the operating space according to the supporting reference movement trajectory of the supporting mechanical leg group, wherein the supporting reference movement trajectory is obtained according to the movement trajectory planning of the supporting surface relative to the supporting mechanical leg group.
[0273] The support desired acceleration is the desired acceleration of the supporting robotic leg. The support reference trajectory refers to the reference trajectory of the supporting robotic leg in the supporting robotic leg group. For example, it can be implemented as the reference trajectory of the mechanical foot attached to the supporting robotic leg. The support desired acceleration includes the desired acceleration of the supporting robotic leg at each control moment. The support desired acceleration can be used to control the supporting robotic leg to follow the support reference trajectory to keep the robot standing.
[0274] In an embodiment of the present application, during the movement of the robot, the reference position (i.e., the expected position) of the supporting mechanical leg on the supporting surface is a fixed value, and during the supporting process of the supporting mechanical leg, there is no relative sliding between the mechanical foot of the supporting mechanical leg and the supporting surface, so the value of the expected support acceleration is always zero.
[0275] For example, the support expected acceleration can be expressed as follows:
[0276] Among them, N c is the number of supporting mechanical legs (the mechanical feet of each supporting mechanical leg in the supporting mechanical leg group are in contact with the supporting surface, N c It can also be recorded as the number of contact points between the supporting mechanical legs and the supporting surface).
[0277] Step 1504c: Obtain the expected acceleration of the center of mass in the operating space according to the center of mass reference movement trajectory of the center of mass of the robot. The center of mass reference movement trajectory is obtained according to the movement trajectory planning of the support surface to the center of mass.
[0278] The expected center of mass acceleration is the expected acceleration of the center of mass. The center of mass reference trajectory is the reference trajectory of the robot's center of mass. This trajectory includes the reference position of the robot's center of mass at each control moment (i.e., the expected position described above), which can be used to guide the movement of the robot's center of mass.
[0279] Optionally, during the movement of the robot, the center of mass of the robot not only needs to move continuously along the first direction (i.e., the forward direction), but also needs to help the robot maintain dynamic balance. Therefore, a balance controller needs to be constructed to calculate the expected acceleration of the center of mass in the first direction.
[0280] For example, the center of mass reference movement trajectory may be divided into a sub-reference movement trajectory in the first direction and a sub-reference movement trajectory in the vertical direction. Then, the sub-expected acceleration of the center of mass in the first direction is determined based on the sub-reference movement trajectory in the first direction, and the sub-expected acceleration of the center of mass in the vertical direction is determined based on the sub-reference movement trajectory in the vertical direction. This process may include the following:
[0281] 1. According to the sub-reference moving trajectory of the center of mass reference moving trajectory in the first direction, obtain the sub-expected acceleration of the center of mass in the first direction.
[0282] The first direction may be the forward direction of the robot, such as the x-axis direction of the world coordinate system. Optionally, the robot may be converted into an inverted pendulum model to construct a balance controller.
[0283] For example, since the robot always moves in the first direction (e.g., no displacement occurs in the y-axis direction of the world coordinate system), the mechanical legs in the supporting leg group move synchronously, the mechanical legs in the swinging leg group move synchronously, and the hip joints of the robot are coaxial, the robot can be simplified as a planar model in the sagittal plane (such as sagittal plane 206 in Figure 2). Refer to Figure 10, which is a schematic diagram of an inverted pendulum model of a robot provided in one embodiment of the present application.
[0284] After constructing the inverted pendulum model of the robot, a balance controller can be constructed based on the inverted pendulum model. Then, based on the balance controller, the expected acceleration of the center of mass in the first direction can be calculated. The process can be as follows:
[0285] 1) The robot's inverted pendulum dynamics equation is constructed using the position of the center of mass, the velocity of the center of mass, the distance between the center of mass and the support contact point in the first direction, and the derivative of the distance as state variables, and the acceleration of the center of mass relative to the support contact point in the first direction as the control variable. The support contact point refers to the contact point between the foot corresponding to the supporting mechanical leg group and the support surface.
[0286] In the inverted pendulum model, the support contact point is represented by a virtual support contact point. For example, the dynamic equation of the inverted pendulum of the robot can be expressed as follows:
[0287] Among them, Δx and are the distance between the center of mass and the support contact point (i.e., virtual support contact point) in the first direction, and the derivative of the distance, x com and are the position and velocity of the center of mass in the first direction, is the acceleration of the center of mass relative to the virtual support contact point in the first direction, z com is the vertical position of the center of mass, and g is the acceleration due to gravity.
[0288] 2) Use the linear quadratic programming regulator to calculate the feedback gain matrix of the inverted pendulum dynamics equation.
[0289] The Linear Quadratic Regulator (LQR) is built based on the Quadratic Programming optimization method. Its essence is to find a multidimensional vector under linear constraints so that the quadratic objective function of the multidimensional vector is minimized (or maximized).
[0290] For example, a linear quadratic programming regulator is used to construct an objective function of the inverted pendulum dynamics equation, and then the feedback gain matrix of the inverted pendulum dynamics equation is iteratively obtained with the goal of minimizing the objective function.
[0291] 3) For any of the control moments, according to the sub-reference movement trajectory in the first direction, obtain the reference position, reference speed, reference distance and reference speed between the center of mass and the support contact point at the control moment and in the first direction.
[0292] Optionally, the sub-reference movement trajectory of the center of mass in the first direction can be obtained by planning methods such as heuristic (i.e., giving a trajectory based on experience and the real environment) and inverted pendulum model (planning the trajectory using an inverted pendulum model), based on the reference position planning of the supporting mechanical leg. This is not limited to the embodiments of the present application.
[0293] Exemplarily, based on the sub-reference movement trajectory in the first direction, the reference position of the center of mass at the control moment and in the first direction can be directly obtained, and then the first-order derivative of the reference position of the center of mass at the control moment and in the first direction with respect to time is performed to obtain the reference speed of the center of mass at the control moment and in the first direction.
[0294] According to the support reference movement trajectory, the reference position and reference speed of the support contact point at the control moment and the first direction can be obtained, and then the reference position of the virtual support contact point can be obtained by taking a geometric average of the reference position of the support contact point at the control moment and the first direction, and the reference speed of the virtual support contact point can be obtained by taking a geometric average of the reference speed of the support contact point at the control moment and the first direction, and then the reference position of the virtual support contact point at the control moment and the first direction is subtracted from the reference position of the center of mass at the control moment and the first direction, and the reference distance between the center of mass and the virtual support contact point can be obtained, and the reference speed of the virtual support contact point at the control moment and the first direction is subtracted from the reference speed of the center of mass at the control moment and the first direction, and the reference speed between the center of mass and the virtual support contact point can be obtained.
[0295] 4) According to the feedback gain matrix, the reference position, reference speed, reference distance and reference speed between the center of mass and the support contact point at the control moment and the first direction, the third sub-expected acceleration at the control moment and the first direction is obtained.
[0296] Optionally, the reference position of the center of mass at the control moment and in the first direction, the reference speed, the reference distance between the center of mass and the support contact point, and the reference speed are used as reference values of the control variables. Then, the control variables of the inverted pendulum dynamics equation can be obtained based on the reference values of the control variables through LQR. The process can be expressed as follows:
[0297] in, is the actual value of the state variable.
[0298] Control variables of the inverted pendulum dynamics equation That is the expected acceleration of the center of mass in the first direction, recorded as The desired acceleration of the center of mass in the first direction obtained in this way can not only ensure the following of the reference moving trajectory of the center of mass in the first direction, but also maintain the dynamic balance of the robot during the movement, thereby improving the movement stability of the robot.
[0299] Optionally, the expected acceleration of the center of mass in the first direction can also be calculated using a PD feedback controller based on the reference position, reference velocity and reference acceleration of the center of mass in the first direction at the control moment, and the actual position and actual velocity of the center of mass in the first direction at the control moment. This embodiment of the present application is not limited to this.
[0300] 2. According to the sub-reference moving trajectory of the center of mass reference moving trajectory in the vertical direction, obtain the sub-expected acceleration of the center of mass in the vertical direction.
[0301] Optionally, the vertical direction may refer to the z-axis direction of the world coordinate system.
[0302] In an embodiment of the present application, the height between the center of mass of the robot and the foot of the robot's supporting mechanical leg is set to a constant value. This constant value can refer to the distance between the center of mass of the robot and the center of the foot corresponding to the supporting mechanical leg (such as the wheel center) in the z-axis direction. Therefore, based on the supporting reference movement trajectory and this constant value, a sub-reference movement trajectory of the center of mass in the vertical direction can be planned. For example, using a spline curve interpolation method, based on the sum of the reference position in the supporting reference movement trajectory and the constant value, the sub-reference movement trajectory of the center of mass in the vertical direction is interpolated.
[0303] Optionally, the sub-reference movement trajectory in the vertical direction may be equivalent to the reference movement trajectory of the robot's body in the vertical direction. By following the sub-reference movement trajectory in the vertical direction, the body can be moved in the vertical direction to complete the adjustment of the center of mass position. Especially in the stair climbing scenario, by following the sub-reference movement trajectory in the vertical direction, the robot can climb the stairs in the vertical direction.
[0304] For example, when the robot stops moving after a plurality of control moments, the process of obtaining the expected acceleration of the center of mass in the vertical direction may be as follows:
[0305] 1) For any control moment corresponding to the robot, obtain the reference position, reference velocity, and reference acceleration of the center of mass at the control moment and in the vertical direction according to the sub-reference movement trajectory in the vertical direction.
[0306] Optionally, the reference position of the center of mass in the vertical direction at a certain control moment can be determined directly based on the sub-reference movement trajectory in the vertical direction, and then the first-order derivative and second-order derivative of the reference position of the center of mass in the vertical direction at the control moment are taken with respect to time, respectively, to obtain the reference velocity and reference acceleration of the center of mass in the vertical direction at the control moment.
[0307] 2) A PD feedback controller is used to calculate the expected acceleration of the center of mass at the control moment and in the vertical direction based on the reference position, reference velocity and reference acceleration of the center of mass at the control moment and in the vertical direction, as well as the actual position and actual velocity of the center of mass at the control moment and in the vertical direction.
[0308] Optionally, based on the IMU on the fuselage, the acceleration, angular velocity and posture (i.e., the actual Euler angle) of the fuselage can be measured, and then combined with the actual angles, actual accelerations of all the joints of the robot, and the contact points between the robot and the supporting surface, the state estimation algorithm can be used to obtain the actual position, actual velocity, actual posture and actual angular velocity of the fuselage in the world coordinate system. Finally, based on the actual position and actual velocity of the fuselage and the mechanical legs in the world coordinate system, the actual position and actual velocity of the center of mass in the world coordinate system are determined, and then the actual position and actual velocity of the center of mass in the vertical direction are obtained.
[0309] For example, the expected acceleration of the center of mass in the vertical direction can be expressed as follows:
[0310] in, and are the reference position, reference velocity and reference acceleration of the center of mass at the control time t, in the vertical direction, respectively. and The actual position and actual velocity of the center of mass at the control time t and in the vertical direction, k p,base and k d,base They correspond to the proportional coefficient and differential coefficient for the center of mass respectively.
[0311] 3. The expected acceleration of the center of mass is obtained according to the expected acceleration of the center of mass in the first direction and the expected acceleration of the center of mass in the vertical direction.
[0312] At any of the control moments, the center of mass sub-expected acceleration in the first direction and the vertical sub-expected acceleration in the vertical direction are combined to obtain the center of mass expected acceleration. This center of mass expected acceleration can be used to control the robot's center of mass to follow the center of mass reference movement trajectory, causing the robot to move in the first direction.
[0313] Step 1504d: Obtain the expected acceleration of the robot's body in the operating space based on the reference trajectory of the robot's body posture. The reference trajectory of the body posture is obtained by planning the trajectory of the body posture.
[0314] The expected acceleration of the posture is the expected acceleration of the fuselage. The reference posture change trajectory refers to the reference change trajectory of the posture of the robot's fuselage, which can be used to describe the posture change of the robot's fuselage. For example, it may include the reference posture of the robot's fuselage at each control moment, and the reference posture is the posture planned to be achieved. Optionally, the posture of the fuselage can be represented by Euler angles, such as the Euler angles composed of the roll, pitch and yaw of the fuselage. The above-mentioned posture reference change trajectory can refer to the Euler angle reference movement trajectory corresponding to the robot's fuselage. The Euler angle reference movement trajectory includes the reference posture angle (i.e., the reference Euler angle) at each control moment, and the reference posture angle is the posture angle planned to be achieved.
[0315] The expected acceleration of the posture includes the expected acceleration of the robot body at each control moment. When the posture of the body is expressed using Euler angles, the expected acceleration may refer to the expected posture angular acceleration (ie, the expected Euler angular acceleration).
[0316] In one example, the body of the robot remains vertical during the movement of the robot (hereinafter referred to as the vertical task); in one example, the body of the robot rotates dynamically during the movement of the robot (hereinafter referred to as the angular momentum task); in one example, during the movement of the robot, the robot takes into account the vertical task and the angular momentum task of the body in a weighted manner. For example, when the weight parameter of the vertical task is greater than the weight parameter of the angular momentum task, the robot will focus on executing the vertical task but will not abandon the angular momentum task; when the weight parameter of the vertical task is less than or equal to the weight parameter of the angular momentum task, the robot will focus on executing the angular momentum task but will not abandon the vertical task. The weight parameters of the vertical task and the weight parameters of the angular momentum task can be dynamically set and adjusted according to actual use requirements, and the embodiments of the present application are not limited to this.
[0317] The following sections describe the desired attitude acceleration for vertical tasks and the desired angular momentum acceleration for angular momentum tasks (also referred to as attitude desired acceleration). The attitude desired acceleration is used to guide the aircraft to maintain vertical orientation, while the angular momentum desired acceleration is used to guide the aircraft to rotate.
[0318] In one example, when the robot stops moving after a plurality of control moments, the process of obtaining the expected acceleration of the posture can be as follows:
[0319] 1. For any control moment corresponding to the robot, obtain the reference attitude angle, reference attitude angular velocity and reference attitude angular acceleration of the body at the control moment according to the attitude reference change trajectory.
[0320] When the robot body remains vertical during the movement of the robot, the value of the reference posture angle, the value of the reference posture angular velocity, and the value of the reference posture angular acceleration corresponding to the body are all zero. For example, the value of the reference posture angle, the value of the reference posture angular velocity, and the value of the reference posture angular acceleration can be expressed as:
[0321] and
[0322] 2. Using the PD feedback controller, the expected attitude acceleration at the control moment is calculated based on the reference attitude angle, reference attitude angular velocity and reference attitude angular acceleration of the fuselage at the control moment, as well as the actual attitude angle and actual attitude angular velocity of the fuselage at the control moment.
[0323] Optionally, based on the IMU on the fuselage, the acceleration, angular velocity and attitude of the fuselage (i.e., the actual Euler angle) can be measured. Combined with the actual angles, actual accelerations of all joints of the robot, and the contact points between the robot and the supporting surface, the state estimation algorithm can be used to obtain the actual position, actual speed, actual attitude and actual angular velocity (i.e., the actual state) of the fuselage in the world coordinate system. Finally, based on the actual state of the fuselage in the world coordinate system, the actual attitude angle (i.e., the actual Euler angle) and actual attitude angular velocity (i.e., the actual Euler angular velocity) of the fuselage can be obtained.
[0324] For example, a PD feedback controller is used to determine the desired attitude acceleration based on the difference between the actual attitude angle and the reference attitude angle of the fuselage, the difference between the actual attitude angular velocity and the reference attitude angular velocity of the fuselage, and the reference attitude angular acceleration of the fuselage. The desired attitude acceleration can be expressed as follows:
[0325] in, and They are the actual attitude angle and actual attitude angular velocity of the fuselage in the operating space at the control time t, k p,euler and k d,euler The desired acceleration is used to control the robot's body to follow the reference trajectory to keep it upright.
[0326] In one example, when the second expected task also includes the expected angular momentum acceleration of the robot's center of mass in the operating space, the process of obtaining the expected angular momentum acceleration may be as follows:
[0327] 1. For any control moment corresponding to the robot, obtain the reference angular momentum, reference angular momentum velocity, and reference angular momentum acceleration of the center of mass at the control moment based on the reference angular momentum change trajectory of the center of mass, where the reference angular momentum change trajectory is obtained based on the angular momentum planning of the support surface relative to the center of mass.
[0328] The angular momentum reference change trajectory may include the reference angular momentum of the robot's center of mass at each control moment. The reference angular momentum of the center of mass at a particular control moment can be directly determined based on the angular momentum reference change trajectory. Furthermore, the first-order and second-order derivatives of the reference angular momentum of the center of mass at that control moment are taken with respect to time (i.e., the first-order derivative of the reference angular momentum with respect to time, and the second-order derivative of the reference angular momentum with respect to time), respectively. This yields the reference angular momentum velocity and reference angular momentum acceleration of the center of mass at that control moment. Optionally, the reference angular momentum, reference angular momentum velocity, and reference angular momentum acceleration can all be set to zero to simplify calculations, or only the reference angular momentum velocity can be set to zero. This is not limited in the present embodiment.
[0329] In the embodiments of the present application, angular momentum refers to the product of moment of inertia and angular acceleration. The angular momentum of the center of mass can be determined based on the moment of inertia and angular acceleration of the line connecting the center of mass and the center of rotation of the mechanical wheel supporting the mechanical leg. If the initial angular momentum of the center of mass is zero, the angle can be directly determined as the angular momentum of the center of mass. Among them, the center of mass of the robot is used to characterize the center of mass of the robot. It can be calculated based on the center of mass of each part of the robot and each joint angle at the current moment and is recorded as CoM. Optionally, the position of the center of mass of the robot can be obtained based on the position of the center of mass of each part of the robot. For example, the position of the center of mass of the robot can be obtained by averaging the positions of the center of mass of each part of the robot.
[0330] After determining the reference movement trajectory of the center of mass and the support reference movement trajectory, the moment of inertia and angular acceleration of the line between the center of mass and the rotation center of the mechanical wheel on the supporting mechanical leg at each control moment can be determined, so that the angular momentum of the center of mass can be obtained, and then the reference change trajectory of the angular momentum can be obtained.
[0331] For example, refer to Figure 11, which is a simplified diagram of a model of a quadrupedal hybrid robot with feet and wheels provided in one embodiment of the present application. Based on the body 1102 and each mechanical leg 1103, the center of mass 1101 of the robot 1100 can be calculated. The line connecting the center of mass 1101 and the rotation center of the mechanical wheels supporting the mechanical legs is first obtained, and the angular momentum of the center of mass is determined by multiplying the moment of inertia of this line by the angular acceleration. As the various joints of the robot 1100 rotate (i.e., the various parts move), the joint angles vary, the position of the center of mass 1101 changes constantly, and the angular momentum of the center of mass 1101 also changes constantly.
[0332] 2. Using a PD feedback controller, the expected angular momentum acceleration at the control moment is calculated based on the reference angular momentum, reference angular momentum velocity and reference angular momentum acceleration of the center of mass at the control moment, as well as the actual angular momentum and actual angular momentum velocity of the center of mass at the control moment.
[0333] Optionally, based on the IMU on the fuselage, the acceleration, angular velocity and posture of the fuselage (i.e., the actual Euler angle) can be measured, and then combined with the actual angles, actual accelerations of all joints of the robot, and the contact points between the robot and the supporting surface, the state estimation algorithm can be used to obtain the actual position and actual posture of the fuselage and mechanical legs in the world coordinate system. Then, based on the actual position and actual posture of the fuselage and mechanical legs in the world coordinate system, the position of the center of mass is determined, and the actual angular momentum and actual angular momentum velocity of the center of mass are obtained.
[0334] For example, a PD feedback controller is used to determine the desired angular momentum acceleration based on the difference between the actual angular momentum of the center of mass and the reference angular momentum, the difference between the actual angular momentum velocity of the center of mass and the reference angular momentum velocity, and the reference angular momentum acceleration of the center of mass. The desired angular momentum acceleration can be expressed as follows:
[0335] in, and are the reference angular momentum, reference angular momentum velocity and reference angular momentum acceleration of the center of mass in the operating space at the control time t, and are the actual angular momentum and actual angular momentum velocity (i.e., the first-order derivative of the actual angular momentum) of the center of mass in the operating space at the control time t, respectively. kp,momentum and kd,momentum are the proportional coefficient and differential coefficient corresponding to the angular momentum of the center of mass, respectively.
[0336] The desired angular momentum acceleration is used to control the robot's body movement to follow the reference angular momentum trajectory, thereby achieving the body's angular momentum task. By adding the angular momentum task, the robot's body is not locked at a fixed angle during movements (such as gait walking and stair climbing). Instead, it moves based on the principle of mutual cancellation of angular momenta between different joints. This reference movement trajectory better aligns with the dynamics of the robot system, further enhancing the biomimetic nature of the robot's gait.
[0337] In one example, the second desired task also includes a desired acceleration of each robotic foot within the operating space. This desired acceleration is used to control the robotic foot to follow the reference foot trajectory, assisting the mechanical wheels in maintaining a more stable stance and thereby improving the robot's stability during movement. The desired acceleration is the desired acceleration of the robotic foot.
[0338] Exemplarily, the robot stops moving after a plurality of control moments. The embodiment of the present application may further include the following steps:
[0339] Step 1504e: For any control moment corresponding to the robot, obtain the expected acceleration of the mechanical foot in the operating space according to the foot reference movement trajectory of the mechanical foot. The foot reference change trajectory is obtained by planning the change trajectory of the mechanical foot.
[0340] The foot reference trajectory is planned based on the trajectory of the support surface relative to the robotic foot. This refers to the reference trajectory of the robotic foot, such as the reference trajectory of the robotic foot supporting or swinging a robotic leg. The foot desired acceleration includes the desired acceleration of the robotic foot at each control moment.
[0341] The foot reference movement trajectory may include the expected position (ie, reference position) of the mechanical foot (such as the supporting mechanical foot and the swinging mechanical foot) at each control moment. The method for obtaining the expected position is the same as that in the above embodiment and will not be repeated here.
[0342] For example, for any control moment corresponding to the robot, the process of obtaining the expected acceleration can be as follows:
[0343] 1. According to the reference movement trajectory of the robotic foot, obtain the reference position, reference velocity and reference acceleration of the robotic foot at the control moment.
[0344] The foot reference movement trajectory may include the reference position of the robot's mechanical foot at each control moment (i.e., the above-mentioned expected position). The reference position of the mechanical foot at a certain control moment can be determined directly based on the foot reference movement trajectory, and then the first-order derivative and second-order derivative of the reference position of the mechanical foot at the control moment are taken with respect to time to obtain the reference speed and reference acceleration of the mechanical foot at the control moment.
[0345] Optionally, the reference speed of the mechanical foot at each control moment may be set to zero to simplify the calculation, which is not limited in the embodiment of the present application.
[0346] 2. Using the PD feedback controller, the expected acceleration of the foot at the control moment is calculated based on the reference position, reference velocity and reference acceleration of the mechanical foot at the control moment, as well as the actual position and actual velocity of the mechanical foot at the control moment.
[0347] Optionally, based on the IMU on the fuselage, the acceleration, angular velocity and posture (i.e., the actual Euler angle) of the fuselage can be measured, and then combined with the actual angles, actual accelerations of all joints of the robot, and the contact points between the robot and the supporting surface, the state estimation algorithm can be used to obtain the actual position and actual posture of the fuselage and mechanical legs in the world coordinate system. Then, based on information such as the rotation angle and joint angular velocity of the foot joint, the actual position and actual speed of the mechanical foot at the control moment can be determined. Among them, the actual position and actual speed of the toe of the mechanical foot at the control moment can be determined as the actual position and actual speed of the mechanical foot at the control moment.
[0348] For example, a PD feedback controller is used to determine the desired acceleration of the foot based on the difference between the actual position and the reference position of the mechanical foot, the difference between the actual speed and the reference speed of the mechanical foot, and the reference acceleration of the mechanical foot. The desired acceleration of the foot can be expressed as follows:
[0349] in, and are the reference position, reference velocity and reference acceleration of the robot foot in the operating space at the control time t, and are the actual position and actual speed of the robot foot in the operating space at the control time t, k o,foot and k d,foot are the proportional coefficient and differential coefficient corresponding to the mechanical foot respectively.
[0350] In one example, the second expected task includes expected accelerations corresponding to the swinging mechanical legs, the supporting mechanical legs, the center of mass, the body, and the mechanical feet, respectively. Then, step 1504 may further include the following sub-steps.
[0351] Step 1504f: Obtain a second expected task based on the expected swing acceleration, the expected support acceleration, the expected center of mass acceleration, the expected posture acceleration, and the expected foot acceleration.
[0352] The second expected task can be obtained by combining the swing expected acceleration, the support expected acceleration, the center of mass expected acceleration, the posture expected acceleration and the foot expected acceleration.
[0353] Alternatively, without including the angular momentum task of the fuselage, the second desired task can be expressed as follows:
[0354] Alternatively, in the case of an angular momentum mission involving the fuselage, the second desired mission may be expressed as follows:
[0355] Step 1505 : Acquire a second expected torque set for the second expected task according to the second expected task, and the whole-body dynamics model and the whole-body kinematics model of the robot. The second expected torque set includes second expected torques for controlling each joint.
[0356] Optionally, each desired acceleration in the second desired task can be converted into a corresponding desired torque, and the desired torque can be used to control the motion of each joint so that the robot achieves the second desired task. For example, the second desired torque set includes the second desired torque corresponding to each control moment of the robot's hip joint, ankle joint, wheel joint, telescopic joint, pitch joint, and roll joint. The second desired torque can be used to control the rotation of the joint.
[0357] In one example, the second desired task can be used for task-oriented whole body control of the robot, that is, by considering the mass, inertia and other dynamic information of all the links of the robot, all the degrees of freedom of the robot can be mobilized to control the robot to complete one or more set tasks.
[0358] For example, based on the rigid body dynamics of the robot, the whole body dynamics model of the robot in the joint space system can be expressed as follows:
[0359] in, represents the robot's joint space inertia matrix, Represents the joint space offset force vector of the robot, which is the sum of the Coriolis force, centrifugal force and gravity corresponding to the robot. represents the robot's selection matrix, represents the Jacobian matrix of the contact points between the robot and the support surface, represents the torque vector of the robot's joints, represents the contact force vector of the robot, q, Represents the generalized position vector, generalized velocity vector and generalized acceleration vector at each degree of freedom of the robot, N G Represents the total degree of freedom of the robot, that is, the floating basis degree of freedom N F and joint degrees of freedom N J sum, N C Indicates the number of contact forces corresponding to the robot, that is, the number of contact points n C With the dimension N of a single contact force D ∈{0,1,2,3}.
[0360] Taking the quadruped-foot-wheel hybrid robot in Figure 2 as an example, the connecting rods of the quadruped-foot-wheel hybrid robot can include four mechanical legs, four mechanical wheels, four mechanical feet, the waist in the fuselage (a separate connecting root), and the torso, upper limbs and head in the fuselage (the three are a whole). Among them, the joints of the quadruped-foot-wheel hybrid robot can include two hip joints, the telescopic joints corresponding to the four mechanical legs, the wheel joints of the four mechanical wheels, the ankle joints of the four mechanical feet, as well as one pitch joint and one roll joint. Optionally, the robot's joint degrees of freedom are the degrees of freedom corresponding to the above 16 joints.
[0361] The floating base degrees of freedom refer to the robot's floating base coordinate system's six degrees of freedom (position, px, py, pz, and attitude, yaw, roll, and pitch) in the world coordinate system. The floating base coordinate system is constructed with the hip joint's center of rotation as its origin. Initially, the coordinate axes of the floating base coordinate system are aligned with those of the world coordinate system. The number of contact points refers to the number of contact points between the supporting leg and the supporting surface. For example, during the swinging motion of the swinging leg group, the number of contact points must be at least four (with at least two contact points per supporting leg).
[0362] The whole-body kinematics model may refer to a variant of the robot's forward kinematics model, which is used to indicate the relationship between the acceleration of the robot in the operation space and the velocity and acceleration of the robot in the robot's joint space.
[0363] Alternatively, from rigid body dynamics, a variant of the forward kinematics model can be expressed as follows:
[0364] in, represents the acceleration of the robot in the operating space at the control time t, and They represent the velocity and acceleration of the robot in the joint space, that is, the generalized position vector and generalized velocity vector at each degree of freedom of the robot, J t and Represents the Jacobian matrix and the first-order derivative of the Jacobian matrix corresponding to the expected task t (i.e., task space).
[0365] Exemplarily, the process of obtaining the second desired torque set may include the following:
[0366] 1. Based on the whole-body dynamics model and the whole-body kinematics model, the dynamics equation to be solved is constructed. The dynamics equation to be solved uses the acceleration of the robot in the joint space as the unknown variable.
[0367] For example, the whole-body dynamics model and the whole-body kinematics model are combined, and the dynamics equation to be solved after simplification can be expressed as follows:
[0368] in, is an unknown variable, and the rest are known variables.
[0369] The above is the process of constructing the dynamic equation to be solved. It is a preset step and only needs to be constructed once before the calculation process of the second expected torque set. The second expected torque set at each subsequent control moment can be obtained by applying the dynamic equation to be solved.
[0370] 2. Substitute the second expected task into the dynamic equation to be solved and calculate the second expected torque set.
[0371] Optionally, during the robot's motion, it is also subject to the physical limitations of the robot's body structure and the drive motor. To improve the rationality and accuracy of the second desired torque set, the present application also sets constraints during the solution of the second desired torque set. For example, the solution process of the dynamic equation to be solved can be as follows:
[0372] 1) Replace the acceleration of the robot in the operating space in the dynamic equation to be solved with the second desired task to obtain the intermediate dynamic equation.
[0373] Optionally, the above The acceleration of the robot in the operating space in the dynamic equation to be solved By making substitutions, we can obtain the intermediate dynamic equation.
[0374] 2) Construct the joint physical constraint expression and friction constraint expression of the robot. The joint physical constraint expression is used to constrain the various joints of the robot. The contact force between the robot and the support surface under the constraint of the friction constraint expression satisfies the friction cone constraint.
[0375] Optionally, the joint torque τ in the unknown variable is limited according to the actual physical characteristics of the robot's drive motor, that is, the joint physical constraint expression can be: τlb ≤τ≤τ ub ; where τ lb and τ ub They represent the minimum and maximum values of the joint motor torque (such as the torque of all the driving motors of the robot).
[0376] Optionally, the contact force corresponding to the foot of the robot's mechanical leg should satisfy the friction cone constraint. In order to reduce nonlinearity, the friction cone can be approximated as a friction angle cone, and the friction constraint expression can be:
[0377] Among them, n x 、n y and n z They represent the unit orthogonal basis along the contact surface in the world coordinate system, μ i represents the friction coefficient corresponding to the i-th contact force, f i represents the i-th contact force, f z,lb and f z,ub Respectively represent the minimum and maximum values of the non-negative positive pressure perpendicular to the contact surface. Each foot corresponds to a contact force, which can be the combined force of the mechanical wheel and the mechanical foot. Alternatively, each foot can be divided into two contact forces, one for the mechanical wheel and one for the mechanical foot. This embodiment of the application is not limited to this.
[0378] For example, referring to Figure 11, for the supporting mechanical leg, the supporting surface will give the mechanical wheel a reaction force f w (i.e. contact force), the friction cone constraint is satisfied on the mechanical wheel, so that the wheel does not slip and does not leave the ground; the support surface also gives the mechanical foot a reaction force f f The friction cone constraint on the foot prevents the foot from slipping and leaving the ground. The combination of the two is equivalent to superimposing the torque of the mechanical wheel and the torque of the mechanical foot, which together help the body maintain balance, allowing the robot to stand more stably.
[0379] 3) For any control moment corresponding to the robot, under the constraints of the robot's joint physical constraint expressions and friction constraint expressions, the second desired torque set is calculated based on the intermediate dynamic equations.
[0380] Alternatively, the intermediate kinetic equation can be rewritten in the form of AX=B;
[0381] in,
[0382] The essence of the solution process of AX=B is to find the solution of the linear equation system. Here, the quadratic programming optimization method can be used to construct the objective function of the intermediate dynamic equation.
[0383] Alternatively, the objective function of the intermediate dynamics equation can be expressed as follows:
[0384] J = min(AX - B) T Q(AX-B)+X T RX;
[0385] Among them, Q and R represent weight matrices, and ()T represents transpose.
[0386] Under the constraints of the robot's joint physical constraint expressions and friction constraint expressions, the optimization goal is to minimize the objective function and iterate to obtain the second desired torque set. For example, through the quadratic programming optimizer, under the constraints of the robot's joint physical constraint expressions and friction constraint expressions, the optimization goal is to minimize the objective function, that is, the unknown variable X can be obtained by iteration, and the joint torque τ in the unknown variable X can be directly determined as the second desired torque set, which is recorded as
[0387] Taking the quadruped-foot-wheel hybrid robot in Figure 2 as an example, the second desired torque set can include the second desired torques corresponding to the two hip joints (each corresponding to a mechanical leg group), the extension joints corresponding to the four mechanical legs, the wheel joints of the four mechanical wheels, the ankle joints of the four mechanical feet, and one pitch joint and one roll joint. The desired torque is the joint torque that is expected to be achieved, which can be used to directly control the drive motors that drive the joints, such as controlling joint rotation.
[0388] Alternatively, if the robot model structure is relatively simple, the robot's whole-body dynamics model and whole-body kinematics model are also relatively simple, and the intermediate dynamics equation can be solved directly by using the matrix inversion method, that is, X = A -1 B, to obtain a second desired torque set, which is not limited in this embodiment of the present application.
[0389] Step 1506 : Control the robot to move under the guidance of the first expected task and the second expected task according to the first expected torque set and the second expected torque set.
[0390] Optionally, in an embodiment of the present application, the first desired torque set and the second desired torque set act together on the robot to control the robot to move, such as determining a mixed desired torque set for ultimately controlling the robot in a complementary manner.
[0391] Exemplarily, step 1506 may further include the following:
[0392] 1. Based on the first desired moment set and the second desired moment set, a mixed desired moment set is obtained by weighted summation.
[0393] Alternatively, the mixed desired moment set can be expressed as follows:
[0394] Where α is the second desired moment set The weight coefficient, (1-α) is the first desired moment set For example, α can be taken as 80%, which is The weight coefficient is 80%, The weight coefficient is 20%.
[0395] 2. According to the mixed desired torque set, the robot is controlled to move under the guidance of the first desired task and the second desired task.
[0396] The mixed desired torque set includes the mixed desired torques for each joint of the robot at each control moment. These mixed desired torques are used to control the rotation of the joints. At any control moment, for any joint, simply driving the corresponding joint motor based on the mixed desired torque at that moment can achieve simultaneous tracking of the first and second desired tasks. This means that the robot can move under the guidance of the first and second desired tasks, tracking the desired positions corresponding to the first desired task and the desired accelerations corresponding to the second desired task, thereby achieving robot control.
[0397] In some embodiments, the robot may be controlled to move under the guidance of the second desired task based solely on the second desired torque set, which is not limited in this embodiment of the present application.
[0398] To sum up, the technical solution provided in the embodiments of the present application, by adopting the robot's whole-body dynamic model and whole-body kinematic model, can accurately obtain the second expected moment set corresponding to the second expected task according to the second expected task, and then can accurately implement the second expected task according to the second expected moment set, thereby improving the control accuracy of the robot.
[0399] In addition, by jointly applying the first desired task (i.e., the desired position) and the second desired task (i.e., the desired acceleration) to the robot, under the joint action of the desired acceleration and the desired position, not only can the robot's joints have better dynamic performance, but the tracking accuracy of the joint angles can also be taken into account, thereby effectively improving the robot's control stability and control accuracy.
[0400] In addition, under the constraints of the robot's joint physical constraint expressions and friction constraint expressions, solving the intermediate dynamic equations can obtain a reasonable and accurate second desired task, thereby further improving the robot's control accuracy.
[0401] In addition, the inverted pendulum model is used to calculate the expected acceleration of the center of mass in the first direction (i.e., the forward direction), so that the center of mass of the robot can not only move continuously along the first direction, but also help the robot maintain dynamic balance, so that the robot can move stably and quickly, further improving the control stability and movement efficiency of the robot.
[0402] In some embodiments, referring to FIG17 , the motion process of a quadruped, foot-wheel hybrid robot is used as an example to illustrate the technical solutions provided by the embodiments of the present application. The motion process may include a pre-motion cycle, multiple swing cycles, and a final motion cycle. The pre-motion cycle, the swing cycle, and the final motion cycle can each be implemented as a step process.
[0403] In an embodiment of the present application, the above-mentioned first desired torque set or second desired torque set or mixed desired torque set can be used to control the robot to move in the pre-motion cycle, swing cycle and closing motion cycle respectively to achieve tasks such as gait walking, climbing stairs, crossing obstacles, and marching in place.
[0404] For any control moment, the robot's motion process can include the following:
[0405] In the pre-motion cycle: the robot 1701 in the initial state, supported by the second mechanical leg group 1703, swings the first mechanical leg group 1702 to enter the first state.
[0406] Among them, for the two swinging mechanical legs in the first mechanical leg group 1702, the hip joint rotation is controlled according to the desired torque of the corresponding hip joint (such as the first desired torque or the second desired torque or the mixed desired torque), so that the two swinging mechanical legs swing synchronously in the forward direction, and at the same time, the telescopic joint is controlled to contract according to the desired torque of the corresponding telescopic joint, and the two swinging mechanical legs are first shortened synchronously to avoid the swinging mechanical legs from colliding with the ground, and then the telescopic joint is controlled to extend according to the desired torque of the corresponding telescopic joint, and the two swinging mechanical legs are extended synchronously, so that the first mechanical leg group 1702 contacts the ground to take the first step.
[0407] During this process, the two supporting mechanical legs in the second mechanical leg group 1703 are controlled to keep standing by the desired torque of the hip joints corresponding to the second mechanical leg group 1703 .
[0408] For the body, the desired torque corresponding to the body is used to control the pitch joint rotation, so that the body rotates clockwise (i.e., tilts forward) and then counterclockwise (i.e., returns to vertical) to match the swing of the first mechanical leg group 1702. At the same time, the desired torque corresponding to the body is used to control the roll joint to not rotate.
[0409] For the robotic foot, the desired torque of the ankle joint corresponding to the first robotic leg group 1702 is used to control the auxiliary surface of the robotic foot in the first robotic leg group 1702 to always remain parallel to the support surface, and the desired torque of the ankle joint corresponding to the second robotic leg group 1703 is used to control the auxiliary surface of the mechanical foot in the second robotic leg group 1703 to be parallel to and in contact with the support surface, so that the robot 1701 can stand stably during movement.
[0410] The first swing cycle: the robot 1701 in the first state, with the first mechanical leg group 1702 as support, swings the second mechanical leg group 1703, and enters the second state; the robot 1701 in the second state controls the shortening of each mechanical leg in the first mechanical leg group 1702, and controls the extension of each mechanical leg in the second mechanical leg group 1703, and enters the third state, interchanges the functions of the first mechanical leg group 1702 and the second mechanical leg group 1703, and enters the first state.
[0411] Among them, for the two swinging mechanical legs in the second mechanical leg group 1703, the hip joints are controlled to rotate according to the desired torque of their corresponding hip joints, so that the two swinging mechanical legs swing synchronously in the forward direction, and at the same time, the telescopic joints are controlled to contract according to the desired torque of their corresponding telescopic joints, and the two swinging mechanical legs are first shortened synchronously to avoid collision with the ground, and then the telescopic joints are controlled to extend according to the desired torque of their corresponding telescopic joints, and the two swinging mechanical legs are extended synchronously, so that the second mechanical leg group 1703 contacts the ground to take the second step.
[0412] In the process of entering the second state from the first state, for the two supporting mechanical legs in the first mechanical leg group 1702, the two supporting mechanical legs in the first mechanical leg group 1702 are controlled to keep standing through the desired torque of the hip joints corresponding to the first mechanical leg group 1702.
[0413] For the fuselage, the pitch joint is controlled to rotate by the desired torque corresponding to the fuselage, so that the fuselage rotates clockwise first and then counterclockwise to match the swing of the second mechanical leg group 1703. At the same time, the roll joint is controlled not to rotate by the desired torque corresponding to the fuselage.
[0414] For the robotic foot, the desired torque of the ankle joint corresponding to the second robotic leg group 1703 is used to control the auxiliary surface of the mechanical foot in the second robotic leg group 1703 to always remain parallel to the support surface, and the desired torque of the ankle joint corresponding to the first robotic leg group 1702 is used to control the auxiliary surface of the mechanical foot in the first robotic leg group 1702 to be parallel to and in contact with the support surface, so that the robot 1701 can stand stably during movement.
[0415] During the transition from the second state to the third state, the two supporting mechanical legs in the first mechanical leg group 1702 are controlled to shorten by the desired torque of the corresponding telescopic joints of the first mechanical leg group 1702, and the mechanical legs in the second mechanical leg group 1703 are controlled to shorten by the desired torque of the corresponding telescopic joints of the second mechanical leg group 1703, so that the fuselage is located directly above the first mechanical leg group 1702. The other joints remain stationary.
[0416] For the second and third swing cycles, the control method of the robot is the same as that for the first swing cycle, which will not be repeated here.
[0417] Ending motion cycle: In the first state, the robot 1701, supported by the second mechanical leg group 1703, swings the first mechanical leg group 1702 until it overlaps with the second mechanical leg group 1703, entering the initial state. During this process, the body of the robot 1701 remains vertical.
[0418] Among them, for the two swinging mechanical legs in the first mechanical leg group 1702, the hip joints are controlled to rotate according to the desired torque of their corresponding hip joints, so that the two swinging mechanical legs swing synchronously in the forward direction, and at the same time, the telescopic joints are controlled to contract according to the desired torque of their corresponding telescopic joints, and the two swinging mechanical legs are first shortened synchronously to avoid collision with the ground, and then the telescopic joints are controlled to extend according to the desired torque of their corresponding telescopic joints, and the two swinging mechanical legs are extended synchronously, so that the first mechanical leg group 1702 swings to overlap with the second mechanical leg group 1703.
[0419] During this process, the two supporting mechanical legs in the second mechanical leg group 1703 are controlled to keep standing by the desired torque of the hip joints corresponding to the second mechanical leg group 1703 .
[0420] For the fuselage, the desired torque corresponding to the fuselage is used to control the pitch joint to prevent rotation, so that the fuselage remains upright. At the same time, the desired torque corresponding to the fuselage is used to control the roll joint to prevent rotation.
[0421] For the robotic foot, the desired torque of the ankle joint corresponding to the first robotic leg group 1702 is used to control the auxiliary surface of the mechanical foot in the first robotic leg group 1702 to always remain parallel to the support surface until the auxiliary surface of the mechanical foot in the first robotic leg group 1702 is parallel to and in contact with the support surface (i.e., four-legged standing state), and the desired torque of the ankle joint corresponding to the second robotic leg group 1703 is used to control the auxiliary surface of the mechanical foot in the second robotic leg group 1703 to be parallel to and in contact with the support surface, so that the robot 1701 can stand stably during movement.
[0422] During the above movement process, the wheel joint corresponding to the mechanical wheel is controlled not to rotate by the desired torque corresponding to the mechanical wheel, so that the mechanical wheel does not rotate.
[0423] In some embodiments, refer to Figure 18, which is a schematic diagram of the simulated flat-ground stepping motion data of a quadrupedal foot-wheel hybrid robot provided by an embodiment of the present application. Among them, curve 1801 is a curve showing the change of the second expected torque instruction (i.e., the second expected torque) of the wheel joint of the mechanical wheel over time, and curve 1802 is a curve showing the change of the second expected torque instruction of the ankle joint of the mechanical foot over time. Except for the peak of the first expected torque instruction coming from the preparatory action of taking a step (i.e., the pre-motion cycle), the quadrupedal foot-wheel hybrid robot took a total of 3 steps forward (i.e., three swing cycles) during this process. The situation of each step is relatively similar, and the approximate magnitude is: the wheel joint of the mechanical wheel can contribute a maximum torque of about 2.5Nm, while the ankle joint can contribute about 15-30Nm of torque. From this, it can be seen that the contribution of the mechanical wheel is relatively small. This is because the radius of the mechanical wheel is small. In addition, due to the need to meet the constraint of no relative sliding between the mechanical wheel and the ground, from the physical limit analysis, the contribution of the mechanical wheel will not be too large. However, the experimental data proves that the wheel-foot hybrid structure has a torque superposition effect, which enables the robot to stand more stably.
[0424] In some embodiments, referring to FIG19 , which is a schematic diagram of simulated ground stepping motion data of a quadruped-foot-wheel hybrid robot provided in another embodiment of the present application, a line graph 1901 shows the mixed desired torque command (i.e., mixed desired torque) corresponding to the hip joint of the supporting mechanical leg over time, a line graph 1902 shows the mixed desired torque command corresponding to the hip joint of the swinging mechanical leg over time, a line graph 1903 shows the mixed desired torque command corresponding to the telescopic joint of the supporting mechanical leg over time, a line graph 1904 shows the mixed desired torque command corresponding to the telescopic joint of the swinging mechanical leg over time, a line graph 1905 shows the mixed desired torque command corresponding to the ankle joint of the supporting mechanical leg over time, a line graph 1906 shows the mixed desired torque command corresponding to the ankle joint of the swinging mechanical leg over time, a line graph 1907 shows the mixed desired torque command corresponding to the pitch joint over time, and a line graph 1908 shows the mixed desired torque command corresponding to the sway joint over time. Since the mixed desired torque command of the wheel joint of the mechanical wheel is relatively small, the data on the change of the mixed desired force of the wheel joint over time are not shown in FIG19 .
[0425] For each line graph, the two curves in the line graph represent the first expected torque (corresponding to the expected position) and the second expected torque (corresponding to the expected acceleration), respectively. At about 5 seconds, the robot is in the preparatory action stage of taking a step (i.e., the pre-motion cycle). At this time, the second expected torque accounts for about 80% of the mixed expected torque corresponding to the joint, and the first expected torque accounts for about 20% of the mixed expected torque corresponding to the joint. The experimental data proves that the mixed expected torque has a torque complementary effect, which can not only make the robot's joints have better dynamic performance, but also ensure the robot's control accuracy.
[0426] To sum up, the technical solution provided in the embodiments of the present application, by jointly applying the first desired task (i.e., the desired position) and the second desired task (i.e., the desired acceleration) to the robot, under the joint action of the desired acceleration and the desired position, not only can the joints of the robot have better dynamic performance, but also the tracking accuracy of the joint angles can be taken into account, thereby effectively improving the control stability and control accuracy of the robot.
[0427] The following are device embodiments of the present application, which can be used to implement the method embodiments of the present application. For details not disclosed in the device embodiments of the present application, please refer to the method embodiments of the present application.
[0428] Referring to Figure 20 , a block diagram of a robot control device provided by one embodiment of the present application is shown. This device has the function of implementing the aforementioned robot control method, which can be implemented by hardware or by hardware executing corresponding software. This device can be the computer device described above (such as a foot-wheel hybrid robot), or it can be housed within a computer device. As shown in Figure 20 , the device 2000 includes: a desired task acquisition module 2001, a desired angle acquisition module 2002, and a robot control module 2003.
[0429] The expected task acquisition module 2001 is used to obtain the first expected task of the robot on the support surface, wherein the first expected task includes the expected position of the robot in the operating space of the robot, and the first expected task is used to guide the robot to move on the support surface. During the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot to stand on the support surface.
[0430] The expected angle acquisition module 2002 is used to acquire an expected angle set for the first expected task, where the expected angle set includes expected angles of joints corresponding to various parts of the robot for controlling the robot.
[0431] The robot control module 2003 is configured to control the robot to move under the guidance of the first expected task according to the expected angle set.
[0432] In some embodiments, as shown in FIG. 21 , the desired angle acquisition module 2002 includes: a kinematic model acquisition submodule 2002 a , a kinematic equation construction submodule 2002 b , and a desired angle acquisition submodule 2002 c .
[0433] The kinematic model acquisition submodule 2002a is used to obtain a first kinematic model and a second kinematic model based on the whole-body kinematic model of the robot, wherein the first kinematic model is used to indicate the relationship between the positions of the various parts of the robot in the operating space and the angles of the various joints of the robot in the joint space of the robot, and the second kinematic model is used to indicate the relationship between the speeds of the various parts of the robot in the operating space and the angular velocities of the various joints of the robot in the joint space.
[0434] The kinematic equation construction submodule 2002b is used to construct the kinematic equation to be solved based on the first kinematic model and the second kinematic model, wherein the kinematic equation to be solved uses the joint angles of each joint of the robot in the joint space as unknown variables.
[0435] The expected angle acquisition submodule 2002c is used to, for any control moment corresponding to the robot, bring the first expected task of the robot at the control moment into the kinematic equation to be solved, and calculate the expected angle set of the robot at the control moment.
[0436] In some embodiments, the desired angle acquisition submodule 2002c is configured to:
[0437] Replacing the positions of the various parts of the robot in the operation space in the kinematic equation to be solved with the first desired task of the robot at the control moment to obtain an intermediate kinematic equation;
[0438] Constructing a joint physical constraint expression of the robot, wherein the joint physical constraint expression is used to constrain each joint of the robot;
[0439] Under the constraints of the joint physical constraint expressions, based on the intermediate kinematic equations, the desired angle set of the robot at the control moment is calculated.
[0440] In some embodiments, the desired angle acquisition submodule 2002c is further configured to:
[0441] Adopting a quadratic programming optimization method to construct an objective function of the intermediate dynamics equation;
[0442] Under the constraints of the joint physical constraint expression, the desired angle set of the robot at the control moment is calculated with minimization of the objective function as the optimization goal.
[0443] In some embodiments, during movement of the robot, the mechanical leg for swinging is a swinging mechanical leg, and the mechanical leg for standing is a supporting mechanical leg, and the first desired task includes a desired position of a swinging mechanical wheel on the swinging mechanical leg, a desired position of a supporting mechanical wheel on the supporting mechanical leg, and a desired position of the body;
[0444] As shown in FIG. 21 , the desired angle acquisition module 2002 further includes: a first angle acquisition submodule 2002d and a second angle acquisition submodule 2002e.
[0445] The first angle acquisition submodule 2002d is used to obtain the expected angles of each hip joint at any control moment corresponding to the robot, as well as the expected angles of the telescopic joints of each mechanical leg at the control moment, based on the expected position of the body at the control moment, the expected positions of the supporting mechanical wheels at the control moment, and the expected positions of the swinging mechanical wheels at the control moment.
[0446] The second angle acquisition submodule 2002e is used to obtain the expected angle of each ankle joint of the mechanical foot at the control moment based on the expected angle of each hip joint at the control moment, or the expected position of the body at the control moment, as well as the expected position of the supporting mechanical wheel at the control moment and the expected position of the swinging mechanical wheel at the control moment; wherein, the expected angle set of the robot at the control moment includes the expected angle of each ankle joint at the control moment, the expected angle of each hip joint at the control moment and the expected angle of each telescopic joint at the control moment.
[0447] In some embodiments, the expected angle set of the robot at the control moment also includes the expected angles of the wheel joints of each of the mechanical wheels at the control moment and the expected angles of the pitch joints and roll joints of the fuselage at the control moment; the expected angle acquisition module 2002 also includes: a third angle acquisition sub-module 2002f and a fourth angle acquisition sub-module 2002g.
[0448] The third angle acquisition submodule 2002f is configured to set the expected angle of each wheel joint of the mechanical wheel at the control moment to zero.
[0449] The fourth angle acquisition submodule 2002g is used to set the expected angles of the pitch joint and the roll joint of the fuselage at the control moment to zero.
[0450] In some embodiments, the first angle acquisition submodule 2002d is configured to:
[0451] determining a first expected relative position between the airframe and the supporting mechanical wheel based on the expected position of the airframe at the control time and the expected position of the supporting mechanical wheel at the control time, and determining a second expected relative position between the airframe and the oscillating mechanical wheel based on the expected position of the airframe at the control time and the expected position of the oscillating mechanical wheel at the control time;
[0452] determining a desired angle of a hip joint on the supporting mechanical leg where the supporting mechanical wheel is located based on the first relative desired position, and determining a desired angle of a hip joint on the swinging mechanical leg where the swinging mechanical wheel is located based on the second relative desired position;
[0453] determining a desired length of the supporting mechanical leg where the supporting mechanical wheel is located based on the first relative desired position, and determining a desired length of the swinging mechanical leg where the swinging mechanical wheel is located based on the second relative desired position;
[0454] Based on the expected length of the supporting mechanical leg, the expected angle of the telescopic joint of the supporting mechanical leg is determined, and based on the expected length of the swinging mechanical leg, the expected angle of the telescopic joint of the swinging mechanical leg is determined.
[0455] In some embodiments, the first desired task is to guide the robot to move in a first direction, the first relative desired position includes the relative desired position of the supporting mechanical wheel and the body in the first direction, and the relative desired position of the supporting mechanical wheel and the body in a second direction, the second direction being perpendicular to the first direction, and the second relative desired position includes the relative desired position of the swinging mechanical wheel and the body in the first direction, and the relative desired position of the swinging mechanical wheel and the body in the second direction; the first angle acquisition submodule 2002d is further configured to:
[0456] Determining the desired relative position of the supporting machine wheel and the body in the first direction and the arc tangent of the desired relative position in the second direction as the desired angle of the hip joint on the supporting machine leg;
[0457] The desired relative position of the swinging mechanical wheel and the body in the first direction and the arc tangent of the desired relative position in the second direction are determined as the desired angle of the hip joint on the swinging mechanical leg.
[0458] In some embodiments, the first angle acquisition submodule 2002d is further configured to:
[0459] Determining the norm of the relative expected positions of the supporting mechanical wheel and the fuselage in the first direction and the relative expected positions in the second direction as the expected length of the supporting mechanical leg;
[0460] The norm of the relative expected position of the swinging mechanical wheel and the body in the first direction and the relative expected position in the second direction is determined as the expected length of the swinging mechanical leg.
[0461] In some embodiments, the first expected task also includes an expected position of the swinging mechanical foot on the swinging mechanical leg and an expected position of the supporting mechanical foot on the supporting mechanical leg; the second angle acquisition submodule 2002e is further configured to:
[0462] For each of the hip joints, determining the negative of the expected angle of the hip joint at the control moment as the expected angle of the ankle joint on the robotic leg where the hip joint is located at the control moment;
[0463] Alternatively, based on the expected position of the supporting mechanical wheel at the control moment and the expected position of the supporting mechanical foot at the control moment, the third relative expected position between the supporting mechanical wheel and the supporting mechanical foot is determined, and based on the expected position of the swinging mechanical wheel at the control moment and the expected position of the swinging mechanical foot at the control moment, the fourth relative expected position between the swinging mechanical wheel and the swinging mechanical foot is determined; based on the third relative expected position, the expected angle of the ankle joint on the supporting mechanical leg where the supporting mechanical foot is located is determined, and based on the fourth relative expected position, the expected angle of the ankle joint on the swinging mechanical leg where the swinging mechanical foot is located is determined.
[0464] In some embodiments, during the movement of the robot, the mechanical legs used for swinging are swinging mechanical legs, and the mechanical legs used for standing are supporting mechanical legs; the expected task acquisition module 2001 is further used to implement at least one of the following:
[0465] For any control moment corresponding to the robot, for the supporting mechanical wheels on the supporting mechanical legs, obtaining the expected positions of the supporting mechanical wheels at the control moment according to the supporting surface planning;
[0466] For the swinging mechanical wheel on the swinging mechanical leg, the expected position of the swinging mechanical wheel at the control time is planned based on the support surface and the expected position of the supporting mechanical wheel at the control time;
[0467] For the center of mass of the robot, the expected position of the center of mass at the control time is planned based on the expected positions of the support surface and the supporting mechanical wheels at the control time;
[0468] determining an expected position of the fuselage at the control time based on the expected position of the center of mass at the control time, the actual position of the center of mass at the control time, and the actual position of the fuselage at the control time;
[0469] determining the expected position of the supporting mechanical foot at the control moment based on the expected position of the supporting mechanical wheel at the control moment and the size of the supporting mechanical foot corresponding to the supporting mechanical wheel;
[0470] The expected position of the oscillating mechanical wheel at the control moment and the size of the oscillating mechanical foot corresponding to the oscillating mechanical wheel are determined.
[0471] In some embodiments, as shown in FIG21 , the robot control module 2003 further includes: a first torque acquisition submodule 2003a and a robot control submodule 2003b.
[0472] The first torque acquisition submodule 2003a is used to use a proportional differential PD feedback controller to calculate the first expected torque set of the expected angle set based on the expected angle set, the actual angle set corresponding to each joint, and the actual angular velocity set corresponding to each joint, wherein the first expected torque set includes the first expected torque for controlling each joint.
[0473] The robot control submodule 2003b is used to control the robot to move under the guidance of the first expected task according to the first expected torque set.
[0474] In some embodiments, the robot control submodule 2003b is further configured to:
[0475] Obtaining a second desired task for the robot on the support surface, wherein the second desired task includes a desired acceleration of the robot in the robot's operating space and a desired acceleration of the robot's center of mass in the operating space, the second desired task being used to guide the robot to move on the support surface, and during the movement of the robot, the mechanical foot being used to assist the mechanical wheel to support the robot standing on the support surface;
[0476] Obtaining a second expected torque set for the second expected task according to the second expected task, and a whole-body dynamics model and a whole-body kinematics model of the robot, wherein the second expected torque set includes a second expected torque for controlling each of the joints;
[0477] According to the first desired torque set and the second desired torque set, the robot is controlled to move under the guidance of the first desired task and the second desired task.
[0478] In some embodiments, the robot control submodule 2003b is further configured to:
[0479] Based on the first desired moment set and the second desired moment set, performing weighted summation to obtain a hybrid desired moment set;
[0480] According to the hybrid desired torque set, the robot is controlled to move under the guidance of the first desired task and the second desired task.
[0481] In some embodiments, the second expected task includes an expected acceleration of each of the mechanical feet in the operating space; the robot control submodule 2003b is further configured to:
[0482] For any control moment corresponding to the robot, obtain a reference position, a reference velocity, and a reference acceleration of the mechanical foot at the control moment according to a reference movement trajectory of the mechanical foot, wherein the reference movement trajectory is obtained according to a movement trajectory of the support surface relative to the mechanical foot;
[0483] The PD feedback controller is used to calculate the expected acceleration of the foot at the control moment based on the reference position, reference speed and reference acceleration of the mechanical foot at the control moment, as well as the actual position and actual speed of the mechanical foot at the control moment.
[0484] In some embodiments, the second expected task further includes an expected acceleration of the angular momentum of the center of mass of the robot in the operating space, and the expected acceleration of the angular momentum is used to guide the rotation of the body; the robot control submodule 2003b is further used to:
[0485] For any control moment corresponding to the robot, obtaining a reference angular momentum, a reference angular momentum velocity, and a reference angular momentum acceleration of the center of mass at the control moment according to a reference angular momentum change trajectory of the center of mass, wherein the reference angular momentum change trajectory is obtained according to the angular momentum planning of the support surface with respect to the center of mass;
[0486] The PD feedback controller is used to calculate the expected acceleration of the angular momentum at the control moment based on the reference angular momentum, reference angular momentum velocity and reference angular momentum acceleration of the center of mass at the control moment, as well as the actual angular momentum and actual angular momentum velocity of the center of mass at the control moment.
[0487] In some embodiments, the mechanical legs corresponding to the first mechanical leg group move synchronously, the mechanical legs corresponding to the second mechanical leg group move synchronously, the mechanical feet corresponding to the first mechanical leg group move synchronously, and the mechanical feet corresponding to the second mechanical leg group move synchronously.
[0488] In summary, the technical solution provided by the embodiment of the present application is for a robot having a first mechanical leg group and a second mechanical leg group, and having mechanical legs with mechanical wheels and mechanical feet on the feet. The desired angles of the various joints of the robot are calculated by the desired position of the robot in the operating space, and then the various joints are directly controlled by the desired angles so that the robot moves on the support surface, thereby achieving effective tracking of the robot's joints to the desired angles. Compared with the related art that indirectly controls the robot through the desired acceleration and has the problem of poor force control transparency, that is, when a smaller desired acceleration is given, the joints do not move, and when a larger desired acceleration is given, the joints will move violently, and it is impossible to ensure that the parts corresponding to the joints can accurately move to the desired position, resulting in low tracking accuracy of the robot to the desired position. The embodiment of the present application can achieve direct tracking of the parts corresponding to the joints to the desired position by the effective tracking of the robot's joints to the desired angles, thereby effectively improving the control accuracy of the robot.
[0489] In addition, during the movement of the robot, the mechanical foot assists the mechanical wheel to keep the robot standing on the support surface, so that the foot can keep the robot standing with no less than two contact points (such as the contact points between the mechanical foot and the mechanical wheel and the support surface respectively). Compared with one contact point in the related technology, the robot can stand more stably on the support surface and is not prone to falling, thereby effectively improving the robot's movement stability.
[0490] It should be noted that the apparatus provided in the above embodiments, when implementing its functions, is only illustrated by the division of the above functional modules. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments are based on the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0491] Please refer to Figure 22, which shows a simplified block diagram of a computer device 2200 provided in one embodiment of the present application. The computer device 2200 can be any electronic device with data computing, processing, and storage functions. The computer device 2200 can be used to implement the robot control method provided in the above embodiments.
[0492] Typically, the computer device 2200 includes a processor 2201 and a memory 2202 .
[0493] The processor 2201 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and the like. The processor 2201 may be implemented in at least one hardware form of DSP (Digital Signal Processing), FPGA (Field Programmable Gate Array), or PLA (Programmable Logic Array). The processor 2201 may also include a main processor and a coprocessor. The main processor is a processor for processing data in an awake state, also known as a CPU (Central Processing Unit); the coprocessor is a low-power processor for processing data in a standby state. In some embodiments, the processor 2201 may be integrated with a GPU (Graphics Processing Unit), which is responsible for rendering and drawing the content to be displayed on the display screen. In some embodiments, the processor 2201 may also include an AI processor for processing computing operations related to machine learning.
[0494] The memory 2202 may include one or more computer-readable storage media, which may be non-transitory. The memory 2202 may also include high-speed random access memory and non-volatile memory, such as one or more magnetic disk storage devices and flash memory storage devices. In some embodiments, the non-transitory computer-readable storage media in the memory 2202 is used to store a computer program, which is configured to be executed by one or more processors to implement the above-mentioned robot control method.
[0495] Those skilled in the art will understand that the structure shown in FIG. 22 does not constitute a limitation on the computer device 2200 , and may include more or fewer components than shown, or combine certain components, or adopt a different component arrangement.
[0496] In some embodiments, a chip is further provided, in which a computer program is stored. The computer program is loaded and executed by a processor to implement the above-mentioned robot control method.
[0497] In some embodiments, a computer-readable storage medium is further provided, wherein the storage medium stores a computer program, and the computer program implements the above-mentioned robot control method when executed by a processor of a computer device.
[0498] Optionally, the computer-readable storage medium may include: ROM (Read-Only Memory), RAM (Random-Access Memory), SSD (Solid State Drives), or an optical disk, etc. Among them, the random access memory may include ReRAM (Resistance Random Access Memory) and DRAM (Dynamic Random Access Memory).
[0499] In some embodiments, a computer program product is further provided, comprising a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to perform the above-described robot control method.
[0500] It should be noted that, in the embodiments of the present application, before collecting the relevant data of the user and during the process of collecting the relevant data of the user, a prompt interface, pop-up window or voice prompt information can be displayed. The prompt interface, pop-up window or voice prompt information is used to remind the user that its relevant data is currently being collected, so that the present application only starts to execute the relevant steps of obtaining the relevant data of the user after obtaining the confirmation operation issued by the user on the prompt interface or pop-up window. Otherwise (that is, when the user does not obtain the confirmation operation issued by the prompt interface or pop-up window), the relevant steps of obtaining the relevant data of the user are terminated, that is, the relevant data of the user is not obtained. In other words, all user data collected by this application are processed strictly in accordance with the requirements of relevant national laws and regulations. The informed consent or separate consent of the personal information subject is obtained only when the user agrees and authorizes the collection, and the subsequent data use and processing behavior is carried out within the scope of the authorization of the laws and regulations and the personal information subject. The collection, use and processing of relevant user data must comply with the relevant laws, regulations and standards of the relevant countries and regions. For example, the actual location, real environment, robot, etc. involved in this application are all obtained with full authorization.
[0501] It should be understood that the "multiple" mentioned in this article refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent three situations: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the previous and subsequent associated objects are in an "or" relationship. In addition, the step numbers described in this article only illustrate a possible execution sequence between the steps. In some other embodiments, the above steps may not be executed in the order of the numbers, such as two steps with different numbers are executed at the same time, or two steps with different numbers are executed in the opposite order to the diagram. The embodiments of the present application do not limit this.
[0502] The above description is merely an exemplary embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.
Claims
1. A method for controlling a robot, the method being executed by a computer device, wherein the robot comprises a body, a first mechanical leg group and a second mechanical leg group connected to the body via a hip joint, at least one of the first mechanical leg group and the second mechanical leg group comprises at least two mechanical legs, at least one of the mechanical legs having a foot remote from the hip joint provided with a mechanical wheel and a mechanical foot, and the rotation axis of the hip joint corresponding to the first mechanical leg group and the rotation axis of the hip joint corresponding to the second mechanical leg group being located in the same vertical plane; the method comprising: Obtaining a first desired task for the robot on a support surface, wherein the first desired task includes a desired position of the robot in an operating space of the robot, and the first desired task is used to guide the robot to move on the support surface. During the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot standing on the support surface; Acquire an expected angle set for the first expected task, the expected angle set including expected angles of joints for controlling various parts of the robot; According to the desired angle set, the robot is controlled to move under the guidance of the first desired task.
2. The method according to claim 1, wherein Before obtaining the expected angle set of the first expected task, the method further includes: Based on the whole-body kinematic model of the robot, a first kinematic model and a second kinematic model are obtained, wherein the first kinematic model is used to indicate the relationship between the position of each part of the robot in the operation space and the angle of each joint of the robot in the joint space of the robot, and the second kinematic model is used to indicate the relationship between the velocity of each part of the robot in the operation space and the angular velocity of each joint of the robot in the joint space; constructing a kinematic equation to be solved based on the first kinematic model and the second kinematic model, wherein the kinematic equation to be solved uses the joint angles of the joints of the robot in the joint space as unknown variables; The obtaining of the expected angle set of the first expected task includes: For any control moment corresponding to the robot, the first expected task of the robot at the control moment is substituted into the kinematic equation to be solved, and the expected angle set of the robot at the control moment is obtained by calculation.
3. The method according to claim 2, wherein: Substituting the first expected task of the robot at the control time into the kinematic equation to be solved to calculate the expected angle set of the robot at the control time includes: Replacing the positions of the various parts of the robot in the operation space in the kinematic equation to be solved with the first desired task of the robot at the control moment to obtain an intermediate kinematic equation; Constructing a joint physical constraint expression of the robot, wherein the joint physical constraint expression is used to constrain each joint of the robot; Under the constraints of the joint physical constraint expressions, based on the intermediate kinematic equations, the desired angle set of the robot at the control moment is calculated.
4. The method according to claim 3, wherein: The step of calculating the desired angle set of the robot at the control moment based on the intermediate kinematic equation under the constraints of the joint physical constraint expression includes: Adopting a quadratic programming optimization method to construct an objective function of the intermediate dynamics equation; Under the constraints of the joint physical constraint expression, the desired angle set of the robot at the control moment is calculated with minimization of the objective function as the optimization goal.
5. The method according to claim 1, wherein During the movement of the robot, the mechanical leg used for swinging is a swinging mechanical leg, and the mechanical leg used for standing is a supporting mechanical leg, and the first expected task includes an expected position of a swinging mechanical wheel on the swinging mechanical leg, an expected position of a supporting mechanical wheel on the supporting mechanical leg, and an expected position of the body; The obtaining of the expected angle set of the first expected task includes: For any control moment corresponding to the robot, based on the expected position of the body at the control moment, as well as the expected positions of the supporting mechanical wheels and the swing mechanical wheels at the control moment, the expected angles of the hip joints and the expected angles of the telescopic joints of the mechanical legs at the control moment are obtained; Based on the expected angle of each hip joint at the control time, or the expected position of the body at the control time, as well as the expected position of the supporting mechanical wheel and the expected position of the swinging mechanical wheel at the control time, the expected angle of each ankle joint of the mechanical foot at the control time is obtained; The expected angle set of the robot at the control moment includes the expected angle of each ankle joint at the control moment, the expected angle of each hip joint at the control moment, and the expected angle of each telescopic joint at the control moment.
6. The method according to claim 5, wherein: The expected angle set of the robot at the control time further includes the expected angles of the wheel joints of each of the mechanical wheels at the control time and the expected angles of the pitch joint and the roll joint of the body at the control time; The method further comprises: Setting the desired angle of the wheel joint of each of the mechanical wheels at the control moment to zero; The desired angles of the pitch joint and the roll joint of the fuselage at the control moment are set to zero.
7. The method according to claim 5 or 6, wherein: The acquiring, based on the expected position of the body at the control time, the expected positions of the supporting mechanical wheels at the control time, and the expected positions of the swinging mechanical wheels at the control time, the expected angles of the hip joints at the control time, and the expected angles of the telescopic joints of the mechanical legs at the control time, includes: determining a first expected relative position between the airframe and the supporting mechanical wheel based on the expected position of the airframe at the control time and the expected position of the supporting mechanical wheel at the control time, and determining a second expected relative position between the airframe and the oscillating mechanical wheel based on the expected position of the airframe at the control time and the expected position of the oscillating mechanical wheel at the control time; determining a desired angle of a hip joint on the supporting mechanical leg where the supporting mechanical wheel is located based on the first relative desired position, and determining a desired angle of a hip joint on the swinging mechanical leg where the swinging mechanical wheel is located based on the second relative desired position; determining a desired length of the supporting mechanical leg where the supporting mechanical wheel is located based on the first relative desired position, and determining a desired length of the swinging mechanical leg where the swinging mechanical wheel is located based on the second relative desired position; Based on the expected length of the supporting mechanical leg, the expected angle of the telescopic joint of the supporting mechanical leg is determined, and based on the expected length of the swinging mechanical leg, the expected angle of the telescopic joint of the swinging mechanical leg is determined.
8. The method according to claim 7, wherein: The first expected task is used to guide the robot to move in a first direction, the first relative expected position includes the relative expected position of the supporting mechanical wheel and the body in the first direction, and the relative expected position of the supporting mechanical wheel and the body in a second direction, the second direction being perpendicular to the first direction, and the second relative expected position includes the relative expected position of the swinging mechanical wheel and the body in the first direction, and the relative expected position of the swinging mechanical wheel and the body in the second direction; The step of determining the desired angle of the hip joint of the supporting mechanical leg where the supporting mechanical wheel is located based on the first relative desired position, and determining the desired angle of the hip joint of the swinging mechanical leg where the swinging mechanical wheel is located based on the second relative desired position, comprises: Determining the desired relative position of the supporting machine wheel and the body in the first direction and the arc tangent of the desired relative position in the second direction as the desired angle of the hip joint on the supporting machine leg; The desired relative position of the swinging mechanical wheel and the body in the first direction and the arc tangent of the desired relative position in the second direction are determined as the desired angle of the hip joint on the swinging mechanical leg.
9. The method according to claim 8, wherein The determining, based on the first relative expected position, the expected length of the supporting mechanical leg where the supporting mechanical wheel is located, and the determining, based on the second relative expected position, the expected length of the swinging mechanical leg where the swinging mechanical wheel is located, comprises: Determining the norm of the relative expected positions of the supporting mechanical wheel and the fuselage in the first direction and the relative expected positions in the second direction as the expected length of the supporting mechanical leg; The norm of the relative expected position of the swinging mechanical wheel and the body in the first direction and the relative expected position in the second direction is determined as the expected length of the swinging mechanical leg.
10. The method according to any one of claims 5 to 9, wherein: The first desired task also includes a desired position of the swinging mechanical foot on the swinging mechanical leg and a desired position of the supporting mechanical foot on the supporting mechanical leg; The acquiring, based on the expected angle of each hip joint at the control moment, or the expected position of the body at the control moment, and the expected position of the supporting mechanical wheel and the expected position of the swinging mechanical wheel at the control moment, the expected angle of each ankle joint of the mechanical foot at the control moment includes: For each of the hip joints, determining the negative of the expected angle of the hip joint at the control moment as the expected angle of the ankle joint on the robotic leg where the hip joint is located at the control moment; or, Based on the expected position of the supporting mechanical wheel at the control moment and the expected position of the supporting mechanical foot at the control moment, the third relative expected position between the supporting mechanical wheel and the supporting mechanical foot is determined, and based on the expected position of the swinging mechanical wheel at the control moment and the expected position of the swinging mechanical foot at the control moment, the fourth relative expected position between the swinging mechanical wheel and the swinging mechanical foot is determined; based on the third relative expected position, the expected angle of the ankle joint on the supporting mechanical leg where the supporting mechanical foot is located is determined, and based on the fourth relative expected position, the expected angle of the ankle joint on the swinging mechanical leg where the swinging mechanical foot is located is determined.
11. The method according to any one of claims 1 to 10, wherein: During the movement of the robot, the mechanical legs used for swinging are called swinging mechanical legs, and the mechanical legs used for standing are called supporting mechanical legs; The obtaining of the first desired task of the robot on the supporting surface includes at least one of the following: For any control moment corresponding to the robot, for the supporting mechanical wheels on the supporting mechanical legs, obtaining the expected positions of the supporting mechanical wheels at the control moment according to the supporting surface planning; For the swinging mechanical wheel on the swinging mechanical leg, the expected position of the swinging mechanical wheel at the control time is planned based on the support surface and the expected position of the supporting mechanical wheel at the control time; For the center of mass of the robot, the expected position of the center of mass at the control time is planned based on the expected positions of the support surface and the supporting mechanical wheels at the control time; determining an expected position of the fuselage at the control time based on the expected position of the center of mass at the control time, the actual position of the center of mass at the control time, and the actual position of the fuselage at the control time; determining the expected position of the supporting mechanical foot at the control moment based on the expected position of the supporting mechanical wheel at the control moment and the size of the supporting mechanical foot corresponding to the supporting mechanical wheel; The expected position of the oscillating mechanical wheel at the control moment and the size of the oscillating mechanical foot corresponding to the oscillating mechanical wheel are determined.
12. The method according to any one of claims 1 to 11, wherein: The controlling the robot to move under the guidance of the first expected task according to the expected angle set includes: Using a proportional differential (PD) feedback controller, based on the desired angle set, the actual angle set corresponding to each joint, and the actual angular velocity set corresponding to each joint, a first desired torque set of the desired angle set is calculated, wherein the first desired torque set includes a first desired torque for controlling each joint; According to the first desired torque set, the robot is controlled to move under the guidance of the first desired task.
13. The method according to claim 12, wherein: The controlling the robot to move under the guidance of the first expected task according to the first expected torque set includes: Obtaining a second desired task for the robot on the support surface, wherein the second desired task includes a desired acceleration of the robot in the robot's operating space and a desired acceleration of the robot's center of mass in the operating space, the second desired task being used to guide the robot to move on the support surface, and during the movement of the robot, the mechanical foot being used to assist the mechanical wheel to support the robot standing on the support surface; Obtaining a second expected torque set for the second expected task according to the second expected task, and a whole-body dynamics model and a whole-body kinematics model of the robot, wherein the second expected torque set includes a second expected torque for controlling each of the joints; According to the first desired torque set and the second desired torque set, the robot is controlled to move under the guidance of the first desired task and the second desired task.
14. The method according to claim 13, wherein The controlling the robot to move under the guidance of the first expected task and the second expected task according to the first expected torque set and the second expected torque set includes: Based on the first desired moment set and the second desired moment set, performing weighted summation to obtain a hybrid desired moment set; According to the hybrid desired torque set, the robot is controlled to move under the guidance of the first desired task and the second desired task.
15. The method according to claim 13 or 14, wherein: The second expected task includes an expected acceleration of each of the mechanical feet in the operating space; the method further includes: For any control moment corresponding to the robot, obtain a reference position, a reference velocity, and a reference acceleration of the mechanical foot at the control moment according to a reference movement trajectory of the mechanical foot, wherein the reference movement trajectory is obtained according to a movement trajectory of the support surface relative to the mechanical foot; The PD feedback controller is used to calculate the expected acceleration of the foot at the control moment based on the reference position, reference speed and reference acceleration of the mechanical foot at the control moment, as well as the actual position and actual speed of the mechanical foot at the control moment.
16. The method according to any one of claims 13 to 15, wherein: The second expected task further includes an expected angular momentum acceleration of the center of mass of the robot in the operating space, and the expected angular momentum acceleration is used to guide the body to rotate; the method further includes: For any control moment corresponding to the robot, obtaining a reference angular momentum, a reference angular momentum velocity, and a reference angular momentum acceleration of the center of mass at the control moment according to a reference angular momentum change trajectory of the center of mass, wherein the reference angular momentum change trajectory is obtained according to the angular momentum planning of the support surface with respect to the center of mass; The PD feedback controller is used to calculate the expected acceleration of the angular momentum at the control moment based on the reference angular momentum, reference angular momentum velocity and reference angular momentum acceleration of the center of mass at the control moment, as well as the actual angular momentum and actual angular momentum velocity of the center of mass at the control moment.
17. The method according to any one of claims 1 to 16, wherein: The mechanical legs corresponding to the first mechanical leg group move synchronously, the mechanical legs corresponding to the second mechanical leg group move synchronously, the mechanical feet corresponding to the first mechanical leg group move synchronously, and the mechanical feet corresponding to the second mechanical leg group move synchronously.
18. A control device for a robot, the robot comprising a body, a first mechanical leg group and a second mechanical leg group connected to the body via hip joints, at least one of the first and second mechanical leg groups comprising at least two mechanical legs, at least one of the legs having a foot remote from the hip joint provided with a mechanical wheel and a mechanical foot, the rotation axis of the hip joint corresponding to the first and second mechanical leg groups being located in the same vertical plane; the device comprising: an expected task acquisition module, configured to acquire a first expected task of the robot on a support surface, wherein the first expected task includes an expected position of the robot in the robot's operating space, and the first expected task is used to guide the robot to move on the support surface, and during the movement of the robot, the mechanical foot is used to assist the mechanical wheel to support the robot to stand on the support surface; an expected angle acquisition module, configured to acquire an expected angle set for the first expected task, wherein the expected angle set includes expected angles of joints for controlling various parts of the robot; A robot control module is used to control the robot to move under the guidance of the first expected task according to the expected angle set.
19. A computer device comprising a processor and a memory, wherein a computer program is stored in the memory, and the computer program is loaded and executed by the processor to implement the robot control method according to any one of claims 1 to 17.
20. A computer-readable storage medium, wherein a computer program is stored in the computer-readable storage medium, wherein the computer program is loaded and executed by a processor to implement the robot control method according to any one of claims 1 to 17.
21. A computer program product, comprising a computer program, wherein the computer program is stored in a computer-readable storage medium, and a processor reads and executes the computer program from the computer-readable storage medium to implement the robot control method according to any one of claims 1 to 17.
Citation Information
Patent Citations
Bionic mechanical leg and bionic robot
CN112937717A
Walking control method, device and equipment of biped robot and storage medium
CN113172635A
Method and device for controlling foot type robot and foot type robot
CN116985113A
Robot control method, device and equipment and storage medium
CN119002325A
Artificial intelligence robot
CN206780395U
Cited By
Control method and apparatus for robot, device, and storage medium
US20250326451A1