Human posture data processing method, system, device, storage medium and product
By using a method based on the order statistical estimation of the sorting results and driven by a four-state finite state machine, high-quality human posture data is automatically selected for robust calibration. This solves the problem of decreased calibration accuracy caused by interference such as sensor jitter in motion capture systems, and improves the accuracy and consistency of teleoperation.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- AGIBOT INNOVATION (SHANGHAI) TECHNOLOGY CO LTD
- Filing Date
- 2026-07-06
- Publication Date
- 2026-07-31
AI Technical Summary
In existing technologies, motion capture systems are easily affected by factors such as sensor jitter, marker occlusion, or instantaneous non-stationary movement when collecting human posture data, which leads to a decrease in the accuracy of human parameter calibration and thus affects the accuracy of teleoperation retargeting.
A ranking statistical estimation method based on sorting results is adopted to determine posture stability information through multiple frames of human posture data. High-quality data is automatically selected and robust calibration is performed based on parameters such as height, foot posture, and foot vertical offset. The calibration process is driven by a four-state finite state machine to improve the accuracy and robustness of the calibration parameters.
It effectively resists outlier interference in motion capture data, ensures the stability and high quality of calibration data, improves the accuracy and consistency of teleoperation, and reduces the impact of operator non-stationary movements on calibration results.
Smart Images

