[go: up one dir, main page]

CN112650268B - Robot motion control method, device, robot and storage medium - Google Patents

Robot motion control method, device, robot and storage medium Download PDF

Info

Publication number
CN112650268B
CN112650268B CN202011565094.9A CN202011565094A CN112650268B CN 112650268 B CN112650268 B CN 112650268B CN 202011565094 A CN202011565094 A CN 202011565094A CN 112650268 B CN112650268 B CN 112650268B
Authority
CN
China
Prior art keywords
value
robot
zero
attitude angle
moment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011565094.9A
Other languages
Chinese (zh)
Other versions
CN112650268A (en
Inventor
白杰
葛利刚
陈春玉
刘益彰
麻星星
王鸿舸
熊友军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ubtech Robotics Corp
Original Assignee
Ubtech Robotics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ubtech Robotics Corp filed Critical Ubtech Robotics Corp
Priority to CN202011565094.9A priority Critical patent/CN112650268B/en
Publication of CN112650268A publication Critical patent/CN112650268A/en
Application granted granted Critical
Publication of CN112650268B publication Critical patent/CN112650268B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/08Control of attitude, i.e. control of roll, pitch, or yaw
    • G05D1/0891Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for land vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

The application is suitable for the technical field of robot control, and particularly relates to a motion control method and device for a robot, the robot and a storage medium. The motion control method of the robot comprises the steps that a preset outer ring controller obtains a preset attitude angle deviation value and calculates a zero moment point expected value of the robot, wherein the outer ring controller is an active disturbance rejection controller; and acquiring a zero moment point deviation value by a preset inner ring controller and calculating to obtain a moment compensation value of the tail end joint of the robot. After the output torque compensation value is calculated, the torque compensation value and the torque expected value of the tail end joint of the robot are obtained, the torque deviation value is generated, and the torque deviation value is provided for the tail end joint actuator of the robot so as to control the gait motion of the robot. The application combines the attitude angle feedback value and the zero moment point measurement value to control the gait of the robot, thereby improving the accuracy of the robot gait control.

Description

机器人的运动控制方法、装置、机器人及存储介质Robot motion control method, device, robot and storage medium

技术领域Technical Field

本申请属于机器人控制技术领域,尤其涉及机器人的运动控制方法、装置、机器人及存储介质。The present application belongs to the field of robot control technology, and in particular, relates to a robot motion control method, device, robot and storage medium.

背景技术Background technique

仿人机器人研究中的一个关键问题是提高行走速度同时能够保持步行稳定性,合理的步态控制能提高仿人机器人步行时的稳定性。现有的机器人的步态控制方法一般是根据测量得到的机器人的姿态角信息计算机器人的末端关节的力矩补偿值,再根据末端关节的力矩的补偿值以及期望值控制机器人的步态,机器人步态控制的准确度不高。A key issue in humanoid robot research is to increase walking speed while maintaining walking stability. Reasonable gait control can improve the walking stability of humanoid robots. The existing robot gait control method generally calculates the torque compensation value of the robot's end joint based on the measured robot's posture angle information, and then controls the robot's gait based on the torque compensation value of the end joint and the expected value. The accuracy of the robot's gait control is not high.

发明内容Summary of the invention

有鉴于此,本申请实施例提供了机器人的运动控制方法、装置、机器人及存储介质,可以提高机器人步态控制的准确度。In view of this, the embodiments of the present application provide a robot motion control method, device, robot and storage medium, which can improve the accuracy of the robot gait control.

本申请实施例的第一方面提供了一种机器人的运动控制方法,包括:A first aspect of an embodiment of the present application provides a motion control method for a robot, comprising:

获取机器人的预设姿态角期望值以及所述机器人的预设惯性测量传感器检测的所述机器人的预设姿态角反馈值,并生成预设姿态角偏差值;Acquire a preset attitude angle expected value of the robot and a preset attitude angle feedback value of the robot detected by a preset inertial measurement sensor of the robot, and generate a preset attitude angle deviation value;

预设外环控制器获取所述预设姿态角偏差值并计算出所述机器人的零力矩点期望值,所述外环控制器为自抗扰控制器;A preset outer loop controller obtains the preset attitude angle deviation value and calculates the expected value of the zero moment point of the robot, and the outer loop controller is an anti-disturbance controller;

获取所述机器人的零力矩点期望值、及获取所述机器人的零力矩点测量值,并生成零力矩点偏差值;Obtaining an expected value of the zero moment point of the robot, obtaining a measured value of the zero moment point of the robot, and generating a zero moment point deviation value;

预设内环控制器获取所述零力矩点偏差值并计算得出所述机器人的末端关节的力矩补偿值;The inner loop controller is preset to obtain the zero torque point deviation value and calculate the torque compensation value of the end joint of the robot;

获取所述机器人的末端关节的力矩补偿值及通过机器人步态规划得到的力矩期望值,并生成力矩偏差值;Obtaining a torque compensation value of the end joint of the robot and an expected torque value obtained through robot gait planning, and generating a torque deviation value;

将所述力矩偏差值提供给所述机器人的末端关节执行器,以控制所述机器人的步态运动。The torque deviation value is provided to the end joint actuator of the robot to control the gait movement of the robot.

在一种可能的实现方式中,所述外环控制器根据所述预设姿态角期望值,计算所述预设姿态角期望值的零阶值和一阶值,根据所述预设姿态角期望值的零阶值和一阶值,及所述预设姿态角反馈值计算出所述机器人的零力矩点期望值。In one possible implementation, the outer loop controller calculates the zero-order value and the first-order value of the preset attitude angle expected value according to the preset attitude angle expected value, and calculates the expected value of the zero-torque point of the robot according to the zero-order value and the first-order value of the preset attitude angle expected value and the preset attitude angle feedback value.

在一种可能的实现方式中,所述内环控制器为变PD控制器,所述内环控制器接收所述机器人的零力矩点期望值与当前时刻的零力矩点测量值、上一时刻所述内环控制器的一阶输出值、当前时刻的零力矩点测量值的一阶导数,计算当前时刻机器人的末端关节的力矩补偿值的零阶值、力矩补偿值的一阶值、力矩补偿值的二阶值,并将所述力矩补偿值的零阶值作为所述内环控制器的输出,所述力矩补偿值的一阶值和所述力矩补偿值的二阶值输出作为下一时刻所述内环控制器的输入。In one possible implementation, the inner-loop controller is a variable PD controller, which receives the expected value of the zero torque point of the robot and the measured value of the zero torque point at the current moment, the first-order output value of the inner-loop controller at the previous moment, and the first-order derivative of the measured value of the zero torque point at the current moment, calculates the zero-order value of the torque compensation value, the first-order value of the torque compensation value, and the second-order value of the torque compensation value of the end joint of the robot at the current moment, and uses the zero-order value of the torque compensation value as the output of the inner-loop controller, and outputs the first-order value of the torque compensation value and the second-order value of the torque compensation value as the input of the inner-loop controller at the next moment.

在一种可能的实现方式中,所述内环控制器为自抗扰控制器,所述内环控制器的跟踪微分器接收所述外环控制器输出的所述机器人的零力矩点期望值,并输出所述机器人的零力矩点期望值的零阶值和一阶值;所述内环控制器的扩张状态观测器接收所述机器人的零力矩点测量值并输出经扩张观测处理后的零力矩点反馈值;所述内环控制器的非线性状态误差反馈器接收所述机器人的零力矩点期望值的零阶值和一阶值以及接收所述零力矩点反馈值,并输出所述机器人的末端关节的力矩补偿值。In one possible implementation, the inner-loop controller is an anti-disturbance controller, and the tracking differentiator of the inner-loop controller receives the expected value of the zero torque point of the robot output by the outer-loop controller, and outputs the zero-order value and the first-order value of the expected value of the zero torque point of the robot; the extended state observer of the inner-loop controller receives the zero torque point measurement value of the robot and outputs the zero torque point feedback value after the extended observation processing; the nonlinear state error feedback device of the inner-loop controller receives the zero-order value and the first-order value of the expected value of the zero torque point of the robot and receives the zero torque point feedback value, and outputs the torque compensation value of the end joint of the robot.

在一种可能的实现方式中,所述机器人的零力矩点测量值通过所述机器人的六维力传感器检测所述机器人与地面的接触力,根据所述机器人与地面的接触力计算得出,或通过机器人动力学计算得出。In a possible implementation, the zero-torque point measurement value of the robot is obtained by detecting the contact force between the robot and the ground through a six-dimensional force sensor of the robot, and is calculated based on the contact force between the robot and the ground, or is calculated through robot dynamics.

在一种可能的实现方式中,所述预设姿态角为前向俯仰姿态角,所述机器人的末端关节的力矩补偿值为所述机器人的前向关节的力矩补偿值,以控制所述机器人的前向关节的运动。In a possible implementation, the preset attitude angle is a forward pitch attitude angle, and the torque compensation value of the end joint of the robot is the torque compensation value of the forward joint of the robot to control the movement of the forward joint of the robot.

在一种可能的实现方式中,所述预设姿态角为侧向翻滚姿态角,所述机器人的末端关节的力矩补偿值为所述机器人的侧向关节的力矩补偿值,以控制所述机器人的侧向关节的运动。In a possible implementation, the preset attitude angle is a lateral rolling attitude angle, and the torque compensation value of the end joint of the robot is the torque compensation value of the lateral joint of the robot to control the movement of the lateral joint of the robot.

本申请实施例的第二方面提供了一种机器人的运动控制装置,包括:A second aspect of an embodiment of the present application provides a motion control device for a robot, comprising:

第一获取模块,用于获取机器人的预设姿态角期望值以及所述机器人的预设惯性测量传感器检测的所述机器人的预设姿态角反馈值,并生成预设姿态角偏差值;A first acquisition module, used to acquire an expected value of a preset attitude angle of the robot and a feedback value of a preset attitude angle of the robot detected by a preset inertial measurement sensor of the robot, and generate a preset attitude angle deviation value;

第一计算模块,用于预设外环控制器获取所述预设姿态角偏差值并计算出所述机器人的零力矩点期望值,所述外环控制器为自抗扰控制器;A first calculation module is used to preset an outer loop controller to obtain the preset attitude angle deviation value and calculate the expected value of the zero moment point of the robot, wherein the outer loop controller is an anti-disturbance controller;

第二获取模块,用于获取所述机器人的零力矩点期望值、及获取所述机器人的零力矩点测量值,并生成零力矩点偏差值;A second acquisition module is used to acquire an expected value of a zero moment point of the robot, acquire a measured value of a zero moment point of the robot, and generate a zero moment point deviation value;

第二计算模块,用于预设内环控制器获取所述零力矩点偏差值并计算得出所述机器人的末端关节的力矩补偿值;A second calculation module is used to preset an inner loop controller to obtain the zero torque point deviation value and calculate the torque compensation value of the end joint of the robot;

第三获取模块,用于获取所述机器人的末端关节的力矩补偿值及通过机器人步态规划得到的力矩期望值,并生成力矩偏差值;A third acquisition module is used to acquire the torque compensation value of the end joint of the robot and the expected torque value obtained through the robot gait planning, and generate a torque deviation value;

控制模块,用于将所述力矩偏差值提供给所述机器人的末端关节执行器,以控制所述机器人的步态运动。The control module is used to provide the torque deviation value to the end joint actuator of the robot to control the gait movement of the robot.

在一种可能的实现方式中,所述第一计算模块具体用于:In a possible implementation manner, the first calculation module is specifically configured to:

所述外环控制器根据所述预设姿态角期望值,计算所述预设姿态角期望值的零阶值和一阶值,根据所述预设姿态角期望值的零阶值和一阶值,及所述预设姿态角反馈值计算出所述机器人的零力矩点期望值。The outer loop controller calculates the zero-order value and the first-order value of the preset attitude angle expected value according to the preset attitude angle expected value, and calculates the zero-torque point expected value of the robot according to the zero-order value and the first-order value of the preset attitude angle expected value and the preset attitude angle feedback value.

在一种可能的实现方式中,所述内环控制器为变PD控制器,所述第二计算模块具体用于:所述内环控制器接收所述机器人的零力矩点期望值与当前时刻的零力矩点测量值、上一时刻所述内环控制器的一阶输出值、当前时刻的零力矩点测量值的一阶导数,计算当前时刻机器人的末端关节的力矩补偿值的零阶值、力矩补偿值的一阶值、力矩补偿值的二阶值,并将所述力矩补偿值的零阶值作为所述内环控制器的输出,所述力矩补偿值的一阶值和所述力矩补偿值的二阶值输出作为下一时刻所述内环控制器的输入。In one possible implementation, the inner loop controller is a variable PD controller, and the second calculation module is specifically used for: the inner loop controller receives the expected value of the zero torque point of the robot and the zero torque point measurement value at the current moment, the first-order output value of the inner loop controller at the previous moment, and the first-order derivative of the zero torque point measurement value at the current moment, calculates the zero-order value of the torque compensation value, the first-order value of the torque compensation value, and the second-order value of the torque compensation value of the end joint of the robot at the current moment, and uses the zero-order value of the torque compensation value as the output of the inner loop controller, and outputs the first-order value of the torque compensation value and the second-order value of the torque compensation value as the input of the inner loop controller at the next moment.

在一种可能的实现方式中,所述内环控制器为自抗扰控制器,所述第二计算模块具体用于:所述内环控制器的跟踪微分器接收所述外环控制器输出的所述机器人的零力矩点期望值,并输出所述机器人的零力矩点期望值的零阶值和一阶值;所述内环控制器的扩张状态观测器接收所述机器人的零力矩点测量值并输出经扩张观测处理后的零力矩点反馈值;所述内环控制器的非线性状态误差反馈器接收所述机器人的零力矩点期望值的零阶值和一阶值以及接收所述零力矩点反馈值,并输出所述机器人的末端关节的力矩补偿值。In one possible implementation, the inner loop controller is an anti-disturbance controller, and the second calculation module is specifically used for: the tracking differentiator of the inner loop controller receives the expected value of the zero torque point of the robot output by the outer loop controller, and outputs the zero-order value and the first-order value of the expected value of the zero torque point of the robot; the extended state observer of the inner loop controller receives the zero torque point measurement value of the robot and outputs the zero torque point feedback value after the extended observation processing; the nonlinear state error feedback device of the inner loop controller receives the zero-order value and the first-order value of the expected value of the zero torque point of the robot and receives the zero torque point feedback value, and outputs the torque compensation value of the end joint of the robot.

在一种可能的实现方式中,所述机器人的零力矩点测量值通过所述机器人的六维力传感器检测所述机器人与地面的接触力,根据所述机器人与地面的接触力计算得出,或通过机器人动力学计算得出。In a possible implementation, the zero-torque point measurement value of the robot is obtained by detecting the contact force between the robot and the ground through a six-dimensional force sensor of the robot, and is calculated based on the contact force between the robot and the ground, or is calculated through robot dynamics.

在一种可能的实现方式中,所述预设姿态角为前向俯仰姿态角,所述机器人的末端关节的力矩补偿值为所述机器人的前向关节的力矩补偿值,以控制所述机器人的前向关节的运动。In a possible implementation, the preset attitude angle is a forward pitch attitude angle, and the torque compensation value of the end joint of the robot is the torque compensation value of the forward joint of the robot to control the movement of the forward joint of the robot.

在一种可能的实现方式中,所述预设姿态角为侧向翻滚姿态角,所述机器人的末端关节的力矩补偿值为所述机器人的侧向关节的力矩补偿值,以控制所述机器人的侧向关节的运动。In a possible implementation, the preset attitude angle is a lateral rolling attitude angle, and the torque compensation value of the end joint of the robot is the torque compensation value of the lateral joint of the robot to control the movement of the lateral joint of the robot.

本申请实施例的第三方面提供了一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的机器人的运动控制方法。A third aspect of an embodiment of the present application provides a robot, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the robot motion control method as described in the first aspect above is implemented.

本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的机器人的运动控制方法。A fourth aspect of an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the robot motion control method as described in the first aspect above is implemented.

本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的机器人的运动控制方法。A fifth aspect of an embodiment of the present application provides a computer program product. When the computer program product runs on a terminal device, the terminal device executes the robot motion control method described in any one of the above-mentioned first aspects.

本申请实施例与现有技术相比存在的有益效果是:获取机器人的预设姿态角期望值以及机器人的预设惯性测量传感器检测的机器人的预设姿态角反馈值,并生成预设姿态角偏差值;预设外环控制器获取预设姿态角偏差值并计算出机器人的零力矩点期望值,外环控制器为自抗扰控制器;获取机器人的零力矩点期望值、及获取机器人的零力矩点测量值,并生成零力矩点偏差值;预设内环控制器获取零力矩点偏差值并计算得出机器人的末端关节的力矩补偿值。即本申请是通过预设姿态角反馈值以及零力矩点测量值计算机器人的末端关节的力矩的补偿值,而零力矩点是机器人稳定行走的重要指标,因此,本申请相对于仅通过姿态角反馈值计算机器人末端关节的力矩的补偿值,提高了计算出的力矩补偿值的准确度。同时,采用自抗扰控制器计算机器人本体的零力矩点的期望值可以补偿预设姿态角测量值的扰动误差,提高了输出的零力矩点期望值的准确度。在计算出力矩补偿值后,再获取机器人的末端关节的力矩期望值,生成力矩偏差值,将力矩偏差值提供给机器人的末端关节执行器,以控制机器人的步态运动,从而提高了机器人步态控制的准确度。Compared with the prior art, the embodiments of the present application have the following beneficial effects: obtaining the expected value of the preset attitude angle of the robot and the preset attitude angle feedback value of the robot detected by the preset inertial measurement sensor of the robot, and generating the preset attitude angle deviation value; the preset outer loop controller obtains the preset attitude angle deviation value and calculates the expected value of the zero torque point of the robot, and the outer loop controller is an anti-disturbance controller; the expected value of the zero torque point of the robot is obtained, and the zero torque point measurement value of the robot is obtained, and the zero torque point deviation value is generated; the preset inner loop controller obtains the zero torque point deviation value and calculates the torque compensation value of the end joint of the robot. That is, the present application calculates the compensation value of the torque of the end joint of the robot by the preset attitude angle feedback value and the zero torque point measurement value, and the zero torque point is an important indicator of the stable walking of the robot. Therefore, the present application improves the accuracy of the calculated torque compensation value relative to the compensation value of the torque of the end joint of the robot calculated only by the attitude angle feedback value. At the same time, the use of the anti-disturbance controller to calculate the expected value of the zero torque point of the robot body can compensate for the disturbance error of the preset attitude angle measurement value, and improve the accuracy of the output zero torque point expected value. After calculating the torque compensation value, the expected torque value of the robot's end joint is obtained, and the torque deviation value is generated. The torque deviation value is provided to the robot's end joint actuator to control the robot's gait movement, thereby improving the accuracy of the robot's gait control.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1是本申请一实施例提供的机器人的运动控制方法的实现流程示意图;FIG1 is a schematic diagram of an implementation flow of a motion control method for a robot provided in an embodiment of the present application;

图2是本申请实施例提供的机器人的坐标系的示意图;FIG2 is a schematic diagram of a coordinate system of a robot provided in an embodiment of the present application;

图3是本申请一实施例提供的机器人的运动控制方法示意图;FIG3 is a schematic diagram of a motion control method for a robot provided by an embodiment of the present application;

图4是本申请实施例提供的自抗扰控制算法的流程图;FIG4 is a flow chart of an active disturbance rejection control algorithm provided in an embodiment of the present application;

图5是本申请一实施例提供的机器人的运动控制方法的具体流程图;FIG5 is a specific flow chart of a motion control method for a robot provided by an embodiment of the present application;

图6是本申请另一实施例提供的机器人的运动控制方法的具体流程图;FIG6 is a specific flow chart of a motion control method for a robot provided by another embodiment of the present application;

图7是本申请一实施例提供的机器人的运动控制装置示意图;FIG7 is a schematic diagram of a motion control device for a robot provided in an embodiment of the present application;

图8是本申请实施例提供的机器人的结构示意图。FIG8 is a schematic diagram of the structure of the robot provided in an embodiment of the present application.

具体实施方式Detailed ways

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.

为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。In order to illustrate the technical solution described in this application, a specific embodiment is provided below for illustration.

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。It should be understood that when used in this specification and the appended claims, the term "comprising" indicates the presence of described features, integers, steps, operations, elements and/or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof.

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。It should also be understood that the terms used in this application specification are only for the purpose of describing specific embodiments and are not intended to limit the application. As used in this application specification and the appended claims, unless the context clearly indicates otherwise, the singular forms "a", "an" and "the" are intended to include plural forms.

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。It should be further understood that the term “and/or” used in the specification and appended claims refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。As used in this specification and the appended claims, the term "if" may be interpreted as "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrases "if it is determined" or "if [described condition or event] is detected" may be interpreted as meaning "upon determination" or "in response to determining" or "upon detection of [described condition or event]" or "in response to detecting [described condition or event]," depending on the context.

另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。In addition, in the description of the present application, the terms "first", "second", "third", etc. are only used to distinguish the description and cannot be understood as indicating or implying relative importance.

现有的机器人的运动控制方法一般是根据测量得到的机器人的姿态角信息计算机器人的脚关节的力矩补偿值,再根据脚关节的力矩补偿值以及期望值规划机器人的步态,步态规划的准确度不高。The existing robot motion control method generally calculates the torque compensation value of the robot's foot joint based on the measured robot posture angle information, and then plans the robot's gait based on the torque compensation value of the foot joint and the expected value. The accuracy of gait planning is not high.

为此,本申请提供一种机器人的运动控制方法,可以提高机器人步态规划的准确度。To this end, the present application provides a robot motion control method that can improve the accuracy of the robot's gait planning.

下面对本申请提供的机器人的运动控制方法进行示例性说明。The following is an exemplary description of the robot motion control method provided in the present application.

请参阅附图1,本申请一实施例提供的机器人的运动控制方法包括:Please refer to FIG. 1 , a robot motion control method provided by an embodiment of the present application includes:

S101:获取机器人的预设姿态角期望值以及所述机器人的预设惯性测量传感器检测的所述机器人的预设姿态角反馈值,并生成预设姿态角偏差值。S101: Acquire a preset attitude angle expected value of a robot and a preset attitude angle feedback value of the robot detected by a preset inertial measurement sensor of the robot, and generate a preset attitude angle deviation value.

其中,预设姿态角为前向俯仰姿态角或者侧向翻滚姿态角,如图2所示,在机器人坐标系中,前向俯仰姿态角为机器人沿前后方向的偏移角度,即机器人在xoz平面上的偏移角度。侧向翻滚姿态角为机器人沿左右方向的偏移角度,即机器人在yoz平面上的偏移角度。机器人的预设姿态角期望值是根据机器人的状态设定的,例如若需要机器人双足站立于地面上,预设姿态角期望值可以是0。预设姿态角偏差值是预设姿态角期望值与预设姿态角反馈值的差值。Among them, the preset attitude angle is the forward pitch attitude angle or the lateral roll attitude angle, as shown in Figure 2. In the robot coordinate system, the forward pitch attitude angle is the offset angle of the robot in the front-to-back direction, that is, the offset angle of the robot on the xoz plane. The lateral roll attitude angle is the offset angle of the robot in the left-right direction, that is, the offset angle of the robot on the yoz plane. The expected value of the preset attitude angle of the robot is set according to the state of the robot. For example, if the robot needs to stand on the ground with both feet, the expected value of the preset attitude angle can be 0. The preset attitude angle deviation value is the difference between the preset attitude angle expected value and the preset attitude angle feedback value.

S102:预设外环控制器获取所述预设姿态角偏差值并计算出所述机器人的零力矩点期望值,所述外环控制器为自抗扰控制器。S102: Preset an outer loop controller to obtain the preset attitude angle deviation value and calculate the expected value of the zero torque point of the robot, and the outer loop controller is an anti-disturbance control controller.

其中,零力矩点的期望值为坐标值,可以是图2所示机器人坐标系中y轴坐标值,也可以是x轴坐标值。若预设姿态角为前向俯仰姿态角,则零力矩点为x轴坐标值,若预设姿态角为侧向翻滚姿态角,则零力矩点为y轴坐标值。如图3所示,根据预设姿态角期望值θd以及预设姿态角测量值θ计算预设姿态角偏差值,将预设姿态角偏差值输入外环控制器,外环控制器输出机器人的零力矩点期望值pd。自抗扰控制器(Active Disturbance RejectionControl,简称ADRC)是采用ADRC算法的控制器。Wherein, the expected value of the zero moment point is a coordinate value, which can be the y-axis coordinate value in the robot coordinate system shown in FIG2, or the x-axis coordinate value. If the preset attitude angle is the forward pitch attitude angle, the zero moment point is the x-axis coordinate value, and if the preset attitude angle is the lateral roll attitude angle, the zero moment point is the y-axis coordinate value. As shown in FIG3, the preset attitude angle deviation value is calculated according to the preset attitude angle expected value θd and the preset attitude angle measured value θ, and the preset attitude angle deviation value is input into the outer loop controller, and the outer loop controller outputs the robot's zero moment point expected value pd . Active Disturbance Rejection Control (ADRC) is a controller using the ADRC algorithm.

在一种可能的实现方式中,将预设姿态角偏差值输入外环控制器的ADRC算法模型,输出机器人的零力矩点期望值。In a possible implementation, a preset attitude angle deviation value is input into an ADRC algorithm model of an outer loop controller, and an expected value of the zero torque point of the robot is output.

在另一种可能的实现方式中,外环控制器根据预设姿态角偏差值计算得出机器人的零力矩点期望值的过程为:外环控制器根据所述预设姿态角期望值,计算所述预设姿态角期望值的零阶值和一阶值,根据所述预设姿态角期望值的零阶值和一阶值,及预设姿态角反馈值计算出机器人的零力矩点期望值。具体地,外环控制器的跟踪微分器接收预设姿态角期望值,输出机器人的预设姿态角期望值的零阶值和一阶值;外环控制器的扩张状态观测器接收机器人的预设姿态角反馈值,输出经扩张观测处理后的预设姿态角观测值,其中,扩张观测处理包括但不限于平滑、滤波处理;外环控制器的非线性状态误差反馈器接收预设姿态角期望值的零阶值和一阶值,以及接收预设姿态角观测值,输出机器人的零力矩点期望值。在一种可能的实现方式中,ADRC算法的计算流程如图4所示,ADRC算法包括跟踪微分器、扩张状态观测器和非线性状态误差反馈器。In another possible implementation, the process of the outer loop controller calculating the expected value of the zero torque point of the robot according to the preset attitude angle deviation value is as follows: the outer loop controller calculates the zero-order value and the first-order value of the preset attitude angle expected value according to the preset attitude angle expected value, and calculates the expected value of the zero torque point of the robot according to the zero-order value and the first-order value of the preset attitude angle expected value and the preset attitude angle feedback value. Specifically, the tracking differentiator of the outer loop controller receives the preset attitude angle expected value and outputs the zero-order value and the first-order value of the preset attitude angle expected value of the robot; the extended state observer of the outer loop controller receives the preset attitude angle feedback value of the robot and outputs the preset attitude angle observation value after extended observation processing, wherein the extended observation processing includes but is not limited to smoothing and filtering processing; the nonlinear state error feedback device of the outer loop controller receives the zero-order value and the first-order value of the preset attitude angle expected value, and receives the preset attitude angle observation value, and outputs the expected value of the zero torque point of the robot. In a possible implementation, the calculation process of the ADRC algorithm is shown in FIG4, and the ADRC algorithm includes a tracking differentiator, an extended state observer, and a nonlinear state error feedback device.

跟踪微分器对应的公式为 The corresponding formula for the tracking differentiator is

其中,k表示大于或等于0的整数,v(k)表示第k时刻跟踪微分器的输入值,h表示积分步长(周期),r表示跟踪因子;v1(k)和v2(k)表示跟踪微分器第k时刻的输出值,当k=0时,v1(k)=0,v2(k)=0;fhan(m,v2(k),r,h)表示m,v2(k),r,h的非线性函数,fhan(m,v2(k),r,h)定义为Wherein, k represents an integer greater than or equal to 0, v(k) represents the input value of the tracking differentiator at the kth moment, h represents the integration step (period), and r represents the tracking factor; v 1 (k) and v 2 (k) represent the output values of the tracking differentiator at the kth moment. When k=0, v 1 (k)=0, v 2 (k)=0; fhan(m,v 2 (k),r,h) represents the nonlinear function of m,v 2 (k),r,h. fhan(m,v 2 (k),r,h) is defined as

sign表示数学符号函数。 sign represents a mathematical sign function.

fhan函数可以解决函数在直接离散化后系统进入稳态时产生的高频振荡问题。The fhan function can solve the problem of high-frequency oscillation when the system enters a steady state after the function is directly discretized.

扩张状态观测器对应的公式为The formula corresponding to the extended state observer is

其中,y(k)表示第k时刻的反馈值,也表示扩张状态观测器第k时刻的输入值,b0表示控制输入系数,h表示积分步长(周期),δ表示滤波因子,β1、β2和β3分别表示输出误差增益参数,z1(k)、z2(k)、z3(k)表示扩张状态观测器第k时刻的输出值,当k=0时,z1(k)、z2(k)、z3(k)均为0。Among them, y(k) represents the feedback value at the kth moment, and also represents the input value of the extended state observer at the kth moment, b0 represents the control input coefficient, h represents the integration step (period), δ represents the filter factor, β1 , β2 and β3 represent the output error gain parameters respectively, z1 (k), z2 (k), z3 (k) represent the output values of the extended state observer at the kth moment, and when k=0, z1 (k), z2 (k), z3 (k) are all 0.

fal(e,α,δ)是非线性函数,fal(e,α,δ)定义为:fal(e,α,δ) is a nonlinear function, and fal(e,α,δ) is defined as:

其中,fal(e,0.5,δ)表示=0.5时非线性函数的值,fal(e,0.25,δ)表示α=0.25时非线性函数的值。 Among them, fal(e,0.5,δ) represents the value of the nonlinear function when α = 0.5, and fal(e,0.25,δ) represents the value of the nonlinear function when α = 0.25.

非线性状态误差反馈器的公式为The formula of the nonlinear state error feedback is:

其中,α1和α2均表示[0,1]之间的常数,γ1和γ2分别是误差增益参数,fal(n11,δ)表示e=n1、α=α1时非线性函数的值,fal(n22,δ)表示e=n2、α=α2时非线性函数的值,u0表示非线性状态误差反馈器第k时刻的输出值。Among them, α 1 and α 2 both represent constants between [0,1], γ 1 and γ 2 are error gain parameters respectively, fal(n 11 ,δ) represents the value of the nonlinear function when e=n 1 and α=α 1 , fal(n 22 ,δ) represents the value of the nonlinear function when e=n 2 and α=α 2 , and u 0 represents the output value of the nonlinear state error feedback device at the kth moment.

在得到误差反馈器第k时刻的输出值后,根据以下公式After obtaining the output value of the error feedback device at the kth moment, according to the following formula

u=u0-z3(k)/b0 (公式4)u=u 0 −z 3 (k)/b 0 (Formula 4)

计算第k时刻输入控制对象的值u,u也是ADRC算法第k时刻的输出值。其中,控制对象是根据输入值u进行进一步计算的装置,例如,控制对象为机器人的执行器,执行器根据输入值规划机器人的步态。Calculate the value u of the control object at the kth moment, which is also the output value of the ADRC algorithm at the kth moment. The control object is a device that performs further calculations based on the input value u. For example, the control object is the actuator of the robot, and the actuator plans the robot's gait based on the input value.

对应地,外环控制器根据预设姿态角偏差值计算机器人的零力矩点的期望值的过程为:将预设姿态角期望值作为跟踪微分器的第k时刻的输入值v(k),根据公式1计算出v1(k)和v2(k),则v1(k)表示预设姿态角期望值的零阶值,v2(k)表示预设姿态角期望值的一阶值。将预设姿态角反馈值作为扩张状态观测器第k时刻的反馈值y(k),根据公式2计算出z1(k)、z2(k)和z3(k),则z1(k)、z2(k)和z3(k)为预设姿态角观测值。非线性状态误差反馈器接收姿态角期望值的零阶值和一阶值,以及接收姿态角观测值中的z1(k)和z2(k),根据公式3计算出u0,最后根据z3(k)以及公式4计算出u,u即为零力矩点期望值。由于ADRC算法中引入了z3(k),z3(k)表征总扰动的观测值,因此,根据z3(k)以及公式4计算零力矩点的期望值可以补偿预设姿态角反馈值的扰动误差,提高了输出的零力矩点期望值的准确度。Correspondingly, the process of the outer loop controller calculating the expected value of the robot's zero torque point according to the preset attitude angle deviation value is as follows: the preset attitude angle expected value is used as the input value v(k) of the tracking differentiator at the kth moment, and v 1 (k) and v 2 (k) are calculated according to Formula 1, then v 1 (k) represents the zero-order value of the preset attitude angle expected value, and v 2 (k) represents the first-order value of the preset attitude angle expected value. The preset attitude angle feedback value is used as the feedback value y(k) of the extended state observer at the kth moment, and z 1 (k), z 2 (k) and z 3 (k) are calculated according to Formula 2, then z 1 (k), z 2 (k) and z 3 (k) are the preset attitude angle observation values. The nonlinear state error feedback device receives the zero-order value and the first-order value of the attitude angle expected value, as well as z 1 (k) and z 2 (k) in the attitude angle observation value, and calculates u 0 according to Formula 3, and finally calculates u according to z 3 (k) and Formula 4, and u is the zero torque point expected value. Since z 3 (k) is introduced in the ADRC algorithm, z 3 (k) represents the observed value of the total disturbance. Therefore, calculating the expected value of the zero moment point according to z 3 (k) and Formula 4 can compensate for the disturbance error of the preset attitude angle feedback value, thereby improving the accuracy of the output zero moment point expected value.

S103:获取所述机器人的零力矩点期望值、及获取所述机器人的零力矩点测量值,并生成零力矩点偏差值。S103: Obtaining the expected value of the zero moment point of the robot, obtaining the measured value of the zero moment point of the robot, and generating a zero moment point deviation value.

在一种可能的实现方式中,零点力矩点测量值可以根据机器人与地面的接触力计算得到,机器人与地面的接触力由机器人的六维力传感器或者扭矩传感器测量得到,零点力矩点测量值为坐标值。其中,零力矩点与机器人当前的姿势相关,例如,当双足机器人单脚站立,且只有右脚着地时,零力矩点位于机器人的右脚。零力矩点偏差值为零力矩点期望值与零力矩点测量值的差值。S104:预设内环控制器获取所述零力矩点偏差值并计算得出所述机器人的末端关节的力矩补偿值。In one possible implementation, the zero-torque point measurement value can be calculated based on the contact force between the robot and the ground. The contact force between the robot and the ground is measured by the robot's six-dimensional force sensor or torque sensor, and the zero-torque point measurement value is a coordinate value. The zero-torque point is related to the robot's current posture. For example, when a bipedal robot stands on one foot and only the right foot is on the ground, the zero-torque point is located at the robot's right foot. The zero-torque point deviation value is the difference between the zero-torque point expected value and the zero-torque point measured value. S104: The preset inner loop controller obtains the zero-torque point deviation value and calculates the torque compensation value of the robot's end joint.

如图3所示,内环控制器根据零力矩点期望值pd以及零力矩点测量值p计算机器人的末脚关节的力矩补偿值τc。机器人的末端关节的力矩补偿值是前向关节的力矩补偿值,或者侧向关节的力矩补偿值。前向关节的力矩补偿值用于控制机器人的前向关节的运动,侧向关节的力矩补偿值用于控制机器人的侧向关节的运动。As shown in Figure 3, the inner loop controller calculates the torque compensation value τc of the robot's end joint according to the zero torque point expected value pd and the zero torque point measured value p. The torque compensation value of the robot's end joint is the torque compensation value of the forward joint or the torque compensation value of the lateral joint. The torque compensation value of the forward joint is used to control the movement of the robot's forward joint, and the torque compensation value of the lateral joint is used to control the movement of the robot's lateral joint.

若预设姿态角是前向俯仰姿态角,则末端关节的力矩补偿值是前向关节的力矩补偿值,即机器人在xoz平面上的力矩补偿值;若预设姿态角是侧向翻滚姿态角,则末端关节的力矩补偿值是侧向关节的力矩补偿值,即机器人在yoz平面上的力矩补偿值。If the preset attitude angle is the forward pitch attitude angle, the torque compensation value of the end joint is the torque compensation value of the forward joint, that is, the torque compensation value of the robot on the xoz plane; if the preset attitude angle is the lateral roll attitude angle, the torque compensation value of the end joint is the torque compensation value of the lateral joint, that is, the torque compensation value of the robot on the yoz plane.

内环控制器可以是ADRC,也可以是变PD控制器(亦即,VPD控制器),VPD控制器是采用VPD算法的控制器。The inner loop controller may be an ADRC or a variable PD controller (ie, a VPD controller), where the VPD controller is a controller that uses a VPD algorithm.

在一种可能的实现方式中,内环控制器是VPD控制器,将零力矩点偏差值输入内环控制器的VPD算法模型,输出机器人的末端关节的力矩补偿值。In a possible implementation, the inner loop controller is a VPD controller, the zero torque point deviation value is input into the VPD algorithm model of the inner loop controller, and the torque compensation value of the end joint of the robot is output.

在一种可能的实现方式中,内环控制器是VPD控制器,内环控制器根据零力矩点偏差值计算机器人的末端关节的力矩补偿值的过程为:所述内环控制器接收所述外环控制器输出的零力矩点期望值,根据所述零力矩点期望值、当前时刻的零力矩点测量值、上一时刻内环控制器的一阶输出值、对当前时刻的零力矩点测量值进行一阶导数处理后得出的所述零力矩点测量值的一阶导数,计算当前时刻的力矩补偿值的零阶值、力矩补偿值的一阶值、力矩补偿值的二阶值,并将所述力矩补偿值的零阶值作为内环控制器的输出,所述力矩补偿值的一阶值和力矩补偿值的二阶值输出作为下一时刻内环控制器的输入。内环控制器根据当前时刻的力矩补偿值的一阶值、当前时刻的力矩补偿值的二阶值、下一时刻的零力矩点期望值、下一时刻的零力矩点测量值计算下一时刻的力矩补偿值的零阶值、力矩补偿值的一阶值、力矩补偿值的二阶值。In one possible implementation, the inner-loop controller is a VPD controller, and the process of the inner-loop controller calculating the torque compensation value of the end joint of the robot according to the zero-torque point deviation value is as follows: the inner-loop controller receives the expected value of the zero-torque point output by the outer-loop controller, and calculates the zero-order value of the torque compensation value, the first-order value of the torque compensation value, and the second-order value of the torque compensation value at the current moment according to the expected value of the zero-torque point, the zero-torque point measurement value at the current moment, the first-order output value of the inner-loop controller at the previous moment, and the first-order derivative of the zero-torque point measurement value obtained after first-order derivative processing of the zero-torque point measurement value at the current moment, and uses the zero-order value of the torque compensation value as the output of the inner-loop controller, and outputs the first-order value of the torque compensation value and the second-order value of the torque compensation value as the input of the inner-loop controller at the next moment. The inner loop controller calculates the zero-order value of the torque compensation value at the next moment, the first-order value of the torque compensation value, and the second-order value of the torque compensation value according to the first-order value of the torque compensation value at the current moment, the second-order value of the torque compensation value at the current moment, the expected value of the zero torque point at the next moment, and the measured value of the zero torque point at the next moment.

在一种可能的实现方式中,VPD算法定义为:In one possible implementation, the VPD algorithm is defined as:

其中,k表示大于或等于0的整数,k′表示大于或等于0的整数,vd(k)和vel(k)表示第k时刻的输入值,v(k)表示第k时刻的反馈值,表示对反馈值v(k)进行一阶导数处理,vel(k′)表第k时刻的一阶输出值,dt为积分步长(周期),kp、kd和kv分别表示误差增益参数,u表示第k时刻的输出值。当k=0时,v(k)=0,/>v(k)=0。Wherein, k represents an integer greater than or equal to 0, k′ represents an integer greater than or equal to 0, v d (k) and vel(k) represent the input values at the kth moment, v(k) represents the feedback value at the kth moment, represents the first-order derivative processing of the feedback value v(k), vel(k′) represents the first-order output value at the kth moment, dt is the integration step (cycle), kp , kd and kv represent the error gain parameters respectively, and u represents the output value at the kth moment. When k=0, v(k)=0,/> v(k)=0.

相对于传统的PID算法,VPD算法可以有效地解决响应的快速性与超调性之间的矛盾。Compared with the traditional PID algorithm, the VPD algorithm can effectively solve the contradiction between rapid response and overshoot.

对应地,内环控制器根据零力矩点偏差值计算机器人的末端关节的力矩的补偿值的过程如下。Correspondingly, the process of the inner loop controller calculating the compensation value of the torque of the end joint of the robot according to the zero torque point deviation value is as follows.

将零力矩点期望值作为第k时刻的输入值va(k),将当前时刻的零力矩点测量值作为第k时刻的反馈值v(k),将上一时刻内环控制器的一阶输出值作为vel(k),将对当前时刻的零力矩点测量值进行一阶导数处理后得出的所述零力矩点测量值的一阶导数作为代入公式5,计算出pos(k′),则pos(k′)即为当前时刻的力矩补偿值,也即力矩补偿值的零阶值。根据公式5,还可以计算出pos(k′)的一阶导数vel(k′),也即力矩补偿值的一阶值。根据vel(k′)可以进一步计算出pos(k′)的二阶导数acc(k′),也即力矩补偿值的二阶值。力矩补偿值的一阶值和力矩补偿值的二阶值由内环控制器输出,并作为下一时刻内环控制器的输入。The expected value of the zero moment point is taken as the input value v a (k) at the kth moment, the measured value of the zero moment point at the current moment is taken as the feedback value v(k) at the kth moment, the first-order output value of the inner loop controller at the previous moment is taken as vel(k), and the first-order derivative of the zero moment point measured value obtained by performing first-order derivative processing on the zero moment point measured value at the current moment is taken as Substitute into formula 5 and calculate pos(k′), then pos(k′) is the torque compensation value at the current moment, that is, the zero-order value of the torque compensation value. According to formula 5, the first-order derivative vel(k′) of pos(k′) can also be calculated, that is, the first-order value of the torque compensation value. According to vel(k′), the second-order derivative acc(k′) of pos(k′) can be further calculated, that is, the second-order value of the torque compensation value. The first-order value of the torque compensation value and the second-order value of the torque compensation value are output by the inner loop controller and serve as the input of the inner loop controller at the next moment.

由于采用VPD算法可以有效地解决控制方法在响应的快速性与超调性之间的矛盾,因此采用VPD算法计算机器人的脚关节的力矩的补偿值,可以提高计算结果的准确性。Since the VPD algorithm can effectively solve the contradiction between the rapidity of response and the overshoot of the control method, the VPD algorithm is used to calculate the compensation value of the torque of the robot's foot joint, which can improve the accuracy of the calculation result.

在一种可能的实现方式中,内环控制器是ADRC,将机器人的零力矩点偏差值输入内环控制器的ADRC算法模型,输出机器人的末端关节的力矩补偿值。In a possible implementation, the inner loop controller is ADRC, and the zero torque point deviation value of the robot is input into the ADRC algorithm model of the inner loop controller, and the torque compensation value of the end joint of the robot is output.

在另一种可能的实现方式中,内环控制器是ADRC,内环控制器根据零力矩点偏差值计算机器人的末端关节的力矩补偿值的过程为:所述内环控制器的跟踪微分器接收所述外环控制器输出的所述零力矩点期望值,并输出所述零力矩点期望值的零阶值和一阶值。所述内环控制器的扩张状态观测器接收所述零力矩点测量值并输出经扩张观测处理后的零力矩点反馈值,其中,扩张观测处理包括但不限于平滑、滤波处理。所述非线性状态误差反馈器接收所述零力矩点期望值的零阶值和一阶值,以及接收所述零力矩点反馈值,并输出所述力矩补偿值。In another possible implementation, the inner loop controller is ADRC, and the process of the inner loop controller calculating the torque compensation value of the robot's end joint according to the zero torque point deviation value is as follows: the tracking differentiator of the inner loop controller receives the zero torque point expected value output by the outer loop controller, and outputs the zero-order value and the first-order value of the zero torque point expected value. The extended state observer of the inner loop controller receives the zero torque point measurement value and outputs the zero torque point feedback value after the extended observation processing, wherein the extended observation processing includes but is not limited to smoothing and filtering processing. The nonlinear state error feedback device receives the zero-order value and the first-order value of the zero torque point expected value, receives the zero torque point feedback value, and outputs the torque compensation value.

若采用公式1至公式4所述的ADRC算法,内环控制器计算机器人的末端关节的力矩补偿值的方法如下。If the ADRC algorithm described in Formulas 1 to 4 is used, the method in which the inner loop controller calculates the torque compensation value of the end joint of the robot is as follows.

将零力矩点期望值作为跟踪微分器的第k时刻的输入值v(k),根据公式1计算出v1(k)和v2(k),则v1(k)表示零力矩点期望值的零阶值,v2(k)表示零力矩点期望值的一阶值。将零力矩点的测量值作为扩张状态观测器第k时刻的反馈值y(k),根据公式2计算出z1(k)、z2(k)和z3(k),则z1(k)、z2(k)和z3(k)为零力矩点反馈值。非线性状态误差反馈器接收零力矩点期望值的零阶值和一阶值,以及接收零力矩点反馈值中的z1(k)和z2(k),根据公式3计算出u0,最后根据z3(k)以及公式4计算出u,u即为力矩补偿值。The expected value of the zero moment point is taken as the input value v(k) of the tracking differentiator at the kth moment, and v 1 (k) and v 2 (k) are calculated according to formula 1, then v 1 (k) represents the zero-order value of the expected value of the zero moment point, and v 2 (k) represents the first-order value of the expected value of the zero moment point. The measured value of the zero moment point is taken as the feedback value y(k) of the extended state observer at the kth moment, and z 1 (k), z 2 (k) and z 3 (k) are calculated according to formula 2, then z 1 (k), z 2 (k) and z 3 (k) are the zero moment point feedback values. The nonlinear state error feedback device receives the zero-order value and first-order value of the expected value of the zero moment point, as well as z 1 (k) and z 2 (k) in the zero moment point feedback value, and calculates u 0 according to formula 3, and finally calculates u according to z 3 (k) and formula 4, and u is the torque compensation value.

由于ADRC算法中引入了z3(k),z3(k)表征总扰动的观测值,因此,根据公式4以及z3(k)计算机器人的末端关节的力矩的补偿值可以补偿零力矩点的测量值的扰动误差,提高了输出的末端关节的力矩补偿值的准确度。Since z 3 (k) is introduced into the ADRC algorithm, z 3 (k) represents the observed value of the total disturbance. Therefore, calculating the compensation value of the torque of the robot's end joint according to Formula 4 and z 3 (k) can compensate for the disturbance error of the measured value of the zero torque point, thereby improving the accuracy of the output torque compensation value of the end joint.

S105:获取所述机器人的末端关节的力矩补偿值及通过机器人步态规划得到的力矩期望值,并生成力矩偏差值。S105: Obtain the torque compensation value of the end joint of the robot and the expected torque value obtained through the robot gait planning, and generate a torque deviation value.

其中,力矩期望值是预先对机器人进行步态规划时得到的,可以是末端关节在yoz平面上的力矩期望值,或者脚末端关节在xoz平面上的力矩期望值。力矩偏差值是力矩期望值与力矩补偿值的差值。The expected torque value is obtained when the robot is pre-planned for gait, which can be the expected torque value of the end joint on the yoz plane, or the expected torque value of the end joint of the foot on the xoz plane. The torque deviation value is the difference between the expected torque value and the torque compensation value.

在一种可能的实现方式中,预先获取步态规划策略,根据步态规划策略确定机器人的末端关节的力矩期望值。例如,根据机器人当前的位置以及需要到达的位置确定机器人的行走路线,根据行走路线确定步态规划策略,根据步态规划策略确定每个时刻机器人的末端关节的力矩的期望值。In a possible implementation, a gait planning strategy is obtained in advance, and the expected torque value of the end joint of the robot is determined according to the gait planning strategy. For example, the walking route of the robot is determined according to the current position of the robot and the position to be reached, the gait planning strategy is determined according to the walking route, and the expected torque value of the end joint of the robot at each moment is determined according to the gait planning strategy.

S106:将所述力矩偏差值提供给所述机器人的末端关节执行器,以控制所述机器人的步态运动。S106: Providing the torque deviation value to the end joint actuator of the robot to control the gait movement of the robot.

如图3所示,将力矩补偿值τc以及力矩期望值τd提供给执行器,以控制机器人的步态运动。其中,提供给执行器的力矩补偿值包括yoz平面上的力矩补偿值以及xoz平面上的力矩补偿值,提供给执行器的力矩期望值包括yoz平面上的力矩期望值以及xoz平面上的力矩期望值,执行器可以为舵机。As shown in Figure 3, the torque compensation value τc and the torque expected value τd are provided to the actuator to control the gait movement of the robot. The torque compensation value provided to the actuator includes the torque compensation value on the yoz plane and the torque compensation value on the xoz plane, the torque expected value provided to the actuator includes the torque expected value on the yoz plane and the torque expected value on the xoz plane, and the actuator can be a servo.

具体地,将机器人的末端关节在yoz平面上的力矩的补偿值与末端关节在yoz平面上的力矩期望值相加,将末端关节在xoz平面上的力矩补偿值与末端关节在xoz平面上的力矩期望值相加,得到最终的末端关节在yoz平面上的力矩以及在xoz平面上的力矩,根据最终的末端关节在yoz平面上的力矩以及在xoz平面上的力矩控制机器人的步态。Specifically, the compensation value of the torque of the robot's end joint on the yoz plane is added to the expected value of the torque of the end joint on the yoz plane, and the compensation value of the torque of the end joint on the xoz plane is added to the expected value of the torque of the end joint on the xoz plane to obtain the final torque of the end joint on the yoz plane and the torque on the xoz plane. The gait of the robot is controlled according to the final torque of the end joint on the yoz plane and the torque on the xoz plane.

上述实施例中,获取机器人的预设姿态角期望值以及机器人的预设惯性测量传感器检测的机器人的预设姿态角反馈值,并生成预设姿态角偏差值;预设外环控制器获取预设姿态角偏差值并计算出机器人的零力矩点期望值,外环控制器为自抗扰控制器;获取机器人的零力矩点期望值、及获取机器人的零力矩点测量值,并生成零力矩点偏差值;预设内环控制器获取零力矩点偏差值并计算得出机器人的末端关节的力矩补偿值。即本申请是通过预设姿态角反馈值以及零力矩点测量值计算机器人的末端关节的力矩的补偿值,而零力矩点是机器人稳定行走的重要指标,因此,本申请相对于仅通过姿态角反馈值计算机器人末端关节的力矩的补偿值,提高了计算出的力矩补偿值的准确度。同时,采用自抗扰控制器计算机器人本体的零力矩点的期望值可以补偿预设姿态角测量值的扰动误差,提高了输出的零力矩点期望值的准确度。在计算出力矩补偿值后,再获取机器人的末端关节的力矩期望值,生成力矩偏差值,将力矩偏差值提供给机器人的末端关节执行器,以控制机器人的步态运动,从而提高了机器人步态控制的准确度。In the above embodiment, the preset attitude angle expected value of the robot and the preset attitude angle feedback value of the robot detected by the preset inertial measurement sensor of the robot are obtained, and the preset attitude angle deviation value is generated; the preset outer loop controller obtains the preset attitude angle deviation value and calculates the expected value of the zero torque point of the robot, and the outer loop controller is an anti-disturbance controller; the expected value of the zero torque point of the robot is obtained, and the zero torque point measurement value of the robot is obtained, and the zero torque point deviation value is generated; the preset inner loop controller obtains the zero torque point deviation value and calculates the torque compensation value of the end joint of the robot. That is, the present application calculates the compensation value of the torque of the end joint of the robot by the preset attitude angle feedback value and the zero torque point measurement value, and the zero torque point is an important indicator of the stable walking of the robot. Therefore, the present application improves the accuracy of the calculated torque compensation value relative to the compensation value of the torque of the end joint of the robot calculated only by the attitude angle feedback value. At the same time, the use of the anti-disturbance controller to calculate the expected value of the zero torque point of the robot body can compensate for the disturbance error of the preset attitude angle measurement value, and improve the accuracy of the output zero torque point expected value. After calculating the torque compensation value, the expected torque value of the robot's end joint is obtained, and the torque deviation value is generated. The torque deviation value is provided to the robot's end joint actuator to control the robot's gait movement, thereby improving the accuracy of the robot's gait control.

在一实施例中,外环控制器是ADRC,内环控制器采用VPD控制器。对应地,机器人的运动控制方法的具体流程如图5所示,首先将yoz平面上的姿态角期望值θyd输入外环控制器,外环控制器采用ADRC算法,将θyd作为ADRC算法中跟踪微分器的输入值,输出v1和v2,将yoz平面上的偏移角度的测量值θy作为扩张状态观测器的输入值,输出z1、z2、和z3,再根据v1、v2、z1、z2计算出u0,最后根据u0计算出输出值u1,u1即为机器人的零力矩点期望值中的y轴坐标的期望值pyd。然后将y轴坐标的期望值pyd、y轴坐标的测量值py以及py的一阶导数输入内环控制器,内环控制器采用VPD算法计算出输出值u2,u2即为yoz平面上的力矩补偿值τcy。采用同样的方法计算出xoz平面上的力矩的补偿值τcx。最后将yoz平面上的力矩补偿值τcy、xoz平面上的力矩补偿值τcx以及对应的力矩期望值τdy、τdx输入执行器,以控制机器人的步态。In one embodiment, the outer loop controller is ADRC, and the inner loop controller adopts a VPD controller. Correspondingly, the specific process of the robot motion control method is shown in FIG5. First, the expected value θ yd of the attitude angle on the yoz plane is input into the outer loop controller. The outer loop controller adopts the ADRC algorithm, and θ yd is used as the input value of the tracking differentiator in the ADRC algorithm, and outputs v 1 and v 2 . The measured value θ y of the offset angle on the yoz plane is used as the input value of the extended state observer, and z 1 , z 2 , and z 3 are output. Then u 0 is calculated based on v 1 , v 2 , z 1 , and z 2 . Finally, the output value u 1 is calculated based on u 0. u 1 is the expected value p yd of the y-axis coordinate in the expected value of the robot's zero torque point. Then the expected value p yd of the y-axis coordinate, the measured value p y of the y-axis coordinate, and the first-order derivative of p y are calculated. Input the inner loop controller, which uses the VPD algorithm to calculate the output value u 2 , which is the torque compensation value τ cy on the yoz plane. The same method is used to calculate the torque compensation value τ cx on the xoz plane. Finally, the torque compensation value τ cy on the yoz plane, the torque compensation value τ cx on the xoz plane, and the corresponding torque expected values τ dy and τ dx are input into the actuator to control the robot's gait .

上述实施例中,外环控制器采用ADRC算法,内环控制器采用VPD算法,在计算机器人的零力矩点期望值时,补偿误差扰动;在计算计算机器人的末端关节的力矩补偿值时,解决控制方法在响应的快速性与超调性之间的矛盾,从而提高了机器人步态规划的准确度。In the above embodiment, the outer loop controller adopts the ADRC algorithm and the inner loop controller adopts the VPD algorithm. When calculating the expected value of the zero torque point of the robot, the error disturbance is compensated; when calculating the torque compensation value of the end joint of the robot, the contradiction between the rapidity of response and the overshoot of the control method is resolved, thereby improving the accuracy of the robot's gait planning.

在另一实施例中,外环控制器是ADRC,内环控制器是ADRC。对应地,机器人的运动控制方法具体流程如图6所示,首先将yoz平面上的姿态角期望值θyd输入外环控制器,外环控制器采用ADRC算法,将θyd作为ADRC算法中跟踪微分器的输入值,输出v1和v2,将yoz平面上的姿态角测量值θy作为扩张状态观测器的输入值,输出z1、z2、和z3,再根据v1、v2、z1、z2计算出u0,最后根据u0计算出输出值u3,u3即为机器人的零力矩点期望值中的y轴坐标的期望值pyd。然后将y轴坐标的期望值pyd输入内环控制器,内环控制器采用ADRC算法,将pyd作为ADRC算法中跟踪微分器的输入值,输出v′1和v′2,将零力矩点测量值中y轴坐标的测量值py作为扩张状态观测器的输入值,输出z′1、z′2、和z′3,再根据v′1、v′2、z′1、z′2计算出u′0,最后根据u′0计算出输出值u4,u4即为yoz平面上的力矩补偿值τcy。采用同样的方法计算出xoz平面上的力矩补偿值vcx。最后将yoz平面上的力矩补偿值τcy、xoz平面上的力矩补偿值τcx以及对应的力矩期望值τdy、τdx输入执行器,以控制机器人的步态。In another embodiment, the outer loop controller is ADRC, and the inner loop controller is ADRC. Correspondingly, the specific flow of the motion control method of the robot is shown in FIG6. First, the expected value θ yd of the attitude angle on the yoz plane is input into the outer loop controller. The outer loop controller adopts the ADRC algorithm, and θ yd is used as the input value of the tracking differentiator in the ADRC algorithm, and outputs v 1 and v 2 . The attitude angle measurement value θ y on the yoz plane is used as the input value of the extended state observer, and z 1 , z 2 , and z 3 are output. Then u 0 is calculated based on v 1 , v 2 , z 1 , and z 2. Finally, the output value u 3 is calculated based on u 0 , and u 3 is the expected value p yd of the y-axis coordinate in the expected value of the zero moment point of the robot. Then the expected value p yd of the y-axis coordinate is input into the inner loop controller. The inner loop controller adopts the ADRC algorithm, and p yd is used as the input value of the tracking differentiator in the ADRC algorithm, and v′ 1 and v′ 2 are output. The measured value p y of the y-axis coordinate in the zero-torque point measurement value is used as the input value of the extended state observer, and z′ 1 , z′ 2 , and z′ 3 are output. Then u′ 0 is calculated according to v′ 1 , v′ 2 , z′ 1 , and z′ 2. Finally, the output value u 4 is calculated according to u′ 0 , and u 4 is the torque compensation value τ cy on the yoz plane. The torque compensation value v cx on the xoz plane is calculated by the same method. Finally, the torque compensation value τ cy on the yoz plane, the torque compensation value τ cx on the xoz plane, and the corresponding torque expected values τ dy and τ dx are input into the actuator to control the gait of the robot.

上述实施例中,外环控制器采用ADRC算法,内环控制器采用ADRC算法,在计算机器人的零力矩点期望值以及计算机器人的脚关节的力矩补偿值时,可以补偿误差扰动,从而提高了机器人步态规划的准确度。In the above embodiment, the outer loop controller adopts the ADRC algorithm and the inner loop controller adopts the ADRC algorithm. When calculating the expected value of the zero torque point of the robot and the torque compensation value of the foot joint of the robot, the error disturbance can be compensated, thereby improving the accuracy of the robot's gait planning.

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the 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 the present application.

对应于上文实施例所述的机器人的运动控制方法,图7示出了本申请实施例提供的机器人的运动控制装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。Corresponding to the robot motion control method described in the above embodiment, FIG7 shows a structural block diagram of the robot motion control device provided in the embodiment of the present application. For the sake of convenience, only the part related to the embodiment of the present application is shown.

如图7所示,机器人的运动控制装置包括,As shown in Figure 7, the robot's motion control device includes:

第一获取模块10,用于获取机器人的预设姿态角期望值以及所述机器人的预设惯性测量传感器检测的所述机器人的预设姿态角反馈值,并生成预设姿态角偏差值;A first acquisition module 10 is used to acquire an expected value of a preset attitude angle of the robot and a feedback value of a preset attitude angle of the robot detected by a preset inertial measurement sensor of the robot, and generate a preset attitude angle deviation value;

第一计算模块20,用于预设外环控制器获取所述预设姿态角偏差值并计算出所述机器人的零力矩点期望值,所述外环控制器为自抗扰控制器;A first calculation module 20 is used to preset an outer loop controller to obtain the preset attitude angle deviation value and calculate the expected value of the zero moment point of the robot, wherein the outer loop controller is an auto-disturbance rejection controller;

第二获取模块30,用于获取所述机器人的零力矩点期望值、及获取所述机器人的零力矩点测量值,并生成零力矩点偏差值;A second acquisition module 30 is used to acquire an expected value of a zero moment point of the robot, acquire a measured value of a zero moment point of the robot, and generate a zero moment point deviation value;

第二计算模块40,用于预设内环控制器获取所述零力矩点偏差值并计算得出所述机器人的末端关节的力矩补偿值;A second calculation module 40 is used to preset an inner loop controller to obtain the zero torque point deviation value and calculate the torque compensation value of the end joint of the robot;

第三获取模块50,用于获取所述机器人的末端关节的力矩补偿值及通过机器人步态规划得到的力矩期望值,并生成力矩偏差值;A third acquisition module 50 is used to acquire the torque compensation value of the end joint of the robot and the expected torque value obtained through the robot gait planning, and generate a torque deviation value;

控制模块60,用于将所述力矩偏差值提供给所述机器人的末端关节执行器,以控制所述机器人的步态运动。The control module 60 is used to provide the torque deviation value to the end joint actuator of the robot to control the gait movement of the robot.

在一种可能的实现方式中,所述第一计算模块20具体用于:In a possible implementation, the first calculation module 20 is specifically configured to:

所述外环控制器根据所述预设姿态角期望值,计算所述预设姿态角期望值的零阶值和一阶值,根据所述预设姿态角期望值的零阶值和一阶值,及所述预设姿态角反馈值计算出所述机器人的零力矩点期望值。The outer loop controller calculates the zero-order value and the first-order value of the preset attitude angle expected value according to the preset attitude angle expected value, and calculates the zero-torque point expected value of the robot according to the zero-order value and the first-order value of the preset attitude angle expected value and the preset attitude angle feedback value.

在一种可能的实现方式中,所述内环控制器为变PD控制器,所述第二计算模块40具体用于:所述内环控制器接收所述机器人的零力矩点期望值与当前时刻的零力矩点测量值、上一时刻所述内环控制器的一阶输出值、当前时刻的零力矩点测量值的一阶导数,计算当前时刻机器人的末端关节的力矩补偿值的零阶值、力矩补偿值的一阶值、力矩补偿值的二阶值,并将所述力矩补偿值的零阶值作为所述内环控制器的输出,所述力矩补偿值的一阶值和所述力矩补偿值的二阶值输出作为下一时刻所述内环控制器的输入。In one possible implementation, the inner loop controller is a variable PD controller, and the second calculation module 40 is specifically used for: the inner loop controller receives the expected value of the zero torque point of the robot and the zero torque point measurement value at the current moment, the first-order output value of the inner loop controller at the previous moment, and the first-order derivative of the zero torque point measurement value at the current moment, calculates the zero-order value of the torque compensation value, the first-order value of the torque compensation value, and the second-order value of the torque compensation value of the end joint of the robot at the current moment, and uses the zero-order value of the torque compensation value as the output of the inner loop controller, and outputs the first-order value of the torque compensation value and the second-order value of the torque compensation value as the input of the inner loop controller at the next moment.

在一种可能的实现方式中,所述内环控制器为自抗扰控制器,所述第二计算模块40具体用于:所述内环控制器的跟踪微分器接收所述外环控制器输出的所述机器人的零力矩点期望值,并输出所述机器人的零力矩点期望值的零阶值和一阶值;所述内环控制器的扩张状态观测器接收所述机器人的零力矩点测量值并输出经扩张观测处理后的零力矩点反馈值;所述内环控制器的非线性状态误差反馈器接收所述机器人的零力矩点期望值的零阶值和一阶值以及接收所述零力矩点反馈值,并输出所述机器人的末端关节的力矩补偿值。In one possible implementation, the inner loop controller is an anti-disturbance controller, and the second calculation module 40 is specifically used for: the tracking differentiator of the inner loop controller receives the expected value of the zero torque point of the robot output by the outer loop controller, and outputs the zero-order value and the first-order value of the expected value of the zero torque point of the robot; the extended state observer of the inner loop controller receives the zero torque point measurement value of the robot and outputs the zero torque point feedback value after the extended observation processing; the nonlinear state error feedback device of the inner loop controller receives the zero-order value and the first-order value of the expected value of the zero torque point of the robot and receives the zero torque point feedback value, and outputs the torque compensation value of the end joint of the robot.

在一种可能的实现方式中,所述机器人的零力矩点测量值通过所述机器人的六维力传感器检测所述机器人与地面的接触力,根据所述机器人与地面的接触力计算得出,或通过机器人动力学计算得出。In a possible implementation, the zero-torque point measurement value of the robot is obtained by detecting the contact force between the robot and the ground through a six-dimensional force sensor of the robot, and is calculated based on the contact force between the robot and the ground, or is calculated through robot dynamics.

在一种可能的实现方式中,所述预设姿态角为前向俯仰姿态角,所述机器人的末端关节的力矩补偿值为所述机器人的前向关节的力矩补偿值,以控制所述机器人的前向关节的运动。In a possible implementation, the preset attitude angle is a forward pitch attitude angle, and the torque compensation value of the end joint of the robot is the torque compensation value of the forward joint of the robot to control the movement of the forward joint of the robot.

在一种可能的实现方式中,所述预设姿态角为侧向翻滚姿态角,所述机器人的末端关节的力矩补偿值为所述机器人的侧向关节的力矩补偿值,以控制所述机器人的侧向关节的运动。In a possible implementation, the preset attitude angle is a lateral rolling attitude angle, and the torque compensation value of the end joint of the robot is the torque compensation value of the lateral joint of the robot to control the movement of the lateral joint of the robot.

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。It should be noted that the information interaction, execution process, etc. between the above-mentioned devices/units are based on the same concept as the method embodiment of the present application. Their specific functions and technical effects can be found in the method embodiment part and will not be repeated here.

图8是本申请实施例提供的机器人的结构示意图。如图8所示,该实施例的机器人包括:处理器11、存储器12以及存储在所述存储器12中并可在所述处理器11上运行的计算机程序13。所述处理器11执行所述计算机程序13时实现上述机器人的控制方法实施例中的步骤,例如图1所示的步骤S101至S106。或者,所述处理器11执行所述计算机程序13时实现上述各装置实施例中各模块/单元的功能,例如图7所示第一获取模块10至控制模块60的功能。FIG8 is a schematic diagram of the structure of the robot provided in an embodiment of the present application. As shown in FIG8 , the robot of this embodiment includes: a processor 11, a memory 12, and a computer program 13 stored in the memory 12 and executable on the processor 11. When the processor 11 executes the computer program 13, the steps in the control method embodiment of the above-mentioned robot are implemented, such as steps S101 to S106 shown in FIG1 . Alternatively, when the processor 11 executes the computer program 13, the functions of each module/unit in the above-mentioned device embodiments are implemented, such as the functions of the first acquisition module 10 to the control module 60 shown in FIG7 .

示例性的,所述计算机程序13可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器11执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序13在所述终端设备中的执行过程。Exemplarily, the computer program 13 may be divided into one or more modules/units, which are stored in the memory 12 and executed by the processor 11 to complete the present application. The one or more modules/units may be a series of computer program instruction segments capable of completing specific functions, which are used to describe the execution process of the computer program 13 in the terminal device.

本领域技术人员可以理解,图8仅仅是机器人的示例,并不构成对机器人的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述机器人还可以包括输入输出设备、网络接入设备、总线等。Those skilled in the art will understand that FIG8 is merely an example of a robot and does not constitute a limitation on the robot. The robot may include more or fewer components than shown in the figure, or a combination of certain components, or different components. For example, the robot may also include input and output devices, network access devices, buses, etc.

所述处理器11可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。The processor 11 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc.

所述存储器12可以是所述机器人的内部存储单元,例如机器人的硬盘或内存。所述存储器12也可以是所述机器人的外部存储设备,例如所述机器人上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,所述存储器12还可以既包括所述机器人的内部存储单元也包括外部存储设备。所述存储器12用于存储所述计算机程序以及所述机器人所需的其他程序和数据。所述存储器12还可以用于暂时地存储已经输出或者将要输出的数据。The memory 12 may be an internal storage unit of the robot, such as a hard disk or memory of the robot. The memory 12 may also be an external storage device of the robot, such as a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the robot. Furthermore, the memory 12 may include both an internal storage unit and an external storage device of the robot. The memory 12 is used to store the computer program and other programs and data required by the robot. The memory 12 may also be used to temporarily store data that has been output or is to be output.

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。In the embodiments provided in the present application, it should be understood that the disclosed devices/terminal equipment and methods can be implemented in other ways. For example, the device/terminal equipment embodiments described above are only schematic. For example, the division of the modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。If the integrated module/unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, and can also be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium, and the computer program can implement the steps of the above-mentioned various method embodiments when executed by the processor. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, U disk, mobile hard disk, disk, optical disk, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal and software distribution medium, etc.

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。The embodiments described above are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should all be included in the protection scope of the present application.

Claims (10)

1. A method of controlling movement of a robot, comprising:
Acquiring a preset attitude angle expected value of a robot and a preset attitude angle feedback value of the robot detected by a preset inertial measurement sensor of the robot, and generating a preset attitude angle deviation value;
The method comprises the steps that a preset outer ring controller obtains a preset attitude angle deviation value and calculates a zero moment point expected value of the robot, wherein the outer ring controller is an active disturbance rejection controller;
acquiring a zero moment point expected value of the robot, acquiring a zero moment point measured value of the robot, and generating a zero moment point deviation value;
The preset inner ring controller obtains the zero moment point deviation value and calculates a moment compensation value of the tail end joint of the robot;
Acquiring a moment compensation value of a tail end joint of the robot and a moment expected value obtained through gait planning of the robot, and generating a moment deviation value;
The moment offset value is provided to an end joint actuator of the robot to control gait motion of the robot.
2. The method of claim 1, wherein the outer ring controller calculates a zero-order value and a first-order value of the preset attitude angle expected value according to the preset attitude angle expected value, and calculates a zero-moment expected value of the robot according to the zero-order value and the first-order value of the preset attitude angle expected value and the preset attitude angle feedback value.
3. The motion control method of a robot according to claim 1 or 2, wherein the inner ring controller is a variable PD controller, the inner ring controller receives a zero moment point expected value of the robot and a zero moment point measured value at a current time, a first order output value of the inner ring controller at a previous time, a first derivative of the zero moment point measured value at the current time, calculates a zero order value of a moment compensation value of an end joint of the robot at the current time, a first order value of the moment compensation value, a second order value of the moment compensation value, and takes the zero order value of the moment compensation value as an output of the inner ring controller, and the first order value of the moment compensation value and the second order value output of the moment compensation value are taken as inputs of the inner ring controller at a next time;
The variable PD controller is a controller adopting a VPD algorithm, wherein the VPD algorithm is defined as follows:
Wherein k represents an integer greater than or equal to 0, k' represents an integer greater than or equal to 0, v d (k) and vel (k) represent input values at the kth time, v (k) represents feedback values at the kth time, The feedback value v (k) is subjected to first derivative processing, vel (k') represents a first-order output value at the kth time, dt is an integration step (period), k p、kd and k v represent error gain parameters, and u represents an output value at the kth time.
4. The motion control method of a robot according to claim 1 or 2, wherein the inner loop controller is an active disturbance rejection controller, and a tracking differentiator of the inner loop controller receives a zero moment point desired value of the robot output by the outer loop controller and outputs a zero order value and a first order value of the zero moment point desired value of the robot; the extended state observer of the inner ring controller receives the zero moment point measured value of the robot and outputs a zero moment point feedback value after extended observation treatment; and the nonlinear state error feedback device of the inner loop controller receives the zero-order value and the first-order value of the zero moment point expected value of the robot, receives the zero moment point feedback value and outputs a moment compensation value of the tail end joint of the robot.
5. The method of claim 1, wherein the zero moment point measurement of the robot is obtained by detecting a contact force of the robot with the ground through a six-dimensional force sensor of the robot, and is calculated according to the contact force of the robot with the ground, or is obtained by calculation through robot dynamics.
6. The method of controlling motion of a robot according to claim 1, wherein the preset attitude angle is a forward pitch attitude angle, and the moment compensation value of the distal joint of the robot is a moment compensation value of the forward joint of the robot to control motion of the forward joint of the robot.
7. The method of claim 1, wherein the preset attitude angle is a lateral roll attitude angle, and the moment compensation value of the distal joint of the robot is a moment compensation value of the lateral joint of the robot to control the movement of the lateral joint of the robot.
8. A motion control apparatus of a robot, comprising:
The first acquisition module is used for acquiring a preset attitude angle expected value of the robot and a preset attitude angle feedback value of the robot detected by a preset inertial measurement sensor of the robot, and generating a preset attitude angle deviation value;
The first calculation module is used for presetting an outer ring controller to obtain the preset attitude angle deviation value and calculating a zero moment point expected value of the robot, wherein the outer ring controller is an active disturbance rejection controller;
The second acquisition module is used for acquiring the expected value of the zero moment point of the robot, acquiring the measured value of the zero moment point of the robot and generating a deviation value of the zero moment point;
the second calculation module is used for presetting an inner ring controller to obtain the zero moment point deviation value and calculating a moment compensation value of the tail end joint of the robot;
The third acquisition module is used for acquiring a moment compensation value of the tail end joint of the robot and a moment expected value obtained through gait planning of the robot and generating a moment deviation value;
And the control module is used for providing the moment deviation value for an end joint actuator of the robot so as to control gait movement of the robot.
9. A robot comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that the processor implements the method according to any of claims 1 to 7 when executing the computer program.
10. A computer readable storage medium storing a computer program, characterized in that the computer program when executed by a processor implements the method according to any one of claims 1 to 7.
CN202011565094.9A 2020-12-25 2020-12-25 Robot motion control method, device, robot and storage medium Active CN112650268B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011565094.9A CN112650268B (en) 2020-12-25 2020-12-25 Robot motion control method, device, robot and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011565094.9A CN112650268B (en) 2020-12-25 2020-12-25 Robot motion control method, device, robot and storage medium

