Control method for self-collision avoidance of robot having multiple joints and robot for performing same
The control method for multi-joint robots models collision-prone parts as three-dimensional shapes and calculates collision avoidance speeds to prevent self-collisions in real-time, thereby expanding the robot's operational space.
Patent Information
- Application Number
- PCT/KR2024/020634
- 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
Multi-joint robots face challenges in avoiding self-collision while maximizing their workable area, as existing technologies often restrict movement to prevent collisions, thereby limiting the robot's operational space.
A control method that models collision-prone parts of the robot as three-dimensional shapes with line segments and circular cross-sections, calculates the shortest distance between these parts, computes the relative Jacobian, and determines a speed to avoid collisions using these parameters.
This method enables real-time self-collision avoidance for multi-joint robots, preventing collisions while expanding the robot's workable area through efficient and simple calculations.
Smart Images

Figure KR2024020634_26062025_PF_FP_ABST
Abstract
Description
Control method for self-collision avoidance of a multi-joint robot and a robot performing the same
[0001] The present invention relates to a control method for avoiding self-collision of a robot composed of a plurality of joints.
[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 multi-joint robot 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] In order to solve the above-described problem, a control method for self-collision avoidance of a multi-joint robot according to an embodiment of the present invention comprises the steps of: modeling collision-prone parts of the robot as three-dimensional shapes each having a line segment and a circular cross-section; calculating a 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; 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 distances and a second point of the second line segment; and calculating a speed for avoiding a collision between the first and second collision-prone parts 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 above collision-prone part includes a link part that moves by a joint provided in the robot, and the three-dimensional shape can be formed using a set of points located at a certain distance from the line segment.
[0013] At least some of the control methods for self-collision avoidance of the above multi-joint robot 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, the control method for self-collision avoidance of the multi-joint robot 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, comprises: 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 collision-prone parts of the robot 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 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.
[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] 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.
[0018] Figure 1 is a perspective view illustrating an example of the configuration of a multi-joint robot.
[0019] 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.
[0020] FIG. 3 is a diagram conceptually illustrating the configuration of a multi-joint robot according to one embodiment of the present invention.
[0021] FIGS. 4 and 5 are drawings for explaining embodiments of a method for modeling a collision-prone area of a robot.
[0022] Figures 6 to 11 are drawings for explaining embodiments of a method for calculating collision avoidance speed.
[0023] FIG. 12 is a block diagram showing the configuration of a computing device in which a method according to one embodiment of the present invention is implemented.
[0024] 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.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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).
[0035] 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).
[0036] 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).
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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).
[0042] For example, the collision-prone area can be set to include a link portion moved by a joint provided in the robot.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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).
[0048] 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.
[0049] 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).
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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).
[0054] 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).
[0055] The relative Jacobian produced at step S220 may be the difference between a first Jacobian value to which a Jacobian matrix is applied at a first point and a second Jacobian value to which a Jacobian matrix is applied at a second point, and may thus represent the relative velocity between the first and second collision potential parts based on the first and second points.
[0056] 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).
[0057] 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.
[0058]
[0059] 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.
[0060] 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.
[0061] 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.
[0062]
[0063] 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.
[0064] 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.
[0065]
[0066] 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.
[0067] 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.
[0068] 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.
[0069]
[0070] 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.
[0071] 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.
[0072] 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).
[0073] 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).
[0074] 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).
[0075] Here, the speed calculated to avoid collision between the first and second collision-prone parts (440, 410) may be the angular speed of at least one motor among the plurality of joints provided in the robot.
[0076] 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.
[0077] 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.
[0078] 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.
[0079]
[0080] 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.
[0081] 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.
[0082] 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.
[0083]
[0084] Specifically, the shortest distance (dshortest ) 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.
[0085] 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.
[0086] 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.
[0087] 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.
[0088] 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.
[0089] 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 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.
[0090] Hereinafter, with reference to FIG. 12, 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. 12 may be implemented as at least some components of a robot according to an embodiment of the present invention.
[0091] Referring to FIG. 12, a computing device (500) may include one or more processors (510), a bus (550), a communication interface (570), a memory (530) for loading a computer program (591) executed by the processor (510), and a storage (590) for storing the computer program (591). However, only components related to an embodiment of the present invention are illustrated in FIG. 12. Therefore, a person skilled in the art to which the present invention pertains will understand that other general components may be included in addition to the components illustrated in FIG. 12.
[0092] The processor (510) controls the overall operation of each component of the computing device (500). The processor (510) may be configured to include at least one of a CPU (Central Processing Unit), an MPU (Micro Processor Unit), an MCU (Micro Controller Unit), a GPU (Graphics Processing Unit), 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.
[0093] 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.
[0094] 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.
[0095] 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.
[0096] 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.
[0097] 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.
[0098] 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.
[0099] 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.
[0100] 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.
[0101] 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.
[0102] 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 multi-joint robot, A step of modeling the collision-prone parts of the above robot as three-dimensional shapes having line segments and circular cross sections, respectively; A step of calculating the shortest distance between a first line segment for a first collision potential part among the modeled collision potential parts and a second line segment for a second collision potential part; 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 multi-joint robot, characterized by including a step of calculating a speed for avoiding collision between the first and second collision-prone parts 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 paragraph 1, the collision-prone area is A control method for self-collision avoidance of a multi-joint robot, characterized in that it includes a link part moved by a joint provided in the robot.
3. In the first paragraph, the three-dimensional shape is A control method for self-collision avoidance of a multi-joint robot, characterized in that it is configured using a set of points located at a certain distance from the above line segment.
4. In the first paragraph, the relative Jacobian is A control method for self-collision avoidance of a multi-joint robot, 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.
5. In the fourth paragraph, 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.
6. In paragraph 1, the step of calculating the speed is A control method for self-collision avoidance of a multi-joint robot, characterized by including 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.
7. In paragraph 6, If the above deducted result has a negative value, change the speed of at least one of the first and second collision-prone parts, A control method for self-collision avoidance of a multi-joint robot, characterized in that the speed of the first and second collision-prone parts is not changed when the above-deducted result has a positive value.
8. In paragraph 6, the step of calculating the speed is A control method for self-collision avoidance of a multi-joint robot, characterized in that it further includes a step of calculating a velocity component between the first and second collision-prone parts heading from the first point to the second point by using the relative Jacobian between the first and second points.
9. In paragraph 7, the step of calculating the speed is A control method for self-collision avoidance of a multi-joint robot, characterized in that it further includes a step of calculating the velocity of at least one of the first and second collision-prone parts so 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. In paragraph 1, the calculated speed is A control method for self-collision avoidance of a multi-joint robot, characterized in that the angular velocity of at least one motor among a plurality of joints provided in the robot is 11. A computer program stored on a computer-readable recording medium for executing any one of the methods of claims 1 to 10 in combination with hardware.
12. A robot performing any one of the methods of clauses 1 to 10.
13. In a robot having a 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, The action of modeling the robot's collision-prone areas as three-dimensional shapes with line segments and circular cross sections, respectively. An operation of calculating the shortest distance between a first line segment for a first collision-prone area among the modeled collision-prone areas and a second line segment for a second collision-prone area; An operation of calculating the relative Jacobian between the first point of the first line segment connecting the shortest distance and the second point of the second line segment, and A robot characterized by including instructions for executing an operation of calculating a velocity for avoiding a collision between the first and second collision-prone parts 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
Restriction space calculation method using position sensors of multi degrees-of-freedom manipulator
KR1020110109413A
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
method for calculating workspace of robot using Jacobian matrix and determinant
KR102432681B1
KR20200109552A