Robot control method, robot, electronic device, and medium
Patent Information
- Application Number
- CN202510399751.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-31
- Publication Date
- 2026-10-13
AI Technical Summary
然而,目前预测关节的角度的方法存在计算量大的问题,进而导致机器人控制过程存在效率低下的问题
[0011]本申请实施例提供了一种机器人控制方法、机器人、电子设备及介质,通过预测机器人待控制关节对应的初始角度组,将初始角度组与预先确定的该待控制关节对应的角度组安全取值范围进行比对,确定初始角度组与角度组安全取值范围的边界之间的距离,基于该距离与初始角度组,来确定控制机器人待控制关节的目标角度组,进而基于目标角度组控制机器人待控制关节动作。该初始角度组可用于表征待控制关节连接的多个连杆在下一时刻的可能位姿,该距离能够表征待控制关节基于初始角度组进行动作时是否会引发安全问题,如连杆发生自干涉。这样一来,本申请实施例将机器人上关节在进行动作时是否会发生自干涉的判断,转化为计算初始角度组与角度组安全取值范围的边界之间的距离的计算,在该距离表征关节基于初始角度组进行动作不会发生自干涉时,将初始角度组确定为目标角度组,控制关节根据目标角度组进行动作;在距离表征关节基于初始角度组进行动作会发生自干涉时,可对初始角度组进行修正得到目标角度组,根据目标角度组控制关节进行小范围动作。由此,本申请实施例能够降低在控制机器人进行关节动作时的计算资源消耗,提高了关节控制效率,进而综合提高了机器人的实时控制效率。此外,本申请实施例可以在提高控制效率的同时,避免对关节的运动范围造成损失。
Smart Images