Publications (2)

Publication Number Publication Date
CN112650268A CN112650268A (en) 2021-04-13
CN112650268B true CN112650268B (en) 2024-06-18

Family

ID=75362864

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011565094.9A Active CN112650268B (en) 2020-12-25 2020-12-25 Robot motion control method, device, robot and storage medium

Country Status (1)

Country Link
CN (1) CN112650268B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116442240B (en) * 2023-05-26 2023-11-14 中山大学 A zero-force control method and device for robots based on high-pass filter decoupling

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3516232B2 (en) * 2000-06-19 2004-04-05 京清 韓 Method and apparatus for implementing feedback control that optimally and automatically rejects disturbances
EP1915963A1 (en) * 2006-10-25 2008-04-30 The European Atomic Energy Community (EURATOM), represented by the European Commission Force estimation for a minimally invasive robotic surgery system
RO125970B1 (en) * 2010-01-21 2019-03-29 Institutul De Mecanica Solidelor Al Academiei Române Method and device for the dynamic control of a walking robot
KR20130049029A (en) * 2011-11-03 2013-05-13 삼성전자주식회사 Walking robot and control method for thereof
US9616573B2 (en) * 2012-05-25 2017-04-11 The Ritsumeikan Trust Robot control apparatus, robot control method, program, recording medium and robot system
CN106708064B (en) * 2015-11-13 2019-06-25 中国科学院沈阳自动化研究所 A kind of vertical plane control method of underwater robot
CN107028663B (en) * 2017-04-18 2019-04-12 中国科学院重庆绿色智能技术研究院 A kind of master-slave mode operating robot control method
CN108196563B (en) * 2018-02-09 2021-02-09 深圳禾苗通信科技有限公司 Active-disturbance-rejection compensation control method and system for multi-rotor unmanned aerial vehicle
CN108453732B (en) * 2018-02-27 2020-07-14 北京控制工程研究所 Self-adaptive dynamic force/position hybrid control method for closed robot of control system
CN109676634B (en) * 2018-08-28 2021-02-19 杭州电子科技大学 Active disturbance rejection controller and industrial robot

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《下肢外骨骼康复机器人轨迹跟踪控制》;罗定吉;《下肢外骨骼康复机器人轨迹跟踪控制》;20201115;第1-5页 *
《基于优化ADRC的单臂机器人轨迹跟踪研究》;陈壮 等;《机械与电子》;20201031;第1-4页 *

