Method and apparatus for determining mobile robot pose data

By fusing inertial sensor and joint encoder data, and utilizing complementary filtering and kinematic backcalculation, the problem of yaw angle drift in mobile robot positioning is solved, achieving higher positioning accuracy.

CN116124135BActive Publication Date: 2025-10-14MAGICLAB ROBOTICS TECHNOLOGY (WUXI) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111340528.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-12
Publication Date
2025-10-14
Estimated Expiration
2041-11-12

AI Technical Summary

Technical Problem

The positioning of mobile robots relies on inertial odometry, and the yaw angle is prone to drift, resulting in inaccurate positioning.

Method used

By fusing inertial sensor data and joint encoder data, using complementary filtering and kinematic inverse calculation, the initial and reference pose data are determined, and data fusion is performed to correct the yaw angle and improve positioning accuracy.

Benefits of technology

The yaw angle drift is effectively corrected and the positioning accuracy of the mobile robot is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116124135B_ABST
    Figure CN116124135B_ABST
Patent Text Reader

Abstract

The application provides a mobile robot pose data determination method and device. The method comprises the following steps: determining initial pose data of a mobile robot according to sensor data of an inertial sensor of the mobile robot, wherein the initial pose data comprises an initial yaw angle of the mobile robot; calculating kinematics information of a foot end of a leg joint corresponding to a joint encoder of the mobile robot according to encoder data of the joint encoder; determining reference pose data of the mobile robot through kinematics back calculation according to the kinematics information, wherein the reference pose data comprises a reference yaw angle of the mobile robot; and fusing the initial pose data and the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data comprises a target yaw angle of the mobile robot. By using the technical scheme, the problem of inaccurate positioning of the mobile robot caused by the drift of the yaw angle direction in the odometer in the related art is solved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of communication, in particular to a mobile robot pose data determination method and device. BACKGROUND

[0002] At present, the positioning of a mobile robot is more dependent on an inertial odometer based on an IMU (Inertial Measurement Unit, i.e., an inertial sensor). However, in the positioning mode based on the odometer, the yaw direction in the odometer is prone to drift, resulting in inaccurate positioning of the mobile robot.

[0003] Therefore, in the related art, the positioning mode based on the odometer has the problem of inaccurate positioning of the mobile robot due to the yaw direction in the odometer being prone to drift. SUMMARY

[0004] The present application aims to at least solve the problem of inaccurate positioning of the mobile robot due to the yaw direction in the odometer being prone to drift in the related art.

[0005] The purpose of the present application is achieved by the following technical solutions:

[0006] According to an aspect of an embodiment of the present application, a mobile robot pose data determination method is provided, comprising: determining initial pose data of a mobile robot according to sensor data of an inertial sensor of the mobile robot, wherein the initial pose data contains an initial yaw angle of the mobile robot; calculating kinematics information of a foot end of a leg joint corresponding to a joint encoder of the mobile robot according to encoder data of the joint encoder; determining reference pose data of the mobile robot through kinematics back calculation according to the kinematics information, wherein the reference pose data includes a reference yaw angle of the mobile robot; and data fusion of the initial pose data and the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data contains a target yaw angle of the mobile robot.

[0007] In one exemplary embodiment, the sensor data includes angular velocity data of a gyroscope of the inertial sensor and linear acceleration data of an accelerometer of the inertial sensor; and determining the initial pose data of the mobile robot according to the sensor data of the inertial sensor of the mobile robot includes: complementary filtering fusion of the angular velocity data and the linear acceleration data to obtain the initial pose data of the mobile robot.

[0008] In an example embodiment, the fusing the angular velocity data and the linear acceleration data by complementary filtering to obtain the initial pose data of the mobile robot comprises: performing a second integration on the linear acceleration data to calculate an initial center of mass position of the mobile robot; performing a first integration on the angular velocity data to calculate an initial attitude data of the mobile robot, wherein the initial attitude data comprises the initial yaw angle; and wherein the initial pose data comprises the initial center of mass position and the initial attitude data.

[0009] In an example embodiment, the calculating the kinematics information of the foot end of the leg joint corresponding to the joint encoder of the mobile robot according to the encoder data of the joint encoder comprises: calculating a foot end position and a foot end velocity of the foot end of the leg joint according to the encoder data, wherein the kinematics information comprises the foot end position and the foot end velocity.

[0010] In an example embodiment, the determining the reference pose data of the mobile robot by kinematics back-calculation according to the kinematics information comprises: calculating a reference center of mass position and a reference attitude angle of the mobile robot by kinematics back-calculation according to the foot end position and the foot end velocity, wherein the reference pose data comprises the reference center of mass position and the reference attitude angle, and the reference attitude angle comprises the reference yaw angle.

[0011] In an example embodiment, the fusing the initial pose data and the reference pose data to obtain the target pose data of the mobile robot comprises: performing filtering processing with the initial pose data as an input quantity and the reference pose data as an observation quantity to estimate the target pose data of the mobile robot.

[0012] In an example embodiment, the initial pose data comprises an initial center of mass position and an initial yaw angle of the mobile robot, the reference pose data comprises a reference center of mass position and a reference attitude angle of the mobile robot, and the reference attitude angle comprises the reference yaw angle; and the performing filtering processing with the initial pose data as an input quantity and the reference pose data as an observation quantity to estimate the target pose data of the mobile robot comprises: performing extended Kalman filtering processing with the initial center of mass position and the initial yaw angle as the input quantity and the reference center of mass position and the reference attitude angle as the observation quantity to estimate a target center of mass position and the target yaw angle of the mobile robot, wherein the observation quantity is valid when the foot end of the leg joint is in a touch-down state, and the target pose data further comprises the target center of mass position.

