Control method for self-collision avoidance of walking robot having manipulator, and walking robot for performing same

The control method for multi-joint robots models collision-prone parts and calculates collision avoidance speeds using the relative Jacobian, effectively preventing self-collision and expanding the workable area of the robot.

WO2025136063A1PCT designated stage expired Publication Date: 2025-06-26RAINBOW ROBOTICS INC
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2024/097153
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-18
Filing Date
2024-12-18
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

Existing control methods for multi-joint robots, such as walking robots equipped with manipulators, face challenges in efficiently avoiding self-collision while maximizing the robot's workable area.

Method used

A control method that models collision-prone parts of the robot and manipulator as three-dimensional shapes and line segments, calculates the shortest distance between these parts, and uses the relative Jacobian to determine a speed for avoiding collision, thereby preventing self-collision and expanding the robot's workable area.

Benefits of technology

The method enables real-time self-collision avoidance for multi-joint robots, preventing collisions while maximizing the robot's operational area, thus enhancing its efficiency and functionality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2024097153_26062025_PF_FP_ABST
    Figure KR2024097153_26062025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention relates to a control method for self-collision avoidance of a walking robot equipped with a manipulator and a walking robot performing the same, the control method including the steps of: modeling a first collision-possible part of a manipulator and a second collision-possible part of a robot body into three-dimensional shapes each having line segments and a circular cross section; calculating the shortest distance between a first line segment with respect to the modeled first collision-possible part and a second line segment with respect to the modeled second collision-possible part; calculating a relative Jacobian between first and second points by applying a Jacobian matrix to the first point of the first line segment and the second point of the second line segment connecting the shortest distance; and calculating a speed for avoiding collision between the manipulator and the robot body by using the size of the three-dimensional shapes, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points.
Need to check novelty before this filing date? Find Prior Art

Description

Control method for self-collision avoidance of a walking robot equipped with a manipulator and a walking robot performing the same

[0001] The present invention relates to a control method for avoiding self-collision of a walking robot composed of a plurality of joints and equipped with a manipulator.

[0002] A robot is a machine that automatically processes or operates a given task using its own abilities. The application fields of robots can be classified into industrial, service, medical, space, and underwater.

[0003] Among them, an industrial robot is applied to industrial automation, and refers to a robot that is automatically controlled and reprogrammable, a multipurpose manipulator that can be programmed in three or more axes, and that can be fixed or moved, and may include hand-guided robots, manipulator parts of mobile robots, and collaborative robots.

[0004] Meanwhile, an industrial robot system can be configured, including an industrial robot as described above, an end device, and all machines, equipment, devices, additional axes, or sensors required for the robot to perform tasks.

[0005] Industrial robot systems are already widely used in machine-processing industries such as automobile manufacturing to perform repetitive movements equivalent to those performed by human arms, and their use has been increasing recently due to factors such as rising labor costs.

[0006] Meanwhile, multi-joint robots such as industrial robots or walking robots use multiple motors, so self-collisions may occur depending on the driving angle.

[0007] Therefore, in order to control a multi-joint robot, various variables such as the mechanical limit angle of the hardware and self-collision avoidance must be considered, and for this purpose, technologies are being developed to find an optimal trajectory that allows the robot to move while avoiding paths where self-collision may occur.

[0008] However, if the movement of a multi-joint robot is restricted for self-collision avoidance, the robot's work area may become narrow, so a technology is needed to maximize the workable area of ​​a multi-joint robot.

[0009] The technical problem to be solved by the present invention is to provide a control method that can efficiently avoid self-collision of a walking robot equipped with a manipulator, and a robot that performs the method.

[0010] The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art of the present invention from the description below.

[0011] According to an embodiment of the present invention for solving the above-described problem, a method for avoiding self-collision of a walking robot having a manipulator mounted on a robot body is provided, the method comprising: modeling a first collision-prone part of the manipulator and a second collision-prone part of the robot body as a three-dimensional shape having a line segment and a circular cross-section, respectively; calculating a shortest distance between a first line segment for the modeled first collision-prone part and a second line segment for the second collision-prone part; calculating a relative Jacobian between the first and second points by applying a Jacobian matrix to a first point of the first line segment and a second point of the second line segment connecting the shortest distances; and calculating a speed for avoiding collision between the manipulator and the robot body by using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points.

[0012] The first collision-capable part may include a link part moved by a joint provided in the manipulator, and the second collision-capable part may include a link part moved by a torso part of the robot body or a leg joint.

[0013] At least a part of the control method for self-collision avoidance of a walking robot equipped with the above manipulator can be implemented as a computer-readable recording medium recording a program for execution on a computer, and can be provided as the program itself.

[0014] Meanwhile, a control method for self-collision avoidance of a walking robot equipped with the above manipulator can be performed by a robot according to an embodiment of the present invention.

[0015] According to an embodiment of the present invention, a robot has a self-collision avoidance function, and for this purpose, includes a processor; a memory for loading a computer program executed by the processor; and a storage for storing the computer program, wherein the computer program includes instructions for executing an operation of modeling a first collision-prone part of a manipulator mounted on a robot body and a second collision-prone part of the robot body as a three-dimensional shape having a line segment and a circular cross-section, respectively; an operation of calculating a shortest distance between a first line segment for the modeled first collision-prone part and a second line segment for the second collision-prone part; an operation of calculating a relative Jacobian between the first and second points by applying a Jacobian matrix to a first point of the first line segment connecting the shortest distance and a second point of the second line segment; and an operation of calculating a velocity for avoiding a collision between the manipulator and the robot body by using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points.

