Robot control method, device and equipment and storage medium
By setting coaxial mechanical wheels and mechanical feet in the mechanical leg group of the quadruped wheel-legged robot, and using the mechanical feet to assist the mechanical wheels in standing, the problem of unstable standing of the quadruped wheel-legged robot is solved, and more stable movement is achieved.
Patent Information
- Application Number
- CN202410327875.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-20
- Publication Date
- 2025-09-26
AI Technical Summary
Existing quadruped wheel-legged robots rely on the mechanical feet to stand in contact with the support surface, which is not stable enough and leads to unstable movement.
By setting coaxial mechanical wheels and mechanical feet in the robot's mechanical leg group, using the mechanical feet to assist the mechanical wheels in standing, and through hip joint rotation and mechanical leg length adjustment, the functional interchange of the mechanical leg group is achieved, ensuring that the robot can stand stably with no less than 2 contact points.
The robot's motion stability is improved, the risk of falling is reduced, and its adaptability in different environments is enhanced.
Smart Images

Figure CN120704186A_ABST
Abstract
Description
Technical Field
[0001] 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
[0002] With the development of robot control technology, some organizations and research institutions have successively launched wheel-legged robots with wheels as feet. These wheel-legged robots can not only slide quickly on their wheels, but also walk, climb stairs, and overcome obstacles with their wheels.
[0003] Taking a four-legged wheeled robot as an example, the relevant technology can achieve tasks such as walking on a support surface, climbing stairs, and crossing obstacles by controlling the two sets of mechanical legs of the four-legged wheeled robot to swing alternately. However, the relevant technology only relies on the contact between the mechanical feet and the support surface, that is, only two contact points between a set of mechanical legs and the support surface are used to keep the four-legged wheeled robot standing. This can easily lead to the robot's standing being unstable, and then the robot's movement being unstable. Summary of the Invention
[0004] The present invention provides a method, device, equipment and storage medium for controlling a robot. The technical solution includes the following contents.
[0005] According to one aspect of an embodiment of the present application, a method for controlling 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, and a foot of at least one of the mechanical legs away from the hip joint is provided with a pair of coaxial mechanical wheels and a mechanical foot, 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, and during 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; the method includes:
[0006] In each swing cycle, the robot stands on the support surface through the mechanical wheels and mechanical feet in the supporting mechanical leg group, rotates the hip joints corresponding to the swinging mechanical leg group to make the swinging mechanical leg group swing in the first direction, and adjusts the lengths of the mechanical legs in the swinging mechanical leg group and the rotation angles of the mechanical feet in the swinging mechanical leg group, so that the robot enters the second state from the first state, wherein, in the first state and the second state, the mechanical wheels and mechanical feet on each foot of the robot are in contact with the support surface, in the first state, the supporting mechanical leg group is located in front of the swinging mechanical leg group under the first direction constraint, and the body of the robot is located in the corresponding area above the supporting mechanical leg group, and in the second state, the supporting mechanical leg group is located behind the swinging mechanical leg group under the first direction constraint;
[0007] Controlling each mechanical leg in the supporting mechanical leg group to extend, and controlling each mechanical leg in the swinging mechanical leg group to shorten, so that the robot enters a third state from the second state, wherein in the third state, the body of the robot is located in a corresponding area above the swinging mechanical leg group;
[0008] Interchanging the functions of the supporting mechanical leg group and the swinging mechanical leg group, so that the robot enters the first state from the third state;
[0009] The robot in the swing period moves toward the first direction on the supporting surface.
[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, and a foot of at least one of the mechanical legs away from the hip joint is provided with a pair of coaxial mechanical wheels and a mechanical foot, 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, and during 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; the device includes:
[0011] a second state switching module, configured to, in each swing cycle, stand on a support surface via the mechanical wheels and mechanical feet in the supporting mechanical leg group, rotate the hip joints corresponding to the swinging mechanical leg group so that the swinging mechanical leg group swings in a first direction, and adjust the lengths of the mechanical legs in the swinging mechanical leg group and the rotation angles of the mechanical feet in the swinging mechanical leg group, so that the robot enters a second state from a first state, wherein in the first state and the second state, the mechanical wheels and mechanical feet on each foot of the robot are in contact with the support surface, in the first state, the supporting mechanical leg group is located in front of the swinging mechanical leg group under the first direction constraint, and the body of the robot is located in a corresponding area above the supporting mechanical leg group, and in the second state, the supporting mechanical leg group is located behind the swinging mechanical leg group under the first direction constraint;
[0012] a third state switching module, configured to control the extension of each mechanical leg in the supporting mechanical leg group and the shortening of each mechanical leg in the swinging mechanical leg group, so that the robot enters a third state from the second state, wherein in the third state, the body of the robot is located in a corresponding area above the swinging mechanical leg group;
[0013] The first state switching module is used to interchange the functions of the supporting mechanical leg group and the swinging mechanical leg group, so that the robot enters the first state from the third state; wherein, the robot in the swinging cycle moves in the first direction on the supporting surface.
[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 by the embodiments of the present application may have 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 a pair of coaxial mechanical wheels and mechanical feet on the feet, in the process of controlling the movement of the robot by alternatingly swinging the first mechanical leg group and the second mechanical leg group, the mechanical feet of the feet assist the mechanical wheels to enable the robot to remain standing on the support surface, so that the feet can maintain the robot standing with no less than two contact points (such as the contact points between the mechanical feet and the mechanical wheels and the support surface respectively), which can enable the robot to stand more stably on the support surface and not easily fall, thereby effectively improving the robot's movement stability. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0021] Figure 1 This is a schematic diagram of an implementation environment for a solution provided by an embodiment of the present application;
[0022] Figure 2 is a schematic diagram of a quadrupedal, foot-wheel hybrid robot provided by one embodiment of the present application;
[0023] Figure 3 This is a schematic diagram of a foot-wheel hybrid robot climbing stairs provided by an embodiment of the present application;
[0024] Figure 4 This is a schematic diagram of a wheeled and footed hybrid robot crossing a road shoulder provided by one embodiment of the present application;
[0025] Figure 5 This is a schematic diagram of a wheeled and footed hybrid robot crossing a pit provided by one embodiment of the present application;
[0026] Figure 6 is a schematic diagram of a robot control method provided by one embodiment of the present application;
[0027] Figure 7is a schematic diagram of a method for controlling a robot within a swing cycle provided by one embodiment of the present application;
[0028] Figure 8 is a schematic diagram of a method for controlling a robot within a swing cycle provided by another embodiment of the present application;
[0029] Figure 9 is a schematic diagram of a method for controlling a robot in a pre-motion period provided by one embodiment of the present application;
[0030] Figure 10 1 is a schematic diagram of a method for controlling a robot in a final motion cycle provided by an embodiment of the present application;
[0031] Figure 11 is a schematic diagram of a control method for a quadrupedal, foot-wheel hybrid robot provided by one embodiment of the present application;
[0032] Figure 12 is a schematic diagram of a robot control method provided by another embodiment of the present application;
[0033] Figure 13 is a schematic diagram of a desired operation space task provided by one embodiment of the present application;
[0034] Figure 14 is a schematic diagram of an inverted pendulum model of a robot provided by one embodiment of the present application;
[0035] Figure 15 This is a simplified model diagram of a quadrupedal, foot-wheel hybrid robot provided by one embodiment of the present application;
[0036] Figure 16 This 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;
[0037] Figure 17 is a block diagram of a control device for a robot provided by one embodiment of the present application;
[0038] Figure 18 is a block diagram of a robot control device provided by another embodiment of the present application;
[0039] Figure 19 This is a simplified structural block diagram of a computer device provided by one embodiment of the present application. DETAILED DESCRIPTION
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] Optionally, the computer device can be a PC (Personal Computer) device such as a desktop computer or a laptop computer for controlling the robot; or it can be a server for controlling the robot. The server can be an independent physical server, a server cluster or a distributed system composed of multiple physical servers, or a cloud server that provides cloud computing services. The computer device and the robot can be connected through physical lines, networks, etc. For example, refer to Figure 1 The computer device 101 can determine the expected operation space task of the robot 103 according to the reference movement trajectory of the robot 103 (the expected operation space task may include the expected accelerations of various parts of the robot 103 in the operation space of the robot 103), and then calculate the expected joint torque set corresponding to the robot 103 based on the expected operation space task, and control the movement of the robot 103 (such as various joint motors) through the network 102 according to the expected joint torque set. For example, the computer device 101 can control the first mechanical leg group 104 and the second mechanical leg group 105 of the robot 103 to swing alternately according to the expected joint torque set corresponding to the expected operation space task of the robot 103, so that the robot 103 moves on the support surface according to the reference movement trajectory corresponding to the expected operation space task. The reference movement trajectory can be planned based on the movement trajectory of the robot on the support surface.
[0047] Optionally, the computer device may also be a robot itself, that is, the execution subject of each step in the technical solution provided in the embodiment of the present application is a robot. Figure 1 , the computer device 101 can send the robot 103's expected operating space task (or reference movement trajectory) to the robot 103 via the network 102. The robot 103 calculates the corresponding expected joint torque set based on the expected operating space task (or reference movement trajectory) and then moves according to the expected joint torque set. Optionally, the robot 103 can also automatically plan the reference movement trajectory based on the real environment and calculate the expected operating space task corresponding to the reference movement trajectory to perform different tasks in the real environment. This embodiment of the application is not limited to this.
[0048] In one example, the robot in the embodiment of the present application may refer to a foot-wheel hybrid robot, which refers to a leg-type robot (i.e., a robot that moves based on mechanical legs) with a pair of mechanical wheels and mechanical feet on its feet. The foot-wheel hybrid robot can perform tasks such as sliding, gait walking, climbing stairs, and crossing obstacles through the mechanical wheels alone, or it can perform tasks such as gait walking, climbing stairs, and crossing obstacles through the mechanical feet assisted by the mechanical wheels. The embodiment of the present application does not limit this.
[0049] For example, 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, at least one of the first mechanical leg group and the second mechanical leg group includes at least two mechanical legs, such as the first mechanical leg group includes at least two mechanical legs, the second mechanical leg group may also include at least two mechanical legs, the first mechanical leg group has at least two mechanical legs respectively located on both sides of the robot's central axis (i.e., sagittal plane), the second mechanical leg group has at least two mechanical legs respectively located on both sides of the robot's central axis, the robot's mechanical legs 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. Optionally, in the case where 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; in the case where 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 embodiment of the present application is not limited to this.
[0050] Alternatively, the robot may be a quadrupedal-wheeled hybrid robot, i.e., the robot includes two outer mechanical legs and two inner mechanical legs; or a tripodal-wheeled hybrid robot, i.e., the robot includes two outer mechanical legs and one inner mechanical leg, which is not limited in the present embodiment. The robot may stand on a support surface using the outer mechanical legs or the inner mechanical legs, may glide on the support surface using the wheels on the outer mechanical legs or the wheels on the inner mechanical legs, or may move (i.e., walk) on the support surface by controlling the outer mechanical leg group and the inner mechanical leg group to swing alternately.
[0051] In an embodiment of the present application, for the aforementioned robot, at least one mechanical leg has a foot distal to the hip joint and is provided with a pair of coaxial mechanical wheels and a mechanical foot. That is, at least one foot has a rotation axis of its corresponding mechanical wheel and a rotation axis of its corresponding mechanical foot coaxially aligned. For example, all of the robot's mechanical legs are provided with a pair of coaxial mechanical wheels and a mechanical foot; alternatively, only some of the robot's mechanical legs are provided with a pair of coaxial mechanical wheels and a mechanical foot.
[0052] 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.
[0053] Each mechanical wheel can be driven independently, and each mechanical foot can rotate independently. The mechanical foot can be set on the left side of the mechanical wheel, or on the right side of the mechanical wheel, or the mechanical wheel can be set in a hollowed-out area at the root of the mechanical foot in a hollowed-out style, which is not limited in this embodiment of the application.
[0054] 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 length 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.
[0055] The mechanical foot can be used to assist the mechanical wheels to enable the robot to stand more stably on the support surface. Optionally, when the mechanical foot is not needed, the mechanical foot can be rotated to coincide with the mechanical leg, or can be rotated to be perpendicular to the mechanical leg, or can be rotated to any angle that does not affect the contact between the mechanical foot and the support surface, which is not limited in the embodiments of the present application. When the mechanical foot is needed, the mechanical foot can be rotated to contact the support surface to jointly support the robot standing on the support surface with the mechanical wheel.
[0056] 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 mechanical leg corresponding to 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; 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; 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. The embodiments of the present application are not limited to this.
[0057] 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.
[0058] Optionally, the fuselage is provided with a corresponding pitch joint, which controls the rotation of the fuselage. The hip joint controls the rotation of the mechanical legs, and each mechanical leg can be independently extended and retracted. In one example, the mechanical feet corresponding to the first mechanical leg group move synchronously with the mechanical feet corresponding to the second mechanical leg group; the mechanical legs corresponding to the first mechanical leg group move synchronously with the mechanical legs corresponding to the second mechanical leg group; and the mechanical wheels corresponding to the first mechanical leg group move synchronously with the mechanical wheels corresponding to the second mechanical leg group.
[0059] For example, reference Figure 2 , which is a schematic structural diagram of a quadruped-wheeled hybrid robot provided by one embodiment of the present application. The quadruped-wheeled hybrid robot 200 may include: a body, hip joints, and mechanical legs.
[0060] The quadrupedal hybrid robot 200 has four mechanical legs: two outer mechanical legs 201 (i.e., the first mechanical leg group) and two inner mechanical legs 202 (i.e., the second mechanical leg group). The two inner mechanical legs 202 are located between the two outer mechanical legs 201. All four mechanical legs can move along the Figure 2 The four mechanical legs can be symmetrically distributed on both sides of the sagittal plane 206.
[0061] 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 on the outside of the mechanical wheels 203. Each mechanical wheel 203 can be driven independently, and each mechanical foot 204 can also be driven independently.
[0062] 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.
[0063] Alternatively, 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.
[0064] 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 204 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.
[0065] 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.
[0066] 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.
[0067] The body of the quadrupedal hybrid robot 200 may include a waist 207 , a torso 208 , a head 209 and upper limbs 210 .
[0068] The corresponding hip joints 211 of the quadruped-wheel hybrid robot 200 are 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 corresponding pitch joint can be provided), and a roll rotation axis that enables the torso 208 to swing (a corresponding roll joint can be provided). The roll joint is designed in series with the pitch joint and is located at the upper end of the pitch joint, connected to the torso 208. The rotating fuselage in the embodiments of the present application may refer to the process of rotating the pitch joint about the pitch rotation axis to rotate the torso 208.
[0069] The other end of the torso 208 is connected to the head 209 and the upper limb 210, which can be a multi-degree-of-freedom upper limb. In some embodiments, the upper limb 210 is equipped with an end effector, such as a robotic gripper, a suction cup, etc. The head 209 can be equipped with a data acquisition device to perceive the real environment, such as an image acquisition device, a video shooting device, an IMU (Inertial Measurement Unit), etc. The IMU can be placed at the geometric center of the torso 208, the center point of the hip joint, etc., and can be used to measure the actual acceleration, actual attitude angular velocity, actual Euler angle, etc. of the torso 208.
[0070] In some feasible examples, a workstation may also be deployed in the quadruped-wheel hybrid robot 200. The workstation may be used to control the movement of various parts of the robot. The workstation may be implemented as a NUC (Next Unit of Computing) small computer.
[0071] In the technical solution provided in the embodiment of the present application, the mechanical wheels, mechanical feet, mechanical legs, hip joints, pitch joints and body (including IMU) of the quadruped-wheel hybrid robot 200 are necessary hardware for the control algorithm, and the rest are non-essential hardware.
[0072] The robot control method provided in the embodiments of this application is applicable to a variety of scenarios, such as robot gait walking, robot climbing stairs, robot crossing thresholds, robot crossing curbs, robot crossing potholes, and any other obstacle-crossing scenario. This helps improve the robot's adaptability to the environment and its versatility. In addition, the embodiments of this application use mechanical feet to assist mechanical wheels in maintaining the robot's standing position, thereby improving the robot's motion stability.
[0073] 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.
[0074] Compared with the quadruped wheel-legged robot, the quadruped foot-wheel hybrid robot has a more stable structure. Based on the mechanical feet, the quadruped foot-wheel hybrid robot has a stronger ability to resist external impact disturbances. It can bear large loads, pass through narrow spaces, and perform tasks on objects of different heights. This makes the quadruped foot-wheel hybrid robot have a strong adaptability to the environment.
[0075] In some embodiments, reference Figure 3 When the quadruped-wheeled hybrid robot 301 needs to climb stairs, it can first plan a reference movement trajectory corresponding to the quadruped-wheeled hybrid robot 301 according to the stairs. The reference movement trajectory can guide the quadruped-wheeled hybrid robot 301 to complete the stair climbing task, and then calculate the expected operation space task corresponding to the reference movement trajectory, and then calculate the expected joint torque set corresponding to the expected operation space task. Finally, according to the expected joint torque set, 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) are controlled to swing alternately to complete the stair climbing. For example, the outer mechanical leg group 302 is used as the supporting mechanical leg group and the inner mechanical leg group 303 is used as the swinging mechanical leg group, so that the quadrupedal and wheeled hybrid robot 301 climbs up the first step. Then, the inner mechanical leg group 303 is used as the supporting mechanical leg group and the outer mechanical leg group 302 is used as the swinging mechanical leg group, so that the quadrupedal and wheeled hybrid robot 301 climbs up the second step. The outer mechanical leg group 302 and the inner mechanical leg group 303 swing alternately in sequence to complete the stair climbing task.
[0076] During this process, the mechanical feet can also be controlled to assist the mechanical wheels so that the quadrupedal-wheeled hybrid robot 301 can maintain a stable standing position, and the body can be rotated to coordinate with the alternating swinging of the mechanical leg group so that the quadrupedal-wheeled hybrid robot 301 can climb stairs.
[0077] In some embodiments, reference Figure 4When the quadruped-wheeled hybrid robot 401 needs to cross the shoulder, it can first plan a reference movement trajectory corresponding to the quadruped-wheeled hybrid robot 401 based on the shoulder. The reference movement trajectory can guide the quadruped-wheeled hybrid robot 401 to complete the shoulder crossing task, and then calculate the expected operation space task corresponding to the reference movement trajectory. Then, the expected joint torque set corresponding to the expected operation space task is calculated. Finally, according to the expected joint torque set, the outer mechanical leg group 402 and the inner mechanical leg group 403 are controlled to swing alternately to complete the shoulder crossing. For example, the inner mechanical leg group 403 is first used as the supporting mechanical leg group and the outer mechanical leg group 402 is used as the swinging mechanical leg group, 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 and the inner mechanical leg group 403 is used as the swinging mechanical leg group, so that the quadruped-wheeled hybrid robot 401 completely crosses the shoulder.
[0078] During this process, the mechanical feet can also be controlled to assist the mechanical wheels so that the quadrupedal-wheeled hybrid robot 401 can maintain a stable standing position, and the body can be rotated to coordinate with the alternating swinging of the mechanical leg group so that the quadrupedal-wheeled hybrid robot 401 can cross the shoulder of the road.
[0079] In some embodiments, reference Figure 5 When the quadruped-wheeled hybrid robot 501 needs to cross a pit, it can first plan a reference movement trajectory corresponding to the quadruped-wheeled hybrid robot 501 based on the pit. The reference movement trajectory can guide the quadruped-wheeled hybrid robot 501 to complete the pit-crossing task, and then calculate the expected operation space task corresponding to the reference movement trajectory. Then, the expected joint torque set corresponding to the expected operation space task is calculated. Finally, according to the expected joint torque set, the outer mechanical leg group 502 and the inner mechanical leg group 503 are controlled to swing alternately to complete the crossing of the pit. For example, the inner mechanical leg group 503 is first used as the supporting mechanical leg group and the outer mechanical leg group 502 is used as the swinging mechanical leg group, 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 and the inner mechanical leg group 503 is used as the swinging mechanical leg group, so that the quadruped-wheeled hybrid robot 501 completely crosses the pit.
[0080] During this process, the mechanical feet can also be controlled to assist the mechanical wheels so that the quadrupedal-wheeled hybrid robot 501 can maintain a stable standing position, and the body can be rotated to coordinate with the alternating swinging of the mechanical leg group so that the quadrupedal-wheeled hybrid robot 501 can cross the shoulder of the road.
[0081] 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.
[0082] Please refer to Figure 6, which shows a flow chart of a robot control method provided by an embodiment of the present application. In the embodiment of the present application, the robot control method is described by taking the robot as an example of the execution subject of each step. The method may include the following steps (601-603):
[0083] Step 601, in each swing cycle, the robot stands on the support surface by supporting the mechanical wheels and mechanical feet in the mechanical leg group, rotates the hip joints corresponding to the swinging mechanical leg group to make the swinging mechanical leg group swing in the first direction, and adjusts the lengths of the mechanical legs in the swinging mechanical leg group and the rotation angles of the mechanical feet in the swinging mechanical leg group, so that the robot enters the second state from the first state, wherein in the first state and the second state, the mechanical wheels and mechanical feet on each foot of the robot are in contact with the support surface, in the first state, the supporting mechanical leg group is located in front of the swinging mechanical leg group under the first direction constraint, and the body of the robot is located in the corresponding area above the supporting mechanical leg group, and in the second state, the supporting mechanical leg group is located behind the swinging mechanical leg group under the first direction constraint.
[0084] During the robot's movement, the mechanical leg group used for swinging is called the swinging mechanical leg group, and the mechanical leg group used for standing is called the supporting mechanical leg group. The mechanical legs in the swinging mechanical leg group can be referred to as the swinging mechanical legs, and the mechanical legs in the supporting mechanical leg group can be referred to as the supporting mechanical legs. This robot is the same as that described in the above embodiment. For matters not described in the embodiments of this application, please refer to the above embodiment and will not be repeated here.
[0085] For example, when the robot stands on the support surface by the first mechanical leg group and controls the second mechanical leg group of the robot to swing, the first mechanical leg group can be called the supporting mechanical leg group, and the second mechanical leg group can be called the swinging mechanical leg group; when the robot stands on the support surface by the second mechanical leg group and controls the first mechanical leg group of the robot to swing, the second mechanical leg group can be called the supporting mechanical leg group, and the first mechanical leg group can be called the swinging mechanical leg group; when the robot stands on the support surface by the first mechanical leg group and the second mechanical leg group at the same time, both the first mechanical leg group and the second mechanical leg group can be called the supporting mechanical leg group, and the embodiments of the present application do not limit this.
[0086] In scenarios such as robot walking, climbing stairs, and crossing obstacles, the robot's movement process can be realized as the process of alternating swings of the first mechanical leg group and the second mechanical leg group. Figure 7Taking gait 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, and then uses the second mechanical leg group 703 as support to swing the first mechanical leg group 702 to complete the second step of movement. By alternately swinging the first mechanical leg group 702 and the second mechanical leg group 703, the gait walking can be completed.
[0087] For example, refer 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. Then, it 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 the climbing of the stairs.
[0088] Optionally, the embodiment of the present application may divide the movement process of the robot into multiple swing cycles, each swing cycle corresponds to a complete swing process of the swinging mechanical leg group, and the multiple swing cycles may correspond to the complete alternating swing processes corresponding to the first mechanical leg group and the second mechanical leg group. In the case where the robot's mechanical leg group is divided into a supporting mechanical leg group and a swinging mechanical leg group according to function (such as support and standing), the movement process of the robot can be understood as a repeated swing process of the swinging mechanical leg group, that is, within each swing cycle, the movement method of the robot is the same. The embodiment of the present application takes the movement of the robot within a certain swing cycle as an example to illustrate. Optionally, the swing cycle can be implemented as a time period for the swinging mechanical leg group to complete a complete swing process, and each swing cycle is connected end to end.
[0089] For example, Figure 7 As shown, for a complete swing process of the second robotic leg group 703 (or the first robotic leg group 702), a corresponding swing cycle can be set. Figure 8 As shown, for a complete swing process of the second robotic leg group 803 (or the first robotic leg group 802 ), a corresponding swing cycle can be set.
[0090] Optionally, the robot in the swing cycle moves in the first direction on the support surface, that is, after one swing cycle, the robot is displaced in the first direction. 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, and crossing obstacles, 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.
[0091] In one example, each swing cycle can be divided into three stages: the first stage: the robot changes from the first state to the second state; the second stage: the robot changes from the second state to the third state; the third stage: the robot changes from the third state to the first state.
[0092] This first state refers to the robot's initial state within a swing cycle, not its actual initial state. Each swing cycle begins with the first state, meaning the robot must return to the first state at the end of each swing cycle. Optionally, if the robot's actual initial state is not the first state, the robot must be adjusted to the first state to provide a basis for periodic motion.
[0093] The second state is the swinging dynamics of the robot within the swinging cycle, that is, the state after the swinging mechanical leg group completes the displacement in the first direction. For example, after the swinging mechanical leg group moves from the position corresponding to the first state to the position corresponding to the second state, it stops moving.
[0094] The third state is the adjustment state of the robot within the swing cycle, that is, the contact point between the robot and the contact surface no longer changes position, and only the robot's posture is adjusted. The robot in each state will be described below.
[0095] In an embodiment of the present application, the robot in the first state stands on the support surface with the mechanical wheels and mechanical feet on each foot (such as the feet of each mechanical leg used for standing), that is, each mechanical leg contacts the support surface through its corresponding pair of mechanical wheels and mechanical feet, so that each foot supports the robot to stand through at least two contact points. For example, when the toe of the mechanical foot contacts 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 contacts 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. This enables the robot to stand more stably on the support surface and is not prone to falling, thereby effectively improving the robot's movement stability.
[0096] Among them, the auxiliary surface is used to contact the support surface to assist the mechanical wheel so that the robot can stand. The auxiliary surface can be a plane, which can be set at the bottom of the toe so that it fits with the support surface (that is, parallel and in contact) when in contact with the support surface. The embodiment of the present application does not limit the size and style of the auxiliary surface, and it can be set and adjusted according to actual usage requirements.
[0097] In the first state, the robot can be controlled to position its body in the area corresponding to the upper portion of the supporting leg assembly. For example, the body can be controlled to be directly above the supporting leg assembly (i.e., the body and the supporting leg assembly are on the same straight line), or to the upper left of the supporting leg assembly, or to the upper right of the supporting leg assembly. This is not limited in this embodiment of the present application. The body can include a waist, torso, head, and upper limbs. During the movement of the robot, the waist, torso, head, and upper limbs can be considered as a whole.
[0098] In the first state of the robot, the supporting mechanical leg group is controlled to be located in front of the swinging mechanical leg group under the first direction constraint. This is beneficial for keeping the robot standing by the supporting mechanical leg group and moving the robot by the swinging mechanical leg group during the subsequent movement, making it less likely for the robot to fall.
[0099] For example, reference Figure 7 In the first and fifth pictures indicated by the middle arrow, in the first state, the robot 701 stands on the ground with the mechanical wheels and mechanical feet on each foot, the body of the robot 701 is located directly above the supporting mechanical leg group (i.e., the first mechanical leg group 702 to be used for standing), and the supporting mechanical leg group of the robot 701 is located in front of the swinging mechanical leg group (i.e., the second mechanical leg group 703 to be used for swinging) constrained in the first direction (e.g., horizontally to the right).
[0100] For example, refer to Figure 8 In the first and seventh pictures indicated by the middle arrow, in the first state, the robot 801 stands on the stairs with the mechanical wheels and mechanical feet on each foot, wherein the first mechanical leg group 802 is located on the first step, and the second mechanical leg group 803 is located on the ground, so that the robot 801 stands stably, and the body of the robot 801 is located directly above the supporting mechanical leg group (i.e., the first mechanical leg group 802 to be used for standing), and the supporting mechanical leg group of the robot 801 is located in front of the swinging mechanical leg group (i.e., the second mechanical leg group 803 to be used for swinging) under the constraint in the first direction (such as horizontally to the right).
[0101] In the embodiment of the present application, the robot in the second state also stands on the support surface with the mechanical wheels and mechanical feet on each foot (hereinafter referred to as the full-leg standing state), that is, within a swing cycle, the full-leg standing state that the robot enters for the first time after the first state can be determined as the second state. Different from the first state, the robot in the second state controls the supporting mechanical leg group to be located behind the swinging mechanical leg group under the first direction constraint, so as to facilitate the alternating swinging of the first mechanical leg group and the second mechanical leg group. The body of the robot in the second state has not yet moved to the area corresponding to the third state.
[0102] For example, reference Figure 7 In the fourth picture indicated by the middle arrow, in the second state, the robot 701 also stands on the ground with the mechanical wheels and mechanical feet on each foot. The supporting mechanical leg group (i.e., the first mechanical leg group 702) of the robot 701 is located behind the swinging mechanical leg group (i.e., the second mechanical leg group 703) constrained in the first direction (such as horizontally to the right), and the body of the robot 701 has not yet moved directly above the supporting mechanical leg group.
[0103] For example, refer to Figure 8 In the sixth picture indicated by the middle arrow, in the second state, the robot 801 also stands on the stairs with the mechanical wheels and mechanical feet on each foot, wherein the first mechanical leg group 802 is located on the first step, and the second mechanical leg group 803 is located on the second step, so that the robot 801 stands stably. The supporting mechanical leg group (i.e., the first mechanical leg group 802) of the robot 801 is located behind the swinging mechanical leg group (i.e., the second mechanical leg group 803) constrained in the first direction (such as horizontally to the right), and the body of the robot 801 has not yet moved directly above the supporting mechanical leg group.
[0104] In one example, during the transition from the first state to the second state, the robot can consistently control the mechanical wheels and mechanical feet in the supporting mechanical leg group to maintain contact with the supporting surface, so that the robot can stand stably on the supporting surface. Alternatively, during this transition, the robot may not rotate or extend the mechanical legs in the supporting mechanical leg group.
[0105] The robot can synchronously control the hip joints corresponding to the swinging mechanical leg group to rotate around their respective rotation axes, so that the mechanical legs in the swinging mechanical leg group swing synchronously in a first direction. The rotation direction of the hip joints is related to the first direction. For example, when the first direction is horizontally to the right, the hip joints corresponding to the swinging mechanical leg group can be controlled to rotate counterclockwise around their respective rotation axes; when the first direction is horizontally to the left, the hip joints corresponding to the swinging mechanical leg group can be controlled to rotate clockwise around their respective rotation axes. This embodiment of the application is not limited to this.
[0106] Optionally, during the swinging process of the swinging mechanical leg group, the swinging mechanical leg can be synchronously controlled to shorten to prevent the swinging mechanical leg from colliding with the support surface. After the swinging mechanical leg passes the support mechanical leg, the swinging mechanical leg can be synchronously controlled to extend to allow the mechanical wheel and mechanical foot on the swinging mechanical leg to contact the support surface. The timing of shortening and extending the swinging mechanical leg can be set and adjusted according to actual usage requirements and is not limited in this embodiment of the application.
[0107] Optionally, while rotating and swinging the mechanical leg assembly, the robot can adaptively adjust the rotation angle of the mechanical foot on the swinging mechanical leg, and this rotation angle is used to indicate the posture of the mechanical foot. For example, the mechanical foot is provided with a foot joint to control the rotation of the mechanical foot, and the rotation angle of the foot joint is the rotation angle of the mechanical foot. For example, this rotation angle can be used to indicate the change in the joint angle of the foot joint relative to the initial joint angle (e.g., 0).
[0108] In one example, a method for adjusting the rotation angle of the robotic foot may include at least one of the following:
[0109] 1. In the process of controlling the swing of the robotic leg, the auxiliary surface of the mechanical foot on the robotic leg is controlled to be parallel to the supporting surface. The auxiliary surface is used to contact the supporting surface to assist the mechanical wheel so that the robot can stand.
[0110] Optionally, the robot can dynamically adjust the rotation angle of the mechanical foot on the swinging mechanical leg so that the auxiliary surface corresponding to the swinging mechanical leg is always parallel to the supporting surface. In this way, when the mechanical foot contacts the supporting surface, the auxiliary surface can be parallel to and in contact with the supporting surface, which is conducive to maintaining the stable standing of the robot and facilitating the smooth conversion between the supporting mechanical leg and the swinging mechanical leg, so that the swinging mechanical leg can quickly replace the supporting mechanical leg to keep the robot standing stably, thereby avoiding the problem of unstable standing of the robot when converting between the supporting mechanical leg and the swinging mechanical leg, and further improving the robot's movement stability.
[0111] 2. In the process of controlling the swing of the robotic leg, the auxiliary surface of the mechanical foot on the robotic leg is controlled to be parallel to the support surface at a first control moment. The first control moment refers to the moment when the robotic foot is planned to contact the support surface.
[0112] Optionally, the robot only needs to complete the adjustment of the rotation angle of the mechanical foot at the first control moment, and during most of the time before the first control moment, the rotation angle of the mechanical foot does not need to be adjusted. This helps reduce the workload of controlling the rotation angle of the mechanical foot and the control complexity of the mechanical foot.
[0113] For example, when the robotic foot is about to contact the contact surface, the rotation angle of the robotic foot is adjusted so that the auxiliary surface of the robotic foot is parallel to the support surface at the first control moment. The timing of adjusting the rotation angle can be set and adjusted according to actual usage needs and is not limited in this embodiment of the application.
[0114] 3. In the process of controlling the swing of the mechanical leg, the toe of the mechanical foot on the mechanical leg is controlled to contact the support surface at the first control moment.
[0115] That is, the robot controls the toes and the mechanical wheels on the swinging mechanical legs to simultaneously contact the support surface at the first control moment. The robot only needs to complete the adjustment of the rotation angle of the mechanical feet at the first control moment.
[0116] 4. After the mechanical wheels in the swinging mechanical leg group swing to contact the support surface, control the mechanical wheel feet in the swinging mechanical leg group to rotate to contact the support surface.
[0117] That is, the robot controls the mechanical wheel on the swinging mechanical leg to contact the support surface first, and then adjusts the rotation angle of the mechanical foot on the swinging mechanical leg so that the mechanical foot (such as the toe, auxiliary surface) on the swinging mechanical leg also contacts the support surface.
[0118] For example, at the first control moment, the robot completes controlling the mechanical wheel on the swinging mechanical leg to contact the support surface. After the first control moment, rotating the mechanical wheel on the swinging mechanical leg is sufficient to make the corresponding auxiliary surface parallel to and in contact with the support surface.
[0119] For example, reference Figure 7 In the first four pictures indicated by the middle arrow, the process of the robot 701 changing from the first state to the second state can be as follows: the robot 701 in the first state stands on the ground through the various mechanical wheels and various mechanical feet in the first mechanical leg group 702 (supporting mechanical leg group), and rotates the hip joint corresponding to the second mechanical leg group 703 counterclockwise to make the second mechanical leg group 703 swing to the right. During the swinging process of the second mechanical leg group 703, the various mechanical legs in the second mechanical leg group 703 are first controlled to shorten, and then the various mechanical legs in the second mechanical leg group 703 are controlled to extend, and the auxiliary surfaces of the various mechanical feet corresponding to the second mechanical leg group 703 are controlled to remain parallel to the ground. When the second mechanical leg group 703 contacts the ground, the robot 701 changes to the second state.
[0120] For example, refer to Figure 8 For all the pictures indicated by the middle arrow, the process of the robot 801 changing from the first state to the second state can be as follows: the robot 801 in the first state stands on the first step through the various mechanical wheels and various mechanical feet in the first mechanical leg group 802 (supporting mechanical leg group), and rotates the corresponding hip joints of the second mechanical leg group 803 counterclockwise to make the second mechanical leg group 803 swing to the right. During the swinging process of the second mechanical leg group 803, first control the various mechanical legs in the second mechanical leg group 803 to shorten, and then control the various mechanical legs in the second mechanical leg group 803 to extend. After the various mechanical wheels in the second mechanical leg group 803 contact the second step, rotate the various mechanical feet in the second mechanical leg group 803 clockwise so that the various contact surfaces corresponding to the second mechanical leg group 803 contact and are parallel to the second step, and the robot 801 changes to the second state.
[0121] In one example, the robot undergoes a pre-motion period before entering its first swing cycle. This motion period corresponds to the complete process of the robot transitioning from its initial state to its first state. Alternatively, the pre-motion period can be implemented as the time period corresponding to the complete transition from the initial state to the first state, with the end time of the pre-motion period corresponding to the start time of the first swing cycle.
[0122] Exemplarily, the control method of the robot in the pre-motion period may include the following:
[0123] 1. During the pre-motion cycle, control the rotation of the mechanical feet so that the robot enters the pre-motion state from the initial state. In the initial state, the robot stands on the support surface with its mechanical wheels. In the pre-motion state, the mechanical wheels and mechanical feet corresponding to the supporting mechanical leg group are in contact with the support surface.
[0124] The initial state may refer to the above-mentioned real initial state, and the embodiments of the present application do not limit the initial state of the robot. For example, when the initial state is a two-legged standing state, the robot can stand on the support surface by means of each mechanical wheel and each mechanical foot in the first mechanical leg group or the second mechanical leg group. Optionally, in the two-legged standing state, each mechanical leg of the robot can overlap in the vertical direction, the body can be kept vertical, and the body and each mechanical leg can be in the same straight line.
[0125] When the initial state is a four-legged standing state, the robot can stand on the support surface simultaneously through the mechanical wheels and mechanical feet in the first mechanical leg group and the second mechanical leg group, wherein the first mechanical leg group and the second mechanical leg group can overlap in the vertical direction or may not overlap in the vertical direction, and the embodiments of the present application do not limit this.
[0126] In some feasible examples, in the initial state, the robot stands on the support surface with mechanical wheels and mechanical feet. When the robot needs to slide, the mechanical feet are retracted. In this case, the initial state can be a two-legged mixed standing state, that is, on the basis of the two-legged standing state, the mechanical feet on the supporting mechanical legs are also in contact with the support surface. It can also be a four-legged mixed standing state (such as the first state and the second state mentioned above), that is, on the basis of the four-legged standing state, the mechanical feet on the supporting mechanical legs are also in contact with the support surface. The embodiments of the present application do not limit this.
[0127] Optionally, the above-mentioned pre-movement state may include at least one of the following: a two-legged mixed standing state and a four-legged mixed standing state.
[0128] For example, if the robot's initial state is a two-legged stance, the vertically upward mechanical foot of the supporting mechanical leg can be rotated until it contacts the supporting surface, and the robot enters a two-legged mixed stance state. For the mechanical leg not in contact with the supporting surface, the vertically upward mechanical foot (such as the auxiliary surface) can be rotated until it is parallel to the supporting surface, or the mechanical foot can remain unchanged.
[0129] When the initial state of the robot is a four-legged standing state, for each mechanical leg, the vertically upward mechanical foot can be rotated until it contacts the support surface, and the robot enters a four-legged mixed standing state.
[0130] 2. Adjust the supporting mechanical leg group, the swinging mechanical leg group and the body so that the robot enters the first state from the pre-motion state.
[0131] Optionally, when the pre-motion state is a two-legged mixed standing state, the robot stands on the support surface by supporting the mechanical wheels and mechanical feet in the mechanical leg group, rotating the hip joints corresponding to the swinging mechanical leg group so that the swinging mechanical leg group swings in the first direction, and adjusting the lengths of the mechanical legs in the swinging mechanical leg group and the rotation angles of the mechanical feet in the swinging mechanical leg group, so that the robot enters the second state from the initial state, then switches the robot from the second state to the third state, and finally switches the robot from the third state to the first state. The process of the robot switching from the second state to the third state, and the process of the robot switching from the third state to the first state, will be described in detail below and will not be repeated here.
[0132] When the pre-motion state is a four-legged mixed standing state, the robot can be adjusted from the four-legged mixed standing state to the two-legged mixed standing state, and then the robot can be adjusted from the two-legged mixed standing state to the first state, or the four-legged mixed standing state can be directly adjusted to the first state. For example, when the pre-motion state is the first state, the supporting mechanical leg group, the swinging mechanical leg group, and the fuselage are kept different, that is, zero adjustment. When the pre-motion state is the second state, the robot can first be switched from the second state to the third state, and then the robot can be switched from the third state to the first state.
[0133] For example, reference Figure 9 ( Figure 9 for Figure 7Corresponding pre-motion cycle), the process of the robot 701 changing from the pre-motion state to the first state can be as follows: the robot 701 in the pre-motion state stands on the ground through the second mechanical leg group 703, and controls the hip joint corresponding to the first mechanical leg group 702 to rotate so that the first mechanical leg group 702 swings to the right. During the process of the first mechanical leg group 702 swinging to the right, control the extension of each mechanical leg in the first mechanical leg group 702, and rotate each mechanical foot in the first mechanical leg group 702 so that the auxiliary surface of each mechanical foot is always parallel to the ground. When the first mechanical leg group 702 swings to contact the ground, the robot 701 enters the second state, and then switches the robot 701 from the second state to the third state, and finally switches the robot 701 from the third state to the first state.
[0134] For example, refer to Figure 10 ( Figure 10 for Figure 8 Corresponding pre-motion cycle), the process of the robot 801 changing from the pre-motion state to the first state can be as follows: the robot 801 in the pre-motion state stands on the ground through the second mechanical leg group 803, and controls the hip joint corresponding to the first mechanical leg group 802 to rotate so that the first mechanical leg group 802 swings to the right. During the process of the first mechanical leg group 802 swinging to the right, control the various mechanical legs in the first mechanical leg group 802 to extend (or shorten and then extend to avoid collision with the first step), and rotate the various mechanical legs in the first mechanical leg group 802 so that the auxiliary surface of each mechanical foot is always parallel to the ground. When the first mechanical leg group 802 swings to contact the first step, the robot 801 enters the second state, and then switches the robot 801 from the second state to the third state, and finally switches the robot 801 from the third state to the first state.
[0135] Step 602, controlling the extension of each mechanical leg in the supporting mechanical leg group, and controlling the shortening of each mechanical leg in the swinging mechanical leg group, so that the robot enters the third state from the second state, wherein, in the third state, the body of the robot is located in the corresponding area above the swinging mechanical leg group.
[0136] In an embodiment of the present application, the posture of the robot in the third state is the same as that of the robot in the first state, but the function corresponding to the first mechanical leg group of the robot in the third state is different from the function corresponding to the first mechanical leg group of the robot in the first state, and the function corresponding to the second mechanical leg group of the robot in the third state is different from the function corresponding to the second mechanical leg group of the robot in the first state.
[0137] For example, in the third state, the first mechanical leg group is used for swinging and the second mechanical leg group is used for standing, while in the first state, the first mechanical leg group is used for standing and the second mechanical leg group is used for swinging.
[0138] Compared with the second state, the robot in the third state only changes in posture, and the posture change is aimed at adjusting the body so that the robot can stand stably in the next swing cycle.
[0139] In one example, when the robot changes from the second state to the third state, the robot controls the extension of each mechanical leg in the supporting mechanical leg group while controlling the contraction of each mechanical leg in the swinging mechanical leg group, thereby causing the robot to move in the first direction until the robot moves to the corresponding area above the swinging mechanical leg group. The length changes of the supporting mechanical legs and the swinging mechanical legs can be set and adjusted according to actual usage requirements and are not limited in this embodiment of the present application.
[0140] For example, reference Figure 7 In the fourth and fifth pictures indicated by the middle arrow, the robot 701 in the second state controls the extension of each mechanical leg in the first mechanical leg group 702 and the shortening of each mechanical leg in the second mechanical leg group 703, so that the body moves to the right. When the body moves to directly above the second mechanical leg group 703, the robot 701 enters the third state.
[0141] For example, refer to Figure 8 In the sixth and seventh pictures indicated by the middle arrow, the robot 801 in the second state controls the extension of each mechanical leg in the first mechanical leg group 802 and the shortening of each mechanical leg in the second mechanical leg group 803, so that the body moves to the right. When the body moves to directly above the second mechanical leg group 803, the robot 801 enters the third state.
[0142] Step 603: interchange the functions of the supporting mechanical leg group and the swinging mechanical leg group, so that the robot enters the first state from the third state.
[0143] Optionally, the supporting mechanical leg group is switched from the standing function to the swinging function, and the swinging mechanical leg group is switched from the swinging function to the supporting function, so that the robot enters the first state from the third state. In other words, the original supporting mechanical leg group is updated to the new swinging mechanical leg group, and the original swinging mechanical leg group is updated to the new supporting mechanical leg group.
[0144] For example, reference Figure 7 In the fifth screen indicated by the middle arrow, the first mechanical leg group 702 is switched from the standing function to the swinging function, and the second mechanical leg group 703 is switched from the swinging function to the standing function, and the robot 701 enters the first state from the third state.
[0145] For example, refer to Figure 8In the seventh screen indicated by the middle arrow, the first mechanical leg group 802 is switched from the standing function to the swinging function, and the second mechanical leg group 803 is switched from the swinging function to the standing function, and the robot 801 enters the first state from the third state.
[0146] In one example, during each swing cycle, the body of the robot can always remain vertical, which can simplify the control complexity of the body and thus reduce the control difficulty of the robot.
[0147] In one example, during each swing cycle, the robot's body can dynamically adjust to follow the swing of the swinging mechanical leg group, so that the robot's movement process is more similar to that of a human, thereby improving the robot's biomimetic level. For example, the embodiments of the present application may also include the following:
[0148] 1. In the process of controlling the swinging of the swinging mechanical leg group, the body is controlled to rotate to tilt toward a first direction, wherein the support mechanical leg group is driven by gravity to tilt toward the first direction.
[0149] Optionally, the robot can control the pitch joint to rotate about the pitch axis to achieve rotation of the body. The rotation direction of the body is related to the first direction. For example, if the first direction is horizontally to the right, the pitch joint can be controlled to rotate clockwise about the pitch axis; if the first direction is horizontally to the left, the pitch joint can be controlled to rotate counterclockwise about the pitch axis. This embodiment of the application is not limited to this.
[0150] 2. Before the mechanical wheels and mechanical feet in the swinging mechanical leg group move to contact the support surface, control the body to rotate to adjust to verticality.
[0151] Optionally, when the swinging mechanical leg assembly is about to swing into contact with the support surface, the robot controls the body to rotate in the opposite direction to restore the vertical position. The present embodiment of the application does not limit the timing of the body's reverse rotation, which can be set and adjusted according to actual usage requirements. Optionally, when the swinging mechanical leg assembly is about to swing into contact with the support surface, the robot can also control the body to rotate to restore the body to a near vertical position.
[0152] For example, reference Figure 7 , when the robot 701 changes from the first state to the second state, it first rotates the body clockwise to tilt to the right, and then rotates the body counterclockwise to restore the vertical position. Figure 8 In the process of the robot 801 changing from the first state to the second state, the body is first rotated clockwise to tilt to the right, and then the body is rotated counterclockwise to restore the vertical position.
[0153] In one example, after the robot completes its last swing cycle, it undergoes a final motion cycle. This final motion cycle corresponds to the complete process of the robot returning from the first state to the initial state. Alternatively, the final motion cycle can be implemented as the time period corresponding to the complete process of the robot changing from the first state to the initial state, with the start time of the final motion cycle corresponding to the end time of the last swing cycle.
[0154] For example, the robot may be controlled to recover from the first state to the pre-motion state first, and then the robot may be controlled to recover from the pre-motion state to the initial state.
[0155] In some embodiments, reference Figure 11 Taking the movement process of a quadruped-foot-wheel hybrid robot as an example, the technical solution provided by the embodiment of the present application is explained. The movement process can include a pre-motion cycle, multiple swing cycles and a finishing motion cycle.
[0156] During the pre-motion period: the robot 1101 in the initial state (the same as the pre-motion state, i.e. the mechanical feet have been adjusted) uses the second mechanical leg group 1103 as support and swings the first mechanical leg group 1102 to enter the first state.
[0157] The first swing cycle: the robot 1101 in the first state, with the first mechanical leg group 1102 as support, swings the second mechanical leg group 1103, and enters the second state; the robot 1101 in the second state controls the shortening of each mechanical leg in the first mechanical leg group 1102, and controls the extension of each mechanical leg in the second mechanical leg group 1103, and enters the third state, interchanges the functions of the first mechanical leg group 1102 and the second mechanical leg group 1103, and enters the first state.
[0158] The second swing cycle: the robot 1101 in the first state, with the second mechanical leg group 1103 as support, swings the first mechanical leg group 1102, and enters the second state; the robot 1101 in the second state controls the shortening of each mechanical leg in the second mechanical leg group 1103, and controls the extension of each mechanical leg in the first mechanical leg group 1102, and enters the third state, interchanges the functions of the first mechanical leg group 1102 and the second mechanical leg group 1103, and enters the first state.
[0159] The third swing cycle: the robot 1101 in the first state, with the first mechanical leg group 1102 as support, swings the second mechanical leg group 1103, and enters the second state; the robot 1101 in the second state controls the shortening of each mechanical leg in the first mechanical leg group 1102, and controls the extension of each mechanical leg in the second mechanical leg group 1103, enters the third state, interchanges the functions of the first mechanical leg group 1102 and the second mechanical leg group 1103, and enters the first state.
[0160] Ending motion cycle: In the first state, the robot 1101, supported by the second mechanical leg group 1103, swings the first mechanical leg group 1102 until it overlaps with the second mechanical leg group 1103, entering the initial state. During this process, the body of the robot 1101 remains vertical.
[0161] Optionally, in the initial state, the mechanical foot corresponding to the robot 1101 overlaps with the mechanical leg in the vertical direction, and the toes of the mechanical foot are facing upward; for other states other than the initial state, the auxiliary surface of the mechanical foot corresponding to the robot 1101 always remains parallel to the support surface, and the auxiliary surface of the mechanical foot used to assist the mechanical wheel is parallel to and in contact with the support surface, so that the robot 1101 can stand stably during movement; during the swinging of the first mechanical leg group 1102 or the second mechanical leg group 1103, the body of the robot 1101 rotates back and forth periodically to assist the swinging of the first mechanical leg group 1102 or the second mechanical leg group 1103.
[0162] 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 a pair of coaxial mechanical wheels and mechanical feet on its feet. In the process of controlling the movement of the robot by alternating the swinging of the first mechanical leg group and the second mechanical leg group, the mechanical feet of the feet assist the mechanical wheels to keep the robot standing on the support surface, so that the feet can keep the robot standing with no less than two contact points (such as the contact points between the mechanical feet and the mechanical wheels and the support surface respectively). This allows the robot to stand more stably on the support surface and is less likely to fall, thereby effectively improving the robot's movement stability. At the same time, controlling the movement of the robot by alternating the swinging of the first mechanical leg group and the second mechanical leg group can further improve the robot's movement efficiency.
[0163] Please refer to Figure 12 , which shows a flow chart of a robot control method provided by an embodiment of the present application. In the embodiment of the present application, the robot control method is described by taking the robot as an example of the execution subject of each step. The method may include the following steps (1201-1203):
[0164] Step 1201: Obtain an expected operating space task of the robot on the support surface, wherein the expected operating space task includes expected accelerations of various parts of the robot in the robot's operating space and expected acceleration of the robot's center of mass in the operating space. The expected operating space task is used to guide the robot to move in a first direction on the support surface.
[0165] Among them, the expected operation space task refers to the expected task of the robot in the operation space, which can be planned based on the robot and the real environment in which the robot is located. For example, by planning the expected movement of the robot on the support surface, the expected operation space task corresponding to the scene can be obtained.
[0166] The expected operation space task corresponds to the complete movement process of the robot. For example, the expected operation space task may include the expected tasks of the robot in the pre-movement period, swing period and closing period respectively. The expected operation space task can be obtained by unified planning for the overall movement process of the robot.
[0167] For example, corresponding desired operation space tasks can be planned for scenarios such as gait walking, stair climbing, and obstacle crossing. For example, the desired operation space 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 desired operation space 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 desired operation space 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.
[0168] The robot can control the movement of various parts of the robot through the expected acceleration in the above-mentioned expected operation space task to realize the movement of the robot on the support surface. For example, the robot controls the mechanical legs, mechanical feet, mechanical wheels and body of the robot through the expected acceleration in the above-mentioned expected operation space task to enable the robot to alternately swing the first mechanical leg group and the second mechanical leg group to move on the support surface.
[0169] The desired acceleration refers to the acceleration derived from the real environment and used to control the robot. The reference acceleration, described below, is a planned value used to guide the robot along the reference trajectory. The robot can use this desired acceleration to control its movement along the reference trajectory. For example, the desired acceleration of the robotic legs is used to control their swinging, the desired acceleration of the robotic feet is used to control their rotation, and the desired acceleration of the body is used to control its rotation.
[0170] In one example, a desired operational space task includes the desired acceleration of each robot component at each control moment, to ensure the robot moves along the planned trajectory. Control moments refer to the times when the robot is controlled by control signals. These control moments are arranged at specified time intervals, which can be set and adjusted based on actual usage requirements.
[0171] 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.
[0172] 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.
[0173] It should be noted that for the contents not described in the embodiments of the present application, reference can be made to the above embodiments and will not be repeated here.
[0174] In an example, the above-mentioned parts may include the robot's mechanical legs, mechanical feet, mechanical wheels and body, and the expected operation space task may include the expected accelerations corresponding to the mechanical legs, mechanical feet, mechanical wheels and body respectively.
[0175] Optionally, the expected acceleration included in the expected operation space task can be calculated by a feedback controller based on the reference movement trajectory of each part of the robot and the actual state of the robot, such as a PD (Proportional Derivative) feedback controller and other feedback controllers.
[0176] refer to Figure 13 , the above step 1201 may further include the following sub-steps:
[0177] Step 1201a, obtaining the expected swing acceleration of the swinging mechanical leg group in the operating space according to the swinging reference movement trajectory corresponding to the swinging mechanical leg group, wherein the swinging reference movement trajectory is obtained by planning the movement trajectory of the swinging mechanical leg group according to the support surface.
[0178] The swing reference trajectory refers to the reference trajectory of the swinging mechanical legs in the swinging mechanical leg group, such as the reference trajectory of the mechanical wheels on the swinging mechanical legs. This reference trajectory is used to guide the movement of the robot. For example, the reference trajectory may include the reference position of the robot at various control moments. The reference position refers to the position that the robot is expected to reach. For example, the reference trajectory of the mechanical wheels includes the reference position of the mechanical wheels at various control moments, so as to guide the mechanical wheels to move according to the reference trajectory.
[0179] 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 a swinging mechanical leg (e.g., a mechanical wheel) in the pre-motion cycle, swing cycle, and final cycle can be planned based on the dimensional information of the support surface. The initial and final positions of the swinging mechanical leg in the pre-motion cycle, swing cycle, and final cycle can then be interpolated using a spline curve interpolation method to obtain the swing reference motion trajectory corresponding to the swinging mechanical leg.
[0180] For example, taking a quadruped-legged, wheeled hybrid robot climbing stairs as an example, the reference position of the swinging mechanical leg (such as the mechanical wheel) on each step can be planned based on the size information of each step of the stairs (such as width, height, length, etc.) (represented by three-dimensional coordinates in the world coordinate system), and then interpolation is performed between each reference position to obtain the swinging reference movement trajectory.
[0181] The aforementioned desired swing acceleration includes the desired acceleration of the swinging mechanical leg at various control moments. For example, the desired acceleration of the mechanical wheel of the swinging mechanical leg at various control moments can be determined as the desired swing acceleration. The desired swing acceleration can 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.
[0182] 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:
[0183] 1. For each control moment, obtain the reference position, reference velocity, and reference acceleration of the swinging robotic leg group at the control moment according to the swinging reference movement trajectory.
[0184] 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, based on the reference position of the swinging mechanical leg group at that control moment, the reference velocity and reference acceleration of the swinging mechanical leg group at that control moment can be obtained. 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 desired velocity, and the reference acceleration refers to the desired acceleration, and they are not directly used to control the robot.
[0185] 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.
[0186] 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).
[0187] 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 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 real position of the swinging mechanical legs, which is a real value, and the actual speed refers to the real speed of the swinging mechanical legs, which is a real value. The forward dynamics 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.
[0188] For example, the desired acceleration of the swing can be expressed as follows:
[0189]
[0190] 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 and differential coefficient of the swinging mechanical leg respectively.
[0191] In some examples, 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. That is, 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.
[0192] Step 1201b: Obtain the expected support acceleration of the supporting mechanical leg group in the operating space according to the supporting reference movement trajectory corresponding to the supporting mechanical leg group. The supporting reference movement trajectory is planned based on the movement trajectory of the supporting mechanical leg group by the supporting surface.
[0193] The support reference trajectory refers to the reference trajectory of the supporting legs in the supporting leg group, such as the reference trajectory of the mechanical foot attached to the supporting leg. The support desired acceleration includes the desired acceleration of the supporting leg at each control moment. The support desired acceleration is used to control the supporting leg to follow the support reference trajectory to keep the robot standing.
[0194] In an embodiment of the present application, the reference 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.
[0195] For example, the support expected acceleration can be expressed as follows:
[0196]
[0197] 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).
[0198] Step 1201c, according to the center of mass reference movement trajectory corresponding to the center of mass of the robot, obtain the expected acceleration of the center of mass in the operation space, and the center of mass reference movement trajectory is planned according to the movement trajectory of the support surface to the center of mass.
[0199] The center of mass reference movement trajectory refers to the reference movement trajectory of the center of mass of the robot. The center of mass reference movement trajectory includes the reference position of the center of mass of the robot at each control moment.
[0200] 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.
[0201] 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:
[0202] 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.
[0203] The first direction may be the forward direction of the robot, such as the x-axis direction of the world coordinate system.
[0204] Optionally, the robot can be converted into an inverted pendulum model for the construction of a balancing controller.
[0205] For example, since the robot always moves in the first direction (e.g., no displacement occurs 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 sagittal plane (e.g., Figure 2 Plane model under the sagittal plane 206).
[0206] refer to Figure 14 , when the gravity field in which the robot is located is uniform, the mass of the robot is concentrated at the center of mass 1402 of the robot. If the center of the line between the feet of the two supporting mechanical legs is the virtual support contact point 1401 between the robot's inverted pendulum model and the supporting surface (due to the contact point between the foot and the supporting surface), after connecting the center of mass 1402 and the virtual support contact point 1401, the robot's plane model can be converted into an inverted pendulum model 1400 of the robot.
[0207] 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:
[0208] 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.
[0209] 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:
[0210]
[0211] 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.
[0212] 2) Use the linear quadratic programming regulator to calculate the feedback gain matrix of the inverted pendulum dynamics equation.
[0213] 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).
[0214] 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.
[0215] 3) For each control moment, 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.
[0216] 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.
[0217] 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.
[0218] 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 the 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 the geometric average of the reference speed of the support contact point at the control moment and the first direction. 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 to obtain the reference distance between the center of mass and the virtual support contact point, 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 to obtain the reference speed between the center of mass and the virtual support contact point.
[0219] 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.
[0220] 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:
[0221] in, is the actual value of the state variable.
[0222] 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.
[0223] 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.
[0224] 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.
[0225] Optionally, the vertical direction may refer to the z-axis direction of the world coordinate system.
[0226] 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.
[0227] 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.
[0228] 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:
[0229] 1) For each control moment, obtain the reference position, reference velocity, and reference acceleration of the center of mass at the control moment in the vertical direction according to the sub-reference movement trajectory in the vertical direction.
[0230] 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.
[0231] 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.
[0232] 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.
[0233] For example, the expected acceleration of the center of mass in the vertical direction can be expressed as follows:
[0234]
[0235] 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 of the center of mass respectively.
[0236] 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.
[0237] At each control moment, 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, so that the robot as a whole moves in the first direction.
[0238] Step 1201d: 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 robot's body posture is obtained by planning the trajectory of the body posture.
[0239] The reference posture change trajectory refers to a reference change trajectory of the robot's body posture, which can be used to describe the robot's body posture changes. For example, it can include the reference posture of the robot's body at various control moments. Optionally, the body posture can be represented by Euler angles, such as the Euler angles of the body's roll, pitch, and yaw. In this case, the reference posture change trajectory can refer to the corresponding Euler angle reference movement trajectory of the robot's body, which includes the reference posture angles (i.e., reference Euler angles) at various control moments.
[0240] 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).
[0241] 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.
[0242] 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.
[0243] 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:
[0244] 1. For each control moment, according to the attitude reference change trajectory, obtain the reference attitude angle, reference attitude angular velocity and reference attitude angular acceleration of the fuselage at the control moment.
[0245] 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:
[0246] and
[0247] 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.
[0248] 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.
[0249] For example, the expected acceleration of the attitude can be expressed as follows:
[0250]
[0251] 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.
[0252] In one example, when the expected operation space task also includes the expected angular momentum acceleration of the robot's center of mass in the operation space, the process of obtaining the expected angular momentum acceleration may be as follows:
[0253] 1. For each control moment, the reference angular momentum, reference angular momentum velocity, and reference angular momentum acceleration of the center of mass at the control moment are obtained according to the angular momentum reference change trajectory corresponding to the center of mass. The angular momentum reference change trajectory is planned based on the angular momentum of the support surface relative to the center of mass.
[0254] 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. The reference angular momentum of the center of mass at that control moment can then be derived by taking the first-order and second-order derivatives of the reference angular momentum 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). 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 0 to simplify calculations, or only the reference angular momentum velocity can be set to 0. This is not limited in this embodiment of the present application.
[0255] Optionally, 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 angular momentum reference change trajectory can be obtained.
[0256] 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 0, 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.
[0257] For example, reference Figure 15 , which is a simplified model diagram of a quadrupedal hybrid robot with feet and wheels provided in one embodiment of the present application. The center of mass 1501 of the robot 1500 can be calculated based on the body 1502 and each mechanical leg 1503. The line connecting the center of mass 1501 and the rotation center of the mechanical wheel supporting the mechanical leg is first obtained. 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 1500 rotate (i.e., the various parts move), the joint angles vary, the position of the center of mass 1501 changes constantly, and the angular momentum of the center of mass 1501 also changes constantly.
[0258] 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.
[0259] 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.
[0260] For example, the angular momentum expected acceleration can be expressed as follows:
[0261]
[0262] 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, p,momentum and k d,momentum are the proportional coefficient and differential coefficient corresponding to the angular momentum of the center of mass.
[0263] 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), but instead 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.
[0264] In one example, the above-mentioned expected operation space task also includes the expected foot acceleration of each mechanical foot in the operation space. The expected foot acceleration is used to control the mechanical foot to move along the reference movement trajectory of the foot to assist the mechanical wheel to make the robot stand more stably, thereby improving the stability of the robot during movement.
[0265] Exemplarily, the robot stops moving after a plurality of control moments. The embodiment of the present application may further include the following steps:
[0266] Step 1201e: Obtain the expected acceleration of the mechanical foot in the operating space according to the reference movement trajectory of the mechanical foot of the robot. The reference movement trajectory of the mechanical foot is obtained by planning the movement trajectory of the mechanical foot.
[0267] 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.
[0268] Optionally, after planning the initial position and the end position of the mechanical foot in the pre-motion period, the swing period, and the end period, respectively, the spline curve interpolation method can be used to obtain the foot reference movement trajectory. Among them, for the swing period, the initial position may refer to the position when the auxiliary surface of the mechanical foot contacts and is parallel to the support surface, and the end position may refer to the position when the auxiliary surface of the mechanical foot contacts and is parallel to the support surface for the first time after the initial position. The foot reference movement trajectory can be set and adjusted according to actual use requirements, and the embodiments of the present application are not limited to this.
[0269] For example, for each control moment, the process of obtaining the desired acceleration may be as follows:
[0270] 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.
[0271] The foot reference movement trajectory may include the reference position of the robot's mechanical foot at each control moment. 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 reference position of the mechanical foot at the control moment can be derived by taking the first-order derivative and the second-order derivative with respect to time, respectively, to obtain the reference speed and reference acceleration of the mechanical foot at the control moment.
[0272] Optionally, the reference speed of the mechanical foot at each control moment may be set to 0 to simplify the calculation, which is not limited in the embodiment of the present application.
[0273] 2. Using a proportional differential 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.
[0274] 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.
[0275] For example, the expected acceleration can be expressed as follows:
[0276]
[0277] 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 p,foot and k d,foot are the proportional coefficient and differential coefficient corresponding to the mechanical foot respectively.
[0278] Step 1201f, obtain the expected operation space task according to the expected swing acceleration, the expected support acceleration, the expected center of mass acceleration, the expected posture acceleration and the expected foot acceleration.
[0279] Alternatively, without including the angular momentum task of the fuselage, the desired operational space task can be expressed as follows:
[0280]
[0281] Alternatively, in the case of an angular momentum mission involving the fuselage, the desired operational space mission can be expressed as follows:
[0282]
[0283] Step 1202: Obtain the expected joint torque set corresponding to the expected operation space task based on the expected operation space task, the robot's whole-body dynamics model and forward kinematics model. The expected joint torque set includes the expected joint torques for controlling various parts of the robot and the center of mass.
[0284] Optionally, the above-mentioned expected operation space task can be used for task-oriented whole body control of the robot, that is, considering the mass, inertia and other dynamic information of all the links of the robot, mobilizing all the degrees of freedom of the robot, and controlling the robot to complete one or more set tasks.
[0285] 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:
[0286]
[0287] 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 active joint torque vector of the robot, 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 the active 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}.
[0288] by Figure 2 Taking the quadruped-foot-wheel hybrid robot in as an example, the connecting rods of the quadruped-foot-wheel hybrid robot may include 4 mechanical legs, 4 mechanical wheels, 4 mechanical feet, the waist in the fuselage (as a separate connecting root) and the torso, upper limbs and head in the fuselage (the three are a whole). Among them, the active joints of the quadruped-foot-wheel hybrid robot may include 2 hip joints, the linear telescopic joints corresponding to the 4 mechanical legs, the rotation joints of the 4 mechanical wheels, the foot joints of the 4 mechanical feet, and 2 pitch rotation joints (pitch + roll). Optionally, the active joint degrees of freedom of the robot are the degrees of freedom corresponding to the above 16 active joints.
[0289] 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).
[0290] The above forward kinematics model 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 joint space of the robot.
[0291] Alternatively, from rigid body dynamics, the forward kinematics equation of the robot can be expressed as follows:
[0292]
[0293] 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, Jt and Represents the Jacobian matrix and the first-order derivative of the Jacobian matrix corresponding to the task space.
[0294] Exemplarily, the process of obtaining the desired joint torque set may include the following:
[0295] 1. The whole-body dynamics model and the forward kinematics model are combined to obtain the dynamics equation to be solved. The dynamics equation to be solved uses the acceleration of the robot in the joint space as the unknown variable.
[0296] For example, the whole-body dynamics model and the forward kinematics model are combined and simplified to obtain the dynamic equation to be solved, which can be expressed as follows:
[0297] in, is an unknown variable, and the rest are known variables.
[0298] 2. Substitute the desired operation space task into the dynamic equation to be solved and obtain the desired joint torque set.
[0299] Optionally, during the robot's motion, it is also subject to the physical limitations of the robot's body structure and the drive motor. In order to improve the rationality and accuracy of the expected joint torque set, the present application also sets constraints in the process of solving the expected joint torque set. For example, the solution process of the dynamic equation to be solved can be as follows:
[0300] 1) Replace the desired operation space task with the acceleration of the robot in the operation space in the dynamic equation to be solved to obtain the intermediate dynamic equation.
[0301] 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.
[0302] 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.
[0303] Optionally, according to the actual physical characteristics of the robot's driving motor, the active joint torque in the unknown variable is limited by τ, that is, the joint physical constraint expression can be: τ lb ≤τ≤τ ub ; where τ lb and τ ub Respectively represent the minimum and maximum values of the driving motor torque.
[0304] 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:
[0305]
[0306] 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.
[0307] For example, reference Figure 15 For supporting the 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 will also give a sufficient 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.
[0308] 3) Under the constraints of the robot's joint physical constraint expressions and friction constraint expressions, the intermediate dynamic equations are solved to obtain the desired joint torque set.
[0309] Alternatively, the intermediate kinetic equation can be rewritten in the form of AX=B;
[0310] in,
[0311] 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.
[0312] Alternatively, the objective function of the intermediate dynamics equation can be expressed as follows:
[0313] J = min(AX-B) TQ*AX-B)+X T RX;
[0314] Among them, Q and R represent weight matrices.
[0315] Under the constraints of the robot's joint physical constraint expressions and friction constraint expressions, the desired joint torque set is obtained by minimizing the objective function as the optimization goal. For example, using a 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, thereby obtaining the unknown variable X. The active joint torque τ in the unknown variable X can be directly determined as the desired joint torque set.
[0316] by Figure 2 Taking the quadruped and wheeled hybrid robot as an example, the expected joint torque set can include the expected joint torques corresponding to two hip joints (each hip joint corresponds to a mechanical leg group), the linear telescopic joints corresponding to the four mechanical legs, the rotation joints of the four mechanical wheels, the foot joints of the four mechanical feet, and the two pitch rotation joints (pitch + yaw).
[0317] Alternatively, if the robot model structure is relatively simple, the robot's whole-body dynamics model and forward 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 the desired joint torque set.
[0318] Step 1203 : According to the expected joint torque set, the robot is controlled to move under the guidance of the expected operation space task.
[0319] The expected joint torque set includes the expected joint torques of each active joint of the robot at each control moment. At any control moment, it is only necessary to drive the drive motors corresponding to each active joint according to the expected joint torque of each active joint at that control moment to achieve the following of the expected operation space task. That is, the robot can move under the guidance of the expected operation space task and follow the various reference movement trajectories corresponding to the expected operation space task to achieve the control of the robot.
[0320] In an embodiment of the present application, the desired joint torque set can be used to control the robot to move in the pre-motion cycle, swing cycle and final motion cycle respectively, so as to achieve tasks such as gait walking, climbing stairs, and crossing obstacles.
[0321] For example, reference Figure 11 Taking the movement process of a quadruped-foot-wheel hybrid robot as an example, the technical solution provided by the embodiment of the present application is explained. The movement process can include a pre-motion cycle, multiple swing cycles and a finishing motion cycle.
[0322] During the pre-motion period: the robot 1101 in the initial state (the same as the pre-motion state, i.e. the mechanical feet have been adjusted) uses the second mechanical leg group 1103 as support and swings the first mechanical leg group 1102 to enter the first state.
[0323] Among them, for the two swinging mechanical legs in the first mechanical leg group 1102, the hip joint rotation is controlled according to the desired joint torque of the corresponding hip joint (corresponding to the desired swing acceleration), so that the two swinging mechanical legs swing synchronously in the forward direction, and at the same time, the linear telescopic joint is controlled to contract according to the desired joint torque of the corresponding linear telescopic joint, and the two swinging mechanical legs are first shortened synchronously to avoid collision with the ground, and then the linear telescopic joint is controlled to extend according to the desired joint torque of the corresponding linear telescopic joint, and the two swinging mechanical legs are extended synchronously, so that the first mechanical leg group 1102 contacts the ground to take the first step.
[0324] During this process, the two supporting mechanical legs in the second mechanical leg group 1103 are controlled to remain standing through the desired joint torque (corresponding to the desired support acceleration) of the hip joints corresponding to the second mechanical leg group 1103 .
[0325] For the fuselage, the pitch rotation joint rotation is controlled by the desired joint torque corresponding to the fuselage (corresponding to the desired acceleration of angular momentum, the desired acceleration of the center of mass and the desired acceleration of the attitude), so that the fuselage rotates clockwise first and then counterclockwise to match the swing of the first mechanical leg group 1102.
[0326] For the robotic foot, the desired joint torque of the foot joint corresponding to the first robotic leg group 1102 (corresponding to the desired foot acceleration) is used to control the auxiliary surface of the mechanical foot in the first robotic leg group 1102 to always remain parallel to the support surface, and the desired joint torque of the foot joint corresponding to the second robotic leg group 1103 is used to control the auxiliary surface of the mechanical foot in the second robotic leg group 1103 to be parallel to and in contact with the support surface, so that the robot 1101 can stand stably during movement.
[0327] The first swing cycle: the robot 1101 in the first state, with the first mechanical leg group 1102 as support, swings the second mechanical leg group 1103, and enters the second state; the robot 1101 in the second state controls the shortening of each mechanical leg in the first mechanical leg group 1102, and controls the extension of each mechanical leg in the second mechanical leg group 1103, and enters the third state, interchanges the functions of the first mechanical leg group 1102 and the second mechanical leg group 1103, and enters the first state.
[0328] Among them, for the two swinging mechanical legs in the second mechanical leg group 1103, the hip joints are controlled to rotate according to the desired joint 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 linear telescopic joints are controlled to contract according to the desired joint torque of their corresponding linear telescopic joints. The two swinging mechanical legs are first shortened synchronously to avoid collision with the ground, and then the linear telescopic joints are controlled to extend according to the desired joint torque of their corresponding linear telescopic joints, and the two swinging mechanical legs are extended synchronously, so that the second mechanical leg group 1103 contacts the ground to take the second step.
[0329] In the process of entering the second state from the first state, for the two supporting mechanical legs in the first mechanical leg group 1102, the two supporting mechanical legs in the first mechanical leg group 1102 are controlled to keep standing through the desired joint torque of the hip joints corresponding to the first mechanical leg group 1102.
[0330] For the fuselage, the pitch rotation joint is controlled by the desired joint 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 1103.
[0331] For the robotic foot, the auxiliary surface of the mechanical foot in the second robotic leg group 1103 is controlled to always remain parallel to the support surface through the desired joint torque of the foot joint corresponding to the second robotic leg group 1103, and the auxiliary surface of the mechanical foot in the first robotic leg group 1102 is controlled to be parallel to and in contact with the support surface through the desired joint torque of the foot joint corresponding to the first robotic leg group 1102, so that the robot 1101 can stand stably during movement.
[0332] In the process of entering the third state from the second state, the two supporting mechanical legs in the first mechanical leg group 1102 are controlled to shorten by the desired joint torque of the hip joint corresponding to the first mechanical leg group 1102, and the each mechanical leg in the second mechanical leg group 1103 is controlled to shorten by the desired joint torque of the hip joint corresponding to the second mechanical leg group 1103, so that the fuselage is located directly above the first mechanical leg group 1102.
[0333] 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.
[0334] Ending motion cycle: In the first state, the robot 1101, supported by the second mechanical leg group 1103, swings the first mechanical leg group 1102 until it overlaps with the second mechanical leg group 1103, entering the initial state. During this process, the body of the robot 1101 remains vertical.
[0335] Among them, for the two swinging mechanical legs in the first mechanical leg group 1102, the hip joints are controlled to rotate according to the desired joint 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 linear telescopic joints are controlled to contract according to the desired joint torque of their corresponding linear telescopic joints, and the two swinging mechanical legs are first shortened synchronously to avoid collision with the ground, and then the linear telescopic joints are controlled to extend according to the desired joint torque of their corresponding linear telescopic joints, and the two swinging mechanical legs are extended synchronously, so that the first mechanical leg group 1102 swings to overlap with the second mechanical leg group 1103.
[0336] During this process, the two supporting robotic legs in the second robotic leg group 1103 are controlled to keep standing by the desired joint torque of the hip joints corresponding to the second robotic leg group 1103 .
[0337] For the fuselage, the pitch rotation joint is controlled not to rotate by the desired joint torque corresponding to the fuselage, so that the fuselage remains vertical.
[0338] For the robotic foot, the desired joint torque of the foot joint corresponding to the first mechanical leg group 1102 is used to control the auxiliary surface of the mechanical foot in the first mechanical leg group 1102 to always remain parallel to the support surface until the auxiliary surface of the mechanical foot in the first mechanical leg group 1102 is parallel to and in contact with the support surface (i.e., four-legged standing state), and the desired joint torque of the foot joint corresponding to the second mechanical leg group 1103 is used to control the auxiliary surface of the mechanical foot in the second mechanical leg group 1103 to be parallel to and in contact with the support surface, so that the robot 1101 can stand stably during movement.
[0339] In some embodiments, reference Figure 16 , which is the simulated flat-ground walking motion data of a quadruped-foot-wheel hybrid robot provided by an embodiment of the present application. Among them, curve 1601 is the change curve of the expected joint torque command of the rotary joint of the mechanical wheel over time, and curve 1602 is the change curve of the expected joint torque command of the foot joint of the mechanical foot over time. Except for the first peak of the expected joint torque command coming from the preparatory action of taking a step (i.e., the pre-motion cycle), the quadruped-foot-wheel hybrid robot took a total of 3 steps forward in this process (i.e., three swing cycles). The situation of each step is relatively similar, with a rough order of magnitude: the rotary joint of the mechanical wheel can contribute a maximum torque of about 2.5Nm, while the foot 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, the contribution of the mechanical wheel would not be too large in the physical limit analysis. However, this experimental data proves that the wheel-foot hybrid structure has a torque superposition effect, which enables the robot to stand more stably.
[0340] To sum up, the technical solution provided in the embodiments 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 a pair of coaxial mechanical wheels and mechanical feet on the feet. In the process of controlling the movement of the robot by alternating swinging of the first mechanical leg group and the second mechanical leg group, the mechanical feet of the feet assist the mechanical wheels to enable the robot to remain standing on the support surface, so that the feet can maintain the robot standing with no less than two contact points (such as the contact points between the mechanical feet and the mechanical wheels and the support surface respectively), so that the robot can stand more stably on the support surface and is not prone to falling, thereby effectively improving the robot's movement stability.
[0341] 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 made to stand with one set of mechanical legs and swing with another set of mechanical legs by planning the desired operation space task, so as to move quickly in a dynamic equilibrium state (i.e., the center of gravity of the robot can exceed the support area of the robot), thereby improving the movement efficiency of the robot. Among them, the center of gravity of the robot refers to the point where the gravity of the robot is concentrated, and the center of mass of the robot is the weighted average of the position of the mass point with respect to its mass. If the gravity is uniform, the center of mass and the center of gravity can coincide. The support area of the robot refers to the area enclosed 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. 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.
[0342] In addition, by adopting the robot's whole-body dynamics model and forward kinematic model, the expected joint torque set corresponding to the expected operation space task can be accurately obtained according to the expected operation space task, and then the expected operation space task can be accurately achieved according to the expected joint torque set, thereby improving the control accuracy of the robot.
[0343] 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 set of expected joint torques, thereby further improving the robot's control accuracy.
[0344] 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.
[0345] 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.
[0346] refer to Figure 17 , which shows a block diagram of a robot control device provided by an embodiment of the present application. The device has the function of implementing the control method of the above-mentioned robot, and the function can be implemented by hardware or by hardware executing corresponding software. The device can be the computer device introduced above (such as a foot-wheel hybrid robot), or it can be placed in a computer device. Figure 17 As shown, the device 1700 includes: a second state switching module 1701 , a third state switching module 1702 and a first state switching module 1703 .
[0347] The second state switching module 1701 is used to stand on the support surface through the mechanical wheels and mechanical feet in the supporting mechanical leg group in each swing cycle, rotate the hip joint corresponding to the swinging mechanical leg group to make the swinging mechanical leg group swing in the first direction, and adjust the length of the mechanical legs in the swinging mechanical leg group and the rotation angle of the mechanical feet in the swinging mechanical leg group, so that the robot enters the second state from the first state, wherein, in the first state and the second state, the mechanical wheels and mechanical feet on each foot of the robot are in contact with the support surface, in the first state, the supporting mechanical leg group is located in front of the swinging mechanical leg group under the first direction constraint, and the body of the robot is located in the corresponding area above the supporting mechanical leg group, and in the second state, the supporting mechanical leg group is located behind the swinging mechanical leg group under the first direction constraint.
[0348] The third state switching module 1702 is used to control the extension of each mechanical leg in the supporting mechanical leg group, and to control the shortening of each mechanical leg in the swinging mechanical leg group, so that the robot enters the third state from the second state, wherein, in the third state, the body of the robot is located in the corresponding area above the swinging mechanical leg group.
[0349] The first state switching module 1703 is used to interchange the functions of the supporting mechanical leg group and the swinging mechanical leg group, so that the robot enters the first state from the third state; wherein, the robot in the swinging cycle moves in the first direction on the supporting surface.
[0350] In some embodiments, the second state switching module 1701 is further configured to:
[0351] During the process of controlling the swinging mechanical leg group to swing, controlling the body to rotate so as to tilt toward the first direction, wherein the supporting mechanical leg group tilts toward the first direction under the driving force of gravity;
[0352] Before each mechanical wheel and each mechanical foot in the swinging mechanical leg group moves to contact the support surface, the fuselage is controlled to rotate so as to be adjusted to be vertical.
[0353] In some embodiments, the second state switching module 1701 is further configured to:
[0354] During the process of controlling the swing of the mechanical leg, controlling the auxiliary surface of the mechanical foot on the mechanical leg to be parallel to the support surface, the auxiliary surface being used to contact the support surface to assist the mechanical wheel, so that the robot stands;
[0355] Alternatively, in the process of controlling the swing of the robotic leg, the auxiliary surface of the mechanical foot on the robotic leg is controlled to be parallel to the support surface at a first control moment, where the first control moment refers to a planned moment when the mechanical foot contacts the support surface;
[0356] Alternatively, in the process of controlling the swing of the mechanical leg, controlling the toe of the mechanical foot on the mechanical leg to contact the support surface at a first control moment;
[0357] Alternatively, after the mechanical wheels in the swinging mechanical leg group swing to contact the support surface, the mechanical wheel feet in the swinging mechanical leg group are controlled to rotate to contact the support surface.
[0358] In some embodiments, the robot also has a pre-motion cycle before entering the first swing cycle; Figure 18 As shown, the device 1700 further includes: a pre-motion state switching module 1704.
[0359] a pre-motion state switching module 1704, configured to control the rotation of the mechanical feet during the pre-motion period so that the robot enters the pre-motion state from an initial state, wherein in the initial state, the robot stands on the support surface with the mechanical wheels, and in the pre-motion state, each mechanical wheel and each mechanical foot corresponding to the supporting mechanical leg group is in contact with the support surface;
[0360] The first state switching module 1703 is further configured to adjust the supporting mechanical leg group, the swinging mechanical leg group, and the body so that the robot enters the first state from the pre-motion state.
[0361] In some embodiments, as Figure 18As shown, the device 1700 further includes: an expected task acquisition module 1705 , an expected torque acquisition module 1706 and a robot movement module 1707 .
[0362] The expected task acquisition module 1705 is used to obtain the expected operation space task of the robot on the support surface, wherein the expected operation space task includes the expected acceleration of each part of the robot in the operation space of the robot, and the expected acceleration of the center of mass of the robot in the operation space, and the expected operation space task is used to guide the robot to move in the first direction on the support surface.
[0363] The expected torque acquisition module 1706 is used to obtain the expected joint torque set corresponding to the expected operation space task based on the expected operation space task, the whole-body dynamics model and the forward kinematics model of the robot. The expected joint torque set includes the expected joint torques for controlling various parts of the robot and the center of mass.
[0364] The robot movement module 1707 is used to control the robot to move under the guidance of the expected operation space task according to the expected joint torque set.
[0365] In some embodiments, the expected operation space task includes the expected acceleration of each of the mechanical feet in the operation space, and the robot stops moving after a plurality of control moments; the expected task acquisition module 1705 is further configured to:
[0366] For each of the control moments, obtaining a reference position, a reference velocity, and a reference acceleration of the robotic foot at the control moment according to a foot reference movement trajectory corresponding to the robotic foot, wherein the foot reference movement trajectory is planned according to the movement trajectory of the robotic foot relative to the support surface;
[0367] A proportional differential (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.
[0368] In some embodiments, the expected operation space task further includes an expected angular momentum acceleration of the center of mass of the robot in the operation space, wherein the expected angular momentum acceleration is used to guide the body to rotate, and the robot stops moving after a plurality of control moments. The expected task acquisition module 1705 is further configured to:
[0369] For each of the control moments, 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 corresponding to the center of mass, wherein the reference angular momentum change trajectory is planned based on the angular momentum of the support surface with respect to the center of mass;
[0370] A 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.
[0371] 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.
[0372] To sum up, the technical solution provided in the embodiments 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 a pair of coaxial mechanical wheels and mechanical feet on the feet. In the process of controlling the movement of the robot by alternating swinging of the first mechanical leg group and the second mechanical leg group, the mechanical feet of the feet assist the mechanical wheels to enable the robot to remain standing on the support surface, so that the feet can maintain the robot standing with no less than two contact points (such as the contact points between the mechanical feet and the mechanical wheels and the support surface respectively), so that the robot can stand more stably on the support surface and is not prone to falling, thereby effectively improving the robot's movement stability.
[0373] 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.
[0374] Please refer to Figure 19 , which shows a simplified block diagram of a computer device 1900 provided in one embodiment of the present application. The computer device 1900 can be any electronic device with data computing, processing, and storage functions. The computer device 1900 can be used to implement the robot control method provided in the above embodiment.
[0375] Typically, the computer device 1900 includes a processor 1901 and a memory 1902 .
[0376] The processor 1901 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and the like. The processor 1901 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 1901 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 1901 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 1901 may also include an AI processor for processing computing operations related to machine learning.
[0377] Memory 1902 may include one or more computer-readable storage media, which may be non-transitory. Memory 1902 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 memory 1902 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.
[0378] Those skilled in the art will understand that Figure 19 The structure shown in the figure does not constitute a limitation on the computer device 1900, and the computer device 1900 may include more or fewer components than shown in the figure, or combine some components, or adopt a different component arrangement.
[0379] 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.
[0380] 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.
[0381] 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).
[0382] 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.
[0383] 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 confirmation operation issued by the user on the prompt interface or pop-up window is not obtained), 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 need to comply with the relevant laws, regulations and standards of the relevant countries and regions. For example, the real environment, robots, etc. involved in this application are all obtained with full authorization.
[0384] 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.
[0385] 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 robot control method, characterized in that: 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, a foot of at least one of the mechanical legs away from the hip joint is provided with a pair of coaxial mechanical wheels and a mechanical foot, a rotation axis of the hip joint corresponding to the first mechanical leg group and a rotation axis of the hip joint corresponding to the second mechanical leg group are located in the same vertical plane, and during 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; the method includes: In each swing cycle, the robot stands on the support surface through the mechanical wheels and mechanical feet in the supporting mechanical leg group, rotates the hip joints corresponding to the swinging mechanical leg group to make the swinging mechanical leg group swing in the first direction, and adjusts the lengths of the mechanical legs in the swinging mechanical leg group and the rotation angles of the mechanical feet in the swinging mechanical leg group, so that the robot enters the second state from the first state, wherein, in the first state and the second state, the mechanical wheels and mechanical feet on each foot of the robot are in contact with the support surface, in the first state, the supporting mechanical leg group is located in front of the swinging mechanical leg group under the first direction constraint, and the body of the robot is located in the corresponding area above the supporting mechanical leg group, and in the second state, the supporting mechanical leg group is located behind the swinging mechanical leg group under the first direction constraint; Controlling each mechanical leg in the supporting mechanical leg group to extend, and controlling each mechanical leg in the swinging mechanical leg group to shorten, so that the robot enters a third state from the second state, wherein in the third state, the body of the robot is located in a corresponding area above the swinging mechanical leg group; Interchanging the functions of the supporting mechanical leg group and the swinging mechanical leg group, so that the robot enters the first state from the third state; The robot in the swing period moves toward the first direction on the supporting surface.
2. The method according to claim 1, characterized in that The method further comprises: During the process of controlling the swinging mechanical leg group to swing, controlling the body to rotate so as to tilt toward the first direction, wherein the supporting mechanical leg group tilts toward the first direction under the driving force of gravity; Before each mechanical wheel and each mechanical foot in the swinging mechanical leg group moves to contact the support surface, the fuselage is controlled to rotate so as to be adjusted to be vertical.
3. The method according to claim 1, characterized in that The method further comprises: During the process of controlling the swing of the mechanical leg, controlling the auxiliary surface of the mechanical foot on the mechanical leg to be parallel to the support surface, the auxiliary surface being used to contact the support surface to assist the mechanical wheel, so that the robot stands; or, During the process of controlling the swing of the robotic leg, controlling the auxiliary surface of the robotic foot on the robotic leg to be parallel to the support surface at a first control moment, where the first control moment refers to a planned moment when the robotic foot contacts the support surface; or, During the process of controlling the swing of the mechanical leg, controlling the toe of the mechanical foot on the mechanical leg to contact the support surface at a first control moment; or, After the mechanical wheels in the swinging mechanical leg group swing to contact the support surface, the mechanical wheel feet in the swinging mechanical leg group are controlled to rotate to contact the support surface.
4. The method according to claim 1, wherein The robot also has a corresponding pre-motion period before entering the first swing period; the method further includes: During the pre-motion period, controlling the rotation of the mechanical feet so that the robot enters a pre-motion state from an initial state, wherein in the initial state, the robot stands on the support surface with the mechanical wheels, and in the pre-motion state, each mechanical wheel and each mechanical foot corresponding to the supporting mechanical leg group is in contact with the support surface; The supporting mechanical leg group, the swinging mechanical leg group and the body are adjusted so that the robot enters the first state from the pre-motion state.
5. The method according to claim 1, wherein The method further comprises: Obtaining an expected operation space task of the robot on the support surface, wherein the expected operation space task includes expected accelerations of various parts of the robot in the operation space of the robot and expected acceleration of the center of mass of the robot in the operation space, and the expected operation space task is used to guide the robot to move in the first direction on the support surface; According to the expected operation space task, and the whole-body dynamics model and forward kinematics model of the robot, an expected joint torque set corresponding to the expected operation space task is obtained, wherein the expected joint torque set includes expected joint torques for controlling various parts of the robot and the center of mass; According to the expected joint torque set, the robot is controlled to move under the guidance of the expected operation space task.
6. The method according to claim 5, characterized in that The expected operation space task includes expected acceleration of each of the mechanical feet in the operation space, and the robot stops moving after a plurality of control moments; the method further includes: For each of the control moments, obtaining a reference position, a reference velocity, and a reference acceleration of the robotic foot at the control moment according to a foot reference movement trajectory corresponding to the robotic foot, wherein the foot reference movement trajectory is planned according to the movement trajectory of the robotic foot relative to the support surface; A proportional differential (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.
7. The method according to claim 5, characterized in that The expected operation space task further includes an expected angular momentum acceleration of the center of mass of the robot in the operation space, wherein the expected angular momentum acceleration is used to guide the body to rotate, and the robot stops moving after a plurality of control moments; the method further includes: For each of the control moments, 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 corresponding to the center of mass, wherein the reference angular momentum change trajectory is planned based on the angular momentum of the support surface with respect to the center of mass; A 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.
8. The method according to any one of claims 1 to 7, characterized in that 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.
9. A robot control device, characterized in that: 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, a foot of at least one of the mechanical legs away from the hip joint is provided with a pair of coaxial mechanical wheels and a mechanical foot, 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, 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; the device includes: a second state switching module, configured to, in each swing cycle, stand on a support surface via the mechanical wheels and mechanical feet in the supporting mechanical leg group, rotate the hip joints corresponding to the swinging mechanical leg group so that the swinging mechanical leg group swings in a first direction, and adjust the lengths of the mechanical legs in the swinging mechanical leg group and the rotation angles of the mechanical feet in the swinging mechanical leg group, so that the robot enters a second state from a first state, wherein in the first state and the second state, the mechanical wheels and mechanical feet on each foot of the robot are in contact with the support surface, in the first state, the supporting mechanical leg group is located in front of the swinging mechanical leg group under the first direction constraint, and the body of the robot is located in a corresponding area above the supporting mechanical leg group, and in the second state, the supporting mechanical leg group is located behind the swinging mechanical leg group under the first direction constraint; a third state switching module, configured to control the extension of each mechanical leg in the supporting mechanical leg group and the shortening of each mechanical leg in the swinging mechanical leg group, so that the robot enters a third state from the second state, wherein in the third state, the body of the robot is located in a corresponding area above the swinging mechanical leg group; The first state switching module is used to interchange the functions of the supporting mechanical leg group and the swinging mechanical leg group, so that the robot enters the first state from the third state; wherein, the robot in the swinging cycle moves in the first direction on the supporting surface.
10. A computer device, characterized in that: The computer device includes 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 8.
11. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, which is loaded and executed by a processor to implement the robot control method according to any one of claims 1 to 8.
12. A computer program product, characterized in that The computer program product includes a computer program, which is stored in a computer-readable storage medium. 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 8.