Robot driving unit control method, device and equipment

By obtaining the expected speed vector and average torque of the robot driving unit, determining the expected torque and generating motor control instructions, the equalization control of the driving unit torque is realized, the problem of unbalanced torque in the prior art is solved, and the service life of the robot is improved.

CN119428231APending Publication Date: 2025-02-14HANGZHOU HIKROBOT TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411707986.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-26
Publication Date
2025-02-14

AI Technical Summary

Technical Problem

The prior art cannot accurately realize the torque equalization control of the robot driving unit, resulting in the torque imbalance between the driving units and reducing the service life of the robot.

Method used

By obtaining the expected speed vector and average torque of each drive unit, the expected torque of each drive unit is determined, and a motor control command is generated based on the expected torque and speed vector, the fusion control of the chassis speed and the driving unit torque is realized.

Benefits of technology

Without adding additional hardware costs, the problem of torque imbalance in the drive unit is efficiently and accurately solved, and the accuracy and reliability of torque equalization control of the drive unit is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119428231A_ABST
    Figure CN119428231A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a robot driving unit control method, device and equipment. The method comprises the steps that an expected velocity vector of each driving unit is acquired; the average torque of the driving units and the torque distribution mode of each driving unit are obtained; according to the average torque and the torque distribution mode, the expected torque of each driving unit is determined; for each driving unit, generating a motor control instruction of the driving unit according to the expected velocity vector and the expected torque; and the motor control instruction is sent to the motor corresponding to each driving unit, so that the motor controls the driving unit by executing the motor control instruction, and chassis speed control and driving unit torque control are achieved on the premise that the motor speed serves as the control quantity.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of mechanical control technology, and specifically relates to a method, device and equipment for controlling a driving unit of a robot. Background Art

[0002] The robot's motion control framework is usually a cascade layered approach, usually divided into chassis layer, drive unit layer and motor layer. The drive unit here generally refers to the wheel set installed on the robot chassis. In order to adapt to a variety of application requirements, robots are driven by more than two drive units with relative chassis steering capabilities. Due to the calibration errors of parameters such as wheel diameters, and the influence of environmental factors such as ground potholes, the movement of each drive unit cannot be guaranteed to be completely consistent, so there is bound to be a pulling problem between the drive units, which will lead to torque imbalance between the drive units and reduce the service life of the robot.

[0003] In related technologies, the torque problem is solved by maintaining a heat integration pool inside the motor control. When it exceeds a certain value, it will take over the control and release the motor, which will cause the robot to stop abnormally. Alternatively, a speed loop control is added to the chassis layer, and the motor torque is used as the chassis control quantity to directly output the torque command to the motor for execution.

[0004] However, the related technologies are unable to accurately realize the torque balance control of the drive unit. Summary of the invention

[0005] The present application relates to a method, device and equipment for controlling a driving unit of a robot, which are used to solve the technical problem that related technologies cannot accurately achieve torque balance control of the driving unit.

[0006] In a first aspect, the present application provides a method for controlling a driving unit of a robot, comprising:

[0007] Get the desired velocity vector of each drive unit;

[0008] Acquire an average torque of the drive unit and a torque distribution mode of each drive unit;

[0009] Determining a desired torque of each of the drive units according to the average torque and the torque distribution mode;

[0010] For each drive unit, generating a motor control instruction of the drive unit according to the desired velocity vector and the desired torque;

[0011] The motor control instruction is sent to the motor corresponding to each of the driving units, so that the motor controls the driving unit by executing the motor control instruction.

[0012] The present application proposes a method for realizing chassis speed control and drive unit torque control under the premise of taking motor speed as the control quantity. Specifically, the expected speed vector of each drive unit is first obtained, and the expected torque of each drive unit is determined respectively according to the average torque of the drive unit and the torque distribution method configured for each drive unit. Then, based on the expected torque and the expected speed vector, a motor control instruction is generated for each drive unit. The chassis speed and drive unit torque fusion control is realized without changing the speed as the motor instruction. The implementation is simple, and the specific output of a certain drive unit can also be specified. Without increasing additional hardware costs, the problem of unbalanced torque of the drive unit is efficiently and accurately solved.

[0013] Optionally, generating a motor control instruction of the drive unit according to the expected velocity vector and the expected torque includes:

[0014] Splitting the desired velocity vector to obtain a desired angle and a desired velocity;

[0015] Performing speed compensation on the desired speed according to the desired torque to obtain a complete desired speed;

[0016] A motor control command for the drive unit is generated according to the desired angle and the complete desired speed.

[0017] Among them, in order to achieve accurate speed-based control, the present application splits the desired speed vector into two parts. One part is to control the angle of the drive unit to achieve the direction of the vector, and the other part is to achieve the size control of the vector. The angle can be controlled by an angle controller. In order to achieve torque balance, the expected speed is compensated based on the expected torque to obtain the complete expected speed, and then the balanced control of the torque is achieved by controlling the motor speed. The implementation method is simple and the torque control is accurate and reliable, ensuring the torque balanced control of the drive unit.

[0018] Optionally, performing speed compensation on the expected speed according to the expected torque to obtain a complete expected speed includes:

[0019] Acquire the current torque of the driving unit;

[0020] Determining a torque control deviation value according to the current torque and the expected torque;

[0021] Inputting the torque control deviation value into a preset torque controller to obtain a speed compensation amount;

[0022] A full desired speed is determined based on the speed compensation amount and the desired speed.

[0023] Among them, controlling the desired torque to obtain the speed compensation is the key step to achieve torque balance in this application. Usually the control quantity is the differential form of the controlled quantity, that is, the control quantity of the position loop is usually the speed, the control quantity of the speed loop is acceleration or torque, and the control quantity of the torque loop of this application is speed. Optionally, if the current torque of the drive unit is less than the desired torque, the speed compensation is continuously integrated and accumulated, and if the current torque of the drive unit is greater than the desired torque, the speed compensation is continuously integrated and decreased until the current torque is equal to the desired torque, and because the upper chassis speed is under closed-loop feedback control, it is possible to ensure that the speed expectation of the entire chassis is effectively achieved. The torque balance of the drive unit control and the reliability and accuracy of the torque control are improved through torque compensation.

[0024] Optionally, obtaining the current torque of the driving unit includes:

[0025] Acquire the current driving state of the motor corresponding to the driving unit;

[0026] According to the current driving state, a current torque is determined.

[0027] Here, the present application can directly obtain the current driving state of the motor corresponding to the driving unit. Through the current driving state of each driving unit, the current torque can be determined efficiently and accurately, further improving the accuracy and efficiency of the driving unit control.

