Robot control method, robot and electronic equipment
By determining high-precision components in robot control and applying reverse kinematics algorithms, the problem of low control accuracy in the prior art is solved, and the efficiency and accuracy of task execution are improved.
Patent Information
- Application Number
- CN202411575507.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-05
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2044-11-05
AI Technical Summary
The existing robot control methods have the problem of low control accuracy, resulting in low task execution efficiency.
By determining among the components contained in the robot, the first component whose accuracy is higher than or equal to the preset accuracy threshold (including the robot arm at which the end of the robot arm is located), and using the reverse kinematics algorithm, the target of each joint in the first component is determined. angle, and then control the robot.
The control accuracy and task execution efficiency of the robot control process are improved, especially when facing high-precision tasks, and the task cannot be executed due to low control accuracy is avoided.
Smart Images

Figure CN119458321A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of robot control technology, and in particular to a robot control method, a robot and an electronic device. Background Art
[0002] With the continuous advancement of science and technology, robots are being used more and more widely in people's lives, and along with it, the efficiency of robots' task execution is constantly improving.
[0003] Taking the execution of tasks through the end of the robot arm as an example, at present, the movement angles of each joint of the robot are usually planned according to the difference between the current posture of the end of the robot arm and the target posture, so as to achieve the purpose of controlling the robot to complete the task.
[0004] However, current robot control methods have the problem of low control accuracy, which in turn leads to low task execution efficiency. Summary of the invention
[0005] In view of this, an embodiment of the present application provides a robot control method, a robot and an electronic device, which can improve the control accuracy and task execution efficiency of the robot control process.
[0006] In a first aspect, an embodiment of the present application provides a robot control method, comprising: determining a current posture and a target posture of an end of a robotic arm of the robot; determining, from various components included in the robot, a first component having a control accuracy greater than or equal to a preset accuracy threshold, the first component comprising the robotic arm where the end of the robotic arm is located; determining, based on the gap between the current posture and the target posture, the target angles corresponding to each joint in the first component through an inverse kinematics algorithm; and controlling the robot based on the target angles corresponding to each joint in the first component.
[0007] In the second aspect, an embodiment of the present application provides a robot control device, comprising: a first determination unit, used to determine the current posture and target posture of the end of a robotic arm of the robot; a second determination unit, used to determine, from the components included in the robot, a first component whose control accuracy is higher than or equal to a preset accuracy threshold, the first component including the robotic arm where the end of the robotic arm is located; an angle determination unit, used to determine, according to the gap between the current posture and the target posture, the target angle corresponding to each joint in the first component through an inverse kinematics algorithm; a control unit, used to control the robot according to the target angle corresponding to each joint in the first component.
[0008] In a third aspect, an embodiment of the present application provides a robot, comprising a control module, wherein the control module is used to execute the robot control method described in the first aspect above.
[0009] In a fourth aspect, an embodiment of the present application provides an electronic device, comprising: a processor; and a memory for storing processor executable instructions, wherein the processor is used to execute the robot control method described in the first aspect above.
[0010] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the storage medium stores a computer program, and the computer program is used to execute the robot control method described in the first aspect above.
[0011] In a sixth aspect, an embodiment of the present application provides a computer program product, which includes a computer program. When the computer program is executed by a processor of a computer device, the computer device is enabled to execute the robot control method described in the first aspect above.
[0012] In a seventh aspect, an embodiment of the present application provides a chip comprising: a processor; and a memory for storing processor executable instructions, wherein the processor is used to execute the robot control method described in the first aspect above.
[0013] The embodiment of the present application provides a robot control method, electronic device and medium, which determines the current posture and target posture of the end of the robot's mechanical arm during the robot's task execution; determines a first component whose control accuracy is higher than or equal to a preset accuracy threshold from the components included in the robot, and the first component includes the mechanical arm where the end of the mechanical arm is located; determines the target angle corresponding to each joint in the first component through an inverse kinematics algorithm according to the gap between the current posture and the target posture; and controls the robot according to the target angle corresponding to each joint in the first component. The technical solution of the present application can improve the control accuracy and task execution efficiency of the robot control process. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1 Shown is a schematic diagram of the system architecture of a robot control system provided by an exemplary embodiment of the present application.
[0015] Figure 2 Shown is a flow chart of a robot control method provided by an exemplary embodiment of the present application.
[0016] Figure 3 Shown is a flow chart of a robot control method provided by an exemplary embodiment of the present application.
[0017] Figure 4 Shown is a flow chart of a robot control method provided by an exemplary embodiment of the present application.
[0018] Figure 5 Shown is a flow chart of a robot control method provided by an exemplary embodiment of the present application.
[0019] Figure 6 Shown is a schematic structural diagram of a robot control device provided by an exemplary embodiment of the present application.
[0020] Figure 7 Shown is a block diagram of an electronic device for executing a robot control method provided by an exemplary embodiment of the present application. DETAILED DESCRIPTION
[0021] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only 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.
[0022] Application Overview
[0023] At present, robots often perform tasks through the end of the robotic arm and the actuator deployed at the end of the robotic arm. When performing a task, the robot usually determines the current position and target position of the end of the robotic arm, and then reversely calculates how the joints of the robot should move based on the current position and target position so that the end of the robotic arm can reach the target position. In this way, the purpose of planning the movement angles and movement trajectories of each joint of the robot is achieved. The robot can be controlled according to the planned movement angles and movement trajectories to complete the process of moving the end of the robotic arm to the target position. Among them, the robot is a robot that includes one or more robotic arms and relies on the position of each robotic arm end to perform tasks.
[0024] However, due to process limitations and other reasons, the control accuracy of different components of the robot is often different. Taking the robot as an example, which consists of three components: arms, waist and chassis, under normal circumstances, the control accuracy of the arms is the highest, followed by the waist, and the lowest is the chassis. However, in the process of controlling the robot, this fact is often ignored, which often leads to the need to adjust all components of the robot at the same time, and the result of the simultaneous movement of all components is that there will be a large gap between the position and posture of the robot's mechanical arm after adjustment and the target position and posture, that is, the control accuracy of the mechanical arm is affected by the overall control accuracy of the robot and becomes lower. Obviously, for tasks with high control accuracy requirements, such as performing surgery through a surgical robot, the task completion and task execution efficiency of this control method are both low.
[0025] In view of the above technical problems, the embodiment of the present application provides a robot control method. During the robot's task execution, a first component whose control accuracy is higher than or equal to a preset accuracy threshold is determined from the components contained in the robot, and then the target angles corresponding to the joints in the first component are determined by an inverse kinematics algorithm according to the difference between the current posture and the target posture of the robot's mechanical arm end. Finally, according to the target angles corresponding to the joints in the first component, the robot is controlled to perform the task. In this way, the embodiment of the present application can ensure that during the robot's task execution, the process of moving the robot's mechanical arm end from the current posture to the target posture can be achieved by controlling only the joints in the first component with higher execution accuracy, thereby ensuring the control accuracy of the robot during the task execution. At the same time, in the case where the task to be performed is a high-precision task, based on the method in the embodiment of the present application, the situation where the task cannot be performed due to the low control accuracy of the robot can be avoided, further ensuring the efficiency and completion of the task execution.
[0026] Exemplary Systems
[0027] Figure 1 FIG. 1 is a schematic diagram of a system architecture of a robot control system provided by an exemplary embodiment of the present application. Figure 1 As shown, the robot control system 100 may include a robot 110, which is a robot deployed with a mechanical arm, such as a single-arm robot, a dual-arm robot, a multi-arm robot, etc. The robot 110 is used to control the end of its own mechanical arm to adjust from the current posture to the target posture, and after adjusting to the target posture, the target object 120 is processed through the end of the mechanical arm. The robot can be used to perform a variety of scenario tasks such as handling tasks, welding tasks, and surgical tasks. Taking the handling task as an example, the robot 110 can be used to carry the target object 120, and taking the surgical task as an example, the robot 110 can be used to perform surgery on the target object 120. Sensors and controllers may be deployed in the robot 110, and the controller can be used to control the robot to perform the robot control method provided in the embodiment of the present application.
[0028] In one example, the sensor may be used to determine the current posture of the end of the robot arm of the robot 110. Thus, the controller may determine the current posture of the end of the robot arm of the robot 110 through the sensor, and control the robot 110 to adjust the posture of the end of its own robot arm to the target posture according to the difference between the current posture and the pre-stored target posture.
[0029] In one example, the controller can determine the current position and target position of the end of the robot arm of the robot 110, and determine the first component whose control accuracy is greater than or equal to the preset accuracy threshold from the components included in the robot, and then solve the target angles corresponding to the joints in the first component according to the difference between the current position and the target position of the end of the robot arm through the inverse kinematics algorithm, determine the target angles corresponding to the joints in the first component, and finally control the robot according to the determined target angles. The current position of the end of the robot arm is the position of the end of the robot arm and the orientation of the actuator set at the end of the robot arm, and the target position is the target position corresponding to the task performed by the robot.
[0030] In other examples, the controller may be located outside the robot 110, such as being a device independent of the robot 110. Exemplarily, the controller may include at least one of a logic controller, a machine vision controller, a motion controller, and the like.
[0031] It should be understood that the above application scenario examples are only shown to facilitate understanding of the spirit and principle of the present application, and the embodiments of the present application are not limited thereto. On the contrary, the embodiments of the present application can be applied to any scenario that may be applicable.
[0032] Exemplary Methods
[0033] Figure 2 Shown is a flow chart of a robot control method provided by an exemplary embodiment of the present application. Figure 2 The method can be specifically executed by a robot, an intelligent terminal deployed on or outside the robot, a server interacting with the robot, and other electronic devices. For the convenience of description, the robot executing the robot control method is taken as an example for explanation.
[0034] like Figure 2 As shown, the robot control method may include the following contents.
[0035] 210: Determine the current pose and target pose of the end of the robot's manipulator arm.
[0036] In some embodiments, the robot may be a single-arm robot, a dual-arm robot, a three-arm robot, or the like, which is equipped with at least one mechanical arm. The robot controls the rotation of each joint on the robot to control the movement of the mechanical arm of the robot, thereby performing a task. The task performed by the robot usually has a corresponding target posture, which may be preset. During the robot's task execution, the posture of the end of the mechanical arm of the robot will change accordingly. Therefore, the movement of each joint in the robot can usually be controlled based on the difference between the current posture of the end of the mechanical arm and the target posture, so as to adjust the posture of the end of the mechanical arm.
[0037] Exemplarily, the robot may determine the position of the end of its own robotic arm at the current moment as the current position of the end of the robotic arm. The end of the robotic arm may be the end of at least one of the robotic arms included in the robot. Taking a dual-arm robot as an example, the current position of the end of the robotic arm of the dual-arm robot may be at least one of the current position of the end of the left arm and the current position of the end of the right arm.
[0038] Furthermore, the robot can determine the target posture corresponding to the task it performs, so that the robot can be subsequently controlled based on the current posture and the target posture.
[0039] 220: Determine, from various components included in the robot, a first component whose control accuracy is greater than or equal to a preset accuracy threshold, wherein the first component includes a robotic arm at which a distal end of the robotic arm is located.
[0040] In some embodiments, the robot is composed of various components. For each component, the component can be a part of the robot (such as a robot arm, waist, leg, etc.), or a structure composed of at least some of the components included in a part (such as a part of a robot arm, a part of a leg, etc.), or a structure formed by connecting components belonging to different parts (such as a structure composed of a robot arm and a robot waist joint, etc.).
[0041] In other embodiments, only by adjusting the posture of the robot through a component with sufficiently high control accuracy can the difference between the posture of the robot's mechanical arm end after adjustment and the target posture be considered sufficiently small. Therefore, the robot can determine the first component whose control accuracy is higher than or equal to the preset accuracy threshold from the components it contains.
[0042] The control accuracy is the degree of agreement between the output of the robot's control system and the expected value. The control accuracy of the first component is the degree of agreement between the output of the robot's control system and the expected value when only the joints in the first component are controlled.
[0043] In one example, the preset accuracy threshold can be a numerical value (such as 50, 100, etc., which are positively or negatively correlated with the accuracy), or it can be the control accuracy of a certain part of the robot (such as the control accuracy of the robotic arm, the control accuracy of the waist, the control accuracy of the legs, etc.), or it can be any value within a certain range (such as any accuracy value between the control accuracy of the robotic arm and the control accuracy of the waist).
[0044] In one example, the robot control method described in the present application is applied to a scenario in which the robot performs a task through a robotic arm end and an actuator disposed at the robotic arm end. Therefore, if the robot is to be controlled to adjust its posture through a first component, the first component should include the robotic arm where the robotic arm end is located.
[0045] In one example, an actuator may be provided at the end of the robotic arm, and the actuator may be a gripper, a suction cup, a cutting tool, a welding gun, a sensor integration, etc.
[0046] 230: According to the difference between the current posture and the target posture, the target angle corresponding to each joint in the first component is determined by an inverse kinematics algorithm.
[0047] In some embodiments, after determining a first component including a robotic arm and having a control accuracy greater than or equal to a preset accuracy threshold, the robot can complete the task by controlling only the first component of itself. Thus, the robot can determine the difference between the current posture and the target posture, and determine the target angles corresponding to each joint in the first component through an inverse kinematics algorithm. If the angles of each joint in its corresponding coordinate system are all the angle values of the corresponding target angles, the posture of the end of the robotic arm of the robot is the target posture.
[0048] 240: Control the robot according to the target angles corresponding to the joints in the first component.
[0049] In some embodiments, after determining the target angle, the robot can adjust the angle of each joint in the first component according to the current angle and the target angle of the joint to adjust the angle of the joint to the target angle, thereby realizing the process of adjusting the end of the robot's robotic arm from the current posture to the target posture.
[0050] A robot control method provided by an embodiment of the present application determines the current posture and target posture of the end of the robot's mechanical arm during the robot's task execution, and then determines the first component containing the mechanical arm where the end of the mechanical arm is located and whose control accuracy is higher than or equal to a preset accuracy threshold from the components contained in the robot, and then determines the target angles corresponding to each joint in the first component according to the difference between the current posture and the target posture through an inverse kinematics algorithm, and finally controls the robot according to the target angles corresponding to each joint in the first component. In this way, in the process of the robot executing the task, the embodiment of the present application only completes the task through the first component whose control accuracy is higher than or equal to the preset accuracy threshold, avoiding the influence of the components with lower control accuracy among the components contained in the robot, thereby ensuring the control accuracy during the robot control process. At the same time, in the case where the task performed by the robot is a high-precision task, based on the method in the embodiment of the present application, it can avoid the situation where the task cannot be executed due to the low control accuracy of the robot, and further ensure the completion of the task.
[0051] According to an embodiment of the present application, the robot in the present application may be a robot with one or more robotic arms deployed. Therefore, in step 210, when determining the current posture and target posture of the end of its own robotic arm, the robot may determine at least one robotic arm from the robotic arms it contains as the target robotic arm, and determine the current posture and target posture of the end of the robotic arm.
[0052] In one example, the robot can determine the robotic arm required to perform the scenario task as the target robotic arm based on the scenario task that the robot needs to perform, and determine the target posture of the target robotic arm.
[0053] In one example, the robot may receive a task execution instruction, and the task execution instruction may carry a robot arm identifier of a target robot arm. Then, the robot may determine the target robot arm from among the robot arms it contains according to the robot arm identifier in the task execution instruction.
[0054] In one example, the robot may be a dual-arm robot, so when determining the posture of its own robotic arm end, the robot may determine at least one of the current posture of its left arm end and the current posture of its right arm end as the current posture of its own robotic arm end.
[0055] In this embodiment, the robot can flexibly determine the robotic arm that needs to perform the task, as well as the current posture and target posture of the end of the robotic arm that needs to perform the task, thereby more accurately controlling the robot.
[0056] According to an embodiment of the present application, step 220 can determine, from among the components included in the robot, a component that includes a robotic arm and whose control accuracy is higher than or equal to a preset accuracy threshold, as the first component based on a preset accuracy threshold.
[0057] In one example, a robot is composed of components with different control precisions. For example, the robot includes a mechanical arm, a waist and a bottom, and the bottom may be a leg or a chassis. Taking the robot as a humanoid robot as an example, the components that make up the robot may be: a mechanical arm, a waist and a leg. Usually, the control precision of the mechanical arm is the highest, followed by the waist, and the lowest is the leg. Among them, the humanoid robot may be a humanoid bipedal robot, and the legs of the robot may be designed to imitate the gait of humans or other animals, including various joints such as knee joints and hip joints.
[0058] In one example, for each component, the component can be an independent part of the robot (such as a robotic arm or waist, etc.), or a part of an independent part (for example, taking a robotic arm including 10 joints as an example, the component can be a component composed of 5 adjacent joints in the robotic arm and connecting rods connected to the 5 adjacent joints), or a combination of two independent parts (such as robotic arm + waist, waist + leg, robotic arm + waist + leg, etc.).
[0059] In one example, each component has its corresponding control accuracy. For each component, the control accuracy of the component is determined by the component with the lowest control accuracy among the components that make up the component. For example, if the component includes a robot arm + waist + leg, the control accuracy of the component is the control accuracy corresponding to the robot leg.
[0060] In one example, the robot can determine the components including the robotic arm from the components included in itself as the candidate components, and determine the control accuracy of each candidate component. From the candidate components, determine the component with a control accuracy higher than or equal to a preset accuracy threshold as the first component.
[0061] In another example, the robot may determine, from among the components it contains, components whose control accuracy is greater than or equal to a preset accuracy threshold and contain the robot arm where the end of the robot arm is located, as the selected components, and randomly select any one of the selected components from the selected components as the first component. Alternatively, according to the control accuracy corresponding to each of the selected components, the selected component with the highest control accuracy is determined from among the selected components as the first component. The component containing the robot arm may be a component containing the entire robot arm, or may be a component that only includes the end effector of the robot arm and the joint connected to the end effector.
[0062] In this embodiment, the robot can select components with higher control accuracy from various components contained in itself to perform tasks, thereby ensuring the completion of the task and the control accuracy of the robot during task execution.
[0063] According to one embodiment of the present application, step 230 may include: according to the gap between the current posture and the target posture, solving the target angle corresponding to each joint in the first component through an inverse kinematics algorithm; if the solution is successful, determining that each joint in the first component is used to perform the target task, and determining the target angle corresponding to each joint in the first component based on the solution result.
[0064] It should be noted that the target task is used to instruct the end of the robot arm to move from the current position to the target position. That is to say, the target task is only used to characterize the process of moving the end of the robot arm from the current position to the target position. It can be a part of the scenario tasks such as handling tasks and welding tasks performed by the robot, or it can be a predecessor task or a successor task of the scenario tasks performed by the robot, but it is not the same task as the scenario tasks performed by the robot.
[0065] In one example, the process of solving the target angle corresponding to each joint in the first component by an inverse kinematics algorithm can usually be adjusted in an iterative adjustment manner, and the specific process can be as follows: First, the robot can determine the current angle of each joint in the first component as the initialized joint angle. Then, the joint angle corresponding to each joint is adjusted, and the difference between the adjusted posture of the end of the manipulator and the target posture is determined according to the forward kinematics equation. After that, the joint angle of each joint in the first component is continued to be adjusted according to the difference between the current posture of the end of the manipulator before adjustment and the target posture, and the difference between the posture of the end of the manipulator after adjustment and the target posture. Finally, the above process is iterated until the number of iterations meets the number threshold or the difference between the posture of the end of the manipulator after adjustment and the target posture is less than the preset difference threshold.
[0066] In one example, when constructing the forward kinematics equation, the linear relationship between the velocities of the joints in the end of the robot and the first component can be constructed through the Jacobian matrix. Therefore, when solving the angles of the joints in the first component through the inverse kinematics algorithm, the change in joint velocity can be calculated through the Jacobian matrix, and the joint angles can be updated according to the change in joint velocity, thereby determining the adjusted posture of the end of the robot. It should be noted that solving the target angles of each joint contained in the robot through the inverse kinematics algorithm is already a relatively mature technology, and this manual will not go into details.
[0067] In one example, the damped least square method can also be used to implement the above process of solving the target angle of each joint in the first component. Specifically, the robot can determine the current joint angle of each joint in the first component as the initial joint angle θ0. Secondly, the robot can determine the Jacobian matrix J(θ) of the current state based on the initial joint angle. The specific determination formula can be Among them, θ is the angle corresponding to each joint. At the initial moment, θ=θ0. is the joint velocity corresponding to each joint, which can be obtained by differentiating the angle corresponding to each joint. is the speed of the end of the robot arm, which can be obtained by differentiating the posture of the end of the robot arm. Then, the robot can determine the difference between the current posture of the end of the robot arm and the target posture e = X target -X θ , X target is the target pose, X θ is the position of the end of the robot arm when the joint angle is θ. Then, the robot can use the Jacobian matrix to update the joint angle, and the corresponding update formula is Δθ=(J T J+λ 2 I) -1 J T e, where Δθ is the increment of the joint angle, J is the Jacobian matrix, and J T is the transpose of the Jacobian matrix, λ is the damping factor, which can be a positive number. It is specifically used to prevent numerical instability caused by the Jacobian matrix approaching a singular matrix. It is usually given artificially. I is the unit matrix, and its size is usually n×n. n is the number of joints in the first component, that is, the degree of freedom of the first component. e is the difference vector determined at the current moment, specifically the difference between the current pose of the end of the manipulator and the target pose. Finally, the above process is iterated to update the angles of each joint in the first component until the pose of the end of the manipulator reaches the target pose.
[0068] In one example, the forward kinematics equation can be constructed in the following manner: the robot can determine the joints and the connecting rods connecting the joints contained in the first component, and then determine the joint type of each joint (such as a revolute joint, a spherical joint, a cylindrical joint, etc.) and the structural parameters such as the connecting rod length of each connecting rod. After that, a local coordinate system is established for each joint and the end effector in the first component. Then, based on the mechanical structure in the first component, the forward kinematics equation from the joint variables to the position and posture of the end effector is derived.
[0069] In another example, each joint included in the first component of the robot and the connecting rods between the joints may be predefined. Similarly, the forward kinematics equations between the joint variables of each joint in the first component and the position and posture of the end effector of the robot arm may also be predefined.
[0070] In one example, if the target angle of each joint in the first component can be solved by the inverse kinematics algorithm, it can be determined that the process of adjusting the posture of the end of the robot arm from the current posture to the target posture can be achieved by controlling each joint in the first component. That is, each joint in the first component is used to perform the target task, which is the task of adjusting the posture of the end of the robot arm from the current posture to the target posture.
[0071] In one example, the robot can determine the solution result, and based on the solution result and the above-mentioned forward kinematics equation, predict the difference between the posture of the end of its own robotic arm and the aforementioned target posture at each angle corresponding to the solution result for each joint in the first component. If the difference is less than a preset difference threshold, the robot can determine that the target angle of each joint in the first component has been successfully solved according to the inverse kinematics algorithm.
[0072] In one example, as mentioned above, when the target angle of each joint in the first component is determined by an iterative method, under normal circumstances, the solution result will be obtained only when the iteration termination condition is met, and the iteration termination condition includes that the number of iterations meets the number threshold or the difference between the posture of the end of the mechanical arm after adjustment and the target posture is less than the preset difference threshold. When the iteration termination condition satisfied by the solution result is that the number of iterations meets the number threshold, it can be considered that the accurate target angle cannot be obtained even if the iteration continues, that is, the target angle solution is unsuccessful. When the iteration termination condition satisfied by the solution result is that the difference between the posture of the end of the mechanical arm after adjustment and the target posture is less than the preset difference threshold, it can be considered that the target angle solution is successful. Therefore, when determining the solution result, the robot can also determine the iteration termination condition satisfied by the solution result, and judge whether the target angle in the first component is successfully solved according to the iteration termination condition.
[0073] In one example, the iteration termination condition includes a first condition and a second condition, the first condition being that the number of iterations satisfies a preset number threshold, and the second condition being that the difference between the adjusted posture of the end of the robotic arm and the target posture is less than a preset difference threshold. When the iteration termination condition satisfied by the solution result is the first condition, the robot can determine that the target angle solution is unsuccessful, and when the iteration termination condition satisfied by the solution result is the second condition, the robot can determine that the target angle solution is successful.
[0074] In one example, the solution result may be the target angles corresponding to the joints in the first component, or a matrix containing the target angles corresponding to the joints in the first component. Thus, the robot may determine the target angles corresponding to the joints in the first component according to the solution result. Subsequently, the robot may control the robot according to the determined target angles.
[0075] In this embodiment, the robot can determine whether the robot's own mechanical arm end can be moved from the current posture to the target posture only by the first component through the solution results of the target angles corresponding to the joints in the first component. If the judgment result is yes, the robot is controlled by the joints in the first component to perform the target task while ensuring the control accuracy, thereby ensuring the execution efficiency of the target task.
[0076] According to one embodiment of the present application, step 230 may include: if the solution is unsuccessful, determining a second component from the components included in the robot, the second component including a first component and an auxiliary component, the control accuracy of the auxiliary component is lower than the control accuracy of the first component, and the second component is used to perform the target task; according to the gap between the current posture and the target posture, determining the target angles corresponding to each joint in the second component through an inverse kinematics algorithm, and controlling the robot according to the target angles corresponding to each joint in the second component.
[0077] In one example, when the target angle of each joint in the first component cannot be successfully solved according to the inverse kinematics algorithm, the robot can determine that the end of the robot arm cannot be adjusted from the current posture to the target posture by controlling the first component alone. Therefore, the robot can determine the second component including the first component and the auxiliary component from the components included in the robot to perform the target task. The control accuracy of the auxiliary component is lower than the control accuracy of the first component.
[0078] In one example, when the robot is composed of three parts: a mechanical arm, a waist and a chassis, the first component may be the mechanical arm, the auxiliary component may be the waist, and the second component may be the mechanical arm + waist. When the robot is composed of a mechanical arm + a chassis, the first component may be the mechanical arm, the auxiliary component may be the chassis, and the second component may be the mechanical arm + the chassis. The chassis may be a wheeled chassis or a tracked chassis. Compared with the six-degree-of-freedom joints included in the legs of the mechanical arm, the height of the chassis does not change, and the chassis can only control the heading angle of the robot. Therefore, the chassis can be regarded as a three-degree-of-freedom joint, and the three degrees of freedom include the horizontal coordinate, the vertical coordinate and the heading angle of the chassis in three-dimensional space.
[0079] In one example, assuming that the robot arm includes 10 joints, in the case where the first component is a component consisting of 5 adjacent joints in the robot arm and connecting rods connected to the 5 adjacent joints, the auxiliary component can be a component formed by other components in the robot arm except the first component, and the second component can be the robot arm including 10 joints. In the case where the first component is a robot arm + waist, the second component can also be a robot arm + waist + legs.
[0080] In one example, the specific structures corresponding to the first component, the auxiliary component and the second component can be pre-set or determined by the robot during the execution of the task based on the control accuracy of the various components that make up the robot (such as joints, connecting rods, etc.).
[0081] In one example, after determining the second component, the robot can solve the target angles corresponding to the joints in the second component by using an inverse kinematics algorithm based on the difference between the current posture and the target posture. It should be noted that the process of solving the target angles corresponding to the joints in the second component can be specifically referred to the process of solving the target angles corresponding to the joints in the first component, and this specification will not be repeated here.
[0082] In one example, after determining the target angle corresponding to each joint in the second component, the robot can adjust the angle of each joint according to the initial angle corresponding to each joint and its corresponding target angle, so as to control the robot to adjust the end of the robotic arm from the current posture to the target posture.
[0083] In this embodiment, when the end of the robot arm cannot be adjusted from the current posture to the target posture by the first component alone, other components in the robot are introduced to coordinate with the first component to complete the target task, thereby ensuring the task execution efficiency of the robot.
[0084] According to an embodiment of the present application, the control accuracy of the auxiliary component is lower than a preset accuracy threshold. Controlling the robot according to the target angles corresponding to the joints in the second component may include: determining the target angles corresponding to the joints in the auxiliary component according to the target angles corresponding to the joints in the second component; controlling the robot to adjust the posture according to the target angles corresponding to the joints in the auxiliary component, and after the posture adjustment is completed, re-determining the current posture of the end of the robot arm, and re-determining the target angles corresponding to the joints in the first component according to the target posture and the re-determined current posture; and controlling the robot according to the re-determined target angles corresponding to the joints in the first component.
[0085] In one example, when the control accuracy of the auxiliary component is lower than the preset accuracy threshold, it can be considered that the control accuracy of the second component including the auxiliary component is low. If the target task is performed by controlling the joints in the second component, there will still be a large deviation between the actual posture of the end of the robot's mechanical arm and the expected posture of the end of the mechanical arm after the target task is performed. In order to avoid this situation, the robot can first adjust the target angle corresponding to the auxiliary component to roughly adjust the end of the mechanical arm, and then fine-tune it through the first component based on the difference between the adjusted current posture of the end of the mechanical arm and the target posture after the posture adjustment.
[0086] In one example, for each joint in the second component, the joint has a corresponding control accuracy. The control accuracy can be a value that is positively or negatively correlated with the degree of fit (e.g., the higher the degree of fit, the larger the value, the lower the degree of fit, the larger the value, etc.), or it can be the control accuracy corresponding to the part to which it belongs (taking the joints included in the robotic arm as an example, the control accuracy corresponding to the joint can be the control accuracy of the robotic arm).
[0087] In one example, the robot can determine the target angles corresponding to the joints in the auxiliary component from the target angles corresponding to the joints in the second component. Afterwards, the robot adjusts the joints in the auxiliary component according to the target angles corresponding to the joints in the auxiliary component. In the process of adjusting the joints in the auxiliary component, the principle that the parts of the robot do not collide with each other and the robot does not collide with the obstacles around the robot must be met. How to plan the motion of the various components of the robot based on the above principles is already a relatively mature technology, and this manual will not go into details here.
[0088] In one example, after adjusting the posture of the robot according to the target angle of each joint in the auxiliary component, the robot can re-determine the current posture of the end of the robot arm, and re-determine the target angles corresponding to each joint in the first component according to the target posture and the re-determined current posture of the end of the robot arm. After re-determining the target angles corresponding to each joint in the first component, the robot can also control the robot according to the re-determined target angles corresponding to each joint in the first component.
[0089] In this embodiment, when the control accuracy of the second component is low, the robot can control itself to first adjust some joints in the second component, that is, the joints in the auxiliary component, so as to adjust the posture of the end of the robotic arm, and after the adjustment is completed, according to the adjusted posture of the end of the robotic arm, redetermine the target angle of each joint in the first component, so as to ensure that the end of the robotic arm is adjusted to the target posture, thereby ensuring the efficiency of task completion.
[0090] According to one embodiment of the present application, the control accuracy of the auxiliary component is higher than or equal to a preset accuracy threshold, and the robot control method may further include: if the target angle corresponding to each joint in the second component cannot be solved by the inverse kinematics algorithm, the second component is used as the first component, and the second component is updated according to the control accuracy of each component in the robot; repeatedly executing the steps of determining the target angle corresponding to each joint in the second component according to the gap between the current posture and the target posture through the inverse kinematics algorithm, and controlling the robot according to the target angle corresponding to each joint in the second component.
[0091] In one example, when the control accuracy of the auxiliary component is higher than or equal to the preset accuracy threshold, it can be considered that the control accuracy of the second component is still high, and the posture of the end of the robot arm can be accurately adjusted to the target posture by controlling each joint in the second component to perform the target task. Therefore, after determining the second component, the robot can directly solve the target angle corresponding to each joint in the second component.
[0092] In one example, if the target angles corresponding to the joints in the second component can be successfully solved by the inverse kinematics algorithm, the target angles corresponding to the joints in the second component are determined. How to solve the target angles corresponding to the joints in the second component and how to determine whether the solution is successful can refer to the above description of the target angles of the joints in the first component, and this specification will not be repeated here.
[0093] In one example, if the target angles corresponding to the joints in the second component cannot be solved by the inverse kinematics algorithm, the robot can determine that the target task cannot be performed by the second component. Therefore, the robot can use the second component as the first component and update the second component according to the components included in the robot, that is, based on the re-determined first component, add a new auxiliary component as the updated second component.
[0094] In one example, if the control accuracy of the auxiliary component in the updated second component is still higher than or equal to the preset accuracy threshold, the robot can solve the target angle corresponding to each joint in the updated second component according to the inverse kinematics algorithm.
[0095] In another example, if the control accuracy of the updated second component is lower than a preset accuracy threshold, the robot may execute the strategy when the control accuracy of the second component is lower than the preset accuracy threshold to control the robot.
[0096] In this embodiment, when the control accuracy of the second component is high, the robot can directly determine the target angle of each joint in the second component, and complete the target task according to the target angle, thereby ensuring the control accuracy during the execution of the target task.
[0097] According to one embodiment of the present application, when the inverse kinematics algorithm cannot successfully solve the angles corresponding to each joint in the second component, the robot can also send a prompt message, which is used to prompt the user that the end of the robotic arm cannot be adjusted to the target posture, that is, the scenario task performed by the robot cannot be successfully executed.
[0098] Based on the same idea, this manual also provides Figure 3 The robot control method shown, Figure 3 Shown is a flow chart of a robot control method provided by another exemplary embodiment of the present application. Figure 3 The embodiment is Figure 2 For the example of the embodiment, in order to avoid repetition, the same points can be referred to the description in the above embodiment, which will not be repeated here. Figure 3 As shown, the robot control method may include the following contents.
[0099] 310: Determine the current position of the end of the robot's mechanical arm.
[0100] 320: Determine a target pose, and determine a difference between the current pose and the target pose.
[0101] 330: Determine, from various components included in the robot, a first component including a robotic arm where an end of the robotic arm is located, wherein a control accuracy of the first component is higher than or equal to a preset accuracy threshold.
[0102] 340: According to the difference between the current posture and the target posture, through the inverse kinematics algorithm, it is determined whether the target angle of each joint in the first component can be successfully solved.
[0103] 350: If the solution is successful, the robot is controlled according to the target angles of the joints in the first component.
[0104] 360: If the solution is unsuccessful, a second component including a first component and an auxiliary component is determined from the components of the robot, and the target angle of each joint in the second component is solved by an inverse kinematics algorithm. The control accuracy of the auxiliary component is lower than that of the first component.
[0105] 370: Determine whether the control accuracy of the auxiliary component is higher than or equal to a preset accuracy threshold.
[0106] 380: If so, control the robot according to the target angles of the joints in the second component.
[0107] 390: If not, determine the target angles corresponding to the joints in the auxiliary component, and control the robot to adjust the posture according to the target angles corresponding to the joints in the auxiliary component, and after adjusting the posture, re-execute step 310.
[0108] The execution order of the above steps 310-390 can be adjusted as needed. And the above steps 310-390 can refer to the description of steps 210-240 in this specification, which will not be repeated in this specification. The robot control method provided in the embodiment of the present application can realize the control of the robot's mechanical arm end to move to the target posture.
[0109] According to an embodiment of the present application, the robot includes a mechanical arm, a waist and a bottom (such as a chassis or legs), the first component may be the mechanical arm, the second component is a component composed of the mechanical arm and the waist, and the re-determined second component is a component composed of the mechanical arm, the waist and the bottom (such as a chassis or legs). Based on the above idea, the present application can also provide Figure 4 The robot control method shown, Figure 4 Shown is a flow chart of a robot control method provided by an exemplary embodiment of the present application. Figure 4 The robot in the embodiment may specifically be a robot including a mechanical arm, a waist and a chassis. To avoid repetition, the same details may be referred to the description in the above embodiment, which will not be described again here. Figure 4 As shown, the robot control method may include the following contents.
[0110] 410: Determine a current pose and a target pose of the end of the robot's mechanical arm, and determine a difference between the current pose and the target pose.
[0111] 420: From the components included in the robot, determine the robot arm as the first component, wherein the control accuracy of the first component is higher than or equal to a preset accuracy threshold. And according to the difference between the current posture and the target posture, determine whether the target angle of each joint in the first component can be successfully solved by the inverse kinematics algorithm.
[0112] 430: If the solution is successful, the robot is controlled according to the target angle of each joint in the first component.
[0113] 440: If the solution is unsuccessful, a component consisting of a robot arm and a waist is determined as a second component from among the components of the robot. The second component includes the first component and an auxiliary component, and the auxiliary component is the waist.
[0114] 450: Continue to determine whether the target angle of each joint in the second component can be successfully solved through the inverse kinematics algorithm.
[0115] 460: If so, control the robot according to the target angle of each joint in the second component.
[0116] 470: If not, the second component is used as the first component again, and a component consisting of a robot arm, a waist, and a chassis is determined from the components included in the robot as the updated second component. The auxiliary component in the updated second component is the chassis.
[0117] 480: According to the difference between the current pose and the target pose, the target angle of each joint in the updated second component is solved by the inverse kinematics algorithm.
[0118] 490: Determine the target angles corresponding to the joints in the auxiliary component, and adjust the posture of the robot according to the target angles corresponding to the joints in the auxiliary component, and re-execute step 410 after adjusting the posture.
[0119] It should be noted that the control accuracy of the first component is higher than or equal to the preset accuracy threshold, and the control accuracy of the second component is higher than or equal to the preset accuracy threshold, but the control accuracy of the updated second component is lower than the preset accuracy threshold. For example, the preset accuracy threshold may be lower than or equal to the control accuracy of the waist and higher than the control accuracy of the chassis.
[0120] Based on the above ideas, this application also provides Figure 5 The robot control method shown, Figure 5 Shown is a flow chart of a robot control method provided by an exemplary embodiment of the present application. Figure 5 The robot in the embodiment may specifically be a robot including a mechanical arm, a waist and a chassis. To avoid repetition, the same points can be referred to the description in the above embodiment, which will not be repeated here. Figure 5 As shown, the robot control method may include the following contents.
[0121] 510: Determine a current pose and a target pose of the end of the robot's mechanical arm, and determine a difference between the current pose and the target pose.
[0122] 520: From the components included in the robot, determine the robot arm as the first component, wherein the control accuracy of the first component is higher than or equal to a preset accuracy threshold. And according to the difference between the current posture and the target posture, determine whether the target angle of each joint in the first component can be successfully solved by the inverse kinematics algorithm.
[0123] 530: If the solution is successful, the robot is controlled according to the target angles of the joints in the first component.
[0124] 540: If the solution is unsuccessful, determine the component consisting of the robot arm and the waist as the second component from the components included in the robot, wherein the second component includes the first component and the auxiliary component, and the auxiliary component is the waist. According to the difference between the current posture and the target posture, determine whether the target angle of each joint in the second component can be successfully solved through the inverse kinematics algorithm.
[0125] 550: If the target angle of each joint in the second component can be solved successfully, determine the target angle corresponding to each joint in the auxiliary component, and adjust the robot's posture according to the target angle corresponding to each joint in the auxiliary component. After adjusting the posture, re-execute step 510.
[0126] 560: If the target angle of each joint in the second component cannot be solved successfully, the second component is used as the first component again, and the component consisting of the robot arm, the waist and the chassis is determined from the components included in the robot as the updated second component. The auxiliary component in the updated second component is the chassis.
[0127] In one example, the reason why the robot cannot successfully solve the target angle of each joint in the second component may be: calculation failure, machine failure, pre-set iteration termination condition (satisfying the aforementioned first condition and not satisfying the aforementioned second condition), etc.
[0128] 570: According to the difference between the current posture and the target posture, the target angle of each joint in the updated second component is solved by the inverse kinematics algorithm, and the target angle corresponding to each joint in the auxiliary component is determined, and the posture of the robot is adjusted according to the target angle corresponding to each joint in the auxiliary component. After adjusting the posture, step 510 is re-executed.
[0129] It should be noted that the control accuracy of the first component is higher than or equal to the preset accuracy threshold, and the control accuracy of the auxiliary component included in the second component is lower than the control accuracy of the first component. For example, the preset accuracy threshold may be less than or equal to the control accuracy of the robotic arm and greater than the control accuracy of the waist.
[0130] The execution order of the above steps 410-490 and the execution order of 510-570 can be adjusted as needed. And the above steps 410-490 and 510-570 can refer to the description of steps 210-240 in this specification, and this specification will not repeat them. The robot control method provided in the embodiment of the present application can realize the control of the robot's mechanical arm end to move to the target posture.
[0131] Exemplary Devices
[0132] Figure 6 FIG. 6 is a schematic diagram of the structure of a robot control device 600 provided by an exemplary embodiment of the present application. Figure 6 As shown, the robot control device 600 includes: a first determination module 610 , a second determination module 620 , an angle determination module 630 and a control module 640 .
[0133] The first determination module 610 is used to determine the current posture and target posture of the end of the robot's mechanical arm.
[0134] The second determination module 620 is used to determine a first component whose control accuracy is higher than or equal to a preset accuracy threshold from various components included in the robot, wherein the first component includes a robotic arm where the end of the robotic arm is located.
[0135] The angle determination module 630 is used to determine the target angle corresponding to each joint in the first component according to the difference between the current posture and the target posture through an inverse kinematics algorithm.
[0136] The control module 640 is used to control the robot according to the target angles corresponding to the joints in the first component.
[0137] A robot control device provided by an embodiment of the present application determines the current posture and target posture of the end of the robot's mechanical arm through a first determination module during the robot's task execution, and then determines the first component containing the mechanical arm where the end of the mechanical arm is located and whose control accuracy is higher than or equal to a preset accuracy threshold from the components contained in the robot through a second determination module, and then determines the target angles corresponding to each joint in the first component through an angle determination module according to the difference between the current posture and the target posture, and through an inverse kinematics algorithm, and finally controls the robot through a control module according to the target angles corresponding to each joint in the first component. In this way, in the process of the robot executing the task, the embodiment of the present application only completes the task through the first component with a control accuracy higher than or equal to the preset accuracy threshold, avoiding the influence of the components with lower control accuracy among the components contained in the robot, thereby ensuring the control accuracy during the robot control process. At the same time, in the case where the task performed by the robot is a high-precision task, based on the robot control device in the embodiment of the present application, it can avoid the situation where the task cannot be executed due to the low control accuracy of the robot, and further ensure the completion of the task.
[0138] According to an embodiment of the present application, the robot is a dual-arm robot; the first determination module 610 is used to determine the current posture of the end of the left arm of the robot and / or the current posture of the end of the right arm of the robot.
[0139] According to one embodiment of the present application, the angle determination module 630 is used to: solve the target angle corresponding to each joint in the first component according to the difference between the current posture and the target posture through the inverse kinematics algorithm; if the solution is successful, determine that each joint in the first component is used to perform the target task, and determine the target angle corresponding to each joint in the first component according to the solution result; wherein the target task is used to indicate moving the end of the robot arm from the current posture to the target posture.
[0140] According to one embodiment of the present application, the angle determination module 630 is also used to: if the solution is unsuccessful, determine the second component from the components included in the robot, the second component includes the first component and the auxiliary component, the control accuracy of the auxiliary component is lower than the control accuracy of the first component, and the second component is used to perform the target task; according to the gap between the current posture and the target posture, determine the target angle corresponding to each joint in the second component through an inverse kinematics algorithm, and control the robot according to the target angle corresponding to each joint in the second component.
[0141] According to an embodiment of the present application, the control accuracy of the auxiliary component is lower than a preset accuracy threshold, and the angle determination module 630 is used to: determine the target angles corresponding to the joints in the auxiliary component according to the target angles corresponding to the joints in the second component; control the robot to adjust the posture according to the target angles corresponding to the joints in the auxiliary component, and after the posture adjustment is completed, redetermine the current posture of the end of the robot arm, and redetermine the target angles corresponding to the joints in the first component according to the target posture and the redetermined current posture; control the robot according to the redetermined target angles corresponding to the joints in the first component.
[0142] According to an embodiment of the present application, the control accuracy of the auxiliary component is higher than or equal to a preset accuracy threshold, and the angle determination module 630 is also used for: if the target angle corresponding to each joint in the second component cannot be solved by the inverse kinematics algorithm, the second component is used as the first component, and the second component is updated according to the control accuracy of each component in the robot; repeatedly executing the steps of determining the target angle corresponding to each joint in the second component according to the gap between the current posture and the target posture through the inverse kinematics algorithm, and controlling the robot according to the target angle corresponding to each joint in the second component.
[0143] According to one embodiment of the present application, the robot includes a robotic arm, a waist and a bottom; the first component includes the robotic arm, the second component includes a component consisting of the robotic arm and the waist, and the updated second component includes a component consisting of the robotic arm, the waist and the bottom.
[0144] The embodiment of the present application also provides a robot, the robot may include a control module, and the control module is used to execute the robot control method provided by any of the above embodiments. Furthermore, the robot may also include a mechanical arm.
[0145] Specifically, the robot arm may include a single arm, double arms and multiple arms. In some embodiments, the robot may further include a waist.
[0146] The operation and functions of the robot provided in the embodiment of the present application can refer to the above Figure 2 , Figure 3 , Figure 4 and Figure 5 The description of the robot control method provided in any of the embodiments will not be repeated here to avoid repetition.
[0147] Figure 7 The block diagram of an electronic device 700 for executing a robot control method provided by an exemplary embodiment of the present application is shown. The electronic device 700 may be a mobile device, a control device of a mobile device, a server or other device interacting with the mobile device.
[0148] Reference Figure 7The electronic device 700 includes a processing component 710, which further includes one or more processors, and a memory resource represented by a memory 720 for storing instructions executable by the processing component 710, such as an application. The application stored in the memory 720 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 710 is configured to execute instructions to perform the above-mentioned robot control method.
[0149] The electronic device 700 may also include a power supply component configured to perform power management of the electronic device 700, a wired or wireless network interface configured to connect the electronic device 700 to a network, and an input / output (I / O) interface. The electronic device 700 may be operated based on an operating system stored in the memory 720, such as Windows Server 2000. TM , Mac OSX TM , Unix TM , Linux TM , FreeBSD TM or similar.
[0150] A non-temporary computer-readable storage medium, when the instructions in the storage medium are executed by the processor of the above-mentioned electronic device 700, enables the above-mentioned electronic device 700 to execute a robot control method.
[0151] All the above optional technical solutions can be arbitrarily combined to form optional embodiments of the present application, and will not be described one by one here.
[0152] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0153] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0154] 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 the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0155] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0156] 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.
[0157] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can be essentially or partly embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium, including several instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program check codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0158] It should be noted that, in the description of this application, the terms "first", "second", "third", etc. are used for descriptive purposes only and cannot be understood as indicating or implying relative importance. In addition, in the description of this application, unless otherwise specified, the meaning of "plurality" is two or more.
[0159] 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 the relevant laws, regulations and standards of the relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0160] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.
Claims
1. A robot control method, characterized in that: include: Determine the current pose and target pose of the end of the robot's manipulator arm; Determine, from among the components included in the robot, a first component whose control accuracy is greater than or equal to a preset accuracy threshold, wherein the first component includes a robotic arm at which the end of the robotic arm is located; According to the difference between the current posture and the target posture, determining the target angle corresponding to each joint in the first component by an inverse kinematics algorithm; The robot is controlled according to the target angles respectively corresponding to the joints in the first component.
2. The robot control method according to claim 1, characterized in that: The robot is a dual-arm robot, wherein: Determining the current position and posture of the end of the robotic arm of the robot includes: Determine a current position and posture of a left arm end of the robot and / or a current position and posture of a right arm end of the robot.
3. The robot control method according to claim 1, characterized in that: The step of determining the target angles corresponding to the joints in the first component by using an inverse kinematics algorithm according to the difference between the current posture and the target posture comprises: According to the difference between the current posture and the target posture, solving the target angle corresponding to each joint in the first component by using an inverse kinematics algorithm; If the solution is successful, determine that each joint in the first component is used to perform the target task, and determine the target angle corresponding to each joint in the first component according to the solution result; wherein the target task is used to indicate moving the end of the robotic arm from the current posture to the target posture.
4. The robot control method according to claim 3, characterized in that: The method further comprises: determining the target angles corresponding to the joints in the first component by using an inverse kinematics algorithm according to the difference between the current posture and the target posture; If the solution is unsuccessful, determining a second component from the components included in the robot, the second component including the first component and an auxiliary component, the control accuracy of the auxiliary component is lower than the control accuracy of the first component, and the second component is used to perform the target task; According to the difference between the current posture and the target posture, the target angles corresponding to the joints in the second component are determined by an inverse kinematics algorithm, and the robot is controlled according to the target angles corresponding to the joints in the second component.
5. The robot control method according to claim 4, characterized in that: The control accuracy of the auxiliary component is lower than the preset accuracy threshold; The controlling the robot according to the target angles respectively corresponding to the joints in the second component comprises: Determining target angles corresponding to respective joints in the auxiliary component according to target angles corresponding to respective joints in the second component; Controlling the robot to adjust its posture according to the target angles corresponding to the joints in the auxiliary component, and re-determining the current posture of the end of the robot arm after the posture adjustment is completed, and re-determining the target angles corresponding to the joints in the first component according to the target posture and the re-determined current posture; The robot is controlled according to the re-determined target angles corresponding to the joints in the first component.
6. The robot control method according to claim 4, characterized in that: The control accuracy of the auxiliary component is higher than or equal to the preset accuracy threshold; The method further comprises: If the target angles corresponding to the joints in the second component cannot be obtained by the inverse kinematics algorithm, the second component is used as the first component, and the second component is updated according to the control accuracy of each component in the robot; Repeat the steps of determining the target angles corresponding to the joints in the second component according to the difference between the current posture and the target posture through an inverse kinematics algorithm, and controlling the robot according to the target angles corresponding to the joints in the second component.
7. The robot control method according to claim 6, characterized in that: The robot includes the robotic arm, a waist and a bottom; the first component includes the robotic arm, the second component includes a component consisting of the robotic arm and the waist, and the updated second component includes a component consisting of the robotic arm, the waist and the bottom.
8. A robot, characterized in that: It comprises a control module, and the control module is used to execute the robot control method according to any one of claims 1 to 7.
9. An electronic device, characterized in that: include: processor; a memory for storing instructions executable by the processor, Wherein, the processor is used to execute the robot control method described in any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that: The storage medium stores a computer program, and the computer program is used to execute the robot control method according to any one of claims 1 to 7.
11. A computer program product, characterized in that The computer program product includes a computer program, and when the computer program is executed by a processor of a computer device, the computer device is enabled to execute the robot control method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Robot precision design method
CN106777422A
Design method and device for robot positioning accuracy, storage medium and processor
CN109591052A
Spatial pose online simulation system based on five-degree-of-freedom robot
CN114055467A
Industrial robot space pose precision testing device and method
CN115157322A
Tunnel supporting structure 3D printing system and control method thereof
CN116277955A
Cited By
Humanoid robot welding method and device and humanoid robot
CN120347453A
Robot control method, robot and electronic equipment
CN121199966A