Robot control method and apparatus, and electronic device, computer-readable storage medium and computer program product
By obtaining the current state parameters of the robot, calculating the motion control parameters based on the preset dynamic model and filtering processing, and combining the whole-body dynamic model, the problem of insufficient robustness of robot control is solved, and safe and stable control is achieved in complex environments.
Patent Information
- Application Number
- PCT/CN2025/079516
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-04
- Filing Date
- 2025-02-27
- Publication Date
- 2025-09-11
AI Technical Summary
In the existing technology, robot control technology pays less attention to robustness, especially the balance control effect of the robot under strong external disturbances, which affects its stability and safety in unknown environments.
By obtaining the current state parameters of the robot, determining the basic control parameters based on the preset dynamic model, and performing parameter filtering processing, the safety control parameters are obtained. The motion control parameters are calculated in combination with the whole-body dynamic model to achieve safe control of the robot joints.
Improved the robustness of robot control to ensure reliable operation and safety in complex environments.
Smart Images

Figure CN2025079516_12092025_PF_FP_ABST
Abstract
Description
Robot control method, device, electronic device, computer-readable storage medium, and computer program product
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is based on the Chinese patent application with application number 202410247226.5 and application date of March 4, 2024, and claims the priority of the Chinese patent application. The entire content of the Chinese patent application is hereby introduced into this application as a reference. Technical Field
[0003] The present application relates to the field of artificial intelligence, and in particular to a robot control method, device, electronic device, computer-readable storage medium, and computer program product. Background Art
[0004] With the development of industrial automation and artificial intelligence, robotic control technology has been widely used in manufacturing, healthcare, agriculture, transportation, and other fields, bringing tremendous convenience and benefits to people's production and daily lives. Robotic control technology refers to the various control methods used to enable robots to complete various tasks and actions. Robotic control technology generally includes energy-based passive control theory, adaptive dynamic programming, and adaptive optimization output regulation.
[0005] In related technologies, robot control focuses more on the robot's control performance, with less attention paid to its robustness, specifically its ability to maintain balance under strong external disturbances. Robustness determines the robot's stability in unknown environments and its tolerance to abnormal situations, and is therefore crucial for safe robot control. Summary of the Invention
[0006] The embodiments of the present application provide a robot control method, device, electronic device, computer-readable storage medium, and computer program product, which can achieve safe control of the robot and improve the robustness of the robot control.
[0007] The technical solution of the embodiment of the present application is implemented as follows:
[0008] An embodiment of the present application provides a robot control method, which is executed by an electronic device and includes: obtaining current state parameters of the robot to be controlled at a current moment; determining basic control parameters for each joint of the robot to be controlled based on a preset dynamic model and the current state parameters; performing parameter filtering on the basic control parameters to obtain safety control parameters for each joint of the robot to be controlled; determining motion control parameters for each joint of the robot to be controlled based on the safety control parameters of each joint; and controlling each joint of the robot to be controlled at the current moment according to the motion control parameters of each joint.
[0009] An embodiment of the present application provides a robot control device, including: an acquisition module, configured to acquire current state parameters of the robot to be controlled at the current moment; a basic control parameter determination module, configured to call a state regulator, and determine the basic control parameters for each joint of the robot to be controlled based on a preset dynamic model and the current state parameters; a parameter filtering module, configured to perform parameter filtering processing on the basic control parameters to obtain safety control parameters for each joint of the robot to be controlled; a motion control parameter determination module, configured to determine the motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint; and a control module, configured to control each joint of the robot to be controlled at the current moment according to the motion control parameters of each joint.
[0010] An embodiment of the present application provides an electronic device, comprising: a memory for storing computer-executable instructions; and a processor for implementing the robot control method provided in the embodiment of the present application when executing the computer-executable instructions stored in the memory.
[0011] An embodiment of the present application provides a computer-readable storage medium storing computer-executable instructions, which are used to implement the robot control method provided in the embodiment of the present application when executed by a processor.
[0012] An embodiment of the present application provides a computer program product, which includes computer-executable instructions, and the computer-executable instructions are stored in a computer-readable storage medium; wherein, when a processor of an electronic device reads the computer-executable instructions from the computer-readable storage medium and executes the computer-executable instructions, the robot control method provided in the embodiment of the present application is implemented.
[0013] The embodiments of the present application have the following beneficial effects:
[0014] After obtaining the current state parameters of the robot to be controlled at the current moment, the basic control parameters for each joint of the robot to be controlled will be determined based on the preset dynamic model and the current state parameters, and the basic control parameters will be subjected to parameter filtering to obtain the safety control parameters for each joint of the robot to be controlled. In this way, by performing parameter filtering on the basic control parameters of each joint of the robot to be controlled, it is possible to perform parameter screening on the original control parameters of the robot to be controlled, thereby converting the screened control parameters into control parameters applicable to the robot safety control theory. In this way, the control parameters (i.e., the safety control parameters of each joint) are the control parameters optimized relative to the original control parameters of the robot, thereby enabling the robot to be controlled to be accurately and safely controlled by the optimized control parameters. In addition, the embodiment of the present application calls the whole-body dynamic model of the robot to be controlled, determines the motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint, and then controls the corresponding joints of the robot to be controlled at the current moment based on the motion control parameters of each joint. In this way, the safety control parameters of each joint of the robot to be controlled are used as the input of the whole-body dynamics model, and the motion control parameters of each joint are calculated in combination with the whole-body dynamics model. Then, the motion control parameters of each joint are used to achieve safety control of the joints of the robot to be controlled. In this way, the robot to be controlled can be simultaneously controlled through the motion control parameters of each joint of the robot to be controlled, which can improve the robustness of the robot control. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] FIG1 is a schematic diagram of the structure of a robot control system provided in an embodiment of the present application;
[0016] FIG2 is a schematic structural diagram of a robot control device provided in an embodiment of the present application;
[0017] FIG3 is a schematic diagram of an optional flow chart of a robot control method provided in an embodiment of the present application;
[0018] FIG4 is another optional flowchart of the robot control method provided in an embodiment of the present application;
[0019] FIG5 is a schematic structural diagram of a robot provided in an embodiment of the present application;
[0020] FIG6 is a schematic side view of the entire body of the robot provided in an embodiment of the present application in a vertical plane;
[0021] FIG7 is a schematic diagram of the rotation of the robot's side swing rotation center provided by an embodiment of the present application;
[0022] FIG8 is a schematic diagram of a two-wheel motion mode of a robot provided in an embodiment of the present application;
[0023] FIG9 is a schematic diagram of an obstacle crossing mode of a robot provided in an embodiment of the present application;
[0024] FIG10 is a schematic diagram of a framework of a robot control system provided in an embodiment of the present application;
[0025] FIG11 is a schematic structural diagram of a second-order inverted pendulum on a wheel provided in an embodiment of the present application;
[0026] FIG12 is a schematic flow chart of a robot control method according to an embodiment of the present application;
[0027] FIG13 is a schematic diagram of an inverted pendulum model of a robot provided in an embodiment of the present application;
[0028] FIG14a is a first schematic diagram of a simulation effect of robot control provided by an embodiment of the present application;
[0029] FIG14b is a second schematic diagram of the simulation effect of the robot control provided by an embodiment of the present application;
[0030] FIG14c is a third schematic diagram of the simulation effect of the robot control provided by an embodiment of the present application;
[0031] FIG14d is a fourth schematic diagram of the simulation effect of the robot control provided by an embodiment of the present application;
[0032] FIG14e is a fifth schematic diagram of the simulation effect of the robot control provided by an embodiment of the present application;
[0033] FIG14f is a sixth schematic diagram of the simulation effect of the robot control provided by an embodiment of the present application;
[0034] FIG15 is a schematic diagram of a simulation of the rotation angle of the left wheel hub motor provided in an embodiment of the present application;
[0035] FIG16 is a schematic diagram of a simulation of the rotation angle of the left wheel hub motor when the lower limit of the safety constraint is changed to -π, provided in an embodiment of the present application. DETAILED DESCRIPTION
[0036] In order to make the purpose, 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 limiting this application. All other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of this application.
[0037] In the following description, reference is made to “some embodiments”, which describes a subset of all possible embodiments, but it will be 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.
[0038] If similar descriptions of "first / second" appear in the application documents, the following explanation is added. In the following description, the terms "first\second\third" involved are merely used to distinguish similar objects and do not represent a specific order for the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.
[0039] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.
[0040] Unless otherwise defined, all technical and scientific terms used in the embodiments of the present application have the same meanings as those commonly understood by those skilled in the art. The terms used in the embodiments of the present application are only for the purpose of describing the embodiments of the present application and are not intended to limit the present application.
[0041] The relevant data collection and processing in the embodiments of this application should be strictly in accordance with the requirements of relevant national laws and regulations when applied in examples, and the informed consent or separate consent of the personal information subject should be obtained. Subsequent data use and processing should be carried out within the scope of authorization of laws and regulations and the personal information subject.
[0042] Robotics involves the design, construction, operation and use of robots. The goal of robotics is to design machines that can help and assist humans. Robotics integrates mechanical engineering, electrical engineering, information engineering, mechatronics, electronics, bioengineering, computer engineering, control engineering, software engineering, mathematics and other fields, and will be further developed in the future. The solution provided in the embodiment of the present application relates to artificial intelligence robotics, which is illustrated by the following embodiment: In robotics, if you want to keep the wheels of the robot balanced, you will use a proportional-integral-derivative controller (PID) controller, or a model-based linear quadratic regulator (LQR), model predictive control (MPC) and other controllers. These controllers are basically based on the wheel inverted pendulum model, using energy-based passive control theory, adaptive dynamic programming or adaptive optimization output regulation to keep the wheels of the robot balanced.
[0043] In the related art, although it is proposed to use the above-mentioned similar robust control method on the second-order wheel inverted pendulum system, the simplified model of the robot cannot be extended to any high order, which has certain limitations; moreover, the second-order wheel inverted pendulum system in the related art is only applied to the simplified model of the robot, and does not consider the combination with the whole-body dynamics control, and there is no global control strategy and effect for the control of the robot; at the same time, the related art only considers the application scenario of two-wheel balancing, and does not include the application in scenarios such as four-wheel driving, expected four-wheel and two-wheel state switching.
[0044] The above methods focus more on the robot's control performance and less on the robustness of the robot's control. In robotic control systems, robustness refers to the system's ability to maintain a certain level of performance and accurately complete its intended task in the face of various interferences, uncertain perturbations, model errors, external disturbances, and internal parameter changes. In short, robustness reflects the robot control system's ability to maintain reliable operation in complex and changing environments.
[0045] Based on at least one of the above technical problems existing in the above-mentioned related technologies, an embodiment of the present application introduces a safety controller based on a simplified model of a second-order wheeled inverted pendulum, and based on a state observer, a center of mass reference trajectory that can be used for a whole-body dynamic control architecture can be obtained; then, a constraint inequality derived from the safety controller theory is established, and the constraint inequality is substituted into the whole-body dynamic controller to achieve the combination of whole-body dynamic control and safety control, thereby achieving safe control of the robot and improving the robustness of the robot control.
[0046] The following describes exemplary applications of the robot control device (i.e., electronic device) provided in the embodiments of the present application. The electronic device provided in the embodiments of the present application can be implemented as various types of terminals, such as robots, laptops, tablet computers, desktop computers, set-top boxes, smartphones, smart speakers, smart watches, smart TVs, and in-vehicle terminals. It can also be implemented as a server. The following describes exemplary applications of the robot control device when implemented as a server.
[0047] Refer to Figure 1, which is a structural diagram of the robot control system 100 provided in an embodiment of the present application. In order to support a robot control application, the robot control application is run on the terminal 400, and the terminal 400 is connected to the server 200 through the network 300. The network 300 can be a wide area network or a local area network, or a combination of the two.
[0048] The terminal 400 is used to send a robot control request to the server 200. The server 200 constitutes the robot control device of the embodiment of the present application. The server 200 is used to respond to the robot control request and obtain the current state parameters of the robot 500 to be controlled at the current moment; then, based on the preset dynamic model and the current state parameters, the basic control parameters for each joint of the robot 500 to be controlled are determined; then, the basic control parameters are parameter filtered to obtain the safety control parameters for each joint of the robot 500 to be controlled; then, based on the safety control parameters of each joint, the motion control parameters of each joint of the robot 500 to be controlled are determined; finally, according to the motion control parameters of each joint, each joint of the robot 500 to be controlled is controlled at the current moment to obtain the robot control result at the current moment. When controlling the robot 500 to be controlled, the server 200 can generate a robot control instruction, which carries the motion control parameters of each joint. The server 200 can send the robot control instruction to the robot 500 to achieve control of the robot 500 to be controlled.
[0049] In some embodiments, after obtaining the robot control result at the current moment, the server 200 can return the robot control result at the current moment to the terminal 400, so as to output the robot control result at the terminal 400 or perform robot control at the next moment based on the robot control result at the terminal 400. For example, the motion trajectory of the robot to be controlled after responding to the robot control instruction can be displayed on the terminal 400 as the robot control result.
[0050] In some embodiments, the server 200 may be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms. The terminal and the server may be connected directly or indirectly via wired or wireless communication, which is not limited in the embodiments of the present application.
[0051] Referring to FIG. 2 , FIG. 2 is a schematic diagram of the structure of an electronic device 40 provided in an embodiment of the present application. The electronic device 40 shown in FIG. 2 may be a robot control device, which includes: at least one processor 410, a memory 450, at least one network interface 420, and a user interface 430. The various components in the robot control device are coupled together via a bus system 440. It will be understood that the bus system 440 is used to achieve connection and communication between these components. In addition to including a data bus, the bus system 440 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in FIG. 2 , all various buses are labeled as the bus system 440.
[0052] The processor 410 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.
[0053] The user interface 430 includes one or more output devices 431 that enable presentation of media content, including one or more speakers and one or more visual display screens. The user interface 430 also includes one or more input devices 432, including user interface components that facilitate user input, such as a keyboard, mouse, microphone, touch screen display, camera, other input buttons and controls.
[0054] The memory 450 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, and the like. The memory 450 may optionally include one or more storage devices physically located away from the processor 410. The memory 450 includes a volatile memory or a non-volatile memory, and may also include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 450 described in the embodiments of the present application is intended to include any suitable type of memory. In some embodiments, the memory 450 is capable of storing data to support various operations, examples of which include programs, modules, and data structures, or subsets or supersets thereof, as exemplified below.
[0055] An operating system 451 includes system programs for handling various basic system services and performing hardware-related tasks, such as a framework layer, a core library layer, a driver layer, etc., which are used to implement various basic businesses and handle hardware-based tasks; a network communication module 452 is used to reach other electronic devices via one or more (wired or wireless) network interfaces 420. Exemplary network interfaces 420 include: Bluetooth, Wireless Compatibility Certification (WiFi), and Universal Serial Bus (USB); a presentation module 453 is used to enable the presentation of information (e.g., a user interface for operating peripheral devices and displaying content and information) via one or more output devices 431 (e.g., display screens, speakers, etc.) associated with a user interface 430; an input processing module 454 is used to detect one or more user inputs or interactions from one of the one or more input devices 432 and translate the detected inputs or interactions.
[0056] In some embodiments, the device provided by the embodiments of the present application can be implemented in software. FIG2 shows a robot control device 455 stored in a memory 450. The robot control device 455 can be software in the form of a program or plug-in, and includes the following software modules: an acquisition module 4551, a basic control parameter determination module 4552, a parameter filtering module 4553, a motion control parameter determination module 4554, and a control module 4555. These modules are logical and can be arbitrarily combined or further separated according to the functions implemented. The functions of each module will be described below.
[0057] In other embodiments, the robot control device provided in the embodiments of the present application can be implemented in hardware. As an example, the device provided in the embodiments of the present application can be a processor in the form of a hardware decoding processor, which is programmed to execute the robot control method provided in the embodiments of the present application. For example, the processor in the form of a hardware decoding processor can adopt one or more application-specific integrated circuits (ASICs), digital signal processors (DSPs), programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs) or other electronic components.
[0058] In some embodiments, the terminal or server can realize the robot control method provided by the embodiment of the present application by running various computer executable instructions or computer programs.For example, computer executable instructions can be commands, machine instructions or software instructions of microprogram level.The computer program can be a native program or software module in the operating system, can be a local (Native) application (Application, APP), that is, a program that needs to be installed in the operating system to run, or can be a small program that can be embedded in any APP, that is, a program that only needs to be downloaded to a browser environment and can be run.In short, the above-mentioned computer executable instructions can be instructions in any form, and the above-mentioned computer program can be an application, module or plug-in in any form.
[0059] The robot control methods provided in the various embodiments of the present application can be executed by an electronic device, wherein the electronic device can be a server or a terminal, that is, the robot control methods of the various embodiments of the present application can be executed by a server, or by a terminal, or by interaction between a server and a terminal, or the robot control method can also be executed by a robot. When the robot control method is executed by a robot, the robot is the robot to be controlled itself, and the robot controls each of its own joints to achieve motion control of the robot itself. In this case, the robot constitutes the electronic device of the embodiments of the present application.
[0060] Referring to FIG. 3 , FIG. 3 is a schematic flow chart of an optional robot control method provided in an embodiment of the present application. The steps shown in FIG. 3 will be described, and the robot control method is described as an example in which the execution subject is a server. The method includes the following steps S101 to S105:
[0061] Step S101, obtaining the current state parameters of the robot to be controlled at the current moment.
[0062] In the embodiment of the present application, the robot to be controlled is a robot that needs to be safely controlled to complete the intended task. According to different structures, the robot to be controlled may include at least fixed robots, mobile robots and multi-joint robots. Among them, a fixed robot refers to a robot installed in a fixed position, a robot used for repetitive tasks, such as a six-axis robotic arm, a welding robot, etc. A mobile robot refers to a robot that can move autonomously in an environment and has high flexibility. For example, an automated guided vehicle (AGV), a sweeping robot, etc. A multi-joint robot refers to a robot with multiple joints that can perform complex movements. For example, a surgical robot, a humanoid robot, etc. The robot to be controlled in the embodiment of the present application mainly includes moving wheels, a head, a torso, a waist and legs, and each two parts are connected and controlled by different joints.
[0063] The joints of a controlled robot are a core component in robot kinematics and dynamics. They connect different links, enabling the robot's motion and manipulation. The design and control of joints directly impact the robot's flexibility, precision, and range of motion. A joint is a mechanical component in a robot that connects two or more links, allowing relative motion between them. Joints can be revolute or prismatic, depending on their motion mode. Based on their motion mode, joints can be categorized into the following main types: revolute joints, prismatic joints, spherical joints, and universal joints. Revolute joints allow the links to rotate around a fixed axis; translation joints allow the links to move linearly in a fixed direction and are used in robots that require linear motion, such as telescopic arms, lifting platforms, etc.; spherical joints allow the links to rotate around a point with multiple degrees of freedom and are used in robots that require high flexibility, such as the wrists and ankles of humanoid robots; universal joints allow the links to rotate around two perpendicular axes and are used in robots that require high flexibility, such as the joints of robotic arms.
[0064] The kinematics and dynamics of joints are important concepts in robotics, used to describe and control the motion of robots. The kinematics of joints include forward kinematics and inverse kinematics. Forward kinematics refers to the calculation of the position and posture of the robot's end effector based on the joint angles. Inverse kinematics refers to the calculation of joint angles based on the target position and posture of the end effector. The dynamics technology of joints includes dynamic models and dynamic control strategies. The dynamic model is used to describe the relationship between forces and torques during robot motion, including inertial forces, gravity, friction, etc. The dynamic control strategy refers to achieving stable robot motion by controlling the torque and velocity of the joints.
[0065] Joint control is a crucial component of robotic control systems and encompasses at least the following control strategies: position control, velocity control, and force control. Position control involves controlling the angle or position of a joint to achieve precise motion. Velocity control involves controlling the speed of a joint to achieve smooth motion. Force control involves controlling the torque or force applied to a joint to enable interaction with the environment.
[0066] The current state parameters are a series of state parameters of each joint of the robot to be controlled during the movement process at the current moment, such as the robot's position, speed, acceleration, joint angle, joint speed, sensor data, rotation angle of the moving wheel, rotation angular velocity, rotation angular acceleration, joint torque, joint angle and joint angular velocity, etc.
[0067] When obtaining the current state parameters of the robot to be controlled at the current moment, you can first determine the type of state parameters that need to be obtained, and then obtain each type of state parameters in turn. The method of obtaining the state parameters depends on the hardware configuration and sensor type of the robot. For example, for the position and speed in the state parameters, the position of the robot to be controlled can be obtained through a position sensor (such as an encoder, a laser rangefinder, a visual sensor, etc.); the speed of the robot to be controlled can be obtained through a speed sensor (such as a gyroscope, a speedometer, etc.). For the force and torque in the state parameters, the force between the robot to be controlled and the environment can be obtained through a force sensor, and the torque of the joint can be measured through a torque sensor. Of course, you can also use a visual sensor, such as a camera for visual feedback, to obtain the position and posture of the robot, and a depth sensor to obtain three-dimensional information about the environment.
[0068] In some embodiments, the acquired state parameters need to be processed and fused to improve the accuracy and reliability of the data. The acquired state parameters can be processed by data processing methods such as data filtering and data synchronization. Among them, data filtering includes low-pass filtering (for removing high-frequency noise) and Kalman filtering (for fusing data from multiple sensors to improve estimation accuracy). For example, the accuracy of robot posture estimation can be improved by combining inertial measurement unit (IMU) and visual sensor data. Data synchronization can include timestamp synchronization (to ensure that data from different sensors are aligned in time) and data interpolation (for filling data sampling intervals). For example, sensor data can be synchronized by Network Time Protocol (NTP).
[0069] Step S102 : determining basic control parameters for each joint of the robot to be controlled based on a preset dynamic model and current state parameters.
[0070] In an embodiment of the present application, the preset dynamic model is a robot dynamic model obtained by modeling the robot dynamics using a robot dynamics modeling method. The robot dynamics model is a mathematical model that describes the motion and force relationship of the robot to be controlled. The robot dynamics model covers all joints, links and dynamic characteristics of the robot to be controlled. The robot dynamics model is used to predict and control the motion of the robot, including position, velocity and acceleration. It is a key part in robot control, motion planning and simulation. Robot dynamics describes the relationship between joint torque, dynamic parameters and joint motion. The robot dynamics modeling method may include at least one of the following: Newton-Euler method, Lagrange method, Kane method and operator algebra method.
[0071] In the robot dynamics model, joint torque is a key part of the dynamics model. Joint torque describes the torque required for each joint; the inertia matrix is a symmetric positive definite matrix that describes the inertia characteristics of the robot to be controlled. The inertia matrix depends on the joint angle; the Coriolis force and centrifugal force matrix describe the influence of joint velocity on joint torque; the gravity vector describes the influence of gravity on joint torque, and the gravity vector also depends on the joint angle; the external torque describes the influence of external force on joint torque.
[0072] In some embodiments, the basic control parameters include the joint torque of each joint and the torque of the rotating wheel. The determination of the basic control parameters of each joint can be completed by designing a feedback controller through a state regulator, for example, a linear quadratic regulator. The specific implementation process is: converting the preset dynamic model into a spatial state model, and by configuring the feedback matrix, converting the robot control system from an open-loop system to a closed-loop system, so that the closed-loop system reaches the desired system state. Finally, through the relationship between the feedback matrix and the basic control parameters, the basic control parameters for each joint of the robot to be controlled are calculated.
[0073] In other embodiments, the basic control parameters may also include parameters such as target position, velocity and acceleration. These parameters can be determined by the following steps: First, set the target position and velocity according to the task requirements. For example, if the task is to move the end effector of the robot to be controlled to a certain position, the target position can be the coordinates of the position, and the target velocity can be zero. Then, calculate the expected acceleration, which can be calculated by inverse dynamics. The goal of inverse dynamics is to calculate the acceleration required for each joint based on the target position and velocity, which can be calculated by a PID controller or other control strategies. Then, calculate the control input to obtain the basic control parameters, wherein the control input (such as joint torque) can be calculated by a PID controller.
[0074] It should be noted that after obtaining the basic control parameters, they can be directly sent to the motors of the robot to be controlled, thereby achieving robot control. However, due to the lack of full-body coordination during the robot control process, the basic control parameters must be further processed to achieve safe control of the robot.
[0075] Step S103 , performing parameter filtering processing on the basic control parameters to obtain safety control parameters for each joint of the robot to be controlled.
[0076] Parameter filtering is the process of optimizing the basic control parameters. The safety control parameters obtained after parameter filtering are the optimized control parameters. The purpose of parameter filtering is to reduce noise and interference in the basic control parameters and improve the stability and safety of the robot system. Parameter filtering can smooth the control signal and avoid control instability caused by rapid changes or abnormal values. The parameter filtering process can be completed by designing a safety controller, for example, a controller based on a control obstacle function. This safety controller is a method for controlling the safety of a robot system. It can limit the state of the robot system by defining a control obstacle function. When the state of the robot system approaches an unsafe area, the safety controller automatically adjusts the control strategy to ensure the safety of the robot system. The basic control parameters can be regarded as the original control strategy of the robot system before the safety controller is applied, and the safety control parameters for each joint of the robot to be controlled can be regarded as the control strategy of the safety controller obtained by solution.
[0077] In the embodiment of the present application, by performing parameter filtering processing on basic control parameters, an optimized control strategy of the robot system can be obtained, thereby improving the control stability of the robot system and ensuring the safety of the robot system.
[0078] Step S104 : determining the motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint.
[0079] In the embodiment of the present application, the motion control parameters of each joint refer to the variables to be determined by solving the whole-body dynamics model through a quadratic programming optimizer. The motion control parameters can be the optimized joint torque, contact force, joint acceleration, etc. Here, the quadratic programming optimizer is a tool or algorithm for solving quadratic programming (QP) problems. Quadratic programming is a special optimization problem. The objective function of quadratic programming is quadratic and the constraints can be linear. In robot control, the quadratic programming optimizer is used to optimize the control input so that the robot to be controlled achieves the optimal performance index while satisfying the dynamic constraints and kinematic constraints. In the embodiment of the present application, the whole-body control of the robot to be controlled can be achieved by calling the whole-body dynamics model of the robot to be controlled. Whole-body control is a multi-task control with different priorities. The safety control parameters of each joint are used as the input of the current task to obtain the task parameters of the expected operation space of the robot to be controlled, and then the task parameters of the expected operation space are substituted into the whole-body dynamics model of the robot to be controlled for solution, and finally the motion control parameters of each joint of the robot to be controlled are obtained.
[0080] Here, by combining the whole-body dynamics model of the robot to be controlled with the safety control theory, the motion control parameters of each joint optimized by the safety control theory are obtained, which facilitates the subsequent safe control of the robot to be controlled through the motion control parameters.
[0081] Step S105 : controlling each joint of the robot to be controlled at the current moment according to the motion control parameters of each joint.
[0082] In an embodiment of the present application, after obtaining the motion control parameters of each joint, the motion control parameters of each joint can be converted into a target control instruction for the corresponding joint, and the target control instruction can be sent to the control motor that controls the joint. The control motor can be used to control the corresponding joint of the robot to be controlled at the current moment, thereby obtaining the robot control result at the current moment. For example, when the motion control parameters are the joint angle, joint angular velocity, and joint torque of the robot's knee joint, the target control instruction can be the target joint angle control instruction, target joint angular velocity control instruction, and target joint torque control instruction for the robot's knee joint. The above target control instructions are sent to the knee joint control motor, and the knee joint control motor drives the knee joint of the robot to be controlled to move.
[0083] In this embodiment, the calculated motion control parameters are applied to the actuators (i.e., control motors) of each joint, and the motors are used to drive the joints to achieve the desired state. During the control process, the robot's state can be monitored in real time, and the control strategy can be adjusted based on the feedback to ensure control accuracy and stability.
[0084] The robot control method provided in the embodiment of the present application, after obtaining the current state parameters of the robot to be controlled at the current moment, determines the basic control parameters for each joint of the robot to be controlled based on a preset dynamic model and the current state parameters, and performs parameter filtering on the basic control parameters to obtain safety control parameters for each joint of the robot to be controlled. In this way, by performing parameter filtering on the basic control parameters of each joint of the robot to be controlled, it is possible to perform parameter screening on the original control parameters of the robot to be controlled, thereby converting the screened control parameters into control parameters applicable to the robot safety control theory. In this way, the control parameters are the control parameters optimized relative to the original control parameters of the robot, thereby enabling the robot to be controlled to be accurately and safely controlled through the optimized control parameters. In addition, the embodiment of the present application calls the whole-body dynamics model of the robot to be controlled, determines the motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint, and then controls the corresponding joint of the robot to be controlled at the current moment based on the motion control parameters of each joint. In this way, the safety control parameters of each joint of the robot to be controlled are used as the input of the whole-body dynamics model, and the motion control parameters of each joint are calculated in combination with the whole-body dynamics model. The motion control parameters of each joint are then used to achieve safe control of the joints of the robot to be controlled. In this way, the robot to be controlled can be simultaneously controlled by the motion control parameters of each joint of the robot to be controlled, which can improve the robustness of the robot control.
[0085] The following will describe the robot control method in the embodiment of the present application in conjunction with the interaction between the terminal and the server in the robot control system. It should be noted that the robot control method here is a robot control method implemented by the interaction between the terminal and the server, which is essentially the same as the robot control method executed by the server in the above embodiment. The only difference is that the embodiment of the present application also describes the actions performed by the terminal during the execution of the robot control method, and some steps can be executed by both the terminal and the server. Therefore, for the steps in this embodiment that are the same as those in the above embodiment but have different execution entities, this embodiment is only an illustrative description. During the implementation process, they can be executed by any execution entity, and the embodiment of the present application does not limit this.
[0086] FIG4 is another optional flow chart of the robot control method provided in an embodiment of the present application. As shown in FIG4 , the method includes the following steps S201 to S214:
[0087] Step S201: The terminal receives a robot control operation input by a user.
[0088] In an embodiment of the present application, the user can input robot control operations in the client of the robot control application. In the robot control application, a robot control function can be provided. The user (who can be a robot control designer and a robot user) can input robot control operations on the robot control function page to trigger a robot control request.
[0089] In some embodiments, when a user inputs a robot control operation, they may also simultaneously input the current state parameters of the robot to be controlled at the current moment. When the terminal receives the current state parameters of the robot to be controlled at the current moment, a confirmation robot control window will pop up on the robot control function page. After the terminal detects that the user has clicked the confirm robot control button, the current state parameters of the robot to be controlled at the current moment are further processed to determine the motion control parameters of the machine to be controlled. Alternatively, in other embodiments, the user may directly input the current state parameters of the robot to be controlled at the current moment on the robot control function page. When the terminal receives the current state parameters of the robot to be controlled at the current moment, it may directly trigger the robot control function, further process the current state parameters of the robot to be controlled at the current moment, determine the motion control parameters of the machine to be controlled, and achieve safe control of the robot to be controlled.
[0090] In one application scenario, the terminal can be implemented as a robot. Users can perform control operations through the robot. These control operations can include clicks, parameter input, voice control, and so on. Voice control is used as an example. The user can wake the robot using voice control commands and send the command "Please go to the kitchen and get me an apple." In response to the user's voice control command, the robot determines its current state parameters at the current moment, including: target location [kitchen]; target object [apple]; and time [now].
[0091] Step S202 : The terminal generates a robot control request in response to the robot control operation.
[0092] In embodiments of the present application, user-entered data can be encapsulated into a robot control request. For example, the display interface of the robot control application displays the current state parameters of the robot to be controlled at the current moment. The user can select or sample parameters based on actual needs, and then the user-entered current state parameters of the robot to be controlled at the current moment are encapsulated into the robot control request.
[0093] Step S203: The terminal sends a robot control request to the server.
[0094] In some embodiments, the terminal sends a packaged robot control request to the server, requesting the server to control the robot to be controlled. The robot control request can be sent using protocols such as HTTP or Web Socket. If the terminal is a robot, the terminal can request control of the robot itself. If the terminal is an electronic device other than a robot, the robot control request can also include the identifier of the robot to be controlled to clearly indicate the control target to the server.
[0095] Step S204: The server obtains the current state parameters of the robot to be controlled at the current moment in response to the robot control request.
[0096] In some embodiments, if the robot control request encapsulates the current state parameters at the current moment, the current state parameters can be directly parsed and obtained in response to the robot control request.
[0097] After receiving a robot control request, the server parses it. For example, for an HTTP request, the server can parse the request header and body. The server parses the request header to obtain relevant information about the request, and parses the request body to obtain the main body of the request, namely the current state parameters of the robot to be controlled at the current moment. The server parses the request body for specific fields or parameters containing the current state parameters of the robot to be controlled at the current moment, extracts a specific data format from the request body, such as JSON or XML, and then parses this data format to obtain the current state parameters of the robot to be controlled at the current moment.
[0098] In step S205 , the server converts the preset dynamic model into a state space model.
[0099] In the embodiment of the present application, the state space model is a mathematical model used to describe the dynamic behavior of the robot system. The dynamic characteristics of the robot system are characterized by state variables. The state space model reveals the internal connection of the robot system. The input variables cause changes in the state variables, and the changes in the state variables determine the changes in the output variables. The state space model mainly includes state equations and output equations. Among them, the state equation describes the change law of the robot system state variables over time; the output equation describes the relationship between the robot system output variables and the state variables and input variables. In the control process of the robot to be controlled, the state space model is used to describe the dynamic behavior of the robot to be controlled. Through the state equation and the output equation, a controller can be designed to achieve precise motion control of the robot to be controlled. For example, a state space model can be used to design a PID controller, an LQR controller or an MPC controller.
[0100] The main purpose of converting the preset dynamic model into a state space model is to simplify the equations of the preset dynamic model into In the form of, x represents the state variable, represents the derivative of the state variable, A and B are the simplified system matrices, and u is the control parameter of the state-space model to be solved. Converting the preset dynamic model to a state-space model facilitates the subsequent solution of the state-space model's input parameters, i.e., the basic control parameters for each joint of the robot to be controlled.
[0101] Step S206: The server calls the state regulator to determine the state feedback parameters for the robot to be controlled based on the state space model.
[0102] In the embodiments of the present application, the goal of the state regulator is to find a set of control parameters that minimize the variation of the control parameters while making the state variables sufficiently small so that the robot system reaches a stable state. The state regulator can be a linear quadratic regulator, and a feedback controller can be designed based on the state regulator to convert the state space model from an open-loop system to a closed-loop system. The feedback controller includes state feedback parameters, and the state feedback parameters for the robot to be controlled can be obtained by taking the minimum value of the quadratic objective function of the feedback controller.
[0103] Here, by controlling the closed-loop system through state feedback parameters, the robot system can achieve better control performance and at the same time achieve a stable state.
[0104] Step S207 : The server determines basic control parameters for each joint of the robot to be controlled based on the state feedback parameters and current state parameters of the robot to be controlled.
[0105] In the embodiment of the present application, when the state feedback parameters for the robot to be controlled are obtained, the state feedback parameters can be multiplied by the state variables in the current state parameters to obtain the basic control parameters for each joint of the robot to be controlled. In other words, for each joint of the robot to be controlled, the state variables of the joint in the current state parameters can be obtained, and then the product of the state feedback parameters and the state variables of the joint can be determined as the basic control parameters of the joint.
[0106] The state variables in the current state parameters may include at least one of the following: position variables, velocity variables, acceleration variables, force and torque variables, and other state variables. Position variables may include joint positions (e.g., the rotation angle or translation distance of each joint) and end-effector positions (i.e., the position coordinates of the end-effector of the robot to be controlled in space). Velocity variables may include joint velocities (i.e., the rotational or translational velocities of each joint) and end-effector velocities (i.e., the linear and angular velocities of the end-effector of the robot to be controlled in space). Acceleration variables may include joint accelerations (i.e., the rotational or translational accelerations of each joint) and end-effector accelerations (i.e., the linear and angular velocities of the end-effector of the robot to be controlled in space). Force and torque variables may include joint torques (i.e., the torques acting on each joint) and end-effector forces (i.e., the forces acting on the end-effector of the robot to be controlled). Other state variables may include battery charge (i.e., the battery charge of the robot to be controlled) and temperature (e.g., motor temperature, joint temperature, etc.). These state variables together constitute the state space of the robot to be controlled and serve as the basis for robot control and motion planning. By acquiring these state variables in real time, precise control and state monitoring of the robot to be controlled can be achieved.
[0107] In step S208 , the server constructs a control obstacle function based on preset control input parameters and basic control parameters.
[0108] In the embodiment of the present application, the preset control input parameters are predefined decision variables based on actual control requirements. The decision variables can be selected by the designer according to the appropriate values that best meet the control objectives of the robot system. The decision variables can be used to describe the system characteristics of the robot system. The control obstacle function includes a safety objective function and constraints. The control obstacle function introduces a safety objective function in the dynamic control process of the robot system and controls the actions of the robot to be controlled by optimizing the specified constraints to achieve a specific control objective. According to the safety objective function and the control objective of the robot system, the constraints applicable to the robot system are designed. The safety objective function includes preset control input parameters and basic control parameters. For example, the safety objective function can be defined as: the value of the variable when the square of the modulus of the difference between the preset control input parameter and the basic control parameter reaches the minimum value.
[0109] Here, the control obstacle function can be regarded as a safety controller. By constructing the control obstacle function, it is convenient to obtain the safety control strategy of the optimized safety controller through the safety objective function and constraints in the control obstacle function, that is, the safety control parameters of each joint, and realize the safety control of the robot to be controlled based on the safety control parameters.
[0110] In step S209 , the server determines, based on the constraint conditions, a safety control parameter for each joint of the robot to be controlled when the safety objective function reaches a minimum value.
[0111] In the embodiment of the present application, the safety control parameter of each joint is the value of the variable when the safety objective function is minimized under the constraints. The specific implementation process of determining the safety control parameter is as follows: first, the preset control input parameters and basic control parameters of each joint are substituted into the safety objective function to perform a modulus square calculation to obtain multiple modulus square values of each joint. Modulus square calculation refers to the operation of performing a modulus square on a complex number; then, the modulus square value with the smallest value in each joint is selected, the basic control parameter corresponding to the minimum modulus square value is determined, and the basic control parameter is determined as the safety control parameter of the corresponding joint.
[0112] In step S210 , the server determines the expected acceleration of each joint of the robot to be controlled based on the safety control parameters and current state parameters of each joint.
[0113] In this embodiment of the present application, the expected acceleration includes the expected acceleration of the support wheels of the robot to be controlled, the expected acceleration of the trunk in the vertical direction, the expected angular acceleration of the trunk, the expected acceleration of the swing wheels, and the expected acceleration of the center of mass. The safety control parameters and current state parameters of each joint are used as input parameters of the state observer. The state observer calculates the safety control parameters and current state parameters of each joint and outputs the expected acceleration of each joint of the robot to be controlled.
[0114] In some embodiments, the whole-body dynamic model of the robot to be controlled includes a state controller. A state observer is a tool for estimating the state of a system, and is particularly suitable for situations where all state variables cannot be directly measured. The state observer is used to reconstruct the internal state of the robot system based on the input and output of the robot system. The main function of the state observer is to provide a real-time estimate of the state of the robot system to help the robot better understand and adjust the system behavior. The state observer can be used for feedback control to improve the stability and performance of the robot system. Simply put, the state observer infers those state variables that cannot be directly measured through known inputs and outputs. The basic principle of the state observer is based on the mathematical model of the robot system. In a robot system, the state observer can be used to estimate the state of the robot, such as position, velocity, acceleration, and posture.
[0115] In robotic control tasks, a state observer can combine sensor data (such as joint angles and IMU data) to estimate the robot's state parameters. For example, in a robotic control task, a state observer can combine joint angles and IMU data to estimate the difference between the projection of the robot's center of mass (CoM) on the ground and the projection of the wheel centers on the ground. Based on this difference, the state observer can determine the expected acceleration of each joint of the robot to be controlled.
[0116] In some embodiments, a state observer can be implemented by designing an observer gain based on a mathematical model of the robotic system. State observer implementation methods include full-dimensional state observers and reduced-dimensional state observers. Full-dimensional state observers estimate all state variables and are suitable for situations where the system state is fully observable; reduced-dimensional state observers estimate some state variables and are suitable for situations where the system state is partially observable.
[0117] In some embodiments, the current state parameters include actual state variables, and the expected acceleration includes the center of mass expected acceleration. The determination of the center of mass expected acceleration can be achieved by calling a state observer to determine the following parameters based on the safety control parameters and current state parameters of each joint: a reference center of mass position of the robot to be controlled, a reference center of mass velocity, a reference distance between the reference center of mass position and the current virtual contact point, and a reference velocity corresponding to the reference distance; then, based on the reference distance, reference velocity, reference center of mass position, and reference center of mass velocity, a reference state variable is determined; then, a state regulator is called to determine the state feedback parameters of a pre-constructed inverted pendulum model; finally, based on the state feedback parameters of the pre-constructed inverted pendulum model, the reference state variables, and the actual state variables, the center of mass expected acceleration of each joint is determined.
[0118] In other words, assuming the mass of the robot to be controlled is concentrated at its center of mass, the center of the line connecting the two support wheels is set as the current virtual contact point between the inverted pendulum and the ground, and the center of mass and the current virtual contact point are connected to construct an inverted pendulum model for the robot to be controlled. A state observer is then called, and through heuristic or model-based methods, a reference center of mass position, reference center of mass velocity, reference distance between the reference center of mass position and the current virtual contact point, and a reference velocity corresponding to the reference distance of the robot's center of mass along the forward direction are calculated. The reference center of mass position, reference center of mass velocity, reference distance between the reference center of mass position and the current virtual contact point, and reference velocity corresponding to the reference distance are combined to form the reference state variables of the pre-constructed inverted pendulum model. A linear quadratic programming regulator is then used to calculate the state feedback parameters of the pre-constructed inverted pendulum model. The actual state variables correspond one-to-one to the parameters in the reference state variables, and the actual state variables are included in the pre-acquired current state parameters. By subtracting the reference state variable from the actual state variable to obtain the difference between the two, and then multiplying the state feedback parameter by the difference, the expected acceleration of the center of mass of each joint can be obtained.
[0119] Here, by determining the expected acceleration of the center of mass of each joint, it is possible to ensure the determination of the reference trajectory of the center of mass of the robot to be controlled and maintain the dynamic balance of the robot.
[0120] In step S211 , the server calls the whole-body dynamics model of the robot to be controlled, and determines the motion control parameters of each joint of the robot to be controlled based on the expected acceleration of each joint.
[0121] A robot's full-body dynamics model is a mathematical model that describes the robot's motion and force relationships, encompassing all of the robot's joints, linkages, and dynamic characteristics. The full-body dynamics model is primarily used to predict and control the robot's motion, including position, velocity, and acceleration. It plays a vital role in robot path planning, motion control, and dynamic simulation. The full-body dynamics model is primarily used for robot motion planning and control. By considering the robot's dynamic characteristics, the full-body dynamics model optimizes motion trajectories and ensures the robot's stability and accuracy in complex tasks. For example, in the planning and control of bipedal robots, the full-body dynamics model is used to generate trajectories for motions such as walking on flat ground, climbing stairs, and balance recovery.
[0122] In some embodiments, the whole-body dynamics model can be based on the Lagrange equations or the Newton-Euler equations, combined with the robot's geometric and dynamic parameters, to generate motion trajectories using a numerical solver. In other words, the whole-body dynamics model can use the dynamics equations to solve the motion control parameters for each joint of the robot to be controlled. For example, in a humanoid robot, the whole-body dynamics model can generate motion trajectories using the ALIGATOR solver.
[0123] It should be noted that the whole-body dynamics model in the embodiment of the present application includes a state observer and a dynamic equation for estimating the system state. The system state is estimated by the state observer to obtain the expected acceleration of each joint of the robot to be controlled; then, the dynamic equation of the whole-body dynamics model is used to predict the motion control parameters of each joint of the robot to be controlled, thereby controlling the robot motion.
[0124] In an embodiment of the present application, calling the whole-body dynamics model of the robot to be controlled and determining the motion control parameters of each joint of the robot to be controlled based on the expected acceleration of each joint can be achieved in the following way: first, calling the whole-body dynamics model and state regulator of the robot to be controlled, and constructing the corresponding objective function based on the expected acceleration of each joint; then, obtaining the preset parameter constraints for each joint of the robot to be controlled, and based on the parameter constraints, determining the minimum value of the objective function of each joint; finally, determining the motion control parameters of each joint of the robot to be controlled based on the minimum value.
[0125] In other words, the relationship between the desired acceleration, joint-space velocity, and joint-space acceleration of each joint is combined with the whole-body dynamics model of the robot to be controlled to obtain the robot's dynamic equations to be solved. Substituting the desired acceleration of each joint into the dynamic equations to be solved, the variables to be solved in the dynamic equations to be solved are obtained, namely, the motion control parameters of each joint of the robot to be controlled. Here, combining the relationship between the desired acceleration, joint-space velocity, and joint-space acceleration of each joint with the whole-body dynamics model of the robot to be controlled refers to combining multiple equations or relationships to form a complete system of equations, and then solving these equations simultaneously. In robot control, by combining the whole-body dynamics model, the relationship between joint-space velocity and acceleration, and the relationship between desired acceleration and actual acceleration, the control input for each joint can be obtained, thereby achieving precise control of the robot. During the solution process, constraints can also be added to the variables to be solved based on the robot's main structure and the physical limitations of the motors. In addition, in the process of solving the dynamic equations, a quadratic programming optimizer (for example, LQR) can be used to construct the objective function. Then, based on the above constraints, a suitable quadratic programming optimizer is selected to obtain the minimum value of the objective function, and the motion control parameters of each joint of the robot to be controlled can be obtained.
[0126] In step S212 , the server controls the corresponding joint of the robot to be controlled at the current moment based on the motion control parameters of each joint, and obtains the robot control result at the current moment.
[0127] In some embodiments, the control of the corresponding joints of the robot to be controlled at the current moment can also be achieved in the following way: first, construct safety constraints for the robot to be controlled; then, call the whole-body dynamics model of the robot to be controlled, and determine the first motion control parameters of each joint of the robot to be controlled based on the safety control parameters and safety constraints of each joint; finally, for each joint of the robot to be controlled, based on the first motion control parameters of the joint, control the corresponding joint of the robot to be controlled at the current moment.
[0128] Here, there are multiple safety constraints. In order to further ensure the safe control of the robot to be controlled, multiple control obstacle functions are additionally designed. In the process of solving the first motion control parameters of each joint, based on the multiple control obstacle functions, multiple safety constraints are added, so that the solved first motion control parameters of each joint are more suitable for the control objectives of the robot system, thereby achieving effective safe control of the robot to be controlled.
[0129] The safety control parameters of each joint include the safe rotation angle and the safe rotation angular velocity. The construction of multiple safety constraints for the robot to be controlled can be achieved in the following way: first, determine the safety control parameter range of the safe rotation angle and the safety control parameter range of the safe rotation angular velocity; then, based on the safety control parameter range of the safe rotation angle and the safety control parameter range of the safe rotation angular velocity, construct a control obstacle function; finally, call the preset dynamic model and determine the safety constraints for the robot to be controlled based on the control obstacle function.
[0130] Here, the number of control obstacle functions is also multiple, and the multiple control obstacle functions are determined according to the safety control parameter range of the safe rotation angle and the safety control parameter range of the safe rotation angular velocity in the safety control parameters. For example, assuming the safe rotation angle The safety control parameter range is between ±π / 4, and the safe rotation angular velocity The safety control parameter range is between ±π / 12, then the multiple control obstacle functions can be and
[0131] In some embodiments, calling a preset dynamic model and determining the safety constraints for the robot to be controlled based on multiple control obstacle functions can be achieved in the following way: first, converting the preset dynamic model into a first dynamic model, which can also be called a simplified dynamic model; then, based on the first dynamic model and the current state parameters, determining the first control parameter and the second control parameter; based on the first control parameter, the second control parameter and the control obstacle function, determining the first Lie derivative of the first control parameter and the second Lie derivative of the second control parameter; finally, based on the first Lie derivative, the second Lie derivative and the control obstacle function, determining the safety constraints.
[0132] Here, the first Lie derivative of the first control parameter includes the first-order Lie derivative and the second-order Lie derivative of the first control parameter, and the second Lie derivative of the second control parameter includes the first-order Lie derivative and the second-order Lie derivative of the second control parameter. Substituting the first and second Lie derivatives and multiple control barrier functions into the general constraint conditions can form multiple safety constraints.
[0133] In step S213, the server sends the robot control result at the current moment to the terminal.
[0134] In step S214, the terminal outputs the robot control result at the current moment.
[0135] In the embodiment of the present application, first, the preset dynamic model is converted into a state space model, and the state regulator is called to determine the state feedback parameters for the robot to be controlled. Then, the basic control parameters of each joint are determined by the state feedback parameters and the current state parameters. Then, based on the preset control input parameters and the basic control parameters, a control obstacle function is constructed, and the safety control parameters of each joint corresponding to the minimum value of the safety objective function are determined by the constraints in the control obstacle function. Finally, in the process of solving the motion control parameters of each joint, multiple safety constraints are added, and the first motion control parameters of each joint are obtained by solving, and the first motion control parameters are used to control the corresponding joint of the robot to be controlled at the current moment. In this way, the safety control parameters of each joint are all optimized parameters obtained by optimization. The safety control parameters are obtained by optimizing the basic control parameters of each joint of the robot to be controlled through the control obstacle function, and the safety control parameters are combined with multiple safety constraints to determine the first motion control parameters of each joint. In this way, in the case of strong external interference, the first motion control parameters can also be used to achieve effective safety control of the robot to be controlled, thereby improving the robustness of the robot system.
[0136] The following describes an exemplary application of the embodiments of the present application in a practical application scenario.
[0137] The present application provides a robot control method. The robot to be controlled in this method has the following characteristics: the centers of rotation of the hips of the two legs are in the same plane or coaxial; each leg can be independently extended and shortened; each leg has an independently driven wheel at the bottom; and the robot has multiple legs. The robot also includes a waist that can rotate in at least two directions, multiple free upper limbs and a head, with the upper limbs distributed on both sides of the torso. This robot is highly versatile and can be used in a variety of scenarios, including elderly care services, retail tallying, industrial manufacturing, and intelligent inspections.
[0138] As shown in Figure 5 , the robot primarily consists of the following components: wheels 501, legs (including inner legs 5021 and outer legs 5022), waist 503, torso 504, upper limbs 505, and head 506. Wheels 501 are mounted at the end of each leg, and each wheel 501 can be driven independently. Each leg can independently extend and retract along the extension and retraction directions 507 shown in Figure 5 . The two inner legs can rotate around the hip rotation center 508 and maintain a coordinated relationship. The two outer legs can also rotate around the hip rotation center 508 and maintain a coordinated relationship. The two hip rotation centers 508 of the inner leg 5021 and the outer leg 5022 are independently driven, but within the same vertical plane 601. As shown in Figure 6 , one design shows that the two hip rotation centers of the inner leg 5021 and the outer leg 5022 are coaxial. The upper ends of the legs are connected to the robot's waist, which has two rotation centers: a pitch rotation center 509, which enables the torso to pitch and roll, and a roll rotation center (shown as roll rotation 701 in Figure 7). Roll rotation center 701 and pitch rotation center 509 are designed in series and located above pitch rotation center 509, connecting to the robot's torso. At the upper end of the robot's torso, connecting the head and torso, are two upper limbs with multiple degrees of freedom. In some designs, the ends of these upper limbs can also be connected to grippers.
[0139] When moving on flat ground, the robot can maintain the four-wheel mode as shown in Figure 7, or it can rotate via the side-swing rotation center 701 at the hip to form a two-wheel dynamic and smooth motion mode as shown in Figure 8. In the four-wheel motion mode, the robot is always in a stable state (not falling), making it easier for the upper limbs to follow the operator's instructions and perform some operational tasks. At the same time, when moving on flat ground, switching from four wheels to two-wheel mode can reduce the footprint and match the bipedal humanoid robot. When moving on uneven ground, such as typical steps or stairs, the robot can use the two-wheel alternating mode as shown in Figure 9 to dynamically traverse obstacles.
[0140] Based on the robot body described above, a block diagram of a robot control system constructed in accordance with an embodiment of the present application is shown in FIG10 . The rightmost image 1001 represents the robot body. The robot's four wheels are independently driven by four rotary motors, while the lengths of its four legs are independently driven by four linear motors. The four legs can be divided into two inner-linked legs and two outer-linked legs, with the two inner-linked legs driven by the same rotary motor, and the two outer-linked legs driven by the same rotary motor. Furthermore, each joint in the robot's waist and upper body is driven by a rotary motor. All of the rotary motors described above can receive rotation angle commands, rotation speed commands, and rotation torque commands. The underlying drive board of the rotary motor responds to these commands and drives the rotary motor to rotate. All of the linear motors described above can receive linear position commands, linear speed commands, and driving force commands. The underlying drive board of the linear motor drives the motor to move linearly based on these commands. The rotation and movement of the rotary and linear motors change the robot's posture and position in three-dimensional space, thereby enabling control of the robot. Rapidly changing joint angles are used to instruct the robot to cooperate, and can also cause highly dynamic changes in the robot's posture and change the contact between the robot and the environment.
[0141] The robot's state can be determined by various sensors installed on the robot. For example, inertial sensors can be used to determine the robot's current posture; motor encoders can be used to determine the rotational and movement position and speed of each joint in the robot's current state; force sensors and torque sensors can be used to determine the magnitude and direction of the force and torque acting on the joint at the moment; tactile sensors can be used to determine the pressure on the robot's soles, body surface, hands, and even fingertips, and how it changes over time; and visual sensors such as cameras can be used to identify obstacles within the robot's field of view and indirectly determine its own state.
[0142] The State Estimation module 1002 is responsible for fusing the various posture and state information acquired by the robot. For example, the robot's current posture obtained through inertial sensors, mileage information obtained through wheel rotation, and visual positioning information are integrated to obtain a relatively accurate and reliable position of the robot in the world coordinate system. The robot's contact with the external environment can be obtained through force sensors / torque sensors and tactile sensors. The robot's current posture obtained through inertial sensors and the angle information of each motor joint encoder are integrated, and the fusion result is combined with the robot's own model parameters to estimate the robot's center of mass position. This fused robot state information will be used as feedback for the robot's motion generation, planning, and control.
[0143] The module on the left side of Figure 10 is the Motion Generation module 1003. Depending on the state of the robot's motion, Motion Generation module 1003 employs different motion generation strategies. The robot's operating modes include, but are not limited to, four-wheel motion mode, two-wheel motion mode, four-wheel to two-wheel conversion mode, stair climbing mode, four-wheel active suspension mode, and folding mode. Given the complexity of the upper body, which can be used to accomplish a variety of tasks, the robot can incorporate many more motion modes, which are not listed here.
[0144] Different modes utilize different methods for motion generation. These modes utilize common basic technologies and algorithmic modules. These modules are listed in the leftmost column of Figure 10 and include, but are not limited to, model-free controllers 1003a and model-based controllers 1003b (e.g., LQR, model predictive control (MPC), adaptive controllers, and robust controllers). For example, in the two-wheel mode, wheel balance control is required. A model-free proportional-integral-derivative (PID) controller can be used to generate reference trajectories for the wheels and the robot's center of mass. The specific method can utilize one or more of model-free control, model-based control (e.g., LQR, model predictive control (MPC), adaptive controllers, and robust controllers. Similar control modules are also required for the two-wheel control phase in the four-wheel-to-two-wheel mode. In the four-wheel mode, if the wheel leg extending forward and the wheel leg extending backward are equated, the dynamics of the equivalent wheel leg and upper body can be described using a first-order or second-order inverted pendulum. This component can also utilize the aforementioned modules for balance control. The resulting control trajectory can maintain the robot's balance in the four-wheel state. If the road surface is uneven, with potholes or obstacles, the actions generated by the controller can keep the robot's upper body relatively stable. This is also a way to implement the four-wheel active suspension function.
[0145] What the action generation module 1003 obtains is the task information of a series of robots, these include but are not limited to: the task of center of mass, the task of supporting legs, the task of swinging legs and the task of waist etc.Equally, considering the complexity of the upper body, can be used for completing multiple actions and tasks, the tasks that the robot can comprise are also more, and we will not list them one by one here for the time being.These tasks are as the input of whole body motion control module 1004.In whole body motion control module 1004, can carry out detailed modeling and calibration to the robot, and use the dynamic model of the robot and the external force situation as the constraint condition of optimization, calculate the target joint angle instruction, target joint angular velocity instruction and target joint torque instruction of each joint of the robot through optimization process.Finally, the target joint angle instruction, target joint angular velocity instruction and target joint torque instruction of each joint can be sent to each joint driver of the robot, completes the robot control closed loop.
[0146] Here, before introducing the steps of the balance control method provided by the embodiment of the present application, the method for establishing the dynamic model corresponding to the balance control method provided by the embodiment of the present application is first introduced. Referring to Figure 11, Figure 11 shows a schematic diagram of a second-order inverted pendulum provided by an embodiment of the present application. To implement the balance control method of the wheel-legged robot, it is necessary to model the dynamics of the wheel-legged robot and obtain the dynamic model of the wheel-legged robot during the balance control process. For the sake of clarity, simplicity, and ease of understanding, it is assumed that the length of at least one leg mechanism included in the wheel-legged robot is equal, the angle between at least one leg mechanism and the ground is equal, and the rotation speed and position of each moving wheel are the same. With the forward direction of the wheel-legged robot as the positive direction of the x-axis, the rightward movement direction as the positive direction of the y-axis, and the upward direction perpendicular to the contact surface as the positive direction of the z-axis, a world coordinate system is established. When observing the wheel-legged robot from the y-axis direction, it will be observed that at least one leg mechanism of the wheel-legged robot overlaps. The at least one leg mechanism can be an outer leg mechanism of the wheel-legged robot or all leg mechanisms of the wheel-legged robot.
[0147] Exemplarily, the length changes of the four leg mechanisms of the wheel-legged robot are synchronized, and the angles between the four leg mechanisms and the base of the wheel-legged robot are synchronized. Observed from the direction corresponding to the y-axis, the four leg mechanisms overlap, and the four moving wheels also overlap. In this case, the abstract two-dimensional model of the wheel-legged robot on the yoz plane of the world coordinate system is shown in Figure 11. This two-dimensional model belongs to a second-order inverted pendulum model, which includes: a moving wheel, a link B (corresponding to at least one moving leg of the wheel-legged robot) and a link P (corresponding to the torso mechanism of the wheel-legged robot). As shown in Figure 11, in the two-dimensional model, the direction in which the moving wheel rotates to the left of the contact surface is taken as the positive direction, the travel distance is x, and the angle that the moving wheel rotates relative to the world coordinate system is defined as The positive direction of the moving wheel rotation angle is defined as counterclockwise. The angle α, which is the rotation angle of the link B formed by the four leg mechanisms relative to the world coordinate system, is defined as α, with the counterclockwise direction being positive. The angle β, which is the rotation angle of the link P corresponding to the torso mechanism relative to the world coordinate system, is defined as β, with the counterclockwise direction being the positive direction of the moving wheel rotation angle.
[0148] definition They are The time derivatives of α and β; Indicates the rotation speed of the moving wheel (also called the angle of the moving wheel), represents the angular velocity of the leg mechanism, Represents the angular velocity of the torso mechanism; definition They are The second-order derivatives of α and β with respect to time; represents the angular acceleration of the moving wheel, represents the angular acceleration of the leg mechanism, Represents the angular acceleration of the trunk mechanism. The rotation angle of the moving wheel relative to the world coordinate system is driven by the joint motor on the first joint. The rotational torque of the first joint is represented by τ1, and the clockwise direction is regarded as the positive direction of the rotational torque of the first joint. The rotation angle of the trunk mechanism relative to the world coordinate system is driven by the joint motor of the second joint. The rotational torque of the second joint is represented by τ2, and the counterclockwise direction is regarded as the positive direction of the rotational torque of the second joint. The masses of the moving wheel, the connecting rod B (equivalent to at least one overlapping leg mechanism) and the connecting rod P (equivalent to the trunk mechanism) are respectively represented as m W , m B , m P The moment of inertia of the moving wheel, connecting rod B and connecting rod P are expressed as: J W , J B , J P The radius of the moving wheel is represented by r, and the length of the connecting rod B is represented by L. B The length of the line from the intersection of connecting rod B and the moving wheel to the geometric center of connecting rod B is represented by l B The length of the line from the intersection of connecting rod B and the wheel to the geometric center of connecting rod P is represented by l P express.
[0149] Based on the definition of the above physical quantities, first, the total kinetic energy T of the moving wheel is derived respectively. W , the total kinetic energy T of connecting rod B B and the total kinetic energy T of the connecting rod P P The total kinetic energy T of the wheel-legged robot is obtained by the expression of W , the total kinetic energy T of connecting rod B B and the total kinetic energy T of the connecting rod P P The kinetic energy calculation includes both translational kinetic energy and rotational kinetic energy. The total kinetic energy of the moving wheel is T W , the total kinetic energy T of connecting rod B B and the total kinetic energy T of the connecting rod P P The expressions of are shown in formulas (1)-(4). T=T W +T B +T P (4)
[0150] Then, the total kinetic energy T of the robot system is calculated for each degree of freedom (α, β, ), and the partial derivative of each degree of freedom is calculated respectively, and the results of the partial derivative of each degree of freedom are respectively derived with respect to time. The specific process is shown in formula (5).
[0151] Then, calculate the total potential energy U of the system. The calculation expression of the total potential energy U of the system is shown in formula (6). U=gm P (l P cos(α+β)+L B cosα)+gl B m B cosα (6)
[0152] It should be noted that in the above formula (6), the plane where the moving wheel is located is regarded as the zero potential energy surface, that is, the potential energy of the moving wheel is considered to be 0. The potential energy of the moving wheel does not appear in the formula of the above system total potential energy U. Of course, other potential energy surfaces can also be selected. This will not affect the implementation of the balance control method. The embodiment of the present application does not limit the potential energy surface used in the process of calculating the total potential energy of the system.
[0153] After that, the total potential energy U of the system is calculated and the partial derivatives are taken for each degree of freedom in the generalized coordinates. Then, using the above formulas (1) to (6), based on the Euler-Lagrange equation, the dynamic equations of the wheeled-legged robot under the second-order inverted pendulum model can be derived, such as the following formulas (7) to (9):
[0154] The dynamic equations can be written in polynomial form, such as the following formulas (10) and (11):
[0155] Among them, M(α,β) is a 3*3 inertia matrix; for example, it can include Each element in M(α,β) It is the elements in the inertia matrix, which are used to characterize the mass and moment of inertia of the joint rigid bodies that make up the wheel-legged robot when the deflection angle of the leg mechanism is α and the deflection angle of the trunk mechanism is β, as well as the equivalent inertial physical quantities of each mechanism under the mutual influence. The deflection force matrix is a 3*1 deflection force matrix, which can also be called a deflection force vector. For example, it can include: It is used to characterize the Coriolis force and centripetal force on each mechanism of the wheel-legged robot; G(α,β) represents the 3*1 gravity matrix, which can also be called the gravity vector, for example, it can include [0 g α g β ] T .
[0156] After the matrix form of the dynamic equation is derived through the above process, the subsequent balance control process can directly use the matrix form of the dynamic equation without repeating the above derivation process in the balance control process. Below, the various steps of the balance control method are introduced and explained through the embodiments of the present application.
[0157] First, the state quantity of the wheel-legged robot at the first moment is obtained, and the state quantity at the first moment is used to characterize the motion state of the wheel-legged robot at the first moment.
[0158] In some embodiments, the first moment is any moment in the movement process of the wheel-legged robot (for example, it can be the current moment described in the above embodiment). At the first moment, at least one leg mechanism of the wheel-legged robot is equal to the angle perpendicular to the contact surface direction, the rotation angular velocity of the moving wheels corresponding to each leg mechanism is equal, the rotation angle of at least one first joint for connecting the leg mechanism and the moving wheel is equal, and the rotation angular velocity of at least one first joint is equal. That is, when observing from the side of the wheel-legged robot, at least one leg mechanism overlaps together, and at least one moving wheel overlaps together. It should be noted that this balance control method is implemented on the basis of abstracting the wheel-legged robot as a second-order inverted pendulum model.
[0159] In some embodiments, the state quantity (i.e., the current state parameter) is used to describe the motion state of the wheel-legged robot at a first moment. Based on the state quantity at the first moment, the posture and motion speed of the wheel-legged robot at the first moment can be determined. The state quantity at the first moment is obtained by observing the motion state of the wheel-legged robot using sensors on the wheel-legged robot.
[0160] For example, the state quantity at the first moment includes at least one of the following: the deflection angle α of the leg mechanism, the deflection angle β of the trunk mechanism, the angular velocity of the moving wheel Angular velocity of the leg mechanism and the angular velocity of the trunk
[0161] The physical quantities included in the state quantity are observed in the world coordinate system; among them, the deflection angle α of the leg mechanism refers to the deflection angle of the leg mechanism relative to the z-axis in the world coordinate system, the deflection angle β of the trunk mechanism refers to the deflection angle of the trunk mechanism relative to the z-axis in the world coordinate system, and the angular velocity of the moving wheel It refers to the rotation speed of the moving wheel in the x-axis direction in the world coordinate system. The angular velocity α of the leg mechanism is used to represent the deflection angle change speed of the leg mechanism. The angular velocity of the trunk mechanism is Used to characterize the speed of change of the deflection angle of the leg-torso mechanism.
[0162] It should be noted that the physical quantities in the state quantity can also be determined by the relative positions between the various mechanisms of the wheel-legged robot. For example, the deflection angle α of the leg mechanism refers to the deflection angle of the leg mechanism relative to the z-axis in the world coordinate system, and the deflection angle β′ of the trunk mechanism refers to the deflection angle of the trunk mechanism relative to the leg mechanism, that is, β=α+β′ (β′ has the same positive direction as β). The observation coordinate system corresponding to each physical quantity in the state quantity can be determined according to actual needs, and this application does not limit it here.
[0163] The physical quantities in each formula in the embodiments of the present application are obtained based on observations in the world coordinate system. Of course, the physical quantities determined using other observation coordinate systems can also realize the present balance control method. The relevant formulas can be obtained by making equal substitutions based on the formulas provided in the embodiments of the present application, and will not be mentioned again in the text.
[0164] Since in the second-order inverted pendulum model, the leg mechanisms are assumed to overlap by default, the deflection speed and angular velocity of at least one leg mechanism are the same, and the rotation speed of at least one moving wheel is also the same.
[0165] For example, the state variables are the deflection angle α of the leg mechanism, the deflection angle β of the trunk mechanism, the angular velocity of the moving wheel, and the Angular velocity of the leg mechanism and the angular velocity of the trunk The state quantity can be represented by the symbol ξ, which can be expressed as:
[0166] In this case, the state quantity of the wheel-legged robot at the first moment is obtained, including: determining the deflection angle α of the leg mechanism and the deflection angle β of the trunk mechanism through the inertial sensor and the motor encoder; determining the angular velocity of the moving wheel through the motor encoder Angular velocity of the leg mechanism and the angular velocity of the trunk
[0167] In the embodiments of the present application, the clock periods of the inertial sensors and motor encoders in the wheel-legged robot are the same, or the clock periods of the inertial sensors and motor encoders in the wheel-legged robot are multiples of each other. This ensures that each physical quantity included in the state quantity is a physical quantity at the first moment. For details about the inertial encoders and motor encoders, please refer to the above description and will not be repeated here.
[0168] After obtaining the state quantity of the wheel-legged robot at a first moment, which is used to characterize the motion state of the wheel-legged robot at the first moment, dynamic controller parameters can be determined based on the dynamic equation of the wheel-legged robot and the state quantity at the first moment. The dynamic controller parameters are used to define the mapping relationship between the angular acceleration at the first moment and the rotational torque at the second moment. The angular acceleration at the first moment includes: the angular acceleration of the trunk mechanism, the angular acceleration of at least one leg mechanism, and the angular acceleration of the moving wheel; the rotational torque at the second moment includes: the rotational torque of the first joint and the rotational torque of the second joint.
[0169] In some embodiments, the angular acceleration at the first moment refers to the rotational acceleration of each mechanism of the wheel-legged robot after being abstracted into a second-order inverted pendulum model (which can also be understood as the angular acceleration of the joint motor). The angular acceleration at the first moment includes: the angular acceleration of the moving wheel Angular acceleration of the leg mechanism and the angular acceleration of the trunk
[0170] As can be seen from the above, by abstracting the wheel-legged robot into a second-order inverted pendulum model, we can obtain the matrix-formed dynamic equations. The following describes the process of determining the parameters of the dynamic controller through several examples. Each step of this process can be performed by the aforementioned electronic device.
[0171] In the above embodiment, determining the dynamic controller parameters based on the wheel-legged robot's dynamic equations and state quantities at a first moment can include the following steps: First, substituting the state quantities at the first moment into the dynamic equations, the inertia matrix, deflector matrix, and gravity matrix at the first moment are determined using the dynamic equations. The inertia matrix is used to represent the mass and moment of inertia of the joint rigid bodies that make up the wheel-legged robot at the first moment; the deflector matrix is used to represent the deflector force of the wheel-legged robot at the first moment; and the gravity matrix is used to represent the gravity of the wheel-legged robot at the first moment. Then, the dynamic controller parameters are determined based on the inertia matrix, deflector matrix, and gravity matrix.
[0172] The inertia matrix is used to characterize the inertia of each joint rigid body (including the first joint and the second joint) of the wheel-legged robot in the posture at the first moment. The inertia matrix includes mass and moment of inertia. The inertia matrix can be calculated according to the dynamic equation. When the wheel-legged robot is abstracted into a second-order inverted pendulum model, the inertia matrix is a 3*3 matrix. The deflection force matrix is used to characterize the Coriolis force and centripetal force exerted on each mechanism. Exemplarily, the deflection force matrix includes the deflection force caused by the deflection angle of the moving wheel, the deflection force caused by the deflection angle of the leg mechanism, and the deflection force caused by the deflection angle of the trunk mechanism. The gravity matrix is used to characterize the gravity exerted on each mechanism. Optionally, the gravity matrix may include the gravity exerted on the moving wheel, the gravity exerted on the leg structure, and the gravity exerted on the trunk mechanism. In the embodiments of the present application, it is assumed that the moving wheel (such as the moving wheel of the outer leg mechanism) is always in contact with the contact surface. During the balance control process, the gravity acting on the moving wheel due to its own mass remains unchanged. The plane where the center of mass of the moving wheel is located is used as the zero potential energy surface, and the gravity acting on the moving wheel is zero, thereby reducing the computational overhead of the balance control process. For details about the inertia matrix, deflection force matrix, and gravity matrix, please refer to the above introduction and will not be repeated here.
[0173] The expressions for each element in the aforementioned inertia matrix, deviatoric force matrix, and gravity matrix are also pre-derived from dynamic formulas. After determining the state at the first moment, the specific values of each element in the inertia matrix, deviatoric force matrix, and gravity matrix at the first moment can be calculated using pre-defined formulas, thereby obtaining the inertia matrix, deviatoric force matrix, and gravity matrix at the first moment.
[0174] In some embodiments, the dynamic controller parameters include: a proportional parameter matrix and an offset parameter matrix, the proportional parameter matrix is used to characterize the proportional relationship between the angular acceleration and the torque at the first moment, and the offset parameter matrix is used to characterize the offset relationship between the angular acceleration and the torque at the first moment. The offset parameter matrix can be calculated based on the inertia matrix, the deflection force matrix and the gravity matrix by a robust controller; and then the proportional parameter matrix is calculated based on the inertia matrix. The robust controller here is a controller designed to ensure that the robot system can maintain stability and performance when facing various uncertainties and interferences. The robust controller can adapt to changes in robot system parameters, external disturbances and model errors, thereby ensuring that the robot system can operate reliably under different conditions.
[0175] Determining the dynamic controller parameters based on the inertia matrix, deflector matrix, and gravity matrix in the above steps also includes the following steps: First, using a selection matrix, the product of the inverse inertia matrix and the deflector matrix, and the product of the inverse inertia matrix and the gravity matrix are transformed to obtain an offset parameter matrix. The selection matrix here is used to extract the rotational torque of the first joint and the rotational torque of the second joint from the dynamic equation. Then, the selection matrix is used to process the inverse inertia matrix to obtain a scale parameter matrix.
[0176] Following the content of the above embodiment regarding the steps of determining the parameters of the dynamic controller according to the dynamic equation of the wheel-legged robot and the state quantity at the first moment, the two steps of determining the parameters of the dynamic controller are introduced and explained: First, the matrix-form dynamic equation can be partially feedback linearized, that is, the product between the inverse matrix of the inertia matrix and the deflection force matrix, and the product between the inverse matrix of the inertia matrix and the gravity matrix are respectively subjected to matrix conversion processing to obtain the offset parameter matrix as shown in formula (12):
[0177] Among them, M -1 (α, β) is the inverse matrix of the inertia matrix, M -1 (α, β)*M(α, β)=E, where E is the unit matrix. The physical meanings of other parameters in the equation can be found in the above embodiment and will not be elaborated here.
[0178] In some embodiments, in order to make only τ1 and τ2 appear in formula (12), simplify the execution logic of subsequent steps, and reduce the calculation amount of the robust controller, the above formula (12) needs to be further adjusted during the design process of the robust controller. The selection matrix is used to process formula (12), that is, the inverse matrix of the inertia matrix is processed using the selection matrix to obtain the proportional parameter matrix as shown in formula (13):
[0179] in, This is the offset parameter matrix f[] mentioned above, That is the scale parameter matrix g[], S T is the transposed matrix of matrix S, where S is a 3*2 selection matrix.
[0180] It should be noted that formula (13) can be pre-designed after the wheel-legged robot is abstracted as a second-order inverted pendulum model. During the balance control method, after obtaining the state quantity at the first moment, the proportional parameter matrix and the offset parameter matrix can be calculated by the robust controller according to formula (13) and formulas (7) to (11).
[0181] In some embodiments, the dynamic equation of the above-mentioned robot is derived based on the Euler-Lagrange equation on the basis of abstracting the wheel-legged robot into a second-order inverted pendulum model. For the derivation process of the dynamic equation, please refer to the above embodiment and will not be repeated here.
[0182] Below, the design principle of the controller with a control obstacle function provided in the embodiment of the present application is explained. In the embodiment of the present application, the controller with a control obstacle function can be combined with a simplified model control, and the above-mentioned dynamic model can be written as a state space representation, as shown in formula (14).
[0183] Among them, 0 3×3 is a 3×3 dimensional zero matrix, I 3×3 is a 3×3 dimensional identity matrix, A 21 and A 22 Represent two different system matrices respectively.
[0184] Based on this spatial state representation, a feedback controller can be designed using a linear quadratic regulator. The controller expression is shown in formula (15). u=-Kx (15)
[0185] Where u is the original control strategy before applying the safety controller, K is the feedback matrix, and x is the state variable used for the feedback controller.
[0186] The schematic flow diagram of the robot system control is shown in Figure 12. The safety controller 1202 acts as a filter between the linear quadratic regulator (LQR) / proportional-integral-differential controller (PID) 1201 and the actual robot system. A state observer 1203 is connected after the safety controller 1202, and the robot 1205 is fully controlled using the output parameters of the state observer 1203. During the full-body control of the robot, the robot cycle is also state estimated 1204 to obtain the state parameter x. Thus, through the series of control cycles in Figure 12, the safe and stable motion of the robot can be guaranteed. In this embodiment of the present application, the expression of the safety controller is shown in Formula (16). sL f h(x)+L g h(x)u≥-α(h(x)) (16)
[0187] Where u(x) is the control strategy of the safety controller obtained by solving, that is, the objective function, v represents the decision variable, which belongs to the m-dimensional real number set, argmin represents the variable value when the objective function u(x) takes the minimum value, h(x) represents the safety boundary function, which can also be called the control obstacle function, L f h(x) and Lg h(x) represents two different first-order Lie derivatives, and α represents a K-type function.
[0188] Next, there are two options. Option 1 is robot control based on a simplified model. Since the original control strategy u obtained by formula (16) is directly the torque of the wheel and the torque of the hip joint, the torque is sent directly to the robot to achieve robot control. The other joints of the robot can be controlled according to the planned trajectory, or other options can be used, which will not be discussed in detail here. The advantage of this method is that the control is relatively stable and is not affected by other joints. Option 2 is to use the results of the simplified model as a reference for whole-body dynamic control, and input the control strategy u(x) of the safety controller obtained from the above solution into the state observer. At the same time, the input of the state observer also includes the joint angle and inertial position posture at the current moment. Combined with this information, the state observer can obtain the reference value of the difference between the projection of the robot CoM on the ground and the projection of the wheel center on the ground at the next moment, that is, Δx in formula (23) r , and the reference value of the speed of the difference between the projection of the robot CoM on the ground and the projection of the wheel center on the ground, that is, This achieves the combination of simplified model control and whole-body dynamics control.
[0189] In the embodiment of the present application, the method for establishing and controlling the whole-body dynamics model of the robot includes the following steps:
[0190] First, a full-body dynamics model is established. Based on rigid body dynamics, the robot dynamics model in the joint space system can be constructed as follows (17):
[0191] in, represents the joint space inertia matrix; represents the joint space offset force vector, which is the sum of Coriolis force, centrifugal force and gravity; represents the selection matrix; represents the contact point Jacobian matrix; represents the active joint torque vector; represents the contact force vector; N represents the generalized position, generalized velocity and generalized acceleration vectors respectively. G Represents the total degree of freedom of the robot, that is, the floating basis degree of freedom N F and the active joint degrees of freedom N J sum; N C Represents the number of contact forces, that is, the number of contact points n C With the dimension N of a single contact force D ∈{0,1,2,3}.
[0192] After establishing the whole-body dynamics model, the expected operation space task is calculated. Here, the operation space task refers to the acceleration in the operation space. The expected operation space task is the expected acceleration calculated by the feedback controller based on the reference trajectory and the actual state of the robot
[0193] For example, the operational space tasks of dynamic stair climbing may include, but are not limited to, the following: a support wheel task, a trunk vertical direction task, a trunk posture task, a swing wheel task, and a center of mass task.
[0194] For the support wheel task: the support wheel is expected to be in pure rolling motion without relative sliding with the ground. Therefore, the expected acceleration of the support wheel is always zero, see the following formula (18):
[0195] in, is the expected acceleration of the support wheel, Indicates N C ×1-dimensional zero matrix.
[0196] If the robot operates in four-wheel mode, it has four support wheels, each with a task in the x-direction. If the wheels are assumed to be attached to the ground, the z-direction height of the wheels is constant, and the four support wheels' tasks in the z-direction are not considered for now. If the robot's left and right turns and translational motion in the y-direction are not considered in four-wheel mode, the four support wheels' tasks in the y-direction can also be ignored for now.
[0197] If the robot is operating in two-wheel balancing mode, it has two support wheels and two swing wheels. For now, we'll ignore the support wheel tasks because, to ensure two-wheel balancing, these tasks are already included in the "center of mass task." The two swing wheels' tasks also cover both the x- and z-dimensions. Similarly, if we don't consider the robot's left and right turns and translational motion along the y-direction in two-wheel balancing mode, we can also ignore the two swing wheels' y-direction tasks. Detailed task construction details are included in the "swing wheel task."
[0198] For the task of the trunk vertical direction: Based on the height information of the stair surface and the position of the support wheel on the stairs, the vertical reference position of the trunk can be planned by the spline curve interpolation method. speed and acceleration Based on inertia, joint angles and angular velocity information, the actual vertical position of the torso can be calculated through forward kinematics and speed In order to improve the robustness of the controller, a PD feedback controller can be constructed to calculate the desired acceleration of the trunk in the vertical direction, as shown in the following formula (19):
[0199] in, is the expected acceleration of the trunk in the vertical direction, k p,base Indicates the proportional coefficient of the trunk in the vertical direction, k d,base Represents the differential coefficient of the torso in the vertical direction.
[0200] For the trunk posture task: When climbing stairs, the robot's trunk should be kept vertical as much as possible and should not rotate on the stairs. That is, the Euler angle reference trajectory composed of the trunk's roll, pitch, and yaw should all be zero, that is, At the same time, based on the inertial information, the actual Euler angle can be calculated Angular velocity and angular acceleration The PD controller can also be used to calculate the desired angular acceleration of the trunk, see the following formula (20):
[0201] in, is the desired angular acceleration of the trunk, k p,euler The scale factor representing the torso posture, k d,euler Differentiation coefficient representing the torso posture.
[0202] For the swing wheel task: It is suitable for scenarios where the two swing wheels are in motion during a two-wheel balance. For example, when the two-wheel balance is moving on the ground, the two swing wheels are required to present specific postures and movements, or when the two wheels are moving forward on the ground, the supporting wheel leg and the swing wheel leg are switched, or when walking up or down stairs, the supporting wheel leg and the swing wheel leg are switched.
[0203] The reference position of the swing wheel in the operating space can be planned by spline curve interpolation method speed and acceleration Based on inertia, joint angle and angular velocity information, the actual position of the swing wheel can be calculated through forward kinematics and speed The desired acceleration of the swing wheel is also calculated using the PD feedback controller, see the following formula (21):
[0204] in, is the desired acceleration of the swing wheel, k p,swing represents the proportional coefficient of the oscillating wheel, k d,swingrepresents the differential coefficient of the pendulum wheel.
[0205] For the center of mass task: the reference position of the center of mass along the forward direction can be planned through heuristic or model-based methods and speed During the movement of the robot, the center of mass not only needs to move continuously in the forward direction, but also needs to help the robot maintain dynamic balance. Therefore, it is necessary to first build a balance controller to calculate the expected acceleration of the center of mass. Assuming that the mass m of the robot is concentrated at the center of mass, the center of the line connecting the two support wheels is set as the virtual contact point between the inverted pendulum and the ground, and the center of mass and the virtual contact point are connected to construct an inverted pendulum model as shown in Figure 13. Next, it is necessary to construct the dynamic equation of this model. Different from the general dynamic equation of the inverted pendulum, the embodiment of the present application uses the difference Δx between the center of mass and the virtual contact point, the position x of the center of mass, and the virtual contact point as the center of mass. com and their derivatives is the state variable, with the center of mass acceleration As input, the inverted pendulum dynamic equation is constructed, see the following formula (22):
[0206] Where g is the acceleration due to gravity, z com is the distance from the center of mass in the Z-axis direction.
[0207] Then, the linear quadratic programming regulator (LQR) is used to calculate the state feedback gain matrix K of formula (22). Finally, the input of the state equation can be obtained based on the LQR controller, that is, formula (23):
[0208] in, is the reference value of the state variable, is the actual value of the state variable.
[0209] The center of mass acceleration calculated by formula (23) As the expected acceleration of the center of mass It can not only ensure the determination of the center of mass reference trajectory, but also maintain the dynamic balance of the robot.
[0210] In summary, the expected operation space task of the robot motion is the following formula (24):
[0211] After determining the parameters of the dynamic controller based on the dynamic equations of the wheel-legged robot and the state quantity at the first moment, the dynamic equation to be solved will be constructed. From the rigid body dynamics, it can be seen that the acceleration of the operating space and joint space velocity acceleration The relationship is as follows:
[0212] Among them, J t , Represents the Jacobian and the derivative of the Jacobian for the task in the action space.
[0213] Combining formula (25) with formula (17) and simplifying them, we can obtain the following formula (26):
[0214] Substituting the above expected operation space task into formula (26) can solve the dynamic equation, where is the variable to be determined, and the rest are known quantities.
[0215] After constructing the dynamic equations to be solved, constraints can be added. For example, based on the robot's body structure and the physical limitations of the motors, the following constraints are set for the variables to be solved: joint physical constraints and friction constraints.
[0216] For joint physical constraints: According to the actual physical characteristics of the robot motor, the active joint torque τ in the variable to be determined can be limited, that is: τ lb ≤τ≤τ ub , where τ lb ,τ ub Respectively represent the minimum and maximum values of the motor torque.
[0217] For friction constraints: the contact force f at the i-th contact point i The friction cone constraint should be satisfied. To reduce nonlinearity, the friction cone can be approximated as a friction angle cone, and the friction force inequality constraint is obtained as follows (27):
[0218] Among them, n x 、n y 、n z They represent the unit orthogonal basis along the contact surface of the operation space system, μ i represents the friction coefficient, f z,lb 、f z,ub They represent the minimum and maximum values of the non-negative positive pressure perpendicular to the contact surface.
[0219] After adding the constraints, the dynamic equations are solved by the optimizer. At this time, formula (26) can be rewritten as AX=B, where The essence is to find the solution of the linear equations. Here, the quadratic programming optimizer is used to construct the objective function as follows (28): J = min (AX-B) T Q(AX-B)+X T RX (28)
[0220] Among them, Q and R represent weight matrices.
[0221] Based on the above constraints, we select a suitable quadratic programming optimizer and find the minimum value of formula (28), and we can get the variable to be determined. Finally, the joint torque is sent to the motor to achieve robot control.
[0222] Next, the combination of the controller with the obstacle control function and the whole body dynamics control (WBC) in the embodiment of the present application is described.
[0223] Safety constraints can be added to the WBC controller, and the torque obtained can be sent to each joint of the robot to complete the control. The embodiment of this application provides the derivation process of these safety constraints. The dynamic equation of the robot system is shown in the following formula (29):
[0224] If the control barrier function is applied only in a simplified model, the state variables can be chosen as The kinetic equation can be transformed into the following formula (30), where formula (30) is the first kinetic model mentioned above:
[0225] in, f(x) is the first control parameter mentioned above, g(x) is the second control parameter mentioned above.
[0226] The safety target is that the wheel rotation speed range is between plus or minus π / 12rad / s (that is, the safety control parameter range of the safe rotation angular velocity is between plus or minus π / 12rad / s), and the wheel rotation angle Between plus or minus π / 4 rad (i.e., the safety control parameter range of the safe rotation angle is between plus or minus π / 4 rad), four control barrier functions (CBFs) such as the following formulas (31) to (34) can be designed.
[0227] The first-order Lie derivative of the control barrier function is obtained as follows: Formula (35) to Formula (36), where the first-order Lie derivative L f h(x) is the first Lie derivative of the first control parameter f(x), L g h(x) is the second Lie derivative of the second control parameter g(x):
[0228] Wherein, h(x) is the control barrier function, including the above-mentioned h1(x), h2(x), h3(x) and h4(x).
[0229] Regarding the control barrier function h1(x), the constraint L f h(x)+L g h(x)u≥-α(h(x)) can be written as the following formula (37) and formula (38):
[0230] Regarding the control barrier function h2(x), the constraint L f h(x)+L g h(x)u≥-α(h(x)) can be written as the following formula (39) and formula (40):
[0231] Regarding the control barrier function h3(x), the first-order Lie derivatives are as follows: K α (x)=[K α1 K α2 ] (45)
[0232] Constraints It can be written as the following formula (46):
[0233] Regarding the control barrier function h4(x), the constraints It can be written as the following formula (47):
[0234] At this point, formulas (38), (40), (46), and (47) can be used as the four new constraints in the WBC solution process, based on which the torque of each joint can be solved to achieve robot control.
[0235] Next, a two-wheel balancing scenario on flat ground is used to verify the effectiveness of applying the control obstacle function CBF to the whole-body control WBC framework. The simulation results of the robot using the above control algorithm are shown in Figures 14a to 14f, where the left sides of Figures 14a to 14f are simulation diagrams of robot a, and the right side graphs of Figures 14a to 14f respectively represent the control parameter change curves of different joints of the robot. The ordinate in the control parameter change curve is the corresponding control parameter (the unit is the unit of the corresponding control parameter, for example, the unit of the angle of the outer hip joint is rad, the unit of the length of the left leg joint is meter, and the rotation angle of the left wheel hub motor (that is, the rotation angle of the above wheel) ) is in rad), and the horizontal axis is time (in minutes). It can be seen that in the simulation diagram, when the rotation angle of the hub motor approaches a certain set angle, it will be bounced back. By configuring the parameters, the rotation angle of the robot hub motor can be kept near the set angle. Among them, in Figures 14a to 14f, from top to bottom are the simulation diagrams corresponding to the angle of the lateral hip joint, the length of the left leg joint, and the rotation angle of the hub motor of the left wheel. Among them, Figures 14b and 14d are only for data detection. It can be seen from the rotation angle of the hub motor of the left wheel shown in Figure 14f that when the rotation angle is close to 5 radians (that is, -5rad shown in Figure 14f, indicating that the angle of rotation of the wheel in the opposite direction is close to 5 radians), it will be bounced back. By configuring the parameters, the rotation angle of the robot wheel can be kept near positive 5rad and negative 5rad.
[0236] For visual convenience, the data for the left wheel's hub motor's rotation angle over the entire time period shown in Figure 14f is displayed separately in Figure 15. The 5 rad here corresponds to the π / 4 rad given in the formula above and can be set to any desired value. For example, when the lower limit of the safety constraint is changed to -π rad, the data for the left wheel's hub motor's rotation angle over the entire time period are shown in Figure 16. The robot's motion control exhibits a similar effect, manifesting only in the fact that the upper and lower limits of the left wheel's hub motor's rotation angle differ, being around positive and negative π rad.
[0237] As can be seen in the numerical example above, the robot's wheels only bounced back after exceeding the set safety range by 5 rad. In practice, whether there is control overshoot within the safety constraint range, and whether the robot remains essentially stationary or rebounds after being blocked, depends on the controller parameters. These parameters can be adjusted based on actual needs and experimental observations in real-world applications.
[0238] It can be understood that in the embodiments of the present application, the content involving user information, such as the current state parameters, basic control parameters, safety control parameters and motion control parameters of the robot to be controlled, if it involves data related to user information or enterprise information, when the embodiments of the present application are applied to specific products or technologies, it is necessary to obtain user permission or consent, or to blur this information to eliminate the correspondence between this information and the user; and the relevant data collection and processing should be strictly in accordance with the requirements of relevant national laws and regulations when applied in examples, and obtain the informed consent or separate consent of the personal information subject, and carry out subsequent data use and processing within the scope of authorization of laws and regulations and the personal information subject.
[0239] The following continues to describe an exemplary structure of the robot control device 455 provided in an embodiment of the present application implemented as a software module. In some embodiments, as shown in Figure 2, the software modules stored in the robot control device 455 of the memory 450 may include: an acquisition module 4551, configured to obtain the current state parameters of the robot to be controlled at the current moment; a basic control parameter determination module 4552, configured to call a state regulator to determine the basic control parameters for each joint of the robot to be controlled based on a preset dynamic model and the current state parameters; a parameter filtering module 4553, configured to perform parameter filtering on the basic control parameters to obtain safety control parameters for each joint of the robot to be controlled; a motion control parameter determination module 4554, configured to determine the motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint; and a control module 4555, configured to control each joint of the robot to be controlled at the current moment according to the motion control parameters of each joint.
[0240] In some embodiments, the parameter filtering module 4553 is further configured to: construct a control obstacle function based on preset control input parameters and the basic control parameters; the control obstacle function includes a safety objective function and constraints; based on the constraints, determine the safety control parameters for each joint of the robot to be controlled when the safety objective function reaches a minimum value.
[0241] In some embodiments, the motion control parameter determination module 4554 is further configured to: determine the expected acceleration of each joint of the robot to be controlled based on the safety control parameters of each joint and the current state parameters; call the whole-body dynamics model of the robot to be controlled, and determine the motion control parameters of each joint of the robot to be controlled based on the expected acceleration of each joint.
[0242] In some embodiments, the current state parameters include actual state variables, and the expected acceleration includes the expected acceleration of the center of mass; the motion control parameter determination module 4554 is also configured to: call the state observer, and determine the following parameters based on the safety control parameters of each joint and the current state parameters: the reference center of mass position, reference center of mass velocity, reference distance between the reference center of mass position and the current virtual contact point, and reference speed corresponding to the reference distance of the robot to be controlled; determine the reference state variables based on the reference distance, the reference speed, the reference center of mass position and the reference center of mass velocity; call the state regulator to determine the state feedback parameters of the pre-constructed inverted pendulum model; determine the expected acceleration of the center of mass of each joint based on the state feedback parameters of the inverted pendulum model, the reference state variables and the actual state variables.
[0243] In some embodiments, the motion control parameter determination module 4554 is further configured to: call the whole-body dynamics model of the robot to be controlled and the state regulator, and construct an objective function based on the expected acceleration of each joint; obtain preset parameter constraints for each joint of the robot to be controlled; based on the parameter constraints, determine the minimum value of the objective function of each joint; based on the minimum value, determine the motion control parameters of each joint of the robot to be controlled.
[0244] In some embodiments, the device 455 also includes a safety control module, which is configured to: construct safety constraints for the robot to be controlled; call the whole-body dynamics model of the robot to be controlled, and determine the first motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint and the safety constraints; for each joint of the robot to be controlled, control the joint at the current moment based on the first motion control parameters of the joint.
[0245] In some embodiments, the safety control parameters of each joint include a safe rotation angle and a safe rotation angular velocity; the safety control module is further configured to: determine the safety control parameter range of the safe rotation angle and the safety control parameter range of the safe rotation angular velocity; construct a control obstacle function based on the safety control parameter range of the safe rotation angle and the safety control parameter range of the safe rotation angular velocity; call the preset dynamic model, and determine the safety constraint conditions for the robot to be controlled based on the control obstacle function.
[0246] In some embodiments, the safety control module is further configured to: convert the preset dynamic model into a first dynamic model; determine a first control parameter and a second control parameter based on the first dynamic model and the current state parameter; determine a first Lie derivative of the first control parameter and a second Lie derivative of the second control parameter based on the first control parameter, the second control parameter and the control obstacle function; determine the safety constraint condition based on the first Lie derivative, the second Lie derivative and the control obstacle function.
[0247] In some embodiments, the safety control module is further configured to: determine a first Lie derivative of the first control parameter based on the first control parameter and the control obstacle function; and determine a second Lie derivative of the second control parameter based on the second control parameter and the control obstacle function.
[0248] In some embodiments, the basic control parameter determination module 4552 is further configured to: convert the preset dynamic model into a state space model; call the state regulator to determine the state feedback parameters for the robot to be controlled based on the state space model; and determine the basic control parameters for each joint of the robot to be controlled based on the state feedback parameters of the robot to be controlled and the current state parameters.
[0249] In some embodiments, the basic control parameter determination module 4552 is further configured to: obtain the state variable of the joint in the current state parameter for each joint of the robot to be controlled; and determine the product of the state feedback parameter and the state variable as the basic control parameter of the joint.
[0250] It should be noted that the description of the device embodiment of the present application is similar to the description of the method embodiment described above, and has similar beneficial effects as the method embodiment, so it will not be repeated. For technical details not disclosed in the device embodiment, please refer to the description of the method embodiment of the present application for understanding.
[0251] An embodiment of the present application provides a computer-readable storage medium having computer-executable instructions stored therein. When the computer-executable instructions are executed by a processor, the processor will execute the robot control method provided by an embodiment of the present application, for example, the robot control method shown in FIG3 .
[0252] The present invention provides a computer program product comprising computer-executable instructions stored in a computer-readable storage medium. A processor of an electronic device reads the computer-executable instructions from the computer-readable storage medium and executes the computer-executable instructions, causing the electronic device to perform the robot control method described in the present invention.
[0253] In some embodiments, the computer-readable storage medium may be a memory such as RAM, ROM, flash memory, magnetic surface memory, optical disk, or compact disc read-only memory (CD-ROM); or it may be various devices including one or any combination of the above memories.
[0254] In some embodiments, computer-executable instructions may be in 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 stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
[0255] As an example, computer-executable instructions may, but need not, correspond to a file in a file system, may be stored as part of a file that stores other programs or data, e.g., in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple coordinating files (e.g., files storing one or more modules, subroutines, or code portions).
[0256] By way of example, computer-executable instructions may be deployed to be executed on one electronic device, or on multiple electronic devices located at one site, or on multiple electronic devices distributed across multiple sites and interconnected by a communication network.
[0257] The above description is merely an embodiment of the present application and is not intended to limit the scope of protection of the present application. Any modifications, equivalent replacements, and improvements made within the spirit and scope of the present application are included in the scope of protection of the present application.
Claims
1. A robot control method, the method being performed by an electronic device, the method comprising: Get the current state parameters of the robot to be controlled at the current moment; Determining basic control parameters for each joint of the robot to be controlled based on a preset dynamic model and the current state parameters; Performing parameter filtering on the basic control parameters to obtain safety control parameters for each joint of the robot to be controlled; Determining motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint; Each joint of the robot to be controlled is controlled at the current moment according to the motion control parameters of each joint.
2. The method according to claim 1, wherein The parameter filtering process is performed on the basic control parameters to obtain the safety control parameters for each joint of the robot to be controlled, including: Constructing a control obstacle function based on preset control input parameters and the basic control parameters; the control obstacle function includes a safety objective function and constraint conditions; Based on the constraint conditions, a safety control parameter for each joint of the robot to be controlled is determined when the safety objective function reaches a minimum value.
3. The method according to claim 1 or 2, wherein The determining of the motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint includes: Determining an expected acceleration of each joint of the robot to be controlled based on the safety control parameter of each joint and the current state parameter; The whole-body dynamics model of the robot to be controlled is called, and the motion control parameters of each joint of the robot to be controlled are determined based on the expected acceleration of each joint.
4. The method according to any one of claims 1 to 3, wherein: The current state parameter includes an actual state variable, and the expected acceleration includes an expected acceleration of the center of mass; The step of determining the expected acceleration of each joint of the robot to be controlled based on the safety control parameter of each joint and the current state parameter includes: Invoking a state observer to determine the following parameters based on the safety control parameters of each joint and the current state parameters: a reference center of mass position of the robot to be controlled, a reference center of mass speed, a reference distance between the reference center of mass position and the current virtual contact point, and a reference speed corresponding to the reference distance; determining a reference state variable based on the reference distance, the reference speed, the reference center-of-mass position, and the reference center-of-mass speed; calling a state regulator to determine state feedback parameters of a pre-built inverted pendulum model; The expected acceleration of the center of mass of each joint is determined based on the state feedback parameters of the inverted swing model, the reference state variables and the actual state variables.
5. The method according to any one of claims 1 to 4, wherein: The calling of the whole-body dynamics model of the robot to be controlled and determining the motion control parameters of each joint of the robot to be controlled based on the expected acceleration of each joint includes: calling the whole-body dynamics model of the robot to be controlled and the state regulator, and constructing an objective function based on the expected acceleration of each joint; Obtaining preset parameter constraints for each joint of the robot to be controlled; Determining a minimum value of the objective function of each joint based on the parameter constraints; Based on the minimum value, a motion control parameter of each joint of the robot to be controlled is determined.
6. The method according to any one of claims 1 to 5, wherein: The method further comprises: Constructing safety constraints for the robot to be controlled; calling a whole-body dynamics model of the robot to be controlled, and determining a first motion control parameter of each joint of the robot to be controlled based on the safety control parameter of each joint and the safety constraint condition; For each joint of the robot to be controlled, the joint is controlled at the current moment based on the first motion control parameter of the joint.
7. The method according to any one of claims 1 to 6, wherein: The safety control parameters of each joint include a safe rotation angle and a safe rotation angular velocity; The constructing of safety constraints for the robot to be controlled includes: Determining a safety control parameter range of the safe rotation angle and a safety control parameter range of the safe rotation angular velocity; constructing a control obstacle function according to the safety control parameter range of the safe rotation angle and the safety control parameter range of the safe rotation angular velocity; The preset dynamic model is called, and based on the control obstacle function, safety constraint conditions for the robot to be controlled are determined.
8. The method according to any one of claims 1 to 7, wherein: The calling of the preset dynamic model and determining the safety constraint conditions for the robot to be controlled based on the control obstacle function includes: Converting the preset kinetic model into a first kinetic model; determining a first control parameter and a second control parameter based on the first dynamic model and the current state parameter; determining a first Lie derivative of the first control parameter and a second Lie derivative of the second control parameter based on the first control parameter, the second control parameter, and the control obstacle function; The safety constraint condition is determined based on the first Lie derivative, the second Lie derivative, and the control obstacle function.
9. The method according to any one of claims 1 to 8, wherein: The determining, based on the first control parameter, the second control parameter, and the control obstacle function, a first Lie derivative of the first control parameter and a second Lie derivative of the second control parameter, comprises: determining a first Lie derivative of the first control parameter based on the first control parameter and the control obstacle function; A second Lie derivative of the second control parameter is determined based on the second control parameter and the control obstacle function.
10. The method according to any one of claims 1 to 9, wherein: The determining of basic control parameters for each joint of the robot to be controlled based on a preset dynamic model and the current state parameters includes: Converting the preset dynamic model into a state space model; calling a state regulator to determine a state feedback parameter for the robot to be controlled based on the state space model; Based on the state feedback parameters of the robot to be controlled and the current state parameters, basic control parameters for each joint of the robot to be controlled are determined.
11. The method according to any one of claims 1 to 10, wherein: Determining basic control parameters for each joint of the robot to be controlled based on the state feedback parameters of the robot to be controlled and the current state parameters includes: For each joint of the robot to be controlled, obtaining a state variable of the joint in the current state parameter; The product of the state feedback parameter and the state variable is determined as the basic control parameter of the joint.
12. A robot control device, comprising: An acquisition module configured to obtain current state parameters of the robot to be controlled at a current moment; a basic control parameter determination module configured to call a state regulator to determine a basic control parameter for each joint of the robot to be controlled based on a preset dynamic model and the current state parameter; a parameter filtering module configured to perform parameter filtering processing on the basic control parameters to obtain safety control parameters for each joint of the robot to be controlled; a motion control parameter determination module configured to determine the motion control parameters of each joint of the robot to be controlled based on the safety control parameters of each joint; The control module is configured to control each joint of the robot to be controlled at the current moment according to the motion control parameters of each joint.
13. An electronic device comprising: a memory for storing computer-executable instructions; The processor is configured to implement the robot control method according to any one of claims 1 to 11 when executing the computer executable instructions stored in the memory.
14. A computer-readable storage medium storing computer-executable instructions, wherein when the computer-executable instructions are executed by a processor, the robot control method according to any one of claims 1 to 11 is implemented.
15. A computer program product comprising computer-executable instructions stored in a computer-readable storage medium; in, When the processor of the electronic device reads the computer-executable instructions from the computer-readable storage medium and executes the computer-executable instructions, the robot control method according to any one of claims 1 to 11 is implemented.
Citation Information
Patent Citations
Control method, device and equipment of wheel-legged robot and readable storage medium
CN113753150A
Safe predefined time control method and device for second-order nonlinear system and medium
CN116214530A
Double-wheel-leg robot, control method and device thereof and storage medium
CN116719231A
Robot control method and device, electronic equipment, computer readable storage medium and computer program product
CN118990470A
Robot device robot control method, program, recording medium, and method of manufacturing assembling component
JP2017056525A
Cited By
Distributed optimization control method for security constraint uncertain multi-agent system
CN121209452A
Load distribution intelligent optimization method for prefabricated part concrete distribution robot
CN121744845A
Control method and system for mechanical arm of collaborative robot
CN121756362A
A control method and system for a collaborative robot arm
CN121756362B
Pipeline robot control method and device
CN122219468A