[0028] Optionally, the drive unit is a differential drive unit;

[0029] Accordingly, generating a motor control instruction of the drive unit according to the expected angle and the complete expected speed includes:

[0030] Inputting the desired angle into a preset angle controller to obtain a desired angular velocity;

[0031] According to the desired angular velocity and the complete desired velocity, desired rotational speed instructions for the left and right motors of the differential drive unit are generated.

[0032] Here, for the differential drive unit, the present application can generate the desired speed instructions for the left and right motors according to the desired angular velocity and the complete desired speed, so as to control the movement and steering of the two wheels through the motors without the need for redundant parameters, thereby achieving accurate and rapid control of the drive unit.

[0033] Optionally, the driving unit is a vertical driving unit;

[0034] Accordingly, generating a motor control instruction of the drive unit according to the expected angle and the complete expected speed includes:

[0035] generating a rotation motor control instruction of the vertical drive unit according to the desired angle;

[0036] A travel motor control instruction of the vertical drive unit is generated according to the complete expected speed.

[0037] Here, since the angle of the vertical drive unit is directly controlled by the rotating motor without the need for an angle controller, the rotating motor control instructions of the vertical drive unit and the travel motor control instructions of the vertical drive unit are directly output to control the movement and steering respectively, so as to achieve accurate control of the drive unit.

[0038] Optionally, obtaining the expected velocity vector of each driving unit includes:

[0039] Acquire expected motion data of the chassis where the drive unit is located;

[0040] A preset kinematic control algorithm is used to determine the expected velocity vector of each drive unit according to the expected motion data.

[0041] Here, the present application firstly adopts a preset kinematic control algorithm to perform chassis motion control, obtains the expected velocity vector of each drive unit, and provides a basis for the control of the drive unit. Accurately obtaining the expected velocity vector can improve the accuracy of the robot's drive unit control.

[0042] Optionally, the obtaining the average torque of the driving unit and the torque distribution mode of each driving unit includes:

[0043] Obtain an average torque of the drive unit; obtain a chassis structure corresponding to the drive unit; if the chassis structure includes a plurality of identical drive units, determine that the torque distribution mode of each drive unit is balanced distribution; if the chassis structure includes a plurality of different drive units, determine the torque distribution mode of each drive unit according to the drive unit type of each drive unit.

[0044] Optionally, the torque distribution mode of each drive unit is determined according to the drive unit type of each drive unit, including: if the drive unit is a master drive unit, the torque distribution mode of the drive unit is determined to be used for output during forward and backward movement; if the drive unit is a slave drive unit, the torque distribution mode of the drive unit is determined to be used for maintaining heading control during forward and backward movement, and for output during lateral movement.

[0045] Here, the present application determines the torque distribution method of each drive unit based on the chassis structure corresponding to the drive unit. Specifically, for the case where the chassis structure is a plurality of identical drive units, the output of each drive unit is required to be consistent, thereby improving the load capacity and service life, reducing the design power consumption of the drive unit, and reducing costs. For the case where the chassis structure is a plurality of different drive units, the embodiment of the present application first determines the drive unit type of each drive unit, including a main drive unit for outputting power when moving forward and backward and a slave drive unit for only controlling the heading when moving forward and backward and for side-shifting processing. Through the above-mentioned torque distribution method, the pulling problem of equal drive units and the pulling problem of active drive units are solved, the load capacity and service life of each drive unit are improved, and the cost is reduced.

[0046] In a second aspect, the present application provides a driving unit control device for a robot, comprising:

[0047] A first acquisition module, used to acquire a desired velocity vector of each driving unit;

[0048] A second acquisition module, used for acquiring an average torque of the driving unit and a torque distribution mode of each driving unit;

[0049] A determination module, configured to determine a desired torque of each of the driving units according to the average torque and the torque distribution mode;

[0050] A processing module, configured to generate, for each drive unit, a motor control instruction of the drive unit according to the desired velocity vector and the desired torque;

[0051] The sending module is used to send the motor control instruction to the motor corresponding to each of the driving units, so that the motor controls the driving unit by executing the motor control instruction.

[0052] Optionally, the processing module includes:

[0053] A splitting submodule, used for splitting the desired velocity vector to obtain a desired angle and a desired velocity;

[0054] A compensation submodule, configured to perform speed compensation on the expected speed according to the expected torque to obtain a complete expected speed;

[0055] A generating submodule is used to generate a motor control instruction of the driving unit according to the expected angle and the complete expected speed.

[0056] Optionally, the compensation submodule is specifically used for:

[0057] Acquire the current torque of the driving unit;

[0058] Determining a torque control deviation value according to the current torque and the expected torque;

[0059] Inputting the torque control deviation value into a preset torque controller to obtain a speed compensation amount;

[0060] A full desired speed is determined based on the speed compensation amount and the desired speed.

[0061] Optionally, the compensation submodule is further specifically used for:

[0062] Acquire the current driving state of the motor corresponding to the driving unit;

[0063] According to the current driving state, a current torque is determined.

[0064] Optionally, the drive unit is a differential drive unit;

[0065] Accordingly, the generating submodule is specifically used for:

[0066] Inputting the desired angle into a preset angle controller to obtain a desired angular velocity;

[0067] According to the desired angular velocity and the complete desired velocity, desired rotational speed instructions for the left and right motors of the differential drive unit are generated.

[0068] Optionally, the driving unit is a vertical driving unit;

[0069] Accordingly, the generating submodule is also specifically used for:

[0070] generating a rotation motor control instruction of the vertical drive unit according to the desired angle;

[0071] A travel motor control instruction of the vertical drive unit is generated according to the complete expected speed.

[0072] Optionally, the first acquisition module is specifically used to:

[0073] Acquire expected motion data of the chassis where the drive unit is located;

[0074] A preset kinematic control algorithm is used to determine the expected velocity vector of each drive unit according to the expected motion data.

[0075] Optionally, the second acquisition module is specifically used to:

[0076] Obtain an average torque of the drive unit; obtain a chassis structure corresponding to the drive unit; if the chassis structure includes a plurality of identical drive units, determine that the torque distribution mode of each drive unit is balanced distribution; if the chassis structure includes a plurality of different drive units, determine the torque distribution mode of each drive unit according to the drive unit type of each drive unit.

[0077] Optionally, the second acquisition module is further specifically configured to:

[0078] If the drive unit is a master drive unit, the torque distribution method of the drive unit is determined to be used for output during forward and backward movement; if the drive unit is a slave drive unit, the torque distribution method of the drive unit is determined to be used for maintaining heading control during forward and backward movement, and for output during lateral movement.

[0079] In a third aspect, the present application provides a driving unit control device for a robot, comprising: a memory and a processor;

[0080] The memory stores computer program instructions;

[0081] The processor executes the computer program instructions stored in the memory to implement the method as described in any one of the first aspects.

[0082] In a fourth aspect, the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores computer program instructions, and when the computer program instructions are executed by a processor, they are used to implement any one of the methods in the first aspect.

[0083] In a fifth aspect, the present application provides a computer program product, including a computer program, which implements any method in the first aspect when executed by a processor.

[0084] The present application provides a method, device and equipment for controlling a drive unit of a robot. The method first obtains the expected speed vector of each drive unit, determines the expected torque of each drive unit according to the average torque of the drive unit and the torque distribution method configured for each drive unit, and then generates a motor control instruction for each drive unit based on the expected torque and the expected speed vector. The chassis speed and drive unit torque fusion control is achieved without changing the speed as the motor instruction. The implementation is simple and the specific output of a drive unit can be specified. Without increasing additional hardware costs, the problem of unbalanced torque of the drive unit is solved efficiently and accurately. BRIEF DESCRIPTION OF THE DRAWINGS

[0085] In order to more clearly illustrate the technical solutions in the present application, a brief introduction will be given below to the drawings required for use in the description of the embodiments. Obviously, the drawings described below are some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0086] Figure 1 A schematic diagram of various configurations of an omnidirectional chassis with an equivalent drive unit provided in an embodiment of the present application;

[0087] Figure 2 A schematic diagram of an omnidirectional chassis configuration of a master-slave drive unit provided in an embodiment of the present application;

[0088] Figure 3 A schematic diagram of the overall framework of a driving unit control of a robot provided in an embodiment of the present application;

[0089] Figure 4 A schematic diagram of a control system architecture of a driving unit of a robot provided in an embodiment of the present application;

[0090] Figure 5 A schematic flow chart of a method for controlling a driving unit of a robot provided in an embodiment of the present application;

[0091] Figure 6 A schematic diagram of the structure of a differential drive unit provided in an embodiment of the present application;

[0092] Figure 7 A block diagram of a speed and torque fusion control algorithm for a differential drive unit provided in an embodiment of the present application;

[0093] Figure 8 A schematic diagram of the structure of a vertical drive unit provided in an embodiment of the present application;

[0094] Fig. 9 A block diagram of a vertical drive unit speed and torque fusion control algorithm provided in an embodiment of the present application;

[0095] Fig.10 A schematic diagram of the structure of a driving unit control device of a robot provided in an embodiment of the present application;

[0096] Fig.11 A schematic diagram of the structure of a driving unit control device of a robot provided in an embodiment of the present application.

[0097] The above drawings have shown clear embodiments of the present application, which will be described in more detail later. These drawings and text descriptions are not intended to limit the scope of the present application in any way, but to illustrate the concept of the present application to those skilled in the art by referring to specific embodiments. DETAILED DESCRIPTION

[0098] In order to make the purpose, technical scheme and advantages of the embodiments of the present application clearer, the technical scheme in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0099] It should be noted that, although the terms "first", "second", etc. are used to describe various information in the embodiments of the present application, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. Optionally, without departing from the scope of the present application, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information.

[0100] It should be understood that the terms "comprises" and "includes" indicate the presence of the previously mentioned features, steps, operations, but do not exclude the presence, occurrence or addition of one or at least one other feature, step, operation. The terms "and / or" and the like used in this application may be interpreted as inclusive, or mean any one or any combination. Optionally, "A and / or B" means "any of the following: A; B; A and B". In addition, the character " / " in this article generally indicates that the objects associated with each other are in an "or" relationship.

[0101] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0102] First, the terms involved in this application are explained:

[0103] Omnidirectional robot: A robot that can move in all directions, usually with 2 or more drive units. Compared with differential robots, it can move in any direction without adjusting the chassis angle.

[0104] Overcurrent: The motor converts electrical energy into mechanical energy through electromagnetic induction. If the motor is blocked by external force, the motor will not be able to keep up with the expected speed and the current will continue to increase. The current will generate a lot of heat. When the current exceeds a certain value and lasts for a period of time, it will overheat and there is a risk of burning the motor or driver. This is called overcurrent. In addition, if the motor is reversed by external force and enters the power generation state, overcurrent will also occur if the power generation current exceeds a certain value.

[0105] Equivalent drive units: refers to the chassis's drive units being equal, usually meaning the same model or power.

[0106] Master-slave drive unit: refers to the chassis drive units that are not equal or have a large difference in power. They are divided into a master drive unit that provides the main power and a slave drive unit that mainly provides steering but not the main power.

[0107] PID: Classic proportional, integral, and differential control algorithm, which obtains the control quantity by performing proportional, integral, and differential operations on the deviation and weighted addition.

[0108] Explanation of symbols: θ: angle (heading); v: velocity; ω: angular velocity; f: torque; c: chassis; a: actuation unit; m: motor.

[0109] With the rapid development of mobile robot related technologies in recent years, their applications in logistics, warehousing, factory production and other aspects are becoming more and more common. Omnidirectional robots are increasingly widely used because they have omnidirectional mobility without turning, which can greatly reduce the demand for mobile channel space and improve the efficiency of factory space utilization. Omnidirectional robots have multiple drive units, so their designed load capacity can be significantly greater than other types of robots. Omnidirectional robots are driven by more than two drive units with relative chassis steering capabilities. However, due to the calibration errors of parameters such as wheel diameters, and the influence of environmental factors such as ground potholes, the movement of each drive unit cannot be guaranteed to be completely consistent, so there is inevitably a problem of pulling between drive units. The pulling problem will cause the current (torque) of one of the drive units to be abnormally large, while the current of other drive units is relatively small or even reverse (power generation state), that is, the torque is unbalanced. That is, "the output of each drive unit is inconsistent, some have large output, some have small output" or even "some drive units are dragged away". Excessive current will cause the motor or driver to heat up, and when the accumulated heat exceeds a certain value, the motor or driver may burn out. Secondly, long-term unbalanced output will also accelerate the aging of the high-output drive unit, affecting the life of the robot. At the same time, since there will be no output drive units, the load capacity of the entire vehicle will be greatly reduced. For a certain load, a more powerful drive unit must be designed, which increases the cost.

[0110] The solutions to torque imbalance in related technologies are: Solution 1: Maintain a heat integration pool inside the motor control. When it exceeds a certain value, it will take over the control right, release the motor force, and then cause the robot to stop abnormally. Solution 2: Add speed loop control at the chassis layer, and use the motor torque as the chassis control amount to directly output the torque command to the motor for execution. Solution 1 is a solution to protect the motor and drive from burning after pulling overcurrent, and does not solve the problem of pulling overcurrent. The use of this solution may cause safety accidents such as collisions due to direct free parking, such as free parking when the robot is running at high speed. Solution 2 has the following problems: First, due to the addition of speed loop control, it is necessary to estimate the chassis speed, and the speed calculated by the odometer in the pulling situation is inaccurate, so additional sensors are needed to estimate the chassis speed, which increases the cost and difficulty of implementation. Secondly, the control frequency of the chassis layer is usually low, and it is difficult to achieve a good speed control effect, while the motor control frequency is high, so the speed control effect of the motor layer is far better than that of the chassis layer. Finally, the speed loop control parameters are difficult to adjust at low control frequencies, or the adjusted parameters have poor control effects. Therefore, the related technology cannot achieve reliable torque balance control of the drive unit, and the existing technology still has the problem of being unable to accurately achieve torque balance control of the drive unit.

[0111] Demonstratively, Figure 1 This is a schematic diagram of multiple configurations of an omnidirectional chassis with equal drive units provided in an embodiment of the present application. This configuration involves the problem of equal drive unit pulling. Figure 1 The following is a common omnidirectional chassis structure with equal drive units, which are driven by two or more drive units with relative chassis steering capabilities. For this type of chassis, we usually require that the output of each drive unit is consistent, that is, balanced output, so as to improve the load capacity and service life, reduce the design power of the drive unit, and reduce costs.

[0112] Demonstratively, Figure 2 A schematic diagram of an omnidirectional chassis configuration of a master-slave drive unit provided in an embodiment of the present application is shown in FIG. Figure 2 As shown in the figure, the chassis structure of a certain omnidirectional forklift robot is shown. Its drive unit consists of a large main power drive unit in the front and two slave drive units under the fork teeth. Due to the limited space under the fork teeth, the motor power of the slave drive unit will be relatively small. If it is output for a long time or is dragged by the main drive unit for a long time, it is easy to cause the motor to burn out, especially under heavy load. Since the main way of moving this forklift is to move forward and backward, it may move sideways for a short time near a cramped storage space. Therefore, it is hoped that the slave drive unit will "only turn, not exert force" when moving forward and backward, and "exert partial force" when moving sideways for a short time. Then it is necessary to realize the function of "specifying how much force the drive unit should exert".

[0113] In summary, the core requirement of the above two problems is to dynamically distribute the torque of each drive unit according to the drive unit type and chassis task. If the drive units are equal, the control goal is usually to "balance the output" of each drive unit; if it is like the omnidirectional forklift mentioned above, it is hoped that when moving forward and backward, only the main drive unit will output power, and the slave drive unit will maintain heading control, and when moving sideways, the slave drive unit will output part of the power.

[0114] In order to solve the above technical problems, an embodiment of the present application provides a driving unit control method of a robot, which realizes chassis speed control and driving unit torque control under the premise of taking motor speed as the control quantity.

[0115] The robot's motion control framework is usually a cascade layered approach, usually divided into chassis layer, drive unit layer and motor layer. The chassis layer and drive unit layer have low operating frequencies, and it is difficult to achieve good speed control effects, so only kinematic control is performed, and the final output to the motor is the desired speed, while the speed and torque (current) loop control are implemented inside the motor, so the motor layer can ensure accurate control of the robot's drive unit. Optionally, Figure 3 A schematic diagram of the overall framework of a driving unit control of a robot provided in an embodiment of the present application, such as Figure 3 As shown, the overall control framework of the embodiment of the present application includes a chassis layer 301 , a drive unit layer 302 and a motor drive control layer 303 .

[0116] Optionally, Figure 3 The control logic is as follows:

[0117] First, perform normal chassis kinematics control at the chassis layer to obtain the desired velocity vector of the drive unit. By controlling the chassis The kinematic control can be obtained

[0118] In addition, torque distribution is performed. The actual average torque of each drive unit is calculated based on the status information fed back by the drive unit. Then, the expected torque of each drive unit is obtained according to the command information and the average torque. If they are equal drive units and we want them to have "balanced output", we will use the current actual average torque as the expected torque of each drive unit; if they are master-slave drive units like an omnidirectional forklift, we will determine the expected torque of each drive unit based on whether the instruction is to go straight or sideways. For example, when going straight, we will set the expected torque of the slave drive unit to 0. So far, we have obtained the expected velocity vector of each drive unit. and the expected torque Information. The above data can be used to obtain the expected motor speed

[0119] Although the desired velocity vector of the drive unit is obtained and the expected torque However, it is difficult to realize these two expectations at the kinematic level, because torque is usually the control variable of the speed loop. The embodiment of the present application realizes closed-loop control of torque and speed by designing a speed and torque fusion control algorithm.

[0120] Optionally, Figure 4 A schematic diagram of a robot drive unit control system architecture provided in an embodiment of the present application. Figure 4 In the above architecture, the above architecture includes at least one of a data acquisition device 401, a processing device 402 and a display device 403.

[0121] Optionally, the driving unit control system of the robot can be connected to the robot for communication, thereby controlling the robot.

[0122] It is understandable that the structure illustrated in the embodiment of the present application does not constitute a specific limitation on the control system architecture of the robot's drive unit. In other feasible implementations of the present application, the above architecture may include more or fewer components than shown in the figure, or combine certain components, or split certain components, or arrange the components differently, which can be determined according to the actual application scenario and is not limited here. Figure 1 The components shown may be implemented in hardware, software, or a combination of software and hardware.

[0123] In a specific implementation process, the data acquisition device 401 may include an input / output interface and may also include a communication interface. The data acquisition device 401 may be connected to the processing device via the input / output interface or the communication interface.

[0124] The processing device 402 can realize chassis speed control and drive unit torque control under the premise of taking the motor speed as the control variable.

[0125] The display device 403 may also be a touch screen display or a screen of a terminal device, which is used to receive user instructions while displaying the above content to achieve interaction with the user.

[0126] It should be understood that the above-mentioned processing device can be implemented by a processor reading instructions in a memory and executing the instructions, or can be implemented by a circuit.

[0127] In addition, the network architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Ordinary technicians in this field can know that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0128] It is understandable that the embodiments of the present application are described by taking the standard vehicle to pick up the pallet and the differential lurking vehicle to pick up the shelf as examples, but the application of the embodiments of the present application is not limited to the standard fork to pick up the pallet and the differential lurking shelf, and other types of vehicle picking up goods or docking machines can be processed similarly. Even all other methods of correcting the current task parameters through the prior information in the previous task to improve the quality of task completion are within the protection scope of the embodiments of the present application.