[0016] According to an embodiment of the present invention, by modeling the collision-prone areas of a robot as line segments and three-dimensional shapes and calculating the speed for avoiding collisions between the collision-prone areas using the size of the three-dimensional shapes, the shortest distance between line segments, and the relative Jacobian, the self-collision avoidance function of a multi-joint robot can be applied in real time through relatively simple calculations, and self-collision can be prevented while simultaneously expanding the workable area of ​​the robot.

[0017] According to another embodiment of the present invention, when a manipulator is mounted on a walking robot, a collision-prone part of the manipulator and a collision-prone part of the robot body are modeled as line segments and three-dimensional shapes, respectively, and a speed for avoiding collision between the manipulator and the robot body is calculated using the size of the three-dimensional shape, the shortest distance between the line segments, and the relative Jacobian, thereby enabling a self-collision avoidance function between two or more robots to be applied in real time.

[0018] The technical effects of the present invention are not limited to the technical effects mentioned above, and other technical effects not mentioned will be clearly understood by those skilled in the art from the description below.

[0019] Figure 1 is a perspective view illustrating an example of the configuration of a multi-joint robot.

[0020] FIG. 2 is a flowchart illustrating a control method for self-collision avoidance of a multi-joint robot according to one embodiment of the present invention.

[0021] FIG. 3 is a diagram conceptually illustrating the configuration of a multi-joint robot according to one embodiment of the present invention.

[0022] FIGS. 4 and 5 are drawings for explaining embodiments of a method for modeling a collision-prone area of ​​a robot.

[0023] Figures 6 to 11 are drawings for explaining embodiments of a method for calculating collision avoidance speed.

[0024] FIG. 12 is a drawing showing exemplary forms of a walking robot according to an embodiment of the present invention.

[0025] Fig. 13 is a flowchart showing a control method for self-collision avoidance of a walking robot equipped with a manipulator according to one embodiment of the present invention.

[0026] FIG. 14 is a diagram conceptually illustrating the configuration of a walking robot equipped with a manipulator according to one embodiment of the present invention.

[0027] FIGS. 15 and 17 are drawings for explaining embodiments of a method for modeling a collision-prone area of ​​a walking robot equipped with a manipulator.

[0028] FIGS. 18 and 19 are drawings for explaining embodiments of a method for calculating a collision avoidance speed of a walking robot equipped with a manipulator.

[0029] FIG. 20 is a block diagram showing the configuration of a computing device in which methods according to an embodiment of the present invention are implemented.

[0030] The following merely exemplifies the principles of the present invention. Therefore, those skilled in the art will be able to implement the principles of the present invention and invent various devices within the scope and spirit of the present invention, even if not explicitly described or illustrated herein. Furthermore, all conditional terms and embodiments listed herein are expressly intended, in principle, to facilitate understanding of the present invention, and should be understood as being in no way limiting to the specifically enumerated embodiments and conditions.

[0031] Furthermore, all detailed descriptions of the principles, aspects, and embodiments of the present invention, as well as specific embodiments, should be understood to encompass structural and functional equivalents thereof. Furthermore, such equivalents should be understood to encompass not only currently known equivalents but also equivalents developed in the future, i.e., all devices invented to perform the same function, regardless of structure.

[0032] Thus, for example, the block diagrams herein should be understood as representing conceptual views of exemplary circuits embodying the principles of the present invention. Similarly, all flowcharts, state transition diagrams, pseudocode, and the like, which may be substantially represented on a computer-readable medium, should be understood as representing various processes performed by a computer or processor, regardless of whether a computer or processor is explicitly depicted.

[0033] The functions of various components depicted in the drawings, including functional blocks represented by processors or similar concepts, may be provided using dedicated hardware as well as hardware capable of executing software in conjunction with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or multiple individual processors, some of which may be shared.

[0034] Furthermore, any explicit use of terms such as processor, controller, or similar concepts should not be construed as exclusively referring to hardware capable of executing software, but should be understood to implicitly include, without limitation, digital signal processor (DSP) hardware, read-only memory (ROM), random access memory (RAM), and non-volatile memory for storing software. Other commonly used hardware may also be included.

[0035] In the claims of this specification, a component expressed as a means for performing a function described in the detailed description is intended to include any method for performing the function, including, for example, a combination of circuit elements performing the function, or any form of software including firmware / microcode, combined with appropriate circuitry for executing said software to perform the function. The invention defined by these claims should be understood to be equivalent to any means found in this specification for providing the functions provided by the various enumerated means, as long as they are combined and combined in the manner required by the claims.

[0036] The above-described purposes, features, and advantages will become more apparent through the following detailed description, taken in conjunction with the accompanying drawings. Accordingly, those skilled in the art will be able to readily implement the technical concepts of the present invention. Furthermore, in describing the present invention, detailed descriptions of known technologies related to the present invention will be omitted if they are deemed to unnecessarily obscure the gist of the invention.

[0037] Hereinafter, embodiments of the present invention will be described using a collaborative robot as an example, but the present invention is not limited thereto and can be applied to various robots including industrial robots.

[0038] A collaborative robot is a robot designed to interact directly with humans within a defined collaborative workspace, while collaborative operation can refer to the working state of a robot system and operator intentionally designed within a collaborative workspace.

[0039] Additionally, a collaborative workspace is a work area within a safeguarded space where robots and humans perform work simultaneously during production operations. It can mean an area within a work area where a robot system (including workpieces) and humans can perform work simultaneously during production operations.

[0040] FIG. 1 illustrates the configuration of a robot according to one embodiment of the present invention. The robot (100) may be configured to include a base (Base, 110), a plurality of joints (120 to 128), and a tool flange (Tool Flange, 150).

[0041] Referring to FIG. 1, the base (110) is a part for fixing the robot (100), and a cable connection connector between the robot (100) and the control box can be formed on the base (110).

