Precise control method for robot joint motors based on motion capture
Patent Information
- Application Number
- CN202611093679.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-22
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2046-07-22
AI Technical Summary
[0003]本发明旨在至少在一定程度上解决现有技术中的技术问题之一,通过基于实时动作捕捉获取实时关节角;基于实时关节角获取第一计算阈值与第二计算阈值;基于第一计算阈值与第二计算阈值获取实时筛选关节角;基于关节静止的动作捕捉获取历史角度波动值;基于历史角度波动值获取波动值函数;基于波动值函数获取关节静止波动阈值;基于实时筛选关节角与关节静止波动阈值进行精准控制,以解决现有的技术中人体静止时存在不自主的微幅晃动与动捕原始数据存在干扰噪声,导致机器人关节运动不平滑的问题
[0014]本发明的有益效果:本发明通过基于实时动作捕捉获取实时关节角;基于实时关节角获取第一计算阈值与第二计算阈值;基于第一计算阈值与第二计算阈值获取实时筛选关节角;基于关节静止的动作捕捉获取历史角度波动值;基于历史角度波动值获取波动值函数;基于波动值函数获取关节静止波动阈值;基于实时筛选关节角与关节静止波动阈值进行精准控制,优势在于,排除动捕原始数据存在干扰噪声,同时排除人体静止时存在不自主的微幅晃动,提升机器人关节运动的平滑度以及精准控制;
Smart Images