[0129] The technical solution shown in the present application is described in detail below through specific embodiments. It should be noted that the following embodiments can exist independently or in combination with each other, and the same or similar contents will not be described repeatedly in different embodiments.

[0130] Optionally, Figure 5 A schematic diagram of a process flow of a robot drive unit control method provided in an embodiment of the present application. The execution subject of the embodiment of the present application may be Figure 4 The processing device 402, or the processor of the robot, is used to control the robot including the chassis and the turntable robot. The specific execution subject can be determined according to the actual application scenario. Figure 5 As shown, the method comprises the following steps:

[0131] S501: Obtain the expected velocity vector of each driving unit.

[0132] Optionally, obtaining the expected velocity vector of each driving unit includes:

[0133] Obtain the expected motion data of the chassis where the drive unit is located; use a preset kinematic control algorithm to determine the expected velocity vector of each drive unit according to the expected motion data.

[0134] Optionally, the expected motion data of the chassis where the drive unit is located is obtained through the robot's log data, state data, sensor data, etc. The expected motion data can also be obtained by receiving user input or data sent by other devices.

[0135] Optionally, the preset kinematic control algorithm may be a PID control algorithm, a backstepping control algorithm, a linear quadratic regulator (LQR) control algorithm, a model predictive control (MPC) algorithm, or any other algorithm capable of implementing kinematic control, and the embodiments of the present application do not impose any specific restrictions on this.

[0136] Here, the embodiment of the present application first uses a preset kinematic control algorithm to perform chassis motion control, obtains the expected velocity vector of each drive unit, and provides a basis for the control of the drive unit. Accurately obtaining the expected velocity vector can improve the accuracy of the robot's drive unit control.

[0137] S502: Obtain an average torque of the drive unit and a torque distribution method of each drive unit.

[0138] Optionally, the current actual average torque of each drive unit is calculated according to the state information fed back by the drive unit.

[0139] Optionally, obtaining the average torque of the drive unit and the torque distribution method of each drive unit includes:

[0140] Obtain an average torque of the drive unit; obtain a chassis structure corresponding to the drive unit; if the chassis structure includes a plurality of identical drive units, determine that the torque distribution mode of each drive unit is balanced distribution; if the chassis structure includes a plurality of different drive units, determine the torque distribution mode of each drive unit according to the drive unit type of each drive unit.

[0141] Optionally, according to the drive unit type of each drive unit, the torque distribution method of each drive unit is determined, including: if the drive unit is a master drive unit, the torque distribution method of the drive unit is determined to be used for output during forward and backward movement; if the drive unit is a slave drive unit, the torque distribution method of the drive unit is determined to be used to maintain heading control during forward and backward movement, and to be used for output during lateral movement.

[0142] Optionally, the output ratio of each slave drive unit during lateral shifting can also be set here.

[0143] Specifically, the output ratio of each slave drive unit and / or the main drive unit during side shifting can be determined according to the motor power ratio of the main drive unit and the slave drive unit.

[0144] In a possible implementation, the drive unit type of the drive unit is determined based on the position distribution of the drive unit on the corresponding chassis. Figure 2 As shown, the front part of the chassis includes a drive unit, and the differential gear of the chassis includes two drive units. The drive unit of the front part of the chassis, i.e., the main part of the chassis, is determined as the main drive unit, and the drive unit on the differential gear is determined as the slave drive unit. Due to the limited space under the fork teeth, the motor power of the slave drive unit will be relatively small. The slave drive unit is controlled to be only used for heading control or to exert partial force during lateral movement to reduce the load pressure on the drive unit caused by the pulling problem of the master and slave units.

[0145] In a possible implementation, the drive unit type of the drive unit is determined based on the area size of the drive unit and / or the power size of the drive motor.

[0146] For example, Figure 2 As shown, the chassis includes a large main power drive unit at the front and two slave drive units under the fork teeth. Determining the drive unit with a larger area and / or a larger motor power as the main drive unit can reduce the load pressure on the drive unit caused by the pulling problem of the master and slave units.

[0147] Here, the embodiment of the present application determines the torque distribution method of each drive unit based on the chassis structure corresponding to the drive unit. Specifically, for the case where the chassis structure is a plurality of identical drive units, the output of each drive unit is required to be consistent, thereby improving the load capacity and service life, reducing the design power consumption of the drive unit, and reducing costs. For the case where the chassis structure is a plurality of different drive units, the embodiment of the present application first determines the drive unit type of each drive unit, including a main drive unit for outputting power when moving forward and backward and a slave drive unit for only controlling the heading when moving forward and backward and for side-shifting processing. Through the above-mentioned torque distribution method, the pulling problem of equal drive units and the pulling problem of active drive units are solved, the load capacity and service life of each drive unit are improved, and the cost is reduced.

[0148] Optionally, the drive unit type input by the user for each drive unit may be received to achieve precise control of the output of the drive unit.

[0149] Optionally, a torque distribution method input by a user may be received, or the torque distribution method of each driving unit may be determined according to preset information of the robot.

[0150] Optionally, the torque distribution method here is to evenly distribute the torque to all drive units, or to specify a ratio of the torque distributed to a certain drive unit to the total torque.

[0151] S503: Determine the expected torque of each driving unit according to the average torque and the torque distribution method.

[0152] Optionally, if the drive units are equal and we want each drive unit to have a "balanced output", the current actual average torque is used as the expected torque of each drive unit; if it is a master-slave drive unit like an omnidirectional forklift, the expected torque of each drive unit is determined according to whether the instruction is to go straight or sideways. For example, when going straight, the expected torque of the slave drive unit is set to 0. So far, the expected velocity vector of each drive unit has been obtained. and the expected torque information.

[0153] Optionally, calculations are performed based on load and task conditions, and the output ratio of each drive unit is calculated. Based on the output ratio, the specific output of a drive unit is specified.

[0154] S504: For each drive unit, generate a motor control instruction of the drive unit according to the expected speed vector and the expected torque.

[0155] Here, the purpose of the embodiment of the present application is to achieve chassis speed and drive unit torque fusion control without changing the speed as the motor command, thereby solving problems such as drive unit pulling, overcurrent, and uneven output.

[0156] S505: Sending a motor control instruction to a motor corresponding to each drive unit, so that the motor controls the drive unit by executing the motor control instruction.

[0157] An embodiment of the present application proposes a method for achieving chassis speed control and drive unit torque control under the premise of using motor speed as the control quantity. Specifically, the expected speed vector of each drive unit is first obtained, and the expected torque of each drive unit is determined separately according to the average torque of the drive unit and the torque distribution method configured for each drive unit. Then, based on the expected torque and the expected speed vector, a motor control instruction is generated for each drive unit. The chassis speed and drive unit torque fusion control is achieved without changing the speed as the motor instruction. The implementation is simple, and the specific output of a certain drive unit can also be specified. Without increasing additional hardware costs, the problem of unbalanced torque of the drive unit is efficiently and accurately solved.

[0158] Next, the embodiment of the present application introduces a specific method for generating a motor control instruction of a drive unit according to a desired velocity vector and a desired torque, that is, the content of the above-mentioned step S504.

[0159] Optionally, generating a motor control instruction of the drive unit according to the expected velocity vector and the expected torque includes:

[0160] The desired velocity vector is split to obtain a desired angle and a desired velocity; the desired velocity is speed compensated according to the desired torque to obtain a complete desired velocity; and a motor control instruction of the drive unit is generated according to the desired angle and the complete desired velocity.

[0161] Among them, in order to achieve accurate speed-based control, the embodiment of the present application splits the desired speed vector into two parts. One part is to control the angle of the drive unit to achieve the direction of the vector, and the other part is to achieve the size control of the vector. The angle can be controlled by an angle controller. In order to achieve torque balance, the expected speed is compensated for based on the expected torque to obtain the complete expected speed, and then the balanced control of the torque is achieved by controlling the motor speed. The implementation method is simple and the torque control is accurate and reliable, ensuring the torque balance control of the drive unit.

[0162] Optionally, the desired speed is speed compensated according to the desired torque to obtain the complete desired speed, including:

[0163] The current torque of the drive unit is obtained; a torque control deviation value is determined according to the current torque and the desired torque; the torque control deviation value is input into a preset torque controller to obtain a speed compensation amount; and a complete desired speed is determined according to the speed compensation amount and the desired speed.

[0164] Among them, controlling the desired torque to obtain the speed compensation is a key step in achieving torque balance in the embodiment of the present application. Usually the control quantity is the differential form of the controlled quantity, that is, the control quantity of the position loop is usually the speed, the control quantity of the speed loop is the acceleration or torque, and the control quantity of the torque loop in the embodiment of the present application is the speed. Optionally, if the current torque of the drive unit is less than the desired torque, the speed compensation is continuously integrated and accumulated, and if the current torque of the drive unit is greater than the desired torque, the speed compensation is continuously integrated and decreased until the current torque is equal to the desired torque, and because the upper chassis speed is under closed-loop feedback control, it is possible to ensure that the speed expectation of the entire chassis is effectively achieved. The torque balance of the drive unit control and the reliability and accuracy of the torque control are improved through torque compensation.

[0165] Optionally, obtaining the current torque of the drive unit includes:

[0166] The current driving state of the motor corresponding to the driving unit is obtained; and the current torque is determined according to the current driving state.

[0167] Here, the embodiment of the present application can directly obtain the current driving state of the motor corresponding to the driving unit. Through the current driving state of each driving unit, the current torque can be determined efficiently and accurately, further improving the accuracy and efficiency of the driving unit control.

[0168] It can be understood that the preset torque controller here can be determined according to actual conditions, and the embodiments of the present application do not impose specific limitations on this.

[0169] Optionally, for different structures of the robot's drive unit, in order to achieve accurate and flexible control of the robot's drive unit, the embodiments of the present application provide different control methods.

[0170] Control method 1:

[0171] The drive unit is a differential drive unit; accordingly, a motor control instruction of the drive unit is generated according to the desired angle and the complete desired speed, including:

[0172] The desired angle is input into a preset angle controller to obtain a desired angular velocity; based on the desired angular velocity and the complete desired velocity, desired rotational speed instructions for the left and right motors of the differential drive unit are generated.

[0173] Here, for the differential drive unit, the embodiment of the present application can generate the desired speed instructions for the left and right motors to the motors according to the desired angular velocity and the complete desired speed, so as to control the movement and steering of the two wheels through the motors without the need for redundant parameters, thereby achieving accurate and rapid control of the drive unit.

[0174] Demonstratively, Figure 6 A schematic diagram of a differential drive unit provided in an embodiment of the present application is shown in FIG. Figure 6 As shown, the differential drive unit needs to be steered by differential speed of two wheels (left wheel 601 and right wheel 602), and the drive unit angle needs to be controlled by the drive unit layer.

[0175] In one possible implementation, Figure 7 A block diagram of a speed and torque fusion control algorithm for a differential drive unit provided in an embodiment of the present application, such as Figure 7 As shown, the control method is as follows:

[0176] Achieving the desired velocity vector It is divided into two parts: one is to control the angle of the drive unit to achieve the "direction" of the vector. The other part is to achieve the magnitude of the vector. The angle controller can be a conventional feedback controller (such as PID, or other angle controllers), which will not be elaborated here. The following speed control refers to speed control.

[0177] First, the desired velocity vector Decomposed into the desired direction (desired angle) of the drive unit and the expected speed magnitude (expected speed) The angle is controlled by the angle controller to obtain the desired angle control amount: the desired angular velocity Then, the torque is controlled (using a classic PID controller or an improved PID controller) to obtain the desired torque control amount: the speed compensation Δv f_sp . Again, the expected speed of integration Get the full expected speed of the drive unit: Will and Combine and perform kinematics calculation to obtain the desired speed of the left and right motors. Finally, limit the desired speed of the left and right motors to obtain the desired speed instructions of the left and right motors: and By sending it to the motor drive control, the integrated control of the drive unit speed and torque can be achieved.

[0178] The key is to control the desired torque and obtain the speed compensation Δv f_sp Usually the control quantity is the differential form of the controlled quantity, that is, the control quantity of the position loop is usually the speed, and the control quantity of the speed loop is acceleration or torque. However, here it is just the opposite. The control quantity of the torque loop is speed. This requires that when designing the torque controller, the main control quantity should be the integral control quantity, that is, the I term in PID. In simple terms, if the current torque of the drive unit is less than the expected torque, the speed compensation Δv f_sp Continuously accumulate points, if the current torque of the drive unit is greater than the expected torque, the speed compensation Δv f_sp The integral is continuously reduced until the current torque is equal to the expected torque. That is, "whoever has less power will continue to accelerate, and whoever has more power will continue to decelerate." And because the upper chassis speed is under closed-loop feedback control, it can ensure that the speed expectation of the entire chassis is effectively achieved.

[0179] Through this control method, the chassis speed and drive unit torque control can be achieved under the premise of taking the motor speed as the control quantity.

[0180] Control method 2:

[0181] The drive unit is a vertical drive unit; accordingly, according to the desired angle and the complete desired speed, a motor control instruction of the drive unit is generated, including:

[0182] According to the expected angle, a rotation motor control command of the vertical drive unit is generated; according to the full expected speed, a travel motor control command of the vertical drive unit is generated.

[0183] Here, since the angle of the vertical drive unit is directly controlled by the rotating motor without the need for an angle controller, the rotating motor control instructions of the vertical drive unit and the travel motor control instructions of the vertical drive unit are directly output to control the movement and steering respectively, so as to achieve accurate control of the drive unit.

[0184] Demonstratively, Figure 8 A schematic diagram of the structure of a vertical drive unit provided in an embodiment of the present application is shown in FIG. Figure 8As shown in the figure, the steering of the vertical drive unit is directly rotated by the steering motor, so its angle can be controlled by the drive unit layer, that is, the desired speed command is sent to the motor, or it can be directly controlled by the motor, that is, the desired angle command is directly sent to the motor. Because the motor control frequency is high and there is a transmission reducer that can reduce the control error, the motor control usually achieves a better control effect.

[0185] In one possible implementation, Fig. 9 A block diagram of a vertical drive unit speed and torque fusion control algorithm provided in an embodiment of the present application, such as Fig. 9 As shown, the overall structure is similar to the differential drive unit, except that the output To the walking motor, the superimposed speed compensation Δv output by the torque controller f_sp To achieve the fusion control of speed and torque. The difference is that the drive unit angle is directly controlled by the rotary motor without the need for an angle controller.

[0186] It has been verified through experiments that the current deviation of each drive unit in the drive unit control method of the related technology of the same drive unit is large and positive and negative, and the absolute value of the overall torque is large. However, using the drive unit control method of the embodiment of the present application, the torque of each drive unit is positive and basically equal, thereby achieving the effect of "balanced output", improving the load capacity and service life, and reducing the power demand and cost of the motor. For the master-slave drive unit, in the scheme of the related technology, the current fluctuation of the slave drive unit is large during the acceleration and deceleration stage, and there is a pull between the slave drive unit and the master drive unit. However, using the method in the embodiment of the present application, the current (torque) of the slave drive unit is basically suppressed to about 0.1 times the rated current, that is, basically no force is exerted, thereby ensuring that it is not dragged by the main drive unit, ensuring the safety of the slave drive unit, and improving the service life.

[0187] Fig.10 A schematic diagram of the structure of a driving unit control device of a robot provided in an embodiment of the present application, such as Fig.10 As shown, the device of the embodiment of the present application includes: a first acquisition module 1001, a second acquisition module 1002, a determination module 1003, a processing module 1004 and a sending module 1005. The driving unit control device of the robot here can be the above-mentioned processing device, the processor itself, or an integrated circuit that implements the function of the processor. It should be noted here that the division of the first acquisition module 1001, the second acquisition module 1002, the determination module 1003, the processing module 1004 and the sending module 1005 is only a division of logical functions. Physically, the two can be integrated or independent.

[0188] Wherein, the first acquisition module is used to acquire the expected velocity vector of each driving unit;

[0189] A second acquisition module is used to acquire the average torque of the drive unit and the torque distribution mode of each drive unit;

[0190] A determination module, used for determining the expected torque of each driving unit according to the average torque and the torque distribution mode;

[0191] A processing module, for generating a motor control instruction of each drive unit according to a desired velocity vector and a desired torque;

[0192] The sending module is used to send the motor control instruction to the motor corresponding to each drive unit, so that the motor controls the drive unit by executing the motor control instruction.

[0193] Optionally, the processing module includes:

[0194] A splitting submodule is used to split the desired velocity vector to obtain a desired angle and a desired velocity;

[0195] A compensation submodule, used for performing speed compensation on the expected speed according to the expected torque to obtain the complete expected speed;

[0196] The generation submodule is used to generate a motor control command for the drive unit according to the desired angle and the complete desired speed.

[0197] Optionally, the compensation submodule is specifically used for:

[0198] Get the current torque of the drive unit;

[0199] Determine the torque control deviation value according to the current torque and the expected torque;

[0200] Inputting the torque control deviation value into the preset torque controller to obtain the speed compensation amount;

[0201] Based on the speed compensation amount and the desired speed, the full desired speed is determined.

[0202] Optionally, the compensation submodule is further specifically used for:

[0203] Get the current driving state of the motor corresponding to the driving unit;

[0204] According to the current driving state, the current torque is determined.

[0205] Optionally, the drive unit is a differential drive unit;

[0206] Accordingly, the generation submodule is specifically used to:

[0207] Inputting the desired angle into the preset angle controller to obtain the desired angular velocity;

[0208] According to the expected angular velocity and the complete expected velocity, the expected rotational speed instructions for the left and right motors of the differential drive unit are generated.

[0209] Optionally, the drive unit is a vertical drive unit;

[0210] Accordingly, the generation submodule is also specifically used for:

[0211] Generate a rotation motor control command for the vertical drive unit according to the desired angle;

[0212] Generates travel motor control commands for the vertical drive unit based on the full expected speed.

[0213] Optionally, the first acquisition module is specifically used for:

[0214] Obtaining expected motion data of the chassis where the drive unit is located;

[0215] A preset kinematic control algorithm is used to determine the expected velocity vector of each drive unit according to the expected motion data.

[0216] Optionally, the second acquisition module is specifically used for:

[0217] Obtain an average torque of the drive unit; obtain a chassis structure corresponding to the drive unit; if the chassis structure includes a plurality of identical drive units, determine that the torque distribution mode of each drive unit is balanced distribution; if the chassis structure includes a plurality of different drive units, determine the torque distribution mode of each drive unit according to the drive unit type of each drive unit.

[0218] Optionally, the second acquisition module is further specifically used for:

[0219] If the drive unit is a master drive unit, the torque distribution method of the drive unit is determined to be used for output during forward and backward movement; if the drive unit is a slave drive unit, the torque distribution method of the drive unit is determined to be used for maintaining heading control during forward and backward movement, and for output during lateral movement.

[0220] refer to Fig.11, which shows a schematic diagram of the structure of a driving unit control device 1100 of a robot suitable for implementing an embodiment of the present disclosure, and the driving unit control device 1100 of the robot can be a terminal device or a server. The terminal device can include but is not limited to mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, personal digital assistants (PDAs), tablet computers (Portable Android Devices, PADs), portable multimedia players (PMPs), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Fig.11 The driving unit control device of the robot shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.

[0221] like Fig.11 As shown, the driving unit control device 1100 of the robot may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 1101, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1102 or a program loaded from a storage device 1108 to a random access memory (RAM) 1103. Various programs and data required for the operation of the driving unit control device 1100 of the robot are also stored in the RAM 1103. The processing device 1101, the ROM 1102, and the RAM 1103 are connected to each other via a bus 1104. An input / output (I / O) interface 1105 is also connected to the bus 1104.

