Biped robot and walking control method, device and readable storage medium thereof
By calculating the robot's center of mass state and capture point error, adjusting the landing position of the swing leg and replanning the motion trajectory, the problem of instability of bipedal robots under external force disturbances was solved, and stable walking under external force disturbances was achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-16
- Publication Date
- 2026-04-14
AI Technical Summary
Bipedal robots are prone to instability under external disturbances, leading to unstable walking and falls.
By acquiring the robot's center of mass state, calculating the capture point error, and adjusting the landing position of the swing leg when the capture point error or the cumulative total error exceeds the threshold, the motion trajectory is replanned using a smooth curve to ensure that the robot maintains balance under external force disturbances.
It effectively improves the robot's stability under external disturbances, prevents it from falling, adapts to irregular terrain, and enhances the robot's adaptability.
Smart Images

Figure CN119440025B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of robot control technology, and in particular to a bipedal robot and its walking control method, apparatus and readable storage medium. Background Technology
[0002] The disturbance resistance of bipedal robot walking has always been a challenging research topic. On flat ground, stable walking of bipedal robots can be achieved by controlling the zero-moment point (ZMP). Stability is defined as the robot being stable if the trajectory of its center of gravity projection always falls within the support area during walking. When the robot is stationary or in static equilibrium, its ZMP point coincides with the projection of its center of gravity on the ground; conversely, if the ZMP point is outside the support area, the robot will tip over. Therefore, keeping the ZMP point in a suitable position ensures stable walking. However, when the robot is suddenly disturbed by external forces, it often faces the problem of instability and falls. Summary of the Invention
[0003] In view of this, this application provides a bipedal robot and its walking control method, device and readable storage medium, which can solve the problem of walking instability of the robot when disturbed by external forces.
[0004] In a first aspect, embodiments of this application provide a robot control method, comprising:
[0005] The center of mass state of the robot is obtained for each control cycle, including the planned center of mass state and the measured center of mass state;
[0006] The capture point error of the robot in each control cycle is calculated based on the planned centroid state and the measured centroid state.
[0007] The capture point error for each control cycle is accumulated to obtain the total accumulated capture point error;
[0008] When the capture point error or the cumulative total capture point error exceeds a preset threshold range, the landing position of the robot's swing leg is adjusted based on the cumulative total capture point error.
[0009] Control the movement of the swinging leg so that the robot lands at the adjusted foot position.
[0010] In some embodiments, the control of the swing leg movement further includes, prior to:
[0011] Based on the adjusted foot position, the motion trajectory of the robot's swing leg is replanned to control the movement of the swing leg according to the replanned motion trajectory.
[0012] In some embodiments, calculating the robot's capture point error for each control cycle based on the planned centroid state and the measured centroid state includes:
[0013] The planned capture point and the measured capture point of the robot are calculated based on the planned centroid state and the measured centroid state of the current control cycle, respectively, and the deviation between the planned capture point and the measured capture point is used as the capture point error of the current control cycle.
[0014] In some embodiments, the center of mass state includes the robot's center of mass position and center of mass velocity, and calculating the capture point based on the center of mass state of the current control cycle includes:
[0015] The capture point of the robot in the current control cycle is calculated based on the robot's center of mass position, center of mass velocity, and oscillation frequency when the robot is simplified to a linear inverted pendulum model.
[0016] The accumulation of the capture point error for each control cycle to obtain the total accumulated capture point error includes:
[0017] The capture point error of the robot's supporting leg in each control cycle within a gait is accumulated to obtain the accumulated capture point error of the supporting leg; and the accumulated capture point error of the robot's swing leg in each control cycle within the same gait is cleared to zero.
[0018] The cumulative errors of the capture points of each leg are summed to obtain the total cumulative error of the robot's capture points.
[0019] In some embodiments, the adjustment of the planned landing point position of the robot's swing leg based on the accumulated total error of the capture points further includes, before:
[0020] Detect whether the current end position of the robot's swinging leg is in the leg-lifting phase;
[0021] If the robot is in the leg-lifting phase, the planned landing point of the swinging leg in the current gait is adjusted based on the cumulative total error of the capture point.
[0022] In some embodiments, the robot walking control method further includes:
[0023] If the landing phase is underway, then no adjustments are required; or,
[0024] If the robot is in the landing phase and the remaining movement time of the swing leg in the current gait is greater than or equal to a preset time threshold, then the planned landing point position of the swing leg in the current gait is adjusted based on the cumulative total error of the capture points; or,
[0025] If the robot is in the landing phase and the remaining movement time of the swing leg in the current gait is less than the preset time threshold, then the landing position of the swing leg in the next step is replanned based on the total accumulated error of the capture point in the current gait.
[0026] In some embodiments, adjusting the planned landing point position of the robot's swing leg based on the cumulative total error of the capture points includes:
[0027] The compensation amount for the landing point position of the robot's swing leg is calculated based on the cumulative total error of the capture point, and the planned landing point position of the swing leg is adjusted using the compensation amount to obtain the adjusted landing point position.
[0028] In some embodiments, the step of calculating a compensation amount for the landing point position of the robot's swing leg based on the cumulative total error of the capture points, and adjusting the planned landing point position of the swing leg using the compensation amount to obtain the adjusted landing point position, includes:
[0029] The cumulative total error of the capture point is limited and adjusted using a preset proportional coefficient to obtain an adjustment value, which is then used as the compensation amount for the landing position of the robot's swing leg.
[0030] The adjusted landing point position is obtained by adding the compensation amount to the planned landing point position.
[0031] In some embodiments, the replanning of the motion trajectory of the robot's swinging leg based on the adjusted foot position includes:
[0032] The starting point is selected when the capture point error or the cumulative total capture point error exceeds a preset threshold range, and the adjusted landing point is selected as the ending point. The motion trajectory of the swing leg is then replanned using a smooth curve.
[0033] In some embodiments, the smooth curve includes any one of a cubic polynomial curve, a quintic polynomial curve, a cosine curve, and a cycloid curve.
[0034] Secondly, embodiments of this application also provide a robot walking control device, comprising:
[0035] The acquisition module is used to acquire the center of mass state of the robot in each control cycle, including the planned center of mass state and the measured center of mass state;
[0036] An error calculation module is used to calculate the capture point error of the robot in each control cycle based on the planned centroid state and the measured centroid state.
[0037] The error accumulation module is used to accumulate the capture point error for each control cycle to obtain the total accumulated capture point error.
[0038] The landing point adjustment module is used to adjust the landing point position of the robot's swing leg based on the cumulative total error of the capture point when the capture point error or the cumulative total error of the capture point exceeds a preset threshold range.
[0039] The motion control module is used to replan the motion trajectory of the robot's swing leg based on the adjusted foot position, so as to control the movement of the swing leg according to the replanned motion trajectory.
[0040] Thirdly, embodiments of this application also provide a bipedal robot, the bipedal robot including a processor and a memory, the memory storing a computer program, and the processor executing the computer program to implement the robot walking control method.
[0041] Fourthly, embodiments of this application also provide a computer-readable storage medium storing a computer program, which, when executed, implements the robot walking control method.
[0042] The embodiments of this application have the following advantages:
[0043] The robot walking control method proposed in this application acquires the robot's center of mass state in each control cycle and calculates the capture point error using the planned and measured center of mass states. The capture point error for each control cycle is accumulated to obtain the total accumulated capture point error. When the capture point error or the total accumulated capture point error exceeds a preset threshold, the landing position of the robot's swing leg is adjusted based on the total accumulated capture point error. The swing leg movement is controlled to ensure the robot lands at the adjusted landing position. This method allows the robot to land smoothly without falling when subjected to external disturbances. Attached Figure Description
[0044] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of this application and should not be regarded as a limitation of the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0045] Figure 1 A schematic diagram of the structure of a robot according to an embodiment of this application is shown;
[0046] Figure 2 A first flowchart of a robot walking control method according to an embodiment of this application is shown;
[0047] Figure 3 A schematic diagram of a robot simplified to a linear inverted pendulum model according to an embodiment of this application is shown;
[0048] Figure 4 This paper illustrates a schematic diagram of the sagittal plane analysis of a linear inverted pendulum model according to an embodiment of this application.
[0049] Figure 5 A second flowchart of a robot walking control method according to an embodiment of this application is shown;
[0050] Figure 6 This illustration shows a schematic diagram of adjusting the robot's foot position in the sagittal plane according to an embodiment of this application;
[0051] Figure 7 A third flowchart of a robot walking control method according to an embodiment of this application is shown;
[0052] Figure 8 A schematic diagram of a robot walking control device according to an embodiment of this application is shown. Detailed Implementation
[0053] The technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments.
[0054] The components of the embodiments of this application described and illustrated in the accompanying drawings can be arranged and designed in a variety of different configurations. Therefore, the following detailed description of the embodiments of this application provided in the drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.
[0055] In the following, the terms “comprising,” “having,” and their cognates, which may be used in various embodiments of this application, are intended only to indicate a particular feature, number, step, operation, element, component, or combination thereof, and should not be construed as excluding, firstly, the presence of one or more other features, numbers, steps, operations, elements, components, or combinations thereof, or adding the possibility of one or more features, numbers, steps, operations, elements, components, or combinations thereof.
[0056] Furthermore, the terms "first," "second," and "third" are used only to distinguish descriptions and should not be interpreted as indicating or implying relative importance.
[0057] Unless otherwise specified, all terms used herein (including technical and scientific terms) shall have the same meaning as commonly understood by one of ordinary skill in the art to which the various embodiments of this application pertain. Terms (such as those defined in commonly used dictionaries) shall be interpreted as having the same meaning as in their contextual meaning in the relevant technical field and shall not be construed as having an idealized or overly formal meaning, unless clearly defined in the various embodiments of this application.
[0058] Traditional bipedal robot walking control methods mainly rely on real-time control of the ZMP point. While performing well on flat ground, these methods are prone to instability when encountering external disturbances. Therefore, this application proposes a robot walking control method based on capture point error. A controller for online foot placement adjustment is designed to adjust the foot placement position online during the swinging leg phase, thereby adapting to changes in external disturbances and ensuring stable walking under such conditions.
[0059] The technical solution of this application will be described in detail below with reference to some specific embodiments.
[0060] Figure 1 A schematic diagram of a robot according to an embodiment of this application is shown. Exemplarily, the robot mainly includes a processor 11, a memory 12, and a sensing unit 13, wherein the memory 12 and the sensing unit 13 are both connected to the processor 11. The memory 12 stores a corresponding computer program, and the processor 11 executes the computer program to implement the robot walking control method in the embodiment of this application, thereby ensuring that the robot can land smoothly when subjected to external force disturbance.
[0061] The processor 11 can be an integrated circuit chip with signal processing capabilities. The processor 11 can be a general-purpose processor, including at least one of a Central Processing Unit (CPU), Graphics Processing Unit (GPU), Network Processor (NP), Digital Signal Processor (DSP), Application-Specific Integrated Circuit (ASIC), Field-Programmable Gate Array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The general-purpose processor can be a microprocessor or any conventional processor, capable of implementing or executing the methods, steps, and logic block diagrams disclosed in the embodiments of this application.
[0062] The memory 12 may be, but is not limited to, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc. The memory 12 is used to store computer programs, and the processor can execute the computer programs accordingly after receiving execution instructions.
[0063] The sensing unit 13 mainly refers to the sensors installed on the robot. These sensors transmit necessary external information and its own state information to the robot's control system, thereby providing the necessary conditions for the robot's decision-making. In some cases, these sensors can be divided into internal sensors and external sensors. Internal sensors are functional elements used to measure the robot's own state. Their function is to measure kinematic and mechanical quantities, allowing the robot to perceive its own motion state and move according to specified parameters such as position, trajectory, and speed. For example, internal sensors include, but are not limited to, position or angle sensors, six-dimensional force / torque sensors, and attitude sensors installed at corresponding joints or torso. For instance, the actual position of the robot's ZMP point can be measured by six-dimensional force / torque sensors or pressure sensors. External sensors mainly perceive the robot's environment and the mutual information between the robot and its environment, including visual and force information, specifically including but not limited to proximity sensors and vision sensors. It should be understood that the sensors listed above can be selectively installed according to the actual application scenario of the robot.
[0064] For example, the robot 10 can be a bipedal humanoid robot, or a triped or multi-legged robot. Taking a bipedal robot as an example, the robot has a torso (also called the waist) and two mechanical legs connected to the torso. These two mechanical legs are driven by corresponding joint motors to alternate positions, thereby achieving a function similar to human bipedal walking. It can be understood that during the walking process of this bipedal robot, the robot walking control method in the embodiments of this application can be used to maintain balance when the robot is suddenly disturbed by external forces during walking.
[0065] Based on the above structure of the robot 10, the robot walking control method of this application is described below.
[0066] Figure 2 A flowchart of a robot walking control method according to an embodiment of this application is shown. Exemplarily, the robot walking control method includes the following steps:
[0067] S110, Obtain the center of mass state of the robot in each control cycle, the center of mass state includes the planned center of mass state and the measured center of mass state.
[0068] As an example, during walking control, the robot acquires two centroid states in real time: a pre-planned centroid state for each control cycle (i.e., the planned centroid state) and a measured and evaluated centroid state (i.e., the measured centroid state). Then, the deviation between these two centroid states in each control cycle is used to calculate the robot's capture point error.
[0069] Each of the above-mentioned centroid states includes the robot's centroid position and centroid velocity, and optionally, centroid acceleration, etc., which can be obtained according to actual needs.
[0070] The planned center-of-mass state is typically obtained from the pre-planned trajectory of the robot's center-of-mass. It's understandable that to enable the robot to complete the desired walking task, the trajectory of its center-of-mass needs to be planned in advance. For example, for a bipedal robot, a linear inverted pendulum model can be used to simplify the robot; then, the dynamic equations of the constructed linear inverted pendulum are used to plan the robot's center-of-mass trajectory. The planned trajectory reflects the robot's center-of-mass position in each control cycle. By further differentiating the planned trajectory, the planned center-of-mass velocity and acceleration for each control cycle can be obtained.
[0071] For measuring the center of mass state, data can be acquired in real time and further estimated using sensors installed in the robot, such as inertial measurement units (IMUs) located in the robot's torso and six-dimensional force / torque sensors located at the end effector. However, the raw data generated by the sensors may contain a large amount of redundant information and high-frequency noise, which could degrade subsequent control performance. Therefore, state estimation is used for filtering to smooth the sensor data and remove noise, thus providing more accurate and reliable information about the robot's actual center of mass state.
[0072] In this embodiment, a control cycle refers to the time required for the robot to complete one control operation. Typically, a control cycle includes the entire process from the robot's locomotion controller acquiring sensor data to calculating control commands, and then sending the commands to the motors to drive the joints. It is understood that a robot's task usually requires multiple consecutive control cycles to complete. For example, the control cycle can be in the millisecond range.
[0073] S120, calculate the robot's capture point error for each control cycle based on the planned centroid state and the measured centroid state.
[0074] When a robot encounters an external thrust, it remains at or moves towards a point on the ground. This point allows the robot to regain balance, with zero kinetic energy; this is the capture point (CP). Typically, during normal movement, there may be a small positional error between the theoretical and actual capture points, but this does not affect the robot's balance. Conversely, if the capture point error suddenly increases or exceeds the allowable error range, it indicates that the robot may be subject to external disturbance. Based on this, this application calculates the capture point error in real time by acquiring two centroid states. Especially when the robot is subjected to external disturbances, the capture point error or accumulated capture point error will change significantly. Therefore, the robot can analyze whether it is subject to external disturbances for further processing.
[0075] Exemplarily, the planned capture point of the robot can be calculated based on the planned centroid state of the current control cycle, and the measured capture point of the robot can be calculated based on the measured centroid state of the current control cycle. Furthermore, the deviation between the planned capture point and the measured capture point is used as the capture point error of the current control cycle.
[0076] The calculation methods for calculating the planned capture point from the planned centroid state and the calculated measurement capture point from the measured centroid state are the same. For example, in one embodiment, calculating the capture point based on the centroid state includes: calculating the robot's capture point for the current control cycle based on the robot's centroid position, centroid velocity, and the oscillation frequency when the robot is simplified to a linear inverted pendulum model.
[0077] First, the robot is simplified to a linear inverted pendulum model, which consists of a center of mass and one retractable, lightweight leg. In this embodiment, the robot's torso motion control is equivalent to the trajectory control of the center of mass in this simplified model, and the two mechanical legs are respectively regarded as retractable links in the model, such as... Figure 3 As shown. To facilitate the description of motion direction, a coordinate system is established on the horizontal plane where the supporting leg ankle joint is located. The origin of the coordinate system is located at the supporting leg ankle joint, the x-axis points forward (also known as the forward direction), the y-axis points laterally, and the z-axis points perpendicular to the ground. Furthermore, based on the linear inverted pendulum model, as... Figure 4 As shown, in the sagittal plane (corresponding to the x-direction), the following dynamic equations of the robot can be constructed:
[0078]
[0079] in,
[0080] In the formula, Let x be the acceleration of the center of mass. c p is the location of the center of mass. x Let ω be the position of the ZMP point; ω is the oscillation frequency of the linear inverted pendulum, which is a value relative to the height of the center of mass Z of the linear inverted pendulum model. c The relevant constant is g, where g is the acceleration due to gravity.
[0081] In the linear inverted pendulum model, the capture point is a support point that allows the pendulum to come to a complete stop. In other words, during motion, if the robot lands on the capture point, it can achieve either static or dynamic equilibrium. Therefore, according to the definition of the capture point, the position ξ of the capture point... x With the position of the center of mass x c Center of mass velocity The following relationship must be satisfied:
[0082]
[0083] Therefore, the aforementioned planned capture point can be calculated using the planned robot's center of mass position and velocity. Expressed as a formula, we have:
[0084]
[0085] In the formula, ξ plan_x This represents the location of the planning capture point in the x-direction, x plan and These represent the planned centroid position and centroid velocity in the x-direction, respectively.
[0086] Similarly, in the coronal plane (corresponding to the y-direction), the following can be calculated:
[0087]
[0088] In the formula, ξ plan_y This indicates the location of the planning capture point in the y-direction. plan and These represent the planned centroid position and centroid velocity in the x-direction, respectively.
[0089] For measuring the state of the centroid, taking the sagittal plane as an example, let's assume the position of the centroid obtained through state estimation is denoted as x. measure The velocity of the center of mass is denoted as Similarly, based on the definition of the capture point above, the measurement capture point can also be calculated using the formula for calculating the capture point described above. If expressed as a formula, the measurement capture point ξ... measure_x satisfy:
[0090]
[0091] Similarly, within the coronal plane (corresponding to the y-direction), the capture point ξ is measured. measure_y satisfy:
[0092]
[0093] Therefore, in the sagittal plane, the robot's capture point error CP in each control cycle error_x for:
[0094] CP error_x =ξ plan_x -ξ measure_x .
[0095] Similarly, in the coronal plane, the robot's capture point error CP in each control cycle... error_y for:
[0096] CP error_y =ξ plan_y -ξ measure_y .
[0097] S130: Accumulate the capture point error for each control cycle to obtain the total accumulated capture point error.
[0098] As an example, the cumulative capture point error of each leg of the robot in the same gait is calculated separately, and then the cumulative capture point errors of all legs are added together to obtain the total cumulative capture point error used to adjust the position of the foot landing point.
[0099] Typically, the gait of a bipedal robot is periodic, with one gait cycle consisting of multiple control cycles. In one gait cycle, the robot's center of mass moves from behind the supporting foot to in front of it. Laterally, the center of mass gradually moves closer to the supporting foot in the early part of the cycle and then gradually moves away, thus completing one gait cycle. For the two legs of a bipedal robot, in one gait cycle, the left leg is the supporting leg and the right leg is the swinging leg; in the next gait cycle, the left leg is the swinging leg and the right leg is the supporting leg, and so on.
[0100] Regarding the calculation of the cumulative error of the capture point for each leg, in one implementation, for the same leg, when it is in the support phase (i.e., the support leg phase), the capture point error is accumulated; when it is in the swing phase (i.e., the swing leg phase), the cumulative error of the capture point is cleared to zero.
[0101] In the sagittal plane, taking the left leg as an example, during the support phase, if the capture point error is accumulated, then:
[0102]
[0103] In the formula, e lx and These are the accumulated capture point errors for the current control cycle and the previous controller cycle, respectively. It can be understood that the accumulated capture point error for the previous controller cycle is also obtained through accumulation.
[0104] When the left leg is in the swing phase, after clearing the capture point error for each control cycle, we have:
[0105]
[0106] In other words, when the left leg is the supporting leg in the first gait, the capture point error is continuously accumulated. When the next gait is switched to the swing leg, the capture point error calculated in each control cycle will be cleared to zero, and the accumulated capture point error will also be zero.
[0107] Based on the above accumulation principle, during normal walking, the robot has one supporting leg and one swinging leg in any control cycle within each gait. For step S130, it includes:
[0108] Within a gait, the capture point errors of the robot's supporting leg in each control cycle are accumulated to obtain the cumulative capture point error of the supporting leg; and the capture point errors of the robot's swing leg in each control cycle are reset to zero. Then, the cumulative capture point errors of the two legs within the same gait are added together to obtain the total cumulative capture point error of the robot in the current gait. In the sagittal plane, this can be described by the following formula:
[0109] e x =e lx +e rx ;
[0110] In the formula, e x e is the total error accumulated at the capture points of the robot in each control cycle. lx and e rx These represent the cumulative errors at the capture points of the left and right legs in each control cycle.
[0111] Similarly, within the coronal plane, the cumulative error e of the robot's capture points in each control cycle can be obtained by following the steps described above. y This will not be described in detail here.
[0112] It is understandable that since the capture point error of the swing leg is zero in each control cycle, the cumulative capture point error of the swing leg is also zero. Therefore, the total cumulative capture point error of the robot within a gait is equal to the cumulative capture point error of the supporting leg. It is worth noting that this application calculates the total cumulative capture point error of the robot in order to consider the capture point error from the perspective of the robot as a whole, so that the capture point error of each control cycle can be accumulated and passed to the next control cycle, thereby affecting the landing position of the subsequent swing leg.
[0113] S140: Detect whether the capture point error or the cumulative total capture point error exceeds a preset threshold range. If it exceeds the preset threshold range, proceed to step S150; otherwise, online adjustment of the landing point position is not required.
[0114] As an example, by detecting the magnitude of the capture point error in the current control cycle, or by detecting the magnitude of the cumulative total capture point error obtained by continuously accumulating from the current control cycle to previous control cycles, it can be determined whether the robot has been suddenly disturbed by an external force. The sources of this external force disturbance can be varied, such as being pushed or colliding with another object that suddenly enters the system; these are not limited here.
[0115] The preset threshold range is set according to different comparison objects. For example, if the capture point error of the current control cycle is used for judgment, an error threshold range can be set; or, if the cumulative total error of the capture points accumulated over multiple control cycles is used for judgment, a larger cumulative error threshold range can be set.
[0116] S150, when the capture point error or the total cumulative capture point error exceeds the preset threshold range, adjust the landing position of the robot's swing leg based on the total cumulative capture point error.
[0117] As an example, when the capture point error (or the cumulative total capture point error) exceeds a preset threshold range, it indicates that the robot is experiencing an external disturbance. To ensure the robot's balance, the robot's landing point position needs to be adjusted online. Therefore, a compensation amount for the landing point position of the robot's swing leg is calculated based on the cumulative total capture point error. This compensation amount is then used to adjust the planned landing point position of the swing leg, resulting in the adjusted landing point position. Conversely, when the capture point error (or the cumulative total capture point error) is within the preset threshold range, it indicates that the robot is not experiencing an external disturbance, and no online adjustment is required.
[0118] Typically, the movement of the swing leg within a gait consists of first raising the leg to its highest point (the leg-raising phase) and then lowering it to the ground (the leg-landing phase). Alternatively, in practice, since it is uncertain when the robot will be disturbed by external forces, there can be various timing options for compensating for the robot's foot placement.
[0119] As an alternative approach, compensation for the landing point of the robot's swing leg is only performed during the leg-lifting phase. This is because, when the swing leg is in the leg-lifting phase, even if it is disturbed by external forces, the robot has enough time to adjust the movement of the end of the swing leg, thereby ensuring that the swing leg can land at the adjusted landing point, allowing the robot to land smoothly.
[0120] like Figure 5 As shown, before adjusting the planned landing point of the swing leg, the method further includes:
[0121] S210, Detect whether the current end position of the robot's swing leg is in the leg-lifting phase. Here, the current end position refers to the end position of the swing leg when the robot detects an external disturbance (also the moment to determine the foot placement adjustment).
[0122] If the robot is in the leg-lifting phase, then step S230 is executed to adjust the planned landing point of the swing leg in the current gait based on the cumulative total error of the capture point.
[0123] If we are in the landing phase, as the first option, such as Figure 4 As shown, the method also includes:
[0124] S250, if in the landing phase, detect whether the remaining movement time of the swing leg in the current gait is greater than or equal to a preset time threshold. If it is greater than or equal to the preset time threshold, then proceed to step S230.
[0125] Typically, the total swing time of the swing leg within a gait is fixed, and the remaining motion time can be calculated by subtracting the already swung time from the fixed total motion time. If expressed as an expression, the remaining motion time satisfies:
[0126] T = T s -t s ;
[0127] In the formula, T is the remaining motion time. s It is a fixed total oscillation time, t s This represents the current swinging time of the swinging leg. It can be understood that if the remaining motion time is greater than or equal to a set time threshold, it indicates that there is sufficient time for online adjustment of the foot position, and the adjustment operation can be completed within the remaining motion time. Conversely, if it is less than the time threshold, it indicates that the robot may not have enough time to adjust the foot position.
[0128] It is understandable that if the remaining movement time of the swing leg is sufficient, the landing point position can be adjusted online. If it is greater than or equal to a preset time threshold, the planned landing point position of the robot's swing leg in the current gait is adjusted based on the cumulative total error of the capture points.
[0129] For online adjustments during the leg-lifting or leg-landing phases, for example, in one implementation, the step of calculating a compensation amount for the landing point position of the robot's swing leg based on the cumulative total error of the capture points, and using this compensation amount to adjust the planned landing point position of the swing leg, includes:
[0130] As an example, by using a preset proportional coefficient to limit the cumulative total error of the capture point, an adjustment value is obtained, which is then used as the compensation amount for the landing position of the robot's swing leg. Subsequently, this compensation amount is added to the planned landing position to obtain the adjusted landing position.
[0131] If described by a formula, the compensation amount for the landing point position in the sagittal plane is:
[0132] f xe =k x e x ;
[0133] In the formula, f xe k is the compensation amount in the x-direction. x e is the preset scaling factor in the x-direction. x Accumulate the total error for the capture point in the x-direction.
[0134] Similarly, within the coronal plane, the compensation amount for the foot placement position is:
[0135] f ye =k y e y ;
[0136] In the formula, f ye k is the compensation amount in the y-direction. y e is the preset scaling factor in the y-direction. y Accumulate the total error for the capture point in the y-direction.
[0137] It is understandable that the cumulative total error of the capture point will become very large when the robot is disturbed by external forces. Since there is a large dimensional difference between the cumulative total error of the capture point and the value of the robot's landing point, coupled with the limitations of the robot's mechanical structure, a coefficient is needed for proportional mapping, which also serves as a limiting factor. This preset proportional coefficient can be set according to actual needs and is not limited here.
[0138] Furthermore, such as Figure 6 As shown, in the sagittal plane, the adjusted foot position satisfies:
[0139] f x =f xe +f xn ;
[0140] In the formula, f x f represents the adjusted landing point position in the x-direction. xn Let x be the planned landing point position in the x-direction. Similarly, in the coronal plane, the adjusted landing point position satisfies:
[0141] f y =fye +f yn ;
[0142] In the formula, f y f represents the adjusted landing point position in the y-direction. yn The location of the landing point in the y-direction planning.
[0143] If the process is in the landing phase, as a second alternative, for step S250 above, the method further includes:
[0144] S270, if the remaining motion time is less than the preset time threshold, the landing position of the robot's swing leg in the next step is replanned based on the total accumulated error of the capture points accumulated in the current gait.
[0145] It is understandable that if the remaining motion time of the swing leg in the current gait is insufficient, since this application calculates the total cumulative error of the robot's overall capture points, when entering the transition phase of the next gait, since the total cumulative error of the robot's capture points in the current gait is not zero, it can be passed on to the next gait, thereby affecting the replanning of the landing point position of the swing leg in the next gait.
[0146] In addition, as a third option, for step S210 above, if it is in the landing stage, the landing point position is not adjusted.
[0147] S160 controls the movement of the swinging leg so that the robot lands at the adjusted foot position.
[0148] As an example, after calculating the adjusted landing point position through the above steps, the end of the swing leg is controlled to move toward the adjusted landing point position until it lands. This ensures that the robot can still land in balance without falling when it is disturbed by external forces.
[0149] As an optional solution for step S160, such as Figure 7 As shown, before controlling the swing leg movement, the trajectory of the swing leg is replanned. Exemplarily, this method includes:
[0150] S170, based on the adjusted landing point position, replans the motion trajectory of the robot's swing leg, and controls the movement of the swing leg according to the replanned motion trajectory so that the robot lands at the adjusted landing point position.
[0151] For example, after obtaining the adjusted landing point position, the starting point can be selected when the capture point error or the total cumulative error of the capture point exceeds a preset threshold range, and the adjusted landing point position can be used as the ending point. Then, the motion trajectory can be replanned using a smooth curve.
[0152] The smooth curve mentioned above may include, but is not limited to, any one of cubic polynomial curves, quintic polynomial curves, cosine curves, and cycloid curves.
[0153] In one implementation, the positions and velocities of the two points mentioned above can be selected for replanning. For example, taking a cubic polynomial curve as an example, a cubic spline interpolation method can be used to plan the new swing leg motion trajectory. If described by an expression, we have:
[0154] s(t) = at 3 +bt 2 +ct+d;
[0155] in,
[0156]
[0157] c = v0;
[0158] d = x0;
[0159] In the formula, s(t) is the trajectory of the swing leg at the end, t is the current control cycle, a, b, c and d are curve coefficients, T is the remaining motion time of the swing leg, (x0,v0) is the position and velocity of the starting point, and (x1,v1) is the position and velocity of the ending point. When the swing leg touches the ground, the velocity of the ending point is v1 = 0.
[0160] Therefore, the position and velocity of the swing leg's end point in the next control cycle can be obtained from the replanned motion trajectory of the swing leg, i.e. .
[0161] It is understandable that, due to the adjustment of the planned landing point of the swing leg, and by replanning the motion trajectory using two points, on the one hand, the smoothness of the swing leg's end position and speed can be ensured, making the swing leg's movement more gentle, reducing abrupt movements and sudden impacts, thereby improving the robot's overall stability. On the other hand, smooth movement reduces the impact and wear on the robot's internal joint components, extending the robot's service life.
[0162] The robot walking control method in this embodiment starts with the capture point error. By accumulating the capture point error, it calculates the compensation amount for the landing point position when subjected to external force disturbances, and then adjusts the landing point online. Furthermore, it uses the end effector position and velocity when subjected to external force disturbances, combined with the adjusted landing point position, to replan the motion trajectory of the robot's swing leg, thereby achieving smooth swing leg movement. This method can handle the robot's balance maintenance when subjected to external force disturbances, and is applicable not only to flat ground but also to irregular terrain, enhancing the robot's adaptability.
[0163] Figure 8 A schematic diagram of a robot walking control device 100 according to an embodiment of this application is shown. Exemplarily, the robot walking control device 100 includes:
[0164] The acquisition module 110 is used to acquire the center of mass state of the robot in each control cycle, the center of mass state including the planned center of mass state and the measured center of mass state.
[0165] The error calculation module 130 is used to calculate the capture point error of the robot in each control cycle based on the planned centroid state and the measured centroid state.
[0166] The error accumulation module 150 is used to accumulate the capture point error for each control cycle to obtain the total accumulated capture point error.
[0167] The landing point adjustment module 170 is used to adjust the landing point position of the robot's swing leg based on the cumulative total error of the capture point when the capture point error or the cumulative total error of the capture point exceeds a preset threshold range.
[0168] The motion control module 190 is used to control the movement of the swing leg so that the robot lands at the adjusted foot position.
[0169] As an optional solution, the robot walking control device 100 also includes:
[0170] The trajectory replanning module 180 is used to replan the motion trajectory of the robot's swing leg based on the adjusted foot position, and obtain the replanned motion trajectory.
[0171] Accordingly, the motion control module 190 is used to control the movement of the swing leg according to the replanned motion trajectory so that the robot lands at the adjusted foot position.
[0172] It is understood that the device in this embodiment corresponds to the robot walking control method in the above embodiment, and the options in the above embodiment are also applicable to this embodiment, so they will not be described again here.
[0173] This application also provides a computer-readable storage medium for storing the computer program used in the bipedal robot described above. For example, the computer-readable storage medium may include, but is not limited to, various media capable of storing program code, such as a USB flash drive, a portable hard drive, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.
[0174] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can also be implemented in other ways. The apparatus embodiments described above are merely illustrative. For example, the flowcharts and block diagrams in the accompanying drawings show the architecture, functionality, and operation of possible implementations of apparatus, methods, and computer program products according to various embodiments of this application. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that, in alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0175] In addition, the functional modules or units in the various embodiments of this application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.
[0176] If the aforementioned functions are implemented as software functional modules and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, essentially, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a smartphone, personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0177] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.
Claims
1. A robot walking control method, characterized in that, include: The center of mass state of the robot is obtained for each control cycle, including the planned center of mass state and the measured center of mass state; The capture point error of the robot in each control cycle is calculated based on the planned centroid state and the measured centroid state. The capture point error for each control cycle is accumulated to obtain the total accumulated capture point error; When the capture point error or the total cumulative capture point error exceeds a preset threshold range, detect whether the current end position of the robot's swing leg is in the leg-lifting stage; If the robot is in the leg-lifting phase or the leg-landing phase and the remaining movement time of the swing leg in the current gait is greater than or equal to a preset time threshold, the landing point position of the robot's swing leg in the current gait is adjusted based on the cumulative total error of the capture point. The robot's swing leg is replanned based on the adjusted landing point position, and the movement of the swing leg is controlled according to the replanned movement trajectory so that the robot lands at the adjusted landing point position.
2. The robot walking control method according to claim 1, characterized in that, The calculation of the robot's capture point error for each control cycle based on the planned centroid state and the measured centroid state includes: The planned capture point and the measured capture point of the robot are calculated based on the planned centroid state and the measured centroid state of the current control cycle, respectively, and the deviation between the planned capture point and the measured capture point is used as the capture point error of the current control cycle.
3. The robot walking control method according to claim 2, characterized in that, The center of mass state includes the robot's center of mass position and center of mass velocity. The capture point is calculated based on the center of mass state in the current control cycle, including: The capture point of the robot in the current control cycle is calculated based on the robot's center of mass position, center of mass velocity, and oscillation frequency when the robot is simplified to a linear inverted pendulum model.
4. The robot walking control method according to claim 1, characterized in that, The accumulation of the capture point error for each control cycle to obtain the total accumulated capture point error includes: The capture point error of the robot's supporting leg in each control cycle within a gait is accumulated to obtain the accumulated capture point error of the supporting leg; and the accumulated capture point error of the robot's swing leg in each control cycle within the same gait is cleared to zero. The cumulative errors of the capture points of each leg are summed to obtain the total cumulative error of the robot's capture points.
5. The robot walking control method according to claim 1, characterized in that, Also includes: If the landing phase is underway, the aforementioned adjustments will not be made; or, If the robot is in the landing phase and the remaining movement time of the swing leg in the current gait is less than the preset time threshold, then the landing position of the swing leg in the next step is replanned based on the total accumulated error of the capture point in the current gait.
6. The robot walking control method according to claim 1 or 5, characterized in that, The adjustment of the landing point position of the robot's swing leg based on the cumulative total error of the capture points includes: The compensation amount for the landing point position of the robot's swing leg is calculated based on the cumulative total error of the capture point, and the planned landing point position of the swing leg is adjusted using the compensation amount to obtain the adjusted landing point position.
7. The robot walking control method according to claim 6, characterized in that, The step of calculating the compensation amount for the landing point position of the robot's swing leg based on the cumulative total error of the capture point, and adjusting the planned landing point position of the swing leg using the compensation amount to obtain the adjusted landing point position, includes: The cumulative total error of the capture point is limited and adjusted using a preset proportional coefficient to obtain an adjustment value, which is then used as the compensation amount for the landing position of the robot's swing leg. The adjusted landing point position is obtained by adding the compensation amount to the planned landing point position.
8. The robot walking control method according to claim 2, characterized in that, The replanning of the motion trajectory of the robot's swinging leg based on the adjusted foot position includes: The starting point is selected when the capture point error or the cumulative total capture point error exceeds a preset threshold range, and the adjusted landing point is selected as the ending point. The motion trajectory of the swing leg is then replanned using a smooth curve.
9. The robot walking control method according to claim 8, characterized in that, The smooth curve includes any one of a cubic polynomial curve, a quintic polynomial curve, a cosine curve, and a cycloid curve.
10. A robot walking control device, characterized in that, include: The acquisition module is used to acquire the center of mass state of the robot in each control cycle, including the planned center of mass state and the measured center of mass state; An error calculation module is used to calculate the capture point error of the robot in each control cycle based on the planned centroid state and the measured centroid state. The error accumulation module is used to accumulate the capture point error for each control cycle to obtain the total accumulated capture point error. The foot placement adjustment module is used to detect whether the current end position of the robot's swing leg is in the leg-lifting stage when the capture point error or the cumulative total capture point error exceeds a preset threshold range; if it is in the leg-lifting stage, or if it is in the leg-landing stage and the remaining movement time of the swing leg in the current gait is greater than or equal to a preset time threshold, then the foot placement position of the robot's swing leg in the current gait is adjusted based on the cumulative total capture point error; The motion control module is used to replan the motion trajectory of the robot's swing leg based on the adjusted landing point position, so as to control the movement of the swing leg according to the replanned motion trajectory, so that the robot lands at the adjusted landing point position.
11. A bipedal robot, characterized in that, The bipedal robot includes a processor and a memory, the memory storing a computer program, and the processor executing the computer program to implement the robot walking control method according to any one of claims 1-9.
12. A computer-readable storage medium, characterized in that, It stores a computer program, which, when executed, implements the robot walking control method according to any one of claims 1-9.
Citation Information
Patent Citations
Robot control method and device, computer readable storage medium and robot
CN113927584A
Biped robot stable motion planning method based on motion state classification
CN118444564A