[0013] According to another aspect of the embodiments of the present application, a mobile robot pose data determination apparatus is also provided, comprising: a first determination unit configured to determine initial pose data of a mobile robot according to sensor data of an inertial sensor of the mobile robot, wherein the initial pose data comprises an initial yaw angle of the mobile robot; a calculation unit configured to calculate kinematics information of a foot end of a leg joint corresponding to a joint encoder of the mobile robot according to encoder data of the joint encoder; a second determination unit configured to determine reference pose data of the mobile robot by kinematics back-calculation according to the kinematics information, wherein the reference pose data comprises a reference yaw angle of the mobile robot; and a fusion unit configured to perform data fusion on the initial pose data and the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data comprises a target yaw angle of the mobile robot.

[0014] In one example embodiment, the sensor data comprises angular velocity data of a gyroscope of the inertial sensor and linear acceleration data of an accelerometer of the inertial sensor; and the first determination unit comprises a fusion module configured to perform complementary filtering fusion on the angular velocity data and the linear acceleration data to obtain the initial pose data of the mobile robot.

[0015] In one example embodiment, the fusion module comprises: a first calculation sub-module configured to perform twice integration on the linear acceleration data to calculate initial center of mass position of the mobile robot; and a second calculation sub-module configured to perform once integration on the angular velocity data to calculate initial attitude data of the mobile robot, wherein the initial attitude data comprises the initial yaw angle; and wherein the initial pose data comprises the initial center of mass position and the initial attitude data.

[0016] In one example embodiment, the second determination unit comprises a second calculation module configured to calculate reference center of mass position and reference attitude angle of the mobile robot by kinematics back-calculation according to the foot end position and the foot end velocity, wherein the reference pose data comprises the reference center of mass position and the reference attitude angle, and the reference attitude angle comprises the reference yaw angle.

[0017] In one example embodiment, the fusion unit comprises an estimation module configured to perform filtering processing on the initial pose data as input quantity and the reference pose data as observation quantity to estimate the target pose data of the mobile robot.

[0018] In one example embodiment, the initial pose data includes an initial center of mass position and an initial yaw angle of the mobile robot, the reference pose data includes a reference center of mass position and a reference attitude angle of the mobile robot, the reference attitude angle includes the reference yaw angle; the estimation module includes an estimation submodule configured to perform an extended Kalman filter process with the initial center of mass position and the initial yaw angle as input quantities and with the reference center of mass position and the reference attitude angle as observations to estimate a target center of mass position and a target yaw angle of the mobile robot, wherein the observations are valid when the foot end of the leg joint is in a touch-down state, and the target pose data further includes the target center of mass position.

[0019] According to another aspect of the embodiments of the present application, a computer readable storage medium is provided, which stores a computer program. The computer program is configured to perform the test method of the interface when executed.

[0020] According to another aspect of the embodiments of the present application, an electronic device is provided, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. The processor performs the test method of the interface by executing the computer program.

[0021] In the embodiments of the present application, the initial pose data of the mobile robot is determined by fusing IMU data and joint encoder data of the legged robot, wherein the initial pose data includes an initial yaw angle of the mobile robot; the kinematics information of the foot end of the leg joint corresponding to the joint encoder is calculated according to the encoder data of the joint encoder of the mobile robot; the reference pose data of the mobile robot is determined by kinematics inverse calculation according to the kinematics information, wherein the reference pose data includes a reference yaw angle of the mobile robot; and the target pose data of the mobile robot is obtained by data fusion of the initial pose data and the reference pose data, wherein the target pose data includes a target yaw angle of the mobile robot. Since the initial yaw angle of the mobile robot determined based on the IMU data and the reference yaw angle of the mobile robot determined based on the encoder data of the joint encoder are fused, a corrected yaw angle is obtained, and the yaw angle is processed separately, so as to correct the drift of the yaw angle direction in the odometer, thereby improving the positioning accuracy of the mobile robot and solving the problem of inaccurate positioning of the mobile robot caused by the drift of the yaw angle direction in the odometer. BRIEF DESCRIPTION OF DRAWINGS

[0022] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.

[0023] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0024] Figure 1 is a schematic diagram of a hardware environment for an optional method for determining position and posture data of a mobile robot according to an embodiment of the present application;

[0025] Figure 2 is a flow chart of an optional method for determining position and posture data of a mobile robot according to an embodiment of the present application;

[0026] Figure 3 is a flow chart of an optional method for determining position and posture data of a mobile robot according to an embodiment of the present application;

[0027] Figure 4 is a schematic diagram of another optional method for determining position and posture data of a mobile robot according to an embodiment of the present application;

[0028] Figure 5 is a structural block diagram of an optional device for determining position and posture data of a mobile robot according to an embodiment of the present application;

[0029] Figure 6 This is a structural block diagram of an optional electronic device according to an embodiment of the present application. [Specific implementation method]

[0030] The present application will be described in detail below with reference to the accompanying drawings and in combination with embodiments. It should be noted that, unless there is a conflict, the embodiments and features in the embodiments of the present application can be combined with each other.

[0031] It should be noted that the terms "first", "second", etc. in the description and claims of this application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0032] According to one aspect of the embodiment of the present application, a method for determining the posture data of a mobile robot is provided. Optionally, in this embodiment, the method for determining the posture data of a mobile robot can be applied to Figure 1 In the hardware environment shown in FIG. 1 , a mobile robot 102 and a server 104 are configured. Figure 1As shown, the server 104 is connected with the mobile robot 102 through a network, and can be used to provide services (e.g., pose data determination service, etc.) for the mobile robot. A database can be set on the server or independently of the server, and is used to provide data storage services for the server 104.

[0033] The network can include, but is not limited to, at least one of a wired network and a wireless network. The wired network can include, but is not limited to, at least one of a wide area network, a metropolitan area network, and a local area network. The wireless network can include, but is not limited to, at least one of WIFI (Wireless Fidelity) and Bluetooth.

[0034] The method for determining the pose data of the mobile robot according to the embodiments of the present application can be executed by the server 104, or by the mobile robot 102, or by both the server 104 and the mobile robot 102. The method for determining the pose data of the mobile robot according to the embodiments of the present application executed by the mobile robot 102 can also be executed by a client installed on the mobile robot.

[0035] Taking the method for determining the pose data of the mobile robot according to the embodiments of the present application executed by the mobile robot 102 as an example, Figure 2 is a flowchart of an optional method for determining the pose data of the mobile robot according to the embodiments of the present application, as shown in the figure, the flow of the method can include the following steps: Figure 2

[0036] In step S202, initial pose data of the mobile robot is determined according to sensor data of an inertial sensor of the mobile robot, wherein the initial pose data includes an initial yaw angle of the mobile robot.

[0037] The method for determining the pose data of the mobile robot according to the embodiments of the present application can be applied to a scenario of determining the pose data of the mobile robot during the movement of the mobile robot. The mobile robot can be a quadruped robot, a hexapod robot, an octopod robot, or other robots with multiple legs. The mobile robot is taken as a quadruped robot for example in the embodiments of the present application.

[0038] Currently, the positioning of the mobile robot is more dependent on the inertial odometer based on the IMU. However, for a legged robot, the kinematic information obtained from the joint encoder data can provide additional information for the robot position and attitude estimation. Therefore, the accurate position and attitude of the quadruped robot can be estimated by fusing the six-axis data of the joint encoder and the IMU. Here, the six-axis data can be: three-axis gyroscope and three-axis accelerometer, three-axis attitude angle (or, angular rate) and linear acceleration.

[0039] ​According to the sensor data of the IMU of the mobile robot, the mobile robot can determine initial pose data of the mobile robot. The pose data of the mobile robot is data used to represent the motion state (e.g., position, attitude, etc.) of the mobile robot, and can include position data and attitude data. In the embodiment, the robot position and attitude are estimated based on the sensor data of the IMU and additional information provided by the kinematics information obtained by fusing the joint encoder data, and therefore the pose data determined according to the sensor data of the IMU of the mobile robot is the initial pose data of the mobile robot estimated. The initial pose data can include the initial yaw angle of the mobile robot, and can further include at least one of the initial position data (i.e., initial center of mass position) of the mobile robot and the initial attitude data (e.g., initial roll angle, initial pitch angle) other than the initial yaw angle.

[0040] In step S204, the kinematics information of the foot end of the leg joint corresponding to the joint encoder is calculated according to the encoder data of the joint encoder of the mobile robot.

[0041] The mobile robot can also calculate the kinematics information of the foot end of the leg joint corresponding to the joint encoder according to the encoder data of the joint encoder of the mobile robot. Here, the encoder data of the joint encoder can include the position, speed, etc. of the joint (i.e., motor), and the kinematics information of the foot end can be used to characterize the motion state of the foot end, and can include but not limited to at least one of the position of the foot end and the speed of the foot end. In the embodiment, the encoder data of the joint encoder and the kinematics information of the foot end are not limited.

[0042] In step S206, the reference pose data of the mobile robot is determined by kinematic back-calculation according to the kinematics information, wherein the reference pose data includes the reference yaw angle of the mobile robot.

[0043] According to the kinematics information, the mobile robot can perform kinematic back-calculation to derive the reference pose data of the mobile robot. In the embodiment, the robot position and attitude are estimated based on the sensor data of the IMU and additional information provided by the kinematics information obtained by fusing the joint encoder data, and therefore the pose data determined according to the kinematics information is the pose data referenced for estimating the position data of the mobile robot. The reference pose data includes the reference yaw angle of the mobile robot, and can further include at least one of the reference position data (i.e., reference center of mass position) of the mobile robot and the reference attitude data (e.g., reference roll angle, reference pitch angle) other than the reference yaw angle.

[0044] Step S208 , fusing the initial pose data with the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data includes a target yaw angle of the mobile robot.

[0045] After obtaining the initial pose data and the reference pose data, the mobile robot may fuse the initial pose data with the reference pose data to obtain target pose data of the mobile robot. The obtained target pose data may include a target yaw angle of the mobile robot, and may also include at least one of the following: target position data of the mobile robot (i.e., target center of mass position), and other pose data other than the target yaw angle (e.g., target roll angle, target pitch angle).

[0046] After obtaining the target posture data, the mobile robot can save the target posture data and control the movement of the mobile robot according to the target posture data. For example, the yaw angle of the robot's movement can be adjusted according to the target yaw angle, and the mileage information of the mobile robot's movement can be counted based on the target position data in the target posture data. In this embodiment, there is no limitation on the use of the target posture data.

[0047] Through the above steps S202 to S208, the initial pose data of the mobile robot is determined according to the sensor data of the inertial sensor of the mobile robot, wherein the initial pose data includes the initial yaw angle of the mobile robot; the kinematic information of the foot end of the leg joint corresponding to the joint encoder is calculated according to the encoder data of the joint encoder of the mobile robot; the reference pose data of the mobile robot is determined by kinematic inverse calculation according to the kinematic information, wherein the reference pose data includes the reference yaw angle of the mobile robot; the initial pose data and the reference pose data are fused to obtain the target pose data of the mobile robot, wherein the target pose data includes the target yaw angle of the mobile robot, thereby solving the problem of inaccurate positioning of the mobile robot caused by the drift of the yaw angle direction in the odometer in the related art based on the odometer positioning method, thereby improving the accuracy of the mobile robot positioning.

