Inertial navigation methods, devices, electronic equipment, storage media, and software products for quadrupedal robotic dogs.
By installing inertial measurement units on the mechanical legs of a quadruped robot dog and using a zero-velocity correction algorithm to determine the landing time of the mechanical legs, the problem of unstable positioning of the quadruped robot dog on different terrains was solved, achieving high-precision autonomous navigation, reducing reliance on expensive sensors, and expanding application scenarios.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-01
- Publication Date
- 2026-03-10
AI Technical Summary
Existing inertial navigation methods for quadruped robot dogs are prone to slippage on smooth surfaces and ground deformation on grass or muddy ground, leading to unstable positioning and error accumulation. This makes it difficult to achieve high-precision positioning in multiple scenarios, and the reliance on expensive sensors such as LiDAR and cameras increases the weight of the device and limits its application scenarios.
By installing inertial measurement units on the mechanical legs of a quadruped robot dog, inertial data is collected to determine the landing time of the mechanical legs. The integral velocity of the mechanical legs is corrected to zero, and the zero velocity is used as an observation to update the navigation state variable. The quadruped robot dog is positioned using a zero velocity correction algorithm, and error correction is performed by relying on the inertial measurement units.
It has achieved stable and reliable positioning of quadruped robot dogs on different terrains, reduced reliance on expensive sensors, expanded application scenarios, improved navigation autonomy and accuracy, and reduced equipment weight.
Smart Images

