Intelligent obstacle avoidance system and method for humanoid robot
By establishing a positive and inverse kinematic model and identifying the non-obstruction profile on the inner side of the obstacle, and adjusting the structural unit posture of the humanoid robot, the problem of insufficient obstacle avoidance ability in an unstructured environment is solved, and more efficient obstacle crossing and path planning is achieved.
Patent Information
- Application Number
- CN202510408460.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-02
- Publication Date
- 2025-07-04
AI Technical Summary
Existing humanoid robots lack obstacle avoidance capabilities in unstructured environments, making it difficult to effectively perceive and avoid diverse and variable location obstacles, resulting in possible damage or path inefficiency.
By establishing a forward and inverse kinematic model of the humanoid robot, we can judge whether the preset obstacle avoidance action is feasible. If it is not feasible, the non-obstruction profile on the inside of the obstacle is identified, and the postures of each structural unit are analyzed and adjusted based on the forward and inverse kinematic model to pass through the obstacle. The obstacles are avoided through the preset obstacle avoidance action. If it is not feasible, an early warning is made.
The humanoid robot's obstacle avoidance ability in an unstructured environment is improved. By adjusting its posture to pass through obstacles, the limitations of preset obstacle avoidance actions are avoided, and the autonomous navigation ability and path efficiency in complex environments are enhanced.
Smart Images