[0048] In an exemplary embodiment, the sensor data may be the raw data (six-axis data) of the IMU, which may include angular velocity data of the IMU's gyroscope (Gryo, i.e., angular velocity sensor) and linear acceleration data of the IMU's accelerometer (Acc, i.e., acceleration sensor).

[0049] Correspondingly, in this embodiment, determining the initial posture data of the mobile robot according to the sensor data of the inertial sensor of the mobile robot includes:

[0050] S11, performing complementary filtering and fusion on the angular velocity data and the linear acceleration data to obtain the initial posture data of the mobile robot.

[0051] The mobile robot can fuse the angular velocity data of the gyroscope and the linear acceleration data of the accelerometer through complementary filtering to obtain the initial pose data. Complementary filtering is to use the angle obtained by the gyroscope as the optimal in a short time, and to correct the angle obtained by the gyroscope by averaging the angles sampled by the acceleration at regular time. The complementary filter can pass through different filters (complementary high-pass filter and low-pass filter) according to the characteristics of the sensor, and then add them to obtain the signal of the entire frequency band. For example, high-frequency data in the angular velocity data can be suppressed by low-pass filtering; low-frequency noise in the linear acceleration data can be suppressed by high-pass filtering.

[0052] After complementary filtering, the mobile robot can fuse the low-pass filtered angular velocity data and the high-pass filtered linear acceleration data to convert them into the pose data of the mobile robot, that is, the initial pose data.

[0053] Through the embodiment, the accuracy of the determination of the pose data can be improved by complementary filtering and fusing the angular velocity data and the linear acceleration data.

[0054] In one example embodiment, the complementary filtering and fusing of the angular velocity data and the linear acceleration data to obtain the initial pose data of the mobile robot comprises:

[0055] S21, twice integrating the linear acceleration data to calculate the initial center of mass position of the mobile robot;

[0056] S22, once integrating the angular velocity data to calculate the initial attitude data of the mobile robot, wherein the initial attitude data includes the initial yaw angle;

[0057] The initial pose data includes the initial center of mass position and the initial attitude data.

[0058] The initial pose data includes the initial center of mass position and the initial attitude data. The initial center of mass data is the data in the initial pose data for indicating the center of mass position of the mobile robot, and the initial attitude data is the data in the initial pose data for indicating the attitude of the body of the mobile robot. The initial yaw angle included in the initial pose data belongs to the initial attitude data, that is, the initial attitude data includes the initial yaw angle.

[0059] Optionally, in the embodiment, when the angular velocity data and the linear acceleration data are complementary filtered and fused, the mobile robot can twice integrate the linear acceleration data to calculate the initial center of mass position of the mobile robot. The initial center of mass position is the aforementioned initial position data.

[0060] Further, the mobile robot can integrate the angular velocity data once to obtain initial attitude data of the mobile robot. The initial attitude data includes an initial yaw angle, and can further include at least one of an initial roll angle and an initial pitch angle, which are not limited in the embodiment.

[0061] For example, the attitude data obtained by complementary filtering the angular velocity data and the linear acceleration data can include a center of mass position of the body and a yaw angle. Here, the center of mass position of the body can be obtained by twice integrating the accelerometer data, and the yaw angle of the body can be obtained by integrating the angular velocity of the Gryo yaw angle once.

[0062] By the embodiment, the center of mass position of the body is obtained by twice integrating the linear acceleration data, and the attitude data of the center of mass is obtained by integrating the angular velocity data once, so that the convenience of determining the pose data can be improved.

[0063] In an example embodiment, calculating kinematics information of a foot end of a leg joint corresponding to a joint encoder of the mobile robot according to encoder data of the joint encoder includes:

[0064] S31, calculating a foot end position and a foot end velocity of the foot end of the leg joint according to the encoder data, wherein the kinematics information includes the foot end position and the foot end velocity.

[0065] The encoder data can include a position and a velocity of the joint (motor), and the kinematics information can include the position and the velocity. According to the encoder data, the mobile robot can calculate the foot end position and the foot end velocity of the foot end of the leg joint, that is, the position and the velocity of the foot end can be obtained by kinematics calculation from the position and the velocity of the joint.

[0066] By the embodiment, the position and the velocity of the foot end can be obtained by kinematics calculation from the position and the velocity of the joint, so that the accuracy of determining the kinematics information of the foot end can be improved.

[0067] In an example embodiment, determining reference pose data of the mobile robot according to the kinematics information by kinematics back-calculation includes:

[0068] S41, calculating a reference center of mass position and a reference attitude angle of the mobile robot according to the foot end position and the foot end velocity by kinematics back-calculation, wherein the reference pose data includes the reference center of mass position and the reference attitude angle, and the reference attitude angle includes a reference yaw angle.

[0069] Optionally, in the embodiment, the kinematics information of the foot end can include the foot end position and the foot end velocity. According to the foot end position and the foot end velocity, the center of mass position and the attitude angle of the mobile robot, that is, the reference center of mass position and the reference attitude angle, can be calculated by kinematics back-calculation.

[0070] Optionally, the kinematics information of the foot end can be kinematics information when the foot end touches the ground. That is, according to the joint position and velocity of the leg when touching the ground (the number of legs touching the ground >= 2), the center of mass position of the body and the attitude angle of the body can be obtained through kinematics back calculation.

[0071] For example, the displacement velocity of the foot end can be obtained through kinematics calculation according to the position and velocity of the joint; at this time, if the foot end touches the ground, the data of the displacement velocity of the center of mass can be back calculated, and if the foot end does not touch the ground, it is not acceptable.

[0072] Through the embodiment, the reference attitude data of the mobile robot is calculated through kinematics back calculation of the foot end position and the foot end velocity, and the accuracy of the attitude data determination can be improved.

[0073] In one example embodiment, data fusion of the initial pose data and the reference pose data to obtain the target pose data of the mobile robot includes:

[0074] S51, filtering processing is performed with the initial pose data as an input quantity and the reference pose data as an observation quantity to estimate the target pose data of the mobile robot.

[0075] In the embodiment, the initial pose data and the reference pose data can be data fused through filtering processing. After obtaining the initial pose data and the reference pose data, the mobile robot can perform filtering processing with the initial pose data as an input quantity and the reference pose data as an observation quantity to estimate the optimal body center of mass position and attitude angle, that is, the target pose data of the mobile robot.

[0076] When filtering processing is performed, the nonlinear system can be linearized, that is, the initial pose data and the reference pose data are linearized, and then the optimal estimation of the system state is performed through system input and output observation data by using the linear system state equation. Since the observation data (that is, the reference pose data) includes the influence of noise and disturbance in the system, the optimal estimation can also be regarded as a filtering process.

[0077] Through the embodiment, the optimal estimation can be performed through filtering processing with the initial pose data as an input quantity and the reference pose data as an observation quantity, and the rationality of the fused pose data can be improved.

[0078] In one example embodiment, the initial pose data can include the initial center of mass position and the initial yaw angle of the mobile robot, and the reference pose data can include the reference center of mass position and the reference attitude angle of the mobile robot, and the reference attitude angle can include the reference yaw angle, that is, in the embodiment, the yaw angle is processed separately, and other attitude angles are ignored.

[0079] Correspondingly, in this embodiment, the initial pose data is used as input and the reference pose data is used as observation to perform filtering processing, and the target pose data of the mobile robot is estimated to include:

[0080] S61, performs extended Kalman filtering processing with the initial center of mass position and initial yaw angle as input quantities and the reference center of mass position and reference attitude angle as observation quantities to estimate the target center of mass position and target yaw angle of the mobile robot, wherein the observation quantities are valid when the foot end of the leg joint is in the ground contact state, and the target posture data also includes the target center of mass position.

[0081] The aforementioned filtering process may employ an Extended Kalman Filter (EKF), which estimates the optimal fuselage center of mass position and yaw angle. The EKF linearizes a nonlinear system and then performs a Kalman filter. The Kalman filter utilizes the linear system state equation and observation data from the system's input and output to optimally estimate the system state. Because the observation data includes the effects of noise and interference within the system, optimal estimation can also be considered a filtering process.