Also Published As

Publication number Publication date
CN112650268A (en) 2021-04-13

Similar Documents

Publication Publication Date Title
US11642786B2 (en) Humanoid robot and its balance control method and computer readable storage medium
EP3112096B1 (en) Robot arm apparatus, calibration method, and program
EP2814643B1 (en) Control systems and methods for gait devices
WO2022227457A1 (en) Centroid pose estimation method and apparatus, computer-readable storage medium and robot
CN109625118B (en) Impedance control method and device for biped robot
Ma et al. Robust uncalibrated visual servoing control based on disturbance observer
WO2021242215A1 (en) A robot path planning method with static and dynamic collision avoidance in an uncertain environment
Jeon et al. Kinematic Kalman filter (KKF) for robot end-effector sensing
US20230191604A1 (en) Robot stability control method, robot and computer-readable storage medium
US9101324B2 (en) Vital sign measurement robot and control method thereof
CN112650268B (en) Robot motion control method, device, robot and storage medium
CN111438694A (en) A Diagonal Gait Planning Method for Quadruped Robot Based on Dual Generating Functions
CN113439013B (en) Robot system, control device for robot, and control program for robot
CN111208809A (en) Robot gait planning method and terminal device
CN111309039A (en) Four-footed robot attitude control method and device
Rone et al. Controller design, analysis, and experimental validation of a robotic serpentine tail to maneuver and stabilize a quadrupedal robot
Guffanti et al. Development and validation of a ROS-based mobile robotic platform for human gait analysis applications
CN112731954B (en) Robot motion control method and device, robot and storage medium
CN112731951A (en) Robot balance control method and device, readable storage medium and robot
Sun et al. Visual‐based autonomous field of view control of laparoscope with safety‐RCM constraints for semi‐autonomous surgery
CN111053613A (en) Motion tracking method, device, robotic arm, and computer-readable storage medium
CN113618740A (en) Dance balance control method, device and biped robot for biped robot
CN118123850A (en) A deformation sensing and trajectory tracking method and system for a long flexible hydraulic mechanical arm
CN115107030B (en) Robot center of mass motion planning method, device and biped robot
JP6343938B2 (en) Robot, control apparatus, robot system, and control method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant