A trajectory control method for a biped robot and an electronic device
By breaking down the kicking process into three stages—movement trajectory, approach trajectory, and swing trajectory—and combining this with Bézier curve fitting, the problem of inaccurate foot placement control in bipedal humanoid robots during approach runs was solved, achieving efficient and stable kicking motions.
Patent Information
- Application Number
- CN202511841964.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-09
- Publication Date
- 2026-02-13
- Estimated Expiration
- 2045-12-09
AI Technical Summary
Existing technology makes it difficult for bipedal humanoid robots to accurately control their foot placement during a running start, leading to inaccurate kicking motions or falls.
By breaking down the robot's kicking process into three stages, the movement trajectory, running trajectory, and swing trajectory are calculated. The swing trajectory is fitted using a Bezier curve, and position information is obtained by combining IMU and camera data to calculate the landing point and control the robot's movement.
This technology enables robots to accurately kick objects while running, avoiding issues such as stepping on the ball or traveling too far, and significantly improving kicking speed and stability.
Smart Images

Figure CN121277188B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of intelligent control, in particular to a trajectory control method for a biped robot and an electronic device. BACKGROUND
[0002] The foot-type humanoid robot has the characteristics of human-like, high degree of freedom, high dynamic, and strong adaptability to complex terrain. It has always been a hot research direction in engineering and academic frontiers to enable the humanoid robot to achieve high mobility and high accuracy motion like a professional athlete. Among them, it has always been a dream of mankind to enable the robot to kick the ball like a professional soccer player. The RoboCup has been widely concerned since its establishment in 1997. The competition is divided into different sub-projects, among which the humanoid group requires the robot to participate in the competition with a body structure and perception ability similar to that of a human being. For the foot-type humanoid robot, due to its high degree of freedom and high instability, it is difficult to control the robot to run, kick the ball and other high dynamic actions while keeping balance.
[0003] For the implementation of the foot-type humanoid robot kicking scheme, the first method is offline trajectory planning, that is, the trajectory planning of the robot kicking is obtained by simulation and real machine debugging in advance. In the kicking stage, the pre-designed trajectory is called to realize the kicking action. This kicking trajectory generation scheme has many defects, and cannot dynamically adjust the expected position according to the current state of the robot and the position of the football, resulting in that the final kicking result often cannot achieve the expected effect. In 2017, Rhoban (a robot technology team) began to use the method of online generation of operation trajectory. This method can overcome the defects of offline trajectory planning to a certain extent, and can plan the trajectory of kicking the ball according to the position and direction of the ball. However, the main kicking action is still a fixed-point kicking action, and it is difficult to use the way of run-up to improve the ball speed by using the speed of the robot body.
[0004] In the case of run-up, if the landing point of the foot-type robot cannot be accurately controlled, the robot is likely to step on the ball or knock the ball away before kicking, so that the robot cannot accurately complete the kicking action or even fall down. Therefore, compared with general humanoid robot walking, it is more important to accurately realize the landing point constraint in the process of kicking the ball with run-up. SUMMARY
[0005] The technical problem to be solved by the present application is to provide a trajectory control method for a biped robot and an electronic device, which realizes more accurate trajectory control in the process of the biped robot kicking the ball.
[0006] To solve the above technical problems, one technical solution adopted by the present application is:
[0007] A trajectory control method for a biped robot, comprising:
[0008] obtaining a first current position of the robot and a second current position of a to-be-contacted object;
[0009] calculating a moving trajectory according to the first current position and the second current position, to obtain a third target position of the robot;
[0010] calculating a run-up trajectory according to the third target position and the second current position, to obtain a landing point of the robot;
[0011] fitting a swing trajectory based on a Bezier curve according to the landing point;
[0012] controlling the robot to move according to the moving trajectory, the run-up trajectory, the landing point and the swing trajectory, to contact the to-be-contacted object.
[0013] To solve the above technical problems, another technical solution adopted by the present application is:
[0014] An electronic device, comprising a memory, a processor and a computer program stored on the memory and running on the processor, wherein the processor implements each step of the above-mentioned trajectory control method for a biped robot when executing the computer program.
[0015] The present application has the beneficial effect that the process of the robot kicking the to-be-contacted object is divided into three stages, the moving trajectory is calculated according to the first current position of the robot and the second current position of the to-be-contacted object, to approach the to-be-contacted object and find the best run-up path; after obtaining the third target position after moving according to the moving trajectory, the run-up trajectory is obtained according to the third target position and the second current position, and the landing point on the run-up trajectory is obtained, which is used as the calculation basis of the swing trajectory for contacting the to-be-contacted object, and finally the swing trajectory is fitted based on the Bezier curve; the trajectory that is most suitable for the movement of the robot and can correctly kick the to-be-contacted object is obtained by comprehensively considering the characteristics of each stage, avoiding the problems of stepping on the to-be-contacted object too early or being too far away from the to-be-contacted object; and the run-up stage is introduced, which can significantly improve the speed of kicking the to-be-contacted object. BRIEF DESCRIPTION OF DRAWINGS
[0016] Figure 1 A step flowchart of a trajectory control method for a biped robot is provided for the embodiments of the present application;
[0017] Figure 2 A value diagram of a weight coefficient a is provided for the embodiments of the present application;
[0018] Figure 3 A swing trajectory diagram calculated by a single speed insertion point is provided for an embodiment of the present application;
[0019] Figure 4 A swing trajectory diagram calculated by a speed platform insertion point is provided for an embodiment of the present application;
[0020] Figure 5 and Figure 6 A schematic diagram of a robot implementing the present application in simulation is provided for an embodiment of the present application;
[0021] Figure 7 A structural schematic diagram of an electronic device is provided for an embodiment of the present application. DETAILED DESCRIPTION
[0022] To explain the technical content, purposes and effects of the present application in detail, the following will be described in conjunction with the embodiments and the accompanying drawings.
[0023] In the related art, with the research of humanoid robot control theory, it is found that the ZMP (Zero Moment Point) theory is only a sufficient condition for the humanoid robot to maintain balance. By periodically switching the contact points of the humanoid robot, the dynamic balance of the humanoid robot can be maintained even if the zero moment point is not within the support polygon. It is possible for the humanoid robot to achieve higher dynamic motion. MPC (model predictive control) has become one of the mainstream methods for controlling humanoid robots by predicting the state of the system for a period of time in the future and giving the optimal solution for the current situation according to the constraints. It can be seen that it is difficult to achieve high coordination and high dynamic motion of the humanoid robot kicking motion with a run-up in the related art. It is difficult to truly exert the advantages of high degrees of freedom of the humanoid robot.
[0024] To solve the above problems, the present application provides a trajectory control method for a biped humanoid robot and an electronic device. The following will specifically introduce a trajectory control method for a biped humanoid robot.
[0025] The trajectory control method for bipedal humanoid robots described in this application can be used in the control process of humanoid robots, especially in scenarios where a robot needs to kick an object, such as a humanoid robot kicking a soccer ball. The robot control system used in this application employs a low-reduction-ratio collimated drive motor to improve the transparency of the robot joint's force output. The output torque of the robot joint can be directly estimated from the output current. Simultaneously, the joint motor is required to acquire position and velocity. An IMU (Inertial Measurement Unit) needs to be installed on the robot's torso to accurately acquire the robot's velocity and position under short-term, high-dynamic conditions; and a camera needs to be installed to acquire the position of the object to be contacted, such as a soccer ball, relative to the robot. A torque sensor is not required. Furthermore, since the playing field is flat, height changes can be disregarded in the actual calculations, and the calculation process can be completed using two-dimensional vectors, further reducing the computational load of trajectory generation.
[0026] The trajectory control method for a bipedal humanoid robot of the present invention is described in detail below, with reference to the appendix. Figure 1 This includes steps 110 to 140.
[0027] Step 110: Obtain the robot's first current position and the object's second current position. Establish an XY coordinate system with the robot's initial starting position as the origin and the positive direction of the robot's IMU to obtain the world coordinate system. Obtain the object's second current position in this world coordinate system. This position can be obtained using a camera carried by the robot in conjunction with machine vision algorithms. The specific process is existing technology and not the inventive point of this application, therefore it will not be elaborated upon here. The robot's first current position in the current world coordinate system is denoted as... This location can be obtained through the robot's own perception.
[0028] Step 120: Calculate the movement trajectory based on the first current position and the second current position to obtain the robot's third target position.
[0029] Step 130: Calculate the running trajectory based on the third target position and the second current position to obtain the landing point of the robot.
[0030] Step 140: Fit the swing trajectory based on the landing point using a Bézier curve. Since only the kicking leg needs to contact the object, the swing trajectory calculated in step 140 is the swing trajectory corresponding to the kicking leg.
[0031] Step 150: Control the robot's movement according to the moving trajectory, running trajectory, landing point, and swing trajectory to contact the object to be contacted.
[0032] From the above description, it can be known that the process of kicking the to-be-contacted object by the robot is divided into three stages. Firstly, the movement trajectory is calculated based on the first current position of the robot and the second current position of the to-be-contacted object, so as to approach the to-be-contacted object and find the optimal running-up path. After obtaining the third target position after moving according to the movement trajectory, the running-up trajectory is obtained according to the third target position and the second current position, and the landing point on the running-up trajectory is obtained. The landing point is taken as the calculation basis of the swing trajectory for contacting the to-be-contacted object. Finally, the swing trajectory is fitted based on the Bezier curve. In this way, the trajectory that is most suitable for the movement of the robot and can correctly kick the to-be-contacted object is obtained by comprehensively considering the characteristics of each stage, so as to avoid the problems of stepping on the to-be-contacted object too early or being too far away from the to-be-contacted object. Moreover, the running-up stage is introduced, so that the speed of kicking the to-be-contacted object can be significantly improved.
[0033] In an embodiment of the present application, step 120 comprises step 121.
[0034] Step 121, ;
[0035] = + ;
[0036] wherein, represents the calculated movement trajectory, represents the unit vector obtained after rotating 90°, represents the preset running-up direction; represents the two-dimensional rotation matrix obtained by and ; represents the transpose calculation of the matrix T; represents the second current position, represents the first current position; l hip represents the width between the two spans of the robot, so as to avoid the bias caused by the positional deviation between the calculation result and the position between the leg and the center of the robot; represents the third target position.
[0037] wherein, the preset running-up direction can be input by an instruction and is considered to be known, is the unit vector obtained after rotating 90° counterclockwise in the plane of the robot movement, and a coordinate system fixed on the robot is established by and ; From the top view, the Y axis can be regarded as the X axis rotated 90° counterclockwise.
[0038] From the above description, considering the offset caused by the position deviation between the leg and the center of the robot, the width between the two spans is also introduced as a parameter in the moving trajectory calculation process, which ensures that the line between the kicking leg and the ball center is as close as possible to the preset running direction. It can be seen that the running direction is also the direction of kicking the ball. At the same time, by controlling the robot to face the preset running direction through the moving trajectory, it is ensured that the robot moves in the forward direction as much as possible during the running stage, which facilitates the speed-up and contact with the contact object.
[0039] In an embodiment of the present application, step 130 comprises steps 131 to 135.
[0040] Step 131, obtaining a preset running speed, and obtaining a single-step step length of the robot according to the running speed.
[0041] Step 132, obtaining a first target foot point of a kicking leg and a second target foot point of a supporting leg according to the single-step step length and the second current position.
[0042] Step 133, obtaining a first foot point set according to the single-step step length, the first target foot point and the second target foot point.
[0043] Step 134, obtaining a second foot point set based on the second current position by heuristic rules.
[0044] Step 135, obtaining a preferred foot point set by calculating the score of each foot point in the first foot point set and the second foot point set according to a preset weighting algorithm.
[0045] From the above description, in the process of determining the foot point, in order to avoid the influence of excessive acceleration on the stability of the robot motion, the first foot point set is directly obtained according to the single-step step length and the second current position of the contact object; the second foot point set is obtained based on the second current position according to heuristic rules, and the final preferred foot point set is determined by comprehensively determining the first foot point set and the second foot point set, so as to ensure the smooth movement of the robot under the premise of reaching the running speed.
[0046] In an embodiment of the present application, step 131 comprises step 1311.
[0047] Step 1311,
[0048] In the formula, t represents the single-step step length, t stance t represents the supporting phase time of a single leg, t represents the running speed, represents the current speed of the robot, k represents a feedback correction coefficient. The support phase means that a single leg keeps the support state.
[0049] Step 132 includes step 1321.
[0050] Step 1321, ; ;
[0051] In the formula, represents the first target landing point, represents the second current position, represents a preset offset constant, which is an offset amount considering the foot end size and the football size, i.e. an amount of space reserved from the center of the robot body to the center of the ball to avoid the foot end (toe) of the robot contacting the surface of the ball before the kicking action, for example, the offset constant can be taken as 0.1 meters. represents the second target landing point, l hip represents the width between the two strides of the robot, represents a unit vector obtained after rotating 90°, represents a preset running direction. If the preset running speed is , i.e. the speed of the robot when reaching the object to be contacted and preparing to perform the kicking action is , it can be known that the error between the actual speed of the robot when reaching the object to be contacted and preparing to perform the kicking action and can be ignored, and after the alignment stage, the planning of the running stage is to avoid the robot needing to turn again, so it can be considered that the angular velocity of the robot at this time is 0, thereby obtaining the above single-step step length calculation method, and simplifying the calculation process of the single-step step length. Moreover, the movement process when approaching the object to be contacted can be considered as uniform linear motion, so the final landing point of the kicking leg of the robot at the moment of starting the kicking action is , and the final landing point of the support leg at the moment of the kicking action is . It can be preset that the right leg is the kicking leg and the left leg is the support leg, or the right leg is the support leg and the left leg is the kicking leg, which is not limited herein.
[0052] Step 133 includes step 1331.
[0053] Step 1331, ;
[0054] ;
[0055] n=0,±1,±2……;
[0056] In the formula, represents the kick leg landing point when the kick leg is n steps before the first target landing point, represents the support leg landing point when the support leg is n steps before the second target landing point, all the kick leg landing points and the support leg landing points form a first landing point set. It can be seen that n represents the number of steps from the kick leg and the support leg to the end point of the stage and When n>0, it is the approach stage, and it is still necessary to approach the contact object, when n<0, it means that the contact object has been passed, and it is the end stage of kicking, when n=0, it reaches the end point, which is the target point of the stage, and it is the starting time of kicking.
[0057] From the above description, it can be seen that the single-step step length is first calculated, and then the first target landing point and the second target landing point that the kick leg and the support leg need to reach when performing the action of contacting the contact object are calculated, and the first landing point set is calculated based on the first target landing point and the second target landing point with the single-step step length, so that the first landing point set can include the best contact position, i.e. the first target landing point and the second target landing point.
[0058] In an embodiment of the present application, step 134 includes step 1341.
[0059] Step 1341, ;
[0060] ;
[0061] ;
[0062] ;
[0063] In the formula, represents the landing point of the i-th leg obtained by the heuristic rule, i=1 represents the kick leg landing point, and i=2 represents the support leg landing point; represents the current landing point of the i-th leg; represents a heuristic rule, which introduces a feedback coefficient k to correct the speed deviation in the actual robot movement process, k can take a small value to ensure the relative stability of the robot in the movement process, for example, k can take a value of 0.01 to 0.06, such as 0.03; represents the center position of the robot body at the n-th step, represents the hip position of the i-th leg, represents the landing point offset amount due to rotation, which is used to ensure the stability of the robot when rotating, represents the rotation matrix from the robot coordinate system to the world coordinate system, v cmd represents the target speed, which is the approach speed here denoted by ω, g represents the target angular velocity, g represents the gravitational acceleration, and h represents the height of the robot's center of mass.
[0064] As described above, by calculating the landing points of the kicking leg and the supporting leg using heuristic rules, the heuristic rules can adjust the landing points according to the robot's current situation, thereby achieving a smooth speed transition and ensuring relative stability during movement. At the beginning of the run-up phase, the robot needs to accelerate from a near-zero speed to the run-up speed. If the landing points calculated based on the run-up speed are directly executed at the start of the run-up phase, the actual speed needs to increase rapidly from 0 to the run-up speed, which can easily lead to instability or even a fall. Therefore, at the beginning of the run-up phase, a more natural and stable landing point rule is introduced—that is, heuristic rules are used to calculate the landing points. This allows the robot to gradually transition to the first set of landing points during movement, ultimately meeting the requirements of the run-up speed and the finish line, while ensuring a smooth movement. Introducing heuristic rules to calculate landing points allows the robot to maintain a relatively stable balance during operation.
[0065] In one embodiment of this application, step 135 includes step 1351.
[0066] Step 1351 ;
[0067] ;
[0068] in, This indicates the preferred landing point, and α represents the weighting coefficient. This refers to the second foot in the set of second foot positions, which is the one calculated above. , This represents the closest point to the second landing point in the first set of landing points. The first foothold This represents the robot's fourth current position, and tanh() represents the hyperbolic tangent function. The fourth current position is the current position of the robot's body. For example, when calculating the second landing point, the position of the robot's body corresponding to the first landing point is the fourth current position. Since the second set of landing points is obtained based on heuristic rules and is calculated in real-time according to the robot's current state, the calculated landing points may not correspond one-to-one with the landing points in the first set. Therefore, when selecting a landing point, the first landing point closest to the second landing point is compared to choose the more suitable landing point for the robot's current state from the two close landing points. Here, b can take a value of 0.5, c can take a value of 4.0, and d can take a value of 1.5, which can be adjusted according to specific needs.
[0069] From the above description, it can be seen that the definition weight coefficient changes with the distance between the robot and the object to be contacted. Please refer to Figure 2 , the abscissa is the distance between the robot and the object to be contacted, and the ordinate is the actual value of a. It can be seen that when the robot is closer to the object to be contacted, the weight coefficient will be closer to 1, and it will be more inclined to select the touchdown point in the run-up stage than the touchdown point calculated by the heuristic rule. When the robot is far away from the object to be contacted, it will tend to select the touchdown point calculated by the heuristic rule, so as to realize smooth speed increase in the run-up starting stage and avoid instability of the actual operation of the robot due to the step. In the later stage of the run-up stage, it is ensured that the first target touchdown point and the second target touchdown point can be correctly reached, so as to provide better conditions for subsequent interaction with the object.
[0070] In an embodiment of the present application, step 130 comprises step 1301.
[0071] Step 1301, ;
[0072] The indicates the run-up trajectory, that is, the distance that the robot needs to move after alignment, and L indicates a preset buffer constant, indicates a unit vector in the direction. Wherein L can be determined according to different preset run-up speeds, the larger the run-up speed, the larger L can be reserved to ensure that the robot completes a smooth deceleration process; or a larger fixed value can be used to adapt to different run-up speeds, reducing the amount of calculation, for example, L can be 1.2 meters.
[0073] From the above description, it can be seen that for the run-up process, after completing the alignment process (executing the translation ), the real-time position of the robot is obtained , and the movement direction (run-up direction) required by the robot is . Considering the inertia of the robot, after kicking the object to be contacted, the robot body will still have a certain moving speed, so a certain buffer distance in the run-up direction is needed to let the robot decelerate to static, so that the robot can end the whole process smoothly. The buffer distance reserved is denoted as L. The overall trajectory of the run-up stage is calculated, and the buffer constant is introduced to decelerate the robot. The touchdown point in the above needs to meet the run-up trajectory, so as to ensure that the robot can normally approach the object to be contacted, so as to avoid deviation in the movement process.
[0074] In an embodiment of the present application, step 140 comprises steps 141 to 142.
[0075] Step 141, fitting an initial spline trajectory of the foot end based on the lifting point, the kicking leg height and the touchdown point based on the Bezier curve.
[0076] Step 142: Obtain the desired velocity, and add the insertion point in the initial spline trajectory according to the desired velocity to obtain the oscillating trajectory.
[0077] As described above, Bézier curves define their shape through control points, and the curve shape can be modified in real time by adjusting the position of the control points, avoiding the complex process of resolving a set of equations. This improves the computational efficiency of the trajectory. Furthermore, the generated trajectory is smooth and without abrupt changes, which is suitable for the needs of motion trajectories and can be used directly as a motion trajectory. It also has strong anti-interference capabilities, and the small amount of noise in the original trajectory can be filtered out by adjusting the control points to generate a stable and smooth curve.
[0078] In one embodiment of this application, step 141 includes steps 1411 to 1412.
[0079] Step 1411: Calculate the first insertion point based on the leg lift point and foot landing point. Fit the first trajectory using a Bézier curve based on the leg lift point, foot landing point, and the first insertion point. During the fitting process, the time corresponding to the leg lift point is considered as time 0, resulting in the leg lift point being (0, ...). (0), where the first term is time, the second term is the component of the foot position in the X and Y axes respectively, i.e., the foot position, and the third term represents velocity; the landing point is Then the first insertion point is In the formula, a1 represents the time coefficient of the insertion point, l1 represents the position coefficient of the foot position of the insertion point, and k1 represents the velocity coefficient of the insertion point; for example, a1 = 0.417. =0.65, =1.77. The first trajectory is a curve in the horizontal direction.
[0080] Step 1412: Based on the kicking leg height, calculate the starting point (0,0,0) and the second insertion point in the height direction. , landing point ; where a z1 a z2 These represent the time coefficients for the two insertion points in the height direction, l z1 l z2 k represents the position coefficient of the foot position of the two insertion points in the height direction. z1 k z2 These represent the velocity coefficients of the two insertion points in the height direction. The initial spline trajectory is obtained by inserting the starting point, the second insertion point, and the landing point in the height direction into a Bézier curve; the initial spline trajectory is a curve in the height direction.
[0081] In one embodiment of the present application, step 142 comprises step 1422.
[0082] Step 1422, set the speed of the speed insertion point for a preset length of time to the desired speed, and increase the speed insertion point in the first trajectory to obtain a swing trajectory.
[0083] For the kicking phase, it is necessary to additionally insert the planning of the kick in the above-mentioned Bezier curve, i.e., the first trajectory, given that the desired ball speed is , then the inserted speed insertion point is (t, , ). Since the kicking process is a process of drastic change in speed (the foot end speed of the swing leg is accelerated from 0 to and then decelerated to 0) in a short time (usually 0.45 seconds for a single leg to lift), if only one point is inserted, the sampling points are too sparse due to the discretization process in the computer calculation, which results in the actual running speed failing to reach , but if the sampling points are too dense, the generated matrix size is too large, affecting the real-time performance of the calculation, and the speed change is too drastic with only one point, at the same time, in order to ensure the rigidity of the structure, the leg inertia of the humanoid robot is relatively large, in order to ensure the dynamic response ability and control stability of the humanoid robot, the humanoid robot generally does not introduce an integral term to eliminate errors in the control process. Therefore, if the robot foot end speed has not been accelerated to the desired speed, the desired speed has already decreased (the decrease gradient is usually very steep), and the humanoid robot is difficult to reach the desired speed, and since the ball itself has a relatively large size. Therefore, we need to extend the speed of the kick point to both ends, i.e., finally obtain the speed insertion points (t-Δt, , ), (t+Δt, , ), and the final insertion result is a speed platform that maintains for a period of time, thereby ensuring that the target point speed can also be sampled in the subsequent discretization process and the expected speed is reached as much as possible. Referring to Figure 3 , the swing trajectory fitted by inserting only one speed insertion point, from left to right, respectively, the foot end position-time, the foot end speed-time, and the foot end x-axis-z-axis position-time relationship; wherein, referring to the legend, the three curves on the left 1 graph represent the foot end position components in the X-axis, Y-axis, and Z-axis directions, respectively, and the three curves on the left 2 graph represent the foot end speed components in the X-axis, Y-axis, and Z-axis directions, respectively, referring to Figure 4 , the swing trajectory fitted by inserting a speed platform. It can be seen that after inserting a speed platform, there is a stable period of time to reach the desired speed, wherein the legends of left 1 graph to left 3 graph are the same as Figure 3Correspondingly, details are not repeated here.
[0084] From the above description, it can be seen that at the insertion point, the insertion speed is the desired speed for a continuous period of time, so that in a time platform, the speed will be the desired speed, avoiding the case that the speed on the swing trajectory fitted before the contact object is encountered is rapidly reduced, and ensuring that the desired speed can be hit on the to-be-contacted object, for example, in the process of shooting a football, it can be ensured that the football moves at a speed close to the desired speed.
[0085] In an embodiment of the present application, in step 150, the entire trajectory can be calculated completely before starting to move, and real-time calculation can be performed. For example, after determining the preferred landing point, whether k in the first landing point set corresponding to the preferred landing point is 0 can be determined to confirm whether it is the landing point of the to-be-kicked ball. The swing trajectory is calculated according to step 140 in the first step to the third step before the landing point, so that the position of the to-be-contacted object can be reflected in real time when the position of the to-be-contacted object changes, and the calculation resources are not wasted. After completing the to-be-contacted object, the robot slows down to 0 to complete the entire process.
[0086] In an embodiment of the present application, after the trajectory planning is generated, it is input as a target state into an MPC (model predictive control) + WBC (whole body control) hierarchical optimization controller. The hierarchical optimization controller outputs the control amount required for actual control of the robot, and the control amount (feedforward torque, target position, target speed, position feedback gain kp, and speed feedback gain kd) is issued to each joint module through an intermediate communication component, so as to control the humanoid robot to achieve the expected function. The specific control method is prior art, and is not the point of the present application, so it is not expanded here.
[0087] Referring to Figure 5 and Figure 6 Simulation experiments are performed on a full-size biped humanoid robot (1.6 m in height, 6 degrees of freedom for a single leg). The robot completes the kicking action after performing alignment and run-up. The robot can accurately reach the corresponding landing point before kicking the ball, avoid stepping on the ball, or hit the ball before kicking, and complete the kicking action in the kicking step. In the swing period of the kicking, with the speed of the robot body during the run-up, the speed of the foot end of the swing leg can reach 5 m / s. In the simulation space, the speed of the football can reach 5 m / s, which is twice the body length / s of the robot.
[0088] In summary, the application divides the whole process of the robot kicking the object into two stages, one is the alignment process before the run-up, and the other is the process of the robot moving to the position of the object, kicking the object and stopping. In the alignment process, the robot needs to adjust its position and heading angle to adjust the forward direction to the preset run-up direction, so that there will be only forward movement in the run-up stage, and there is no need to adjust the direction again. In the run-up stage, the landing point generation generates the expected landing point of the run-up stage, i.e. the first landing point set, according to the position of the object, the kicking direction, the actual run-up direction and the preset run-up speed, and generates the heuristic landing point, i.e. the second landing point set, according to the current motion state of the robot. The first landing point set and the second landing point set are compared, and the final expected landing point is selected, which combines the landing point that is beneficial to kick the ball in the run-up process and the landing point that can ensure the stable state of the robot, so that the robot can move smoothly.
[0089] Please refer to Figure 7 The application further provides an electronic device 300, which comprises a memory 301, a processor 302, and a computer program stored in the memory 301 and running on the processor 302, and the processor 302 implements each step of the above-mentioned trajectory control method for a biped robot when executing the computer program.
[0090] The electronic device of the application has the advantages of the above-mentioned method, which will not be repeated here.
[0091] The above description is only an embodiment of the application, and does not limit the patent scope of the application. Any equivalent transformation or direct or indirect application in the related technical field based on the content of the specification and drawings is also included in the patent protection scope of the application.
Claims
1. A trajectory control method for a bipedal humanoid robot, characterized in that, include: Obtain the robot's first current position and the object to be contacted's second current position; The robot's third target position is obtained by calculating the movement trajectory based on the first current position and the second current position; The robot's landing point is obtained by calculating the running trajectory based on the third target position and the second current position. Based on the footing point, a swing trajectory is fitted using a Bézier curve; The robot's movement is controlled according to the moving trajectory, running trajectory, foot landing point, and swing trajectory to contact the object to be contacted; The step of calculating the movement trajectory based on the first current position and the second current position to obtain the robot's third target position includes: ; = + ; in, This represents the calculated movement trajectory. express The unit vector obtained after rotating 90° Indicates the preset approach direction; Indicates by as well as The resulting two-dimensional rotation matrix; T represents the calculation of the matrix transpose; Indicates the second current position. Indicates the first current position; l hip This indicates the width between the two spans of the robot; This indicates the location of the third target.
2. The trajectory control method for a bipedal humanoid robot according to claim 1, characterized in that, The step of calculating the run-up trajectory based on the third target position and the second current position to obtain the robot's landing point includes: Obtain a preset running speed, and calculate the robot's single-step stride length based on the running speed; Based on the single-step length and the second current position, the first target landing point of the kicking leg and the second target landing point of the supporting leg are obtained; The first set of landing points is obtained based on the single step length, the first target landing point, and the second target landing point; The second set of landing points is obtained using heuristic rules based on the running speed, the robot's current speed, and the robot's current landing point. The optimal set of landing points is obtained by calculating the score of each landing point in the first set of landing points and the second set of landing points according to the preset weighting algorithm.
3. The trajectory control method for a bipedal humanoid robot according to claim 2, characterized in that, The step of obtaining a preset running speed and then determining the robot's single-step stride length based on that running speed includes: ; In the formula, Indicates the single-step step size, t stance This indicates the support phase time of a single leg. Indicates the running speed. This represents the robot's current speed, and k represents the feedback correction coefficient. The step of obtaining the first target landing point of the kicking leg and the second target landing point of the supporting leg based on the single step length and the second current position includes: ; ; In the formula, Indicates the landing point of the first target. Indicates the second current position. This represents the preset offset constant. Indicates the landing point of the second target, l hip This indicates the width between the two spans of the robot. express The unit vector obtained after rotating 90° Indicates the preset approach direction; The step of obtaining the first landing point set based on the single-step length, the first target landing point, and the second target landing point includes: ; ; n=0,±1,±2……; In the formula, This represents the landing point of the kicking leg when it is n steps ahead of the landing point of the first target. The supporting leg lands n steps before the second target landing point. All the landing points of the kicking leg and the supporting leg together form the first landing point set.
4. The trajectory control method for a bipedal humanoid robot according to claim 3, characterized in that, The process of obtaining the second set of landing points based on the run-up speed, the robot's current speed, and the robot's current landing point using heuristic rules includes: ; ; ; ; In the formula, This represents the landing point of the i-th leg obtained by the heuristic rule. When i is 1, it represents the landing point of the kicking leg, and when i is 2, it represents the landing point of the supporting leg. Indicates the current foot position of the i-th leg; Represents a heuristic rule; This indicates the position of the body center at step n. This indicates the hip position of the i-th leg. This indicates the offset of the landing point caused by rotation. This represents the rotation matrix from the robot coordinate system to the world coordinate system. denoted by angular velocity, g represents gravitational acceleration, and h represents the height of the robot's center of mass.
5. The trajectory control method for a bipedal humanoid robot according to claim 4, characterized in that, The step of calculating the score of each landing point in the first set of landing points and the second set of landing points according to a preset weighted algorithm to obtain the preferred set of landing points includes: ; ; in, This indicates the preferred landing point, and α represents the weighting coefficient. This represents the closest point to the second landing point in the first set of landing points. The first foothold The fourth current position of the robot is represented by tanh(), which represents the hyperbolic tangent function; b, c and d represent preset constants.
6. The trajectory control method for a bipedal humanoid robot according to claim 1, characterized in that, The calculation of the approach trajectory based on the third target position and the second current position includes: ; The The approach run trajectory is represented by L, which represents a preset buffer constant. express A unit vector in the direction.
7. The trajectory control method for a bipedal humanoid robot according to claim 1, characterized in that, The step of fitting the swing trajectory based on the Bézier curve according to the foot point includes: Based on the leg lift point, kicking leg height, and foot landing point, an initial spline trajectory of the foot is fitted using a Bézier curve; Obtain the desired velocity, and add an insertion point to the initial spline trajectory according to the desired velocity to obtain the oscillating trajectory.
8. A trajectory control method for a bipedal humanoid robot according to claim 7, characterized in that, The step of increasing the insertion point in the initial spline trajectory according to the desired velocity to obtain the oscillating trajectory includes: The speed of the speed insertion point is set to the desired speed for a preset duration, and the speed insertion point is added to the initial spline trajectory to obtain the oscillating trajectory.
9. An electronic device, characterized in that, It includes a memory, a processor, and a computer program stored in the memory and running on the processor, wherein the processor executes the computer program to implement the various steps of the trajectory control method for a bipedal humanoid robot as described in any one of claims 1 to 8.
Citation Information
Patent Citations
Self-walking type intelligent soccer robot
CN106426171A
Walking control method, device and equipment of biped robot and storage medium
CN113172635A