[0042] The tool flange (150) is a part for mounting a gripper or tool on the robot (100), and input / output ports for controlling the gripper or tool and buttons for direct teaching can be arranged at locations adjacent to the tool flange (150).

[0043] Meanwhile, between the base (110) and the tool flange (150), a base joint (120), a shoulder joint (122), an elbow joint (124), a first wrist joint (126), a second wrist joint (127), and a third wrist joint (128) are provided, so that six-axis joint motions of the robot (100) can be possible.

[0044] As described with reference to Figure 1, a multi-joint robot operates based on the rotation of a motor installed at each joint. Therefore, self-collisions may occur depending on the driving angle. Therefore, to prevent self-collisions, the robot's workable area, which must be limited, must be changed in real time.

[0045] According to an embodiment of the present invention, by modeling the collision-prone areas of a robot as line segments and three-dimensional shapes and calculating the speed for avoiding collisions between the collision-prone areas using the size of the three-dimensional shapes, the shortest distance between line segments, and the relative Jacobian, the self-collision avoidance function of a multi-joint robot can be applied in real time through relatively simple calculations, and self-collision can be prevented while simultaneously expanding the workable area of ​​the robot.

[0046] Hereinafter, embodiments of a control method for self-collision avoidance of a multi-joint robot according to the present invention will be described in more detail with reference to FIGS. 2 to 11.

[0047] Referring to Fig. 2, each of the robot's collision-prone areas is modeled as a three-dimensional shape having a line segment and a circular cross-section (step S200).

[0048] For example, the collision-prone area can be set to include a link portion moved by a joint provided in the robot.

[0049] The robot may be configured to include a plurality of joints (301, 302, 303, 304, 305, 306) and a plurality of links (311, 312, 313, 314, 315, 316) connecting the joints, as illustrated in FIG. 3, and each link may be moved by the rotation of a motor of a joint to which it is connected.

[0050] In this case, as illustrated in FIG. 4, the collision-prone parts (410, 420, 430, 440, 450) of the robot can be set to include joints and links.

[0051] Here, each collision potential area is modeled as a line segment, and a three-dimensional formation can be constructed using a set of points at an equal distance from the line segment.

[0052] Accordingly, the three-dimensional shape may be composed of a cylindrical portion having a radius corresponding to the above-mentioned constant distance, and two hemispherical portions positioned above and below the cylindrical portion.

[0053] Referring to FIG. 5, the collision potential area (410) can be modeled as a three-dimensional shape composed of a line segment (413), a cylindrical portion (411) having a constant radius (r) centered on the line segment (413), an upper hemispherical portion (412) which is a set of tangents at a constant distance (r) from the upper end of the line segment (413), and a lower hemispherical portion (412') which is a set of tangents at a constant distance (r) from the lower end of the line segment (413).

[0054] Here, the three-dimensional shape of the collision-prone area as described above may represent an inaccessible space for the area, and as the radius (r) increases, the inaccessible space may become wider, and as the radius (r) decreases, the inaccessible space may become narrower.

[0055] Next, the shortest distance between the first line segment for the first collision-prone area and the second line segment for the second collision-prone area among the modeled collision-prone areas in step S200 is calculated (step S210).

[0056] For example, as shown in (a) of FIG. 6, if the collision-prone parts (410, 420, 430, 440) of the robot are modeled as line segments and three-dimensional shapes, respectively, the shortest distance between the line segment (443) of the first collision-prone part (440) and the line segment (413) of another second collision-prone part (410) can be obtained as shown in (b) of FIG. 6.

[0057] Meanwhile, as shown in (b) of FIG. 6, if the shortest distance between the line segments (443, 413) of the two collision-prone areas (440, 410) is smaller than the sum (r0+r1) of the radii (r0, r1) of the two collision-prone areas (440, 410), it can be determined that the two collision-prone areas (440, 410) have invaded each other's inaccessible areas.

[0058] Here, the radii (r0, r1) of the two collision-prone areas (440, 410) can be set to be the same or different, and the larger the radius of the three-dimensional shape, the wider the inaccessible area for the corresponding collision-prone area.

[0059] After that, the Jacobian matrix is ​​applied to the first point of the first line segment and the second point of the second line segment connecting the shortest distances calculated in step S210, and the relative Jacobian between the first and second points is calculated (step S220).

[0060] Next, using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points, the speed for avoiding collision between the first and second collision-prone parts is calculated (step S230).

[0061] The relative Jacobian produced at step S220 may be the difference between the first Jacobian value with the Jacobian matrix applied to the first point and the second Jacobian value with the Jacobian matrix applied to the second point.

[0062] Accordingly, the relative Jacobian between the first and second points can represent the relative velocity between the first and second collisional sites based on the first and second points.

[0063] For example, as shown in Fig. 7, the shortest distance (d) between the first line segment (443) of the first collision-prone area (440) and the second line segment (413) of the second collision-prone area (410) shortest) can be obtained by finding the positions of the first point (S0) and the second point (S1).

[0064] The Jacobian matrix is ​​used to convert the motor angular velocity of each joint of the robot into linear velocity and angular velocity at a specific point, as shown in the mathematical expression 1 below, and the angular velocities (q) of each of the six motors m,0 , q m,1 , q m,2 , q m,3 , q m,4 , q m,5 ) is multiplied by the (3×6) Jacobian matrix to obtain linear velocities (v) in the x, y, and z directions for the point. m,x , v m,y , v m,z ) can be calculated.

[0065]

[0066] When the Jacobian matrix is ​​applied to each of the first point (S0) and the second point (S1), the velocity (v) at the first point (S0) is as shown in Fig. 8. s0 ) and the velocity (v) at the second point (S1) s1 ) can be obtained.

