Adjustment method and robot
Patent Information
- Application Number
- CN202610931746.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-06-25
- Publication Date
- 2026-10-16
AI Technical Summary
但在真实部署时,由于仿真与现实的差异,容易使期望机体系运动方向与实际位移方向之间产生系统性角度偏差
Smart Images

Figure CN122923655A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of robot control technology, and in particular to an adjustment method and a robot. Background Technology
[0002] In related technologies, for legged robots employing reinforcement learning motion controllers, reinforcement learning strategies are generally based on state observations to output desired velocities, foot contact behaviors, or joint control variables, and acquire complex terrain and dynamic motion capabilities through extensive simulation training. However, in real-world deployments, due to the differences between simulation and reality, a systematic angular deviation can easily occur between the desired motion direction and the actual displacement direction. This deviation is transmitted to the navigation closed loop. If only the navigation controller's closed-loop correction is relied upon, the controller will continuously correct the position error, but the commands issued at the underlying level still carry the same directional deviation. This causes the navigation controller to continuously output velocity commands along the planned path, but the robot's actual trajectory gradually deviates from the desired path. Summary of the Invention
[0003] This application provides an adjustment method and a robot.
[0004] The technical solution of this application embodiment is implemented as follows: This application provides an adjustment method, the method including: Obtain the robot's starting pose and ending pose information within the observation window; Based on the starting pose information and the ending pose information, determine the actual displacement of the robot's mechanical system at the starting point of the window; Based on the actual displacement of the machine system, determine the actual displacement direction angle of the robot within the machine system; Based on the mechanical control commands executed by the robot within the observation window, the expected mechanical displacement of the robot at the starting point of the window is determined; Based on the expected displacement of the machine system, determine the expected displacement direction angle of the robot within the machine system; Based on the directional deviation angle between the actual displacement direction angle and the desired displacement direction angle, the desired translational direction in the machine system control command output by the upper controller is adjusted within the next observation window.
[0005] This application provides a robot, including a processor and a memory; The processor executes a computer program stored in memory to: obtain the robot's starting pose and ending pose information within the observation window; determine the robot's actual displacement at the starting point of the window based on the starting and ending pose information; determine the robot's actual displacement direction angle within the system based on the actual displacement; determine the robot's desired displacement at the starting point of the window based on the system control commands executed by the robot within the observation window; determine the robot's desired displacement direction angle within the system based on the desired displacement; and adjust the desired translational direction in the system control commands output by the upper-level controller within the next observation window based on the directional deviation angle between the actual and desired displacement direction angles. Attached Figure Description
[0006] Figure 1 A flowchart illustrating an adjustment method provided in an embodiment of this application; Figure 2 This is an exemplary schematic diagram illustrating the error between the expected and actual directions provided for an embodiment of this application. Figure 3 A schematic flowchart illustrating an exemplary method for determining the actual displacement of a mechanical system, provided as an embodiment of this application; Figure 4 A schematic flowchart illustrating an exemplary method for determining the desired displacement of a mechanical system, provided as an embodiment of this application; Figure 5 A flowchart illustrating an exemplary adjustment method provided in this application embodiment; Figure 6 A schematic flowchart for determining the estimated deviation angle provided in this application embodiment. Figure 1 ; Figure 7 A schematic flowchart for determining the estimated deviation angle provided in this application embodiment. Figure 2 ; Figure 8 A schematic flowchart for determining the initial estimated deviation angle provided in this application embodiment. Figure 1 ; Figure 9 A schematic diagram illustrating an exemplary initial estimation of the deviation angle provided in an embodiment of this application; Figure 10 A schematic flowchart for determining the initial estimated deviation angle provided in this application embodiment. Figure 2 ; Figure 11 A schematic diagram illustrating an exemplary real-time adjustment process provided for an embodiment of this application; Figure 12 This is a schematic diagram of the structure of a robot provided in an embodiment of this application.
[0007] It should be noted that the "one" and "two" mentioned above are only used to distinguish different options, and do not represent the degree of superiority or inferiority of the options or their priority in the implementation process. Detailed Implementation
[0008] To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limitations on this application. All other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0009] In the following description, references are made to “some embodiments,” which describe a subset of all possible embodiments. However, it is understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.
[0010] Unless otherwise defined, all technical and scientific terms used in this application have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains. The terminology used in this application is for descriptive purposes only and is not intended to be limiting.
[0011] During long-term operation, the drive motor, reduction mechanism, or transmission structure of a robot will gradually wear down, and the output characteristics, friction characteristics, or load distribution of the motor will change over time. The performance inconsistency between different drive units will increase with the use time. Even if the calibration has been completed at the factory, the expected motion direction corresponding to the motion control command will still gradually produce a systematic angular deviation from the actual motion direction of the robot.
[0012] For example, when the navigation system outputs a control command to "move in a straight line directly in front of the robot," the robot may continuously deviate to the left or right by a certain angle during actual movement. This deviation may be corrected by the navigation system's closed-loop control in the short term, but it still brings the following adverse effects: the navigation system needs to continuously output additional corrective control values, increasing the control burden; the actual motion model is inconsistent with the motion model assumed by the navigation system, reducing path tracking and positioning accuracy; and over long-term operation, the accumulation of errors affects the system's stability and reliability. Related technologies typically rely on manual recalibration or empirical parameter tuning to address these issues.
[0013] This application provides an adjustment method implemented by a robot, such as... Figure 1 As shown, the process includes the following steps S101 to S106: Step S101: Obtain the robot's starting pose information and ending pose information within the observation window.
[0014] In the embodiments of this application, the robot may be a legged robot, a wheeled robot, an unmanned vehicle, or other types of robots.
[0015] In the embodiments of this application, the robot can acquire the starting pose information and ending pose information of the observation window, wherein the pose information is the robot's information in the world coordinate system, including position information and orientation angle. For example, the starting pose information can be represented as: The final pose information can be represented as: , Let be the orientation angle of the robot system relative to the world coordinate system.
[0016] In the embodiments of this application, the observation window can be 5 seconds, 5 minutes, 10 minutes, 1 day, 1 week or other time windows. The observation window can be set based on actual needs and application scenarios, and this application does not limit it.
[0017] In the embodiments of this application, if the observation window is 5 minutes, the robot's pose information at the 0th second of the observation window is the starting pose information, and the robot's pose information at the 5th minute of the observation window is the ending pose information.
[0018] Step S102: Based on the starting point pose information and the ending point pose information, determine the actual displacement of the robot's mechanical system at the starting point of the window.
[0019] In the embodiments of this application, when the robot obtains the starting point pose information and the ending point pose information, it can determine the actual displacement of the robot's mechanical system at the starting point of the window based on the starting point pose information and the ending point pose information.
[0020] In the embodiments of this application, the starting pose information and the ending pose information are the robot's pose information in the world coordinate system. Since the subsequent deviation estimation is performed in the machine system, the starting pose information and the ending pose information in the world coordinate system will be converted to the robot's actual displacement in the machine system at the window starting point. This is to unify the coordinate system and improve the accuracy of the calculated deviation.
[0021] Step S103: Based on the actual displacement of the robot system, determine the actual displacement direction angle of the robot within the system.
[0022] In the embodiments of this application, when the robot is aware of the actual displacement of the machine system, it can determine the actual displacement direction angle of the robot within the machine system based on the actual displacement of the machine system.
[0023] For example, the method for determining the actual displacement direction angle can be found in formula (1): (1); in, This is the actual displacement direction angle. Let x be the actual displacement of the robot's mechanical system in the x-axis direction at the starting point of the window. This represents the actual displacement of the robot's system along the y-axis at the starting point of the window.
[0024] Step S104: Based on the machine system control commands executed by the robot within the observation window, determine the expected machine system displacement of the robot at the starting point of the window.
[0025] In embodiments of this application, the robot can obtain machine control commands executed by the robot within the observation window. For example, the machine control commands may be: .in, For machine system control commands, For the translational velocity modulus, The expected translational direction under the machine system. This represents the desired angular velocity.
[0026] In the embodiments of this application, the translational velocity vector corresponding to the machine system control command is given by formula (2): (2); The definition of the rotation matrix between the world system and the machine system is given in formula (3): (3); If there is no directional deviation, the translational velocity of the world system is given by formula (4): (4); If there is a directional deviation (like Figure 2 As shown, the actual execution direction 21 and the command execution direction 22), the actual execution direction is shown in formula (5): (5); The translational velocity of the actual machine system is given by formula (6): (6); The world system displacement over a short period of time can be approximated by formula (7): (7); In the embodiments of this application, all mechanical control commands executed by the robot within the observation window are converted into the expected mechanical displacement of the robot at the starting point of the window, and then superimposed to obtain the expected mechanical displacement within the observation window.
[0027] Step S105: Based on the expected displacement of the machine system, determine the expected displacement direction angle of the robot in the machine system.
[0028] In the embodiments of this application, when the robot knows the expected displacement of the machine system, it can determine the expected displacement direction angle of the robot in the machine system based on the expected displacement of the machine system.
[0029] For example, the method for determining the desired displacement direction angle can be found in formula (8): (8); in, The desired displacement direction angle, Let x be the expected displacement of the robot's mechanical system in the x-axis direction at the starting point of the window. Let be the expected displacement of the robot's mechanical system in the y-axis direction at the starting point of the window.
[0030] Step S106: Based on the directional deviation angle between the actual displacement direction angle and the desired displacement direction angle, adjust the desired translational direction in the machine system control command output by the upper controller in the next observation window.
[0031] In the embodiments of this application, the robot compensates for the desired translational direction in the machine system control command output by the upper controller within the next observation window based on the directional deviation angle between the actual displacement direction angle and the desired displacement direction angle, so that the robot can run in the desired translational direction.
[0032] For example, the method for calculating the direction deviation angle of the observation window is shown in formula (9): (9); in, This represents the angle normalization function, used to process angles. Periodicity.
[0033] For example, the function maps arbitrary angles to Alternatively, an equivalent periodic interval can be used to avoid issues such as 179° and -179° being mistakenly considered to differ by 358°. When calculating the direction deviation angle, if the angle obtained by direct subtraction exceeds this interval, it should be calculated by addition or subtraction. Normalize it to the smallest equivalent angle.
[0034] In a layered architecture where the navigation controller outputs the desired velocity and the underlying reinforcement learning motion controller tracks the velocity, the navigation layer typically does not directly perceive the directional deviations generated by the underlying strategy. If only the navigation controller's closed-loop correction is relied upon, the controller will continuously correct the position error, but the issued commands will still carry the same directional deviation when executed at the underlying level, easily leading to persistent lateral deviation, cornering, or trajectory oscillations. Therefore, in the embodiments of this application, a compensation method is provided that does not intrude on the upper-level navigation controller and is deployed at the velocity command interface. That is, after obtaining the directional deviation angle, reverse compensation is performed after the upper-level controller outputs the system control command and before the chassis executes it. This method does not require modification of the original navigation controller and can be deployed in the robot's Locomotion API, chassis drive interface, or velocity command issuance interface to adjust the desired translational direction in the system control command output by the upper-level controller within the next observation window.
[0035] In the embodiments of this application, during robot operation, motion control commands (corresponding to machine-based control commands) output by the navigation system or manual remote control system are simultaneously acquired, along with the robot's actual motion trajectory or pose changes (starting point pose information and ending point pose information) obtained through the SLAM system. Based on the mathematical relationship between the motion control commands and the actual motion trajectory, a parameter (direction deviation angle) characterizing the deviation of the motion direction is estimated. The direction deviation angle is used to compensate the motion control commands for the direction. By calling the compensated motion control interface, the robot's actual motion direction is made closer to the desired motion direction.
[0036] In the embodiments of this application, the adjustment method can continuously estimate the directional deviation angle during the normal operation of the robot and compensate it in the next observation window without stopping the machine or manual intervention. It can dynamically track the aging of the actuator or changes in mechanical characteristics and avoid factory calibration failure.
[0037] In this way, the desired translational direction in the machine control commands output by the upper layer can be adjusted based on the accurately calculated direction deviation angle. It can be directly deployed on the interface, which is transparent to the upper navigation system. Existing navigation and path planning algorithms do not need to be modified, thus reducing the control burden.
[0038] In some embodiments, when the robot performs step S102 as described above, Figure 3 As shown, the following steps S301 and S302 can also be performed: Step S301: Based on the starting point pose information and the ending point pose information, determine the actual displacement of the robot in the world system within the observation window.
[0039] In the embodiments of this application, the robot can determine its actual displacement in the world system within the observation window based on the position information in the starting pose information and the position information in the ending pose information.
[0040] For example, the method for determining the actual displacement of the world system is shown in formula (10): (10); in, This represents the actual displacement of the world system.
[0041] Step S302: Based on the orientation angle in the starting pose information, convert the actual displacement of the world system into the actual displacement of the machine system.
[0042] In the embodiments of this application, the actual displacement in the world system is converted into the actual displacement in the machine system using the orientation angle in the starting pose information. An exemplary conversion method is shown in formula (11): (11); In this way, the actual displacement of the world system can be converted to the actual displacement of the machine system at the starting point of the window.
[0043] In some embodiments, when the robot performs step S104 as described above, Figure 4 As shown, the following steps S401 to S403 can be performed: Step S401: Determine the desired displacement of the robot based on each control command executed by the robot within the observation window; the robot system control commands include at least one control command.
[0044] In the embodiments of this application, the robot receives at least one control command within the observation window, and determines the corresponding expected displacement for each control command.
[0045] For example, the compensated command for the m-th control cycle is given by formula (12): (12); in, This refers to the system control command for the m-th control cycle. Let m be the translational velocity modulus of the m-th control cycle. Let be the desired translational direction under the system in the m-th control cycle. Let be the desired angular velocity in the m-th control cycle.
[0046] The period length is The expected displacement of the robot system during this period is given by formula (13): (13); in, Let be the expected displacement of the robot system during the m-th control cycle.
[0047] Step S402: Convert the desired displacement of different control commands into the desired displacement of the window starting point.
[0048] In the embodiments of this application, the desired displacement of different control commands is converted into the desired displacement of the window start point.
[0049] For example, the method for converting the desired displacement in the m-th control cycle into the desired displacement at the starting point is as follows: .
[0050] Step S403: Rotate and accumulate the expected displacements of different control commands at the starting point of the window according to their relative orientation to obtain the expected displacement of the machine system.
[0051] In the embodiments of this application, the method of rotating and accumulating the desired displacement of different control commands at the window starting point is shown in formula (14): (14); in, The desired displacement of the machine system.
[0052] Thus, after obtaining the desired displacement of the machine system, the corresponding command cumulative direction angle can be obtained, that is, the desired displacement direction angle of the machine system, and then the direction deviation angle can be calculated to compensate for the deviation.
[0053] In some embodiments, when the robot performs step S106 as described above, Figure 5 As shown, the following steps S501 to S504 can be performed: Step S501: Determine the angle residual based on the orientation deviation angle and the estimated deviation angle of the previous observation window.
[0054] In the embodiments of this application, after obtaining the orientation deviation angle, the robot determines the angle residual based on the orientation deviation angle and the estimated deviation angle in the previous observation window.
[0055] For example, the method for determining the angular residual can be found in formula (15): (15); in, For angular residuals, The estimated bias angle within the previous observation window. Let be the directional deviation angle of the observation window k.
[0056] In the embodiments of this application, The direction deviation angle of the observation window k can be implemented in the following ways: The deviation angle to be estimated is taken as a one-dimensional state, as shown in formula (16): (16); Considering the slow change over time, a random walk state model can be used, see formula (17): (17); in, This is process noise.
[0057] Accordingly, the deviation angle measurement constructed based on the k-th observation window is given by formula (18): (18); The observation model is shown in formula (19): (19); in, For measuring noise.
[0058] Step S502: Based on the angular residual and the estimated deviation angle, determine the estimated deviation angle of the observation window.
[0059] In the embodiments of this application, after obtaining the angular residual, the robot can determine the estimated deviation angle of the observation window based on the angular residual and the estimated deviation angle.
[0060] In the embodiments of this application, the robot can construct a compensation function based on the angular residual, and determine the estimated deviation angle based on the sum of the compensation function and the estimated deviation angle.
[0061] For example, the compensation function can be a linear, nonlinear, piecewise, or lookup table function, used to implement differentiated compensation strategies under different operating conditions.
[0062] Step S503: Based on the estimated deviation angle, adjust the desired translational direction in the machine system control command to obtain the final machine system control command.
[0063] In the embodiments of this application, the desired translational direction in the machine system control command is adjusted based on the estimated deviation angle to obtain the final machine system control command.
[0064] For example, the implementation method of the final machine system control command is determined by formula (20): (20); in, The desired translational direction in the final machine system control command. The desired translational direction in the machine system control commands. To estimate the deviation angle.
[0065] In the embodiments of this application, if the estimated deviation angle is obtained, the command direction is reversed based on formula (20) before the chassis executes the command. The command issued after compensation, i.e., the final machine system control command, is as follows: .
[0066] In the embodiments of this application, the principle of reverse compensation is: there is a real deviation during chassis execution. Therefore, the actual execution direction is shown in formula (21): (twenty one); when At that time, the actual and expected approximations are equal, as shown in formula (22): (twenty two); The actual execution direction and the expected execution direction are approximately the same. By performing feedforward inverse compensation on the motion direction between the controller output and the chassis execution, the control burden of the controller can be reduced.
[0067] Step S504: In the next observation window, perform operations based on the final machine system control commands.
[0068] In the embodiments of this application, subsequent control operations are executed based on the final machine system control instructions, enabling the robot to move in the desired direction.
[0069] This can improve the accuracy of robot control.
[0070] In some embodiments, when the robot performs step S502 as described above, such as Figure 6 As shown, the following steps S601 to S602 can also be performed: Step S601: Smooth the angle residual to obtain the smoothed angle residual.
[0071] In the embodiments of this application, after the robot obtains the angular residual, it can perform smoothing processing. For example, the smoothing processing method can be exponential moving average.
[0072] In the embodiments of this application, the smoothing of the angular residual can be implemented in the following ways: ,in, , The larger the value, the faster the response, but the more sensitive it is to noise. The smaller the value, the smoother the estimate, but the slower the response.
[0073] Step S602: Determine the estimated deviation angle based on the smoothed angle residual and the estimated deviation angle.
[0074] In the embodiments of this application, the sum of the smoothed angular residual and the estimated deviation angle is determined as the estimated deviation angle.
[0075] For example, the method for determining the estimated deviation angle is shown in formula (23): (twenty three); in, To estimate the deviation angle, The deviation angle has been estimated.
[0076] Thus, through control This is to achieve smooth processing of angular residuals.
[0077] In some embodiments, when the robot performs step S502 as described above, such as Figure 7 As shown, the following steps S701 to S705 can also be performed: Step S701: Determine the estimated deviation angle as the predicted deviation angle of the observation window.
[0078] In the embodiments of this application, the robot directly uses the estimated deviation angle as the predicted deviation angle of the observation window.
[0079] For example, as shown in formula (24): (twenty four); in, The prediction bias angle for observation window k. The deviation angle has been estimated.
[0080] Step S702: Based on the process noise variance and the estimated variance of the previous observation window, construct the predicted variance of the observation window; the estimated variance of the previous observation window is determined based on the measurement noise variance and the predicted variance of the corresponding window.
[0081] In the embodiments of this application, the prediction variance of the observation window is constructed as shown in formula (25): (25); in, For process noise variance, for, This represents the prediction variance for the observation window.
[0082] In the embodiments of this application, the estimated variance of the previous observation window The determination method is based on the estimated gain, measurement noise variance, and prediction variance of the corresponding window.
[0083] For example, the estimated variance of the previous observation window is determined by: taking the ratio of the predicted variance of the previous observation window to the sum of the predicted variance and the measurement noise variance as the estimated gain of the previous observation window; and multiplying the difference between the estimated gain of the previous observation window and the value 1 and the predicted variance of the previous observation window to obtain the estimated variance of the previous observation window.
[0084] Step S703: Determine the estimated gain based on the prediction variance and the measurement noise variance.
[0085] In the embodiments of this application, the method for estimating the gain is shown in formula (26): (26); in, To estimate the gain, To measure the noise variance, To predict variance.
[0086] Step S704: Based on the estimated gain, perform gain processing on the angle residual to obtain the angle residual after gain processing.
[0087] In the embodiments of this application, the method of performing gain processing on the angle residual based on the estimated gain can be: the product of the estimated gain and the angle residual is determined as the angle residual after gain processing.
[0088] Step S705: Determine the estimated deviation angle based on the angle residual after gain processing and the estimated deviation angle.
[0089] In the embodiments of this application, the estimated deviation angle is the final angle to be adjusted. For example, the method for determining the estimated deviation angle is shown in formula (27): (27); Furthermore, the method for determining the estimated variance of the current observation window is given in formula (28): (28); In this way, when calculating the predicted variance in the next observation window, it can be determined directly based on the estimated variance of the current observation window.
[0090] Thus, by processing the angular residuals, the estimated deviation angle becomes more accurate.
[0091] In some embodiments, the robot may also perform the following steps: in response to the observation window being the first observation window for robot operation, determining the initial estimated deviation angle as the estimated deviation angle.
[0092] In the embodiments of this application, if the current observation window is the first observation window after the robot starts running, there is no estimated deviation angle of the previous observation window. In this case, the initial estimated deviation angle can be directly used as the estimated deviation angle.
[0093] In the embodiments of this application, the initial estimated deviation angle can be a rapidly calibrated deviation value before the robot goes online, after maintenance, after wheel replacement, after a significant change in load, or after a change in site.
[0094] For example, before and after maintenance or wheel replacement, even if there is an estimated deviation angle from the previous observation window, it is not applicable to the current scenario. Therefore, the robot will be recalibrated after the above-mentioned scenario changes. During calibration, the upper-level path tracking closed loop can be paused or the navigation controller can be prohibited from actively correcting the deviation, and the existing motion compensation module can be turned off.
[0095] In some embodiments, the robot may also perform the following steps: in response to the observation window being another observation window for which the robot is operating, the estimated deviation angle of the previous observation window is set to the estimated deviation angle.
[0096] In the embodiments of this application, if the observation window is not the first observation window before the robot goes online, after maintenance, after wheel replacement, after a significant change in load, or after a site switch, the estimated deviation angle of the previous observation window can be directly used as the estimated deviation angle.
[0097] This avoids using the estimated deviation angle from the previous observation window after a change in the scene, which would result in poor accuracy of the estimated deviation angle for the current observation window.
[0098] Thus, by distinguishing the sources of the estimated deviation angle in different scenarios, the accuracy of subsequent steps based on the estimated deviation angle can be improved, thereby improving the accuracy of the adjustment.
[0099] In some embodiments, such as Figure 8 As shown, the robot can also perform the following steps S801 to S804: Step S801: Obtain the calibration start pose information and the linear motion command.
[0100] In the embodiments of this application, if the deviation value is to be quickly calibrated before the robot goes online, after maintenance, after wheel replacement, after a significant change in load, or after a change in site, the upper-level path tracking closed loop can be paused or the navigation controller can be prohibited from actively correcting the deviation during the calibration process, the existing motion compensation module can be turned off, and a flat, open, and well-positioned straight path can be selected.
[0101] In the embodiments of this application, the robot can acquire calibration starting pose information. and linear motion commands ,in, To calibrate the speed, The desired direction of motion.
[0102] Step S802: Obtain the calibration endpoint pose information after running the calibration time based on the linear motion command.
[0103] In the embodiments of this application, the robot is controlled by linear motion commands to continuously run from the initial pose information of the calibration, and after a calibration time, the final pose information of the calibration is recorded. .
[0104] Step S803: Based on the calibration start pose information and calibration end pose information, determine the machine system orientation angle of the actual displacement at the calibration start point.
[0105] In the embodiments of this application, the mechanical orientation angle of the actual displacement at the calibration start point is determined based on the calibration start pose information and the calibration end pose information.
[0106] For example, the method of determining the actual displacement is the same as that of the above formulas (10), (11) and (1), and will not be repeated here.
[0107] Step S804: Determine the initial estimated deviation angle based on the machine system orientation angle and the desired motion direction in the linear motion command.
[0108] In the embodiments of this application, the method for obtaining the initial estimated deviation angle is shown in formula (29): (29); in, This is the initial estimated deviation angle.
[0109] For example, combined Figure 9 The process of generating the calibration deviation angle for controlled linear motion is illustrated in the diagram. The calibration process is discussed, such as... Figure 10 As shown, the calibration process includes the following steps S1001 to S1005: Step S1001: Record the starting point.
[0110] Here, the starting point is recorded during the calibration process. The pose information.
[0111] Step S1002: Issue a line command.
[0112] Here, the robot receives a straight-line command from the upper-level controller, such as... Figure 9 As shown, the expected direction of the straight line is 90 degrees.
[0113] Step S1003: Record the endpoint.
[0114] Here, after the robot runs for a period of time based on a straight-line command, it records the endpoint. The pose information.
[0115] Step S1004: Calculate the actual direction.
[0116] Here, the robot determines the actual displacement in the world system based on the pose information of the starting point and the ending point, then transforms it into the machine system at the starting point to obtain the actual displacement of the machine system, and then determines the actual direction 91 based on the actual displacement of the machine system.
[0117] Step S1005: Obtain the deviation angle.
[0118] Here, the deviation angle can be obtained by directly subtracting the actual direction angle from the desired translational direction in the linear motion command (corresponding to the initial estimated deviation angle mentioned above). ).
[0119] In this way, the estimated deviation angle can be updated in real time when the scene changes, thereby improving the accuracy of the subsequently determined estimated deviation angle and thus improving the accuracy of the adjustment.
[0120] In some embodiments, the robot may also perform the following steps: in response to the orientation deviation angle meeting a preset screening condition, update the estimated deviation angle of the previous observation window to obtain the estimated deviation angle.
[0121] In the embodiments of this application, the preset screening condition may be that the direction deviation angle is less than a preset threshold, or that the difference between the direction deviation angle and the average of the direction deviation angles of multiple observation windows is less than a preset difference, etc.
[0122] In the embodiments of this application, the preset screening conditions are validity screening conditions set based on experience. If the preset screening conditions are met, it means that the current obtained directional deviation angle meets the deviation generated by the robot in the current scenario and conforms to the law. Therefore, the estimated deviation angle of the previous observation window can be updated to obtain the estimated deviation angle.
[0123] In some embodiments, the robot may also perform the following steps: in response to the orientation deviation angle not meeting the preset screening conditions, the estimated deviation angle of the previous observation window is determined as the estimated deviation angle.
[0124] In the embodiments of this application, if the direction deviation angle is greater than or equal to a preset threshold, or if the difference between the direction deviation angle and the average of the direction deviation angles of multiple observation windows is greater than or equal to a preset difference, it indicates that the current obtained direction deviation angle does not meet the scene rules and the variation range is large. If the estimated deviation angle of the previous observation window is updated, the obtained estimated deviation angle will be inaccurate. Therefore, it is not necessary to update it here, and the estimated deviation angle of the previous observation window can be directly determined as the estimated deviation angle.
[0125] This approach takes into account the effectiveness of the orientation deviation angle, making the updated estimated deviation angle more accurate and thus improving the accuracy of the adjustment.
[0126] For example, such as Figure 11 As shown, the exemplary adjustment method includes the following steps S1101 to S1106: Step S1101: Input the reference trajectory.
[0127] Here, the robot can obtain reference trajectory 111.
[0128] Step S1102: Output the original command.
[0129] Here, the upper-level controller (local controller) 112 outputs the raw command. Then the original command is given to the direction compensator 113.
[0130] Step S1103: Determine the estimated deviation angle.
[0131] Here, the deviation angle estimator 114 obtains the command displacement generated by the original command of the local controller 112, and the actual displacement determined by the positioning / SLAM 115 during actual operation, determines the estimated deviation angle, and then sends the estimated deviation angle to the direction compensator 113.
[0132] Step S1104: The directional compensator performs reverse compensation.
[0133] Here, the direction compensator 113 performs reverse compensation on the original output command based on the estimated deviation angle, and the desired translational direction obtained by the reverse compensation is: Then, replace the desired translational direction in the original command to obtain the compensated command. .
[0134] Step S1105: Issue the compensated command.
[0135] Here, the direction compensator 113 will compensate for the command. The command is sent to chassis / robot 116, which then operates based on the compensated command.
[0136] Step S1106, Positioning.
[0137] Here, the expected displacement corresponding to the cumulative compensation command and the actual displacement given by the recording positioning system are fed into the deviation angle estimator 114 within the observation window, and then the compensation for the next cycle is performed.
[0138] This allows the robot to operate continuously in actual tasks and can be applied to scenarios where deviation angles are corrected online based on positioning observations and issued commands.
[0139] In one embodiment of this application, the starting pose information and ending pose information of the robot in the observation window are obtained; based on the starting pose information and ending pose information, the actual displacement of the robot in the world system in the observation window is determined; based on each control command executed by the robot in the observation window, the expected displacement of the robot is determined; the robot system control command includes at least one control command; the expected displacement of different control commands is converted into the expected displacement of the starting point of the window; the expected displacement of different control commands at the starting point of the window is rotated and accumulated according to the relative orientation to obtain the expected displacement of the robot system; based on the actual displacement of the robot system, the actual displacement direction angle of the robot in the robot system is determined; based on the robot system control commands executed by the robot in the observation window, the expected displacement of the robot in the robot system at the starting point of the window is determined; based on the expected displacement of the robot system, the expected displacement direction angle of the robot in the robot system is determined; based on the direction deviation angle between the actual displacement direction angle and the expected displacement direction angle, the expected translational direction in the robot system control command output by the upper controller is adjusted in the next observation window.
[0140] In another embodiment of this application, the starting pose information and ending pose information of the robot in the observation window are obtained; based on the starting pose information and ending pose information, the actual displacement of the robot at the starting point of the window is determined; based on the actual displacement of the robot, the actual displacement direction angle of the robot in the system is determined; based on the system control commands executed by the robot in the observation window, the expected displacement of the robot at the starting point of the window is determined; in response to the observation window being the first observation window for robot operation, the initial estimated deviation angle is determined as the estimated deviation angle; in response to the observation window being another observation window for robot operation, the estimated deviation angle of the previous observation window is set as the estimated deviation angle; based on the expected displacement of the system, the expected displacement direction angle of the robot in the system is determined; based on the direction deviation angle and the estimated deviation angle of the previous observation window, the angle residual is determined; based on the angle residual and the estimated deviation angle, the estimated deviation angle of the observation window is determined; based on the estimated deviation angle, the expected translational direction in the system control command is adjusted to obtain the final system control command; in the next observation window, the operation is executed based on the final system control command.
[0141] In another embodiment of this application, the starting pose information and ending pose information of the robot in the observation window are obtained; based on the starting pose information and ending pose information, the actual displacement of the robot in the world system within the observation window is determined; the expected displacement of the robot is determined based on each control command executed by the robot within the observation window; the robot system control commands include at least one control command; the expected displacements of different control commands are converted into the expected displacements of the starting point of the window; the expected displacements of different control commands at the starting point of the window are rotated and accumulated according to their relative orientations to obtain the expected displacement of the robot system; based on the actual displacement of the robot system, the actual displacement of the robot in the robot system is determined. Orientation angle; Based on the robot's system control commands executed within the observation window, determine the robot's expected displacement at the window's starting point; Based on the expected displacement, determine the robot's expected displacement orientation angle within the system; Based on the orientation deviation angle and the estimated deviation angle from the previous observation window, determine the angle residual; Smooth the angle residual to obtain the smoothed angle residual; Based on the smoothed angle residual and the estimated deviation angle, determine the estimated deviation angle; Based on the estimated deviation angle, adjust the expected translational direction in the system control commands to obtain the final system control commands; Within the next observation window, execute the operation based on the final system control commands.
[0142] This application provides an adjustment method that obtains the robot's starting pose and ending pose information within an observation window; based on the starting and ending pose information, determines the robot's actual mechanical displacement at the starting point of the window; based on the actual mechanical displacement, determines the robot's actual displacement direction angle within the mechanical system; based on the mechanical system control commands executed by the robot within the observation window, determines the robot's expected mechanical displacement at the starting point of the window; based on the expected mechanical displacement, determines the robot's expected displacement direction angle within the mechanical system; and based on the direction deviation angle between the actual and expected displacement direction angles, adjusts the expected translational direction in the mechanical system control commands output by the upper-level controller within the next observation window. The adjustment method provided in this application can adjust the expected translational direction in the upper-level mechanical system control commands based on the accurately calculated direction deviation angle, and is directly deployed on the interface, transparent to the upper-level navigation system. Existing navigation and path planning algorithms do not need modification, reducing the control burden.
[0143] like Figure 12 As shown, a robot 12 is provided, including a processor 121 and a memory 122; The processor 121 executes the computer program stored in the memory 122 to: obtain the robot's starting pose information and ending pose information within the observation window; determine the robot's actual displacement at the starting point of the window based on the starting pose information and ending pose information; determine the robot's actual displacement direction angle within the system based on the actual displacement; determine the robot's desired displacement at the starting point of the window based on the system control commands executed by the robot within the observation window; determine the robot's desired displacement direction angle within the system based on the desired displacement; and adjust the desired translational direction in the system control commands output by the upper-level controller within the next observation window based on the directional deviation angle between the actual displacement direction angle and the desired displacement direction angle.
[0144] The processor 121 is also used to determine the robot's actual world-system displacement within the observation window based on the starting pose information and the ending pose information; and to convert the actual world-system displacement into the robot's actual machine-system displacement based on the orientation angle in the starting pose information.
[0145] The processor 121 is also configured to determine the desired displacement of the robot based on each control command executed by the robot within the observation window; the robot system control command includes at least one control command; convert the desired displacement of different control commands into the desired displacement of the window start point; rotate and accumulate the desired displacement of different control commands at the window start point according to the relative orientation to obtain the robot system desired displacement.
[0146] The processor 121 is also used to determine the angular residual based on the directional deviation angle and the estimated deviation angle of the previous observation window; determine the estimated deviation angle of the observation window based on the angular residual and the estimated deviation angle; adjust the desired translational direction in the machine system control command based on the estimated deviation angle to obtain the final machine system control command; and execute the operation based on the final machine system control command in the next observation window.
[0147] The processor 121 is also used to smooth the angle residual to obtain the smoothed angle residual; and to determine the estimated deviation angle based on the smoothed angle residual and the estimated deviation angle.
[0148] The processor 121 is further configured to: determine the estimated deviation angle as the predicted deviation angle of the observation window; construct the predicted variance of the observation window based on the process noise variance and the estimated variance of the previous observation window; the estimated variance of the previous observation window is determined based on the measurement noise variance and the predicted variance of the corresponding window; determine the estimated gain based on the predicted variance and the measurement noise variance; perform gain processing on the angle residual based on the estimated gain to obtain the gain-processed angle residual; and determine the estimated deviation angle based on the gain-processed angle residual and the estimated deviation angle.
[0149] The processor 121 is also configured to, in response to the observation window being a first observation window for robot operation, determine the initial estimated deviation angle as the estimated deviation angle; and in response to the observation window being another observation window for robot operation, set the estimated deviation angle of the previous observation window as the estimated deviation angle.
[0150] The processor 121 is also used to obtain calibration start pose information and linear motion command; obtain calibration end pose information after running calibration time based on linear motion command; determine the machine system orientation angle of actual displacement at calibration start point based on calibration start pose information and calibration end pose information; and determine the initial estimated deviation angle based on machine system orientation angle and expected motion direction in linear motion command.
[0151] The processor 121 is further configured to update the estimated deviation angle of the previous observation window in response to the orientation deviation angle meeting the preset filtering conditions, so as to obtain the estimated deviation angle; and to determine the estimated deviation angle of the previous observation window as the estimated deviation angle in response to the orientation deviation angle not meeting the preset filtering conditions.
[0152] This application provides a computer-readable storage medium storing one or more computer programs, which can be executed by one or more processors to implement the above-described adjustment method. The computer-readable storage medium can be transient or non-transient.
[0153] This application provides a computer program product, which includes a non-transitory computer-readable storage medium storing a computer program. When the computer program is read and executed by a computer, it implements some or all of the steps in the above-described adjustment method. This computer program product can be implemented specifically through hardware, software, or a combination thereof. In one optional embodiment, the computer program product is specifically embodied as a computer storage medium; in another optional embodiment, the computer program product is specifically embodied as a software product, such as a software development kit (SDK), etc.
[0154] In some embodiments, the storage medium may be a computer-readable storage medium, which may be volatile memory, such as random-access memory (RAM); or non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), solid-state drive (SSD), ferromagnetic random access memory (FRAM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic surface memory, optical disk, or compact disk-read-only memory (CD-ROM); or it may be various devices including one or any combination of the above-mentioned memories, such as mobile phones, computers, tablet devices, personal digital assistants, etc.
[0155] 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 hardware embodiments, software embodiments, or embodiments combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage and optical storage) containing computer-usable program code.
[0156] 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 program instructions. These computer program 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.
[0157] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium 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.
[0158] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment 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.
[0159] In some embodiments, executable instructions may take the form of a program, software, software module, script, or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
[0160] As an example, executable instructions may, but do not necessarily, correspond to files in a file system. They may be stored as part of a file containing other programs or data, for example, in one or more scripts within a Hyper Text Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple co-located files (e.g., files storing one or more modules, subroutines, or code sections). As an example, executable instructions may be deployed to execute on a single computing device, or on multiple computing devices located in one location, or on multiple computing devices distributed across multiple locations and interconnected via a communication network.
[0161] It should be understood that the phrase "one embodiment" or "an embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this application, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. The sequence numbers of the above-described embodiments are merely descriptive and do not represent the superiority or inferiority of the embodiments.
[0162] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units is only a logical functional division, and in actual implementation, there may be other division methods, such as: multiple units or components may be combined, or integrated into another system, or some features may be ignored or not performed.
[0163] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application.
Claims
1. An adjustment method, the method comprising: Obtain the robot's starting pose and ending pose information within the observation window; Based on the starting point pose information and the ending point pose information, the actual mechanical displacement of the robot at the starting point of the window is determined; Based on the actual displacement of the machine system, determine the actual displacement direction angle of the robot within the machine system; Based on the mechanical control commands executed by the robot within the observation window, the expected mechanical displacement of the robot at the starting point of the window is determined; Based on the expected displacement of the machine system, the expected displacement direction angle of the robot in the machine system is determined; Based on the directional deviation angle between the actual displacement direction angle and the desired displacement direction angle, the desired translational direction in the machine system control command output by the upper controller is adjusted within the next observation window.
2. The adjustment method according to claim 1, wherein determining the actual mechanical displacement of the robot at the window starting point based on the starting point pose information and the ending point pose information includes: Based on the starting point pose information and the ending point pose information, the actual displacement of the robot in the world system within the observation window is determined; Based on the orientation angle in the starting pose information, the actual displacement of the world system is converted into the actual displacement of the machine system.
3. The adjustment method according to claim 1, wherein determining the expected mechanical displacement of the robot at the starting point of the window based on the mechanical control commands executed by the robot within the observation window includes: The desired displacement of the robot is determined based on each control command executed by the robot within the observation window. The machine system control commands include at least one control command; The desired displacement of different control commands is converted into the desired displacement of the window start point; The desired displacement of the different control commands at the starting point of the window is rotated and accumulated according to the relative orientation to obtain the desired displacement of the machine system.
4. The adjustment method according to claim 1, wherein adjusting the desired translational direction in the machine system control command output by the upper controller within the next observation window based on the directional deviation angle between the actual displacement direction angle and the desired displacement direction angle includes: Based on the directional deviation angle and the estimated deviation angle of the previous observation window, the angular residual is determined; Based on the angular residual and the estimated deviation angle, the estimated deviation angle of the observation window is determined; Based on the estimated deviation angle, the desired translational direction in the machine system control command is adjusted to obtain the final machine system control command; In the next observation window, operations are performed based on the final machine system control commands.
5. The adjustment method according to claim 4, wherein determining the estimated deviation angle of the observation window based on the angular residual and the estimated deviation angle comprises: The angle residual is smoothed to obtain the smoothed angle residual; The estimated deviation angle is determined based on the angle residual after the smoothing process and the estimated deviation angle.
6. The adjustment method according to claim 4, wherein determining the estimated deviation angle of the observation window based on the angular residual and the estimated deviation angle comprises: The estimated deviation angle is determined as the predicted deviation angle of the observation window; Based on the process noise variance and the estimated variance of the previous observation window, the predicted variance of the observation window is constructed. The estimated variance of the previous observation window is determined based on the measurement noise variance and prediction variance of the corresponding window; Based on the prediction variance and measurement noise variance, determine the estimated gain; Based on the estimated gain, the angle residual is processed by gain processing to obtain the angle residual after gain processing; The estimated deviation angle is determined based on the angle residual after the gain processing and the estimated deviation angle.
7. The adjustment method according to claim 5 or 6, further comprising: In response to the observation window being the first observation window for the robot's operation, the initial estimated deviation angle is determined to be the already estimated deviation angle; In response to the observation window being another observation window for the robot's operation, the estimated deviation angle of the previous observation window is set as the estimated deviation angle.
8. The adjustment method according to claim 7, further comprising: Obtain the initial pose information for calibration, as well as the linear motion command; Obtain the calibration endpoint pose information after running the calibration time based on the linear motion command; Based on the calibration start pose information and the calibration end pose information, the mechanical orientation angle of the actual displacement at the calibration start point is determined; The initial estimated deviation angle is determined based on the machine orientation angle and the desired motion direction in the linear motion command.
9. The adjustment method according to claim 4, further comprising: In response to the orientation deviation angle satisfying the preset filtering conditions, the estimated deviation angle of the previous observation window is updated to obtain the estimated deviation angle; In response to the fact that the direction deviation angle does not meet the preset screening conditions, the estimated deviation angle of the previous observation window is determined as the estimated deviation angle.
10. A robot comprising: Processor and memory; The processor is configured to execute a computer program stored in the memory to: obtain the robot's starting pose information and ending pose information within the observation window; determine the robot's actual mechanical displacement at the starting point of the window based on the starting pose information and the ending pose information; determine the robot's actual displacement direction angle within the mechanical system based on the actual mechanical displacement; determine the robot's desired mechanical displacement at the starting point of the window based on the mechanical system control commands executed by the robot within the observation window; determine the robot's desired displacement direction angle within the mechanical system based on the desired mechanical displacement; and adjust the desired translational direction in the mechanical system control commands output by the upper-level controller within the next observation window based on the directional deviation angle between the actual displacement direction angle and the desired displacement direction angle.