Figure CN122896089A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of robotics technology, specifically to a robot control method, a robot, electronic equipment, and a medium. Background Technology
[0002] With the continuous advancement of science and technology, people's lives and work are gradually moving towards intelligentization. In some scenarios, robots can be used for tasks. For example, a robot arm can be used to grasp objects or tighten screws. When using robots for these operations, it is necessary to control some of the robot's joints, such as predicting or planning joint angles, and then controlling joint movement based on the predicted angles. During the prediction of joint angles, it is crucial to ensure that the predicted angles will not cause safety issues such as collisions with the links associated with that joint. However, current methods for predicting joint angles suffer from high computational demands, leading to inefficiencies in the robot control process. Summary of the Invention
[0003] In view of this, embodiments of this application provide a robot control method, a robot, an electronic device, and a medium, which can improve the control efficiency of the robot.
[0004] In a first aspect, embodiments of this application provide a robot control method, comprising: predicting an initial angle set corresponding to at least one joint on a robot, wherein the robot includes a plurality of links connected to at least one joint, and the initial angle set includes an angle corresponding to each of the at least one joint; determining a distance between the initial angle set and the boundary of a safe range of angle values, wherein any angle set within the safe range of angle values is used to characterize that, when at least one joint is at the angle represented by the angle set, the poses of the plurality of links satisfy a safety condition; determining a target angle set for at least one joint based on the distance and the initial angle set; and controlling the movement of at least one joint based on the target angle set.
[0005] Secondly, embodiments of this application provide a robot control device, comprising: a prediction module for predicting an initial angle set corresponding to at least one joint on a robot, wherein the robot includes a plurality of links connected to at least one joint, and the initial angle set includes an angle corresponding to each of the at least one joint; a first determination module for determining the distance between the initial angle set and the boundary of a safe range of angle values, wherein any angle set within the safe range of angle values is used to characterize that, when at least one joint is at the angle represented by the angle set, the poses of the plurality of links satisfy a safety condition; a second determination module for determining a target angle set for at least one joint based on the distance and the initial angle set; and a control module for controlling the movement of at least one joint based on the target angle set.
[0006] Thirdly, embodiments of this application provide a robot including a control module, which is used to execute the robot control method described in the first aspect above.
[0007] Fourthly, embodiments of this application provide an electronic device, including: 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.
[0008] Fifthly, embodiments of this application provide a computer-readable storage medium storing a computer program for executing the robot control method described in the first aspect.
[0009] Sixthly, embodiments of this application provide a computer program product comprising a computer program that, when executed by a processor of a computer device, enables the computer device to perform the robot control method described in the first aspect.
[0010] In a seventh aspect, embodiments of this application provide a chip, including: 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.
[0011] This application provides a robot control method, robot, electronic device, and medium. By predicting the initial angle set corresponding to the joint to be controlled on the robot, the initial angle set is compared with a pre-determined safe range of angle values for the joint to be controlled. The distance between the initial angle set and the boundary of the safe range of angle values is determined. Based on this distance and the initial angle set, a target angle set for controlling the joint to be controlled is determined, and then the movement of the joint is controlled based on the target angle set. The initial angle set can be used to characterize the possible poses of multiple links connected to the joint to be controlled at the next moment. The distance can characterize whether the joint to be controlled will cause safety problems when it moves based on the initial angle set, such as self-interference of the links. In this way, the present application embodiment transforms the determination of whether self-interference will occur when the robot's joints perform movements into calculating the distance between the initial angle set and the boundary of the safe range of angle values. When this distance indicates that the joint will not experience self-interference when moving based on the initial angle set, the initial angle set is determined as the target angle set, and the joint is controlled to move according to the target angle set. When the distance indicates that the joint will experience self-interference when moving based on the initial angle set, the initial angle set can be corrected to obtain the target angle set, and the joint is controlled to perform small-range movements according to the target angle set. Therefore, the present application embodiment can reduce the computational resource consumption when controlling the robot's joint movements, improve joint control efficiency, and thus comprehensively improve the robot's real-time control efficiency. In addition, the present application embodiment can improve control efficiency while avoiding loss of the joint's range of motion. Attached Figure Description
[0012] Figure 1 The diagram shown is a schematic representation of the system architecture of a robot control system provided in an exemplary embodiment of this application.
[0013] Figure 2 The diagram shown is a flowchart illustrating a robot control method provided in an exemplary embodiment of this application.
[0014] Figure 3 The diagram shown is a schematic diagram of the structure of a robot planar cross wrist joint provided in an exemplary embodiment of this application.
[0015] Figure 4 The diagram shown is a schematic representation of the range of motion of a planar cross wrist joint provided in an exemplary embodiment of this application.
[0016] Figure 5a The diagram shown is a two-dimensional planar schematic diagram corresponding to multiple angle groups provided in an exemplary embodiment of this application.
[0017] Figure 5b The figure shown is a two-dimensional planar schematic diagram of the safe range of angle group values provided in an exemplary embodiment of this application.
[0018] Figure 6 The diagram shown is a two-dimensional planar schematic diagram of the safe range of angle group values provided in another exemplary embodiment of this application.
[0019] Figure 7 The diagram shown is a flowchart illustrating a robot control method provided in another exemplary embodiment of this application.
[0020] Figure 8 The diagram shown is a schematic representation of the structure of a robot control device provided in an exemplary embodiment of this application.
[0021] Figure 9 The diagram shown is a block diagram of an electronic device for performing a robot control method according to an exemplary embodiment of this application. Detailed Implementation
[0022] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0023] Application Overview
[0024] With the development of intelligent technologies, more and more tasks can be performed by robots. For example, a robot's arm can be used to grasp objects or tighten screws. Specifically, in some scenarios, motion planning is required for the robot's arm or other parts. This involves planning or predicting the angles of each joint on the robot's arm, and then controlling the joint movement based on these angles to achieve the desired operation. During the process of controlling the robot's joint movement according to the planned or predicted angles, it is crucial to ensure that the multiple links connected to the joint do not interfere with each other, such as colliding.
[0025] Currently, there are two main types of methods for planning or predicting the angles of robot joints. The first type predicts joint angles by limiting the range of motion of the joints to prevent self-interference of links. This method is simple and efficient, and quite effective in traditional robotic arms. However, for some new joint configurations, such as planar cross-shaped wrist configurations, interference is usually related to the angles of two or three joints simultaneously, making it difficult to simply avoid self-interference by limiting the range of motion; otherwise, it would cause a significant loss of the joint's range of motion. The second type performs kinematic calculations on the predicted joint angles in real time to determine whether the links will collide. While this method has good reliability, it suffers from high computational load and low computational efficiency, leading to low real-time control efficiency of the robot.
[0026] To address the aforementioned technical problems, this application provides a robot control method. By predicting the initial angle set corresponding to the joint to be controlled on the robot, comparing the initial angle set with a pre-determined safe range of angle values for the joint, the distance between the initial angle set and the boundary of the safe range is determined. Based on this distance and the initial angle set, a target angle set for controlling the joint is determined, and then the robot's joint movement is controlled based on the target angle set. The initial angle set can be used to characterize the possible poses of multiple links connected to the joint at the next moment, and the distance can characterize whether the joint's movement based on the initial angle set will cause safety issues, such as self-interference of the links. In this way, the present application embodiment transforms the determination of whether self-interference will occur when the robot's joints perform movements into calculating the distance between the initial angle set and the boundary of the safe range of angle values. When this distance indicates that the joint will not experience self-interference when moving based on the initial angle set, the initial angle set is determined as the target angle set, and the joint is controlled to move according to the target angle set. When the distance indicates that the joint will experience self-interference when moving based on the initial angle set, the initial angle set can be corrected to obtain the target angle set, and the joint is controlled to perform small-range movements according to the target angle set. Therefore, the present application embodiment can reduce the computational resource consumption when controlling the robot's joint movements, improve joint control efficiency, and thus comprehensively improve the robot's real-time control efficiency. In addition, the present application embodiment can improve control efficiency while avoiding loss of the joint's range of motion.
[0027] Exemplary System
[0028] Figure 1 The diagram shown is a schematic representation of the system architecture of a robot control system provided in an exemplary embodiment of this application. Figure 1 As shown, the robot control system 100 may include a robot 110. The robot 110 may be a robot including an arm, such as a robot with one arm or two arms. Specifically, the robot 110 may be a wheeled robot, a humanoid robot, a tracked robot, or other types of robots.
[0029] Robot 110 can perform the task of grasping objects using one of its arms 111. Specifically, the arm 111 may include two joints and three links connected to the two joints, the three links being series-connected. Figure 1As shown, the arm 111 includes a first joint 1111 and a second joint 1112, as well as a first link 1113, a second link 1114, and a third link 1115. During the process of the robot 110 controlling the arm 111 to perform the task of grasping the object 120, the robot 110 can plan or predict the angles of the first joint 1111 and the second joint 1112 in real time based on the position of the object 120, so as to control the end of the arm 111 to gradually approach the position of the object 120, and ultimately control the end of the arm 111 to grasp the object 120.
[0030] As the control arm 111 gradually approaches and grasps the object 120, the robot 110 can predict in real time the initial angle set corresponding to the first joint 1111 and the second joint 1112 on the robot. The initial angle set includes the angles corresponding to the first joint 1111 and the second joint 1112. The robot 110 can further determine the distance between the initial angle set and the boundary of the safe range of angle values. Any angle set within the safe range of angle values is used to characterize that, when the first joint 1111 and the second joint 1112 are at the angles represented by the angle set, the poses of the first link 1113, the second link 1114, and the third link 1115 meet the safety conditions. Robot 110 can determine the target angle group corresponding to the first joint 1111 and the second joint 1112 based on the distance and the initial angle group, and control the movement of the first joint 1111 and the second joint 1112 based on the target angle group. For example, by controlling the movement of the first joint 1111 and the second joint 1112, the end of the arm 111 can be controlled to gradually approach the position of the object 120 and grasp the object 120.
[0031] Similarly, in other examples, robot 110 can control the joint movements of other parts of robot 110 through the control methods described above, thereby controlling those other parts to perform other tasks.
[0032] In one example, the process of controlling joint movements by robot 110 can be performed by a controller, which can be deployed on robot 110 or on other electronic devices that can communicate with robot 110 to send a set of target angles to robot 110 so that robot 110 can control the corresponding joint movements based on the set of target angles.
[0033] It should be understood that the above application scenario examples are only shown to facilitate understanding of the spirit and principles of this application, and the embodiments of this application are not limited thereto. Rather, the embodiments of this application can be applied to any applicable scenario.
[0034] Exemplary methods
[0035] Figure 2This is a flowchart illustrating a robot control method provided as an exemplary embodiment of this application. Figure 2 The method can be derived from Figure 1 Robot 110 in the process is executed. (For example...) Figure 2 As shown, the robot control method may include the following:
[0036] 210: Predict the initial angle set corresponding to at least one joint on the robot.
[0037] The robot includes a plurality of links connected to at least one joint, and the initial angle set includes the angles corresponding to each of the at least one joint.
[0038] In one example, the robot can be used to perform a target task. During the execution of the target task, the robot can predict or plan the angles of the joints required to perform the target task. At least one joint in step 210 can be a joint required to perform the target task. The number of angles included in the initial angle set is the same as the number of at least one joint. For example, when at least one joint includes one joint, the initial angle set can include the predicted angle corresponding to that joint; when at least one joint includes multiple joints, the initial angle set can include the predicted angles corresponding to each of the multiple joints.
[0039] In one example, multiple links can be all links connected to at least one joint, or only some links. For example, when at least one joint includes two joints, the total number of links connecting these two joints can be three, with the three links connected in series, and adjacent links connecting one joint. The three links, in the order of connection, can include a first link, a second link, and a third link. In some cases, the robot's structure determines that the middle second link will not interfere with or collide with other links. Therefore, when implementing the robot control method in these cases, the middle second link can be disregarded, and only the first and third links can be considered. That is, the multiple links in step 210 can be two links.
[0040] When each joint in at least one joint is fixed according to the corresponding angle in the initial angle set, the pose of multiple links can be fixed. Therefore, the initial angle set can be used to characterize the possible poses of multiple links connected by at least one joint in the next moment. In practical applications, in order to ensure the control accuracy of robot joints, the selected initial angle set can be relatively close to the angle set formed by the actual angles of the robot joint at the current moment, so as to avoid frequent situations where the robot joint makes self-interference decisions under the initial angle set.
[0041] 220: Determine the distance between the initial angle group and the boundary of the safe range of angle values.
[0042] Any angle group within the safe range of angle group values is used to characterize that, when at least one joint is at the angle represented by the angle group, the poses of multiple links satisfy the safety conditions.
[0043] Specifically, the poses of multiple links are determined when each joint in at least one joint is at a corresponding angle within the angle group. The safety conditions that the poses of the multiple links must satisfy may include preventing self-interference, such as collisions, between the links in their corresponding poses. That is, when at least one joint is controlled to be at any angle represented by any angle group within the safe range of the angle group's values, the multiple links will not interfere with each other. Of course, safety conditions can be set according to actual needs, such as ensuring that the multiple links do not exceed their range of motion.
[0044] In one example, the safe range of angle group values can be set in advance according to actual needs, such as based on specific geodynamic algorithms or network models, or based on experience.
[0045] In one example, the distance between the initial angle set and the boundary of the safe range of angle values can characterize the likelihood that multiple links will not meet the safety conditions, such as the possibility of self-interference. Alternatively, it can characterize the likelihood that multiple links will self-interfere during subsequent robot control, such as during the subsequent prediction of the angle set corresponding to at least one joint. For example, a larger distance indicates a lower likelihood of self-interference among multiple links when controlling joint movement based on the initial angle set, or a lower likelihood that the subsequently predicted angle set corresponding to at least one joint will cause self-interference among multiple links, and vice versa.
[0046] 230: Determine the target angle set for at least one joint based on the distance and the initial angle set.
[0047] In one example, when the distance characterizes that at least one joint will not cause self-interference when it moves based on the initial angle set, the initial angle set is the target angle set; when the distance characterizes that at least one joint will cause self-interference when it moves based on the initial angle set, the angle set formed by the actual angles of at least one joint at the current moment can be determined as the target angle set, or the initial angle set can be corrected and it can be determined that the corrected angle set will not cause self-interference in multiple links, and then the corrected angle set can be determined as the target angle set.
[0048] In one example, the distance can be positive or negative. When the distance is positive, it indicates that the initial angle group is within the safe range of the angle group. When the distance is negative, it indicates that the initial angle group is outside the safe range of the angle group.
[0049] In one example, initially, the angle group formed by the angles of at least one joint is within the safe range of angle values, which is safe, and multiple links will not interfere with each other. As the control process progresses, the angle group formed by the angles of at least one joint will change in real time, and may gradually approach the boundary of the safe range of angle values. When the distance is less than a certain level, if not controlled in time, the angle group formed by the angles of at least one joint may fall outside the safe range of angle values in subsequent control processes. At this time, multiple links will interfere with each other, which may cause multiple links to get stuck and unable to continue moving, and in severe cases, it may damage the robot. Therefore, the distance can be detected in real time, and when the distance is less than a preset distance threshold, the initial angle group can be adjusted based on the distance to obtain the target angle group.
[0050] In one example, when the distance is greater than or equal to a preset distance threshold, it indicates that the probability of self-interference occurring when at least one joint moves based on the initial angle set is low, or the probability of self-interference occurring at subsequent moments is low. In this case, the initial angle set is the target angle set. When the distance is less than the preset distance threshold, it indicates that the probability of self-interference occurring when at least one joint moves based on the initial angle set is high, or the probability of self-interference occurring at subsequent moments is high. In this case, the angle set formed by the actual angles of at least one joint at the current moment can be determined as the target angle set, or the initial angle set can be modified to obtain the target angle set. The distance corresponding to the modified angle set can be greater than the distance corresponding to the initial angle set, or greater than the preset distance threshold.
[0051] 240: Control at least one joint movement based on the target angle group.
[0052] Specifically, after obtaining the target angle set, at least one joint can be controlled based on the target angle set.
[0053] This application provides a robot control method. By predicting the initial angle set corresponding to the joint to be controlled, comparing the initial angle set with a pre-determined safe range of angle values for the joint, the distance between the initial angle set and the boundary of the safe range is determined. Based on this distance and the initial angle set, a target angle set for controlling the joint is determined, and then the joint's movement is controlled based on the target angle set. The initial angle set can be used to characterize the possible poses of multiple links connected to the joint at the next moment, and the distance can characterize whether the joint's movement based on the initial angle set will cause safety issues, such as self-interference of the links. In this way, the present application embodiment transforms the determination of whether self-interference will occur when the robot's joints perform movements into calculating the distance between the initial angle set and the boundary of the safe range of angle values. When this distance indicates that the joint will not experience self-interference when moving based on the initial angle set, the initial angle set is determined as the target angle set, and the joint is controlled to move according to the target angle set. When the distance indicates that the joint will experience self-interference when moving based on the initial angle set, the initial angle set can be corrected to obtain the target angle set, and the joint is controlled to perform small-range movements according to the target angle set. Therefore, the present application embodiment can reduce the computational resource consumption when controlling the robot's joint movements, improve joint control efficiency, and thus comprehensively improve the robot's real-time control efficiency. In addition, the present application embodiment can improve control efficiency while avoiding loss of the joint's range of motion.
[0054] According to one embodiment of this application, the robot control method further includes: generating multiple angle groups according to preset rules; determining the poses of multiple links when at least one joint is at the angle represented by each angle group in the multiple angle groups; determining the angle group corresponding to the pose that meets the safety conditions as a safe angle group; and determining the safe value range of the angle group based on the safe angle group.
[0055] Specifically, for at least one joint mentioned above, multiple angle groups can be generated according to preset rules. Each angle group includes the angles corresponding to each joint in at least one joint. The preset rules can be to generate multiple angle groups according to a certain angle step size, or to generate multiple angle groups through a random method. For example, Monte Carlo simulation or other methods can be used to generate multiple angle groups.
[0056] Furthermore, by determining the poses of multiple links when at least one joint is at an angle represented by each of multiple angle groups, the angle groups corresponding to poses that satisfy the safety conditions can be defined as safety angle groups, and the safe value range of the angle groups can be determined based on the safety angle groups. In one example, the pose corresponding to each link can be the pose of the geometric center point of the link, or the pose of other points on the link, as long as it can be used to characterize the pose of the link. If multiple links self-interfere in their respective poses, such as colliding with each other, it indicates that the poses corresponding to the multiple links do not satisfy the safety conditions; otherwise, the safety conditions are satisfied. In one example, whether multiple links self-interfere, such as colliding, occurs includes whether any two links among the multiple links will collide. If two links among the multiple links collide, then the multiple links are considered to have collided.
[0057] In this embodiment, by pre-determining the safe range of angle values corresponding to at least one joint, the subsequent robot control process only needs to calculate the distance between the initial angle group and the safe range of angle values, which reduces the computational resource consumption in the robot control process and improves the real-time response speed of the robot control process.
[0058] According to one embodiment of this application, the robot control method further includes: constructing a three-dimensional model corresponding to each of the multiple links; performing collision detection processing on the multiple three-dimensional models corresponding to the multiple links based on the poses of the multiple links; and determining that the poses of the multiple links meet the safety conditions if no collision occurs among the multiple three-dimensional models.
[0059] Specifically, by constructing a 3D model corresponding to each of the multiple links, and setting the pose of the corresponding 3D model based on the pose of each link, collision detection is performed on the multiple 3D models. In this way, collision detection of the multiple links is achieved through collision detection of the 3D models. If no collision occurs among the multiple 3D models, it can be determined that the poses of the multiple links meet the safety conditions.
[0060] This application does not specifically limit the method of constructing the 3D model. For example, the 3D model can be constructed based on the bounding box method or other suitable methods.
[0061] In one example, the collision detection algorithm used can be a collision detection algorithm based on the Standard Triangle Language (STL) model or other algorithms. For example, the collision detection algorithm can be a bounding box-based algorithm, an exact collision detection algorithm, or a continuous collision detection algorithm. Specifically, the collision detection algorithm used can be a triangle intersection detection algorithm within the exact collision detection algorithm.
[0062] In one example, the safety condition can be that multiple links do not interfere with each other, specifically that the three-dimensional models of multiple links do not collide or overlap in space.
[0063] In this embodiment, collision detection of multiple links is achieved by using collision detection of the three-dimensional model. This allows for more accurate detection of whether each angle group will cause multiple links to collide, thus improving the accuracy of the final safe range of angle group values.
[0064] In one example, at least one joint may be a joint in the robot's arm, leg, waist, head, or other parts.
[0065] In one example, at least one joint may include a planar cruciate wrist joint. For example, such as... Figure 3 As shown, Figure 3 This is a schematic diagram of a planar cross-shaped wrist joint provided in an embodiment of this application. This joint is the wrist joint of a humanoid robotic arm: J6 and J7 are rotary joints whose axes intersect at a single point, and their initial angles are orthogonal. Due to mechanical limitations, the range of motion of J6 is ±45°, and that of J7 is ±90°. However, when the two joints move together, the range of motion of the joint angle of J7 is affected by the joint angle of J6.
[0066] In one example, such as Figure 4 As shown, Figure 4 This is a schematic diagram illustrating the range of motion of a planar cruciate wrist joint provided in an embodiment of this application. When the angle of J6 is 0°, the range of motion of J7 is approximately ±80°, as shown below. Figure 4 The left half of the diagram shows the movement range of J7 when the angle of J6 is 45°, which is approximately ±45°. Figure 4 As shown in the right half of the image.
[0067] In one example, this application simplifies the extraction of the 3D model of the planar cruciate wrist joint and generates an STL patch model of the planar cruciate wrist joint. The specific method for determining the 3D model of the joint has been described above and will not be repeated here. At this time, three STL patch models need to participate in the collision detection calculation: the fixed end of J6, the fixed end of J7 (i.e., the movable end of J6), and the movable end of J7 (i.e., the end flange of the planar cruciate wrist joint), denoted as component 0, component 1, and component 2, respectively. Here, component 0, component 1, and component 2 can be understood as three connecting rods.
[0068] The joint angles of J6 and J7 are denoted as θ6 and θ7, respectively. The pose of component 0 remains fixed and does not change with the aforementioned two joint angles. The pose of component 1 is calculated using a homogeneous matrix and denoted as 1. 0T(θ6), the pose of component 2 is calculated based on the pose of component 1, and is denoted as 1. 0 T(θ6)· 1 2T(θ7). This gives us the poses of components 0, 1, and 2. The poses of components 1 and 2 can be understood as the poses of the two links connected by the joint.
[0069] In one example, with Figure 4 Taking the planar cross-shaped wrist joint as an example, multiple angle groups can be randomly generated within the range of motion of J6 and J7. Each angle group includes the angles corresponding to J6 and J7. Then, the poses of the two links (i.e., component 1 and component 2) under each angle group are determined, and collision detection is performed based on these poses. The specific process of collision detection can be found in the description above. In this way, multiple angle groups can be divided into two sets. The poses of the two links corresponding to the angle groups in one set do not cause self-interference, i.e., do not cause collisions, while the poses of the two links corresponding to the angle groups in the other set do cause collisions. The method of determining whether the corresponding links produce self-interference through angle groups has been described above and will not be repeated here. In one example, the angle groups from the two sets can be projected onto a two-dimensional plane to draw a closed polygon, which is used to represent the safe range of angle group values. Figure 5a As shown, Figure 5a The horizontal and vertical axes in the diagram represent the angles of the two joints (J6 and J7), respectively. For example, the horizontal axis represents the angle of J6, and the vertical axis represents the angle of J7. Figure 5a Any point within the figure can correspond to a set of angles. Figure 5a The middle polygon in the figure shown corresponds to the set of angle groups that do not produce self-interference, which is also the safe range of angle values. Drawing it independently is... Figure 5b The figure shown; correspondingly, Figure 5a The portion of the graphic excluding the central polygon generates a set of angle groups that self-interfere.
[0070] According to one embodiment of this application, at least one joint may include N joints, an initial angle set includes N angles, the initial angle set corresponds to a first point in N-dimensional space, the N dimensions of the N-dimensional space are respectively used to characterize the angles corresponding to the N joints, and the safe range of angle values corresponds to the target range in N-dimensional space. Determining the distance between the initial angle set and the boundary of the safe range of angle values includes: determining the distance between the first point and the boundary of the target range.
[0071] For example, when the robot uses only one joint to perform the target task, i.e., when N is 1, the initial angle set includes one angle and corresponds to the first point in one-dimensional space. In this case, the first point can be located on a straight line in one-dimensional space. Correspondingly, the safe range of the angle set is a segment of that straight line; that is, the target range corresponding to the safe range of the angle set is one-dimensional. When the first point is within this segment, the angle set corresponding to the first point will not cause self-interference. The distance between the first point and the boundary point of the segment can characterize the probability of the angle set corresponding to the first point causing self-interference or the probability of the subsequently predicted angle set causing self-interference. When the first point is outside this segment, the angle set corresponding to the first point will cause self-interference.
[0072] Similarly, when N is 2, the initial angle set includes two angles, corresponding to a point in two-dimensional space. Accordingly, the safe range of values for the angle set can be a region in two-dimensional space; that is, the target range corresponding to the safe range of values for the angle set is two-dimensional. When N is 3, the initial angle set includes three angles, corresponding to a point in three-dimensional space. Accordingly, the safe range of values for the angle set can be a closed polyhedron in three-dimensional space; that is, the target range corresponding to the safe range of values for the angle set is three-dimensional. And so on, N can be 4, or other values.
[0073] In other words, the number of angles included in the initial angle set varies with the number of joints used by the robot to perform the target task; correspondingly, the N-dimensional space corresponding to the safe range of angle values will also vary with the number of joints used by the robot to perform the target task.
[0074] In this embodiment, by representing the angle corresponding to at least one joint as an N-dimensional angle group, and representing the safe range of the angle group as a range in N-dimensional space, that is, mapping the angle group to a point in N-dimensional space, the inspection efficiency of the initial angle group can be improved. That is, the initial angle group is checked for suitability by the distance between the initial angle group and the boundary of the safe range of the angle group. If it is not suitable, the target angle group can be determined based on the distance and the initial angle group.
[0075] According to one embodiment of this application, before determining the distance between the first point and the boundary of the target range, the robot control method further includes: simplifying the boundary of the target range to obtain an updated target range, wherein determining the distance between the first point and the boundary of the target range includes: determining the distance between the first point and the boundary of the updated target range.
[0076] In one example, taking the initial angle set as an example that includes the angles of two joints, if the initial angle set is in such a way... Figure 5b In the two-dimensional plane shown, the corresponding point is denoted as point P. Then point P is the first point, and the distance from point P to... Figure 5b The boundaries of the polygons shown are the distances between the outlines, i.e., the distances between the first point and the boundaries of the target area.
[0077] In another example, to simplify the calculation of the distance between the first point and the boundary of the target range, the boundary of the target range can be simplified to obtain an updated target range, and then the distance between the first point and the boundary of the updated target range can be determined.
[0078] For example, such as Figure 6 As shown, Figure 6 The polygon formed by the black lines in the diagram is a simplified representation of the updated target area. Originally... Figure 5b After processing, the polygons in the image were obtained. Figure 6 The hexagon shown has a significantly reduced number of sides. In one example, the shape of the polygon corresponding to the updated target range can be determined specifically based on the boundary shape of the target range before simplification, and is not limited to... Figure 6 Examples are provided. In one example, when the number of joints used by the robot to perform the target task is not 2, that is, when N is not 2, the shape of the target range before simplification can be a line segment or a polyhedron; correspondingly, the shape of the updated target range is also a line segment or a polyhedron with a simpler shape.
[0079] In one example, a graphics algorithm (such as ray casting, winding number method) or other suitable algorithm can be used to determine whether the first point is within the target range and / or calculate the distance between the first point and the boundary of the target range.
[0080] In this embodiment, by simplifying the boundary of the target range, the complexity of the geometry corresponding to the new target range is significantly reduced, and the time required to calculate the distance between the first point and the boundary of the target range is also significantly reduced, thereby further improving the real-time response speed of the robot control process.
[0081] According to one embodiment of this application, the robot control method further includes: determining multiple boundary points on the boundary of the target range, wherein the multiple boundary points correspond to multiple angle groups within the safe range of angle group values. Determining the distance between the first point and the boundary of the target range includes: determining a second point among the multiple boundary points that is closest to the first point; determining a first vector based on the first point and the second point; determining a second vector based on the second point and a third point among the multiple boundary points, wherein the third point is adjacent to the second point; and determining the distance based on the first vector and the second vector.
[0082] For example, a circular method can be used to determine multiple boundary points on the target range boundary, and these boundary points can be sorted to determine the second point closest to the first point. In practical applications, other methods can also be used to determine multiple boundary points on the target range boundary, and this application does not specifically limit them.
[0083] In one example, the third point can be either a boundary point adjacent to the second point in a clockwise direction or a boundary point adjacent to the second point in a counterclockwise direction.
[0084] Specifically, graphical methods or other methods can be used to determine the second point among multiple boundary points that is closest to the first point. For example, the KD-tree (K-Dimensional Tree) method or the ray casting method can be used to determine the second point among multiple boundary points that is closest to the first point. This application does not make any specific limitations on this.
[0085] In one example, the first point can be represented as P, the second point as A, and the third point as B. The first vector can be represented as... The second vector can be represented as Furthermore, the vector outer product can be calculated. The sign of the cross product determines whether the first point is inside or outside the target area (such as a polygon). For example, a positive cross product indicates the first point is inside the target area, while a negative cross product indicates the first point is outside. However, it's also possible that a positive cross product indicates the first point is inside the target area, and a negative cross product indicates the first point is outside, depending on the selection of point B and / or the initial conditions. Furthermore, the aforementioned distance can be obtained based on the cross product value.
[0086] In one example, distance can serve as a constraint for subsequent motion planning, and can also serve as the first point and the self-interference region (e.g. Figure 5a This refers to the quantification of distances between regions (located outside the central polygon). For example, the smaller the distance, the greater the force corresponding to the constraint, and the stronger the constraint on subsequent motion planning. This allows the initial angle set for subsequent planning or prediction to be as far away from the boundary of the target range as possible, moving closer to the center of the target range, thus avoiding self-interference among multiple links in subsequent planning. Furthermore, by combining the distance and the requirements of the target task (such as the location of the object), the current initial angle set and the subsequent angle set to be predicted can be reasonably adjusted to obtain the optimal target angle set at the current time.
[0087] Specifically, based on the examples of preset rules mentioned earlier, when using the Monte Carlo simulation method to select 100,000 random points, and employing the 3D model collision detection method, ray casting method (using ray casting after determining the target range), KD tree method (using KD tree method after determining the target range), and simplified target range boundary combined with ray casting method, the time taken to determine whether the initial angle group is within the target range (the safe range of angle group values) is shown in Table 1 below:
[0088] Table 1 Calculation Time Table
[0089]
[0090] Therefore, it can be concluded that the time consumption of the ray casting method, the KD tree method, and the ray casting method combined with simplified target range boundaries is significantly lower than that of the 3D model collision detection method. The ray casting method combined with simplified target range boundaries has the lowest time consumption, but it has an additional step of simplifying the target range boundary compared to other methods, and its accuracy is also slightly reduced. The KD tree method is the second fastest in time, and it can also determine the distance between the initial angle group and the boundary of the safe range of angle group values, providing a reference for determining the target angle group in subsequent processes. Overall, the KD tree method is the best among the four methods mentioned above.
[0091] In this embodiment, the distance between the initial angle group and the boundary of the safe range of angle group values is calculated by constructing a vector. This method can easily determine whether the initial angle group is within the safe range of angle group values and can improve the efficiency of distance calculation.
[0092] In one example, multiple links include M links, where M is greater than or equal to 2 and less than or equal to N. For example, the reason for M being greater than or equal to 2 and less than or equal to N is that there exists a situation where at least one joint has two members (i.e., N = 2), and the total number of links connected to those two joints is three. Two links need to be checked to determine if the safety condition (i.e., whether self-interference occurs). One of these links, due to structural design, will not self-interfere with other links, therefore, there is no need to check whether this link will self-interfere.
[0093] Figure 7 A flowchart illustrating a robot control method provided as another exemplary embodiment of this application. Figure 7 The example is Figure 2 Examples of the embodiments are provided below; to avoid repetition, the similarities can be referred to the descriptions in the above embodiments, and will not be repeated here. For example... Figure 7 As shown, the robot control method may include the following:
[0094] 710: Generate multiple angle groups according to preset rules, determine the poses of multiple links when at least one joint is at the angle represented by each angle group in the multiple angle groups, construct a three-dimensional model corresponding to each link in the multiple links, perform collision detection processing on the multiple three-dimensional models corresponding to the multiple links based on the poses of the multiple links, determine the angle group corresponding to the pose that meets the safety conditions as the safe angle group, and determine the safe value range of the angle group based on the safe angle group.
[0095] Specifically, the preset rules, at least one joint, multiple links, angle groups, safety angle groups, safe value ranges for angle groups, safety conditions, 3D models, and collision detection processing details can be found in the descriptions in the above embodiments. When no collision occurs between multiple 3D models, the poses of multiple links are determined to meet the safety conditions.
[0096] In one example, step 710 can be performed offline.
[0097] 720: The safe range of angle group values corresponds to the target range in N-dimensional space. The boundary of the target range is simplified to obtain the updated target range.
[0098] In one example, at least one joint includes N joints, the initial angle group includes N angles, the initial angle group corresponds to the first point in N-dimensional space, the N dimensions of the N-dimensional space are used to characterize the angles corresponding to the N joints, and the safe range of angle group values corresponds to the target range in N-dimensional space.
[0099] 730: Determine multiple boundary points on the target range boundary.
[0100] Multiple boundary points correspond to multiple angle groups within the safe range of angle group values. The process for determining multiple boundary points can be found in the description of the above embodiments.
[0101] In one example, steps 710 through 730 can be performed offline.
[0102] 740: Predict the initial angle set corresponding to at least one joint on the robot.
[0103] For details regarding the initial angle set, please refer to the description in the above embodiments.
[0104] In one example, step 740 can be in the robot's online motion planning stage, where the robot needs to predict or plan the angle of at least one joint in real time according to the requirements of the target task to obtain an initial set of angles.
[0105] 750: The initial angle group corresponds to the first point in N-dimensional space. Determine the second point among multiple boundary points that is closest to the first point. Determine the first vector based on the first and second points. Determine the second vector based on the second point and the third point among multiple boundary points. Determine the distance between the initial angle group and the boundary of the safe range of angle group values based on the first and second vectors.
[0106] Specifically, the third point can be adjacent to the second point. For details regarding the first point, second point, third point, first vector, second vector, and the determination of distances, please refer to the description in the above embodiments.
[0107] 760: Determine the target angle set for at least one joint based on distance and initial angle set.
[0108] Specifically, the details of the target angle group can be found in the description in the above embodiments.
[0109] 770: Control at least one joint movement based on the target angle group.
[0110] Specifically, after obtaining the target angle set, at least one joint movement can be controlled based on the target angle set. Then, the robot can repeatedly execute steps 740 to 770 to achieve real-time planning and control of at least one joint, thereby controlling at least one joint to complete the target task.
[0111] Exemplary device
[0112] Figure 8 The diagram shown is a structural schematic of a robot control device provided in an exemplary embodiment of this application. Figure 8 As shown, the robot control device 800 includes: a prediction module 810, a first determination module 820, a second determination module 830, and a control module 840.
[0113] A prediction module 810 is used to predict an initial angle set corresponding to at least one joint on the robot, wherein the robot includes multiple links connected to at least one joint, and the initial angle set includes the angle corresponding to each of the at least one joint. A first determination module 820 is used to determine the distance between the initial angle set and the boundary of the safe range of angle values, wherein any angle set within the safe range of angle values is used to characterize that the poses of the multiple links satisfy the safety conditions when at least one joint is at the angle represented by the angle set. A second determination module 830 is used to determine a target angle set for at least one joint based on the distance and the initial angle set. A control module 840 is used to control the movement of at least one joint based on the target angle set.
[0114] This application provides a robot control device that predicts the initial angle set corresponding to the joint to be controlled, compares the initial angle set with a pre-determined safe range of angle values for the joint, determines the distance between the initial angle set and the boundary of the safe range, and determines the target angle set for controlling the joint based on this distance and the initial angle set. Then, the device controls the movement of the joint based on the target angle set. The initial angle set can be used to characterize the possible poses of multiple links connected to the joint at the next moment, and the distance can characterize whether the joint's movement based on the initial angle set will cause safety issues, such as self-interference of the links. In this way, the present application embodiment transforms the determination of whether self-interference will occur when the robot's joints perform movements into calculating the distance between the initial angle set and the boundary of the safe range of angle values. When this distance indicates that the joint will not experience self-interference when moving based on the initial angle set, the initial angle set is determined as the target angle set, and the joint is controlled to move according to the target angle set. When the distance indicates that the joint will experience self-interference when moving based on the initial angle set, the initial angle set can be corrected to obtain the target angle set, and the joint is controlled to perform small-range movements according to the target angle set. Therefore, the present application embodiment can reduce the computational resource consumption when controlling the robot's joint movements, improve joint control efficiency, and thus comprehensively improve the robot's real-time control efficiency. In addition, the present application embodiment can improve control efficiency while avoiding loss of the joint's range of motion.
[0115] According to one embodiment of this application, the robot control device 800 further includes a generation module 850, which is used to: generate multiple angle groups according to preset rules; determine the poses of multiple links when at least one joint is at the angle represented by each angle group in the multiple angle groups; determine the angle group corresponding to the pose that meets the safety conditions as a safe angle group; and determine the safe value range of the angle group based on the safe angle group.
[0116] According to one embodiment of this application, the generation module 850 is further configured to: construct a three-dimensional model corresponding to each of the multiple links; perform collision detection processing on the multiple three-dimensional models corresponding to the multiple links based on the poses of the multiple links, and determine that the poses of the multiple links meet the safety conditions if no collision occurs in the multiple three-dimensional models.
[0117] According to one embodiment of this application, at least one joint includes N joints, and an initial angle set includes N angles. The initial angle set corresponds to a first point in N-dimensional space, and the N dimensions of the N-dimensional space are used to characterize the angles corresponding to the N joints. The safe range of values for the angle set corresponds to the target range in the N-dimensional space. The first determining module 820 is used to determine the distance between the first point and the boundary of the target range.
[0118] According to one embodiment of this application, the generation module 850 is further configured to simplify the boundary of the target range to obtain an updated target range. The first determining module 820 is configured to determine the distance between the first point and the boundary of the updated target range.
[0119] According to one embodiment of this application, the generation module 850 is further configured to determine multiple boundary points on the boundary of the target range, wherein the multiple boundary points correspond to multiple angle groups within the safe range of angle group values. The first determination module 820 is configured to: determine a second point among the multiple boundary points that is closest to the first point; determine a first vector based on the first point and the second point; determine a second vector based on the second point and a third point among the multiple boundary points, wherein the third point is adjacent to the second point; and determine a distance based on the first vector and the second vector.
[0120] According to one embodiment of this application, the plurality of links includes M links, where M is greater than or equal to 2 and less than or equal to N.
[0121] According to one embodiment of this application, at least one joint includes a planar cruciate wrist joint.
[0122] It should be understood that the operation and function of the prediction module 810, the first determination module 820, the second determination module 830, the control module 840, and the generation module 850 in the above embodiments can be referred to the above. Figure 2 or Figure 7 The description of the robot control method provided in the embodiments will not be repeated here to avoid repetition.
[0123] This application also provides a robot, which includes a control module for executing the robot control method provided in any of the above embodiments.
[0124] In some embodiments, the robot may be a robot including arms, such as a dual-arm robot, or a robot including legs. Specifically, the robot may be a wheeled robot, a humanoid robot, a tracked robot, or other types of robots.
[0125] The operation and functions of the robot provided in this application embodiment can be referred to the above. Figure 2 or Figure 7 The description of the robot control method provided in the embodiments will not be repeated here to avoid repetition.
[0126] Figure 9 The diagram shown is a block diagram of an electronic device 900 for performing a robot control method according to an exemplary embodiment of this application. Specifically, the electronic device 900 may be a server, a robot, a robot control device, a server interacting with the robot, or other devices.
[0127] Reference Figure 9The electronic device 900 includes a processing component 910, which further includes one or more processors, and memory resources represented by a memory 920 for storing instructions executable by the processing component 910, such as application programs. The application programs stored in the memory 920 may include one or more modules, each corresponding to a set of instructions. Furthermore, the processing component 910 is configured to execute instructions to perform the aforementioned robot control method.
[0128] Electronic device 900 may also include a power supply component configured to perform power management of electronic device 900, a wired or wireless network interface configured to connect electronic device 900 to a network, and an input / output (I / O) interface. Electronic device 900 can be operated based on an operating system stored in memory 920, such as Windows Server. TM Mac OSX TM Unix TM Linux TM FreeBSD TM Or similar.
[0129] A non-transitory computer-readable storage medium, wherein when instructions in the storage medium are executed by the processor of the aforementioned electronic device 900, the electronic device 900 is enabled to perform a robot control method.
[0130] A computer program product includes a computer program that, when executed by a processor of a computer device, enables the computer device to perform the robot control method provided in any of the above embodiments.
[0131] All of the above-mentioned optional technical solutions can be combined in any way to form optional embodiments of this application, and will not be described in detail here.
[0132] Those skilled in the art will recognize that the units and algorithm steps of the various examples 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 implemented 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 this application.
[0133] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0134] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0135] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0136] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0137] If the aforementioned functions are implemented as 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 this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program verification codes, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0138] It should be noted that in the description of this application, the terms "first," "second," "third," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance. Furthermore, in the description of this application, unless otherwise stated, "a plurality of" means two or more.
[0139] 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, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use and processing of the relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or refuse.
[0140] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications or equivalent substitutions made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A robot control method, characterized in that, include: Predict an initial angle set corresponding to at least one joint on a robot, wherein the robot includes a plurality of links connected to the at least one joint, and the initial angle set includes the angle corresponding to each of the at least one joint; Determine the distance between the initial angle group and the boundary of the safe range of angle group values, wherein any angle group in the safe range of angle group values is used to characterize that the pose of the plurality of links satisfies the safety conditions when the at least one joint is at the angle represented by the angle group. Determine the target angle set of the at least one joint based on the distance and the initial angle set; The movement of at least one joint is controlled based on the target angle group.
2. The robot control method according to claim 1, characterized in that, Also includes: Multiple angle groups are generated according to preset rules; Determine the pose of the plurality of links when the at least one joint is at an angle represented by each of the plurality of angle groups; The angle group corresponding to the pose that meets the safety conditions is determined as the safe angle group, and the safe value range of the angle group is determined based on the safe angle group.
3. The robot control method according to claim 2, characterized in that, Also includes: Construct a three-dimensional model for each of the multiple links; Based on the poses of the multiple links, collision detection is performed on the multiple 3D models corresponding to the multiple links. If no collision occurs in the multiple 3D models, it is determined that the poses of the multiple links meet the safety conditions.
4. The robot control method according to claim 1, characterized in that, The at least one joint includes N joints, the initial angle set includes N angles, the initial angle set corresponds to the first point in N-dimensional space, the N dimensions of the N-dimensional space are used to characterize the angles corresponding to the N joints, and the safe range of the angle set corresponds to the target range in the N-dimensional space. Determining the distance between the initial angle group and the boundary of the safe range of angle values includes: Determine the distance between the first point and the boundary of the target range.
5. The robot control method according to claim 4, characterized in that, Before determining the distance between the first point and the boundary of the target range, the robot control method further includes: The boundaries of the target range are simplified to obtain an updated target range. Determining the distance between the first point and the boundary of the target range includes: Determine the distance between the first point and the boundary of the updated target range.
6. The robot control method according to claim 4, characterized in that, Also includes: Multiple boundary points are determined on the boundary of the target range, and these multiple boundary points correspond to multiple angle groups within the safe range of the angle groups. Determining the distance between the first point and the boundary of the target range includes: Determine the second point among the plurality of boundary points that is closest to the first point; A first vector is determined based on the first point and the second point, and a second vector is determined based on the second point and a third point among the plurality of boundary points, wherein the third point is adjacent to the second point; The distance is determined based on the first vector and the second vector.
7. The robot control method according to claim 4, characterized in that, The plurality of links includes M links, where M is greater than or equal to 2 and less than or equal to N.
8. The robot control method according to any one of claims 1 to 7, characterized in that, The at least one joint includes a planar cruciate wrist joint.
9. 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 8.
10. 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 8.
11. 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 8.
12. 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 8.