[0067] Additionally, as shown in Fig. 8, a normal vector (n) of size 1 from the first point (S0) to the second point (S1) s0s1 ) can be obtained.

[0068] And the relative Jacobian between the first and second points (S0, S1) is calculated as in mathematical expression 2 below, so that the relative velocity between the first and second collision-prone parts (440, 410) based on the first and second points (S0, S1) can be obtained.

[0069]

[0070] As in mathematical expression 2, the relative Jacobian between the first and second points (S0, S1) is the Jacobian matrix (J) at the first point (S0). SO) at the second point (S1) at the first Jacobian value applied to the Jacobian matrix (J S1 ) can be obtained by subtracting the second Jacobian value applied.

[0071] Here, the Jacobian matrix (J) for the first point (S0) SO ) and the Jacobian matrix (J) for the second point (S1) S1 ) are different from each other, and are calculated as in the mathematical expression 3 below, and the relative velocities (v') in the x, y, and z axes between the first and second points (S0, S1) m,x , v' m,y , v' m,z ) can be calculated.

[0072]

[0073] Referring to (a) of Fig. 9, the velocity (v) at the first point (S0) s0 ) at the second point (S1) with velocity (v s1 ) can be subtracted, the relative velocity (v') between the first and second points (S0, S1) can be obtained.

[0074] In addition, by using the relative Jacobian between the first and second points calculated as described above, the velocity component between the first and second collision potential parts heading from the first point to the second point can be calculated.

[0075] For example, as in the mathematical expression 4 below, the relative velocity between the first and second points (S0, S1) of the (3×1) matrix obtained in the mathematical expression 3 is multiplied by the normal vector component expressed as a (1×3) matrix from the first point (S0) to the second point (S1), and the velocity component (v') in the direction from the first point (S0) to the second point (S1) in the relative velocity between the first and second points (S0, S1) s0s1 ) can only be extracted.

[0076]

[0077] Referring to (b) of Fig. 9, the relative velocity (V') between the first and second points (S0, S1) and the normal vector (n) from the first point (S0) to the second point (S1) s0s1 ) and the relative velocity component (v') in the direction from the first point (S0) to the second point (S1) s0s1 ) can be obtained.

[0078] The relative velocity component (v') in the direction from the first point (S0) to the second point (S1) as obtained above s0s1 ) is the relative velocity magnitude (v') in the shortest distance direction from the first point (S0), as shown in Fig. 10. s0s1 ) can be expressed.