[0222] Typically, the following devices may be connected to the I / O interface 1105: input devices 1106 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; output devices 1107 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; storage devices 1108 including, for example, a magnetic tape, a hard disk, etc.; and communication devices 1109. The communication device 1109 may allow the robot's drive unit control device 1100 to communicate with other devices wirelessly or by wire to exchange data. Although Fig.11 The driving unit control device 1100 of the robot having various devices is shown, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead.

[0223] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program contains program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network through a communication device 1109, or installed from a storage device 1108, or installed from a ROM 1102. When the computer program is executed by the processing device 1101, the above-mentioned functions defined in the method of the embodiment of the present disclosure are executed.

[0224] It should be noted that the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, or infrared system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.

[0225] The computer-readable medium may be included in the driving unit control device of the robot; or may exist independently without being assembled into the driving unit control device of the robot.

[0226] The computer-readable medium carries one or more programs. When the one or more programs are executed by the driving unit control device of the robot, the driving unit control device of the robot executes the method shown in the above embodiment.

[0227] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0228] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0229] The units involved in the embodiments described in the present disclosure may be implemented by software or hardware. The name of a unit does not limit the unit itself in some cases. For example, the first acquisition unit may also be described as a "unit for acquiring at least two Internet Protocol addresses".

[0230] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.

[0231] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, or infrared systems, devices, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0232] The driving unit control device of the robot in the embodiment of the present application can be used to execute the technical solutions in the above-mentioned method embodiments of the present application. Its implementation principles and technical effects are similar and will not be repeated here.

[0233] An embodiment of the present application also provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, they are used to implement any of the above-mentioned methods for controlling a driving unit of a robot.

[0234] An embodiment of the present application also provides a computer program product, including a computer program, which, when executed by a processor, is used to implement any of the above-mentioned methods for controlling a driving unit of a robot.

[0235] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0236] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0237] Those skilled in the art will readily appreciate other embodiments of the present application after considering the specification and practicing the invention disclosed herein. The present application is intended to cover any modification, use or adaptation of the present application, which follows the general principles of the present application and includes common knowledge or customary techniques in the art that are not disclosed in the present application. The specification and examples are intended to be exemplary only, and the true scope and spirit of the present application are indicated by the following claims.

[0238] It should be understood that the present application is not limited to the precise structures that have been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present application is limited only by the appended claims.

Claims

1. A method for controlling a driving unit of a robot, characterized in that: include: Get the desired velocity vector of each drive unit; Acquire an average torque of the drive unit and a torque distribution mode of each drive unit; Determining a desired torque of each of the drive units according to the average torque and the torque distribution mode; For each drive unit, generating a motor control instruction of the drive unit according to the desired velocity vector and the desired torque; The motor control instruction is sent to the motor corresponding to each of the driving units, so that the motor controls the driving unit by executing the motor control instruction.

2. The method according to claim 1, characterized in that The step of generating a motor control instruction for the drive unit according to the expected velocity vector and the expected torque includes: Splitting the desired velocity vector to obtain a desired angle and a desired velocity; Performing speed compensation on the desired speed according to the desired torque to obtain a complete desired speed; A motor control command for the drive unit is generated according to the desired angle and the complete desired speed.

3. The method according to claim 2, characterized in that The performing speed compensation on the expected speed according to the expected torque to obtain a complete expected speed includes: Acquire the current torque of the driving unit; Determining a torque control deviation value according to the current torque and the expected torque; Inputting the torque control deviation value into a preset torque controller to obtain a speed compensation amount; A full desired speed is determined based on the speed compensation amount and the desired speed.

4. The method according to claim 3, characterized in that The obtaining of the current torque of the driving unit comprises: Acquire the current driving state of the motor corresponding to the driving unit; According to the current driving state, a current torque is determined.

5. The method according to claim 4, characterized in that Wherein the driving unit is a differential driving unit; Accordingly, generating a motor control instruction of the drive unit according to the expected angle and the complete expected speed includes: Inputting the desired angle into a preset angle controller to obtain a desired angular velocity; According to the desired angular velocity and the complete desired velocity, desired rotational speed instructions for the left and right motors of the differential drive unit are generated.

6. The method according to claim 4, characterized in that The driving unit is a vertical driving unit; Accordingly, generating a motor control instruction of the drive unit according to the expected angle and the complete expected speed includes: generating a rotation motor control instruction of the vertical drive unit according to the desired angle; A travel motor control instruction of the vertical drive unit is generated according to the complete expected speed.

7. The method according to any one of claims 1 to 6, characterized in that: The obtaining of the expected velocity vector of each driving unit comprises: Acquire expected motion data of the chassis where the drive unit is located; A preset kinematic control algorithm is used to determine the expected velocity vector of each drive unit according to the expected motion data.

8. The method according to any one of claims 1 to 6, characterized in that: The obtaining of the average torque of the driving unit and the torque distribution mode of each driving unit includes: Obtaining an average torque of the drive unit; Acquire a chassis structure corresponding to the drive unit; If the chassis structure includes a plurality of identical drive units, determining that the torque distribution mode of each drive unit is balanced distribution; If the chassis structure includes a plurality of different drive units, the torque distribution mode of each drive unit is determined according to the drive unit type of each drive unit.

9. The method according to claim 8, characterized in that Determining the torque distribution mode of each of the drive units according to the drive unit type of each of the drive units includes: If the driving unit is a main driving unit, determining the torque distribution mode of the driving unit to be used for outputting force when moving forward and backward; If the driving unit is a slave driving unit, the torque distribution mode of the driving unit is determined to be used for maintaining heading control during forward and backward movement and for outputting force during lateral movement.

10. A robot drive unit control device, characterized in that: The device comprises: A first acquisition module, used to acquire a desired velocity vector of each driving unit; A second acquisition module, used for acquiring an average torque of the driving unit and a torque distribution mode of each driving unit; A determination module, configured to determine a desired torque of each of the driving units according to the average torque and the torque distribution mode; A processing module, configured to generate, for each drive unit, a motor control instruction of the drive unit according to the desired velocity vector and the desired torque; The sending module is used to send the motor control instruction to the motor corresponding to each of the driving units, so that the motor controls the driving unit by executing the motor control instruction.

11. A robot drive unit control device, characterized in that: include: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 9.

12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer program instructions, which are used to implement the method according to any one of claims 1 to 9 when the computer program instructions are executed by a processor.

13. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the method according to any one of claims 1 to 9 is implemented.