Figure CN122488949A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of teleoperation technology, and in particular to a method, system, device, storage medium and product for processing human posture data. Background Technology
[0002] Humanoid robot teleoperation technology aims to map an operator's motion data onto a robot that may differ in size and structure, enabling it to reproduce the operator's movements. In this process, precise calibration of the operator's body parameters is a crucial prerequisite for ensuring motion redirection accuracy and robot operational safety.
[0003] However, when motion capture systems collect multiple frames of human posture data, they are subject to interference from factors such as sensor jitter, marker occlusion, or instantaneous non-stationary movement, which can produce outliers. This reduces the accuracy of calibration when performing human parameter calibration based on the collected human posture data, and consequently reduces the accuracy of retargeting. Summary of the Invention
[0004] This application provides a method, system, device, storage medium, and product for processing human posture data, in order to solve the technical problem of low accuracy of human body calibration during teleoperation in related technologies.
[0005] In a first aspect, embodiments of this application provide a method for processing human posture data, comprising the following steps.
[0006] Receive multiple frames of human posture data for human body parameter calibration of the target human body; Based on the multi-frame human posture data, determine the posture stability information of the target human body; When the posture stability information meets the calibration stability condition, based on the multi-frame human posture data, multiple candidate parameter values corresponding to each parameter item in at least one parameter item are determined respectively. The multiple candidate parameter values corresponding to each parameter item are determined based on human posture data in different frames. The at least one parameter item includes at least one of the following: height parameter item, foot posture parameter item, and foot vertical offset parameter item. For each parameter item, based on the sorting result of multiple candidate parameter values corresponding to the parameter item, the calibration parameter value corresponding to the parameter item is determined to obtain the human body calibration parameters of the target human body; Based on the human body calibration parameters, motion mapping parameters between the target human body and the robot are determined. These motion mapping parameters are used to perform motion redirection processing on the human body motion data of the target human body to obtain target motion data for controlling the robot's motion.
[0007] Secondly, embodiments of this application provide a human posture data processing system, including a data receiving interface, a calibration module, and a motion redirection module; The data receiving interface is used to receive multiple frames of human posture data of the target human body and send the multiple frames of human posture data to the calibration module; the calibration module is used to execute any of the human posture data processing methods described above; the motion redirection module is used to map the human motion data of the target human body to target motion data for controlling the robot's motion based on the motion mapping parameters sent by the calibration module.
[0008] Thirdly, embodiments of this application provide an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement any of the human posture data processing methods described above.
[0009] Fourthly, a non-transitory computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the human posture data processing method described above.
[0010] Fifthly, embodiments of this application also provide a computer program product, including a computer program that, when executed by a processor, implements any of the human posture data processing methods described above.
[0011] The human posture data processing method, system, device, storage medium, and product provided in this application first receive multiple frames of human posture data for calibrating human parameters of a target human body. Based on the multiple frames of human posture data, the posture stability information of the target human body is determined. If the posture stability information meets the calibration stability conditions, based on the multiple frames of human posture data, multiple candidate parameter values corresponding to each parameter item are determined, wherein the multiple candidate parameter values corresponding to each parameter item are determined based on different frames of human posture data. Then, for each parameter item, based on the sorting result of the multiple candidate parameter values corresponding to the parameter item, the calibration parameter value corresponding to the parameter item is determined to obtain the human calibration parameters of the target human body. Finally, based on the human calibration parameters, motion mapping parameters between the target human body and the robot are determined. These motion mapping parameters are used to perform motion redirection processing on the human motion data of the target human body to obtain target motion data for controlling the robot's motion. By verifying posture stability, the data used for calibration is ensured to be stable and of high quality from the source, reducing the impact of non-stationary movements of the operator on the calibration results. By calibrating at least one of the height parameter, foot posture parameter, and foot vertical offset parameter, a rich parameter basis for motion retargeting is provided. By determining the calibration parameter value from multiple candidate parameter values based on the sorting results, the interference of outliers in human posture data is effectively resisted, improving the accuracy and robustness of the calibration parameter values. Attached Figure Description
[0012] To more clearly illustrate the technical solutions in the embodiments or related technologies of this application, the accompanying drawings used in the description of the embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0013] Figure 1 This is a flowchart illustrating the human posture data processing method provided in the embodiments of this application.
[0014] Figure 2 This is a schematic diagram of the human posture data processing system provided in the embodiments of this application.
[0015] Figure 3 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application. Detailed Implementation
[0016] To map the operator's human motion data onto the robot, enabling the robot to reproduce the operator's movements, an arithmetic mean (average) can be used to process multiple frames of human pose data collected from the motion capture system to obtain the operator's body parameters. For example, by simply averaging multiple frames of height data within a T-pose capture time period, the operator's average height can be obtained.
[0017] However, the aforementioned calibration method based on mean estimation has the following technical drawbacks: This method is sensitive to outlier data and has poor robustness. During data acquisition, motion capture systems are inevitably affected by factors such as sensor jitter, marker occlusion, or momentary non-stationary movement, generating data frames containing outliers. The collapse point of the arithmetic mean estimation is zero, meaning that any extreme outlier will significantly affect the final calibration result, leading to unacceptable deviations in the calibration parameters. Furthermore, to obtain relatively reliable results, operators must remain strictly still during acquisition, relying on tedious post-processing to manually remove bad frames, which is inefficient and cannot be automated. Moreover, this method lacks automatic verification of stillness; slight body swaying, foot movement, and breathing fluctuations of the operator can also contaminate the mean data used for calculation. The lack of an automatic and reliable mechanism to verify the quality of the acquired data makes it impossible to ensure the reliability of the data used for calibration from the source, further exacerbating the uncertainty of the calibration results. Furthermore, different operators have different foot postures when standing. Uncalibrated foot postures can lead to unnatural robot foot postures during inverse motion solving, which in turn affects the stability and coordination of the robot's walking, standing and other actions.
[0018] To address the aforementioned technical issues, this application proposes a human posture data processing method. It employs order-based statistical estimation based on sorting results instead of arithmetic mean, effectively resisting outlier interference in motion capture data caused by sensor jitter and instantaneous non-stationary movement. This eliminates the need for pre-identification and removal of bad frames, significantly improving the accuracy and reliability of calibration parameters. Through automatic verification of stationarity across multiple dimensions (such as height and foot position), it ensures stable and high-quality data for calibration from the outset, avoiding contamination of calibration results due to operator non-stationary movements. Robust calibration of linear scales such as height and foot vertical offset, as well as robust calibration of foot posture, enables precise correction of foot posture and compensation for ground vertical deviation, providing a complete parameter basis for high-precision motion redirection and improving the accuracy of teleoperation.
[0019] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0020] Figure 1 This is a flowchart illustrating the human posture data processing method provided in an embodiment of this application, as shown below. Figure 1 As shown, this application provides a method for processing human posture data, the execution entity of which can be a calibration module in a human posture data processing system. This method may include steps 101 to 105.
[0021] Step 101: Receive multiple frames of human posture data for human body parameter calibration of the target human body.
[0022] Specifically, the target human body is a human operator wearing motion capture equipment who needs to have their parameters calibrated.
[0023] Human pose data is raw data used to describe the position and / or rotation information of each joint or key marker point of a target human body at each moment when the target human body is in a preset calibration posture. Each frame of human pose data corresponds to the complete human pose at a point in time. For example, each frame of human pose data contains the three-dimensional spatial coordinate information of multiple key points or marker points (such as at least one of the key points such as the top of the head, left and right toes, ankles, shoulders, and hips) of the target human body. Multiple frames of human pose data are multiple human pose data that are received continuously and constitute a time series.
[0024] Motion capture systems can collect human posture data of a target human body through sensors and send multiple frames of human posture data to a human posture data processing system, where the calibration module in the human body calibration parameter system processes the multiple frames of human posture data.
[0025] For example, the target human (i.e., the operator) is first required to stand in an open area in a preset, calibrated posture—the T-pose (i.e., a standard standing posture with arms outstretched horizontally and feet shoulder-width apart). An optical motion capture system (e.g., a motion capture system consisting of 12 infrared cameras) begins collecting human motion data from the target human. The human posture data processing system receives multiple consecutive frames of human posture data over a continuous time period (e.g., lasting 2 seconds). Each frame of human posture data contains the three-dimensional spatial coordinates of multiple key points on the target human body, such as the top of the head, left and right toes, ankles, shoulders, and hips.
[0026] Step 102: Based on the multi-frame human posture data, determine the posture stability information of the target human body.
[0027] Specifically, posture stability information is an indicator determined from multiple frames of human posture data, used to quantify the amplitude or degree of body sway or movement of the target human body during the acquisition period. Its core function is to determine whether the data quality of the human posture data meets the standards. Posture stability information can be a single statistic or a composite indicator.
[0028] For example, based on multiple frames of human pose data, the positional changes of one or more key points (or marker points) can be obtained, including the positional changes in the X, Y, and Z axes, and the positional changes of each key point can be used as pose stability information.
[0029] For example, the height change of a target human body can be determined from multiple frames of human pose data, and the height change of the target human body can be used as pose stability information.
[0030] For example, the change in the position of the feet of the target human body can be determined from multiple frames of human pose data and used as pose stability information, including the change in the position of the left foot in three axial directions and the change in the position of the right foot in three axial directions.
[0031] For example, the changes in height and foot position of the target human body can be combined as posture stability information.
[0032] Step 103: When the posture stability information meets the calibration stability conditions, based on the multi-frame human posture data, determine multiple candidate parameter values corresponding to each parameter item in at least one parameter item, wherein the multiple candidate parameter values corresponding to each parameter item are determined based on human posture data from different frames, and the at least one parameter item includes at least one of the height parameter item, foot posture parameter item, and foot vertical offset parameter item.
[0033] Specifically, the calibration stability condition is a preset criterion used to assess whether the posture stability information indicates that the target human body is in a static or near-static state.
[0034] The parameter is a specific body mass value that needs to be calibrated. The parameter can include at least one of the following: height parameter, foot posture parameter, and foot vertical offset parameter. Among them, the height parameter is used to characterize the vertical height of the target human body in the preset calibration posture; the foot posture parameter is used to characterize the rotational orientation of the target human body's feet in space, such as in-toeing or out-toeing; the foot vertical offset parameter is used to characterize the distance between the key points of the target human body's feet and an ideal ground plane (Y=0 plane).
[0035] A candidate parameter value is a specific numerical value extracted from a particular frame of human pose data for a specific parameter item. For example, extracting the height value from the first frame of human pose data would be the first candidate parameter value for the height parameter item.
[0036] After determining the posture stability information of the target human body, it is determined whether the posture stability information meets the calibration stability conditions.
[0037] For example, the preset calibration stability conditions are that the change in height does not exceed a first threshold (e.g., 0.05 meters) and the change in foot position does not exceed a second threshold (e.g., 0.03 meters). The calculated posture stability information is compared with the preset thresholds. If the change in height does not exceed the first threshold and the changes in the positions of both feet do not exceed the second threshold, then the posture stability information is determined to meet the calibration stability conditions. If the change in height exceeds the first threshold, or the change in position of the left foot in any axis direction exceeds the second threshold (e.g., the target body slightly moves the left foot, causing the change in position of the left foot in the Z-axis direction to exceed the second threshold), or the change in position of the right foot in any axis direction exceeds the second threshold, then the posture stability information is determined to not meet the calibration stability conditions.
[0038] If the posture stability information does not meet the calibration stability conditions, it indicates that the calibration has failed. The current multi-frame human posture data is discarded, and the operator is prompted to adjust the posture and re-collect human posture data for calibration.
[0039] If the posture stability information is determined to meet the calibration stability conditions, then candidate parameter values are extracted from each parameter item that needs to be calibrated from the multi-frame human posture data.
[0040] In some embodiments, candidate parameter values can be extracted for at least one of the following parameters: height parameter, foot posture parameter, and foot vertical offset parameter. The height parameter corresponds to candidate height values, including the height value of the target human body extracted from each frame of human posture data. The foot posture parameter corresponds to candidate foot posture values, including the rotation angle value of the target human body's foot extracted from each frame of human posture data. The foot vertical offset parameter corresponds to candidate foot vertical offset values, including the positional offset of the target human body's foot in the direction perpendicular to the ideal ground plane extracted from each frame of human posture data. This positional offset is the distance of the target human body's foot relative to an ideal ground plane in the vertical direction (direction of gravity). For example, if the ideal ground plane is in the Y=0 plane, and the coordinate of the target human body's right toe in the Y-axis direction is -0.02, then the vertical offset of the target human body's right toe is 0.02 meters.
[0041] Step 104: For each parameter item, based on the sorting result of multiple candidate parameter values corresponding to the parameter item, determine the calibration parameter value corresponding to the parameter item to obtain the human body calibration parameters of the target human body.
[0042] Specifically, the sorting result of multiple candidate parameter values corresponding to each parameter item is an ordered sequence obtained by arranging multiple candidate parameter values in a predetermined order (such as from smallest to largest or from largest to smallest).
[0043] Based on the sorting results of multiple candidate parameter values, a candidate parameter value that can represent the true value of the corresponding parameter item is determined, which is the calibration parameter value corresponding to that parameter item.
[0044] The set of calibration parameter values corresponding to all parameter items is used as the human calibration parameters for the target human body.
[0045] For example, for the n candidate height parameter values (n is a positive integer) corresponding to the height parameter item, arrange them in ascending order to obtain the sequentially arranged candidate height parameter values {H(1), H(2), ..., H(n)}. Select the median as the calibration parameter value corresponding to the height parameter item. When n is odd, the median is H((n+1) / 2), and when n is even, the median is (H(n / 2)+H((n+1) / 2)) / 2.
[0046] For example, the foot attitude parameter item includes multiple foot attitude candidate values corresponding to each of the three attitude components (roll component, pitch component, and yaw component). The multiple foot attitude candidate values corresponding to each attitude component are sorted separately to obtain an ordered sequence of foot attitude candidate values corresponding to each attitude component, and the median of each sequence is selected as the corresponding foot attitude calibration parameter value.
[0047] For example, the candidate vertical offset values of the feet corresponding to each frame of human posture data are sorted to obtain an ordered sequence of vertical offset candidate values for the left foot and an ordered sequence of vertical offset candidate values for the right foot. The median is then selected from these sequences to obtain the vertical offset calibration parameter values for the left foot and the right foot.
[0048] The calibration parameter values corresponding to at least one of the above parameter items constitute the human body calibration parameters of the target human body.
[0049] Step 105: Based on the human body calibration parameters, determine the motion mapping parameters between the target human body and the robot. The motion mapping parameters are used to perform motion redirection processing on the human body motion data of the target human body (such as at least one of the joint angles and positions of various parts of the target human body) to obtain target motion data for controlling the robot's motion.
[0050] Specifically, motion mapping parameters are coefficients, corrections, or transformation rules used to map human motion data of a target human body into robot-executable instructions. They may include at least one of parameters such as scaling factors, posture correction parameters, and vertical position corrections.
[0051] After obtaining the motion mapping parameters, motion redirection processing is performed, which is the calculation process of converting human motion data into target motion data corresponding to the robot.
[0052] Target motion data is motion commands or indications obtained after motion redirection processing, used to control the robot's motion. Target motion data may include at least one of the following: target angle of each joint of the robot and target position of the end effector.
[0053] At this point, all motion mapping parameters have been determined. During subsequent teleoperation, when the target human body moves, the aforementioned motion mapping parameters will be used to redirect the real-time human motion data (such as joint angles and end-effector positions) of the target human body into the robot's target motion data, thereby driving the robot to complete precise and coordinated movements and achieving accurate teleoperation.
[0054] In some embodiments, the calibration process is driven by a four-state finite state machine (FSM), including idle, acquisition, waiting, and teleoperation states.
[0055] The idle state refers to the state of waiting for calibration instructions. It is the initial state of the human posture data processing system. When calibration fails (a stop calibration instruction is received), it also falls back to the idle state.
[0056] The acquisition state refers to the state in which human posture data is being acquired. When the human posture data indicates that the posture stability information of the target human body meets the calibration stability conditions, an acquisition command is received to trigger the entry into the acquisition state. When the acquisition times out or the posture stability information does not meet the calibration stability conditions, it indicates that the calibration has failed and the system returns to the idle state.
[0057] The waiting state refers to the state where the motion mapping parameters have been calculated and the teleoperation is waiting to be initiated. When the teleoperation is initiated command is received, the teleoperation state is triggered.
[0058] The teleoperation state refers to the state during real-time teleoperation. By redirecting the human motion data through the obtained motion mapping parameters, the target motion data for controlling the robot's motion is obtained.
[0059] The human posture data processing method provided in this application improves the success rate and consistency of calibration by automatically filtering qualified human posture data and reducing invalid human posture data caused by operators failing to maintain standard stable postures. It determines calibration parameter values based on the ranking results of multiple candidate parameter values corresponding to parameter items, i.e., it uses an order statistical estimation method resistant to outliers to determine calibration parameter values, thus improving the accuracy and reliability of calibration parameter values. By using calibration parameter values corresponding to at least one parameter item, motion mapping is achieved from at least one dimension, improving the accuracy of teleoperation.
[0060] In some embodiments, determining the posture stability information of the target human body based on the multi-frame human posture data may include: determining the target human body height and foot position corresponding to each frame of human posture data based on the multi-frame human posture data; determining height stability information based on the target human body height corresponding to each of the multi-frame human posture data; and determining foot position stability information based on the foot position corresponding to each of the multi-frame human posture data; wherein the height stability information is used to characterize the dispersion of the target human body height; and the foot position stability information is used to characterize the dispersion of the target human body foot position.
[0061] Specifically, posture stabilization information may include at least height stabilization information and foot position stabilization information. Height stabilization information can be used to characterize the dispersion (or degree of dispersion or fluctuation) of the target human body's height during human posture data acquisition. Foot position stabilization information can be used to characterize the dispersion of the target human body's foot position during human posture data acquisition, and may include the dispersion of the foot position in at least one axial direction.
[0062] The target human height is determined based on each frame of human posture data. Height stability information can be obtained based on the target human height corresponding to multiple frames of human posture data. At the same time, foot position stability information can be obtained based on the foot position of the target human corresponding to multiple frames of human posture data.
[0063] Foot position refers to the coordinates of the target human's feet in three-dimensional space. It can be represented by the coordinates of key foot points (such as toes, ankles, or heels). Foot position can be used to determine whether the target human has moved horizontally or vertically during human posture data acquisition. The target human's height can be calculated based on human posture data, for example, based on foot and head positions.
[0064] The human posture data processing method provided in this application uses height stability information and foot position stability information as posture stability information, and simultaneously monitors the stability in both vertical (height) and horizontal (foot position) dimensions. This method can comprehensively capture the non-static movements that may occur in the target human body, and reduces the impact of the operator's non-static movements on the parameters used for calibration.
[0065] In some embodiments, the height stability information in the posture stability information may include the range, variance, or standard deviation of the target human height; the foot position stability information in the posture stability information may include the range, variance, or standard deviation of the foot position in at least one axial direction.
[0066] Specifically, posture stability information can be used to characterize the dispersion (or degree of dispersion or fluctuation) of multi-frame human posture data, such as range, variance, or standard deviation. The greater the dispersion, the more unstable the data; the smaller the dispersion, the more stable the data.
[0067] Height stability information can be the range, variance, or standard deviation of the target human height. Foot position stability information can include the range, variance, or standard deviation of the foot position in at least one axial direction.
[0068] For example, consider the range. First, the target human body maintains a preset calibration posture. The human body parameter calibration system collects human posture data at a frame rate of 60 frames per second for 2 seconds, collecting a total of 120 frames of human posture data. From these 120 frames of human posture data, the target human height and foot position corresponding to each frame are extracted, resulting in a sequence of target human height and foot position corresponding to multiple frames of human posture data. In these 120 frames of human posture data, the maximum target human height is 1.75 meters, and the minimum is 1.72 meters. The calculated range of the target human height is 0.03 meters, meaning the target human height fluctuates by a maximum of 3 centimeters, which is used as height stability information. The foot positions in these 120 frames of human posture data are determined, such as the position coordinates of the left toes in the X, Y, and Z axes and the position coordinates of the right toes in the X, Y, and Z axes. The ranges of the position coordinates of the left toes in the three axes and the right toes in the three axes are calculated respectively. The ranges of the position coordinates of the left toes in the X axis are 0.012 meters, the ranges of the position coordinates in the Y axis are 0.015 meters, and the ranges of the position coordinates in the Z axis are 0.008 meters. The ranges of the position coordinates of the right toes in the X axis are 0.010 meters, the ranges of the position coordinates in the Y axis are 0.005 meters, and the ranges of the position coordinates in the Z axis are 0.006 meters. The maximum value of all position coordinate ranges, 0.015 meters, is taken as the foot position stability information.
[0069] The human posture data processing method provided in this application quantifies the stability of the acquisition process of multiple frames of human posture data by using the range, variance or standard deviation of the target human height and the range, variance or standard deviation of the foot position in at least one axis direction. This automates, standardizes and makes the stability verification process reproducible, and improves the flexibility of the application.
[0070] In some embodiments, determining height stability information may include: when the calibration process belongs to a first type of calibration scenario, using the range of the target human height corresponding to multiple frames of human posture data as the height stability information; wherein, the first type of calibration scenario requires the response time of the calibration process to be less than a preset response index; when the calibration process belongs to a second type of calibration scenario, using the variance or standard deviation of the target human height corresponding to multiple frames of human posture data as the height stability information; wherein, the second type of calibration scenario requires the accuracy error of the calibration result to be less than a preset accuracy index.
[0071] Specifically, different measurement methods can be selected for different calibration scenarios to obtain stable height information.
[0072] When the calibration process requires a response time shorter than a preset response index (e.g., less than 1 second), this calibration process belongs to the first type of calibration scenario. In this case, the range is preferred as a measure of dispersion, and the range of the target human height corresponding to multiple frames of human posture data is used as height stability information. This method is suitable for scenarios where priority is given to ensuring response time and the calibration process needs to be completed in a very short time, such as rapid personnel switching, real-time interactive demonstrations (the target human needs to quickly stand in the calibration area and start controlling the robot), or rapid calibration in dynamic tasks (patrol, carrying, and other non-precision tasks). This method only needs to traverse multiple frames of human posture data once to find the maximum and minimum values to calculate the range, which is fast and can meet the real-time requirements of rapid calibration.
[0073] When the calibration process requires a precision error of less than a preset precision index (e.g., the precision error must be less than 0.2 mm), the calibration process belongs to the second type of calibration scenario. In this case, variance or standard deviation is preferred as a measure of dispersion, and the variance or standard deviation of the target human height corresponding to multiple frames of human posture data is used as height stability information. This method is suitable for scenarios where calibration accuracy is the priority, such as high-precision medical teleoperation or delicate operations in high-risk environments.
[0074] This method takes into account the deviation of the target human height in each frame of human posture data, and can more comprehensively and sensitively reflect the overall fluctuation of the target human height corresponding to multiple frames of human posture data. It is very sensitive to small, continuous body sway (such as breathing) and can capture the small fluctuations that the range measurement method may miss, thus ensuring extremely high calibration accuracy.
[0075] The human posture data processing method provided in this application classifies the calibration process into a first type of calibration scenario and a second type of calibration scenario. It can automatically determine the appropriate calculation method based on quantitative indicators (preset response indicators and preset accuracy indicators) to calculate stable height information, thereby achieving a dynamic balance between response time and calibration accuracy. It also improves the applicability and flexibility of the calibration method, enabling it to be seamlessly applied to various teleoperation tasks.
[0076] In some embodiments, the calibration stability conditions may include at least the following conditions: the height stability information is less than a first preset value, and the foot position stability information is less than a second preset value, wherein the first preset value is determined based on the fluctuation tolerance range of the target human height, and the second preset value is determined based on the fluctuation tolerance range of the target human foot displacement.
[0077] Specifically, the calibration stability condition can consist of multiple sub-conditions. When multiple sub-conditions are satisfied simultaneously, the calibration stability condition can be determined to be satisfied.
[0078] One of the sub-conditions is that the height stability information must be less than a first preset value, which can be determined based on the tolerance range of the target human height fluctuation. When the calculated height stability information (the range, variance, or standard deviation of the target human height) is less than the first preset value, it indicates that the vertical fluctuation of the target human body is within an acceptable range, and the body does not exhibit obvious squatting or jumping. When the height stability information is greater than or equal to the first preset value, it indicates that the vertical fluctuation of the target human body exceeds the acceptable range, and the posture stability information is determined not to meet the calibration stability condition. Multiple frames of human posture data need to be acquired again for a second stability check.
[0079] Another sub-condition is that the foot position stability information is less than a second preset value, which can be determined based on the fluctuation tolerance range of the target human's foot displacement. When the calculated foot position stability information (such as the range, variance, or standard deviation of the foot position in at least one axis direction) is less than the second preset value, it indicates that the target human's foot has not undergone significant translation or movement. When the foot position stability information is greater than or equal to the second preset value, it indicates that the horizontal movement of the target human's foot position exceeds the acceptable range, and the posture stability information is determined not to meet the calibration stability condition. Multiple frames of human posture data need to be acquired again for a second stability check.
[0080] The human posture data processing method provided in this application requires that the stability conditions be such that the height stability information is less than a first preset value and the foot position stability information is less than a second preset value. This quantifies the stability judgment into two clear judgment conditions, which improves the accuracy and rationality of the stability judgment of posture stability information. Furthermore, the first and second preset values can be configured according to different application scenarios, which enhances the adaptability of the calibration method.
[0081] In some embodiments, based on the multi-frame human posture data, determining multiple candidate parameter values corresponding to each parameter item in at least one parameter item may include one or more of the following: based on the multi-frame human posture data, obtaining the height difference between the head key points and the foot key points in each frame of human posture data, and using the height differences corresponding to the multi-frame human posture data as multiple height candidate values; based on the multi-frame human posture data, obtaining the rotation data of the feet relative to the ground reference posture in each frame of human posture data, and using the rotation data corresponding to the multi-frame human posture data as multiple foot posture candidate values; based on the multi-frame human posture data, obtaining the coordinate values of the foot key points in the vertical direction in each frame of human posture data, and using the coordinate values of the foot key points in the vertical direction corresponding to the multi-frame human posture data as multiple foot vertical offset candidate values.
[0082] At least one parameter item includes at least one of the height parameter item, foot posture parameter item, and foot vertical offset parameter item, and the corresponding candidate parameter value includes at least one of the height candidate value, foot posture candidate value, and foot vertical offset candidate value.
[0083] In some embodiments, determining multiple height candidate values corresponding to the height parameter item includes: obtaining the height difference between head key points (such as the top of the skull) and foot key points (such as the left toe or right toe or the key point on the sole of the foot) in each frame of human posture data, and using this height difference as a height candidate value, thereby obtaining multiple height candidate values corresponding to the height parameter item.
[0084] For example, assuming 60 frames of human pose data are acquired, and assuming the pose stability information of the target human body meets the calibration stability conditions, the height difference between the head keypoint and the foot keypoint in the human pose data is acquired frame by frame. For the i-th frame of human pose data (i is a positive integer), the coordinates of the head keypoint (such as the vertex of the skull) in the vertical direction (Z-axis direction) are obtained as HeadZ(i), and the coordinates of the left foot keypoint (such as the left toe) in the vertical direction as LeftToeZ(i) and the right foot keypoint (such as the right toe) in the vertical direction as RightToeZ(i) are obtained. The average value of the coordinates of the left and right foot keypoints in the vertical direction is calculated as (LeftToeZ(i) + RightToeZ(i)) / 2. Then, the height difference between the head keypoint and the foot keypoint (such as the left and right foot keypoints) is calculated using the formula HeightCandidate(i) = HeadZ(i) - (LeftToeZ(i) + RightToeZ(i)) / 2. After processing 60 frames of human pose data, a sequence containing 60 candidate height values is obtained.
[0085] In some embodiments, determining multiple foot posture candidate values corresponding to the foot posture parameter includes: obtaining the rotation data of the foot relative to the ground reference posture in each frame of human posture data, and using the rotation data as a foot posture candidate value. After each frame of human posture data is processed, a foot posture candidate value can be obtained.
[0086] Here, the ground reference attitude refers to a virtual, standardized reference attitude constructed during foot attitude calibration. In some embodiments, the ground reference attitude satisfies the following conditions: the soles of the feet are parallel to the real ground, and the orientation of the feet is consistent with the foot yaw direction of the current frame.
[0087] Rotation data is used to characterize the rotation orientation of the target human foot in space. The rotation data can be Euler angles or an equivalent rotation matrix, where Euler angles can include roll, pitch and yaw components.
[0088] When the preset calibration posture is standing on one foot (the target human body has only one foot on the ground), or when the calibration accuracy requirement is low and only coarse calibration is required, or when only the posture of a single foot is concerned in a specific task (such as operating a specific foot pedal), the rotation data of a single foot (left or right foot) relative to the ground reference posture can be used to obtain the foot posture candidate value.
[0089] For example, when only the left foot needs to be calibrated, assuming 60 frames of human pose data are acquired, and assuming the target human's pose stability information meets the calibration stability conditions, the rotation data of the left foot relative to the ground reference pose is acquired frame by frame in the human pose data. For the i-th frame of human pose data (i is a positive integer), the rotation quaternion WorldQuat_L(i) of the left foot is obtained, and a quaternion GroundRefQuat_L(i) is constructed to represent the ground reference pose of the left foot. The rotation amount of the target human's left foot relative to the ground reference pose can be represented by the following quaternion: LocalRot_L(i) = GroundRefQuat_L(i) -1 ×WorldQuat_L(i). The calculated LocalRot_L(i) is decomposed into Euler angles around three axes, i.e., three attitude components: yaw_L(i), pitch_L(i), and roll_L(i). The rotation data [Roll_L(i), Pitch_L(i), Yaw_L(i)] are used as candidate values for the left foot attitude obtained based on the i-th frame of human posture data. After processing 60 frames of human posture data, 60 candidate values for the left foot attitude corresponding to the foot attitude parameters are obtained.
[0090] When only the right foot needs to be calibrated, the candidate values of the right foot posture are obtained and used as the final candidate values of the foot posture. This process is the same as the process described above of obtaining the candidate values of the left foot posture and using the candidate values of the left foot posture as the final candidate values of the foot posture.
[0091] When it is necessary to calibrate both the left and right feet, such as when the preset calibration posture is standing with both feet, when high-precision calibration is required, or when the posture of the left and right feet needs to be considered simultaneously in a specific task (such as walking or running), it is necessary to use the rotation data of the left foot relative to the ground reference posture to obtain the candidate value of the left foot posture, and use the rotation data of the right foot relative to the ground reference posture to obtain the candidate value of the right foot posture.
[0092] For example, when calibrating both the left and right feet, assuming 60 frames of human posture data have been acquired, and assuming the target human's posture stability information meets the calibration stability conditions, the rotation data of the left foot relative to the ground reference posture and the rotation data of the right foot relative to the ground reference posture are acquired frame by frame. The acquisition process is as follows: For the i-th frame of human posture data (i is a positive integer), the rotation quaternion WorldQuat_L(i) of the left foot is obtained, and a quaternion GroundRefQuat_L(i) is constructed to represent the ground reference posture of the left foot. Then, the rotation amount of the left foot relative to the ground reference posture can be represented by the following quaternion: LocalRot_L(i) = GroundRefQuat_L(i).-1 ×WorldQuat_L(i); Simultaneously, obtain the rotation quaternion WorldQuat_R(i) of the right foot in the i-th frame of human pose data, and construct a quaternion GroundRefQuat_R(i) to represent the ground reference pose of the right foot. Then, the rotation of the right foot relative to the ground reference pose can be represented by the following quaternion: LocalRot_R(i) = GroundRefQuat_R(i). -1 ×WorldQuat_R(i). Then, the rotation of the left foot relative to the ground reference attitude, LocalRot_L(i), is decomposed into Euler angles about three axes: the yaw component (Yaw_L(i), the pitch component (Pitch_L(i), and the roll component (Roll_L(i)) of the left foot; and the rotation of the right foot relative to the ground reference attitude, LocalRot_R(i), is also decomposed into Euler angles about three axes: the yaw component (Yaw_R(i), the pitch component (Pitch_R(i), and the roll component (Roll_R(i))) of the right foot. After processing all 60 frames of human pose data, 60 candidate values for the left foot pose and 60 candidate values for the right foot pose are obtained. These candidate values for the left and right feet together constitute the final 120 candidate values for foot pose. The left and right feet are each given their own foot posture candidate values: the right foot posture calibration value is determined based on the right foot posture candidate value to map the right foot posture, and the left foot posture calibration value is determined based on the left foot posture candidate value to map the left foot posture.
[0093] Determine multiple candidate values for the vertical offset of the foot, including: obtaining the coordinates of the foot key points in the vertical direction in each frame of human posture data, and using the coordinates of the foot key points in the vertical direction corresponding to the human posture data in multiple frames as candidate values for the vertical offset of the foot.
[0094] When the preset calibration posture is standing on one leg (the target human body has only one leg on the ground), or when the calibration accuracy requirement is low and only coarse calibration is needed, or when only the posture of one leg is concerned in a specific task (such as controlling a specific foot pedal), it is only necessary to obtain the coordinate values of the key points of the foot in the vertical direction as candidate values for the vertical offset of the foot.
[0095] For example, when only the left foot needs to be calibrated, assuming 60 frames of human posture data are obtained, and the posture stability information of the target human body meets the calibration stability conditions, the position coordinates of the left foot key points in the vertical direction are obtained frame by frame in the human posture data. For the i-th frame of human posture data (i is a positive integer), the coordinate value LeftToeZ(i) of the left foot key point (such as the left toe) in the vertical direction (Z-axis direction) is obtained. For the ideal ground plane (the 0 plane in the vertical direction, i.e., Z=0), the coordinate value of the left foot key point in the vertical direction is the vertical offset of the left foot key point, so the coordinate value LeftToeZ(i) is directly used as the candidate value of the left foot vertical offset. After processing all 60 frames of human posture data, multiple candidate values of the left foot vertical offset are obtained as [LeftToeZ(1), LeftToeZ(2), ..., LeftToeZ(60)], and multiple candidate values of the left foot vertical offset are multiple candidate values of the foot vertical offset.
[0096] When only the right foot needs to be calibrated, the coordinates of the right foot key points in the vertical direction are obtained and used as the final candidate values for the vertical offset of the foot. This process is the same as the process described above, which involves obtaining the coordinates of the left foot key points in the vertical direction and using them as the final candidate values for the vertical offset of the foot.
[0097] When it is necessary to calibrate both the left and right feet, such as when the preset calibration posture is standing with both feet, when high-precision calibration is required, or when the posture of the left and right feet needs to be considered simultaneously in a specific task (such as walking or running), it is necessary to obtain the coordinate values of the key points of the left foot in the vertical direction to obtain the candidate value of the left foot's vertical offset, and obtain the coordinate values of the key points of the right foot in the vertical direction to obtain the candidate value of the right foot's vertical offset.
[0098] For example, when calibrating both the left and right feet, assuming 60 frames of human posture data are acquired, and assuming the target human's posture stability information meets the calibration stability conditions, the vertical coordinates of the key points of the left and right feet in the human posture data are acquired frame by frame. For the i-th frame of human posture data (i is a positive integer), the coordinates of the left foot key point (e.g., the left toe) in the vertical direction (Z-axis direction) LeftToeZ(i) and the coordinates of the right foot key point (e.g., the right toe) in the vertical direction RightToeZ(i) are acquired. For the ideal ground plane (the vertical 0 plane, i.e., Z=0), the coordinates of the foot key points in the vertical direction are the vertical offsets of the foot key points. Therefore, the coordinates are directly used as candidate values for the vertical offset of the feet, i.e., the candidate value for the vertical offset of the left foot is LeftToeZ(i), and the candidate value for the vertical offset of the right foot is RightToeZ(i). After processing 60 frames of human pose data, 60 candidate values for left foot vertical offset are obtained, specifically [LeftToeZ(1), LeftToeZ(2), ..., LeftToeZ(60)], and 60 candidate values for right foot vertical offset are obtained, specifically [RightToeZ(1), RightToeZ(2), ..., RightToeZ(60)]. The left and right feet are each assigned their own vertical offset calibration values: the right foot vertical offset calibration value is determined based on the right foot vertical offset candidate value to compensate for the right foot height; the left foot vertical offset calibration value is determined based on the left foot vertical offset candidate value to compensate for the left foot height; or, the average of the right and left foot vertical offset calibration values is calculated, and this average value is used to compensate for the height of both the left and right feet.
[0099] The human posture data processing method provided in this application embodiment can cover at least one aspect of linear dimensions (such as height parameters), angular postures (such as foot posture parameters), and positional offsets (such as vertical foot offset parameters) in terms of parameters. This method can more comprehensively and faithfully reflect the body characteristics of the target human body, thereby improving the accuracy of motion redirection.
[0100] In some embodiments, obtaining rotation data of the foot relative to a ground reference posture in each frame of human posture data based on the multi-frame human posture data may include: obtaining the yaw component corresponding to the foot in each frame of human posture data based on the multi-frame human posture data, and constructing a ground reference posture that makes the sole of the foot parallel to the ground based on the yaw component, wherein the yaw component is the rotation angle of the foot of the target human body in the vertical direction; and determining the Euler angles of the foot of the target human body relative to the ground reference posture in different axial directions based on the multi-frame human posture data to obtain the rotation data of the foot relative to the ground reference posture.
[0101] Specifically, in the process of obtaining candidate values for foot pose, the yaw component corresponding to each frame of human pose data is first obtained, and a ground reference pose that makes the sole of the foot parallel to the ground is constructed based on the yaw component. Here, the yaw component is the angle of rotation of the target human's foot around the vertical axis in the horizontal plane, which describes the horizontal rotation or left and right swing of the toes relative to the direction of movement (i.e., the front facing the robot).
[0102] For example, for each frame of human pose data, obtain the yaw component Yaw_L corresponding to the left foot (this yaw component is the angle of rotation of the left foot around the vertical axis in the coordinate system where the sensor is located), set an Euler angle Euler_ground, and make the yaw angle in the Euler angle equal to the yaw component Yaw_L, pitch angle and roll angle corresponding to the left foot are all zero, that is, Euler_ground(Yaw_L,0,0), and convert it into a quaternion GroundRefQuat_L(i), which is the ground reference attitude of the left foot.
[0103] The process of constructing the ground reference attitude of the right foot based on the yaw component corresponding to the right foot is the same as the process of constructing the ground reference attitude of the left foot based on the yaw component corresponding to the left foot described above.
[0104] In scenarios where both feet need to be calibrated, such as when there are differences in the posture of the left and right feet of the target human body, it is necessary to construct independent grounding reference postures for both the left and right feet simultaneously. In scenarios where only one foot needs to be calibrated, such as when the calibration accuracy requirement is not high, or when only one foot needs precise foot posture correction (e.g., single-foot pedal operation, single-leg standing posture calibration), it is only necessary to construct a grounding reference posture for that foot.
[0105] After determining the ground reference attitude, the Euler angles of the target human's feet relative to the ground reference attitude in different axial directions are determined based on multi-frame human posture data, thus obtaining the rotation data of the feet relative to the ground reference attitude. The Euler angles corresponding to different axial directions refer to the decomposition of the calculated relative rotation (i.e., the amount of rotation of the feet relative to the ground reference attitude) into three independent one-dimensional angular components in a specific order (such as ZYX): In the ZYX Euler angle order, the rotation about the Z-axis is the yaw component; the rotation about the Y-axis is the pitch component, representing the upward or downward posture of the foot around the ankle; and the rotation about the X-axis is the roll component, representing the left or right tilt of the foot, i.e., pronation or supination.
[0106] For example, when only the left foot needs calibration, assuming 60 frames of human posture data are acquired, and assuming the target human's posture stability information meets the calibration stability conditions, the rotation data of the left foot relative to the ground reference posture is acquired frame by frame in the human posture data. For the i-th frame of human posture data (i is a positive integer), the rotation quaternion WorldQuat_L(i) of the left foot is obtained. The rotation angle around the vertical direction (Z-axis direction) is extracted from WorldQuat_L(i), i.e., the yaw component Yaw_L(i). Based on this yaw component, an Euler angle is constructed with the yaw component Yaw_L(i) and the pitch and roll components being zero. This Euler angle is converted into a quaternion GroundRefQuat_L(i), which can be used to characterize the ground reference posture of the left foot. The rotation amount of the target human's left foot relative to the ground reference posture of the left foot is calculated as LocalRot_L(i) = GroundRefQuat_L(i). -1 ×WorldQuat_L(i). The calculated LocalRot_L(i) is decomposed into Euler angles around the three axes ZYX, including: roll component Roll_L(i), pitch component Pitch_L(i), and yaw component Yaw_L(i). The rotation data [Roll_L(i), Pitch_L(i), Yaw_L(i)] are used as candidate values for the left foot pose based on the human pose data of the i-th frame. After processing 60 frames of human pose data, 60 candidate values for the left foot pose are obtained.
[0107] For example, when calibrating both feet, assuming 60 frames of human posture data are acquired, and assuming the target human's posture stability information meets the calibration stability conditions, the rotation data of the left foot relative to the ground reference posture and the rotation data of the right foot relative to the ground reference posture are acquired frame by frame. For the i-th frame of human posture data (i is a positive integer), the rotation quaternion WorldQuat_L(i) of the left foot and the rotation quaternion WorldQuat_R(i) of the right foot are obtained. Extract the rotation angle of the left foot around the vertical direction (Z-axis direction) from WorldQuat_L(i), i.e., the yaw component Yaw_L(i) of the left foot. Based on this yaw component, construct an Euler angle with a yaw component of Yaw_L(i) and zero pitch and roll components. Convert this Euler angle into a quaternion GroundRefQuat_L(i), which can be used to characterize the ground reference attitude of the left foot. At the same time, extract the rotation angle of the right foot around the vertical direction (Z-axis direction) from WorldQuat_R(i), i.e., the yaw component Yaw_R(i) of the right foot. Based on this yaw component, construct an Euler angle with a yaw component of Yaw_R(i) and zero pitch and roll components. Convert this Euler angle into a quaternion GroundRefQuat_R(i), which can be used to characterize the ground reference attitude of the right foot. Calculate the rotation of the target human's left foot relative to the ground reference posture of the left foot: LocalRot_L(i) = GroundRefQuat_L(i) -1 ×WorldQuat_L(i), and calculate the rotation of the right foot relative to the ground reference attitude of the right foot: LocalRot_R(i) = GroundRefQuat_R(i). -1×WorldQuat_R(i). The calculated LocalRot_L(i) is decomposed into Euler angles around the three axes ZYX, including: roll component Roll_L(i), pitch component Pitch_L(i) and yaw component Yaw_L(i), and the rotation data of the left foot relative to the ground reference attitude obtained based on the human posture data of the i-th frame [Roll_L(i), Pitch_L(i), Yaw_L(i)]. The calculated LocalRot_R(i) is decomposed into Euler angles around the three axes ZYX, including: roll component Roll_R(i), pitch component Pitch_R(i) and yaw component Yaw_R(i), and the rotation data of the right foot relative to the ground reference attitude obtained based on the human posture data of the i-th frame [Roll_R(i), Pitch_R(i), Yaw_R(i)]. After processing 60 frames of human posture data, 60 rotation data points of the left foot relative to the ground reference posture and 60 rotation data points of the right foot relative to the ground reference posture are obtained. These 60 rotation data points of the left foot relative to the ground reference posture and 60 rotation data points of the right foot relative to the ground reference posture together constitute the foot rotation data relative to the ground reference posture.
[0108] The human posture data processing method provided in this application transforms the problem of foot spatial rotation into a one-dimensional angle problem by acquiring yaw components, constructing a ground reference posture, and determining Euler angles, thus simplifying the calculation. By first constructing a standardized ground reference posture, and then calculating and decomposing the local rotation relative to this ground reference posture into Euler angles, the deviation of the actual foot posture from the ground reference posture is obtained. This allows for accurate capture of the foot posture characteristics of the target human body, thereby improving the accuracy of motion redirection.
[0109] In some embodiments, for each parameter item, determining the calibration parameter value corresponding to the parameter item based on the sorting result of the multiple candidate parameter values corresponding to the parameter item may include: arranging the multiple candidate parameter values in order of magnitude for each parameter item; extracting the median from the multiple candidate parameter values arranged in order of magnitude to obtain the calibration parameter value corresponding to the parameter item.
[0110] Specifically, for each parameter item, multiple candidate parameter values can be arranged in ascending or descending order to obtain an ordered sequence. The median is then extracted from the ordered sequence. If the number of candidate parameter values is odd, the median is the candidate parameter value in the middle position; if the number of candidate parameter values is even, the median is the average of the two middle values. The extracted median is used as the calibration parameter value.
[0111] The human posture data processing method provided in this application obtains calibration parameter values from multiple candidate parameter values by sorting and taking the median. These calibration parameter values can accurately reflect the true height, angle posture, and positional offset of the target human body and are not affected by sensor jitter, instantaneous non-stationary movement, etc., thus improving calibration robustness.
[0112] In some embodiments, determining motion mapping parameters between the target human body and the robot based on the human body calibration parameters may include one or more of the following: calculating the ratio of the robot's height value to the height calibration value based on the height calibration value in the human body calibration parameters, and determining a scaling factor based on the ratio, the scaling factor being used to align the size ratio of the target human body and the robot; determining a posture correction parameter based on the foot posture calibration value in the human body calibration parameters, the posture correction parameter being used to correct the orientation of the robot's feet; and determining a vertical position correction amount based on the foot vertical offset calibration value in the human body calibration parameters, the vertical position correction amount being used to correct the vertical relationship between the target human body's feet and the ground.
[0113] Specifically, the height calibration value is determined based on the ranking of multiple candidate height parameter values corresponding to the height parameter item, representing the robust height value of the target human body under stable posture (i.e., the posture stability information meets the calibration stability condition). The robot's height value refers to the reference height value used in the robot's design or motion control.
[0114] The foot posture calibration value is determined based on the ranking of multiple candidate foot posture parameter values corresponding to the foot posture parameter item, and represents the robust foot orientation value of the target human body in a stable posture.
[0115] The vertical offset calibration value of the foot is determined based on the sorting result of multiple candidate vertical offset parameter values corresponding to the vertical offset parameter item of the foot, and represents the robust vertical offset of the foot of the target human body in a stable posture.
[0116] The motion mapping parameters include at least one of the scaling factor, attitude correction parameter, and vertical position correction amount.
[0117] The scaling factor is a scaling factor used to map the linear dimensions of the target human body (such as height) to the robot's dimensions. The scaling factor can be calculated based on the ratio of the robot's height value to its calibrated height value.
[0118] For example, if the robot's height is calibrated to be 1.748 meters, and its equivalent height is 1.61 meters, the ratio of the robot's height to the calibrated height is calculated as: 1.61 / 1.748 = 0.921. This ratio is the scaling factor. In subsequent motion retargeting, when the target human's arm moves 1 meter, this value is multiplied by the scaling factor 0.921 to calculate that the robot's arm should move 0.921 meters, thus aligning the size proportions.
[0119] Attitude correction parameters are a set of values used to correct the robot's foot orientation during motion reversal. These parameters can be directly equivalent to the foot orientation calibration values, or they can be obtained by simple transformations of the foot orientation calibration values. By applying attitude correction parameters, the robot's foot orientation is made consistent with that of the target human body before teleoperation.
[0120] For example, when only the left foot needs to be calibrated, the left foot posture calibration value is obtained. The roll component in the left foot posture calibration value is -5 degrees (foot eversion), the pitch component is 3 degrees (foot forward tilt), and the yaw component is 0 degrees. The left foot posture calibration value is directly used as the posture correction parameter. Before the robot is teleoperated, this posture correction parameter is automatically applied to the robot's left foot, setting the robot's left foot to eversion 5 degrees and forward tilt 3 degrees, thereby replicating the natural foot posture of the target human body under the preset calibration posture.
[0121] For example, when calibrating both the left and right feet, the left and right foot posture calibration values are already obtained. The roll component in the left foot posture calibration value is -5 degrees (foot eversion), the pitch component is 3 degrees (foot forward tilt), and the yaw component is 0 degrees. Similarly, the roll component in the right foot posture calibration value is -5 degrees (foot eversion), the pitch component is -4 degrees (foot forward tilt), and the yaw component is 0 degrees. These left and right foot posture calibration values are used together as posture correction parameters. Before teleoperating the robot, these parameters are automatically applied to the robot's left foot, setting it to 5 degrees eversion and 3 degrees forward tilt, and setting the right foot to 5 degrees eversion and 4 degrees backward tilt, thus replicating the natural foot posture of the target human body in the preset calibration posture.
[0122] The vertical position correction is a value used to compensate for the vertical contact between the robot's feet and the ground during motion repositioning. By applying the vertical position correction, the vertical position of the robot's feet is precisely adjusted, ensuring that the robot's feet are in contact with and in contact with the ground.
[0123] For example, when calibrating both the left and right feet, the obtained vertical offset calibration values for the feet include: 0.003 meters for the left foot and 0.004 meters for the right foot. The vertical position correction is the average of these two values: (0.003 + 0.004) / 2 = 0.0035 meters. This vertical position correction is added to the calculated theoretical positions of the robot's left and right feet to ensure that the robot's left and right feet are in contact with the ground.
[0124] For example, when only the left foot needs to be calibrated, the vertical offset calibration value of the left foot is 0.003 meters. This vertical offset calibration value is added to the theoretical position of the robot's left foot calculated to ensure that the robot's left foot is in contact with the ground.
[0125] The human posture data processing method provided in this application provides a comprehensive, multi-dimensional motion mapping foundation. It can simultaneously solve three key mappings in human-to-robot motion retargeting: size ratio (scaling factor), local posture difference (posture correction parameter), and vertical fit relationship (vertical position correction amount). This ensures that the mapped robot motion posture is accurate and stable, significantly improving the naturalness and stability of teleoperation.
[0126] In some embodiments, the human posture data processing method may further include: multiplying the scaling factor by a preset base translation scaling factor to obtain a motion scaling factor, wherein the motion scaling factor is used to convert the joint displacement of the target human body into the joint displacement of the robot.
[0127] Specifically, the motion mapping parameters may also include a motion scaling factor. The motion scaling factor is obtained by multiplying the scaling factor by a preset base translation scaling factor. This motion scaling factor is a scaling factor applied to the joint translation components, used to convert the joint displacement of the target human body into the joint displacement of the robot.
[0128] During motion retargeting, the position change (i.e., translation component) of each joint of the target human body (such as hand, foot, hip, etc.) in its world coordinate system is calculated in real time. Then, this position change is multiplied by the motion scaling factor to obtain the target position change of the corresponding joint of the robot.
[0129] The preset base translation scaling factor is a manually configurable constant independent of height ratio, used to adjust the range of joint movement in space. By adjusting this base translation scaling factor, the sensitivity of the robot's response can be controlled independently without changing the height calibration results.
[0130] In some embodiments, the value of the base translation scaling factor can be determined by the motion redirection accuracy and response time of the teleoperation task.
[0131] For example, when precise operation is required, the basic translation scaling factor can be lowered (e.g., 0.5), so that the robot's movement range is only half that of the target human body, thereby achieving more precise end effector control; when rapid response is required, the basic translation scaling factor can be increased (e.g., 1.5), so that the robot's movement range is greater than that of the target human body, thereby covering a larger workspace.
[0132] The human posture data processing method provided in this application introduces an independent, configurable base translation scaling coefficient, which, while ensuring the correctness of the basic mapping, provides a flexible adjustment means that can adapt to different operating scenarios.
[0133] In some embodiments, receiving multi-frame human posture data for human parameter calibration of a target human body may include: verifying frame by frame whether the current frame of human posture data contains posture data of preset key joints, and receiving the current frame of human posture data if the current frame of human posture data contains posture data of preset key joints.
[0134] Specifically, preset key joints are specific body joints or markers that need to be continuously tracked. Preset key joints may include at least one of the following: top of head, left and right shoulder joints, left and right elbow joints, left and right wrist joints, center of hip joint, left and right knee joints, left and right ankle joints, and left and right toes.
[0135] For each frame of human pose data sent by the motion capture system, a check is performed to verify the existence of pose data for preset key joints. When markers are occluded (e.g., a hand is behind the back) or sensor signals are lost, the pose data for preset key joints may be missing.
[0136] The human posture data processing method provided in this application requires that each frame of human posture data contains posture data of preset key joints, thereby ensuring that the human posture data used for subsequent stability and calibration calculations is structurally complete and consistent. This effectively suppresses abnormal calculations or calibration failures caused by missing key data, and improves the robustness of the entire calibration method and the accuracy of the final calibration parameters.
[0137] In some embodiments, the method may further include: stopping the calibration operation or receiving the human posture data when the posture stability information does not meet the calibration stability conditions or when a reception timeout event occurs; wherein the reception timeout event includes the duration of receiving the multiple frames of human posture data exceeding a preset duration, or the number of human posture data received within the preset duration being less than a preset number.
[0138] Specifically, after receiving multiple frames of human posture data for calibrating human parameters of the target human body, the system obtains the posture stability information of the target human body based on the multiple frames of human posture data. When the posture stability information does not meet the calibration stability conditions, it indicates that the calibration has failed, the calibration operation is stopped, the multiple frames of human posture data are deleted, the operator is prompted to adjust the posture, and wait for a new calibration instruction to receive human posture data again for a new round of calibration process.
[0139] For example, the preset calibration stability conditions are that the change in height does not exceed a first preset threshold (e.g., 0.05 meters) and the change in foot position does not exceed a second preset threshold (e.g., 0.03 meters). After determining the posture stability information of the target human body, it is compared with the preset thresholds. If the change in height exceeds the first threshold or the change in foot position exceeds the second threshold, then the posture stability information is determined to not meet the calibration stability conditions.
[0140] When a timeout event occurs during the reception of human posture data, the reception of human posture data is stopped, and the multiple frames of human posture data are deleted. The system then waits for a new calibration command to resume the reception of human posture data for a new calibration process. The timeout event includes: the duration of receiving multiple frames of human posture data exceeding a preset duration (e.g., 5 seconds), or the number of human posture data frames received within the preset duration being less than a preset number (e.g., 30 frames).
[0141] Both the preset duration and preset quantity are configurable parameters, allowing for flexible adaptation to different application scenarios. For example, in scenarios with high real-time requirements, a shorter preset duration can be set; in scenarios with high precision requirements, a higher preset quantity can be set.
[0142] The human posture data processing method provided in this application embodiment will not wait indefinitely when the target human body cannot meet the calibration stability conditions or the time for collecting human posture data is too long. Instead, it will actively stop, reducing resource waste and making the entire calibration process have a clear start and end point, thus improving calibration efficiency and availability.
[0143] Figure 2 This is a schematic diagram of the human posture data processing system provided in the embodiments of this application, as shown below. Figure 2 As shown in the figure, this application provides a human posture data processing system, which may include a data receiving interface 201, a calibration module 202 and a motion redirection module 203.
[0144] The data receiving interface 201 can be used to receive multiple frames of human posture data of the target human body and send the multiple frames of human posture data to the calibration module.
[0145] The calibration module 202 can be used to execute the above-described human posture data processing method, which may include: receiving multiple frames of human posture data for calibrating human parameters of a target human body; determining posture stability information of the target human body based on the multiple frames of human posture data; when the posture stability information meets the calibration stability conditions, determining multiple candidate parameter values corresponding to each parameter item in at least one parameter item based on the multiple frames of human posture data, wherein the multiple candidate parameter values corresponding to each parameter item are determined based on different frames of human posture data, and the at least one parameter item includes at least one of a height parameter item, a foot posture parameter item, and a foot vertical offset parameter item; for each parameter item, determining the calibration parameter value corresponding to the parameter item based on the sorting result of the multiple candidate parameter values corresponding to the parameter item, so as to obtain the human body calibration parameters of the target human body; and determining motion mapping parameters between the target human body and the robot based on the human body calibration parameters, wherein the motion mapping parameters are used to perform motion redirection processing on the human body motion data of the target human body to obtain target motion data for controlling the robot's motion.
[0146] The motion redirection module 203 can be used to map the human motion data of the target human body into target motion data for controlling the robot's motion based on the motion mapping parameters sent by the calibration module.
[0147] Specifically, the human posture data processing system provided in this application embodiment can implement all the method steps implemented in the above human posture data processing method embodiment and can achieve the same technical effect. Here, the parts that are the same as those in the method embodiment and the beneficial effects will not be described in detail.
[0148] It should be noted that the division of units / modules in the above embodiments of this application is illustrative and only represents one logical functional division. In actual implementation, other division methods may be used. Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated units described above can be implemented in hardware or as software functional units.
[0149] Figure 3 This is a schematic diagram of the structure of the electronic device provided in the embodiments of this application, such as... Figure 3As shown, the electronic device may include: a processor 301, a communication interface 302, a memory 303, and a communication bus 304, wherein the processor 301, the communication interface 302, and the memory 303 communicate with each other through the communication bus 304. The processor 301 can call logic instructions in the memory 303 to execute a human posture data processing method. This method may include: receiving multiple frames of human posture data for human parameter calibration of a target human body; determining posture stability information of the target human body based on the multiple frames of human posture data; if the posture stability information satisfies calibration stability conditions, determining multiple candidate parameter values corresponding to each parameter item based on the multiple frames of human posture data, wherein the multiple candidate parameter values corresponding to each parameter item are determined based on different frames of human posture data, and the at least one parameter item includes at least one of a height parameter item, a foot posture parameter item, and a foot vertical offset parameter item; for each parameter item, determining a calibration parameter value corresponding to the parameter item based on the sorting result of the multiple candidate parameter values corresponding to the parameter item, to obtain human calibration parameters of the target human body; and determining motion mapping parameters between the target human body and the robot based on the human calibration parameters, wherein the motion mapping parameters are used to perform motion redirection processing on the human motion data of the target human body to obtain target motion data for controlling the robot's motion.
[0150] Specifically, the processor 301 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a complex programmable logic device (CPLD). The processor may also adopt a multi-core architecture.
[0151] When the logical instructions in memory 303 can be implemented as software functional units and sold or used as independent products, they can be stored in a processor-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to related technologies, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0152] In some embodiments, a computer program product is also provided, comprising a computer program that can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer is able to execute the human posture data processing method provided in the above-described method embodiments. The method may include: receiving multiple frames of human posture data for calibrating human parameters of a target human body; determining posture stability information of the target human body based on the multiple frames of human posture data; and, if the posture stability information satisfies the calibration stability condition, determining multiple candidate parameters corresponding to each parameter item in at least one parameter item based on the multiple frames of human posture data. The values are determined based on human pose data from different frames, where each parameter item has multiple candidate parameter values. The at least one parameter item includes at least one of height parameter, foot pose parameter, and foot vertical offset parameter. For each parameter item, a calibration parameter value is determined based on the sorting result of the multiple candidate parameter values corresponding to the parameter item to obtain the human body calibration parameters of the target human body. Based on the human body calibration parameters, motion mapping parameters between the target human body and the robot are determined. The motion mapping parameters are used to perform motion redirection processing on the human body motion data of the target human body to obtain target motion data for controlling the robot's motion.
[0153] Specifically, the computer program product provided in this application embodiment can implement all the method steps implemented in the above method embodiments and can achieve the same technical effect. Here, the parts that are the same as those in the method embodiments and the beneficial effects will not be described in detail.
[0154] In some embodiments, a computer-readable storage medium is also provided, the computer-readable storage medium storing a computer program, the computer program being configured to cause a computer to execute the human posture data processing method provided in the above-described method embodiments, the method comprising: receiving multiple frames of human posture data for calibrating human parameters of a target human body; determining posture stability information of the target human body based on the multiple frames of human posture data; if the posture stability information satisfies calibration stability conditions, determining multiple candidate parameter values corresponding to each of at least one parameter item based on the multiple frames of human posture data, wherein the multiple candidate parameter values corresponding to each parameter item are determined based on different frames of human posture data, the at least one parameter item including at least one of a height parameter item, a foot posture parameter item, and a foot vertical offset parameter item; for each parameter item, determining a calibration parameter value corresponding to the parameter item based on the sorting result of the multiple candidate parameter values corresponding to the parameter item, to obtain human calibration parameters of the target human body; and determining motion mapping parameters between the target human body and a robot based on the human calibration parameters, the motion mapping parameters being used to perform motion redirection processing on the human motion data of the target human body to obtain target motion data for controlling the movement of the robot.
[0155] Specifically, the computer-readable storage medium provided in the embodiments of this application can implement all the method steps implemented in the above method embodiments and can achieve the same technical effect. Here, the parts that are the same as those in the method embodiments and the beneficial effects will not be described in detail.
[0156] It should be noted that the computer-readable storage medium can be any available medium or data storage device that the processor can access, including but not limited to magnetic storage (e.g., floppy disk, hard disk, magnetic tape, magneto-optical disk (MO)), optical storage (e.g., CD, DVD, BD, HVD), and semiconductor storage (e.g., ROM, EPROM, EEPROM, non-volatile memory (NAND FLASH), solid-state drive (SSD)).
[0157] It should also be noted that the terms "first," "second," etc., in the embodiments of this application are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that such terms can be used interchangeably where appropriate so that the embodiments of this application can be implemented in an order other than those illustrated or described herein, and the objects distinguished by "first" and "second" are usually of the same class, and the number of objects is not limited. For example, the first object can be one or more.
[0158] In the embodiments of this application, the term "and / or" describes the relationship between associated 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. The character " / " generally indicates that the preceding and following associated objects have an "or" relationship.
[0159] In the embodiments of this application, the term "multiple" refers to two or more, and other quantifiers are similar.
[0160] In this application's embodiments, "determine B based on A" means that factor A must be considered when determining B. It is not limited to "B can be determined based solely on A," but should also include: "determine B based on A and C," "determine B based on A, C, and E," "determine C based on A, and further determine B based on C," etc. Additionally, it can include using A as a condition for determining B, for example, "when A meets the first condition, determine B using the first method"; another example, "when A meets the second condition, determine B," etc.; another example, "when A meets the third condition, determine B based on the first parameter," etc. Of course, it can also be a condition where A is a factor in determining B, for example, "when A meets the first condition, determine C using the first method, and further determine B based on C," etc.
[0161] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product implemented on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0162] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will 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-executable instructions. These computer-executable instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0163] These processor-executable instructions may also be stored in a processor-readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the processor-readable memory produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0164] These processors can execute instructions that can also be loaded onto a computer or other programmable data processing device, causing a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0165] Obviously, those skilled in the art can make various modifications and variations to the embodiments of this application without departing from the spirit and scope of this application. Therefore, if these modifications and variations to the embodiments of this application fall within the scope of the claims of this application and their equivalents, this application also intends to include these modifications and variations.
Claims
1. A method for processing human posture data, characterized in that, The method includes: Receive multiple frames of human posture data for human body parameter calibration of the target human body; Based on the multi-frame human posture data, determine the posture stability information of the target human body; When the posture stability information meets the calibration stability condition, based on the multi-frame human posture data, multiple candidate parameter values corresponding to each parameter item in at least one parameter item are determined respectively. The multiple candidate parameter values corresponding to each parameter item are determined based on human posture data in different frames. The at least one parameter item includes at least one of the following: height parameter item, foot posture parameter item, and foot vertical offset parameter item. For each parameter item, based on the sorting result of multiple candidate parameter values corresponding to the parameter item, the calibration parameter value corresponding to the parameter item is determined to obtain the human body calibration parameters of the target human body; Based on the human body calibration parameters, motion mapping parameters between the target human body and the robot are determined. These motion mapping parameters are used to perform motion redirection processing on the human body motion data of the target human body to obtain target motion data for controlling the robot's motion.
2. The human posture data processing method according to claim 1, characterized in that, The step of determining the posture stability information of the target human body based on the multi-frame human posture data includes: Based on the multi-frame human posture data, the target human height and the target human foot position corresponding to each frame of human posture data are determined. Height stability information is determined based on the target human height corresponding to multiple frames of human pose data. Based on the foot positions of the target human body corresponding to multiple frames of human posture data, foot position stability information is determined. The height stability information is used to characterize the dispersion of the target human body's height; the foot position stability information is used to characterize the dispersion of the target human body's foot position.
3. The human posture data processing method according to claim 2, characterized in that, The height stability information in the posture stability information includes the range, variance, or standard deviation of the target human height; the foot position stability information in the posture stability information includes the range, variance, or standard deviation of the foot position in at least one axial direction.
4. The human posture data processing method according to claim 3, characterized in that, The determination of stable height information includes: In the case where the calibration process belongs to the first type of calibration scenario, the range of the target human height corresponding to multiple frames of human posture data is used as the height stability information; wherein, the first type of calibration scenario requires the response time of the calibration process to be less than a preset response index. In the case where the calibration process belongs to the second type of calibration scenario, the variance or standard deviation of the target human height corresponding to multiple frames of human posture data is used as the height stability information; wherein, the second type of calibration scenario requires that the accuracy error of the calibration result be less than the preset accuracy index.
5. The human posture data processing method according to claim 2, characterized in that, The calibration stability conditions include at least the following conditions: The height stability information is less than a first preset value, and the foot position stability information is less than a second preset value. The first preset value is determined based on the fluctuation tolerance range of the target human height, and the second preset value is determined based on the fluctuation tolerance range of the target human foot displacement.
6. The human posture data processing method according to claim 1, characterized in that, Based on the multi-frame human pose data, the determination of multiple candidate parameter values for each parameter item in at least one parameter item includes one or more of the following: Based on the multi-frame human posture data, the height difference between the head key points and the foot key points in each frame of human posture data is obtained, and the height difference corresponding to the multi-frame human posture data is used as multiple height candidate values. Based on the multi-frame human posture data, the rotation data of the foot relative to the ground reference posture in each frame of human posture data is obtained, and the rotation data corresponding to the multi-frame human posture data are used as multiple foot posture candidate values. Based on the multi-frame human posture data, the coordinates of the foot key points in the vertical direction in each frame of human posture data are obtained, and the coordinates of the foot key points in the vertical direction corresponding to the multi-frame human posture data are used as multiple candidate values for foot vertical offset.
7. The human posture data processing method according to claim 6, characterized in that, The step of obtaining rotation data of the feet relative to the ground reference posture in each frame of human posture data based on the multi-frame human posture data includes: Based on the multi-frame human posture data, the yaw component corresponding to the foot in each frame of human posture data is obtained, and a ground reference posture that makes the foot parallel to the ground is constructed based on the yaw component. The yaw component is the rotation angle of the foot of the target human body in the vertical direction. Based on the multi-frame human posture data, the Euler angles of the target human's feet relative to the ground reference posture in different axial directions are determined to obtain the rotation data of the feet relative to the ground reference posture.
8. The human posture data processing method according to claim 1, characterized in that, For each parameter item, determining the calibration parameter value corresponding to the parameter item based on the sorting result of multiple candidate parameter values corresponding to the parameter item includes: For each parameter item, the multiple candidate parameter values are arranged in order of magnitude. The median of multiple candidate parameter values arranged in ascending order is extracted to obtain the calibration parameter value corresponding to the parameter item.
9. The human posture data processing method according to claim 1, characterized in that, The determination of motion mapping parameters between the target human body and the robot based on the human body calibration parameters includes one or more of the following: Based on the height calibration value in the human body calibration parameters, the ratio of the robot's height value to the height calibration value is calculated, and a scaling factor is determined based on the ratio. The scaling factor is used to align the size ratio between the target human body and the robot. Based on the foot posture calibration value in the human body calibration parameters, posture correction parameters are determined, and the posture correction parameters are used to correct the foot orientation of the robot. Based on the vertical offset calibration value of the foot in the human body calibration parameters, a vertical position correction amount is determined. The vertical position correction amount is used to correct the vertical relationship between the foot of the target human body and the ground.
10. The human posture data processing method according to claim 9, characterized in that, The method further includes: The scaling factor is multiplied by a preset base translation scaling factor to obtain a motion scaling factor, which is used to convert the joint displacement of the target human body into the joint displacement of the robot.
11. The human posture data processing method according to claim 1, characterized in that, The receiving of multi-frame human posture data for human parameter calibration of the target human body includes: The system verifies frame by frame whether the human posture data of the current frame contains the posture data of preset key joints, and if the human posture data of the current frame contains the posture data of preset key joints, the system receives the human posture data of the current frame.
12. The human posture data processing method according to claim 1, characterized in that, The method further includes: If the attitude stability information does not meet the calibration stability conditions, stop performing the calibration operation; or, if a reception timeout event occurs, stop receiving the human posture data. The receiving timeout event includes the time taken to receive the multiple frames of human posture data exceeding a preset time, or the number of human posture data received within the preset time being less than a preset number.
13. A human posture data processing system, characterized in that, Includes a data receiving interface, a calibration module, and a motion redirection module; The data receiving interface is used to receive multiple frames of human posture data of the target human body and send the multiple frames of human posture data to the calibration module; the calibration module is used to execute the human posture data processing method as described in any one of claims 1 to 12; the motion redirection module is used to map the human motion data of the target human body to target motion data for controlling the robot's motion based on the motion mapping parameters sent by the calibration module.
14. An electronic device comprising a memory, a processor, and a computer program stored in the memory and running on the processor, characterized in that, When the processor executes the computer program, it implements the human posture data processing method as described in any one of claims 1 to 12.
15. A non-transitory computer-readable storage medium, characterized in that, The non-transitory computer-readable storage medium stores a computer program that, when executed by a processor, implements the human posture data processing method as described in any one of claims 1 to 12.
16. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the human posture data processing method as described in any one of claims 1 to 12.