[0082] In this embodiment, an extended Kalman filter can be performed in combination with encoder information, kinematic information of the quadruped robot, and contact state information. When performing the extended Kalman filter, the initial center of mass position and initial yaw angle can be used as inputs, and the reference center of mass position and reference attitude angle can be used as observations to perform the extended Kalman filter process, thereby estimating the target center of mass position and target yaw angle of the mobile robot (for example, the state variables of the EKF can be the position and velocity of the robot's center of mass in three directions, as well as the yaw angle).

[0083] Because the legs of a mobile robot (a legged robot) are discontinuous, alternating between support and swinging. During the contact phase (normalized to a time scale of 0-1), the short period immediately after and immediately after contact is sometimes considered unreliable (the trustworthy period is the threshold for the contact state). Therefore, only data from the supporting leg within this trustworthy period is considered in the calculation. Therefore, during the extended Kalman filter process, the observation function (i.e., the observed quantity) can be controlled to change according to the contact state of the four legs.

[0084] Through this embodiment, by using the initial center of mass position and the initial yaw angle as input quantities, and the reference center of mass position and the reference attitude angle as observation quantities for EKF processing, and controlling the observation quantities to change according to the contact status of the four legs, the accuracy of the estimated center of mass position and yaw angle of the mobile robot can be improved.

[0085] The following describes the method for determining the posture data of the mobile robot in this embodiment with reference to an optional example. This optional example provides a leg-type odometer and a calibration scheme thereof. In this optional example, the mobile robot is a quadruped robot.

[0086] In this optional example, the accurate position and posture of the quadruped robot are estimated by fusing the six-axis data of the joint encoder and the IMU. Figure 3 and Figure 4 The process of the method for determining the posture data of the mobile robot in this optional example may include the following steps:

[0087] Step S302: After receiving the original data (six-axis data) from the IMU, the attitude data is obtained by complementary filtering and fusion based on the angular velocity data from the gyroscope and the linear acceleration data from the accelerometer.

[0088] like Figure 4 As shown, the gyroscope's angular velocity data (Gryo data) and the accelerometer's linear acceleration data (Acc data) can be fed into a complementary filter for fusion filtering. The attitude data obtained through complementary filtering fusion can include the aircraft's RPY (attitude angle), where RPY refers to the roll, pitch, and yaw angles, which are rotation angles about the x, y, and z directions, respectively.

[0089] Step S304 : performing EKF processing on the encoder information, the kinematic information of the quadruped robot, and the ground contact information to estimate the optimal center of mass position and yaw angle of the fuselage.

[0090] The state variables of the EKF are the position and velocity of the robot's center of mass in three directions and the yaw angle ( Figure 4 calibrated yaw angle, corrected yaw); input ( Figure 4 The control input is the linear acceleration in three directions and the angular velocity in the yaw direction; the observation quantity ( Figure 4 The observation in , prediction) is the position of the four legs ( Figure 4 Joint Pos), speed ( Figure 4The observation function changes according to the touch-down state of the four legs. As the observation, the leg kinematics can be calculated from the joint encoder data (for example, the position, velocity, yaw angle estimated from the position of the four legs, etc. of the four legs mentioned above), and the leg kinematics can be used as the observation function of the EKF.

[0091] In addition, the threshold of the touch-down information in the EKF estimator can be automatically adjusted according to the difference between the estimated touch-down force and the target force, to complete the adaptive configuration function.

[0092] Through the example, the estimation of the body position is more accurate than the inertial odometer based on the IMU data and the joint encoder data of the legged robot, which can effectively solve the drift problem of the inertial odometer. In addition, the yaw angle is processed separately, which can effectively solve the yaw angle drift problem caused by the zero offset of the Z direction angular velocity in the IMU.

[0093] It should be noted that, for the foregoing method embodiments, in order to simply describe, they are all expressed as a series of action combinations, but those skilled in the art should know that the present application is not limited to the action sequence described, because according to the present application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should know that the embodiments described in the specification all belong to preferred embodiments, and the actions and modules involved are not necessarily necessary for the present application.

[0094] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be realized by means of software and necessary general hardware platform, of course, it can also be realized by hardware, but in many cases, the former is a better embodiment. Based on such understanding, the technical solutions of the present application can be embodied in the form of a software product, which is stored in a storage medium (such as ROM (Read-Only Memory), RAM (Random Access Memory), magnetic disk, optical disk), and includes a plurality of instructions to make a terminal device (which can be a mobile phone, computer, server, or network device, etc.) execute the method described in each embodiment of the present application.

[0095] According to another aspect of the embodiments of the present application, a mobile robot pose data determination device for implementing the mobile robot pose data determination method is also provided. Figure 5is a structural block diagram of an optional mobile robot pose data determination apparatus according to an embodiment of the present application, as shown in the figure, the apparatus can include: Figure 5

[0096] The first determination unit 502 is configured to determine initial pose data of the mobile robot according to sensor data of an inertial sensor of the mobile robot, wherein the initial pose data includes an initial yaw angle of the mobile robot.

[0097] The calculation unit 504 is configured to calculate kinematics information of a foot end of a leg joint corresponding to the joint encoder according to encoder data of a joint encoder of the mobile robot.

[0098] The second determination unit 506 is configured to determine reference pose data of the mobile robot by kinematics back calculation according to the kinematics information, wherein the reference pose data includes a reference yaw angle of the mobile robot.

[0099] The fusion unit 508 is configured to perform data fusion on the initial pose data and the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data includes a target yaw angle of the mobile robot.

[0100] It should be noted that the first determination unit 502 in this embodiment can be configured to perform the above step S202, the calculation unit 504 in this embodiment can be configured to perform the above step S204, the second determination unit 506 in this embodiment can be configured to perform the above step S206, and the fusion unit 508 in this embodiment can be configured to perform the above step S208.

[0101] According to the above modules, the initial pose data of the mobile robot is determined according to the sensor data of the inertial sensor of the mobile robot, wherein the initial pose data includes the initial yaw angle of the mobile robot; the kinematics information of the foot end of the leg joint corresponding to the joint encoder is calculated according to the encoder data of the joint encoder of the mobile robot; the reference pose data of the mobile robot is determined by kinematics back calculation according to the kinematics information, wherein the reference pose data includes the reference yaw angle of the mobile robot; and the data fusion is performed on the initial pose data and the reference pose data to obtain the target pose data of the mobile robot, wherein the target pose data includes the target yaw angle of the mobile robot, thereby solving the problem of inaccurate positioning of the mobile robot caused by the drift of the yaw angle direction in the odometer in the related art, and improving the accuracy of the positioning of the mobile robot.

[0102] ​In an example embodiment, the sensor data comprises angular velocity data of a gyroscope of the inertial sensor and linear acceleration data of an accelerometer of the inertial sensor; the first determining unit 502 comprises:

[0103] a fusion module configured to complementarily filter the angular velocity data and the linear acceleration data to obtain initial pose data of the mobile robot.

[0104] In an example embodiment, the fusion module comprises:

[0105] a first calculation sub-module configured to secondly integrate the linear acceleration data to calculate initial center of mass position of the mobile robot;

[0106] a second calculation sub-module configured to first integrate the angular velocity data to calculate initial attitude data of the mobile robot, wherein the initial attitude data comprises initial yaw angle.

[0107] wherein the initial pose data comprises the initial center of mass position and the initial attitude data.

[0108] In an example embodiment, the calculation unit 504 comprises:

[0109] a first calculation module configured to calculate foot end position and foot end velocity of the foot end of the leg joint according to the encoder data, wherein the kinematics information comprises the foot end position and the foot end velocity.

[0110] In an example embodiment, the apparatus further comprises:

[0111] a saving unit configured to save a motor overload curve into a storage component of a driver of the target motor before detecting that the target motor of the mobile robot is subjected to a hot start, wherein the motor overload curve is an overload curve of the target motor tested offline.

[0112] In an example embodiment, the second determining unit 506 comprises:

[0113] a second calculation module configured to calculate reference center of mass position and reference attitude angle of the mobile robot through kinematics back calculation according to the foot end position and the foot end velocity, wherein the reference pose data comprises the reference center of mass position and the reference attitude angle, and the reference attitude angle comprises reference yaw angle.

[0114] In an example embodiment, the fusion unit 508 comprises:

[0115] an estimation module configured to filter with the initial pose data as input and the reference pose data as observation to estimate target pose data of the mobile robot.

[0116] In one example embodiment, the initial pose data includes an initial center of mass position and an initial yaw angle of the mobile robot, the reference pose data includes a reference center of mass position and a reference attitude angle of the mobile robot, the reference attitude angle includes a reference yaw angle; the estimation module includes:

[0117] an estimation sub-module configured to perform an extended Kalman filtering process with the initial center of mass position and the initial yaw angle as input quantities and with the reference center of mass position and the reference attitude angle as observations, and estimate a target center of mass position and a target yaw angle of the mobile robot, wherein the observations are valid when the foot end of the leg joint is in a touch-down state, and the target pose data further includes the target center of mass position.

[0118] It should be noted that the above modules have the same examples and application scenarios as the corresponding steps, but are not limited to the content disclosed in the above embodiments. It should be noted that the above modules can be run in the hardware environment shown in Figure 1 as part of the device, and can be implemented by software or hardware, wherein the hardware environment includes a network environment.

[0119] According to another aspect of the embodiments of the present application, a storage medium is also provided. Optionally, in the present embodiment, the above-mentioned storage medium can be used to store program codes for executing any of the above-mentioned mobile robot pose data determination methods in the embodiments of the present application.

[0120] Optionally, in the present embodiment, the above-mentioned storage medium can be located on at least one of the plurality of network devices in the network shown in the above-mentioned embodiments.

[0121] Optionally, in the present embodiment, the storage medium is configured to store program codes for performing the following steps:

[0122] S1, determining initial pose data of a mobile robot according to sensor data of an inertial sensor of the mobile robot, wherein the initial pose data includes an initial yaw angle of the mobile robot;

[0123] S2, calculating kinematics information of a foot end of a leg joint corresponding to a joint encoder of the mobile robot according to encoder data of the joint encoder;

[0124] S3, determining reference pose data of the mobile robot by kinematics back-calculation according to the kinematics information, wherein the reference pose data includes a reference yaw angle of the mobile robot;

[0125] S4, performing data fusion on the initial pose data and the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data includes a target yaw angle of the mobile robot.

[0126] Optionally, the specific examples in this embodiment may refer to the examples described in the above embodiments, which will not be described in detail in this embodiment.

[0127] Optionally, in this embodiment, the storage medium may include, but is not limited to, various media that can store program codes, such as a USB flash drive, a ROM, a RAM, a mobile hard disk, a magnetic disk, or an optical disk.

[0128] According to another aspect of the embodiments of the present application, an electronic device for implementing the above-mentioned method for determining the posture data of a mobile robot is also provided. The electronic device may be a server, a terminal, or a combination thereof.

[0129] Figure 6 is a structural block diagram of an optional electronic device according to an embodiment of the present application, such as Figure 6 As shown, it includes a processor 602, a communication interface 604, a memory 606 and a communication bus 608, wherein the processor 602, the communication interface 604 and the memory 606 communicate with each other through the communication bus 608, wherein,

[0130] Memory 606, for storing computer programs;

[0131] The processor 602 is configured to execute the computer program stored in the memory 606 to implement the following steps:

[0132] S1, determining initial position data of the mobile robot based on sensor data of an inertial sensor of the mobile robot, wherein the initial position data includes an initial yaw angle of the mobile robot;

[0133] S2, calculating kinematic information of the foot end of the leg joint corresponding to the joint encoder according to encoder data of the joint encoder of the mobile robot;

[0134] S3, determining reference pose data of the mobile robot through kinematic back calculation according to the kinematic information, wherein the reference pose data includes a reference yaw angle of the mobile robot;

[0135] S4, fusing the initial pose data with the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data includes a target yaw angle of the mobile robot.

[0136] Optionally, in this embodiment, the communication bus may be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus. The communication bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 The communication interface is used for communication between the electronic device and other devices.

[0137] The aforementioned memory may include RAM, or may include non-volatile memory (non-volatile memory), for example, at least one disk memory. Optionally, the memory may also be at least one storage device located away from the aforementioned processor.

[0138] As an example, the memory 606 may include, but is not limited to, the first determination unit 502, the calculation unit 504, the second determination unit 506, and the fusion unit 508 of the apparatus for determining the position and posture data of the mobile robot. Furthermore, the memory 606 may also include, but is not limited to, other modules and units of the apparatus for determining the position and posture data of the mobile robot, which will not be described in detail in this example.

[0139] The above-mentioned processor can be a general-purpose processor, including but not limited to: CPU (Central Processing Unit), NP (Network Processor), etc.; it can also be DSP (Digital Signal Processing), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.

[0140] Optionally, the specific examples in this embodiment may refer to the examples described in the above embodiments, and this embodiment will not be described in detail here.

[0141] It can be understood by those skilled in the art that Figure 6 The structure shown is for illustration only. The device for implementing the above-mentioned method for determining the position and posture data of a mobile robot may be a terminal device, and the terminal device may be a multi-legged robot or other terminal device. Figure 6 It does not limit the structure of the above electronic device. For example, the electronic device may also includeFigure 6 More or fewer components (such as network interfaces, display devices, etc.) shown in, or with Figure 6 Different configurations shown.

[0142] A person skilled in the art can understand that all or part of the steps in the various methods of the above embodiments can be completed by instructing the hardware related to the terminal device through a program, and the program can be stored in a computer-readable storage medium, which can include: a flash drive, ROM, RAM, a magnetic disk or an optical disk, etc.

[0143] The serial numbers of the above embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.

[0144] If the integrated units in the above embodiments are implemented in the form of software functional units and sold or used as independent products, they can be stored in the above-mentioned computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling one or more computer devices (which can be personal computers, servers, or network devices, etc.) to execute all or part of the steps of the methods described in each embodiment of the present application.

[0145] In the above embodiments of the present application, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, please refer to the relevant description of other embodiments.

[0146] In the several embodiments provided in this application, it should be understood that the disclosed client can be implemented in other ways. Among them, the device embodiments described above are merely illustrative. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of units or modules, and can be electrical or other forms.

[0147] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected based on actual needs to achieve the purpose of the solution provided in this embodiment.

[0148] In addition, each of the functional units in the various embodiments of the present application can be integrated in one processing unit, or each of the units can exist physically, or two or more units can be integrated in one unit. The integrated unit can be implemented in the form of hardware or in the form of a software functional unit.

[0149] The above only describes the preferred embodiments of the present application. It should be noted that, for those skilled in the art, without departing from the principles of the present application, a number of improvements and refinements can be made, and these improvements and refinements should also be considered as the protection scope of the present application.

Claims

1. A method for determining the posture data of a mobile robot, characterized in that: include: Determining initial position data of the mobile robot based on sensor data of an inertial sensor of the mobile robot, wherein the initial position data includes an initial yaw angle of the mobile robot; Calculating kinematic information of a foot end of a leg joint corresponding to the joint encoder according to encoder data of a joint encoder of the mobile robot; Determining reference pose data of the mobile robot through kinematic back calculation according to the kinematic information, wherein the reference pose data includes a reference yaw angle of the mobile robot; fusing the initial pose data with the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data includes a target yaw angle of the mobile robot; Wherein, the calculating, based on encoder data of a joint encoder of the mobile robot, kinematic information of a foot end of a leg joint corresponding to the joint encoder comprises: calculating a foot end position and a foot end velocity of the foot end of the leg joint based on the encoder data, wherein the kinematic information comprises the foot end position and the foot end velocity; Determining the reference pose data of the mobile robot through kinematic back calculation based on the kinematic information includes: calculating the reference center of mass position and reference attitude angle of the mobile robot through kinematic back calculation based on the foot end position and the foot end speed, wherein the reference pose data includes the reference center of mass position and the reference attitude angle, and the reference attitude angle includes the reference yaw angle.

2. The method according to claim 1, characterized in that The sensor data includes angular velocity data of a gyroscope of the inertial sensor and linear acceleration data of an accelerometer of the inertial sensor; and determining the initial posture data of the mobile robot according to the sensor data of the inertial sensor of the mobile robot includes: The angular velocity data and the linear acceleration data are complementary filtered and fused to obtain the initial posture data of the mobile robot.

3. The method according to claim 2, characterized in that The step of performing complementary filtering and fusing the angular velocity data and the linear acceleration data to obtain the initial posture data of the mobile robot includes: Performing a second integration on the linear acceleration data to calculate the initial center of mass position of the mobile robot; Integrating the angular velocity data once to calculate initial posture data of the mobile robot, wherein the initial posture data includes the initial yaw angle; The initial position data includes the initial center of mass position and the initial posture data.

4. The method according to claim 1, wherein The fusing the initial pose data with the reference pose data to obtain the target pose data of the mobile robot comprises: The initial posture data is used as input and the reference posture data is used as observation to perform filtering processing to estimate the target posture data of the mobile robot.

5. The method according to claim 4, characterized in that The initial pose data includes the initial center of mass position and initial yaw angle of the mobile robot, the reference pose data includes the reference center of mass position and reference attitude angle of the mobile robot, and the reference attitude angle includes the reference yaw angle; the filtering process using the initial pose data as input and the reference pose data as observation to estimate the target pose data of the mobile robot includes: Extended Kalman filtering is performed with the initial center of mass position and the initial yaw angle as input quantities and the reference center of mass position and the reference attitude angle as observation quantities to estimate the target center of mass position and the target yaw angle of the mobile robot, wherein the observation quantities are valid when the foot end of the leg joint is in a ground contact state, and the target posture data also includes the target center of mass position.

6. A device for determining the posture data of a mobile robot, characterized in that: include: a first determining unit, configured to determine initial position and posture data of the mobile robot based on sensor data of an inertial sensor of the mobile robot, wherein the initial position and posture data includes an initial yaw angle of the mobile robot; a calculation unit for calculating kinematic information of a foot end of a leg joint corresponding to the joint encoder based on encoder data of a joint encoder of the mobile robot; a second determining unit, configured to determine reference pose data of the mobile robot through kinematic back calculation according to the kinematic information, wherein the reference pose data includes a reference yaw angle of the mobile robot; a fusion unit, configured to fuse the initial pose data with the reference pose data to obtain target pose data of the mobile robot, wherein the target pose data includes a target yaw angle of the mobile robot; Wherein, the calculation unit includes: a first calculation module for calculating the foot-end position and foot-end velocity of the foot end of the leg joint based on the encoder data, wherein the kinematic information includes the foot-end position and the foot-end velocity; The second determination unit includes: a second calculation module, used to calculate the reference center of mass position and reference attitude angle of the mobile robot through kinematic back calculation based on the foot end position and the foot end speed, wherein the reference posture data includes the reference center of mass position and the reference attitude angle, and the reference attitude angle includes the reference yaw angle.

7. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes a stored program, wherein the program executes the method according to any one of claims 1 to 5 when executed.

8. An electronic device comprising a memory and a processor, characterized in that: A computer program is stored in the memory, and the processor is configured to execute the method according to any one of claims 1 to 5 through the computer program.

Citation Information

Patent Citations

  • Robot mileage positioning method and device, terminal device and computer storage medium

    CN109866217A