Figure CN120255522A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of humanoid robot control, relates to the intelligent obstacle avoidance technology of robots, and specifically is an intelligent obstacle avoidance system and method for humanoid robots. Background Art
[0002] With the rapid development of humanoid robot technology, its application scenarios have gradually expanded from structured industrial environments to unstructured environments such as homes, offices, and public places. In these environments, the types of obstacles are diverse, with various shapes and changing positions, such as furniture, pedestrians, vehicles, etc. If a humanoid robot cannot accurately perceive and effectively avoid obstacles, it may not only cause damage to itself, such as a cracked shell or a sprained joint caused by a collision. Therefore, the autonomous navigation and obstacle avoidance capabilities of humanoid robots in complex environments are becoming increasingly crucial.
[0003] Currently, humanoid robots detect obstacles through built-in sensors and run preset programs according to the position, size, and direction of the obstacles to perform obstacle avoidance actions, thereby avoiding obstacles. The obstacle avoidance actions adopted by humanoid robots mainly include side-step obstacle avoidance, turning obstacle avoidance, jumping obstacle avoidance, etc. The main purpose of these obstacle avoidance actions is to avoid or bypass obstacles. However, in unstructured environments, many obstacles will exist simultaneously, thus compressing the movement space of humanoid robots. If only relying on preset obstacle avoidance actions to perform tasks, it is difficult to achieve intelligent obstacle avoidance in unstructured environments.
[0004] This application discloses an intelligent obstacle avoidance system and method for humanoid robots to solve the above technical problems. Summary of the Invention
[0005] The present invention aims to solve at least one of the technical problems existing in the prior art; for this purpose, the present invention proposes an intelligent obstacle avoidance system and method for humanoid robots, which first avoids obstacles through preset obstacle avoidance actions. If the obstacles cannot be avoided, it analyzes whether the humanoid robot can pass through the non-obstacle contour inside the obstacle by adjusting the postures of each structural unit. If it can pass through, it determines its target posture based on the forward and inverse kinematic models, analyzes the possibility of passing through the obstacle based on the flexibility of the humanoid robot, is not limited to the preset obstacle avoidance actions, and can improve the obstacle avoidance ability of the humanoid robot in unstructured environments.
[0006] To achieve the above object, the first aspect of the present invention provides an intelligent obstacle avoidance method for humanoid robots, including:
[0007] Obtain the three-dimensional model of the humanoid robot and establish the forward and inverse kinematic models according to the three-dimensional model; detect obstacle data through the perception unit of the humanoid robot; wherein, the obstacle data includes size and position;
[0008] Determine whether performing a preset obstacle avoidance action can avoid the obstacle; if yes, perform the preset obstacle avoidance operation to avoid the obstacle; if not, identify the non-obstacle contour inside the obstacle; wherein, the sensing unit includes a laser sensor and a depth camera; wherein, the preset obstacle avoidance actions include side-step obstacle avoidance, turning obstacle avoidance, and jumping obstacle avoidance;
[0009] Based on the forward and inverse kinematic models, determine whether the humanoid robot can pass through the non-obstacle contour; if yes, extract the target pose and control the humanoid robot to pass through the obstacle according to the target pose; if not, give an alarm.
[0010] Preferably, determining whether performing a preset obstacle avoidance action can avoid the obstacle includes:
[0011] According to the obstacle data, determine whether there is a non-obstacle contour outside the obstacle; if yes, extract the contour information of the non-obstacle contour; if not, determine that performing the preset obstacle avoidance action cannot avoid the obstacle;
[0012] Simulate the action contour required for the humanoid robot to perform the preset obstacle avoidance action; compare the action contour with the contour information to determine whether the humanoid robot can avoid the obstacle.
[0013] Preferably, determining whether there is a non-obstacle contour outside the obstacle according to the obstacle data includes:
[0014] Extract the outer contour of the obstacle according to the obstacle data; when the outer contour is a non-closed contour, use a line to convert the outer contour into a closed contour; wherein, the line includes a straight line or an arc;
[0015] Identify the non-obstacle contour in the area not included in the non-outer contour and mark this non-obstacle contour as the non-obstacle contour outside the obstacle.
[0016] Preferably, identifying the non-obstacle contour inside the obstacle includes:
[0017] Extract the inner contour of the obstacle according to the obstacle data; wherein, the inner contour is a closed contour or a non-closed contour;
[0018] Identify and extract the non-obstacle contour from the continuous area including the area corresponding to the inner contour and mark this non-obstacle contour as the non-obstacle contour inside the obstacle.
[0019] Preferably, determining whether the humanoid robot can pass through the non-obstacle contour based on the forward and inverse kinematic models includes:
[0020] Divide the humanoid robot into several structural units; wherein, the structural units include a head, a torso, upper limb parts, and lower limb parts, the upper limb parts include a large arm, a small arm, and a hand, and the lower limb parts include a thigh and a calf;
[0021] Select one of several structural units as the target unit; determine whether the target unit can pass through the non-obstacle contour; if so, solve the motion postures of other structural units based on the forward and inverse motion models; if not, determine that the robot cannot pass through the non-obstacle contour.
[0022] Preferably, selecting one of several structural units as the target unit includes:
[0023] Pre-establish the association relationships between several structural units in the humanoid robot and several sub-contours in the non-obstacle contour;
[0024] Evaluate the difficulty of each structural unit passing through the associated sub-contour, and select the structural unit with the greatest passing difficulty as the target unit.
[0025] Preferably, determining whether the target unit can pass through the non-obstacle contour includes:
[0026] Extract the association relationships between several structural units and sub-contours;
[0027] Extract the sub-contour associated with the target unit from the association relationships; when the target unit can pass through the associated sub-contour, determine that the target unit can pass through the non-obstacle contour.
[0028] Preferably, solving the motion postures of other structural units based on the forward and inverse motion models includes:
[0029] Simulate the best posture of the target unit passing through the associated sub-contour as the reference posture;
[0030] Based on the reference posture and the forward and inverse kinematic models, solve the posture range of the structural units adjacent to the target unit, and determine the best posture from the posture range according to the non-obstacle contour;
[0031] Then continue to solve based on the best postures of the adjacent structural units to obtain the best postures of several structural units; integrate the best postures of several structural units into the target posture of the humanoid robot.
[0032] Preferably, establishing the association relationships between several structural units and several sub-contours includes:
[0033] Take the upright state of the structural unit as the reference state;
[0034] Calculate the motion range of the structural unit in the vertical direction in the reference state through the forward and inverse kinematic models; intercept the corresponding sub-contour from the non-obstacle contour according to the motion range;
[0035] Associate the structural unit with the corresponding sub-contour.
[0036] The second aspect of the present invention provides an intelligent obstacle avoidance system for a humanoid robot, which is applied to the humanoid robot and includes an obstacle avoidance control module and a data acquisition module connected thereto. The data acquisition module acquires data through the humanoid robot.
[0037] Data acquisition module: used to obtain the three-dimensional model of the humanoid robot, establish forward and inverse kinematic models according to the three-dimensional model; and detect obstacle data through the sensing unit of the humanoid robot; wherein the obstacle data includes size and position.
[0038] Obstacle avoidance control module: used to judge whether executing a preset obstacle avoidance action can avoid the obstacle; if yes, execute the preset obstacle avoidance work for obstacle avoidance; if not, identify the non-obstacle contour inside the obstacle; wherein the sensing unit includes a laser sensor and a depth camera; wherein the preset obstacle avoidance actions include side-step obstacle avoidance, turning obstacle avoidance and jumping obstacle avoidance; and
[0039] used to judge whether the humanoid robot can pass through the non-obstacle contour based on the forward and inverse kinematic models; if yes, extract the target posture and control the humanoid robot to pass through the obstacle according to the target posture; if not, give an alarm.
[0040] Compared with the prior art, the beneficial effects of the present invention are:
[0041] 1. The present invention detects obstacle data through the sensing unit of the humanoid robot; first judges whether executing a preset obstacle avoidance action can avoid the obstacle, if not, then identifies the non-obstacle contour inside the obstacle; judges whether the humanoid robot can pass through the non-obstacle contour based on the forward and inverse kinematic models; if yes, extracts the target posture and controls the humanoid robot to pass through the obstacle according to the target posture; if not, gives an alarm; the present invention preferentially avoids the obstacle through the preset obstacle avoidance actions. If the obstacle cannot be avoided, it analyzes whether the humanoid robot can pass through the non-obstacle contour inside the obstacle by adjusting the postures of each structural unit. If it can pass through, it determines its target posture based on the forward and inverse kinematic models. Based on the flexibility of the humanoid robot, it analyzes the possibility of passing through the obstacle, which is not limited to the preset obstacle avoidance actions and can improve the obstacle avoidance ability of the humanoid robot in an unstructured environment.
[0042] 2. The present invention selects one from several structural units as the target unit; judges whether the target unit can pass through the non-obstacle contour; if yes, solves the motion postures of other structural units based on the forward and inverse kinematic models; when solving the motion postures of other structural units, based on the best posture of the target unit, first determines the best postures of the structural units adjacent to the target unit, and then sequentially solves until the best postures of all structural units are obtained, and the target posture of the humanoid robot can be obtained; solving the target posture from the typical structural units in the humanoid robot can, on the one hand, reduce the data processing volume, and on the other hand, improve the reliability of the target posture. Brief Description of the Drawings
[0043] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments of the present invention. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.
[0044] Figure 1 It is a schematic diagram of the method steps of the intelligent obstacle avoidance method in the first embodiment of the present invention;
[0045] Figure 2 It is a schematic diagram of the non-obstacle contours inside and outside the obstacle in the first embodiment of the present invention;
[0046] Figure 3 It is a schematic diagram of the system principle of the intelligent obstacle avoidance system in the present invention. Detailed Embodiments
[0047] The following will clearly and completely describe the technical solutions of the present invention in combination with the embodiments. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the scope of protection of the present invention.
[0048] Currently, robot obstacle avoidance is mainly achieved through preset obstacle avoidance actions. The obstacle avoidance actions are as follows: 1. Side-step obstacle avoidance: That is, the robot moves its feet to one side to avoid the obstacle in front; however, when quickly passing through a narrow space or avoiding an emergency obstacle, side-step obstacle avoidance is not as direct and efficient as the way of forward handstand to cross the obstacle. In an extremely narrow environment, side-step obstacle avoidance may be restricted by the space and cannot effectively avoid the obstacle; 2. Turning obstacle avoidance: That is, when the robot detects an obstacle in front, it can turn to change the traveling direction to avoid the obstacle; however, turning obstacle avoidance means that the robot needs to change the original traveling direction, which may increase the path length and time to reach the destination. And in some complex environments, turning obstacle avoidance will be restricted by the flexibility of the robot or the surrounding obstacles, while the way of forward handstand to cross the obstacle does not require changing the direction, saves time and improves the moving efficiency; 3. Jumping obstacle avoidance: That is, for some relatively high obstacles, the robot jumps over them; however, this method requires the robot to have a powerful power system and precise jump control, and has great instability. There may be a risk of losing control or falling during the jumping process, causing damage to the robot and the surrounding environment.
[0049] It can be seen that the existing robot obstacle avoidance mainly controls the robot to bypass obstacles. Of course, these obstacle avoidance actions can also be applied to humanoid robots. However, when a humanoid robot is applied to unstructured environments such as homes, offices, public places, and even disaster sites, it is difficult to perform tasks relying solely on preset obstacle avoidance actions. In view of the above limitations, the present invention provides an intelligent obstacle avoidance system and method for humanoid robots.
[0050] Embodiment 1:
[0051] Please refer to Figure 1 - Figure 2 , an embodiment of the first aspect of the present invention provides an intelligent obstacle avoidance method for a humanoid robot, including:
[0052] Obtain the three-dimensional model of the humanoid robot, and establish the forward and inverse kinematic models according to the three-dimensional model; detect obstacle data through the sensing unit of the humanoid robot; wherein, the obstacle data includes size and position;
[0053] Judge whether the preset obstacle avoidance action can avoid the obstacle; if yes, execute the preset obstacle avoidance work for obstacle avoidance; if not, identify the non-obstacle contour inside the obstacle; wherein, the sensing unit includes a laser sensor and a depth camera; wherein, the preset obstacle avoidance actions include side-step obstacle avoidance, turning obstacle avoidance, and jumping obstacle avoidance;
[0054] Based on the forward and inverse kinematic models, judge whether the humanoid robot can pass through the non-obstacle contour; if yes, extract the target posture, and control the humanoid robot to pass through the obstacle according to the target posture; if not, give an early warning.
[0055] The structure of the humanoid robot is similar to that of the human body, mainly including a head, a torso, upper limbs, lower limbs, etc. Various sensors, driving devices, etc. are installed inside the humanoid robot. Of course, the humanoid robot can also avoid obstacles through side-step obstacle avoidance, turning obstacle avoidance, jumping obstacle avoidance, etc. However, it cannot achieve obstacle avoidance when encountering a wall with a hole. And because each part of the humanoid robot has a certain degree of freedom, the overall posture of the humanoid robot can be adjusted by changing the postures of each part, so as to pass through obstacles that cannot be passed through by the preset obstacle avoidance actions.
[0056] Before realizing intelligent obstacle avoidance, it is necessary to establish the corresponding forward and inverse kinematic models according to the three-dimensional model of the humanoid robot, and the forward and inverse kinematic models can be used to adjust the posture of the humanoid robot. Then, the sensing unit set in the humanoid robot senses the obstacles on the task path, mainly sensing the size, position, etc. of the obstacles. If there is an obstacle avoidance space outside these obstacles, obstacle avoidance can be performed through preset obstacle avoidance actions; if there is not enough obstacle avoidance space outside the obstacles, it is judged whether there is a possibility of passing inside the obstacles. If there is a possibility of passing, the forward and inverse kinematic models are used to determine the best posture of the humanoid robot when passing.
[0057] While presetting obstacle avoidance actions in the humanoid robot, the present invention can also generate an obstacle avoidance supplementary solution based on the forward and inverse kinematic models, which can improve the passability of the humanoid robot in an unstructured environment, thereby ensuring the task completion rate.
[0058] Next, the important steps in the technical solution of the present invention will be described in detail.
[0059] Although the overall structures of humanoid robots are similar, there are still significant differences in their details. Therefore, it is necessary to establish forward and inverse kinematic models for each (each model) humanoid robot. The establishment process of the forward and inverse kinematic models can refer to the following steps:
[0060] 1. Determine the axis of each joint of the humanoid robot. These axes are actually the rotation axis or translation axis of the joint movement; according to the Denavit-Hartenberg (DH) parameter rule, establish a coordinate system for each link of the humanoid robot.
[0061] 2. Determine the DH parameters:
[0062] 1) Link length (a): The length of the common perpendicular between two adjacent joint axes; 2) Link rotation angle (α): The rotation angle around the common perpendicular from the previous joint axis to the current joint axis; 3) Link offset (d): The distance between two adjacent joints along the joint axis; 4) Joint angle (θ): The rotation angle around the joint axis;
[0063] 3. Establish the transformation matrix:
[0064] 1) Calculate the transformation matrix of each joint: According to the DH parameters, use the homogeneous transformation matrix to describe the relative position and attitude relationship between adjacent joint coordinate systems. The transformation matrix usually consists of two parts: rotation and translation, and the specific form is: i represents the i-th joint or link.
[0065] 2) Multiply the transformation matrices of all joints in sequence to obtain the total transformation matrix from the base coordinate system to the end effector coordinate system, thereby describing the pose of the end effector of the humanoid robot.
[0066] 4. Solve the kinematic equation:
[0067] 1) Forward kinematics solution: Given the DH parameters and joint angles of each joint, calculate the position and attitude of the end effector through the transformation matrix.
[0068] 2) Inverse kinematics solution: Given the target pose of the end effector, solve the corresponding joint angles
[0069] The construction and solution process of the forward and inverse kinematic models of the above-mentioned robot (humanoid robot) have been disclosed in the prior art. For detailed details, reference can be made to the construction of the forward and inverse kinematic models in the prior art, which will not be elaborated here.
[0070] In a preferred embodiment, determining whether a preset obstacle avoidance action can avoid an obstacle includes: judging whether there is a non-obstacle contour outside the obstacle according to the obstacle data; if so, extracting the contour information of the non-obstacle contour; if not, determining that the preset obstacle avoidance action cannot avoid the obstacle; simulating the action contour required for the humanoid robot to execute the preset obstacle avoidance action; comparing the action contour with the contour information to judge whether the humanoid robot can avoid the obstacle.
[0071] When judging whether a humanoid robot can avoid an obstacle through a preset obstacle avoidance action, the judgment principle is: if there is a certain space around the obstacle and this space is available for the humanoid robot to execute the preset obstacle avoidance action, then the humanoid robot can avoid the obstacle by executing the preset obstacle avoidance action; if there is no space, or there is space but it is not enough for the humanoid robot to execute the preset obstacle avoidance action, it is determined that the humanoid robot cannot avoid the obstacle.
[0072] The specific judgment logic provided in this embodiment is: first, identify the obstacle and whether there is a non-obstacle contour outside the obstacle through the obstacle data. The area corresponding to the non-obstacle contour has no obstacle, or the obstacle does not affect the humanoid robot's execution of the preset obstacle avoidance action. If there is a non-obstacle contour, extract the contour information and judge whether the humanoid robot can bypass it from the non-obstacle contour when executing the preset obstacle avoidance action; if there is no non-obstacle contour, it is determined that the humanoid robot cannot avoid the obstacle by executing the preset obstacle avoidance action.
[0073] For the non-obstacle contour, this embodiment provides an identification method, specifically: extracting the outer contour of the obstacle according to the obstacle data; when the outer contour is a non-closed contour, converting the outer contour into a closed contour by using a line; identifying the non-obstacle contour in the area not included in the non-outer contour and marking this non-obstacle contour as the non-obstacle contour outside the obstacle.
[0074] It should be noted that the non-obstacle contour can be determined by multiple obstacles. For example, if there is a box B placed on a table A, then the table A and the box B can be regarded as an obstacle; if there is a box B placed in front of the left side of the table A and there is a certain distance between them but this distance is not enough for the humanoid robot to pass through, then from the front view direction, the table A and the box B can still be regarded as an obstacle to determine the non-obstacle contour.
[0075] After detecting an obstacle, extract the outer contour of the obstacle, and then identify whether there are non-obstacle contours within the outer contour and the area, that is, non-obstacle contours in the area not included in the non-outer contour. In other words, the identified non-obstacle contours are not inside the obstacle. It should be noted that due to the diversity of obstacles, the outer contour may be a non-closed contour. In this case, a straight line or an arc can be used to transform the non-closed contour into a closed contour.
[0076] Exemplarily, please refer to Figure 2 , where "<>" is an obstacle on the task path of the humanoid robot, and the marked b1 corresponds to the outer contour of the obstacle. Since its outer contour is a non-closed contour, a line c is used to transform it into a closed contour. The area outside the outer contour of the obstacle within the outer rectangular frame is regarded as the non-obstacle area W (there is no obstacle in this part of the area), and the contour corresponding to the non-obstacle area W is regarded as the non-obstacle contour outside the obstacle.
[0077] It should be noted that the outer contour actually divides the front of the humanoid robot into two areas. One is the obstacle area inside the outer contour, and the other is the other area except the obstacle area. After detecting an obstacle in front, it is necessary to first determine whether the humanoid robot can avoid the obstacle through a preset obstacle avoidance action. Then, it is necessary to determine whether there is enough space for the humanoid robot to perform the obstacle avoidance action in the other area except the obstacle area. If there is enough space and it is sufficient for the humanoid robot to complete the obstacle avoidance action, the humanoid robot can be controlled to avoid the obstacle according to the preset obstacle avoidance action. Equivalently, there is a non-obstacle contour outside the obstacle, and this non-obstacle contour is sufficient for the humanoid robot to perform the preset obstacle avoidance action.
[0078] When judging whether the non-obstacle contour is sufficient for the humanoid robot to perform the preset obstacle avoidance action, the present invention provides a judgment method, that is, first simulate the humanoid robot performing the preset obstacle avoidance action, and extract the minimum contour required during the simulation process. This minimum contour can be used as the action contour. If the non-obstacle contour is larger than the action contour, it means that the humanoid robot can pass through the non-obstacle contour through the corresponding obstacle avoidance action, that is, it can avoid the obstacle. It should be noted that there are still action deviations for the humanoid robot. When determining the action contour, redundancy should be set, that is, to prevent the actual action from being too large due to action deviations and affecting the judgment result.
[0079] When there is no non-obstacle contour outside the obstacle or the non-obstacle contour is not sufficient to support the humanoid robot to perform the preset obstacle avoidance action, it is determined that the humanoid robot cannot bypass the obstacle from the outside. According to the existing control logic, in this case, the obstacle needs to be considered to re-determine the task path. However, one of the advantages of the humanoid robot is that it can perform some difficult actions like humans, such as crawling, squatting, bending, etc. These actions do not belong to the existing preset obstacle avoidance actions, but they lay the foundation for the humanoid robot to pass through narrow spaces.
[0080] Therefore, when a humanoid robot cannot pass outside an obstacle, it is considered to use its flexibility to pass through the obstacle from the inside. If it can pass through the obstacle from the inside, there needs to be a non-obstacle contour inside the obstacle. This embodiment provides a method for determining the non-obstacle contour inside the obstacle, including:
[0081] Extract the inner contour of the obstacle according to the obstacle data; identify and extract the non-obstacle contour from the continuous area containing the area corresponding to the inner contour, and mark this non-obstacle contour as the non-obstacle contour inside the obstacle.
[0082] Compared with the closed outer contour of the obstacle, the inner contour can be a closed contour or a non-closed contour, that is, even if the inner contour is a non-closed contour, it does not need to be processed. The inner contour will contain an area, and the non-obstacle contour can be identified from this area, or from this area and other continuous areas. If the humanoid robot can pass through this non-obstacle contour, it means it can pass through the obstacle.
[0083] Exemplarily, please refer to Figure 2 , where "<>" is an obstacle on the task path of the humanoid robot, and the marked b2 corresponds to the inner contour of the obstacle, and the area corresponding to the inner contour is N. Since the inner contour is not closed, the area N contained in the inner contour and the area W corresponding to the outer contour are integrated into one area, and the border corresponding to the integrated area is used as the non-obstacle contour inside the obstacle. Here, the integration process of area W and area N is because when the humanoid robot cannot pass through area W by performing a preset obstacle avoidance action, it may pass through area N. Due to the flexibility of the humanoid robot, area W can still be borrowed to improve the passing rate. Assume that the structural unit below the head of the humanoid robot can pass through area N, but the head area cannot pass through area N, then it can be tried to let the head area pass through the upper side of the dotted line c.
[0084] If the non-obstacle contour inside the obstacle is large and the humanoid robot can easily pass through it, directly control the humanoid robot to pass through the obstacle. However, if the inner non-obstacle contour is small and irregular, it cannot be determined at this time whether the humanoid robot can pass through the obstacle. Sometimes, by adjusting the postures of each part of the humanoid robot to adapt to the shape of the inner non-obstacle contour, it can also pass through the obstacle. Therefore, the key lies in judging whether the humanoid robot can pass through the inner non-obstacle contour. For this problem, this embodiment provides a judgment method, including:
[0085] Divide the humanoid robot into several structural units; select one of the several structural units as the target unit; judge whether the target unit can pass through the non-obstacle contour; if yes, solve the motion postures of other structural units based on the forward and inverse kinematic models; if no, determine that the robot cannot pass through the non-obstacle contour.
[0086] The structural units of the humanoid robot are determined according to its structural composition, specifically including the head, torso, upper limbs, and lower limbs. The upper limbs include the upper arm, forearm, and hand, and the lower limbs include the thigh and calf. Generally speaking, any one of the structural units can be selected as the target unit, because the postures of other structural units will ultimately be calculated through the forward and inverse kinematic models to determine whether the humanoid robot can pass through the non-obstacle contour inside the obstacle. However, considering the issue of data processing volume, the torso or lower limbs are generally selected as the target unit.
[0087] Before determining whether the target unit can pass through the non-obstacle contour inside the obstacle, it is necessary to establish the association relationship between several structural units in the humanoid robot and several sub-contours in the non-obstacle contour. This example provides a method for establishment, including:
[0088] Taking the upright state of the target unit as a reference, calculate the movement range of the target unit in the vertical direction through the forward and inverse kinematic models, that is, the lowest height and the highest height of the target unit in the vertical direction. The height range between the lowest height and the highest height is the possible activity range of the target unit. It should be noted that the lowest height here refers to the lowest height at the lower end of the target unit, and the highest height refers to the highest height at the upper end of the target unit.
[0089] Intercept a sub-contour from the non-obstacle contour inside the obstacle according to the movement range of the target unit in the height direction. The height of this sub-contour is the same as the height of the movement range, and the width, shape, etc. are the same as those of the non-obstacle contour. When other structural units are used as the target unit, their corresponding sub-contours in the non-obstacle contour can be determined in this way, and the association relationship between each sub-contour and the target unit can be established. It should be noted that there may be overlaps between the sub-contours corresponding to different structural units.
[0090] After determining the target unit, extract the sub-contour associated with the target unit, and judge whether the target unit can pass through the corresponding sub-contour. If it can pass through the corresponding sub-contour, simulate the best posture of the target unit passing through the associated sub-contour as the reference posture; based on the reference posture and the forward and inverse kinematic models, solve the posture range of the structural unit adjacent to the target unit, and determine the best posture from the posture range according to the non-obstacle contour; then continue to solve based on the best postures of the adjacent structural units to obtain the best postures of several structural units; integrate the best postures of several structural units into the target posture of the humanoid robot. If the target unit cannot pass through the associated sub-contour, there is no need to solve the postures of other subsequent structural units, and it is determined that the humanoid robot cannot pass through the non-obstacle contour inside the obstacle.
[0091] The determination of the above optimal posture is equivalent to fixing the motion parameters of the target unit. Through the fixed motion parameters and the forward and inverse kinematic models, the motion ranges of other structural units can be solved. Under the constraint of the fixed target unit, the optimal postures of its adjacent structural units are solved. By fixing and solving in turn, the optimal postures of all structural units of the humanoid robot can be obtained, and thus the target posture of the humanoid robot is obtained.
[0092] To control the humanoid robot to move according to the target posture, the non-obstacle contour inside the obstacle can be used. It should be noted that when solving the postures of each structural unit, the motion amplitudes of each structural unit during the motion of the humanoid robot need to be considered to avoid collision with the obstacle body when moving in the target posture.
[0093] It is worth noting that the basic requirement for the optimal posture is that the target unit can pass through its associated sub-contour. Of course, it is best to select the motion posture of the target unit in the middle of the sub-contour as the target posture. After the optimal posture of the target unit is determined, the motion ranges of the adjacent structural units can be solved by substituting into the forward and inverse kinematic models. The optimal postures of the corresponding structural units are determined from this motion range, and then the optimal postures of other structural units are determined based on the already determined optimal postures. Finally, it can be ensured that all structural units can pass through the non-obstacle contour at the same time, that is, the humanoid robot can pass through the non-obstacle contour.
[0094] Furthermore, when the motion posture of the target unit in the middle of the sub-contour is used as the target posture, if the posture that can pass through the associated sub-contour of the corresponding structural unit cannot be determined from the solved motion range of the adjacent structural unit, the target posture can be re-determined in the sub-contour of the target unit. For example, assume that the target unit passes through from the upper middle of the associated sub-contour and determine its optimal posture. The motion postures when the target unit passes through each position of the sub-contour can also be listed, and the motion postures are used as the optimal postures in turn to determine the postures of other structural units.
[0095] Embodiment 2: On the basis of Embodiment 1, a method for controlling a humanoid robot to pass through the non-obstacle contour outside the obstacle to avoid the obstacle is given. Specifically, when it is determined that the humanoid robot cannot pass through the non-obstacle contour inside the obstacle, it is judged whether the humanoid robot can pass through the non-obstacle contour outside with its flexibility.
[0096] Continuing the solution of Embodiment 1, when the motion postures of the target unit passing through each position of the sub-contour are used as the optimal postures and the optimal postures of other structural units that can pass through the non-obstacle contour cannot be solved in all cases, it is determined at this time that the humanoid robot cannot pass through the non-obstacle contour inside the obstacle. At this time, analyze the non-obstacle contour inside the obstacle and then analyze the non-obstacle contour outside to determine whether the humanoid robot can pass through the non-obstacle contour outside the obstacle with a posture other than the preset obstacle avoidance action.
[0097] Please refer to Figure 3 , an embodiment of the second aspect of the present invention provides an intelligent obstacle avoidance system for a humanoid robot, including an obstacle avoidance control module and a data acquisition module connected thereto. The data acquisition module acquires data through the humanoid robot;
[0098] Data acquisition module: used to obtain the three-dimensional model of the humanoid robot, establish forward and inverse kinematic models according to the three-dimensional model; and detect obstacle data through the sensing unit of the humanoid robot; wherein, the obstacle data includes size and position;
[0099] Obstacle avoidance control module: used to judge whether the execution of a preset obstacle avoidance action can avoid the obstacle; if yes, execute the preset obstacle avoidance operation to avoid the obstacle; if not, identify the non-obstacle contour inside the obstacle; wherein, the sensing unit includes a laser sensor and a depth camera; wherein, the preset obstacle avoidance actions include side-step obstacle avoidance, turning obstacle avoidance and jumping obstacle avoidance; and
[0100] used to judge whether the humanoid robot can pass through the non-obstacle contour based on the forward and inverse kinematic models; if yes, extract the target posture and control the humanoid robot to pass through the obstacle according to the target posture; if not, give an early warning.
[0101] The obstacle avoidance control module and the data acquisition module of this embodiment can be built based on cloud services or can be built into the humanoid robot.
[0102] The above embodiments are only used to illustrate the technical method of the present invention and not to limit it. Although the present invention has been described in detail with reference to the preferred embodiments, those of ordinary skill in the art should understand that the technical method of the present invention can be modified or equivalently replaced without departing from the spirit and scope of the technical method of the present invention.
Claims
1. An intelligent obstacle avoidance method for a humanoid robot, characterized in that, Including: Obtain the three-dimensional model of the humanoid robot, and establish the forward and inverse kinematic models according to the three-dimensional model; detect obstacle data through the perception unit of the humanoid robot; wherein, the obstacle data includes size and position; Judge whether the preset obstacle avoidance action can avoid the obstacle; if yes, execute the preset obstacle avoidance work for obstacle avoidance; if not, identify the non-obstacle contour inside the obstacle; wherein, the perception unit includes a laser sensor and a depth camera; wherein, the preset obstacle avoidance actions include side-step obstacle avoidance, turning obstacle avoidance and jumping obstacle avoidance; Based on the forward and inverse kinematic models, judge whether the humanoid robot can pass through the non-obstacle contour; if yes, extract the target posture, and control the humanoid robot to pass through the obstacle according to the target posture; if not, give an alarm.
2. An intelligent obstacle avoidance method for a humanoid robot according to claim 1, characterized in that Judging whether the preset obstacle avoidance action can avoid the obstacle includes: Judge whether there is a non-obstacle contour outside the obstacle according to the obstacle data; if yes, extract the contour information of the non-obstacle contour; if not, determine that the preset obstacle avoidance action cannot avoid the obstacle; Simulate the action contour required for the humanoid robot to execute the preset obstacle avoidance action; compare the action contour with the contour information to judge whether the humanoid robot can avoid the obstacle.
3. The intelligent obstacle avoidance method for a humanoid robot according to claim 1, wherein, Judging whether there is a non-obstacle contour outside the obstacle according to the obstacle data includes: Extract the outer contour of the obstacle according to the obstacle data; when the outer contour is a non-closed contour, convert the outer contour into a closed contour by using a line; wherein, the line includes a straight line or an arc; Identify the non-obstacle contour in the area not included in the outer contour, and mark the non-obstacle contour as the non-obstacle contour outside the obstacle.
4. An intelligent obstacle avoidance method for a humanoid robot according to claim 1, characterized in that, The identifying the non-obstacle contour inside the obstacle includes: Extract the inner contour of the obstacle according to the obstacle data; wherein, the inner contour is a closed contour or a non-closed contour; Identify and extract the non-obstacle contour from the continuous area including the area corresponding to the inner contour, and mark the non-obstacle contour as the non-obstacle contour inside the obstacle.
5. An intelligent obstacle avoidance method for a humanoid robot according to claim 1, characterized in that, Judging whether the humanoid robot can pass through the non-obstacle contour based on the forward and inverse kinematic models includes: Divide the humanoid robot into several structural units; wherein, the structural units include a head, a torso, upper limbs and lower limbs, the upper limbs include a large arm, a small arm and a hand, and the lower limbs include a thigh and a calf; Select one of the several structural units as the target unit; judge whether the target unit can pass through the non-obstacle contour; if yes, solve the motion postures of other structural units based on the forward inverse motion model; if not, determine that the robot cannot pass through the non-obstacle contour.
6. The intelligent obstacle avoidance method for a humanoid robot according to claim 5, wherein, Selecting one of the several structural units as the target unit includes: Pre-establish the association relationship between several structural units in the humanoid robot and several sub-contours in the non-obstacle contour; Evaluate the difficulty of each structural unit passing through the associated sub-contour, and select the structural unit with the greatest passing difficulty as the target unit.
7. An intelligent obstacle avoidance method for a humanoid robot according to claim 6, characterized in that, Judging whether the target unit can pass through the non-obstacle contour includes: Extract the association relationships between several of the said structural units and the said sub - contours; Extract the sub - contours associated with the target unit from the association relationships; when the target unit can pass through the associated sub - contours, it is determined that the target unit can pass through the non - obstacle contour.
8. An intelligent obstacle avoidance method for a humanoid robot according to claim 7, characterized in that, Solve the motion postures of other structural units based on the forward and inverse kinematic models, including: Simulate the optimal posture of the target unit passing through the associated sub - contour as the reference posture; Based on the reference posture and the forward and inverse kinematic models, solve the posture range of the structural units adjacent to the target unit, and determine the optimal posture from the posture range according to the non - obstacle contour; Then continue to solve based on the optimal postures of the adjacent structural units to obtain the optimal postures of several structural units; integrate the optimal postures of several structural units into the target posture of the humanoid robot.
9. An intelligent obstacle avoidance method for a humanoid robot according to claim 8, characterized in that, Establish the association relationships between several of the said structural units and several of the said sub - contours, including: Take the upright state of the structural unit as the reference state; Calculate the motion range of the structural unit in the vertical direction in the reference state through the forward and inverse kinematic models; intercept the corresponding sub - contour from the non - obstacle contour according to the motion range; Associate the structural unit with the corresponding sub - contour.
10. An intelligent obstacle avoidance system for a humanoid robot, which is used to execute an intelligent obstacle avoidance method for a humanoid robot according to any one of claims 1 to 9, and is applied to a humanoid robot, characterized in that, It includes an obstacle avoidance control module and a data acquisition module connected thereto; Data acquisition module: used to obtain the three - dimensional model of the humanoid robot, establish the forward and inverse kinematic models according to the three - dimensional model; and detect obstacle data through the sensing unit of the humanoid robot; where the obstacle data includes size and position; Obstacle avoidance control module: used to judge whether performing a preset obstacle avoidance action can avoid the obstacle; if yes, execute the preset obstacle avoidance operation for obstacle avoidance; if not, identify the non - obstacle contour inside the obstacle; where the sensing unit includes a laser sensor and a depth camera; where the preset obstacle avoidance actions include side - step obstacle avoidance, turning obstacle avoidance, and jumping obstacle avoidance; and used to judge whether the humanoid robot can pass through the non - obstacle contour based on the forward and inverse kinematic models; if yes, extract the target posture and control the humanoid robot to pass through the obstacle according to the target posture; if not, give an early warning.