[0079] Referring to (a) of Fig. 11, the relative velocity (v') in the shortest distance direction from the first point (S0) as described above s0s1 ) is greater than 0, the first and second collision-prone areas (440, 410) come closer to each other in the collision direction based on the first and second points (S0, S1).

[0080] Meanwhile, referring to (a) of Fig. 11, the relative velocity (v') in the shortest distance direction from the first point (S0) as described above s0s1 ) is less than 0, the first and second collision-prone areas (440, 410) move away from each other based on the first and second points (S0, S1).

[0081] Therefore, in case a collision can occur between the first and second collision-prone areas (440, 410), the relative velocity (v') in the shortest distance direction from the first point (S0) to the second point (S1) s0s1) is calculated and applied to make it smaller than 0, so that the first and second collision-prone parts (440, 410) move away from each other based on the first and second points (S0, S1), thereby avoiding a collision between the first and second collision-prone parts (440, 410).

[0082] Here, in order to avoid collision between the first and second collision-prone parts (440, 410), the output speed may be the angular velocity of at least one motor among the plurality of joints provided in the robot.

[0083] For example, by changing at least one of the motor angular velocity of the first joint corresponding to the first collision-prone area (440) and the motor angular velocity of the second joint corresponding to the second collision-prone area (410), the relative velocity (v') in the shortest distance direction from the first point (S0) to the second point (S1) is changed. s0s1 ) can be made smaller than 0, and accordingly, the first and second collision-prone areas (440, 410) can move away from each other based on the first and second points (S0, S1), thereby avoiding collision.

[0084] According to one embodiment of the present invention, the shortest distance (d) between the first and second line segments (443, 413) shortest ) may be performed to subtract the radius (r0) of the three-dimensional shape for the first collision-prone area (440) from the radius (r1) of the three-dimensional shape for the second collision-prone area (410), and calculate the collision avoidance speed between the first and second collision-prone areas (440, 410) based on the result of the subtraction.

[0085] For example, the shortest distance (d) as in the mathematical expression 5 below shortest ) has a negative value less than 0, step S230 is performed so that a speed for avoiding a collision between the first and second collision-prone areas (440, 410) can be calculated.

[0086]

[0087] Meanwhile, the shortest distance (d shortest ) has a positive value greater than 0, the collision avoidance speed between the first and second collision-prone parts (440, 410) is not calculated, and the speed of the first and second collision-prone parts (440, 410) does not change and the existing movement can continue.

[0088] In addition, by using the subtracted result value as described above, the velocity of at least one of the first and second collision potential parts (440, 410) can be obtained so that the velocity component is calculated in the direction in which the first point (S0) and the second point (S1) move away from each other.

[0089] For example, using QP (Quadratic Programming), an optimization technique that finds an optimal solution that satisfies conditions such as the mathematical expression 6 below, a speed for avoiding collision between the first and second collision-prone parts (440, 410) can be calculated.

[0090]

[0091] Specifically, the shortest distance (d shortest ) has a negative value less than 0, the relative velocity (v') in the shortest distance direction from the first point (S0) to the second point (S1) s0s1 ) can be calculated to have a negative value less than 0.

[0092] In this case, the relative velocity in the shortest distance direction (v') is as above. s0s1) is applied to the joint, the first and second collision-prone areas (440, 410) move away from each other based on the first and second points (S0, S1), so that the collision can be avoided.

[0093] Meanwhile, the shortest distance (d shortest ) the greater the absolute value of the sum of the radii (r0, r1), the greater the relative velocity (v') in the shortest distance direction from the first point (S0) to the second point (S1). s0s1 ) also increases, so that the first and second collision-prone areas (440, 410) can move at a faster speed with respect to the first and second points (S0, S1) to avoid collision.

[0094] In addition, in mathematical expression 6, k is a constant, and as the value of k increases, the collision avoidance speed of the first and second collision-prone parts (440, 410) increases, and as the value of k decreases, the collision avoidance speed of the first and second collision-prone parts (440, 410) may decrease.

[0095] The control method for self-collision avoidance of a multi-joint robot as described with reference to FIGS. 2 to 11 can be performed by a robot according to an embodiment of the present invention.

[0096] Meanwhile, the embodiments of the present invention have been described above by taking as an example the case where the robot (300) is a multi-joint robot such as a manipulator having six degrees of freedom, but the present invention is not limited thereto, and may be applied to various multi-joint robots such as multi-joint robots having degrees of freedom other than six axes or multi-legged walking robots.

[0097] According to another embodiment of the present invention, when a manipulator is mounted on a walking robot, a collision-prone part of the manipulator and a collision-prone part of the robot body are modeled as line segments and three-dimensional shapes, respectively, and a speed for avoiding collision between the manipulator and the robot body is calculated using the size of the three-dimensional shape, the shortest distance between the line segments, and the relative Jacobian, thereby enabling a self-collision avoidance function between two or more robots to be applied in real time.

[0098] FIG. 12 is a schematic diagram illustrating an exemplary form of a multi-legged walking robot according to one embodiment of the present invention.

[0099] Referring to FIG. 12, the robot is a robot capable of walking movement, and may be a humanoid robot with two legs as shown in (a) of FIG. 12, or a quadruped walking robot with four legs as shown in (b) of FIG. 12.

[0100] However, the scope of the present invention is not limited to the form of the walking robot illustrated in FIG. 12. For example, the walking robot may have three, five, or more legs, and may have various shapes other than a humanoid robot or a quadruped walking robot.

[0101] Referring to (a) of FIG. 12, the walking robot may include a torso (610) and two legs (620, 621), and each leg (620, 621) may be connected to the torso (610) and have an upper portion and a lower portion separated by a leg joint.

[0102] Meanwhile, referring to (b) of FIG. 12, the walking robot may include a torso (615) and four legs (625, 626, 627, 628), and each leg (625, 626, 627, 628) may be connected to the torso (615) and have an upper part and a lower part separated by a leg joint.

[0103] Additionally, the walking robot may further include one or more appendages, such as an articulated arm, which is arranged on the torso (610, 615) and configured to move relative to the torso (610, 615). One or more tools, such as a gripper for grasping / holding objects, may be provided at the end of the articulated arm.

[0104] The walking robot may include a vision system having one imaging sensor or camera, for example, one or more cameras and one or more two-dimensional or three-dimensional LiDAR sensors may be mounted on the robot (100), but the present invention is not limited thereto.

[0105] Each sensor or camera mounted on the walking robot collects image data or sensor data about the surrounding environment and terrain. The vision system can pan or tilt the camera to move the walking robot's field of view in any direction. The image data or sensor data collected by the vision system's cameras or sensors can be provided to the robot's central processing unit.

[0106] Additionally, the robot may be equipped with additional sensors for measuring the dynamic state of the robot, in addition to the vision sensors such as the above-mentioned camera and lidar sensor.

[0107] For example, the dynamic state of a robot may include the inertia of the robot, the angles, forces, postures, positions or states of each joint, the velocity or acceleration of each component connected to the joint, the center of gravity of the robot, etc.

[0108] In order to measure the dynamic state of the robot as described above, the robot may include an IMU (Inertial Measurement Unit) sensor for measuring inertia, an angle sensor for measuring the angle of the joint, a current sensor for measuring the force of the joint, etc., but the present invention is not limited thereto.

[0109] Hereinafter, with reference to FIGS. 13 to 19, embodiments of a control method for self-collision avoidance of a walking robot equipped with a manipulator according to the present invention will be described. Meanwhile, a description of the same control methods for self-collision avoidance illustrated in FIGS. 13 to 19 as those described with reference to FIGS. 2 to 11 will be omitted.

[0110] FIG. 13 is a flowchart illustrating a control method for self-collision avoidance of a walking robot equipped with a manipulator according to an embodiment of the present invention.

[0111] Referring to Fig. 13, each of the first collision-prone part of the manipulator and the second collision-prone part of the robot body is modeled as a three-dimensional shape having a line segment and a circular cross-section (step S700).

[0112] A walking robot (1000) according to one embodiment of the present invention may include a robot body (1100) composed of a torso (1115) and legs (1125, 1126, 1127, 1128), as illustrated in FIG. 14, and a manipulator (1200) mounted on the robot body (1100).

[0113] In this case, multiple collision-prone areas are set on the robot body (1100), and multiple collision-prone areas can also be set on the manipulator (1200).

[0114] Here, the first collision-capable part of the manipulator (1200) may include a link part moved by a joint provided in the manipulator (1200), and the second collision-capable part of the robot body (1100) may include a link part moved by a joint of a part of the torso (1115) or legs (1125, 1126, 1127, 1128).

[0115] For example, in the robot body (1100), collision-prone parts (1210, 1212, 1220, 1222) may be set to include joints and links of legs (1125, 1127) as illustrated in FIG. 15, and collision-prone parts (1310, 1312, 1314, 1316, 1320, 1322) may be set to include parts of the torso (1115) as illustrated in FIG. 16.

[0116] Meanwhile, in the manipulator (1200), collision-prone parts (1410, 1420, 1430, 1440, 1450) can be set to include joints and links, as illustrated in FIG. 17.

[0117] The three-dimensional shape in which the collision-prone area is modeled in step S700 may be configured to include a cylindrical portion having a certain radius and two hemispherical portions positioned above and below the cylindrical portion, and may be the same as that described with reference to FIGS. 2 to 11, so a detailed description thereof will be omitted.

[0118] Next, the shortest distance between the first line segment for the first collision-prone area modeled in step S700 and the second line segment for the second collision-prone area is calculated (step S710).

[0119] For example, as illustrated in FIG. 18, the shortest distance (dshortest) between a line segment (1441) for a first collision-prone area (1440) of a manipulator (1200) and a line segment (1311) for a second collision-prone area (1310) of a robot body (1100) can be obtained.

[0120] Here, the first collision-prone area (1440) of the manipulator (1200) and the second collision-prone area (1310) of the robot body (1100) may have different radii (r0, r1), and for example, the radius (r1) of the second collision-prone area (1310) of the robot body (1100) may be larger than the radius (r1) of the first collision-prone area (1440) of the manipulator (1200).

[0121] After that, the Jacobian matrix is ​​applied to the first point of the first line segment and the second point of the second line segment connecting the shortest distances calculated in step S710, and the relative Jacobian between the first and second points is calculated (step S720).

[0122] Next, using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points, a speed for avoiding collision between the manipulator (1200) and the robot body (1100) is calculated (step S730).

[0123] The relative Jacobian produced at step S720 may be the difference between a first Jacobian value with the Jacobian matrix applied to the first point and a second Jacobian value with the Jacobian matrix applied to the second point, and thus may represent the relative velocity between the first and second collision potential parts based on the first and second points.

[0124] For example, as illustrated in FIG. 18, the shortest distance (d) between the first line segment (1441) of the first collision-prone area (1440) and the second line segment (1311) of the second collision-prone area (1310) shortest) can be obtained by finding the positions of the first point (S0) and the second point (S1).

[0125] When a manipulator (1200) is mounted on the robot body (1100), the relative Jacobian between specific points (S0, S1) of the robot body (1100) or the manipulator (1200) can be calculated as in mathematical expression 7 below.

[0126]

[0127] In Equation 7, v q,x , v q,y , v q,z are the linear velocities in the x, y, and z axes of the torso (1115) of the robot body (1100), and ω q,x , ω q,y , ω q,z are the angular velocities of the body (1115) in the roll, pitch, and yaw directions, and q m,0 , q m,1 , q m,2 , q m,3 , q m,4 , q m,5 is the angular velocity of each of the six motors provided in the manipulator (1200).

[0128] As described above, the relative Jacobian is calculated, and the relative velocity (v') between the first collision-prone part (1440) of the manipulator (1200) and the second collision-prone part (1310) of the robot body (1100) based on the first and second points (S0, S1) m,x , v' m,y , v' m,z ) can be obtained.

[0129] In addition, by using the relative Jacobian between the first and second points calculated as described above, the velocity component between the first and second collision potential parts heading from the first point to the second point can be calculated.

[0130] For example, as in the mathematical expression 4 above, the relative velocity (v') between the first and second points (S0, S1) m,x, v' m,y , v' m,z ), by multiplying the normal vector component from the first point (S0) to the second point (S1), the velocity component (v') in the direction from the first point (S0) to the second point (S1) in the relative velocity between the first and second points (S0, S1) s0s1 ) can only be extracted.

[0131] That is, the relative velocity (V') between the first and second points (S0, S1) and the normal vector (n) from the first point (S0) to the second point (S1) s0s1 ) and the relative velocity component (v') in the direction from the first point (S0) to the second point (S1) s0s1 ) can be obtained.

[0132] The relative velocity component (v') in the direction from the first point (S0) to the second point (S1) as obtained above s0s1 ) is the relative velocity magnitude (v') in the shortest distance direction from the first point (S0) of the manipulator (1200) to the second point (S1) of the robot body (1100), as shown in Fig. 19. s0s1 ) can be expressed.

[0133] At this time, the relative velocity (v') in the shortest distance direction from the first point (S0) s0s1 ) is greater than 0, the first collision-prone part (1440) of the manipulator (1200) and the second collision-prone part (1310) of the robot body (1100) come closer to each other in the collision direction based on the first and second points (S0, S1).

[0134] Meanwhile, the relative velocity (v') in the shortest distance direction from the first point (S0) s0s1 ) is less than 0, the first collision-prone part (1440) of the manipulator (1200) and the second collision-prone part (1310) of the robot body (1100) move away from each other based on the first and second points (S0, S1).

[0135] Therefore, the relative velocity (v') in the shortest distance direction from the first point (S0) to the second point (S1) s0s1 ) is smaller than 0, the first and second collision-prone parts (1440, 1310) are moved away from each other based on the first and second points (S0, S1), thereby avoiding a collision between the first collision-prone part (1440) of the manipulator (1200) and the second collision-prone part (1310) of the robot body (1100).

[0136] Here, the speed calculated to avoid collision between the first and second collision-prone parts (1440, 1310) may be the angular velocity of at least one motor of a plurality of joints provided in the manipulator (1200), or the linear velocity or angular velocity of the robot body (1100).

[0137] For example, in mathematical expression 7, the motor angular velocities (q) of the multiple joints provided in the manipulator (1200) m,0 , q m,1 , q m,2 , q m,3 , q m,4 , q m,5 ), linear velocities (v) of the robot body (1100) in the x, y, and z axes q,x , v q,y , v q,z ), the angular velocities (ω) of the roll, pitch, and yaw directions of the robot body (1100) q,x , ω q,y , ω q,z ) by changing at least one of the relative speeds (v') in the shortest distance direction from the first point (S0) to the second point (S1). s0s1 ) can be made smaller than 0, and accordingly, the manipulator (1200) and the robot body (1100) can move away from each other based on the first and second points (S0, S1), thereby avoiding collision.

[0138] As mentioned above, the shortest distance (d) between the first and second line segments (1441, 1311) shortest ) may be performed to subtract the radius (r0) of the three-dimensional shape for the first collision-prone area (1440) of the manipulator (1200) from the radius (r1) of the three-dimensional shape for the second collision-prone area (1310) of the robot body (1100), and calculate the collision avoidance speed between the manipulator (1200) and the robot body (1100) based on the result of the subtraction.

[0139] For example, as in the mathematical expression 5 above, the shortest distance (d shortest ) has a negative value less than 0, step S730 is performed so that a speed for avoiding collision between the manipulator (1200) and the robot body (1100) can be calculated.

[0140] Meanwhile, the shortest distance (d shortest ) has a positive value greater than 0, the collision avoidance speed between the manipulator (1200) and the robot body (1100) may not be calculated.

[0141] In addition, by using the result value subtracted as described above, at least one of the joint motor speed of the manipulator (1200), the linear speed, and the angular speed of the robot body (1100) can be obtained so that the speed component is calculated in the direction in which the first point (S0) and the second point (S1) move away from each other.

[0142] For example, using QP (Quadratic Programming), an optimization technique that finds an optimal solution that satisfies conditions such as the above mathematical expression 6, a speed for avoiding collision between the manipulator (1200) and the robot body (1100) can be calculated.

[0143] Specifically, the shortest distance (d shortest) has a negative value less than 0, the relative velocity (v') in the shortest distance direction from the first point (S0) to the second point (S1) s0s1 ) have a negative value less than 0, the motor angular velocities (q) of the multiple joints provided in the manipulator (1200) m,0 , q m,1 , q m,2 , q m,3 , q m,4 , q m,5 ), linear velocities (v) of the robot body (1100) in the x, y, and z axes q,x , v q,y , v q,z ), the angular velocities (ω) of the roll, pitch, and yaw directions of the robot body (1100) q,x , ω q,y , ω q,z ) can be produced.

[0144] In the above, an embodiment of the present invention has been described by taking as an example a case where the first collision-prone part is located in the manipulator (1200) and the second collision-prone part is located in the robot body (1100), but the present invention is not limited thereto and can also be applied to a case where both the first and second collision-prone parts are located in the manipulator (1200).

[0145] The control method for self-collision avoidance of a walking robot equipped with a manipulator as described with reference to FIGS. 13 to 19 can be performed by a walking robot according to an embodiment of the present invention.

[0146] Meanwhile, the embodiments of the present invention have been described above by taking as an example a case where a manipulator having six degrees of freedom is mounted on a quadruped walking robot having four legs, but the present invention is not limited thereto, and can be applied in various ways to cases where another robot is mounted on various mobile robots, such as a humanoid robot having two legs or a mobile robot that moves using wheels, etc.

[0147] Hereinafter, with reference to FIG. 20, an exemplary computing device (500) in which the methods described in various embodiments of the present invention are implemented will be described. For example, the computing device (500) of FIG. 20 may be implemented as at least some components of a robot according to an embodiment of the present invention.

[0148] Referring to FIG. 20, a computing device (500) may include one or more processors (510), a bus (550), a communication interface (570), a memory (530) that loads a computer program (591) executed by the processor (510), and a storage (590) that stores the computer program (591).

[0149] However, only components related to an embodiment of the present invention are illustrated in FIG. 20. Therefore, those skilled in the art will appreciate that other general components may be included in addition to the components illustrated in FIG. 20.

[0150] The processor (510) controls the overall operation of each component of the computing device (500). The processor (510) may include at least one of a Central Processing Unit (CPU), a Micro Processor Unit (MPU), a Micro Controller Unit (MCU), a Graphics Processing Unit (GPU), or any other type of processor well known in the art of the present invention. In addition, the processor (510) may perform operations for at least one application or program for executing methods / operations according to various embodiments of the present invention. The computing device (500) may include one or more processors.

[0151] The memory (530) stores various data, commands, and / or information. The memory (530) can load one or more programs (591) from the storage (590) to execute methods / operations according to various embodiments of the present invention. An example of the memory (530) may be, but is not limited to, RAM.

[0152] The bus (550) provides communication between components of the computing device (500). The bus (550) may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

[0153] The communication interface (570) supports wired and wireless Internet communication of the computing device (500). The communication interface (570) may also support various communication methods other than Internet communication. To this end, the communication interface (570) may be configured to include a communication module well known in the technical field of the present invention.

[0154] Storage (590) can non-temporarily store one or more computer programs (591). Storage (590) can be configured to include a volatile memory such as a Read Only Memory (ROM), an Erasable Programmable ROM (EPROM), an Electrically Erasable Programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, or any form of computer-readable recording medium well known in the art to which the present invention pertains.

[0155] The computer program (591) may include one or more instructions implementing methods / operations according to embodiments of the present invention as described with reference to FIGS. 2 to 11.

[0156] For example, the computer program (591) may include instructions for executing an operation of modeling collision-prone parts of the robot as a three-dimensional shape having a line segment and a circular cross-section, an operation of calculating the shortest distance between a first line segment for a first collision-prone part and a second line segment for a second collision-prone part among the modeled collision-prone parts, an operation of calculating a relative Jacobian between a first point of the first line segment connecting the shortest distance and a second point of the second line segment, and an operation of calculating a speed for avoiding a collision between the first and second collision-prone parts using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points.

[0157] Additionally, the computer program (591) may include one or more instructions implementing methods / operations according to embodiments of the present invention as described with reference to FIGS. 13 to 19.

[0158] For example, the computer program (591) may include instructions for executing an operation of modeling a first collision-prone part of a manipulator mounted on a robot body and a second collision-prone part of the robot body as a three-dimensional shape having a line segment and a circular cross-section, an operation of calculating a shortest distance between a first line segment for the modeled first collision-prone part and a second line segment for the second collision-prone part, an operation of calculating a relative Jacobian between the first and second points by applying a Jacobian matrix to a first point of the first line segment connecting the shortest distance and a second point of the second line segment, and an operation of calculating a speed for avoiding a collision between the manipulator and the robot body by using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points.

[0159] When the computer program (591) is loaded into the memory (530), the processor (510) can perform methods / operations according to various embodiments of the present invention by executing one or more of the instructions.

[0160] The methods according to the present invention described above can be produced as a program to be executed on a computer and stored in a computer-readable recording medium. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc.

[0161] Computer-readable recording media can be distributed across network-connected computer systems, allowing computer-readable code to be stored and executed in a distributed manner. Furthermore, functional programs, codes, and code segments for implementing the above method can be readily inferred by programmers skilled in the art to which the present invention pertains.

[0162] Although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and various modifications can be made by those skilled in the art without departing from the gist of the present invention as claimed in the claims. Furthermore, such modifications should not be understood individually from the technical idea or prospect of the present invention.

Claims

1. A control method for avoiding self-collision of a walking robot equipped with a manipulator on the robot body, A step of modeling the first collision-prone part of the manipulator and the second collision-prone part of the robot body as three-dimensional shapes having cross sections of a line segment and a circle, respectively; A step of calculating the shortest distance between a first line segment for the modeled first collision-prone area and a second line segment for the modeled second collision-prone area; A step of applying a Jacobian matrix to the first point of the first line segment connecting the shortest distance and the second point of the second line segment to calculate the relative Jacobian between the first and second points; and A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized by including a step of calculating a speed for avoiding collision between the manipulator and the robot body by using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points.

2. In the first paragraph, the first collision-prone area is A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized in that it includes a link part moved by a joint provided in the manipulator.

3. In the first paragraph, the second collision-prone area is A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized in that it includes a link part moved by a torso part or leg joint of the robot body.

4. In the first paragraph, the three-dimensional shape is A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized in that the manipulator is configured using a set of points located at a certain distance from the above line segment.

5. In paragraph 4, A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized in that the radius of the three-dimensional shape modeled at the first collision-prone area and the radius of the three-dimensional shape modeled at the second collision-prone area are different from each other.

6. In the first paragraph, the relative Jacobian is A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized in that the difference is between a first Jacobian value to which a Jacobian matrix is ​​applied at the first point and a second Jacobian value to which a Jacobian matrix is ​​applied at the second point.

7. In paragraph 6, the relative Jacobian is A control method for self-collision avoidance of a multi-joint robot, characterized in that it indicates a relative velocity between the first and second collision-prone parts based on the first and second points.

8. In the first paragraph, the step of calculating the speed is A step of subtracting the radius of the three-dimensional shape for the first collision-prone area and the radius of the three-dimensional shape for the second collision-prone area from the shortest distance between the first and second line segments; and A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized by including a step of changing the speed of at least one of the first and second collision-prone parts when the result of the above deduction has a negative value.

9. In paragraph 8, the step of calculating the speed is A step of calculating a velocity component between the first and second collision potential parts from the first point to the second point by using the relative Jacobian between the first and second points; and A control method for self-collision avoidance of a walking robot equipped with a manipulator, characterized by further comprising: a step of determining at least one of a motor angular velocity of a joint provided in the manipulator, a linear velocity, and an angular velocity of the robot body, such that the velocity component is calculated in a direction in which the first point and the second point move away from each other using the result value of the above deduction; 10. A computer program stored on a computer-readable recording medium for executing any one of the methods of claims 1 to 9 in combination with hardware.

11. A walking robot performing any one of the methods of clauses 1 to 9.

12. In a walking robot with self-collision avoidance function, processor; A memory that loads a computer program to be executed by said processor; and Including storage for storing the above computer program, The above computer program, An operation of modeling a first collision-prone part of a manipulator mounted on a robot body and a second collision-prone part of the robot body as a three-dimensional shape having a cross section of a line segment and a circle, respectively. An operation of calculating the shortest distance between a first line segment for the modeled first collision-prone area and a second line segment for the modeled second collision-prone area; An operation of applying a Jacobian matrix to a first point of the first line segment connecting the shortest distance and a second point of the second line segment to calculate a relative Jacobian between the first and second points, and A walking robot characterized by including instructions for executing an operation of calculating a speed for avoiding collision between the manipulator and the robot body by using the size of the three-dimensional shape, the shortest distance between the first and second line segments, and the relative Jacobian between the first and second points.

Citation Information

Patent Citations

  • Method and system for controlling walking of robot

    KR1020140085702A

  • Systems and methods for avoiding collisions between manipulator arms using a null-space

    KR1020150023273A

  • Method and means for designing and / or operating a robot

    KR1020160012934A

  • Duct connector assembly device

    KR1020210117512A

  • method for calculating workspace of robot using Jacobian matrix and determinant

    KR102432681B1