Robot control method, robot, and electronic device
By selecting components with high control precision in the robot and using inverse kinematics algorithms to calculate the target joint angles, the problem of low robot control precision was solved, and efficient task execution was achieved.
Patent Information
- Application Number
- CN202411575507.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-05
- Publication Date
- 2025-11-25
- Estimated Expiration
- 2044-11-05
AI Technical Summary
Existing robot control methods suffer from low control precision, resulting in low task execution efficiency, which is particularly evident in high-precision tasks.
By identifying components in the robot whose control precision is higher than or equal to a preset precision threshold, the inverse kinematics algorithm is used to calculate the joint target angles of these components, and the robot is controlled to complete the task using only these components.
It improves the control precision and task execution efficiency of the robot control process, ensuring the completion and efficiency of high-precision tasks.
Smart Images

Figure CN119458321B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of robot control, and in particular to a robot control method, a robot and an electronic device. BACKGROUND
[0002] With the continuous progress of science and technology, robots are increasingly widely used in people's lives, and the efficiency of task execution of robots is continuously improved.
[0003] Taking the execution of a task by the end of a mechanical arm as an example, currently, the motion angles of each joint of the robot are usually planned according to the gap between the current pose and the target pose of the end of the robot mechanical arm, so as to achieve the purpose of controlling the robot to complete the execution of the task.
[0004] However, the current robot control method has the problem of low control accuracy, which further leads to low task execution efficiency. SUMMARY
[0005] Therefore, the embodiments of the present application provide 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, the embodiments of the present application provide a robot control method, comprising: determining a current pose and a target pose of the end of a mechanical arm of a robot; determining a first component with a control accuracy higher than or equal to a preset accuracy threshold from each component included in the robot, the first component including a mechanical arm in which the end of the mechanical arm is located; determining target angles respectively corresponding to each joint in the first component by an inverse kinematics algorithm according to the gap between the current pose and the target pose; and controlling the robot according to the target angles respectively corresponding to each joint in the first component.
[0007] In a second aspect, the embodiments of the present application provide a robot control device, comprising: a first determination unit configured to determine a current pose and a target pose of the end of a mechanical arm of a robot; a second determination unit configured to determine a first component with a control accuracy higher than or equal to a preset accuracy threshold from each component included in the robot, the first component including a mechanical arm in which the end of the mechanical arm is located; an angle determination unit configured to determine target angles respectively corresponding to each joint in the first component by an inverse kinematics algorithm according to the gap between the current pose and the target pose; and a control unit configured to control the robot according to the target angles respectively corresponding to each joint in the first component.
[0008] In a third aspect, the embodiments of the present application provide a robot, comprising a control module, the control module being configured to execute the robot control method of the first aspect.
[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 configured to execute the robot control method in the first aspect.
[0010] In a fifth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program, and the computer program is configured to execute the robot control method in the first aspect.
[0011] In a sixth aspect, an embodiment of the present application provides a computer program product, which comprises a computer program, and the computer program is configured to enable a computer device to execute the robot control method in the first aspect when the computer program is executed by a processor of the computer device.
[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 configured to execute the robot control method in the first aspect.
[0013] The robot control method, the electronic device and the medium provided by the embodiments of the present application can determine the current pose and the target pose of the end of the robot arm in the process of executing the task by the robot, determine the first component whose control accuracy is higher than or equal to the preset accuracy threshold from the components included in the robot, the first component includes the robot arm where the end of the robot arm is located, determine the target angle corresponding to each joint in the first component according to the difference between the current pose and the target pose through the inverse kinematics algorithm, and control 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 the task execution efficiency in the process of controlling the robot. BRIEF DESCRIPTION OF DRAWINGS
[0014] Figure 1 Fig. 1 shows a system architecture schematic diagram of a robot control system provided by an exemplary embodiment of the present application.
[0015] Figure 2 Fig. 2 shows a flowchart of a robot control method provided by an exemplary embodiment of the present application.
[0016] Figure 3 Fig. 3 shows a flowchart of a robot control method provided by an exemplary embodiment of the present application.
[0017] Figure 4 Fig. 4 shows a flowchart of a robot control method provided by an exemplary embodiment of the present application.
[0018] Figure 5 Fig. 5 shows a flowchart of a robot control method provided by an exemplary embodiment of the present application.
[0019] Figure 6 Fig. 1 shows a structural diagram of a robot control device according to an example embodiment of the present application.
[0020] Figure 7 Fig. 2 shows a block diagram of an electronic device for executing a robot control method according to an example embodiment of the present application. DETAILED DESCRIPTION
[0021] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, but not all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work fall within the scope of protection of the present application.
[0022] SUMMARY
[0023] At present, a robot often performs a task through an end of a mechanical arm and an executor deployed at the end of the mechanical arm. When performing a task, the robot usually determines a current pose of the end of the mechanical arm and a target pose of the end of the mechanical arm, and then reversely calculates how each joint of the robot should move so that the end of the mechanical arm reaches the target pose according to the current pose and the target pose. In this way, the purpose of planning the movement angle and the movement trajectory of each joint of the robot is achieved, and the robot is controlled according to the planned movement angle and movement trajectory, so as to complete the process of moving the end of the mechanical arm to the target pose. The robot is a robot that includes one or more mechanical arms and performs a task depending on the pose of the end of each mechanical arm.
[0024] However, due to process and other reasons, the control precision of different components of the robot is often different. Taking a robot including three components of a double arm, a waist and a chassis as an example, in general, the control precision of the double arm is the highest, the control precision of the waist is the second, and the control precision of the chassis is the lowest. At present, in the process of controlling the robot, this fact is often ignored, which leads to the situation that each component of the robot needs to be adjusted at the same time, and the result of the simultaneous movement of each component is that there is a large gap between the pose of the mechanical arm of the adjusted robot and the target pose, that is, the control precision of the mechanical arm is lowered due to the influence of the overall control precision of the robot. Obviously, for a task with high control precision requirements, such as a task of performing surgery by a surgical robot, the task completion degree and the task execution efficiency of the control method are both low.
[0025] To solve the above technical problems, the embodiment of the present application provides a robot control method, in which, during the execution of a task by the robot, a first component with a control accuracy higher than or equal to a preset accuracy threshold is determined from each component included in the robot, then a target angle corresponding to each joint in the first component is determined by an inverse kinematics algorithm according to the difference between the current pose and the target pose of the end of the robot arm, and finally the robot is controlled to execute the task according to the target angle corresponding to each joint in the first component. In this way, the embodiment of the present application can ensure that during the execution of the task by the robot, only the joints in the first component with higher execution accuracy are controlled to move the end of the robot arm from the current pose to the target pose, thereby ensuring the control accuracy during the execution of the task by the robot. Meanwhile, in the case of a high-precision task to be executed, the method in the embodiment of the present application can avoid the situation that the task cannot be executed due to low robot control accuracy, thereby further ensuring the task execution efficiency and completion degree.
[0026] Exemplary system
[0027] Figure 1 Fig. 1 shows a system architecture schematic diagram of a robot control system provided by an exemplary embodiment of the present application, which comprises a robot 110, a sensor 120, and a controller 130. Figure 1 As shown, the robot control system 100 can comprise a robot 110, which is a robot deployed with a robot arm, such as a single-arm robot, a double-arm robot, a multi-arm robot, etc. The robot 110 is used to control the end of the robot arm to adjust from a current pose to a target pose, and after adjusting to the target pose, the target object 120 is processed by the end of the robot arm. The robot can be used to execute various scene tasks, such as a carrying task, a welding task, a surgical task, etc. Taking the carrying 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. The robot 110 can be deployed with a sensor and a controller, and the controller can be used to control the robot to execute the robot control method provided by the embodiment of the present application.
[0028] In an example, the sensor can be used to determine the current pose of the end of the robot arm of the robot 110. In this way, the controller can determine the current pose of the end of the robot arm of the robot 110 through the sensor, and control the robot 110 to adjust the pose of the end of the robot arm to the target pose according to the difference between the current pose and the pre-stored target pose.
[0029] In an example, the controller can determine a current pose of an end of a mechanical arm of the robot 110 and a target pose, and determine, from components included in the robot, a first component whose control accuracy is higher than or equal to a preset accuracy threshold, and then determine, according to a difference between the current pose and the target pose of the end of the mechanical arm, a target angle corresponding to each joint in the first component respectively by solving the target angle corresponding to each joint in the first component respectively through an inverse kinematics algorithm, and finally control the robot according to the determined target angle. The current position of the end of the mechanical arm is a position of the end of the mechanical arm and an orientation of an effector arranged at the end of the mechanical arm, and the target pose is a target pose corresponding to a task performed by the robot.
[0030] In other examples, the controller can be located outside the robot 110, such as a device independent of the robot 110. Illustratively, the controller can 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 examples of application scenarios are only shown for the purpose of facilitating understanding of the spirit and principles of the present application, and embodiments of the present application are not limited thereto. On the contrary, embodiments of the present application can be applied to any scenario that can be applicable.
[0032] An example method
[0033] Figure 2 A flowchart of a robot control method provided by an example embodiment of the present application is shown. Figure 2 The method can be performed by a robot, an intelligent terminal deployed on the robot or outside the robot, a server interacting with the robot, or the like electronic device, and for the convenience of description, the robot performing the robot control method is taken as an example for subsequent description.
[0034] As shown in the figure, the robot control method can include the following content. Figure 2
[0035] 210: Determine a current pose of an end of a mechanical arm of the robot and a target pose.
[0036] In some embodiments, the robot can be a single-arm robot, a double-arm robot, a three-arm robot, or the like robot deployed with at least one mechanical arm, and the robot can control the movement of the mechanical arm by controlling the rotation of each joint on the robot to perform a task. The task performed by the robot usually has a corresponding target pose, which can be preset. During the execution of the task by the robot, the pose of the end of the mechanical arm of the robot will change accordingly, and therefore, the movement of each joint in the robot can be controlled based on the difference between the current pose and the target pose of the end of the mechanical arm to adjust the pose of the end of the mechanical arm.
[0037] In an example, the robot can determine a pose of an end of a mechanical arm of the robot at a current time as a current pose of the end of the mechanical arm. The end of the mechanical arm can be an end of at least one of the mechanical arms included in the robot. For example, in a dual-arm robot, the current pose of the end of the mechanical arm of the dual-arm robot can be at least one of a current pose of an end of a left arm and a current pose of an end of a right arm.
[0038] Further, the robot can determine a target pose corresponding to a task performed by the robot, so as to subsequently control the robot based on the current pose and the target pose.
[0039] 220: determining, from components included in the robot, a first component whose control accuracy is higher than or equal to a preset accuracy threshold, wherein the first component includes a mechanical arm in which an end of the mechanical arm is located.
[0040] In some embodiments, the robot is composed of components. For each component, the component can be a part of the robot (e.g., a mechanical arm, a waist, a leg, etc.), a structure composed of at least part of components included in a part (e.g., a part of a mechanical arm, a part of a leg, etc.), or a structure formed by connection between components belonging to different parts (e.g., a structure formed by a mechanical arm and a waist joint of the robot, etc.).
[0041] In another embodiment, only when the pose of the robot is adjusted by the component with sufficiently high control accuracy, can it be considered that the difference between the pose of the end of the mechanical arm of the robot after adjustment and the target pose is sufficiently small. Therefore, the robot can determine, from components included in the robot, a first component whose control accuracy is higher than or equal to a preset accuracy threshold.
[0042] The control accuracy is a degree of coincidence between an output of a control system of the robot and an expected value. The control accuracy of the first component is a degree of coincidence between the output of the control system of the robot and the expected value when the control system controls only joints of the first component.
[0043] In an example, the preset accuracy threshold can be a numerical value (e.g., 50, 100, etc., a numerical value positively or negatively related to accuracy), a control accuracy of a part of the robot (e.g., a control accuracy of a mechanical arm, a control accuracy of a waist, a control accuracy of a leg, etc.), or an arbitrary value within a certain interval (e.g., an arbitrary accuracy value between a control accuracy of a mechanical arm and a control accuracy of a waist).
[0044] In an example, the robot control method described in the present application is applied to a scenario where the robot performs a task through a mechanical arm end and an effector arranged at the mechanical arm end. Therefore, if the robot is to be controlled to adjust a pose by a first component, the mechanical arm to which the mechanical arm end belongs should be included in the first component.
[0045] In an example, the mechanical arm end can be provided with an effector, which can be a gripper, a suction cup, a cutting tool, a welding gun, a sensor integrated, etc.
[0046] 230: According to the difference between the current pose and the target pose, the target angles of the joints in the first component are determined by an inverse kinematics algorithm.
[0047] In some embodiments, after determining that the first component contains a mechanical arm and the control accuracy is higher than or equal to a preset accuracy threshold, the robot can complete the task by controlling only the first component of itself. Therefore, the robot can determine the difference between the current pose and the target pose, and determine the target angles of the joints in the first component by an inverse kinematics algorithm. If the angles of the joints in their corresponding coordinate systems are all the angle values of the target angles of the joints, the pose of the mechanical arm end of the robot is the target pose.
[0048] 240: The robot is controlled according to the target angles of the joints in the first component.
[0049] In some embodiments, after determining the target angles, 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, so as to adjust the angle of the joint to the target angle, thereby achieving the process of adjusting the mechanical arm end of the robot from the current pose to the target pose.
[0050] The robot control method provided in the embodiments of the present application can determine the current pose and the target pose of the end of the robot arm during the execution of the task by the robot, then determine the robot arm containing the end of the robot arm and the first component having a control precision higher than or equal to the preset precision threshold from the components contained in the robot, then determine the target angle of each joint in the first component corresponding to the difference between the current pose and the target pose by the inverse kinematics algorithm, and finally control the robot according to the target angle of each joint in the first component corresponding to the target angle. In this way, the embodiments of the present application can complete the task by controlling only the first component having a control precision higher than or equal to the preset precision threshold during the execution of the task by the robot, thereby avoiding the influence of the components having a lower control precision among the components contained in the robot, and further ensuring the control precision during the control of the robot. Meanwhile, in the case that the task executed by the robot is a high-precision task, the method in the embodiments of the present application can avoid the situation that the task cannot be executed due to the lower control precision 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 can be a robot deployed with one or more robot arms. Thus, in step 210, the robot can determine at least one robot arm as a target robot arm and determine the current pose and the target pose of the end of the robot arm from the robot arms contained in the robot when determining the current pose and the target pose of the end of the robot arm.
[0052] In an example, the robot can determine the robot arm required to execute a scene task according to the scene task required to be executed by the robot, as a target robot arm, and determine the target pose of the target robot arm.
[0053] In an example, the robot can receive a task execution instruction, and the task execution instruction can carry the robot arm identifier of the target robot arm. Thus, the robot can determine the target robot arm from the robot arms contained in the robot according to the robot arm identifier in the task execution instruction.
[0054] In an example, the robot can be a dual-arm robot, and thus the robot can determine at least one of the current pose of the end of the left arm and the current pose of the end of the right arm as the current pose of the end of the robot arm when determining the pose of the end of the robot arm.
[0055] In the embodiments, the robot can flexibly determine the robot arm required to execute a task and the current pose and the target pose of the end of the robot arm required to execute a task, thereby more accurately controlling the robot.
[0056] According to an embodiment of the present application, step 220 can determine, from the components included in the robot, a component including the robot arm and having a control accuracy higher than or equal to the preset accuracy threshold, as the first component, according to the preset accuracy threshold.
[0057] In an example, the robot is composed of components having different control accuracies. For example, the robot includes a robot arm, a waist, and a bottom, which can be a leg or a chassis. Taking a humanoid robot as an example, the components of the robot can be a robot arm, a waist, and a leg. Generally, the control accuracy of the robot arm is the highest, the control accuracy of the waist is the second, and the control accuracy of the leg is the lowest. The humanoid robot can be a humanoid biped robot, and the leg of the robot can be designed to imitate the gait of a human or other animals, including parts of various joints such as knee joints and hip joints.
[0058] In an example, for each component, the component can be an independent part of the robot (such as a robot arm or a waist), a part of an independent part (for example, taking a robot arm including 10 joints as an example, the component can be a component composed of 5 adjacent joints in the robot arm and a connecting rod connected to the 5 adjacent joints), or a combination of two independent parts (such as a robot arm + a waist, a waist + a leg, a robot arm + a waist + a leg, and the like).
[0059] In an example, each component has a corresponding control accuracy, and for each component, the control accuracy of the component is determined by the component having the lowest control accuracy among the components constituting the component. Taking a component including a robot arm + a waist + a leg as an example, the control accuracy of the component is the control accuracy corresponding to the leg of the robot.
[0060] In an example, the robot can determine, from the components included in the robot, components including a robot arm as each candidate component, determine the control accuracy of each candidate component, and determine, from the candidate components, a component having a control accuracy higher than or equal to a preset accuracy threshold, as the first component.
[0061] In another example, the robot can determine, from the components included in the robot, components having a control accuracy higher than or equal to a preset accuracy threshold and including a robot arm in which an end of the robot arm is located, as each candidate component, and randomly select any one of the candidate components as the first component. Alternatively, according to the control accuracy corresponding to each candidate component, the candidate component having the highest control accuracy is determined from the candidate components as the first component. The component including the robot arm can be a component including the entire robot arm, or a component including only an end effector of the robot arm and a joint connected to the end effector.
[0062] In the embodiment, the robot can select the components with higher control precision from the components contained in the robot to perform the task, so as to ensure the completion of the task and the control precision of the robot during the execution of the task.
[0063] According to an embodiment of the present application, step 230 can include: solving the target angles of the joints in the first component respectively according to the difference between the current pose and the target pose by using an inverse kinematics algorithm, and if the solving is successful, determining that the joints in the first component are used to perform the target task, and determining the target angles of the joints in the first component respectively according to the solving result.
[0064] It should be noted that the target task is used to indicate the movement of the end of the robot arm from the current pose to the target pose, that is, the target task is only used to represent the process of moving the end of the robot arm from the current pose to the target pose, which can be part of a carrying task, a welding task or other scene task performed by the robot, or can be a pre-task or post-task of the scene task performed by the robot, but it is not the same task as the scene task performed by the robot.
[0065] In an example, the process of solving the target angles of the joints in the first component respectively by using the inverse kinematics algorithm can generally adopt an iterative adjustment manner, and the specific process can include the following steps: first, the robot can determine the current angles of the joints in the first component as the initialized joint angles. Then, the joint angles of the joints are adjusted respectively, and the difference between the adjusted pose of the end of the robot arm and the target pose is determined according to the forward kinematics equation. After that, the joint angles of the joints in the first component are continuously adjusted according to the difference between the current pose of the end of the robot arm before adjustment and the target pose, and the difference between the adjusted pose of the end of the robot arm and the target pose. Finally, the above process is iterated until the iteration number meets the number threshold or the difference between the adjusted pose of the end of the robot arm and the target pose is less than the preset difference threshold.
[0066] In an example, when constructing the forward kinematics equation, the linear relationship between the end of the robot arm and the joint velocities of the joints in the first component can be constructed by using a Jacobian matrix. Thus, when solving the joint angles of the joints in the first component by using the inverse kinematics algorithm, the joint velocity variation can be calculated by using the Jacobian matrix, and the joint angles can be updated according to the joint velocity variation, and then the adjusted pose of the end of the robot arm is determined. It should be noted that solving the target angles of the joints contained in the robot by using the inverse kinematics algorithm is a relatively mature target, and the present specification will not be repeated.
[0067] In an example, the above process of solving the target angles of the joints in the first assembly can also be implemented by using a damped least square method. Specifically, the robot can determine the current joint angles of the joints in the first assembly as the initial joint angles θ0. Then, the robot can determine the Jacobian matrix J(θ) of the current state according to the initial joint angles, and the specific determination formula can be where θ is the angle corresponding to each joint, and at the initial moment, θ = θ0, is the joint velocity corresponding to each joint, which can be specifically obtained by differentiating the angle corresponding to each joint, is the velocity of the end of the robot arm, which can be specifically obtained by differentiating the pose of the end of the robot arm. Then, the robot can determine the gap e = X target - X θ , X target is the target pose, X θ is the pose of the end of the robot arm when the joint angle is θ. Then, the robot can update the joint angle using the Jacobian matrix, 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, J T is the transpose of the Jacobian matrix, λ is a damping factor, which can be positive, and is specifically used to prevent numerical instability caused by the Jacobian matrix approaching a singular matrix, and is usually artificially given, I is an identity matrix, which is usually n x n, n is the number of joints in the first assembly, that is, the degree of freedom of the first assembly, and e is the gap vector determined at the current moment, which is specifically the gap between the current pose of the end of the robot arm and the target pose. Finally, the above process is iterated to update the angles of the joints in the first assembly until the pose of the end of the robot arm reaches the target pose.
[0068] In an example, the forward kinematics equation can be constructed in the following way: the robot can determine the joints and connecting rods contained in the first assembly, and then determine the joint types (such as rotary joints, spherical joints, cylindrical joints, etc.) of the joints and the structural parameters such as the lengths of the connecting rods. Then, local coordinate systems are established for the joints in the first assembly and the end effector. Then, according to the mechanical structure of the first assembly, the forward kinematics equation between the joint variables and the position and attitude of the end effector is derived.
[0069] In another example, the joints included in the first component of the robot and the links between the joints can be predefined. Similarly, the forward kinematics equation between the joint variables of the joints in the first component and the position and pose of the end effector of the robot arm can also be predefined.
[0070] In an example, if the target angles of the joints in the first component can be solved by the inverse kinematics algorithm, it can be determined that the process of adjusting the pose of the end of the robot arm from the current pose to the target pose can be achieved by controlling only the joints in the first component. That is, the joints in the first component are used to perform the target task, which is the task of adjusting the pose of the end of the robot arm from the current pose to the target pose.
[0071] In an example, the robot can determine the solution result, and according to the solution result and the above-mentioned forward kinematics equation, predict the gap between the pose of the end of the robot arm of the joints in the first component at the angles corresponding to the solution result and the above-mentioned target pose, and if the gap is less than a preset gap threshold, the robot can determine that the solution of the target angles of the joints in the first component by the inverse kinematics algorithm is successful.
[0072] In an example, as described above, when the target angles of the joints in the first component are determined by the iterative method, the solution result is usually obtained when the iterative termination condition is met, which includes that the number of iterations meets a number threshold or the gap between the adjusted pose of the end of the robot arm and the target pose is less than a preset gap threshold. When the iterative termination condition met by the solution result is that the number of iterations meets the number threshold, it can be considered that the target angles cannot be obtained accurately even if the iteration continues, that is, the solution of the target angles is unsuccessful. When the iterative termination condition met by the solution result is that the gap between the adjusted pose of the end of the robot arm and the target pose is less than the preset gap threshold, it can be considered that the solution of the target angles is successful. Therefore, when the solution result is determined, the robot can also determine the iterative termination condition met by the solution result, and determine whether the target angles of the first component are successfully solved according to the iterative termination condition.
[0073] In an example, the iterative termination condition includes a first condition and a second condition, the first condition is that the number of iterations meets a preset number threshold, and the second condition is that the gap between the adjusted pose of the end of the robot arm and the target pose is less than a preset gap threshold. When the iterative termination condition met by the solution result is the first condition, the robot can determine that the solution of the target angles is unsuccessful, and when the iterative termination condition met by the solution result is the second condition, the robot can determine that the solution of the target angles is successful.
[0074] In an example, the solution can be the target angles of the joints in the first component, or a matrix containing the target angles of the joints in the first component. Thus, the robot can determine the target angles of the joints in the first component according to the solution. Subsequently, the robot can be controlled according to the determined target angles.
[0075] In the embodiment, the robot can determine whether the robot itself can move the end of the robot arm from the current pose to the target pose by only using the first component according to the solution of the target angles of the joints in the first component. If the determination result is yes, the robot is controlled by the joints in the first component to perform the target task with the control precision guaranteed, so that the execution efficiency of the target task is guaranteed.
[0076] According to an embodiment of the present application, step 230 can include: 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 precision of the auxiliary component being lower than the control precision of the first component, the second component being used to perform the target task; determining the target angles of the joints in the second component according to the inverse kinematics algorithm according to the difference between the current pose and the target pose, and controlling the robot according to the target angles of the joints in the second component.
[0077] In an example, if the target angles of the joints in the first component cannot be solved successfully according to the inverse kinematics algorithm, the robot can determine that the end of the robot arm cannot be adjusted from the current pose to the target pose by only controlling the first component. Thus, the robot can determine a second component including the first component and an auxiliary component from the components included in the robot to perform the target task. The control precision of the auxiliary component is lower than the control precision of the first component.
[0078] In an example, in the case where the robot is composed of a robot arm, a waist and a chassis, the first component can be the robot arm, the auxiliary component can be the waist, and the second component can be the robot arm + the waist. In the case where the robot is composed of a robot arm and a chassis, the first component can be the robot arm, the auxiliary component can be the chassis, and the second component can be the robot arm + the chassis. The chassis can be a wheeled chassis or a tracked chassis. Compared with the six-degree-of-freedom joints included in the leg of the robot arm, the height of the chassis does not change, and the chassis can only control the heading angle of the robot, so the chassis can be regarded as a three-degree-of-freedom joint, which includes the horizontal coordinate, the vertical coordinate and the heading angle of the chassis in the three-dimensional space.
[0079] In an example, assuming that the robot arm includes 10 joints, in the case that the first component is a component composed of 5 adjacent joints in the robot arm and the connecting rods connected to the 5 adjacent joints, the auxiliary component can be a component formed by other components of the robot arm except the first component, and the second component can be the robot arm including 10 joints. In the case that the first component is the robot arm + waist, the second component can also be the robot arm + waist + leg.
[0080] In an example, the specific structures corresponding to the first component, the auxiliary component and the second component can be pre-set, or can be determined by the robot during the execution of a task according to the control accuracy of each component (such as a joint, a connecting rod, etc.) constituting the robot.
[0081] In an example, after the second component is determined, the robot can solve the target angles of the joints in the second component respectively according to the difference between the current pose and the target pose by using an inverse kinematics algorithm. It should be noted that the solving process of the target angles of the joints in the second component respectively can refer to the solving process of the target angles of the joints in the first component respectively, which will not be described herein again.
[0082] In an example, after the target angles of the joints in the second component respectively are determined, the robot can adjust the angles of the joints according to the initial angles of the joints respectively and the target angles of the joints respectively, so as to control the robot to adjust the end of the robot arm from the current pose to the target pose.
[0083] In the embodiment, in the case that the end of the robot arm cannot be adjusted from the current pose to the target pose only by using the first component, other components in the robot are introduced to cooperatively adjust with the first component, so as to complete the target task, and the task execution efficiency of the robot is ensured.
[0084] According to an embodiment of the present application, the control accuracy of the auxiliary component is lower than the preset accuracy threshold. Controlling the robot according to the target angles of the joints in the second component respectively can include: determining the target angles of the joints in the auxiliary component respectively according to the target angles of the joints in the second component respectively; controlling the robot to adjust the pose according to the target angles of the joints in the auxiliary component respectively, and after the pose adjustment is completed, re-determining the current pose of the end of the robot arm, and re-determining the target angles of the joints in the first component respectively according to the target pose and the re-determined current pose; and controlling the robot according to the re-determined target angles of the joints in the first component respectively.
[0085] In an example, in a case where the control accuracy of the auxiliary assembly is lower than a preset accuracy threshold, the control accuracy of the second assembly including the auxiliary assembly can be considered to be low, and if the target task is executed by controlling the joints in the second assembly, a case where a large deviation still exists between the actual pose of the robot end effector after the target task is executed and the expected pose of the robot end effector can occur. In order to avoid the occurrence of this case, the robot can first adjust the target angles corresponding to the auxiliary assembly to coarsely adjust the robot end effector, and then based on the gap between the current pose of the robot end effector after the pose adjustment and the target pose, finely adjust the robot end effector through the first assembly.
[0086] In an example, for each joint in the second assembly, the joint has a corresponding control accuracy. The control accuracy can be a value positively or negatively related to the degree of coincidence (for example, the higher the degree of coincidence, the larger the value, the lower the degree of coincidence, the larger the value, and the like), or the control accuracy corresponding to the part to which the joint belongs (for example, for a joint of a robot arm, the control accuracy corresponding to the joint can be the control accuracy of the robot arm).
[0087] In an example, the robot can determine the target angles corresponding to the joints in the auxiliary assembly from the target angles corresponding to the joints in the second assembly. Then, the robot adjusts the joints in the auxiliary assembly according to the target angles corresponding to the joints in the auxiliary assembly. In the adjustment process of the joints in the auxiliary assembly, the principle of not colliding between the parts of the robot and not colliding between the robot and the obstacles around the robot needs to be met. How to plan the movement of the parts of the robot based on the above principle is a relatively mature technology, and this specification will not be repeated here.
[0088] In an example, after adjusting the pose of the robot according to the target angles of the joints in the auxiliary assembly, the robot can redetermine the current pose of the robot end effector, and redetermine the target angles corresponding to the joints in the first assembly according to the target pose and the redetermined current pose of the robot end effector according to the above steps. After redetermining the target angles corresponding to the joints in the first assembly, the robot can also control the robot according to the redetermined target angles corresponding to the joints in the first assembly.
[0089] In the embodiment, when the control accuracy of the second assembly is low, the robot can control the robot to first adjust some joints in the second assembly, i.e., the joints in the auxiliary assembly, to adjust the pose of the robot end, and after the adjustment is completed, the robot can determine the target angles of the joints in the first assembly according to the adjusted pose of the robot end, so as to ensure that the robot end is adjusted to the target pose, and the efficiency of task completion is ensured.
[0090] According to an embodiment of the present application, when the control accuracy of the auxiliary assembly is higher than or equal to the preset accuracy threshold, the robot control method can further include: if the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly cannot be solved by the inverse kinematics algorithm, the second assembly is taken as the first assembly, and the second assembly is updated according to the control accuracy of each assembly in the robot; and the steps of determining the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly according to the difference between the current pose and the target pose by the inverse kinematics algorithm, and controlling the robot according to the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly are repeatedly performed.
[0091] In an example, when the control accuracy of the auxiliary assembly is higher than or equal to the preset accuracy threshold, it can be considered that the control accuracy of the second assembly is still high, and the pose of the robot end can be accurately adjusted to the target pose by controlling the joints in the second assembly to perform the target task. Therefore, after the second assembly is determined, the robot can directly solve the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly.
[0092] In an example, if the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly can be successfully solved by the inverse kinematics algorithm, the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly are determined. How to solve the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly and how to determine whether the solution is successful can be referred to the description of the target angles of the joints in the first assembly above, and the description will not be repeated here.
[0093] In an example, if the target angles of the joints in the second assembly respectively corresponding to the target angles of the joints in the second assembly cannot be solved by the inverse kinematics algorithm, the robot can determine that the target task cannot be performed by the second assembly. Therefore, the robot can take the second assembly as the first assembly, and update the second assembly according to each assembly included in the robot, i.e., based on the newly determined first assembly, a new auxiliary assembly is added to the updated second assembly.
[0094] In an example, if the control accuracy of the auxiliary assembly in the updated second assembly is still higher than or equal to the preset accuracy threshold, the robot can solve the target angles of the joints in the updated second assembly respectively corresponding to the target angles of the joints in the updated second assembly according to the inverse kinematics algorithm.
[0095] In another example, if the control accuracy of the updated second component is lower than the preset accuracy threshold, the robot can perform 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, in the case that the control accuracy of the second component is high, the robot can directly determine the target angles of the joints in the second component, and complete the target task according to the target angles, thereby ensuring the control accuracy in the target task execution process.
[0097] According to an embodiment of the present application, in the case that the angles corresponding to the joints in the second component cannot be solved successfully by the inverse kinematics algorithm, the robot can also send a prompt information, which is used to prompt that the robot end cannot be adjusted to the target pose, i.e., the scene task executed by the robot cannot be executed successfully.
[0098] Based on the same idea, the present specification also provides a robot control method as shown in Figure 3 The flowchart of the robot control method provided by another example embodiment of the present application is shown in Figure 3 The flowchart of the robot control method provided by another example embodiment of the present application is shown in Figure 3 The embodiments are Figure 2 Examples of the embodiments, to avoid repetition, the same can refer to the description in the above embodiments, which will not be repeated here. As shown in Figure 3 The robot control method can include the following contents.
[0099] 310: Determine the current pose of the robot end.
[0100] 320: Determine the target pose, and determine the gap between the current pose and the target pose.
[0101] 330: From the components included in the robot, determine the first component including the mechanical arm where the robot end is located, wherein the control accuracy of the first component is higher than or equal to the preset accuracy threshold.
[0102] 340: According to the gap between the current pose and the target pose, determine whether the target angles of the joints in the first component can be solved successfully by the inverse kinematics algorithm.
[0103] 350: If the solving is successful, control the robot according to the target angles of the joints in the first component.
[0104] 360: If the solving is not successful, from the components included in the robot, determine the second component including the first component and the auxiliary component, and solve the target angles of the joints in the second component by the inverse kinematics algorithm. The control accuracy of the auxiliary component is lower than the control accuracy of the first component.
[0105] 370: determining whether the control accuracy of the auxiliary assembly is higher than or equal to a preset accuracy threshold.
[0106] 380: if yes, controlling the robot according to the target angles of the joints in the second assembly.
[0107] 390: if no, determining the target angles of the joints in the auxiliary assembly respectively, and controlling the robot to adjust the pose according to the target angles of the joints in the auxiliary assembly respectively, and re-executing step 310 after the pose is adjusted.
[0108] The execution sequence of steps 310-390 can be adjusted as needed. The steps 310-390 can be referred to the description of steps 210-240 in the specification, and the description will not be repeated. The robot control method provided by the embodiment of the application can realize the movement of the end of the robot arm to the target pose.
[0109] According to an embodiment of the application, the robot includes an arm, a waist and a bottom (such as a chassis or a leg), the first assembly can be the arm, the second assembly is an assembly composed of the arm and the waist, and the second assembly re-determined is an assembly composed of the arm, the waist and the bottom (such as a chassis or a leg). Based on the above idea, the application can also provide a robot control method as shown in Figure 4 , and a robot control method provided by an exemplary embodiment of the application is shown in Figure 4 . Figure 4 The robot in the above embodiment can be a robot including an arm, a waist and a chassis. To avoid repetition, the same parts can be referred to the description in the above embodiment, and will not be repeated here. As shown in Figure 4 , the robot control method can include the following contents.
[0110] 410: determining the current pose and the target pose of the end of the arm of the robot, and determining the gap between the current pose and the target pose.
[0111] 420: determining the arm as the first assembly from the assemblies included in the robot, wherein the control accuracy of the first assembly is higher than or equal to a preset accuracy threshold. And according to the gap between the current pose and the target pose, it is judged whether the target angles of the joints in the first assembly can be solved successfully by the inverse kinematics algorithm.
[0112] 430: if the solution is successful, controlling the robot according to the target angles of the joints in the first assembly.
[0113] 440: If the solution is not successful, determine the component composed of the arm and the waist as a second component from the components included in 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 angles of the joints in the second component can be solved successfully by using the inverse kinematics algorithm.
[0115] 460: If yes, control the robot according to the target angles of the joints in the second component.
[0116] 470: If no, take the second component as the first component again, and determine the component composed of the arm, the waist and the chassis as an updated second component from the components included in the robot. The auxiliary component in the updated second component is the chassis.
[0117] 480: Solve the target angles of the joints in the updated second component by using the inverse kinematics algorithm according to the difference between the current pose and the target pose.
[0118] 490: Determine the target angles of the joints in the auxiliary component respectively, and adjust the pose of the robot according to the target angles of the joints in the auxiliary component respectively, and re-execute step 410 after adjusting the pose.
[0119] It should be noted that the control accuracy of the first component is higher than or equal to the preset accuracy threshold, 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 can be less than or equal to the control accuracy of the waist and greater than the control accuracy of the chassis.
[0120] Based on the above idea, the application also provides a robot control method as shown in Figure 5 , which is a flowchart of the robot control method provided by an example embodiment of the application. Figure 5 Figure 5 The robot in the example embodiment can be a robot including an arm, a waist and a chassis. To avoid repetition, the same parts can refer to the description in the above embodiments, which will not be described here. As shown in Figure 5 , the robot control method can include the following contents.
[0121] 510: Determine the current pose and the target pose of the end of the arm of the robot, and determine the difference between the current pose and the target pose.
[0122] 520: From the components included in the robot, determine the robot arm as a 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 pose and the target pose, through the inverse kinematics algorithm, judge whether the target angle of each joint in the first component can be solved successfully.
[0123] 530: If the solving is successful, control the robot according to the target angle of each joint in the first component.
[0124] 540: If the solving is not successful, from the components included in the robot, determine the component composed of the robot arm and the waist as a second component, wherein the second component includes the first component and an auxiliary component, the auxiliary component is the waist, and according to the difference between the current pose and the target pose, through the inverse kinematics algorithm, judge whether the target angle of each joint in the second component can be solved successfully.
[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 pose of the robot according to the target angle corresponding to each joint in the auxiliary component. After adjusting the pose, execute step 510 again.
[0126] 560: If the target angle of each joint in the second component cannot be solved successfully, the second component is determined as the first component again, and from the components included in the robot, determine the component composed of the robot arm, the waist and the chassis as the updated second component. The auxiliary component in the updated second component is the chassis.
[0127] In an example, the reason why the robot cannot solve the target angle of each joint in the second component successfully can be: calculation failure, machine failure, pre-set iteration termination condition (satisfying the first condition and not satisfying the second condition) and the like.
[0128] 570: According to the difference between the current pose and the target pose, through the inverse kinematics algorithm, solve the target angle of each joint in the updated second component, and determine the target angle corresponding to each joint in the auxiliary component, and adjust the pose of the robot according to the target angle corresponding to each joint in the auxiliary component. After adjusting the pose, execute step 510 again.
[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 can be less than or equal to the control accuracy of the robot arm and greater than the control accuracy of the waist.
[0130] The execution sequence of steps 410-490 and the execution sequence of steps 510-570 can be adjusted as needed. The steps 410-490 and 510-570 can be understood by referring to the description of steps 210-240, which will not be repeated here. The robot control method provided by the embodiments of the present application can control the robot arm to move to a target pose.
[0131] Exemplary device
[0132] Figure 6 Fig. 6 shows a structure diagram of a robot control device 600 provided by an exemplary embodiment of the present application. As shown in Fig. 6, the robot control device 600 comprises a first determining module 610, a second determining module 620, an angle determining module 630, and a control module 640. Figure 6
[0133] The first determining module 610 is configured to determine a current pose and a target pose of an end of a robot arm.
[0134] The second determining module 620 is configured to determine, from components included in the robot, a first component whose control accuracy is higher than or equal to a preset accuracy threshold, wherein the first component comprises the robot arm in which the end of the robot arm is located.
[0135] The angle determining module 630 is configured to determine, according to a difference between the current pose and the target pose, a target angle corresponding to each joint in the first component by an inverse kinematics algorithm.
[0136] The control module 640 is configured to control the robot according to the target angle corresponding to each joint in the first component.
[0137] The robot control device provided by the embodiment of the present application determines the current pose and the target pose of the end of the robot arm through the first determining module during the execution of the task by the robot, determines the first component from the components included in the robot, the first component includes the robot arm where the end of the robot arm is located, and the control precision of the first component is higher than or equal to the preset precision threshold, then determines the target angle corresponding to each joint in the first component according to the difference between the current pose and the target pose through the inverse kinematics algorithm through the angle determining module, and finally controls the robot according to the target angle corresponding to each joint in the first component through the control module. In this way, the embodiment of the present application completes the task only by controlling the first component with the control precision higher than or equal to the preset precision threshold during the execution of the task by the robot, avoids the influence of the components with lower control precision among the components included in the robot, and further ensures the control precision in the control process of the robot. Meanwhile, in the case that the task executed by the robot is a high-precision task, the robot control device in the embodiment of the present application can avoid the situation that the task cannot be executed due to the lower control precision of the robot, and further ensures the completion degree of the task.
[0138] According to an embodiment of the present application, the robot is a dual-arm robot; the first determining module 610 is configured to determine the current pose of the left arm end of the robot and / or the current pose of the right arm end of the robot.
[0139] According to an embodiment of the present application, the angle determining module 630 is configured to solve the target angle corresponding to each joint in the first component according to the difference between the current pose and the target pose through the inverse kinematics algorithm; if the solving is successful, it is determined that each joint in the first component is used to execute the target task, and the target angle corresponding to each joint in the first component is determined according to the solving result; wherein the target task is used to indicate that the end of the robot arm is moved from the current pose to the target pose.
[0140] According to an embodiment of the present application, the angle determining module 630 is further configured to: if the solving is not successful, determine the second component from the components included in the robot, the second component includes the first component and the auxiliary component, the control precision of the auxiliary component is lower than the control precision of the first component, and the second component is used to execute the target task; determine the target angle corresponding to each joint in the second component according to the difference between the current pose and the target pose through the 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, if the control accuracy of the auxiliary assembly is lower than the preset accuracy threshold, the angle determination module 630 is configured to: determine target angles of each joint in the auxiliary assembly according to target angles of each joint in the second assembly; control the robot to adjust the pose according to the target angles of each joint in the auxiliary assembly, and redetermine the current pose of the end of the robot after the pose adjustment is completed; redetermine target angles of each joint in the first assembly according to the target pose and the redetermined current pose; and control the robot according to the redetermined target angles of each joint in the first assembly.
[0142] According to an embodiment of the present application, if the control accuracy of the auxiliary assembly is higher than or equal to the preset accuracy threshold, the angle determination module 630 is further configured to: if the target angles of each joint in the second assembly cannot be solved by the inverse kinematics algorithm, take the second assembly as the first assembly, and update the second assembly according to the control accuracy of each assembly in the robot; and repeatedly execute the steps of determining the target angles of each joint in the second assembly according to the difference between the current pose and the target pose by the inverse kinematics algorithm, and controlling the robot according to the target angles of each joint in the second assembly.
[0143] According to an embodiment of the present application, the robot includes a robot arm, a waist, and a bottom; the first assembly includes the robot arm, the second assembly includes an assembly composed of the robot arm and the waist, and the updated second assembly includes an assembly composed of the robot arm, the waist, and the bottom.
[0144] The embodiment of the present application further provides a robot, which can include a control module, and the control module is configured to execute the control method of the robot provided in any of the above embodiments. In addition, the robot can further include a robot arm.
[0145] Specifically, the robot arm can include a single arm, a double arm, and a multi-arm. In some embodiments, the robot can further include a waist.
[0146] The operation and function of the robot provided in the embodiment of the present application can refer to the description of the control method of the robot provided in any of the above embodiments, and details are not repeated here. Figure 2 、 Figure 3 、 Figure 4 and Figure 5 The operation and function of the robot provided in the embodiment of the present application can refer to the description of the control method of the robot provided in any of the above embodiments, and details are not repeated here.
[0147] Figure 7 FIG. 7 shows a block diagram of an electronic device 700 for executing a robot control method according to an exemplary embodiment of the present application. The electronic device 700 can be a mobile device, a control device of a mobile device, a server interacting with a mobile device, or other devices.
[0148] Referring to FIG. 7, 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, such as an application, executable by the processing component 710. The application stored in the memory 720 can include one or more than one module each corresponding to a set of instructions. In addition, the processing component 710 is configured to execute the instructions to perform the robot control method described above.
[0149] The electronic device 700 can further include a power 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 can be operated based on an operating system stored in the memory 720, such as Windows Server TM , Mac OSX TM , Unix TM , Linux TM , FreeBSD TM or the like.
[0150] A non-transitory computer readable storage medium, when the instructions stored in the storage medium are executed by the processor of the electronic device 700 described above, enable the electronic device 700 described above to perform a robot control method.
[0151] All optional technical solutions described above can be combined to form optional embodiments of the present application, which will not be described one by one here.
[0152] Those of ordinary skill in the art can realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be realized in electronic hardware, or in a combination of computer software and electronic hardware. Whether the functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present application.
[0153] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the system, device and unit described above can refer to the corresponding process in the foregoing method embodiments, which will not be described here.
[0154] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented in other manners. For example, the described device embodiments are merely schematic. For example, the division of the units is only a logical function division. There can be another division manner for the 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. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections between different units, can be indirect couplings or communication connections through some interfaces, devices or units, and can be electrical, mechanical or in other forms.
[0155] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, i.e., can be located in one place, or can be distributed on multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.
[0156] In addition, each functional unit in the various embodiments of the present application can be integrated into a processing unit, or each unit can be physically present separately, or two or more units can be integrated into one unit.
[0157] If the functions are realized in the form of software function units and sold or used as independent products, they can be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the present application or the essential part or part of the technical solutions that make contributions to the prior art can be embodied in the form of a software product. The computer software product is stored in a storage medium, and includes a number of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk or an optical disk, and various media that can store program check codes.
[0158] It should be noted that in the description of the present application, the terms "first", "second", "third" and the like are used only for the purpose of description, and cannot be understood as indicating or implying relative importance. In addition, in the description of the present application, unless otherwise specified, the meaning of "multiple" is two or more.
[0159] It should be noted that the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or refusal.
[0160] The above only describes preferred embodiments of the present application and is not intended to limit the present application. Any modification, equivalent replacement, etc. made within the spirit and principle 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 robot's end effector; From the components included in the robot, a first component with a control precision higher than or equal to a preset precision threshold is determined, wherein the first component includes the robotic arm at the end of the robotic arm; Based on the difference between the current pose and the target pose, the target angles corresponding to each joint in the first component are determined by the inverse kinematics algorithm. The robot is controlled based on the target angles corresponding to each joint in the first component. The step of determining the target angles corresponding to each joint in the first component based on the difference between the current pose and the target pose using an inverse kinematics algorithm includes: Based on the difference between the current pose and the target pose, the target angles corresponding to each joint in the first component are solved using an inverse kinematics algorithm. If the solution fails, a second component is determined from the components included in the robot. The second component includes the first component and an auxiliary component. The control precision of the auxiliary component is lower than that of the first component. The second component is used to perform the target task. Based on the difference between the current pose and the target pose, the target angles corresponding to each joint in the second component are determined by the inverse kinematics algorithm, and the robot is controlled according to the target angles corresponding to each joint in the second component.
2. The robot control method according to claim 1, characterized in that, The robot is a dual-arm robot, wherein... Determining the current pose of the robot's end effector includes: Determine the current pose of the robot's left arm end and / or the current pose of the robot's right arm end.
3. The robot control method according to claim 1, characterized in that, The step of determining the target angles corresponding to each joint in the first component based on the difference between the current pose and the target pose using an inverse kinematics algorithm further includes: If the solution is successful, it is determined that each joint in the first component is used to perform the target task, and the target angle corresponding to each joint in the first component is determined according to the solution result; wherein, the target task is used to instruct the robotic arm end effector to move from the current pose to the target pose.
4. The robot control method according to claim 1, characterized in that, The control precision of the auxiliary component is lower than the preset precision threshold. The step of controlling the robot according to the target angles corresponding to each joint in the second component includes: Based on the target angles corresponding to each joint in the second component, determine the target angles corresponding to each joint in the auxiliary component; Based on the target angles corresponding to each joint in the auxiliary component, the robot is controlled to adjust its pose. After the pose adjustment is completed, the current pose of the end effector of the robotic arm is re-determined. Based on the target pose and the re-determined current pose, the target angles corresponding to each joint in the first component are re-determined. The robot is controlled based on the target angles corresponding to each joint in the first component, which have been redefined.
5. The robot control method according to claim 1, characterized in that, The control precision of the auxiliary component is higher than or equal to the preset precision threshold. The method further includes: If the target angles corresponding to each joint in the second component cannot be obtained by the inverse kinematics algorithm, then 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. The steps of repeatedly executing the method of determining the target angle corresponding to each joint in the second component based on the difference between the current pose and the target pose using an inverse kinematics algorithm, and controlling the robot based on the target angle corresponding to each joint in the second component are repeated.
6. The robot control method according to claim 5, characterized in that, The robot includes the robotic arm, waist, and bottom; the first component includes the robotic arm, the second component includes the robotic arm and the waist, and the updated second component includes the robotic arm, the waist, and the bottom.
7. A robot, characterized in that, It includes a control module, which is used to execute the robot control method according to any one of claims 1 to 6.
8. An electronic device, characterized in that, include: processor; Memory used to store the processor's executable instructions. The processor is used to execute the robot control method according to any one of claims 1 to 6.
9. A computer-readable storage medium, characterized in that, The storage medium stores a computer program for executing the robot control method according to any one of claims 1 to 6.
10. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by the processor of a computer device, enables the computer device to perform the robot control method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Spatial pose online simulation system based on five-degree-of-freedom robot
CN114055467A
Tunnel supporting structure 3D printing system and control method thereof
CN116277955A