Figure CN122584374B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of joint motor control technology, specifically a method for precise control of robot joint motors based on motion capture. Background Technology
[0002] The development of motion capture technology has provided a new technical path for the precise human-like control of robots. By collecting motion information such as human joint posture and motion trajectory in real time, it is possible to realize the real-time conversion of human action intentions into robot motion commands, effectively breaking through the limitations of traditional pre-programmed control. At present, the mainstream motion capture solutions are divided into two categories: visual capture and inertial capture. Among them, inertial motion capture has become the mainstream acquisition method for real-time follow-up control of robots due to its advantages of no occlusion interference, flexible deployment, strong real-time performance, and ability to output high-precision Euler angle posture data. However, the existing robot joint control system based on motion capture still has many technical defects, which seriously restricts the precise control performance of joint motors. In existing precise motor control, the raw motion capture data contains significant noise interference and data jitter. Factors such as random sensor errors, slight human body movements, and electromagnetic interference can cause high-frequency jitter and pulse jumps in the collected Euler angle posture data of human joints. This directly causes sudden changes in robot joint motor commands, leading to problems such as frequent motor fine-tuning, running jitter, and mechanical shock. This significantly reduces motion stability and control accuracy. In existing technologies, when the human body is stationary, there are involuntary slight movements and interference noise in the raw motion capture data, resulting in uneven robot joint movements. Summary of the Invention
[0003] This invention aims to at least partially solve one of the technical problems in the prior art by acquiring real-time joint angles based on real-time motion capture; acquiring a first calculation threshold and a second calculation threshold based on the real-time joint angles; acquiring real-time filtered joint angles based on the first calculation threshold and the second calculation threshold; acquiring historical angle fluctuation values based on motion capture of stationary joints; acquiring a fluctuation value function based on the historical angle fluctuation values; acquiring a joint stationary fluctuation threshold based on the fluctuation value function; and performing precise control based on the real-time filtered joint angles and the joint stationary fluctuation threshold. This addresses the problem in the prior art where involuntary micro-swaying occurs when the human body is stationary and interference noise exists in the original motion capture data, leading to unsmooth robot joint movements.
[0004] To achieve the above objectives, this application provides a method for precise control of robot joint motors based on motion capture, comprising the following steps: Real-time joint angles are obtained based on real-time motion capture. The first and second calculation thresholds are obtained based on real-time joint angles; Real-time joint angles are obtained based on the first and second calculated thresholds; Historical angle fluctuation values are obtained based on motion capture of static joints; Function for obtaining volatility values based on historical volatility values; The joint static fluctuation threshold is obtained based on the fluctuation value function; Precise control is achieved by real-time screening of joint angles and joint static fluctuation thresholds.
[0005] Furthermore, obtaining real-time joint angles based on real-time motion capture includes the following sub-steps: Obtain the Euler angles of each joint in the motion capture and label them as real-time joint Euler angles; Obtain any one of the Euler angles of any joint and mark it as the real-time joint angle.
[0006] Furthermore, obtaining the first and second calculation thresholds based on real-time joint angles includes the following sub-steps: Obtain the real-time joint angles of the first consecutive number of frames, sort the real-time joint angles in ascending order, and assign a sequence number to each real-time joint angle, marking it as the first frame sequence number; where the first frame sequence number is an integer starting from 1; Set a ratio value, labeled as the first set ratio; where the first set ratio is a constant between 0 and 0.5; The product of the first quantity and the first set ratio is marked as the first set sequence number; If the first set sequence number is an integer, obtain the real-time joint angle corresponding to the first frame sequence number and mark it as the first set value; if the first set sequence number is not an integer, obtain the two adjacent integers of the first set sequence number and mark them as the first integer number; obtain the average value of the real-time joint angles corresponding to the two first frame sequence numbers and mark them as the first set value. Subtracting the first set ratio from 1 yields a value, which is then marked as the second set ratio. The product of the first quantity and the second set ratio is marked as the second set serial number; If the second set sequence number is an integer, obtain the real-time joint angle corresponding to the first frame sequence number with the second set sequence number, and mark it as the second set value; if the second set sequence number is not an integer, obtain the two adjacent integers of the second set sequence number, and mark them as the second integer number; obtain the average value of the real-time joint angles corresponding to the two first frame sequence numbers with the second integer number, and mark it as the second set value.
[0007] Furthermore, obtaining the first and second calculation thresholds based on real-time joint angles also includes the following sub-steps: The first calculation threshold is obtained as: A1=D1-[b1 / (b2-b1)]×(D2-D1); where A1 is the first calculation threshold, D1 is the first set value, D2 is the second set value, and b1 is the first set ratio, b2 is the second set ratio; The second calculation threshold is obtained as: A2=D2+[(1-b2) / (b2-b1)]×(D2-D1); where A2 is the second calculation threshold.
[0008] Furthermore, obtaining the real-time screening joint angle based on the first calculated threshold and the second calculated threshold includes the following sub-steps: Real-time joint angles of consecutive frames that are less than the first calculation threshold or greater than the second calculation threshold are marked as abnormal joint angles. Delete abnormal joint angles and mark the remaining real-time joint angles as real-time filter joint angles.
[0009] Furthermore, obtaining historical angle fluctuation values based on joint stillness motion capture includes the following sub-steps: Obtain any Euler angle of the joint that is motion-captured and keeps the motion still, and mark it as the historical joint angle; Obtain the historical joint angle fluctuation values when stationary, and mark them as historical angle fluctuation values.
[0010] Furthermore, the function for obtaining volatility values based on historical volatility values includes the following sub-steps: For any Euler angle of the same type of joint, the second number of historical angle fluctuation values are marked as historical target fluctuation values. A Cartesian coordinate system is established with historical target fluctuation values as the horizontal axis data and the number of historical target fluctuation values as the vertical axis data, and it is marked as the fluctuation value coordinate system. Obtain the coordinates of the historical target fluctuation value and the number of historical target fluctuation values as the x-axis and y-axis points, respectively, and mark them as fluctuation value coordinate points; Plot all the fluctuation value coordinates on the fluctuation value coordinate system to obtain a scatter plot, and mark it as a fluctuation value scatter plot; The function is obtained by fitting all the coordinate points of the fluctuation value in the scatter plot of fluctuation value, and it is marked as the fluctuation value function.
[0011] Furthermore, obtaining the joint static fluctuation threshold based on the fluctuation value function includes the following sub-steps: The region defined by the vertical lower boundary of the fluctuation value function and the horizontal axis of the fluctuation value coordinate system is marked as the first function region. Obtain the area of the first function region and mark it as the area of the first function. In the fluctuation value coordinate system, create a line segment on the horizontal axis that can move left and right and has a length equal to the length of the first line segment. Mark it as "Constructing the moving line segment". The real-time area of the first function region vertically above the constructed moving line segment is marked as the area of the first line segment. Obtain the distribution length of historical target fluctuation values on the horizontal axis of the fluctuation value coordinate system, and mark it as the length of the second line segment; If the historical target fluctuation value is uniformly distributed within the range of historical target fluctuation value, the area of the first line segment is obtained and marked as the first average area; the formula for calculating the first average area is: C1=C2×(E1÷E2); where C1 is the first average area, C2 is the area of the first function, E1 is the length of the first line segment, and E2 is the length of the second line segment; The first abnormal threshold is obtained as: C3 = f × S3; where C3 is the first abnormal threshold and f is a set ratio value.
[0012] Furthermore, obtaining the joint static fluctuation threshold based on the fluctuation value function also includes the following sub-steps: The construction of the moving line segment starts from the rightmost side of the fluctuation value coordinate system and moves to the left. When the area of the first line segment is greater than or equal to the first abnormal threshold, the construction of the moving line segment is stopped. The historical target fluctuation value corresponding to the largest horizontal coordinate of the constructed moving line segment at this time is obtained and marked as the joint static fluctuation threshold. Obtain the joint static fluctuation threshold corresponding to all real-time filtered joint angles.
[0013] Furthermore, precise control based on real-time screening of joint angles and joint static fluctuation thresholds includes the following sub-steps: If the fluctuation value of the joint angle in real time is less than or equal to the corresponding joint static fluctuation threshold, it is considered that the joint is unconsciously fluctuating slightly during motion capture, and no motor control is performed on the robot's joints; if the fluctuation value of the joint angle in real time is greater than the corresponding joint static fluctuation threshold, it is considered that the joint is actively moving during motion capture, and the robot's joints are synchronously controlled through the joint motors.
[0014] The beneficial effects of this invention are as follows: This invention obtains real-time joint angles based on real-time motion capture; obtains a first calculation threshold and a second calculation threshold based on the real-time joint angles; obtains real-time filtered joint angles based on the first calculation threshold and the second calculation threshold; obtains historical angle fluctuation values based on motion capture of stationary joints; obtains a fluctuation value function based on the historical angle fluctuation values; obtains a joint stationary fluctuation threshold based on the fluctuation value function; and performs precise control based on the real-time filtered joint angles and the joint stationary fluctuation threshold. The advantage is that it eliminates interference noise in the original motion capture data and also eliminates involuntary micro-shaking when the human body is stationary, thereby improving the smoothness and precision control of robot joint movements. This invention obtains the joint static fluctuation threshold based on the fluctuation value function. Its advantage lies in obtaining the jitter threshold corresponding to the involuntary micro-shaking when the human body is stationary, thereby improving the smoothness and precise control of robot joint movement. Attached Figure Description
[0015] Figure 1 This is a flowchart illustrating the steps of the method of the present invention; Figure 2 This is a schematic diagram of the fluctuation value function of the present invention; Figure 3 This is a schematic diagram of the joint static fluctuation threshold of the present invention. Detailed Implementation
[0016] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0017] Example 1, please refer to Figure 1 As shown, this application provides a method for precise control of robot joint motors based on motion capture, including the following steps: Step S1: Obtain real-time joint angles based on real-time motion capture; Step S1 includes the following sub-steps: Step S101: Obtain the Euler angles of each joint in the motion capture and label them as real-time joint Euler angles; Euler angles include pitch angle, roll angle, and yaw angle; Step S102: Obtain any one of the Euler angles of any joint and mark it as the real-time joint angle; In practical applications, for example, a real-time joint angle is the pitch angle in the Euler angle of the elbow joint.
[0018] Step S2 involves obtaining a first calculation threshold and a second calculation threshold based on the real-time joint angle; Step S2 includes the following sub-steps: Step S201: Obtain the real-time joint angles of a first number of consecutive frames, sort the real-time joint angles from smallest to largest, and set each real-time joint angle to correspond to a sequence number, marked as the first frame sequence number; where the first frame sequence number is an integer starting from 1; to facilitate the acquisition of short-term interference data fluctuations, the first number is 20; Step S202: Set a ratio value, marked as the first set ratio; wherein the first set ratio is a constant from 0 to 0.5; the first set ratio is to obtain a small to medium value of the real-time joint angle; therefore, in the range of 0 to 0.5, specifically, if the value between 0 and 0.5 is selected, then the first set ratio is 0.25; Step S203: Mark the product of the first quantity and the first set ratio as the first set sequence number; Step S204: If the first set sequence number is an integer, obtain the real-time joint angle corresponding to the first frame sequence number and mark it as the first set value; if the first set sequence number is not an integer, obtain two adjacent integers of the first set sequence number and mark them as the first integer number; obtain the average of the two real-time joint angles corresponding to the first frame sequence number and mark them as the first set value; the first set value is a small to medium value of the obtained real-time joint angle. Step S205: Subtract the first set ratio from 1 to obtain the value, which is marked as the second set ratio; the second set ratio is to obtain a medium to large real-time joint angle; therefore, the second set ratio is between 0.5 and 1, and the first set ratio is 1-0.25=7.25.
[0019] Step S206: Mark the product of the first quantity and the second set ratio as the second set sequence number; Step S207: If the second set sequence number is an integer, obtain the real-time joint angle corresponding to the first frame sequence number with the second set sequence number, and mark it as the second set value; if the second set sequence number is not an integer, obtain two adjacent integers of the second set sequence number and mark them as the second integer number; obtain the average of the two real-time joint angles corresponding to the first frame sequence numbers with the second integer number, and mark them as the second set value; the second set value is a real-time joint angle of a medium-to-large value obtained; Step S208, obtain the first calculation threshold as: A1=D1-[b1 / (b2-b1)]×(D2-D1); where A1 is the first calculation threshold, D1 is the first set value, D2 is the second set value, where b1 is the first set ratio, b2 is the second set ratio; [b1 / (b2-b1)]×(D2-D1) represents the range length from D1 to the minimum value of the real-time joint angle when the data is evenly distributed; therefore, the first calculation threshold represents the calculated minimum value; Step S209, obtain the second calculation threshold as: A2=D2+[(1-b2) / (b2-b1)]×(D2-D1); where A2 is the second calculation threshold; [(1-b2) / (b2-b1)]×(D2-D1) represents the range length from D2 to the maximum value of the real-time joint angle when the data is evenly distributed; therefore, the first calculation threshold represents the calculated maximum value; In practical applications, for example, a real-time joint angle is the pitch angle in the Euler angles of the elbow joint. The real-time joint angles are obtained and sorted from smallest to largest as follows: 12.20°, 12.21°, ..., 12.39°, 20.20°; the first set sequence number is: 20 × 0.25 = 5; the second set sequence number is: 20 × 0.75 = 15; 5 is an integer. The real-time joint angle corresponding to the first frame sequence number 5 is 12.25°, so the first set value is 12.25°. Similarly, if the real-time joint angle corresponding to the sequence number 15 of the first frame is 12.35°, then the second set value is 12.35°; the first calculation threshold is: A1=12.25°-[0.25 / (0.75-0.25)]×(12.35-12.25)=12.20°; the second calculation threshold is: A2=12.35+[(1-0.75) / (0.75-0.25)]×(12.35-12.25)=12.40°.
[0020] Step S3: Obtain the real-time screening joint angle based on the first calculated threshold and the second calculated threshold; Step S3 includes the following sub-steps: Step S301: Mark the real-time joint angles of consecutive frames that are less than the first calculation threshold or greater than the second calculation threshold as abnormal joint angles; when the joint moves, the data changes smoothly without sudden increase or decrease, so noise points can be identified. Step S302: Delete abnormal joint angles and mark the remaining real-time joint angles as real-time filter joint angles; In practical applications, among the above set of real-time joint angles, the real-time joint angles of consecutive frames that are less than 12.25° or greater than 12.40° are marked as abnormal joint angles; that is, 20.20° is an abnormal joint angle.
[0021] Step S4: Obtain historical angle fluctuation values based on motion capture of the joint at rest; Step S4 includes the following sub-steps: Step S401: Obtain any Euler angle of the joint that is motion-captured to keep the motion still, and mark it as the historical joint angle; this is convenient for obtaining the involuntary fluctuation of the joints when the person is still. Step S402: Obtain the historical joint angle fluctuation value when at rest, and mark it as the historical angle fluctuation value; the historical angle fluctuation value is the change value, which can be represented by only positive numbers here, without using positive and negative signs to indicate whether it has increased or decreased.
[0022] Step S5: Obtain the volatility function based on historical volatility values; Step S5 includes the following sub-steps: Step S501: Under any Euler angle of the same type of joint, the second number of historical angle fluctuation values are marked as historical target fluctuation values. Step S502: Establish a Cartesian coordinate system with historical target fluctuation values as the horizontal axis data and the number of historical target fluctuation values as the vertical axis data, and mark it as the fluctuation value coordinate system; Step S503: Obtain the coordinates of the historical target fluctuation value and the number of historical target fluctuation values as the x-axis and y-axis, respectively, and mark them as fluctuation value coordinate points; Step S504: Plot all the fluctuation value coordinate points on the fluctuation value coordinate system to obtain a scatter plot, and mark it as a fluctuation value scatter plot; Step S505: Fit all the coordinate points of the fluctuation values in the scatter plot to obtain a function, and mark it as the fluctuation value function; For practical applications, please refer to Figure 2 As shown, for example, the real-time joint angle is the pitch angle in the Euler angles of the elbow joint, which is used as the historical target fluctuation value to obtain the fluctuation value function.
[0023] Step S6: Obtain the joint static fluctuation threshold based on the fluctuation value function; Step S6 includes the following sub-steps: Step S601: Obtain the region enclosed by the vertical lower part of the fluctuation value function to the horizontal axis of the fluctuation value coordinate system, and mark it as the first function region; Step S602: Obtain the area of the first function region and mark it as the area of the first function; the size of the area of the first function can represent the number of historical target fluctuation values; Step S603: In the fluctuation value coordinate system, establish a line segment on the horizontal axis that can move left and right and has a length equal to the length of the first line segment, and mark it as the construction of the moving line segment; in order to obtain the area with a small number of historical target fluctuation values, the length of the first line segment should not be too large, for example, the length of the first line segment is 0.5cm; where the length corresponding to a historical target fluctuation value of 0.1° is 1cm; Step S604: Mark the real-time area of the first function region vertically above the constructed moving line segment as the first line segment area; the first line segment area represents the number of historical target fluctuation values searched by the constructed moving line segment; Step S605: Obtain the distribution length of historical target fluctuation values on the horizontal axis of the fluctuation value coordinate system, and mark it as the second line segment length; please refer to... Figure 2 As shown, the length of the second line segment is 11cm; Step S606: If the historical target fluctuation values are evenly distributed within the range of historical target fluctuation values, obtain the area of the first line segment and mark it as the first average area; wherein the calculation formula of the first average area is: C1=C2×(E1÷E2); where C1 is the first average area, C2 is the area of the first function, E1 is the length of the first line segment, and E2 is the length of the second line segment; C1 represents the area of the first line segment obtained when the number of historical target fluctuation values is evenly distributed; Step S607, obtain the first abnormal threshold as: C3 = f × S3; where C3 is the first abnormal threshold, and f is a set ratio value; in order to obtain the area with a small number of historical target fluctuation values; the area of the first line segment represents the number of historical target fluctuation values found when the number of historical target fluctuation values is evenly distributed, so f is set to be small, for example, f is 0.2; In practical applications, the area of the first function is obtained as 38 cm². 2 The first average area is: C1 = 38 × (0.5 ÷ 11) = 1.73 cm² 2 The calculation result is rounded to two decimal places; the first anomaly threshold is obtained as: C3 = 0.2 × 1.73 = 0.35 cm. 2 .
[0024] Step S608: Move the constructed moving segment from the rightmost side of the fluctuation value coordinate system to the left; when the area of the first segment is greater than or equal to the first abnormal threshold, stop moving the constructed moving segment; obtain the historical target fluctuation value corresponding to the largest horizontal coordinate of the constructed moving segment at this time, and mark it as the joint static fluctuation threshold; exclude abnormally large historical target fluctuation values, and take the joint static fluctuation threshold as the new maximum value of historical target fluctuation value; Step S609: Obtain the joint static fluctuation threshold corresponding to all real-time filtered joint angles; In practical applications, the constructed moving line segment is translated to the left from the rightmost side of the fluctuation value coordinate system; to facilitate quick acquisition of the joint static fluctuation threshold, the step size for each movement is 0.5 cm, when the area of the first line segment is 0.64 cm². 2 Greater than the first abnormal threshold of 0.35cm 2 When the movement of the line segment stops, please refer to [link to documentation]. Figure 3 As shown; if the historical target fluctuation value corresponding to the largest horizontal coordinate of the constructed moving line segment at this time is 1.0°, then the joint static fluctuation threshold is 1.0°; 1.0° is the maximum value of the change in the pitch angle in the Euler angle of the elbow joint in real time.
[0025] Step S7 involves precise control based on real-time screening of joint angles and joint static fluctuation thresholds; Step S7 includes the following sub-steps: Step S701: If the fluctuation value of the real-time selected joint angle is less than or equal to the corresponding joint static fluctuation threshold, it is considered that the joint is unconsciously fluctuating slightly during motion capture, and no motor control is performed on the robot's joint; if the fluctuation value of the real-time selected joint angle is greater than the corresponding joint static fluctuation threshold, it is considered that the joint is actively moving during motion capture, and the robot's joint is synchronously controlled through the joint motor. In practical applications, for example, if the fluctuation value of the pitch angle in the Euler angle of the elbow joint is less than 1°, it is considered as involuntary shaking of the joint when the person is at rest, and no synchronous operation is performed.
[0026] Example 2: This application also provides an electronic device, which may include: a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other through the communication bus. The memory stores computer-readable instructions, and the processor can call the instructions in the memory. When the computer-readable instructions are executed by the processor, steps such as those in the precise control method for robot joint motors based on motion capture are performed to achieve the following functions: obtaining real-time joint angles based on real-time motion capture; obtaining a first calculated threshold and a second calculated threshold based on the real-time joint angles; obtaining real-time filtered joint angles based on the first calculated threshold and the second calculated threshold; obtaining historical angle fluctuation values based on motion capture of joint stillness; obtaining a fluctuation value function based on the historical angle fluctuation values; obtaining a joint stillness fluctuation threshold based on the fluctuation value function; and performing precise control based on the real-time filtered joint angles and the joint stillness fluctuation threshold.
[0027] Furthermore, when the logical instructions in the aforementioned memory can be implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0028] Example 3: This application also provides a computer program product, which includes a computer program stored on a computer-readable storage medium. The computer program includes program instructions. When the program instructions are executed by a computer, the computer can execute the motion capture-based precise control method for robot joint motors provided by the above methods. The method includes: acquiring real-time joint angles based on real-time motion capture; acquiring a first calculation threshold and a second calculation threshold based on the real-time joint angles; acquiring real-time filtered joint angles based on the first calculation threshold and the second calculation threshold; acquiring historical angle fluctuation values based on joint stillness motion capture; acquiring a fluctuation value function based on the historical angle fluctuation values; acquiring a joint stillness fluctuation threshold based on the fluctuation value function; and performing precise control based on the real-time filtered joint angles and the joint stillness fluctuation threshold.
[0029] Example 4: This application also provides a computer-readable storage medium storing a computer program. When the computer program is executed by a processor, it performs the steps of the above-described precise control method for robot joint motors based on motion capture to achieve the following functions: acquiring real-time joint angles based on real-time motion capture; acquiring a first calculated threshold and a second calculated threshold based on the real-time joint angles; acquiring real-time filtered joint angles based on the first calculated threshold and the second calculated threshold; acquiring historical angle fluctuation values based on motion capture of a stationary joint; acquiring a fluctuation value function based on the historical angle fluctuation values; acquiring a joint stationary fluctuation threshold based on the fluctuation value function; and performing precise control based on the real-time filtered joint angles and the joint stationary fluctuation threshold.
[0030] Based on the above description of the embodiments, the embodiments of the present invention can be provided as methods, systems, or computer program products. Based on this understanding, the above technical solutions, in essence or in terms of their contribution to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or certain parts of the embodiments.
[0031] In the embodiments provided in this application, it should be understood that the disclosed system or method can be implemented in other ways. The embodiments described above are merely illustrative. For example, the division of modules or units is only a logical functional division, and there may be other division methods in actual implementation. Furthermore, multiple modules or units may be combined or integrated into another system, or some features may be ignored or not executed. Additionally, the coupling or direct coupling or communication connection shown or discussed may be through some communication interfaces. The indirect coupling or communication connection between systems, modules, and units may be electrical, mechanical, or other forms.
[0032] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application.
Claims
1. A precise control method for robot joint motors based on motion capture, characterized in that, Includes the following steps: Real-time joint angles are obtained based on real-time motion capture. The first and second calculation thresholds are obtained based on real-time joint angles; Real-time joint angles are obtained based on the first and second calculated thresholds; Historical angle fluctuation values are obtained based on motion capture of static joints; Function for obtaining volatility values based on historical volatility values; The joint static fluctuation threshold is obtained based on the fluctuation value function; Precise control is achieved by real-time screening of joint angles and joint static fluctuation thresholds; Obtaining the first and second calculated thresholds based on real-time joint angles includes the following sub-steps: Obtain the real-time joint angles of the first consecutive number of frames, sort the real-time joint angles from smallest to largest, assign a sequence number to each real-time joint angle, and mark it as the first frame sequence number; The sequence number of the first frame is an integer starting from 1; Set a ratio value and mark it as the first set ratio; The first set ratio is a constant between 0 and 0.5; The product of the first quantity and the first set ratio is marked as the first set sequence number; If the first set sequence number is an integer, obtain the real-time joint angle corresponding to the first frame sequence number and mark it as the first set value; if the first set sequence number is not an integer, obtain the two adjacent integers of the first set sequence number and mark them as the first integer number; obtain the average value of the real-time joint angles corresponding to the two first frame sequence numbers and mark them as the first set value. Subtracting the first set ratio from 1 yields a value, which is then marked as the second set ratio. The product of the first quantity and the second set ratio is marked as the second set serial number; If the second set sequence number is an integer, obtain the real-time joint angle corresponding to the first frame sequence number with the second set sequence number, and mark it as the second set value; if the second set sequence number is not an integer, obtain the two adjacent integers of the second set sequence number, and mark them as the second integer number; obtain the average value of the real-time joint angles corresponding to the two first frame sequence numbers with the second integer number, and mark it as the second set value; The first calculation threshold is obtained as: A1=D1-[b1 / (b2-b1)]×(D2-D1); where A1 is the first calculation threshold, D1 is the first set value, D2 is the second set value, and b1 is the first set ratio, b2 is the second set ratio; The second calculation threshold is obtained as: A2 = D2 + [(1-b2) / (b2-b1)] × (D2-D1); where A2 is the second calculation threshold; Obtaining real-time joint angles based on real-time motion capture includes the following sub-steps: obtaining the Euler angles of each joint captured by motion capture and marking them as real-time joint Euler angles; obtaining any angle from the Euler angles of any joint and marking it as a real-time joint angle. Obtaining real-time filtered joint angles based on the first and second calculated thresholds includes the following sub-steps: marking the real-time joint angles of consecutive frames that are less than the first calculated threshold or greater than the second calculated threshold as abnormal joint angles; deleting the abnormal joint angles and marking the remaining real-time joint angles as real-time filtered joint angles.
2. The precise control method for robot joint motors based on motion capture according to claim 1, characterized in that, Obtaining historical angle fluctuation values based on joint stillness motion capture includes the following sub-steps: Obtain any Euler angle of the joint that is motion-captured and keeps the motion still, and mark it as the historical joint angle; Obtain the historical joint angle fluctuation values when stationary, and mark them as historical angle fluctuation values.
3. The precise control method for robot joint motors based on motion capture according to claim 2, characterized in that, The function for obtaining volatility values based on historical volatility values includes the following sub-steps: For any Euler angle of the same type of joint, the second number of historical angle fluctuation values are marked as historical target fluctuation values. A Cartesian coordinate system is established with historical target fluctuation values as the horizontal axis data and the number of historical target fluctuation values as the vertical axis data, and it is marked as the fluctuation value coordinate system. Obtain the coordinates of the historical target fluctuation value and the number of historical target fluctuation values as the x-axis and y-axis points, respectively, and mark them as fluctuation value coordinate points; Plot all the fluctuation value coordinates on the fluctuation value coordinate system to obtain a scatter plot, and mark it as a fluctuation value scatter plot; The function is obtained by fitting all the coordinate points of the fluctuation value in the scatter plot of fluctuation value, and it is marked as the fluctuation value function.
4. The precise control method for robot joint motors based on motion capture according to claim 3, characterized in that, Obtaining the joint static fluctuation threshold based on the fluctuation value function includes the following sub-steps: The region defined by the vertical lower boundary of the fluctuation value function and the horizontal axis of the fluctuation value coordinate system is marked as the first function region. Obtain the area of the first function region and mark it as the area of the first function. In the fluctuation value coordinate system, create a line segment on the horizontal axis that can move left and right and has a length equal to the length of the first line segment. Mark it as "Constructing the moving line segment". The real-time area of the first function region vertically above the constructed moving line segment is marked as the area of the first line segment. Obtain the distribution length of historical target fluctuation values on the horizontal axis of the fluctuation value coordinate system, and mark it as the length of the second line segment; If the historical target fluctuation value is uniformly distributed within the range of historical target fluctuation value, the area of the first line segment is obtained and marked as the first average area; the formula for calculating the first average area is: C1=C2×(E1÷E2); where C1 is the first average area, C2 is the area of the first function, E1 is the length of the first line segment, and E2 is the length of the second line segment; The first abnormal threshold is obtained as: C3 = f × C1; where C3 is the first abnormal threshold and f is a set ratio value.
5. The precise control method for robot joint motors based on motion capture according to claim 4, characterized in that, Obtaining the joint static fluctuation threshold based on the fluctuation value function also includes the following sub-steps: The moving line segment is constructed by translating from the rightmost side of the fluctuation value coordinate system to the left; when the area of the first line segment is greater than or equal to the first anomaly threshold, the construction of the moving line segment is stopped. Obtain the historical target fluctuation value corresponding to the largest x-coordinate of the constructed moving line segment at this time, and mark it as the joint static fluctuation threshold; Obtain the joint static fluctuation threshold corresponding to all real-time filtered joint angles.
6. The precise control method for robot joint motors based on motion capture according to claim 5, characterized in that, Precise control based on real-time screening of joint angles and joint static fluctuation thresholds includes the following sub-steps: If the fluctuation value of the joint angle in real time is less than or equal to the corresponding joint static fluctuation threshold, it is considered that the joint has unconscious slight fluctuation during motion capture, and the robot's joints will not be motor controlled. If the fluctuation value of the joint angle in real time is greater than the corresponding joint static fluctuation threshold, it is considered that the joint actively moves during motion capture, and the robot joint is synchronously controlled by the joint motor.
Citation Information
Patent Citations
Mechanical arm mapping method for motion capture and wrist joint angle estimation based on human body characteristic signals
CN116619422A
Force-position hybrid adaptive tracking control method and system for robot joints
CN121912393A