Figure CN119394299B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of robotics, and more particularly to a method, apparatus, electronic device, computer-readable storage medium, and computer program product for inertial navigation of a quadrupedal robot dog. Background Technology
[0002] Robotics technology develops machines capable of performing specific tasks, playing a vital role in manufacturing, disaster relief, and resource exploration. Currently, wheeled robots dominate the robotics field. These robots move by driving wheels with motors, and their implementation methods and control schemes are relatively simple. However, the design of wheels prevents wheeled robots from traversing obstacles, operating on uneven surfaces, and is inefficient when turning. To address these shortcomings, more and more researchers are turning their attention to legged robots.
[0003] Legged robots, which use legs instead of wheels, offer greater freedom of movement and can move freely in various environments. Quadrupedal robot dogs are one type of legged robot. They are smaller, have even greater freedom of movement, and have broad application prospects in disaster relief, resource exploration, and other fields.
[0004] To further promote the use of quadruped robot dogs, stable and reliable positioning on various terrains is necessary. Since the movement of the quadruped robot dog is entirely driven by motors propelling its mechanical legs, some researchers have used the motor output to determine its position. However, in practical applications, quadruped robot dogs moving on smooth surfaces may slip; on grassy or muddy ground, factors such as ground deformation may occur.
[0005] Since relying solely on motors for positioning is unreliable, researchers have introduced inertial measurement units (IMUs) from the navigation field. IMUs can provide high-precision navigation results in a short time, but they suffer from error drift, leading to significant navigation errors over extended periods. To address the problem of accumulated errors, LiDAR, cameras, and other sensors have been introduced, using multi-source fusion methods to limit the divergence errors of the IMU. However, these sensors are expensive, and deploying them on a quadruped robot increases its overall weight. Furthermore, they are difficult to operate normally in extreme environments, limiting the application scenarios of quadruped robot dogs.
[0006] In summary, the application of quadruped robot dogs relies heavily on stable and reliable navigation. However, current navigation methods suffer from limitations in application scenarios and short reliable operating times, making it difficult to achieve high-precision positioning for quadruped robot dogs in various scenarios. In practical use, quadruped robot dogs operate in environments with degraded visual features, and their operating time must meet application requirements. Current methods struggle to achieve long-term, high-precision positioning in extreme environments, hindering the further adoption and promotion of quadruped robot dogs. Summary of the Invention
[0007] This disclosure provides an inertial navigation technology solution for a quadruped robot dog.
[0008] According to one aspect of this disclosure, an inertial navigation method for a quadruped robot dog is provided, comprising:
[0009] The inertial data of the mechanical legs is collected by an inertial measurement unit installed on the mechanical legs of the quadruped robot dog.
[0010] Based on the inertial data, determine the landing time of the mechanical leg;
[0011] At the moment of landing, the integral velocity of the mechanical leg is corrected to zero;
[0012] Using zero speed as the observation, update the navigation state variables of the quadruped robot dog.
[0013] In one possible implementation, the inertial data includes acceleration and angular velocity;
[0014] Determining the landing time of the mechanical leg based on the inertial data includes:
[0015] If, at any given moment, the magnitude of the acceleration at that moment is less than an acceleration magnitude threshold, and the magnitude of the angular velocity at that moment is less than an angular velocity magnitude threshold, then that moment is determined to be the landing moment of the mechanical leg.
[0016] In one possible implementation, updating the navigation state variables of the quadruped robot dog by taking zero speed as the observation includes:
[0017] Zero velocity is used as the observation input to the Kalman filter;
[0018] The navigation state variables of the quadruped robot dog are updated using the Kalman filter.
[0019] In one possible implementation, the navigation state variables include at least the following: position, heading, and speed.
[0020] In one possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the method further includes:
[0021] Based on the results of the turntable calibration, the scaling factor matrix and zero bias of the accelerometer, as well as the scaling factor matrix and zero bias of the gyroscope, are determined.
[0022] The acceleration output by the accelerometer is compensated based on the scaling factor matrix and zero bias of the accelerometer.
[0023] The angular velocity output by the gyroscope is compensated based on the scaling factor matrix and zero bias of the gyroscope.
[0024] In one possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the method further includes:
[0025] Control the quadruped robot dog to remain stationary for a preset duration;
[0026] The zero bias of the accelerometer is determined based on the average value of the acceleration output by the accelerometer during the stationary phase.
[0027] The zero bias of the gyroscope is determined based on the average value of the angular velocity output by the gyroscope during the stationary phase.
[0028] The acceleration output by the accelerometer is compensated based on the zero bias of the accelerometer.
[0029] The angular velocity output by the gyroscope is compensated based on the zero bias of the gyroscope.
[0030] In one possible implementation, the method further includes:
[0031] The initial acceleration of the inertial measurement unit in the carrier coordinate system and the initial heading of the inertial measurement unit in the navigation coordinate system are multiplied by a dot product to obtain the dot product result.
[0032] Based on the dot product result, determine the angle between the carrier coordinate system and the navigation coordinate system;
[0033] The initial heading of the inertial measurement unit is determined using the included angle.
[0034] In one possible implementation, the method further includes:
[0035] Obtain the latitude and longitude information of the location of the inertial measurement unit;
[0036] Calculate the Earth's rotational angular velocity at the location based on the latitude and longitude information;
[0037] The initial heading of the inertial measurement unit relative to the fixed Earth reference frame is determined using the Earth's rotation angular velocity and the angular velocity measured by the inertial measurement unit.
[0038] In one possible implementation, the method further includes:
[0039] Navigation is performed using four inertial measurement units arranged on the four mechanical legs of the quadruped robot dog, and the navigation state variables of the four mechanical legs are obtained.
[0040] Kinematic constraints are applied to the navigation state variables of the four mechanical legs.
[0041] In one possible implementation, the kinematic constraints on the navigation state variables of the four robotic legs include:
[0042] The four mechanical legs are divided into two pairs of mechanical legs;
[0043] For any pair of robotic legs, in response to one of the robotic legs landing, the distance between the other robotic leg and the first robotic leg is determined;
[0044] In response to the distance being greater than or equal to a distance threshold corresponding to the pair of robotic legs, a reference position of the other robotic leg is determined based on the distance threshold;
[0045] The position of the other mechanical leg is corrected to the reference position.
[0046] In one possible implementation, the method further includes:
[0047] In response to the simultaneous landing of two mechanical legs in the mechanical leg pair, the distance between the two mechanical legs is obtained through a motor encoder, and the distance threshold corresponding to the mechanical leg pair is obtained.
[0048] In one possible implementation, the kinematic constraints on the navigation state variables of the four robotic legs include:
[0049] In response to a heading deviation between any two of the four robotic legs being greater than or equal to an angle threshold, a heading correction is performed based on the heading of the other two robotic legs.
[0050] In one possible implementation, the method further includes:
[0051] Based on the inertial data, the ground type where the quadruped robot dog is located is identified;
[0052] Based on the ground type, determine the acceleration modulus threshold and the angular velocity modulus threshold.
[0053] In one possible implementation, identifying the ground type where the quadruped robot dog is located based on the inertial data includes:
[0054] The inertial data is input into a pre-trained long short-term memory network, which identifies the ground type where the quadruped robot dog is located.
[0055] In one possible implementation,
[0056] Before inputting the inertial data into the pre-trained long short-term memory network, the method further includes: performing Gaussian filtering on the inertial data;
[0057] After identifying the ground type where the quadruped robot dog is located through the long short-term memory network, the method further includes: performing mean filtering and continuity judgment on the output of the long short-term memory network.
[0058] According to one aspect of this disclosure, a quadruped robot dog inertial navigation device is provided, comprising:
[0059] The acquisition module is used to acquire inertial data of the mechanical legs by means of an inertial measurement unit installed on the mechanical legs of the quadruped robot dog;
[0060] The first determining module is used to determine the landing time of the mechanical leg based on the inertial data;
[0061] A correction module is used to correct the integral velocity of the mechanical leg to zero at the moment of landing;
[0062] An update module is used to update the navigation state variables of the quadruped robot dog by taking zero speed as the observation.
[0063] In one possible implementation, the inertial data includes acceleration and angular velocity;
[0064] The first determining module is used for:
[0065] If, at any given moment, the magnitude of the acceleration at that moment is less than an acceleration magnitude threshold, and the magnitude of the angular velocity at that moment is less than an angular velocity magnitude threshold, then that moment is determined to be the landing moment of the mechanical leg.
[0066] In one possible implementation, the update module is used to:
[0067] Zero velocity is used as the observation input to the Kalman filter;
[0068] The navigation state variables of the quadruped robot dog are updated using the Kalman filter.
[0069] In one possible implementation, the navigation state variables include at least the following: position, heading, and speed.
[0070] In one possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the device further includes:
[0071] The second determining module is used to determine the scaling factor matrix and zero bias of the accelerometer, and the scaling factor matrix and zero bias of the gyroscope, based on the results of the turntable calibration.
[0072] The first acceleration compensation module is used to compensate the acceleration output by the accelerometer based on the scaling factor matrix and zero bias of the accelerometer.
[0073] The first angular velocity compensation module is used to compensate the angular velocity output by the gyroscope based on the scaling factor matrix and zero bias of the gyroscope.
[0074] In one possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the device further includes:
[0075] The control module is used to control the quadruped robot dog to remain stationary for a preset duration;
[0076] The third determining module is used to determine the zero bias of the accelerometer based on the average value of the acceleration output by the accelerometer during the stationary phase.
[0077] The fourth determining module is used to determine the zero bias of the gyroscope based on the average value of the angular velocity output by the gyroscope during the stationary phase.
[0078] The second acceleration compensation module is used to compensate the acceleration output by the accelerometer based on the zero bias of the accelerometer.
[0079] The second angular velocity compensation module is used to compensate the angular velocity output by the gyroscope based on the zero bias of the gyroscope.
[0080] In one possible implementation, the device further includes:
[0081] The dot product module is used to perform a dot product operation on the initial acceleration of the inertial measurement unit in the carrier coordinate system and the initial heading of the inertial measurement unit in the navigation coordinate system to obtain the dot product result;
[0082] The fifth determining module is used to determine the angle between the carrier coordinate system and the navigation coordinate system based on the dot product result;
[0083] The sixth determining module is used to determine the initial heading of the inertial measurement unit using the included angle.
[0084] In one possible implementation, the device further includes:
[0085] The first acquisition module is used to acquire the latitude and longitude information of the location of the inertial measurement unit;
[0086] The calculation module is used to calculate the Earth's rotational angular velocity at the location based on the latitude and longitude information;
[0087] The seventh determining module is used to determine the initial heading of the inertial measurement unit relative to the fixed Earth reference frame by using the Earth's rotation angular velocity and the angular velocity measured by the inertial measurement unit.
[0088] In one possible implementation, the device further includes:
[0089] The navigation module is used to navigate based on four inertial measurement units arranged on the four mechanical legs of the quadruped robot dog, and to obtain the navigation state variables of the four mechanical legs.
[0090] The kinematic constraint module is used to perform kinematic constraints on the navigation state variables of the four mechanical legs.
[0091] In one possible implementation, the kinematic constraint module is used for:
[0092] The four mechanical legs are divided into two pairs of mechanical legs;
[0093] For any pair of robotic legs, in response to one of the robotic legs landing, the distance between the other robotic leg and the first robotic leg is determined;
[0094] In response to the distance being greater than or equal to a distance threshold corresponding to the pair of robotic legs, a reference position of the other robotic leg is determined based on the distance threshold;
[0095] The position of the other mechanical leg is corrected to the reference position.
[0096] In one possible implementation, the device further includes:
[0097] The second obtaining module is used to obtain the distance between the two mechanical legs in the mechanical leg pair in response to the simultaneous landing of the two mechanical legs by a motor encoder, and obtain the distance threshold corresponding to the mechanical leg pair.
[0098] In one possible implementation, the kinematic constraint module is used for:
[0099] In response to a heading deviation between any two of the four robotic legs being greater than or equal to an angle threshold, a heading correction is performed based on the heading of the other two robotic legs.
[0100] In one possible implementation, the device further includes:
[0101] The ground type recognition module is used to identify the ground type where the quadruped robot dog is located based on the inertial data;
[0102] The eighth determining module is used to determine the acceleration modulus threshold and the angular velocity modulus threshold according to the ground type.
[0103] In one possible implementation, the ground type identification module is used for:
[0104] The inertial data is input into a pre-trained long short-term memory network, which identifies the ground type where the quadruped robot dog is located.
[0105] In one possible implementation, the device further includes:
[0106] A Gaussian filtering module is used to perform Gaussian filtering on the inertial data;
[0107] The outlier handling module is used to perform mean filtering and continuity judgment on the output results of the long short-term memory network.
[0108] According to one aspect of this disclosure, an electronic device is provided, comprising: one or more processors; a memory for storing executable instructions; wherein the one or more processors are configured to invoke the executable instructions stored in the memory to perform the method described above.
[0109] According to one aspect of this disclosure, a computer-readable storage medium is provided that stores computer program instructions thereon, which, when executed by a processor, implement the above-described method.
[0110] According to one aspect of this disclosure, a computer program product is provided, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, wherein when the computer-readable code is run in an electronic device, a processor in the electronic device performs the above-described method.
[0111] In this embodiment, an inertial measurement unit (IMU) mounted on the mechanical leg of a quadruped robot dog collects inertial data of the leg. Based on this data, the landing moment of the leg is determined. At the landing moment, the integral velocity of the leg is corrected to zero, and this zero velocity is used as an observation to update the navigation state variables of the quadruped robot dog. This zero-velocity correction algorithm is applied to the quadruped robot dog's odometer, enabling positioning using pedestrian navigation methods. This embodiment fixes the IMU to the quadruped robot dog's mechanical leg, allowing for the calculation of navigation information using acceleration and angular velocity information. By introducing the zero-velocity correction algorithm, based on the characteristic that the quadruped robot dog's mechanical leg has zero velocity at the moment of ground contact, the accelerometer error is periodically corrected, thereby suppressing the problem of error accumulation in the IMU. This embodiment relies on the IMU, eliminating the need for additional sensors (such as LiDAR, cameras, etc.), and is independent of the external environment. It corrects errors based on the quadruped robot dog's motion characteristics, making it applicable to a wide range of scenarios. Therefore, this disclosure provides a convenient solution for autonomous dead reckoning by a quadruped robot dog.
[0112] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure.
[0113] Other features and aspects of this disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description
[0114] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the specification, serve to illustrate the technical solutions of this disclosure.
[0115] Figure 1 A flowchart illustrating the inertial navigation method for a quadruped robot dog provided in an embodiment of this disclosure is shown.
[0116] Figure 2 This diagram illustrates the arrangement of the inertial measurement unit on the odometer of the quadrupedal robot dog in the inertial navigation method provided in this embodiment of the present disclosure.
[0117] Figure 3 This diagram illustrates the zero-velocity correction algorithm in the quadruped robot dog inertial navigation method provided in this embodiment.
[0118] Figure 4 This diagram illustrates the positioning test results of the zero-speed correction algorithm on the odometer of a quadruped robot dog in the inertial navigation method provided in this embodiment of the present disclosure.
[0119] Figure 5This diagram illustrates an inertial measurement unit arranged on the four legs of a quadruped robot dog in an inertial navigation method provided in an embodiment of the present disclosure.
[0120] Figure 6 The diagram illustrates a quadruped robot dog positioning error constraint algorithm that combines kinematics and motors in the inertial navigation method for quadruped robots provided in this embodiment of the present disclosure.
[0121] Figure 7 A schematic diagram of different road surfaces is shown.
[0122] Figure 8 This diagram illustrates the structure of the long short-term memory network in the quadruped robot dog inertial navigation method provided in this embodiment of the present disclosure.
[0123] Figure 9 The diagram shows the confusion matrix after training the long short-term memory network in the quadruped robot dog inertial navigation method provided in this embodiment of the present disclosure.
[0124] Figure 10 This diagram illustrates the overall algorithm for detecting the ground contact type of a quadruped robot dog in the inertial navigation method provided in this embodiment of the present disclosure.
[0125] Figure 11 A block diagram of a quadruped robot dog inertial navigation device provided in an embodiment of this disclosure is shown.
[0126] Figure 12 A block diagram of an electronic device 1900 provided in an embodiment of this disclosure is shown. Detailed Implementation
[0127] Various exemplary embodiments, features, and aspects of this disclosure will now be described in detail with reference to the accompanying drawings. The same reference numerals in the drawings denote elements that have the same or similar functions. Although various aspects of the embodiments are shown in the drawings, they are not necessarily drawn to scale unless specifically indicated otherwise.
[0128] The term “exemplary” as used herein means “serving as an example, embodiment, or illustration.” Any embodiment illustrated herein as “exemplary” is not necessarily to be construed as superior to or better than other embodiments.
[0129] In this document, the term "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent three cases: A alone, A and B simultaneously, and B alone. Furthermore, the term "at least one" in this document means any combination of at least two of any one or more elements. For example, including at least one of A, B, and C can mean including any one or more elements selected from the set consisting of A, B, and C.
[0130] Furthermore, to better illustrate this disclosure, numerous specific details are set forth in the following detailed description. Those skilled in the art will understand that this disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art have not been described in detail in order to highlight the main points of this disclosure.
[0131] In summary, the inertial navigation methods for quadruped robot dogs in related technologies have the following drawbacks:
[0132] First, positioning methods that rely on motor output are greatly affected by the environment, dynamic models, and noise, and usually have low accuracy and robustness.
[0133] Second, the quadruped robot dog localization method that relies on inertial measurement units requires a large number of expensive sensors (such as lidar, cameras, etc.), which limits the application scenarios of quadruped robot dogs.
[0134] Third, the positioning method cannot distinguish between different types of ground, making it difficult to achieve high-precision positioning of the quadruped robot dog under various terrain conditions.
[0135] To address the technical problems described above, this disclosure provides an inertial navigation method for a quadruped robot dog. An inertial measurement unit (IMU) mounted on the mechanical leg of the quadruped robot dog collects inertial data from the leg. Based on this data, the landing moment of the leg is determined. At the landing moment, the integral velocity of the leg is corrected to zero, and this zero velocity is used as an observation to update the navigation state variables of the quadruped robot dog. This applies the Zero Velocity Update (ZUPT) algorithm to the quadruped robot dog's odometer, enabling positioning of the quadruped robot dog using pedestrian navigation methods. This disclosure fixes the IMU to the quadruped robot dog's mechanical leg, allowing for the calculation of navigation information using acceleration and angular velocity information. By introducing the zero velocity update algorithm, based on the characteristic that the quadruped robot dog's mechanical leg has zero velocity at the moment of ground contact, the accelerometer error is periodically corrected, thereby suppressing the problem of error accumulation in the IMU. This disclosure relies on an inertial measurement unit (IMU), eliminating the need for additional sensors (such as LiDAR, cameras, etc.) and making it independent of the external environment. It corrects errors based on the motion characteristics of the quadruped robot dog, making it suitable for a wide range of applications. Therefore, this disclosure provides a convenient solution for autonomous dead reckoning using a quadruped robot dog.
[0136] The inertial navigation method for a quadruped robot dog provided in this disclosure will be described in detail below with reference to the accompanying drawings.
[0137] Figure 1A flowchart illustrating the quadrupedal robot dog inertial navigation method provided in an embodiment of this disclosure is shown. In one possible implementation, the executing entity of the quadrupedal robot dog inertial navigation method can be a quadrupedal robot dog inertial navigation device. For example, the quadrupedal robot dog inertial navigation method can be executed by a terminal device, a server, or other electronic devices. The terminal device can be a user equipment (UE), mobile device, user terminal, terminal, cellular phone, cordless phone, personal digital assistant (PDA), handheld device, computing device, vehicle-mounted device, or wearable device, etc. In some possible implementations, the quadrupedal robot dog inertial navigation method can be implemented by a processor calling computer-readable instructions stored in memory. Figure 1 As shown, the quadruped robot dog inertial navigation method includes steps S11 to S14.
[0138] In step S11, inertial data of the mechanical legs is collected by an inertial measurement unit installed on the mechanical legs of the quadruped robot dog.
[0139] In step S12, the landing time of the mechanical leg is determined based on the inertial data.
[0140] In step S13, at the moment of landing, the integral velocity of the mechanical leg is corrected to zero.
[0141] In step S14, zero speed is used as the observation to update the navigation state variables of the quadruped robot dog.
[0142] In this embodiment of the disclosure, an inertial measurement unit (IMU) can be installed on the mechanical legs of a quadruped robot dog. Figure 2 This diagram illustrates the arrangement of the inertial measurement unit on the odometer of the quadruped robot dog in the inertial navigation method provided by an embodiment of this disclosure. Figure 2 As shown, an inertial measurement unit (IMU) can be fixed to the odometer of a quadruped robot dog. Figure 2 (The IMU module in the middle).
[0143] In this embodiment of the disclosure, inertial measurement units (IMUs) fixed to the mechanical legs of a quadruped robot dog can be used to collect inertial data of the robot dog's mechanical legs. Here, inertial data refers to the data collected by the inertial measurement unit. In some application scenarios, inertial data may also be referred to as IMU information, IMU data, etc., and this is not limited thereto.
[0144] In this embodiment of the disclosure, the inertial data collected by the inertial measurement unit may include acceleration and angular velocity. That is, the acceleration and angular velocity of the mechanical legs of the quadruped robot dog can be collected by the inertial measurement unit fixed to the mechanical legs of the quadruped robot dog when it moves.
[0145] In one example, the output frequency of the inertial measurement unit's acceleration and angular velocity can be 104 Hz, without limitation.
[0146] Inertial data may experience packet loss during transmission or processing, meaning some data points may fail to be recorded or transmitted correctly. This could be due to hardware failure, communication interference, or software errors. In one possible implementation, the system can check for packet loss in the inertial data stream during processing. This can be done, for example, by checking the data's timestamps or sequence numbers. If the received time interval or sequence number of the inertial data does not match expectations, packet loss can be detected. Once packet loss is detected, the system needs to decide how to handle this inertial data. For example, if the packet loss is minor, the system can try using other data points to interpolate or estimate the lost inertial data. If the packet loss is severe, or if the integrity of the inertial data is crucial for navigation, the system can decide to discard this inertial data to avoid incorrect navigation decisions due to incomplete inertial data. By checking for packet loss and determining the availability of inertial data accordingly, the system can reduce positioning errors caused by hardware problems (such as sensor failure or communication issues). This is because inaccurate or incomplete inertial data, if used for navigation calculations, can lead to significant deviations in the position and heading estimates of the quadruped robot dog.
[0147] In one possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the method further includes: determining the scaling factor matrix and zero bias of the accelerometer, and the scaling factor matrix and zero bias of the gyroscope, based on the results of turntable calibration; compensating for the acceleration output by the accelerometer based on the scaling factor matrix and zero bias of the accelerometer; and compensating for the angular velocity output by the gyroscope based on the scaling factor matrix and zero bias of the gyroscope.
[0148] Turntable calibration is a calibration process that involves fixing an inertial measurement unit (IMU) to a rotating platform, which rotates according to a known pattern, thereby obtaining the correspondence between the IMU's output data and the actual motion. This process allows the determination of the IMU's error characteristics, namely the scaling factor matrix and zero bias of the accelerometer and gyroscope.
[0149] The scaling factor is a parameter describing the proportional relationship between the sensor output and the actual physical quantity. If the scaling factor is inaccurate, the sensor output may systematically overestimate or underestimate the true value. Zero bias is the sensor's output value when it receives no input (i.e., at rest). Ideally, this value should be zero, but in reality, due to factors such as manufacturing errors, this value may not be zero.
[0150] Based on the turntable calibration results, the scaling factor matrices and zero bias of the accelerometer and gyroscope can be determined. Then, the output data of the accelerometer and gyroscope can be compensated using the scaling factor matrices and zero bias. This means adjusting the raw data to correct these systematic errors. Specifically, for the accelerometer, its scaling factor matrix and zero bias are used to correct the measured acceleration to obtain more accurate acceleration data; for the gyroscope, its scaling factor matrix and zero bias are used to correct the measured angular velocity to obtain more accurate angular velocity data.
[0151] By adopting this implementation method, the measurement accuracy of the inertial measurement unit can be significantly improved, thereby improving the navigation accuracy of the quadruped robot dog.
[0152] In another possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the method further includes: controlling the quadruped robot dog to remain stationary for a preset duration; determining the zero bias of the accelerometer based on the average value of the acceleration output by the accelerometer during the stationary phase; determining the zero bias of the gyroscope based on the average value of the angular velocity output by the gyroscope during the stationary phase; compensating for the acceleration output by the accelerometer based on the zero bias of the accelerometer; and compensating for the angular velocity output by the gyroscope based on the zero bias of the gyroscope.
[0153] In this implementation, after the quadruped robot dog is started, it can be controlled to remain stationary for a preset duration. For example, the preset duration can be 5 seconds, meaning that after the quadruped robot dog is started, it can be controlled to remain stationary for 5 seconds. By controlling the preset duration of the quadruped robot dog's stationary state, the inertial measurement unit can have time to collect data in the inertial state.
[0154] During the time the quadruped robot dog remains stationary, the accelerometer and gyroscope in the inertial measurement unit continue to operate and output data. The accelerometer outputs the acceleration value while stationary, and the gyroscope outputs the angular velocity value while stationary.
[0155] In theory, when the quadruped robot dog is completely stationary, the acceleration measured by the accelerometer should be zero (except for gravitational acceleration, which is usually handled separately in navigation algorithms). However, in reality, the accelerometer will still output an value when stationary; this output value is the accelerometer's zero bias. This zero bias value can be obtained by calculating the average of the acceleration output by the accelerometer during the stationary phase.
[0156] Similarly, when the quadruped robot dog is stationary, the angular velocity measured by the gyroscope should also be zero. However, in reality, the gyroscope still outputs data even when it is not rotating; this output value is the gyroscope's zero bias. This zero bias value can be obtained by calculating the average value of the angular velocity output by the gyroscope during the stationary phase.
[0157] Right now:
[0158]
[0159] Once the zero bias value of the accelerometer is obtained, the data can be compensated by subtracting this zero bias value from the actual output of the accelerometer, thus obtaining more accurate acceleration data; similarly, once the zero bias value of the gyroscope is obtained, the data can be compensated by subtracting this zero bias value from the actual output of the gyroscope, thus obtaining more accurate angular velocity data.
[0160] This method is simple to operate and requires no special equipment; it only requires keeping the quadruped robot dog briefly still. This is a practical calibration method for quadruped robot dogs and can be performed periodically to improve the accuracy of inertial data. However, the zero bias obtained by this method may not be as precise as turntable calibration because it depends on environmental stability (e.g., ground vibrations can affect the results). Nevertheless, it can still significantly improve the accuracy of inertial data.
[0161] In one possible implementation, the method further includes: performing a dot product operation on the initial acceleration of the inertial measurement unit in the carrier coordinate system and the initial heading of the inertial measurement unit in the navigation coordinate system to obtain a dot product result; determining the angle between the carrier coordinate system and the navigation coordinate system based on the dot product result; and using the angle to determine the initial heading of the inertial measurement unit.
[0162] In this implementation, after processing the raw inertial data, the initial heading of the inertial measurement unit can be determined using a two-vector method.
[0163] In this implementation, the carrier coordinate system is a coordinate system directly related to the physical carrier (in this embodiment, a quadruped robot dog) where the inertial measurement unit is located. In the carrier coordinate system, the accelerometer measures acceleration directly related to the carrier's motion. The navigation coordinate system is used for navigation and positioning, and is typically aligned with the Earth coordinate system (such as a geographic coordinate system). In the navigation coordinate system, heading refers to the azimuth angle of the carrier relative to north or a reference direction.
[0164] In this implementation, when the inertial measurement unit (IMU) is activated, it measures an initial acceleration value in the vehicle coordinate system. This value typically includes both the acceleration due to the vehicle's motion and the acceleration due to gravity. Simultaneously, the IMU also measures an initial heading value in the navigation coordinate system, which is the initial azimuth of the vehicle relative to north or a reference direction.
[0165] By multiplying the initial acceleration vector in the vehicle coordinate system by the initial heading vector in the navigation coordinate system, the angle between the two coordinate systems can be calculated. This angle represents the rotation angle between the reference directions of the two coordinate systems. Once the angle between the vehicle and navigation coordinate systems is determined, it can be used to determine the initial heading of the inertial measurement unit, as shown in the following formula:
[0166]
[0167] This implementation method can directly utilize the measurement data from the inertial measurement unit (IMU) to determine the initial heading without relying on external reference information. This is highly beneficial for improving the autonomy and robustness of the navigation system. Using this method, the IMU's orientation in the navigation coordinate system can be quickly and accurately determined upon startup, providing a precise reference for subsequent navigation and positioning.
[0168] In one possible implementation, the method further includes: obtaining latitude and longitude information of the location of the inertial measurement unit; calculating the Earth's rotation angular velocity at the location based on the latitude and longitude information; and determining the initial heading of the inertial measurement unit relative to a fixed Earth reference frame using the Earth's rotation angular velocity and the angular velocity measured by the inertial measurement unit.
[0169] In this implementation, firstly, the latitude and longitude information of the inertial measurement unit's geographical location can be obtained. This can be obtained through a Global Navigation Satellite System (GNSS) or other positioning technologies. After obtaining the latitude and longitude information of the inertial measurement unit's location, the Earth's rotation angular velocity at that location can be calculated based on the latitude and longitude information.
[0170] The gyroscope in the inertial measurement unit (IMU) measures the angular velocity of the quadruped robot dog's mechanical legs. When the IMU is stationary, the angular velocity measured by the gyroscope is mainly due to the Earth's rotation. By comparing the angular velocity measured by the IMU with the Earth's rotational angular velocity, the initial heading of the IMU relative to the Earth's fixed reference frame can be determined.
[0171] Specifically, if the inertial measurement unit (IMU) is stationary on the ground, its heading angle can be determined by the influence of the Earth's rotation. For example, if the IMU is located in the Northern Hemisphere, the local horizontal component of the Earth's rotational angular velocity vector points north. A gyroscope can measure this component, thus helping to determine the heading angle. A key factor in this method is latitude, as latitude determines the magnitude of the local horizontal component of the Earth's rotational angular velocity vector. For example, in a region at a latitude of 30°, with an eastward gyroscope zero bias of 0.01° / hr, the resulting heading error can be calculated accordingly.
[0172] In this implementation, the initial heading of the inertial measurement unit can be determined based on the latitude and longitude information of the location of the inertial measurement unit, combined with the Earth's rotation angular velocity.
[0173] During the movement of the quadruped robot dog, there is a brief period of zero velocity each time its mechanical leg touches the ground. In this embodiment of the disclosure, the landing moment of the quadruped robot dog's mechanical leg can be determined based on the inertial data output by the inertial measurement unit.
[0174] In one possible implementation, the inertial data includes acceleration and angular velocity; determining the landing time of the mechanical leg based on the inertial data includes: for any given moment, if the magnitude of the acceleration at that moment is less than an acceleration magnitude threshold and the magnitude of the angular velocity at that moment is less than an angular velocity magnitude threshold, then that moment is determined to be the landing time of the mechanical leg.
[0175] In this implementation, for any given moment, if the magnitude of the acceleration at that moment is less than the acceleration magnitude threshold, and the magnitude of the angular velocity at that moment is less than the angular velocity magnitude threshold, then that moment can be determined to be the landing moment of the mechanical leg; if the magnitude of the acceleration at that moment is greater than or equal to the acceleration magnitude threshold, or the magnitude of the angular velocity at that moment is greater than or equal to the angular velocity magnitude threshold, then that moment can be determined not to be the landing moment of the mechanical leg.
[0176] The stepping frequency of a quadruped robot dog is typically higher than that of a pedestrian, and its landing time is shorter. Therefore, the threshold setting can be higher than that in the pedestrian zero-speed correction algorithm. The threshold determination formula is as follows:
[0177]
[0178] In one example, the angular velocity magnitude threshold ω It can be set to 0.05, the acceleration modulus threshold. a It can be set to 0.24.
[0179] In this embodiment of the disclosure, at the moment the robotic leg lands, zero velocity can be used as an observation to correct the integral velocity of the robotic leg, thereby correcting the error of the inertial navigation algorithm. That is, at the moment the robotic leg lands, zero velocity can be used as an observation to update the navigation state variables of the quadruped robot dog. In applications of inertial navigation and state estimation, navigation state variables can represent a set of parameters describing the position and motion state of the carrier (such as a quadruped robot dog) in the navigation coordinate system.
[0180] In one possible implementation, the navigation state variables include at least the following: position, heading, and speed.
[0181] Location refers to the quadruped robot dog's specific coordinates in the navigation coordinate system, typically latitude, longitude, and altitude in three-dimensional space (in some applications, only two-dimensional coordinates may be used). Location information tells us where the quadruped robot dog is.
[0182] Heading, also known as orientation or attitude, refers to the direction in which the quadruped robot dog is facing. In navigation, heading typically refers to the azimuth angle of the quadruped robot dog relative to the geographic North Pole or a reference direction. Heading information tells us which way the quadruped robot dog is facing.
[0183] Speed refers to the quadruped robot dog's movement speed in the navigation coordinate system, including the magnitude (i.e., rate) and direction of the speed. Speed information can be three-dimensional, including horizontal speed (lateral and longitudinal) and vertical speed (e.g., upward or downward speed). Speed information tells us how the quadruped robot dog moves.
[0184] In one possible implementation, updating the navigation state variables of the quadruped robot dog by using zero velocity as an observation includes: inputting zero velocity as an observation into a Kalman filter; and updating the navigation state variables of the quadruped robot dog through the Kalman filter.
[0185] In this implementation, when the quadruped robot dog's mechanical legs touch the ground, the speed of the mechanical legs at that moment can be considered to be zero. This zero-speed information is used as an observation.
[0186] This zero-velocity observation is input into a Kalman filter. A Kalman filter is a highly efficient recursive filter capable of estimating the state of a dynamic system from a series of noisy measurements. It achieves this through two steps: prediction and update. In the prediction step, the filter uses the state from the previous time step and the control input to predict the state at the current time step. In the update step, the filter uses the current measurement to correct the predicted state, resulting in a more accurate estimate.
[0187] The Kalman filter uses zero-velocity observations to update the navigation state variables of the quadruped robot dog. These state variables may include position, heading, velocity, etc. In this way, the Kalman filter can reduce navigation errors and improve positioning accuracy.
[0188] In this implementation, the use of a Kalman filter improves the accuracy and reliability of the quadruped robot dog during navigation. The Kalman filter is particularly well-suited for processing noisy data and can provide real-time state estimation, making it ideal for navigation applications in dynamic and complex environments.
[0189] Figure 3 This diagram illustrates a flowchart of the zero-velocity correction algorithm in the quadruped robot dog inertial navigation method provided in this embodiment. Figure 3 As shown, inertial data of the robotic legs can be collected by an inertial measurement unit installed on the robotic legs of the quadruped robot dog. During the processing of the inertial data, it is possible to check for packet loss in the inertial data stream. Subsequently, the raw inertial data can be calibrated.
[0190] Based on the turntable calibration results, the scale factor matrix and zero bias of the accelerometer, as well as the scale factor matrix and zero bias of the gyroscope, can be determined. This allows for compensation of the accelerometer's output acceleration based on the accelerometer's scale factor matrix and zero bias, and compensation of the gyroscope's output angular velocity based on the gyroscope's scale factor matrix and zero bias. This method of processing raw inertial data requires prior turntable calibration to achieve more comprehensive compensation for the accelerometer and gyroscope.
[0191] If turntable calibration is not possible, the quadruped robot can be paused for 5 seconds upon startup. The accelerometer's zero bias can be determined by the average acceleration output during this static period, and the gyroscope's zero bias can be determined by the average angular velocity output during the static period. This method is simpler and more convenient, but its calibration accuracy is limited.
[0192] After processing the raw inertial data, the initial heading of the inertial measurement unit (IMU) can be determined using a two-vector method. Specifically, the angle between the initial acceleration in the carrier coordinate system and the initial heading in the navigation coordinate system can be determined, thereby establishing the initial heading of the IMU.
[0193] Alternatively, the initial heading of the inertial measurement unit can be determined based on its latitude and longitude information, combined with the Earth's rotational angular velocity. This method requires the inertial measurement unit to have high accuracy in measuring acceleration and angular velocity.
[0194] During the movement of the quadruped robot dog, threshold judgments can be made on the acceleration and angular velocity output by the inertial measurement units on its mechanical legs. When the magnitude of acceleration is less than the acceleration magnitude threshold and the magnitude of angular velocity is less than the angular velocity magnitude threshold, it can be determined that the foot has landed. Each time the foot lands, the velocity can be set to zero, and this observation value can be input into the Kalman filter to update the navigation state variables.
[0195] The zero-speed correction algorithm was validated on the odometer of a quadruped robot dog. Figure 4 This diagram illustrates the positioning test results of the zero-speed correction algorithm on the odometer of a quadruped robot dog in the inertial navigation method provided in this embodiment of the present disclosure. Experimental verification shows that in a closed-loop trajectory of approximately 15 meters, the error between the start and end points is 0.2 meters, which is 1.3% of the total distance; in a double-L trajectory of approximately 23 meters, the error between the start and end points is 0.09 meters, which is 0.3% of the total distance.
[0196] In one possible implementation, the method further includes: performing navigation based on four inertial measurement units arranged on the four mechanical legs of the quadruped robot dog to obtain navigation state variables of the four mechanical legs; and applying kinematic constraints to the navigation state variables of the four mechanical legs.
[0197] In this implementation, four inertial measurement units can be arranged on the four mechanical legs of the quadruped robot dog. Based on the inertial data output by the four inertial measurement units, a zero-speed correction algorithm is performed for navigation to obtain the navigation state variables of the four mechanical legs (which may include the position and heading of the four mechanical legs).
[0198] This implementation incorporates kinematic constraints into the localization of the quadruped robot dog, correcting the positioning errors of the four mechanical legs based on the robot dog's geometric structure information. This approach allows for timely correction of positioning errors (such as acceleration and / or angular velocity errors), preventing errors from accumulating over time.
[0199] Figure 5 This diagram illustrates an inertial measurement units arranged on the four legs of a quadruped robot dog in an inertial navigation method provided in an embodiment of this disclosure. Figure 5In the example shown, IMU module 1 is fixed to the front left leg of the quadruped robot dog, IMU module 2 is fixed to the front right leg, IMU module 3 is fixed to the rear left leg, and IMU module 4 is fixed to the rear right leg. During the quadruped robot dog's movement, the four IMU modules can perform navigation calculations using a zero-speed correction algorithm, thereby determining the positions of the four mechanical legs.
[0200] In one possible implementation, the kinematic constraint on the navigation state variables of the four robotic legs includes: dividing the four robotic legs into two pairs; for any pair of robotic legs, in response to one robotic leg landing, determining the distance between the other robotic leg and the first robotic leg; in response to the distance being greater than or equal to a distance threshold corresponding to the pair of robotic legs, determining a reference position of the other robotic leg based on the distance threshold; and correcting the position of the other robotic leg to the reference position.
[0201] Based on the quadruped robot's geometric structure, there is a theoretical maximum distance between its four mechanical legs. During each step, two mechanical legs remain stationary while the other two move forward. Using the stationary legs as a reference, if the distance between the moving and stationary legs exceeds the theoretical maximum (i.e., the distance threshold), the navigation result can be corrected based on the reference position and the quadruped robot's geometric structure.
[0202] In one possible implementation, the method further includes: in response to the simultaneous landing of two mechanical legs in the mechanical leg pair, obtaining the distance between the two mechanical legs through a motor encoder, and obtaining a distance threshold corresponding to the mechanical leg pair.
[0203] In this implementation, when the quadruped robot dog is moving, the distance between the two mechanical legs can be obtained as an observation through the motor encoder when both mechanical legs land at the same time, so as to correct the positioning error of the mechanical legs.
[0204] This implementation method integrates inertial technology, motor output, and carrier kinematic constraints, and uses the navigation results of the quadruped robot dog and the output of the motor encoder to correct sensor errors.
[0205] In one possible implementation, the kinematic constraint on the navigation state variables of the four robotic legs includes: in response to a heading deviation between any two of the four robotic legs being greater than or equal to an angle threshold, performing a heading correction based on the heading of the other two robotic legs.
[0206] Figure 6The diagram illustrates a quadruped robot dog positioning error constraint algorithm that combines kinematics and motors in the inertial navigation method for quadruped robots provided in this embodiment of the present disclosure.
[0207] like Figure 6 As shown, regarding kinematic constraints, IMU module 1 and IMU module 2 can be taken as references. They will land alternately. When IMU module 1 lands, the moving IMU module 2 will be within a circle with IMU module 1 as its center and radius r. That is:
[0208] Δl=‖x1-x2‖ <r
[0209] When the position of IMU module 2 exceeds the range of the circle, it can be considered that an incorrect navigation position has occurred, and it can be corrected to the corresponding circle to obtain the corrected navigation position x2′. The same logic applies to IMU modules 3 and 4, assuming a navigation position x3′ is obtained. Both x2′ and x3′ are subject to kinematic constraints:
[0210] ||x2′-x3′|| <l dog
[0211] That is, the distance between the navigation positions of the two should be less than the overall length of the quadruped robot dog, which can be further constrained.
[0212] Regarding motor output constraints, based on the walking patterns of the quadruped robot dog, IMU modules 1 and 4 will land simultaneously, as will IMU modules 2 and 3. Taking IMU modules 1 and 4 as references, the distance between them can be obtained from the motor encoder when they land simultaneously. Using this as an observation, the inertial navigation results of IMU modules 1 and 4 can be corrected. The same logic applies to IMU modules 2 and 3.
[0213] The heading constraint can also be achieved through the geometric positions of the IMU modules on the four mechanical legs. The heading deviation of the IMU modules can be limited based on an angle threshold. For example, when the heading deviation between IMU module 1 and IMU module 2 is greater than the angle threshold, it can first be determined by averaging the headings of IMU modules 1, 3, and 4. Solve for the heading deviation of IMU module 2:
[0214]
[0215] It can also be based on the average heading results of IMU module 2, IMU module 3 and IMU module 4. Solve for the heading deviation of IMU module 1:
[0216]
[0217] We can take the minimum value of Δθ1 and Δθ2 to determine the corresponding heading correction result. or
[0218] Based on the mutual constraints of the distance and heading of the four IMU modules, the navigation trajectory output after odometer correction of the quadruped robot dog can be obtained.
[0219] In one possible implementation, the method further includes: identifying the ground type where the quadruped robot dog is located based on the inertial data; and determining the acceleration modulus threshold and the angular velocity modulus threshold based on the ground type.
[0220] The ground type can be smooth, soft, rocky, etc., without limitation. Based on the collected inertial data, such as specific patterns of acceleration and angular velocity, it can be determined whether the quadruped robot dog walks on smooth ground (such as a tiled road), soft ground (such as grass), or rocky ground (such as a gravel road). The quadruped robot dog's inertial characteristics differ on different ground types, and the ground type can be inferred by analyzing the inertial data.
[0221] Once the ground type is identified, the acceleration modulus threshold and angular velocity modulus threshold can be set or adjusted. These thresholds are key parameters in the zero-velocity correction algorithm; they determine when the quadruped robot's mechanical legs are considered to be in contact with the ground, and thus the velocity should be corrected to zero. For example, a lower threshold can be set on smooth ground because it provides less resistance, while a higher threshold can be used on soft ground.
[0222] In this implementation, the zero-speed correction algorithm can be adjusted on different types of ground to achieve accurate positioning of four quadruped robot dogs in multiple scenarios, thereby solving the environmental adaptability problem of quadruped robot dogs.
[0223] In one possible implementation, identifying the ground type where the quadruped robot dog is located based on the inertial data includes: inputting the inertial data into a pre-trained Long Short Term Memory (LSTM) network, and identifying the ground type where the quadruped robot dog is located through the LSTM network.
[0224] Long Short-Term Memory (LSTM) networks are a special type of recurrent neural network (RNN) that can capture long-term dependencies in time-series data. In this implementation, the LSM network is trained to identify different ground types, such as smooth, soft, or rocky surfaces.
[0225] As an example of this implementation, the input to a Long Short-Term Memory (LSTM) network can be the triaxial angular velocity and triaxial acceleration of a mechanical leg.
[0226] In this implementation, a long short-term memory network can be used to detect the ground type that the quadruped robot dog touches, thereby adaptively adjusting the parameters in the zero-speed correction algorithm.
[0227] As an example of this implementation, six-dimensional data (three-axis angular velocity and three-axis acceleration) can be used as training data for the Long Short-Term Memory (LSTM) network. A large amount of inertial data can be collected from gravel roads, tiles, and grass. Test and training sets are randomly selected from the dataset. The training set is used to train the LSTM network, and the test set is used to verify the network's recognition accuracy.
[0228] In one possible implementation, before inputting the inertial data into a pre-trained long short-term memory network, the method further includes: performing Gaussian filtering on the inertial data; after identifying the ground type where the quadruped robot dog is located through the long short-term memory network, the method further includes: performing mean filtering and continuity judgment on the output of the long short-term memory network.
[0229] In this implementation, the inertial data can be Gaussian filtered before being input into the pre-trained Long Short-Term Memory (LSTM) network. Gaussian filtering reduces noise in the data while preserving the main features of the signal. This improves the accuracy of the LTM network in identifying ground types because the input data is cleaner and smoother.
[0230] After the Long Short-Term Memory (LSTM) network identifies the terrain type, the network's output can be subjected to mean filtering and continuity assessment. Mean filtering is a simple low-pass filter that smooths the result by averaging multiple output values, reducing random fluctuations. Continuity assessment ensures the consistency of the identification results over time, avoiding incorrect terrain type identification due to short-term, discontinuous changes.
[0231] In this implementation, the recognition results of the long short-term memory network can be output as the final judgment result through methods such as mean filtering and continuous judgment. The parameters of zero speed correction are adjusted in combination with the judgment result to achieve targeted adjustment for different types of road surfaces.
[0232] Figure 7 A schematic diagram of different road surfaces is shown. Figure 7In the example shown, three types of road surfaces can be identified: gravel road, tile road, and grass. Inertial data of the quadruped robot dog's feet can be collected on these three types of road surfaces to train the Long Short-Term Memory (LSTM) network.
[0233] Figure 8 This diagram illustrates the structure of the long short-term memory network in the inertial navigation method for a quadruped robot dog provided in an embodiment of this disclosure. Figure 8 As shown, this Long Short-Term Memory (LSTM) network includes a reshape layer for the input, a series of fully connected layers, and a non-linear activation function. It can be based on, for example... Figure 7 The inertial data of the three types of road surfaces shown are used to train the Long Short-Term Memory (LSTM) network. 85% of the data in the dataset can be randomly selected as the training set for training the LTM network; the remaining 15% can be used as the test set to test the discrimination accuracy of the LTM.
[0234] Figure 9 This diagram illustrates the confusion matrix after training the Long Short-Term Memory (LSTM) network in the quadruped robot dog inertial navigation method provided in this embodiment of the present disclosure. Figure 9 In this paper, the discrimination results of the Long Short-Term Memory network on the test set are presented as a matrix. This confusion matrix has a high degree of diagonalization and high accuracy in judging the test set.
[0235] Figure 10 This diagram illustrates the overall algorithm for detecting the ground contact type of a quadruped robot dog in the inertial navigation method provided in this embodiment. The algorithm uses a Long Short-Term Memory (LSTM) network as its core, combined with post-processing methods to suppress outliers. First, the inertial measurement units (IMUs) installed on the mechanical legs of the quadruped robot dog output acceleration and angular velocity, and window the inertial data. The window size can be 100. The windowed inertial data can then undergo Gaussian filtering to process the original inertial data. Data can be taken in groups of 50×6 rows, reducing the amount of data processing while covering a longer time period, thus improving the accuracy of the LTM network in identifying ground types. The 50×6 inertial data can be input into the LTM network for identification, and the output is the discrimination probability of various ground types.
[0236] For the output of the Long Short-Term Memory (LSTM) network, the average of the outputs from three consecutive LSM networks can be filtered in time, and a threshold can be applied to the filtered discrimination probability. Since the terrain type should be continuous during the quadruped robot's movement, the result after thresholding is continuous in time, only changing when the terrain changes. Based on this pattern, the continuity of the recognition result can be assessed, and any abrupt changes can be removed.
[0237] Based on the ground type identification results, the parameters (acceleration modulus threshold and angular velocity modulus threshold) of the landing judgment part in zero-velocity correction can be adjusted. For example, on rougher ground such as gravel roads, the zero-velocity judgment threshold should be increased; on smoother ground such as tile roads, the zero-velocity judgment threshold should be decreased accordingly. Combining the ground type detection method of a quadruped robot dog, a zero-velocity correction navigation algorithm with adaptive parameter adjustment can be implemented. Since the three ground types tested cannot completely cover all ground conditions, the threshold can be determined based on the algorithm's judgment probability of the ground, using the angular velocity threshold as an example. ω For example:
[0238]
[0239] That is, the ground threshold can be determined based on the probability of judging various ground types and the threshold results calibrated on that type of ground. The acceleration modulus threshold is determined in the same way.
[0240] The quadruped robot dog inertial navigation method provided in this disclosure relates to the field of robotics, specifically to quadruped robot dog dead reckoning and positioning technology. This quadruped robot dog inertial navigation method utilizes an inertial measurement unit (IMU) to provide high-precision positioning services based on the robot dog's odometer. It is an autonomous navigation method that does not rely on the external environment. It corrects errors in the IMU through a zero-velocity correction algorithm, the absolute position of the motor encoder, and kinematic constraints. Simultaneously, it determines the type of terrain the quadruped robot dog is traversing and adaptively adjusts the navigation algorithm accordingly, effectively improving the navigation accuracy of the quadruped robot dog in complex terrain.
[0241] It is understood that the various method embodiments mentioned above in this disclosure can be combined with each other to form combined embodiments without violating the principle and logic. Due to space limitations, this disclosure will not elaborate further. Those skilled in the art will understand that in the above methods of specific implementation, the specific execution order of each step should be determined by its function and possible internal logic.
[0242] In addition, this disclosure also provides a quadruped robot dog inertial navigation device, electronic device, computer-readable storage medium, and computer program product. All of the above can be used to implement any of the quadruped robot dog inertial navigation methods provided in this disclosure. The corresponding technical solutions and technical effects can be found in the relevant descriptions in the method section, and will not be repeated here.
[0243] Figure 11 A block diagram of a quadruped robot dog inertial navigation device provided in an embodiment of this disclosure is shown. Figure 11 As shown, the quadruped robot dog inertial navigation device includes:
[0244] The acquisition module 21 is used to acquire the inertial data of the mechanical leg by means of the inertial measurement unit installed on the mechanical leg of the quadruped robot dog;
[0245] The first determining module 22 is used to determine the landing time of the mechanical leg based on the inertial data;
[0246] Correction module 23 is used to correct the integral velocity of the mechanical leg to zero at the moment of landing;
[0247] The update module 24 is used to update the navigation state variables of the quadruped robot dog by taking zero speed as the observation.
[0248] In one possible implementation, the inertial data includes acceleration and angular velocity;
[0249] The first determining module 22 is used for:
[0250] If, at any given moment, the magnitude of the acceleration at that moment is less than an acceleration magnitude threshold, and the magnitude of the angular velocity at that moment is less than an angular velocity magnitude threshold, then that moment is determined to be the landing moment of the mechanical leg.
[0251] In one possible implementation, the update module 24 is used to:
[0252] Zero velocity is used as the observation input to the Kalman filter;
[0253] The navigation state variables of the quadruped robot dog are updated using the Kalman filter.
[0254] In one possible implementation, the navigation state variables include at least the following: position, heading, and speed.
[0255] In one possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the device further includes:
[0256] The second determining module is used to determine the scaling factor matrix and zero bias of the accelerometer, and the scaling factor matrix and zero bias of the gyroscope, based on the results of the turntable calibration.
[0257] The first acceleration compensation module is used to compensate the acceleration output by the accelerometer based on the scaling factor matrix and zero bias of the accelerometer.
[0258] The first angular velocity compensation module is used to compensate the angular velocity output by the gyroscope based on the scaling factor matrix and zero bias of the gyroscope.
[0259] In one possible implementation, the inertial measurement unit includes an accelerometer and a gyroscope, and the device further includes:
[0260] The control module is used to control the quadruped robot dog to remain stationary for a preset duration;
[0261] The third determining module is used to determine the zero bias of the accelerometer based on the average value of the acceleration output by the accelerometer during the stationary phase.
[0262] The fourth determining module is used to determine the zero bias of the gyroscope based on the average value of the angular velocity output by the gyroscope during the stationary phase.
[0263] The second acceleration compensation module is used to compensate the acceleration output by the accelerometer based on the zero bias of the accelerometer.
[0264] The second angular velocity compensation module is used to compensate the angular velocity output by the gyroscope based on the zero bias of the gyroscope.
[0265] In one possible implementation, the device further includes:
[0266] The dot product module is used to perform a dot product operation on the initial acceleration of the inertial measurement unit in the carrier coordinate system and the initial heading of the inertial measurement unit in the navigation coordinate system to obtain the dot product result;
[0267] The fifth determining module is used to determine the angle between the carrier coordinate system and the navigation coordinate system based on the dot product result;
[0268] The sixth determining module is used to determine the initial heading of the inertial measurement unit using the included angle.
[0269] In one possible implementation, the device further includes:
[0270] The first acquisition module is used to acquire the latitude and longitude information of the location of the inertial measurement unit;
[0271] The calculation module is used to calculate the Earth's rotational angular velocity at the location based on the latitude and longitude information;
[0272] The seventh determining module is used to determine the initial heading of the inertial measurement unit relative to the fixed Earth reference frame by using the Earth's rotation angular velocity and the angular velocity measured by the inertial measurement unit.
[0273] In one possible implementation, the device further includes:
[0274] The navigation module is used to navigate based on four inertial measurement units arranged on the four mechanical legs of the quadruped robot dog, and to obtain the navigation state variables of the four mechanical legs.
[0275] The kinematic constraint module is used to perform kinematic constraints on the navigation state variables of the four mechanical legs.
[0276] In one possible implementation, the kinematic constraint module is used for:
[0277] The four mechanical legs are divided into two pairs of mechanical legs;
[0278] For any pair of robotic legs, in response to one of the robotic legs landing, the distance between the other robotic leg and the first robotic leg is determined;
[0279] In response to the distance being greater than or equal to a distance threshold corresponding to the pair of robotic legs, a reference position of the other robotic leg is determined based on the distance threshold;
[0280] The position of the other mechanical leg is corrected to the reference position.
[0281] In one possible implementation, the device further includes:
[0282] The second obtaining module is used to obtain the distance between the two mechanical legs in the mechanical leg pair in response to the simultaneous landing of the two mechanical legs by a motor encoder, and obtain the distance threshold corresponding to the mechanical leg pair.
[0283] In one possible implementation, the kinematic constraint module is used for:
[0284] In response to a heading deviation between any two of the four robotic legs being greater than or equal to an angle threshold, a heading correction is performed based on the heading of the other two robotic legs.
[0285] In one possible implementation, the device further includes:
[0286] The ground type recognition module is used to identify the ground type where the quadruped robot dog is located based on the inertial data;
[0287] The eighth determining module is used to determine the acceleration modulus threshold and the angular velocity modulus threshold according to the ground type.
[0288] In one possible implementation, the ground type identification module is used for:
[0289] The inertial data is input into a pre-trained long short-term memory network, which identifies the ground type where the quadruped robot dog is located.
[0290] In one possible implementation, the device further includes:
[0291] A Gaussian filtering module is used to perform Gaussian filtering on the inertial data;
[0292] The outlier handling module is used to perform mean filtering and continuity judgment on the output results of the long short-term memory network.
[0293] In some embodiments, the functions or modules of the apparatus provided in this disclosure can be used to perform the methods described in the above method embodiments. The specific implementation and technical effects can be referred to the description of the above method embodiments. For the sake of brevity, they will not be repeated here.
[0294] This disclosure also provides a computer-readable storage medium storing computer program instructions thereon, which, when executed by a processor, implement the above-described method. The computer-readable storage medium may be a non-volatile computer-readable storage medium or a volatile computer-readable storage medium.
[0295] This disclosure also proposes a computer program including computer-readable code, wherein when the computer-readable code is run in an electronic device, a processor in the electronic device executes the above-described method.
[0296] This disclosure also provides a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, wherein when the computer-readable code is run in an electronic device, the processor in the electronic device executes the above-described method.
[0297] This disclosure also provides an electronic device, including: one or more processors; a memory for storing executable instructions; wherein the one or more processors are configured to invoke the executable instructions stored in the memory to perform the above-described method.
[0298] Electronic devices can be provided as terminals, servers, or other forms of devices.
[0299] Figure 12 A block diagram of an electronic device 1900 provided according to an embodiment of this disclosure is shown. For example, the electronic device 1900 may be provided as a terminal or a server. (Refer to...) Figure 12 The electronic device 1900 includes a processing component 1922, which further includes one or more processors, and memory resources represented by memory 1932 for storing instructions, such as application programs, that can be executed by the processing component 1922. The application programs stored in memory 1932 may include one or more modules, each corresponding to a set of instructions. Furthermore, the processing component 1922 is configured to execute instructions to perform the methods described above.
[0300] Electronic device 1900 may also include a power supply component 1926 configured to perform power management of electronic device 1900, a wired or wireless network interface 1950 configured to connect electronic device 1900 to a network, and an input / output interface 1958 (I / O interface). Electronic device 1900 can operate on an operating system stored in memory 1932, such as Microsoft Server operating system (Windows Server). TM Apple's graphical user interface-based operating system (MacOS X) TM ), a multi-user, multi-process computer operating system (Unix) TM Linux is a free and open-source Unix-like operating system. TM ), the open-source Unix-like operating system (FreeBSD) TM (or similar.)
[0301] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 1932 including computer program instructions that can be executed by a processing component 1922 of an electronic device 1900 to perform the above-described method.
[0302] This disclosure can be a system, method, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for causing a processor to implement various aspects of this disclosure.
[0303] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination thereof. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0304] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.
[0305] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to implement various aspects of this disclosure.
[0306] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0307] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0308] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0309] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown 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 diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may 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.
[0310] The computer program product can be implemented specifically through hardware, software, or a combination thereof. In one alternative embodiment, the computer program product is specifically embodied in a computer storage medium; in another alternative embodiment, the computer program product is specifically embodied in a software product, such as a software development kit (SDK), etc.
[0311] The description of the various embodiments above tends to emphasize the differences between the various embodiments. The similarities or similarities between them can be referred to, and for the sake of brevity, they will not be repeated here.
[0312] If the technical solution of this disclosure involves personal information, the product applying the technical solution of this disclosure has clearly informed the user of the personal information processing rules and obtained the user's voluntary consent before processing the personal information. If the technical solution of this disclosure involves sensitive personal information, the product applying the technical solution of this disclosure has obtained the user's separate consent before processing the sensitive personal information, and also meets the requirement of "express consent". For example, at personal information collection devices such as cameras, clear and prominent signs are set up to indicate that the user has entered the scope of personal information collection and that personal information will be collected. If the user voluntarily enters the collection scope, it is deemed to have consented to the collection of their personal information; or on the personal information processing device, with clear signs / information informing the user of the personal information processing rules, authorization is obtained from the user through pop-up information or by asking the user to upload their personal information; wherein, the personal information processing rules may include information such as the personal information processor, the purpose of personal information processing, the processing method, and the types of personal information processed.
[0313] The various embodiments of this disclosure have been described above. These descriptions are exemplary and not exhaustive, and are not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or improvement of the technology in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method for inertial navigation of a quadruped robot dog, characterized by, The method comprises: collecting inertial data of a mechanical leg of a quadruped robot through an inertial measurement unit installed on the mechanical leg; determining a landing time of the mechanical leg according to the inertial data; correcting an integral speed of the mechanical leg to zero at the landing time; updating a navigation state variable of the quadruped robot by taking zero speed as an observation; wherein the method further comprises: respectively performing navigation based on four inertial measurement units arranged on four mechanical legs of the quadruped robot to obtain navigation state variables of the four mechanical legs; kinematically constraining the navigation state variables of the four mechanical legs; the kinematic constraint on the navigation state variables of the four mechanical legs comprises: dividing the four mechanical legs into two mechanical leg pairs; for any mechanical leg pair, in response to one mechanical leg of the mechanical leg pair landing, determining a distance between the other mechanical leg of the mechanical leg pair and the mechanical leg; in response to the distance being greater than or equal to a distance threshold corresponding to the mechanical leg pair, determining a reference position of the other mechanical leg according to the distance threshold; correcting the position of the other mechanical leg to the reference position; the kinematic constraint on the navigation state variables of the four mechanical legs further comprises: in response to a heading deviation between any two of the four mechanical legs being greater than or equal to an angle threshold, performing heading correction according to the headings of the other two of the four mechanical legs; the method further comprises: in response to two mechanical legs of the mechanical leg pair landing at the same time, obtaining the distance between the two mechanical legs through a motor encoder to obtain the distance threshold corresponding to the mechanical leg pair.
2. The method of claim 1, wherein, The inertial data comprises acceleration and angular velocity; the determination of the landing time of the mechanical leg according to the inertial data comprises: for any time, in response to the length of the acceleration at the time being less than an acceleration length threshold and the length of the angular velocity at the time being less than an angular velocity length threshold, determining the time as the landing time of the mechanical leg.
3. The method of claim 1, wherein, the updating of the navigation state variable of the quadruped robot by taking zero speed as an observation comprises: inputting zero speed as an observation into a Kalman filter; updating the navigation state variable of the quadruped robot through the Kalman filter.
4. The method according to any one of claims 1 to 3, characterized in that, The navigation state variable comprises at least part of the following: position, heading, speed.
5. The method of claim 1, wherein, The inertial measurement unit comprises an accelerometer and a gyroscope, and the method further comprises: determining the scale factor matrix and bias of the accelerometer and the scale factor matrix and bias of the gyroscope according to the results of turntable calibration; compensating the acceleration output by the accelerometer according to the scale factor matrix and bias of the accelerometer; compensating the angular velocity output by the gyroscope according to the scale factor matrix and bias of the gyroscope.
6. The method of claim 1, wherein, The inertial measurement unit comprises an accelerometer and a gyroscope, and the method further comprises: controlling the quadruped robot to be stationary for a preset length of time; determining the bias of the accelerometer according to the average value of the acceleration output by the accelerometer during the stationary stage; determine a zero offset of the gyroscope according to an average value of angular velocities output by the gyroscope in the stationary phase; compensate for accelerations output by the accelerometer according to a zero offset of the accelerometer; compensate for angular velocities output by the gyroscope according to a zero offset of the gyroscope.
7. The method of claim 1, wherein, The method further comprises: point-multiply an initial acceleration of the inertial measurement unit in a carrier coordinate system and an initial heading of the inertial measurement unit in a navigation coordinate system to obtain a point-multiplication result; determine an included angle between the carrier coordinate system and the navigation coordinate system according to the point-multiplication result; determine an initial heading of the inertial measurement unit by using the included angle.
8. The method of claim 1, wherein, The method further comprises: obtain latitude and longitude information of a position where the inertial measurement unit is located; calculate an angular velocity of the earth rotation of the position according to the latitude and longitude information; determine an initial heading of the inertial measurement unit relative to a fixed reference frame of the earth by using the angular velocity of the earth rotation and an angular velocity measured by the inertial measurement unit.
9. The method of claim 2, wherein, The method further comprises: identify a ground type where the quadruped robot dog is located according to the inertial data; determine the acceleration module length threshold and the angular velocity module length threshold according to the ground type.
10. The method of claim 9, wherein, The identifying the ground type where the quadruped robot dog is located according to the inertial data comprises: input the inertial data into a pre-trained long short-term memory network, and identify the ground type where the quadruped robot dog is located through the long short-term memory network.
11. The method of claim 10, wherein, before the inputting the inertial data into the pre-trained long short-term memory network, the method further comprises: performing Gaussian filtering processing on the inertial data; after the identifying the ground type where the quadruped robot dog is located through the long short-term memory network, the method further comprises: performing mean filtering and continuity judgment on an output result of the long short-term memory network.
12. A four-legged robot dog inertial navigation device, characterized by, comprise: a collection module, configured to collect inertial data of a mechanical leg of a quadruped robot dog through an inertial measurement unit installed on the mechanical leg; a first determination module, configured to determine a landing time of the mechanical leg according to the inertial data; a correction module, configured to correct an integral speed of the mechanical leg to zero at the landing time; an update module, configured to update a navigation state variable of the quadruped robot dog by taking zero speed as an observation; wherein the device further comprises: a navigation module, configured to perform navigation based on four inertial measurement units arranged on four mechanical legs of the quadruped robot dog to obtain navigation state variables of the four mechanical legs; a kinematic constraint module, configured to perform kinematic constraint on the navigation state variables of the four mechanical legs; the kinematic constraint module is specifically configured to: divide the four mechanical legs into two pairs of mechanical legs; for any pair of mechanical legs, in response to one mechanical leg of the pair landing, determine a distance between the other mechanical leg of the pair and the mechanical leg; in response to the distance being greater than or equal to a distance threshold corresponding to the pair of mechanical legs, determine a reference position of the other mechanical leg according to the distance threshold; correct the position of the other mechanical leg to the reference position; the kinematics constraint module is further configured to: in response to a heading deviation between any two of the four mechanical legs being greater than or equal to an angle threshold, perform heading correction according to the heading of the other two of the four mechanical legs; the apparatus further includes: a second obtaining module configured to, in response to two mechanical legs in the pair of mechanical legs landing at the same time, obtain the distance between the two mechanical legs through a motor encoder, and obtain a distance threshold corresponding to the pair of mechanical legs.
13. An electronic device, comprising: comprise: one or more processors; a memory for storing executable instructions; wherein the one or more processors are configured to invoke the executable instructions stored in the memory to perform the method of any one of claims 1-11.
14. A computer-readable storage medium having stored thereon computer program instructions, wherein, The computer program instructions, when executed by a processor, implement the method of any one of claims 1-11.
15. A computer program product comprising computer readable code, or a non-transitory computer readable storage medium having computer readable code embodied thereon, the computer readable code comprising instructions for causing a computer to perform the method of any one of claims 1 to 14. When the computer readable code is running in an electronic device, the processor in the electronic device performs the method of any one of claims 1-11.
Citation Information
Patent Citations
Inertial pedestrian navigation algorithm based on zero-speed correction and attitude self-observation
CN112362057A
Multi-legged robot based on inertial navigation device and navigation method thereof
CN115876187A