Control system, control device, and robot

By automatically detecting the singularity and generating the robot's action plan for changing postures, the problem that machine tool users find it difficult to avoid the singularity, and the smooth movement of the robot near the singularity is realized.

CN112659157BActive Publication Date: 2025-07-15FANUC LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202011086330.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-10-15
Filing Date
2020-10-12
Publication Date
2025-07-15
Estimated Expiration
2040-10-12

AI Technical Summary

Technical Problem

Machine tool users are not used to operating the robot's teaching operation panel, and it is difficult to avoid singularities during the robot's movement through orthogonal jog operation, resulting in difficulty in controlling.

Method used

Through the singularity determination unit and the singularity through the pattern generation unit in the control system, the singularity is automatically detected and the action plan for the robot to change the posture is generated, so that the robot can switch the posture when passing through the singularity or the singularity, and generate a G code to realize the action program.

Benefits of technology

The robot action program is generated without the user awareness of the singularity, which improves operability and reduces the user's burden, ensuring that the robot can pass the singularity smoothly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112659157B_ABST
    Figure CN112659157B_ABST
Patent Text Reader

Abstract

The present invention provides a control system, a control device, and a robot. The control system includes a control device and a robot. The control device is provided with an operation unit that teaches a position to the robot; a posture change instruction unit that instructs a posture change when the robot passes through a singularity or near a singularity during movement; a singularity passing motion request unit that instructs the robot to change its posture to pass through a singularity or near a singularity; a robot drive information request unit that acquires robot drive information; and a robot G-code generation unit that inserts the G-code of the robot into a program according to the robot drive information. The robot is provided with a drive control unit that drives the robot; a singularity determination unit (213) that determines the passage through a singularity or near a singularity; a singularity passing mode generation unit that generates a motion plan for passing through a singularity or near a singularity based on the changed posture, and drives the robot; and a robot drive information output unit that sends the robot drive information to the control device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a control system, a control device, and a robot. Background Art

[0002] In machining using a machine tool, for automation, a robot is used for workpiece loading and unloading operations and the like. At this time, it is necessary to teach a predetermined operation motion to the robot. However, when teaching the robot using the teaching operation panel of the robot, the user of the machine tool is not accustomed to operating the teaching operation panel of the robot and sometimes has difficulty doing it by himself / herself.

[0003] For example, a combined system of a robot and a machine tool that enables a robot to be operated at a control unit of the machine tool is disclosed. For example, refer to Patent Document 1.

[0004] Patent Document

[0005] Patent Document 1: Japanese Patent Application Laid-Open No. 2001-154717 Summary of the Invention

[0006] However, in the teaching operation of the robot, an operation of pressing a key for specifying the moving direction of the robot disposed on the teaching operation panel to move the robot to a desired position, that is, a so-called jog operation, is performed. The operation methods of this jog operation include an orthogonal jog operation and an axis-by-axis jog operation. The orthogonal jog operation is an operation of teaching the position to be moved to the robot based on the directions of the X-axis, Y-axis, and Z-axis of the orthogonal coordinate system fixed to the robot. In this case, in order for the robot to move the mechanical fingertip of the robot to the taught position, in addition to the translational motion in the X-axis, Y-axis, and Z-axis directions, a posture change motion of rotating the mechanical fingertip of the robot around each axis is also performed. On the other hand, the axis-by-axis jog operation is an operation of teaching the position to be moved to the robot by moving the robot in the direction around each joint axis of the robot. The orthogonal jog operation is an operation based on the orthogonal coordinate system that is easy for people to understand, so most users perform the teaching operation of the robot through the orthogonal jog operation.

[0007] Further, when generating a target position by specifying the moving direction of the mechanical fingertip of the robot through orthogonal jogging operations, the rotation angle of each joint axis is calculated based on inverse kinematics calculation according to the target position. Each joint axis is controlled to move the mechanical fingertip of the robot to the target position based on the calculated rotation angle. However, if no solution for the inverse kinematics calculation for the target position is obtained, the control of the robot becomes difficult. For example, in the target position of the robot posture where the rotation axes of two or more joint axes are arranged in a straight line, since the rotation angles of these joint axes cannot be uniquely determined, it is called a "singularity", and the robot cannot be moved to such a singularity. In particular, when the robot intrudes into the machine tool to perform the workpiece mounting / demounting operation, an operation through the singularity is mostly required. At this time, the robot cannot be operated by orthogonal jogging operations, and it is necessary to switch to the individual axis jogging operations that do not require inverse kinematics calculation when passing through and crossing the singularity.

[0008] However, it is difficult for users of machine tools who are not accustomed to robots to master the singularity to operate the robot.

[0009] Therefore, it is desired to easily generate a motion program for the robot without being aware of the singularity.

[0010] (1) One aspect of the control system of the present disclosure is a control system including a control device capable of performing position teaching of a robot and a robot that operates according to the above position teaching. The above control device includes: an operation unit that teaches a position to the above robot based on a user's operation; a posture change instruction unit that, when receiving a notification from the above robot that it passes through a singularity or near a singularity when moving to the taught position, instructs the above robot to change its posture; a singularity passing motion request unit that sends an instruction to change the above posture to the above robot so as to pass through the singularity or near the singularity in the posture instructed by the above posture change instruction unit; a robot drive information request unit that requests the above robot for robot drive information indicating the driving state of the above robot when passing through the singularity or near the singularity, and obtains the above robot drive information; and a robot G-code generation unit that generates a G-code corresponding to the operation of the above robot based on the above robot drive information obtained by the above robot drive information request unit, and inserts the generated above G-code into a program. The above robot includes: a drive control unit that drives the above robot; a singularity determination unit that determines whether it passes through the singularity or near the singularity when moving to the position taught by the above control device, and when passing through the singularity or near the singularity, sends a notification of passing through the singularity or near the singularity to the above control device; a singularity passing motion pattern generation unit that, when receiving an instruction to change the posture of the above robot from the above control device, generates a motion plan to pass through the singularity or near the singularity based on the changed posture, and drives the above drive control unit based on the generated above motion plan; and a robot drive information output unit that, when receiving a request for the above robot drive information from the above control device, sends the above robot drive information to the above control device.

[0011] (2) One aspect of the control device of the present disclosure includes: an operation unit that teaches a position to a robot as a control object based on a user's operation; a posture change instruction unit that, when receiving a notification from the above robot that it passes through a singularity or near a singularity when moving to the taught position, instructs the above robot to change its posture; a singularity passing motion request unit that sends the instruction to change the above posture to the above robot so as to pass through the singularity or near the singularity in the posture instructed by the above posture change instruction unit; a robot drive information request unit that requests the above robot for robot drive information indicating the driving state of the above robot when passing through the singularity or near the singularity, and obtains the above robot drive information; and a robot G-code generation unit that generates a G-code corresponding to the above robot based on the above robot drive information obtained by the above robot drive information request unit, and inserts the generated above G-code into a program.

[0012] (3) One aspect of the robot of the present disclosure is a robot that operates according to the above-described position teaching of a control device capable of performing position teaching of the robot, and includes: a drive control unit that drives the above-described robot; a singularity determination unit that determines whether it passes through a singularity or near a singularity when moving to a position taught by the above-described control device, and when passing through the above-described singularity or near the singularity, sends a notification of passing through the above-described singularity or near the singularity to the above-described control device; a singularity passing mode generation unit that, when receiving an instruction to change the posture of the above-described robot from the above-described control device, generates an action plan to pass through the above-described singularity or near the singularity in the changed posture, and drives the above-described drive control unit to drive the above-described robot based on the generated above-described action plan; and a robot drive information output unit that, when receiving a request for robot drive information indicating the drive state of the above-described robot when passing through the above-described singularity or near the singularity from the above-described control device, sends the above-described robot drive information to the above-described control device.

[0013] According to one aspect, it is possible to easily generate an action program for a robot without being conscious of singularities. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1 is a functional block diagram showing a functional configuration example of a control system according to one embodiment.

[0015] Figure 2 shows an example of a program after inserting G-codes corresponding to robot actions generated by a robot G-code generation unit.

[0016] Figure 3 shows an example of a robot position teaching screen.

[0017] Figure 4 shows an example of a robot.

[0018] Figure 5 is a flowchart for explaining the teaching process of the control system.

[0019] Figure 6 is a flowchart for explaining the teaching process of the control system.

[0020] DESCRIPTION OF REFERENCE NUMERALS

[0021] 1: Control system, 100: Control device, 110: Handle operation unit, 124: Posture change instruction unit, 125: Singularity passing action request unit, 129: Robot drive information request unit, 130: Robot code generation unit, 200: Robot, 215: Singularity passing mode generation unit, 219: Robot drive information output unit. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0022] <First Embodiment>

[0023] First, an overview of this embodiment will be described. In this embodiment, the control system includes a control device and a robot. The control device teaches the position of the robot based on the user's operation. When receiving a notification that the robot has moved to the taught position through or near a singularity, the control device instructs the robot to change its posture. The control device requests the robot to pass through or near the singularity in the indicated posture. The control device acquires robot drive information representing the drive state of the robot when passing through or near the singularity, generates G-code corresponding to the robot based on the acquired robot drive information, and inserts the generated G-code into the program.

[0024] Thus, according to this embodiment, the problem of "easily generating an operation program for a robot without being conscious of singularities" can be solved.

[0025] The above is the overview of this embodiment.

[0026] Next, the structure of this embodiment will be described in detail with reference to the accompanying drawings.

[0027] In addition, in the following description, unless otherwise specified, a singularity or the vicinity of a singularity is also referred to as "the vicinity of a singularity".

[0028] Figure 1 It is a functional block diagram showing a functional structure example of a control system 1 according to an embodiment.

[0029] The control system 1 includes a control device 100 and a robot 200. The control device 100 and the robot 200 can be directly connected to each other via a connection interface (not shown). In addition, the control device 100 and the robot 200 can also be connected to each other through a network (not shown) such as a LAN (Local Area Network) or the Internet. In this case, the control device 100 and the robot 200 are provided with a communication unit (not shown) for communicating with each other through the above connection.

[0030] <Control device 100>

[0031] The control device 100 is a numerical control device capable of teaching the position of the robot 200 and generates an operation program for the robot 200 based on the position teaching.

[0032] As Figure 1As shown, the control device 100 includes a handle operation unit 110, a control unit 120, and a display unit 140. Furthermore, the control unit 120 includes an interpolation operation unit 121, a target position sending unit 122, a singularity information acquisition unit 123, a posture change instruction unit 124, a singularity passing motion request unit 125, a robot coordinate tracking request unit 126, a coordinate receiving unit 127, a tracking execution unit 128, a robot drive information request unit 129, and a robot G-code generation unit 130.

[0033] The handle operation unit 110 is, for example, a handle that adjusts the positions of the respective joint axes included in the robot 200 described later through an orthogonal coordinate system of the X-axis, Y-axis, and Z-axis, and has a handle for manual operation by the user. The handle operation unit 110 outputs, for example, a signal of a pulse train corresponding to the rotation speed of the rotary handle. In this way, by using the handle operation unit 110, the user of the machine tool can operate the robot 200 with the familiar orthogonal coordinate system.

[0034] In addition, one handle operation unit 110 can be provided for the multiple joint axes of the robot 200, or one handle operation unit 110 can be provided for each of the multiple joint axes, that is, multiple handle operation units 110 can be provided.

[0035] The control unit 120 includes a CPU, a ROM, a RAM, a CMOS memory, etc., which are configured to be communicable with each other via a bus, and this is well known to those skilled in the art.

[0036] The CPU is a processor that controls the entire control device 100. The CPU reads out the system program and application program stored in the ROM via the bus and controls the entire control device 100 according to the above system program and application program. Thus, as Figure 1 shown, the control unit 120 is configured to implement the functions of the interpolation operation unit 121, the target position sending unit 122, the singularity information acquisition unit 123, the posture change instruction unit 124, the singularity passing motion request unit 125, the robot coordinate tracking request unit 126, the coordinate receiving unit 127, the tracking execution unit 128, the robot drive information request unit 129, and the robot G-code generation unit 130. Various data such as temporary calculation data and display data are stored in the RAM. The CMOS memory is backed up by a battery (not shown) and is configured as a non-volatile memory that maintains the storage state even when the power supply of the control device 100 is turned off.

[0037] The interpolation operation unit 121 calculates the target position (teaching position) of the robot 200 based on the signal of the pulse train received from the handle operation unit 110.

[0038] The target position sending unit 122 sends the target position calculated by the interpolation calculation unit 121 to the robot 200.

[0039] When the singularity information acquisition unit 123 moves the robot 200 to the target position transmitted by the target position transmission unit 122 and is determined by the singularity determination unit 213 of the robot 200 described later to be near the singularity, it receives a notification of passing near the singularity.

[0040] In addition, the vicinity of the singularity is a preset predetermined range centered on the singularity.

[0041] When the posture change instruction unit 124 receives a notification that the robot 200 has passed near the singularity through the singularity information acquisition unit 123, it displays the message of the above notification on the display unit 140 described later. Then, the posture change instruction unit 124 displays a message on the display unit 140 to urge the robot 200 to change its posture in order to pass near the above singularity. The posture change instruction unit 124 accepts an instruction to change the posture of the robot 200 through an input operation of the user via an input device (not shown) such as a touch panel included in the control device 100. In addition, the display of the message and the content of the instruction to change the posture of the robot 200 will be described later.

[0042] The singularity passing action request unit 125 sends an instruction to change the posture to the robot 200 so as to pass near the singularity in the posture indicated by the posture change instruction unit 124. And, when the robot 200 has passed near the singularity, the singularity passing action request unit 125 receives a completion notification indicating that it has passed the singularity from the robot 200.

[0043] When the robot coordinate tracking request unit 126 receives the completion notification, it sends a tracking request to the robot 200. After that, the robot coordinate tracking request unit 126 receives a completion notification indicating that the coordinate information related to the coordinate system set on the robot 200 has been sent from the robot 200.

[0044] The coordinate receiving unit 127 receives the above coordinate information from the robot 200.

[0045] When the robot coordinate tracking request unit 126 receives the completion notification, the tracking execution unit 128 updates the coordinate value of the robot 200 based on the coordinate information received by the coordinate receiving unit 127.

[0046] The robot drive information request unit 129 requests the robot 200 for robot drive information indicating the drive state of the robot 200 when passing near the singularity, and obtains the robot drive information from the robot 200.

[0047] The robot drive information includes the form representing the posture of the robot 200, the rotational speeds of the joint axes corresponding to the wrist of the robot 200, the set coordinate system, and the coordinate values representing the posture of the robot 200.

[0048] Based on the robot drive information obtained by the robot drive information request unit 129, the robot G-code generation unit 130 generates G-codes corresponding to the actions of the robot 200 and inserts the generated G-codes into the program.

[0049] Figure 2 It is a diagram showing an example of a program into which the G-codes corresponding to the actions of the robot 200 generated by the robot G-code generation unit 130 are inserted.

[0050] As Figure 2 shown, "O0001" in the first line represents the program number.

[0051] "G00" in the second line is a command for positioning the starting point. The movement to the coordinates (X, Y, Z) = (100, 100, 100) is specified by "X100 Y100 Z100".

[0052] "G200" in the third line is a command for the robot 200 to pass near the singularity. "J1 J2 J3 J4 J5 J6" are the values of the respective rotation angles of the six axes in the robot drive information when the robot 200 is a six-axis vertical articulated robot and is set to move to the target position. In other words, the G-code for passing near the singularity generated by the robot G-code generation unit 130 changes from the orthogonal mode in the second line to the individual axis mode. Thus, even when the solution of the inverse kinematics calculation cannot be obtained, the robot 200 can pass and cross near the singularity.

[0053] The final "i j k" are parameters respectively representing the form of the posture of the robot 200 after passing through the singularity represented by the robot drive information, the rotational speed of the joint axis corresponding to the wrist of the robot 200, and the curvature of the movement of the mechanical fingertip of the robot 200. The curvature k of the movement is set to a value between, for example, "1%" and "100%". As the set value increases, the mechanical fingertip of the robot 200 moves in a smooth curve.

[0054] "M99" in the fourth line is a command to end Figure 2 the program.

[0055] Thus, by inserting the G-codes for the robot 200, the control device 100 enables even a user of a machine tool without professional knowledge of robots to easily generate an action program for the robot.

[0056] In addition, as a command for the robot 200 to pass near the singularity, it is set to "G200", but it is not limited to this, and any G-code can also be assigned.

[0057] In addition, when moving to the target position without passing through the singularity, the robot G-code generation unit 130 can generate G-codes in the orthogonal mode and insert the generated G-codes into the program. For example, the robot G-code generation unit 130 can generate a G-code for orthogonal mode cutting (linear) feed of "G01 X100.0 Y0.0 Z200.0 A0.0 B-45.0 C0.0" and insert it into the program. Here, A, B, and C represent the rotation angles around the X-axis, around the Y-axis, and around the Z-axis. Alternatively, the robot G-code generation unit 130 can also generate a G-code for cutting (linear) feed in the axis mode of "G01 J1 100.0 J2 30.0 J3 95.5 J4 10.2 J5 45.0 J6 0.0".

[0058] The display unit 140 is a liquid crystal display or the like, and displays various information according to the control of the control unit 120. For example, the display unit 140 displays the robot position teaching screen 145.

[0059] Figure 3 It is a diagram showing an example of the robot position teaching screen 145.

[0060] As Figure 3 shown, the robot position teaching screen 145 has a coordinate display area 300 that displays the position of the robot 200 using the orthogonal coordinate system and the axis coordinate system, and an editor display area 310 that displays the program editor for generating / editing the program. In addition, the robot position teaching screen 145 has an input display area 320 that displays the G-codes and set values input into the program editor, and a coordinate switch key display area 330 that displays the coordinate switch keys for changing the coordinate system of the robot 200. In addition, the robot position teaching screen 145 has a change posture display area 340 that displays the change posture button icons 341 - 343 for receiving an instruction to change the posture of the robot 200 based on the user's operation, and a selection key display area 350 that displays the selection keys for selecting the axis of the operation object for manual operation (jog operation) by the handle operation unit 110. In addition, the robot position teaching screen 145 has a teaching display area 360 that displays the position teaching keys for reading the position (X, Y, Z) and posture (A, B, C) of the robot 200, the setting buttons for the moving speed, the setting keys for the opening and closing of the mechanical fingers at the fingertips of the robot 200, and the line designation keys for designating the lines of the program generated / edited by the program editor. In addition, the robot position teaching screen 145 has a soft key display area 370 that displays a plurality of soft keys.

[0061] In addition, as described above, when the posture change instruction unit 124 receives a notification that the robot 200 has passed near a singularity from the singularity information acquisition unit 123, the message of the above notification such as "near a singularity" is overlapped and displayed on the display unit 140 with the robot position teaching screen 145 in Figure 3 At this time, for example, the posture change instruction unit 124 may also overlap and display a message such as "Please select a robot posture change to pass through the singularity" on the display unit 140 with the robot position teaching screen 145. Further, the posture change instruction unit 124 enables the user to select any one of the posture change button icons 341-343 displayed in the posture change display area 340 of the robot position teaching screen 145 via an input device (not shown) of the control device 100, and accepts an instruction to change the posture of the robot 200.

[0062] Thereby, when it becomes near a singularity during the position teaching of the robot 200 in the orthogonal coordinate system, the control device 100 can perform an operation of causing the robot 200 to pass through and straddle near the singularity without the user's trial and error, which can improve the operability and reduce the burden on the user.

[0063] In addition, the posture change button icon 341 is an icon that indicates that the wrist joint axis of the robot 200 described later changes from upward to downward or from downward to upward. In addition, the posture change button icon 342 is an icon that indicates that the elbow joint axis of the robot 200 changes from upward to downward or from downward to upward. In addition, the posture change button icon 343 is an icon that indicates that the orientation of the robot 200 changes from forward to backward or from backward to forward.

[0064] In addition, in the coordinate switch key display area 330, coordinate switch keys for changing the coordinate system of the robot 200 to any one of "axis coordinate system", "world coordinate system", "user coordinate system", "tool coordinate system 1", and "tool coordinate system 2" are displayed. Therefore, codes for changing the coordinate system of the robot 200 can be prepared in advance in the G-code generated by the robot G-code generation unit 130. In this case, for example, "G201" can specify the coordinate system of the robot 200 as the axis coordinate system. In addition, "G202" can also specify the coordinate system of the robot as the world coordinate system. In addition, "G203" can also specify the coordinate system of the robot 200 as the tool coordinate system 1. In addition, "G204" can also specify the coordinate system of the robot 200 as the tool coordinate system 2. Furthermore, "G205" can also specify the coordinate system of the robot 200 as the user coordinate system.

[0065] <Robot 200>

[0066] Figure 4 is a diagram showing an example of the robot 200.

[0067] As Figure 4 shown, the robot 200 is, for example, a 6-axis vertical multi-joint robot, having six joint axes 230(1)-230(6) and an arm 240 connected by the joint axes 230(1)-230(6) respectively. The robot 200 drives servo motors (not shown) respectively disposed on the joint axes 230(1)-230(6) based on drive instructions from the control device 100, thereby driving movable components such as the arm 240. Further, at the front end of the movable component of the robot 200, for example, at the front end of the joint axis 230(6), a terminal effector 250 such as a gripping handle is mounted.

[0068] Here, the joint axis 230(1) is a joint that rotates the orientation of the robot 200. Further, the joint axis 230(3) is a joint corresponding to the elbow of the robot 200. The joint axis 230(5) is a joint corresponding to the wrist of the robot 200.

[0069] Further, although the robot 200 is a 6-axis vertical multi-joint robot, it may also be a vertical multi-joint robot other than 6-axis, or a horizontal multi-joint robot or a parallel link robot, etc.

[0070] Further, hereinafter, when it is not necessary to distinguish the joint axes 230(1)-230(6) separately, these are collectively referred to as "joint axis 230".

[0071] In addition, in Figure 4 denotes a world coordinate system representing a three-dimensional orthogonal coordinate system of the X-axis, Y-axis, and Z-axis fixed in space; a tool coordinate system of the Xt-axis, Yt-axis, and Zt-axis of the terminal effector 250 mounted at the front end of the joint axis 230(6) of the robot 200, and a user coordinate system of the Xu-axis, Yu-axis, and Zu-axis of the three-dimensional orthogonal coordinates. In the present embodiment, the positional correlation of the world coordinate system, the tool coordinate system, and the user coordinate system is obtained through a previously known calibration. Thereby, the above-described control device 100 can control the position of the front end of the robot 200 on which the terminal effector 250 is mounted even when using a position defined by any one of the world coordinate system, the tool coordinate system, and the user coordinate system.

[0072] Figure 4 The A, B, and C shown in denote the rotation angles around the X-axis, around the Y-axis, and around the Z-axis.

[0073] As Figure 1As shown, the robot 200 has a control unit 210. In addition, the control unit 210 includes a target position receiving unit 211, a drive control unit 212, a singularity determination unit 213, a power control unit 214, a singularity passing mode generation unit 215, a coordinate system control unit 216, a robot coordinate tracking unit 217, a coordinate sending unit 218, and a robot drive information output unit 219.

[0074] Those skilled in the art know that the control unit 210 has a CPU, a ROM, a RAM, a CMOS memory, etc., which can be configured to communicate with each other via a bus.

[0075] The CPU is a processor that controls the entire robot 200. The CPU reads the system program and application program stored in the ROM via the bus and controls the entire robot 200 according to the above system program and application program. Therefore, as Figure 1 shown, the control unit 210 is configured to implement the functions of the target position receiving unit 211, the drive control unit 212, the singularity determination unit 213, the power control unit 214, the singularity passing mode generation unit 215, the coordinate system control unit 216, the robot coordinate tracking unit 217, the coordinate sending unit 218, and the robot drive information output unit 219.

[0076] The target position receiving unit 211 receives the target position sent by the target position sending unit 122 of the control device 100.

[0077] The drive control unit 212 drives the servo motors (not shown) of the respective joint axes 230 of the robot 200 to move to the target position received by the target position receiving unit 211.

[0078] The singularity determination unit 213 determines whether it passes near a singularity when moving to the target position taught by the control device 100. When passing near a singularity, it sends a notification indicating that it is near a singularity to the control device 100.

[0079] Specifically, for example, when the singularity determination unit 213 determines whether the robot 200 moves to the target position based on the rotation angles of the respective joint axes 230 included in the calculation result of the power control unit 214 described later, whether the robot 200 is in a posture where the rotation axes of two or more joint axes 230 are arranged in a straight line. And when the robot 200 is in a posture where the rotation axes of two or more joint axes 230 are arranged in a straight line, the singularity determination unit 213 determines that it passes near a singularity. The singularity determination unit 213 sends a notification indicating that it is near a singularity to the control device 100.

[0080] The motion control unit 214 calculates the rotation angles of the respective joint axes 230 based on the inverse kinematics calculation according to the received target position. The motion control unit 214 outputs the calculation results to the singularity determination unit 213, the singularity passing mode generation unit 215, and the robot drive information output unit 219.

[0081] When receiving an instruction to change the posture of the robot 200 from the control device 100, the singularity passing mode generation unit 215 generates a motion plan so as to pass near the singularity according to the changed posture of the robot 200, and drives the robot 200 by the drive control unit 212 according to the generated motion plan.

[0082] Specifically, when receiving an instruction to change the posture, the singularity passing mode generation unit 215 obtains information including the coordinate system set on the robot 200, the form representing the posture of the robot 200, the rotational speeds of the respective joint axes 230(4)-230(6) corresponding to the wrist of the robot 200, and the position of the singularity from the motion control unit 214 and the coordinate system control unit 216 described later. The singularity passing mode generation unit 215 uses the obtained information to generate a motion plan in such a manner as to pass near the singularity based on the changed posture of the robot 200, through the interpolation motion of the robot 200 and the respective axis modes. The singularity passing mode generation unit 215 drives the robot 200 by the drive control unit 212 based on the generated motion plan. When the robot 200 is moved to the target position through the interpolation motion of the robot 200 and the respective axis modes, the singularity passing mode generation unit 215 sends a completion notification indicating that the singularity has been passed to the control device 100.

[0083] In addition, the changed posture of the robot 200 may also be different from the posture indicated by the user of the control device 100. For example, even when the user presses the change posture button icon 341 on the robot position teaching screen 145 and selects an instruction to change the joint axis 230(5) of the wrist of the robot 200 from upward to downward or from downward to upward, the singularity passing mode generation unit 215 may select a posture to change the joint axis 230(3) of the elbow of the robot 200 from upward to downward or from downward to upward. Or, the singularity passing mode generation unit 215 may select a posture to change the joint axis 230(1) toward which the robot 200 faces from forward to backward or from backward to forward.

[0084] That is, for a user of a machine tool who is not used to operating the teaching operation panel of the robot, it is difficult to judge which posture to change the robot 200 to in order to pass through the singularity. Therefore, the singularity passing mode generation unit 215 determines the most suitable posture for passing through the singularity according to the information obtained from the motion control unit 214 and the coordinate system control unit 216 described later. Thereby, the burden on the user can be reduced.

[0085] The coordinate system control unit 216 controls the coordinate system set in the robot 200.

[0086] When receiving a tracking request from the control device 100, the robot coordinate tracking unit 217 obtains coordinate information related to the coordinate system set in the robot 200 from the coordinate system control unit 216, sets the obtained coordinate information in the coordinate sending unit 218, and notifies the control device 100. The robot coordinate tracking unit 217 sends a completion notice indicating that the coordinate information has been sent to the control device 100.

[0087] The coordinate sending unit 218 sends the coordinate information set by the robot coordinate tracking unit 217 to the control device 100.

[0088] When receiving a request for robot drive information from the control device 100, the robot drive information output unit 219 obtains information (form, rotation speed, coordinate system) from the power control unit 214 and the coordinate system control unit 216. The robot drive information output unit 219 notifies the obtained information to the control device 100 as robot drive information.

[0089] <Teaching process of control system 1>

[0090] Next, the operations related to the teaching process of the control system 1 of the present embodiment will be described.

[0091] Figure 5 and Figure 6 are flowcharts showing the operations of the teaching process of the control system 1. Whenever the user of the control device 100 teaches the target position to the robot 200, the process shown here is repeatedly executed.

[0092] In step S101, the interpolation operation unit 121 of the control device 100 calculates the target position of the robot 200 based on the signal of the pulse train received from the handle operation unit 110 through the user's operation of the handle operation unit 110 of the control device 100.

[0093] In step S102, the target position sending unit 122 sends the target position calculated in step S101 to the robot 200.

[0094] In step S201, the drive control unit 212 of the robot 200 drives the servo motors (not shown) of the respective joint axes 230 of the robot 200 to move to the target position received by the target position receiving unit 211.

[0095] In step S202, the singularity determination unit 213 determines whether the robot 200 passes near a singularity based on the rotation angles of the respective joint axes 230 when moving to the target position calculated by the motion control unit 214 through inverse kinematics calculation. If it passes near a singularity, the process proceeds to step S203. If it does not pass near a singularity, the process proceeds to step S207.

[0096] In step S203, the singularity determination unit 213 sends a notification of passing near a singularity to the control device 100.

[0097] In step S103, the singularity information acquisition unit 123 of the control device 100 determines whether a notification that the robot 200 has passed near a singularity is received from the robot 200. If the singularity information is acquired, the process proceeds to step S104. If the singularity information is not acquired, the process proceeds to step S107.

[0098] In step S104, when the notification of passing near a singularity of the robot 200 is acquired in step S103, the posture change instruction unit 124 displays the message of the above notification on the display unit 140 and receives an instruction to change the posture of the robot 200 from the user of the control device 100.

[0099] In step S105, the singularity passing motion request unit 125 sends an instruction to change the posture to the robot 200 so that the robot 200 passes through the singularity in the posture indicated in step S104.

[0100] In step S204, when the singularity passing mode generation unit 215 of the robot 200 receives an instruction to change the posture of the robot 200 from the control device 100, it makes the robot 200 pass near the singularity based on the interpolation motion of the robot 200 and the motion plan of each axis mode.

[0101] In step S205, the singularity passing mode generation unit 215 drives the robot 200 by the drive control unit 212 based on the motion plan generated in step S204.

[0102] In step S206, when the singularity passing mode generation unit 215 moves the robot 200 to the target position through the interpolation motion of the robot 200 and each axis mode, it sends a completion notification indicating that it has passed through the singularity to the control device 100.

[0103] In step S106, the singularity passing motion request unit 125 of the control device 100 receives a completion notification indicating that it has passed through the singularity from the robot 200.

[0104] In step S107, when the robot coordinate tracking request unit 126 receives the completion notice in step S106, it sends a tracking request to the robot 200.

[0105] In step S207, the robot coordinate tracking unit 217 of the robot 200 receives a tracking request from the control device 100. The robot coordinate tracking unit 217 obtains coordinate information about the coordinate system set on the robot 200 from the coordinate system control unit 216, and sets the obtained coordinate information in the coordinate sending unit 218.

[0106] In step S208, the coordinate sending unit 218 sends the coordinate information set in step S207 to the control device 100.

[0107] In step S108, the coordinate receiving unit 127 of the control device 100 receives coordinate information from the robot 200.

[0108] In step S209, when the robot coordinate tracking unit 217 of the robot 200 sends coordinate information to the control device 100 in step S208, it sends a completion notice indicating the completion of the coordinate information sending to the control device 100.

[0109] In step S109, the robot coordinate tracking request unit 126 of the control device 100 receives a completion notice indicating the completion of the coordinate information sending from the robot 200.

[0110] In Figure 6 step S110, the tracking execution unit 128 receives the completion notice in step S109, and thus updates the coordinate value of the robot 200 based on the coordinate information received in step S108.

[0111] In step S111, the robot drive information request unit 129 sends a request for robot drive information to the robot 200.

[0112] In step S210, the robot drive information output unit 219 of the robot 200 receives a request for robot drive information from the control device 100, and thus obtains robot drive information from the power control unit 214 and the coordinate system control unit 216.

[0113] In step S211, the robot drive information output unit 219 sends the robot drive information obtained in step S210 to the control device 100.

[0114] In step S112, the robot drive information request unit 129 of the control device 100 receives robot drive information from the robot 200.

[0115] In step S113, the robot uses the G-code generation unit 130 to generate G-codes corresponding to the actions of the robot 200 based on the robot drive information obtained in step S112, and inserts the generated G-codes into the program.

[0116] Through the above, the control device 100 of one embodiment sends the target position of the robot 200 calculated based on the pulse train signal received by operating the handle operation unit 110 of the control device 100 by the user to the robot 200. When the control device 100 receives a notification from the robot 200 that it is passing near a singularity for the sent target position, the control device 100 displays the message of the above notification on the display unit 140, and receives an instruction from the user of the control device 100 to change the posture of the robot 200. The control device 100 sends an instruction to change the posture to the robot 200 so as to pass through the singularity in the indicated posture. The control device 100 obtains robot drive information indicating the drive state of the robot 200 when passing through the singularity. The control device 100 generates G-codes corresponding to the actions of the robot 200 based on the obtained robot drive information, and inserts the generated G-codes into the program.

[0117] Thereby, the control device 100 can easily generate an action program for the robot without being conscious of the singularity.

[0118] The above describes one embodiment. The control system 1, the control device 100, and the robot 200 are not limited to the above embodiment, but include variations, improvements, etc. within the scope that can achieve the purpose.

[0119] In the above embodiment, as an instruction to change the posture from the user, the control device 100 receives an instruction to change the joint axis 230(5) of the wrist of the robot 200 from upward to downward or from downward to upward, or to change the joint axis 230(3) of the elbow of the robot 200 from upward to downward or from downward to upward, or to change the orientation of the processing robot 200 from forward to backward or from backward to forward, but is not limited thereto. For example, the control device 100 can simply receive an instruction to change the posture from the user.

[0120] As described above, this is because the singularity passing mode generation unit 215 of the robot 200 determines the posture most suitable for passing through the singularity based on the information obtained from the power control unit 214 and the coordinate system control unit 216. Therefore, the posture of the changed robot 200 may be different from the posture indicated by the control device 100. In addition, it is difficult for a machine tool user who is not used to operating the teaching pendant of the robot to judge the posture of the robot 200 most suitable for passing through the singularity. Therefore, by simply instructing the user to change the posture, the burden on the user can be further reduced.

[0121] In addition, each function included in the control system 1, the control device 100, and the robot 200 in one embodiment can be implemented separately by hardware, software, or a combination thereof. Here, software implementation means that a computer implements it by reading and executing a program.

[0122] Various types of non-transitory computer readable media can be used to store a program and provide it to a computer. The non-transitory computer readable media include various types of tangible storage media. Examples of the non-transitory computer readable media include magnetic recording media (e.g., floppy disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROM (Read Only Memory), CD-R, CD-R / W, semiconductor memories (e.g., mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM). A program can also be provided to a computer via various types of transitory computer readable media. Examples of the transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The transitory computer readable media can provide a program to a computer via a wired communication path such as wires and optical fibers or a wireless communication path.

[0123] In addition, the steps of describing a program recorded in a recording medium include not only processes executed in time sequence in that order but also processes executed in parallel or individually even if not necessarily in time sequence.

[0124] In other words, the control system, the control device, and the robot of the present disclosure can adopt various embodiments having the following structures.

[0125] (1) The control system 1 of the present disclosure is a control system including a control device 100 capable of performing position teaching of a robot and a robot 200 that operates according to the position teaching. The control device 100 includes: a handle operation unit 110 that teaches the position of the robot 200 based on a user's operation; a posture change instruction unit 124 that, when receiving a notification from the robot 200 that the robot 200 moves to the taught position through a singularity or near a singularity, instructs the robot 200 to change its posture; a singularity passage motion request unit 125 that sends an instruction to change the posture to the robot 200 so as to pass through or near the singularity in the posture instructed by the posture change instruction unit 124; a robot drive information request unit 129 that requests the robot 200 for robot drive information indicating the drive state of the robot 200 when passing through or near the singularity, and obtains the robot drive information; and a robot G-code generation unit 130 that generates a G-code corresponding to the operation of the robot 200 based on the robot drive information obtained by the robot drive information request unit 129 and inserts the generated G-code into the program. The robot 200 includes: a drive control unit 212 that drives the robot 200; a singularity determination unit 213 that determines whether it passes through or near a singularity when moving to the position taught by the control device 100, and in the case of passing through or near the singularity, sends a notification of passing near the singularity to the control device 100; a singularity passage mode generation unit 215 that, when receiving an instruction to change the posture of the robot 200 from the control device 100, generates an operation plan to pass through or near the singularity according to the changed posture, and drives the drive control unit 212 to drive the robot 200 based on the generated operation plan; and a robot drive information output unit 219 that, when receiving a request for robot drive information from the control device 100, sends the robot drive information to the control device 100.

[0126] According to this control system 1, it is possible to easily generate an operation program of the robot without being conscious of the singularity.

[0127] (2) In the control system (1) described in (1), when the singularity passage mode generation unit 215 does not pass through or near a singularity when moving the robot 200 to the taught position, the drive control unit 212 drives the robot 200 in an orthogonal mode, and when passing through or near a singularity, the drive control unit 212 drives the robot 200 in an axis mode.

[0128] Thereby, when the control system (1) becomes a singularity or near a singularity in the position teaching of the robot 200 in the orthogonal coordinate system, the robot 200 can pass through and straddle the singularity or near the singularity by switching to the axis coordinate system.

[0129] (3) In the control system (1) described in (1) or (2), the robot drive information includes the form indicating the posture of the robot 200, the rotational speeds of the joint axes 230(4)-230(6) corresponding to the wrist of the robot 200, the set coordinate system, and the coordinate values indicating the position and posture of the robot 200.

[0130] Thus, regarding the control system (1), even a user of a machine tool who does not have professional knowledge of robots can easily generate an operation program for the robot.

[0131] (4) In the control system (1) described in any one of (1) to (3), the changed posture indicated by the posture change instruction unit 124 is to change the orientation of the wrist or elbow of the robot 200 from upward to downward or from downward to upward, or to change the orientation of the robot 200 from forward to backward or from backward to forward, or to change the orientation of the robot 200 from left to right or from right to left.

[0132] Thus, when the control system (1) becomes a singularity or near a singularity during the position teaching of the robot 200 in the orthogonal coordinate system, it can perform an operation that allows the robot 200 to pass through and over the singularity or near the singularity without the user's trial and error, which can improve the operability and reduce the user's burden.

[0133] (5) The control device 100 of the present disclosure includes: a handle operation unit 110 that teaches a position of a control target robot 200 based on a user's operation; a posture change instruction unit 124 that, when receiving a notification that the robot 200 has moved to the taught position and passed through or near a singularity from the robot 200, instructs the robot 200 to change its posture; a singularity passing action request unit 125 that sends an instruction to change the posture to the robot 200 so as to pass through or near the singularity in the posture indicated by the posture change instruction unit 124; a robot drive information request unit 129 that requests the robot 200 for robot drive information indicating the drive state of the robot 200 when passing through or near the singularity, and obtains the robot drive information; and a robot G-code generation unit 130 that generates a G-code corresponding to the robot 200 based on the robot drive information obtained by the robot drive information request unit 129, and inserts the generated G-code into the program.

[0134] According to this control device 100, the same effect as (1) can be achieved.

[0135] (6) The robot 200 of the present disclosure is a robot that operates according to the position teaching of the control device 100 capable of performing position teaching of the robot, and includes: a drive control unit 212 that drives the robot 200; a singularity determination unit 213 that determines whether it passes through a singularity or near a singularity when moving to the position taught by the control device 100, and when passing through a singularity or near a singularity, sends a notification of passing through a singularity or near a singularity to the control device 100; a singularity passing mode generation unit 215 that, when receiving an instruction to change the posture of the robot 200 from the control device 100, generates an action plan to pass through a singularity or near a singularity in the changed posture, and drives the drive control unit 212 to drive the robot 200 based on the generated action plan; and a robot drive information output unit 219 that, when receiving a request for robot drive information indicating the drive state of the robot when passing through a singularity or near a singularity from the control device 100, sends the robot drive information to the control device 100.

[0136] According to this robot 200, the same effect as that in (1) can be achieved.

Claims

1. A control system includes a control device capable of performing position teaching of a robot and a robot that operates according to the above-mentioned position teaching, characterized in that: The above-mentioned control device includes: An operation unit that teaches the position of the above-mentioned robot based on a user's operation; A posture change instruction unit that, when receiving a notification that the above-mentioned robot has moved to the taught position through a singularity or near a singularity from the above-mentioned robot, instructs the above-mentioned robot to change its posture based on a user's operation; A singularity passage action request unit that sends an instruction to change the posture to the above-mentioned robot so as to pass through the singularity or near the singularity in the posture instructed by the above-mentioned posture change instruction unit; A robot drive information request unit that requests the above-mentioned robot for robot drive information indicating the drive state of the above-mentioned robot when passing through the singularity or near the singularity, and obtains the above-mentioned robot drive information; and A robot G-code generation unit that generates a G-code corresponding to the action of the above-mentioned robot based on the above-mentioned robot drive information obtained by the above-mentioned robot drive information request unit, and inserts the generated above-mentioned G-code into a program, The above-mentioned robot includes: A drive control unit that drives the above-mentioned robot; A singularity determination unit that determines whether to pass through the singularity or near the singularity when moving to the position taught by the above-mentioned control device, and when passing through the singularity or near the singularity, sends a notification of passing through the singularity or near the singularity to the above-mentioned control device; A singularity passage mode generation unit that, when receiving an instruction to change the posture of the above-mentioned robot from the above-mentioned control device, generates an action plan to pass through the singularity or near the singularity based on the changed posture, and drives the above-mentioned drive control unit based on the generated above-mentioned action plan; And A robot drive information output unit that, when receiving a request for the above-mentioned robot drive information from the above-mentioned control device, sends the above-mentioned robot drive information to the above-mentioned control device, When the above-mentioned singularity passage mode generation unit does not pass through the singularity or near the singularity when moving the above-mentioned robot to the taught position, it drives the above-mentioned drive control unit in an orthogonal mode, and when passing through the singularity or near the singularity, it drives the joint axis of the wrist, the joint axis of the elbow, and any one of the joint axes for changing the orientation of the above-mentioned robot selected by the user in an axis mode.

2. The control system according to claim 1, characterized in that: The above-mentioned robot drive information includes the form indicating the posture of the above-mentioned robot, the rotation speed of the joint axis corresponding to the wrist of the above-mentioned robot, the set coordinate system, and the coordinate values indicating the position and posture of the above-mentioned robot.

3. The control system according to claim 1 or 2, characterized in that: The above-mentioned changed posture instructed by the above-mentioned posture change instruction unit changes the orientation of the wrist or elbow of the above-mentioned robot from upward to downward or from downward to upward, or changes the orientation of the above-mentioned robot from forward to backward or from backward to forward, or changes the orientation of the above-mentioned robot from left to right or from right to left.

4. A control device, characterized in that: The control device includes: An operation unit that teaches the position of a robot to be controlled based on a user's operation; A posture change instruction unit that, when receiving a notification of passing through a singularity or near a singularity when the robot moves to the taught position from the robot, instructs the robot to change its posture based on a user's operation; A singularity passing motion request unit that sends the instruction to change the posture to the robot so as to pass through the singularity or near the singularity in the posture instructed by the posture change instruction unit; A robot drive information request unit that requests the robot for robot drive information indicating the drive state of the robot when passing through the singularity or near the singularity, and obtains the robot drive information; and A robot G-code generation unit that generates a G-code corresponding to the robot based on the robot drive information obtained by the robot drive information request unit, and inserts the generated G-code into a program, The instruction to change the posture drives the robot in an orthogonal mode when the robot does not pass through the singularity or near the singularity when moving to the taught position, and drives any one of the joint axes of the wrist, the joint axis of the elbow, and the joint axis for changing the orientation of the robot selected by the user in an axis mode when passing through the singularity or near the singularity.

5. A robot that operates according to the above position teaching of a control device capable of teaching the position of a robot, characterized in that The robot includes: A drive control unit that drives the robot; A singularity determination unit that determines whether to pass through a singularity or near a singularity when moving to the position taught by the control device, and when passing through the singularity or near the singularity, sends a notification of passing through the singularity or near the singularity to the control device; A singularity passing mode generation unit that, when receiving an instruction to change the posture of the robot based on a user's operation from the control device, generates an action plan to pass through the singularity or near the singularity in the changed posture, and drives the robot by the drive control unit based on the generated action plan; And A robot drive information output unit that, when receiving a request for robot drive information indicating the drive state of the robot when passing through the singularity or near the singularity from the control device, sends the robot drive information to the control device, The singularity passing mode generation unit drives the drive control unit in an orthogonal mode when the robot does not pass through the singularity or near the singularity when moving to the taught position, and drives any one of the joint axes of the wrist, the joint axis of the elbow, and the joint axis for changing the orientation of the robot selected by the user in an axis mode when passing through the singularity or near the singularity.

Citation Information

Patent Citations

  • Connection system between robot and machine

    JP2001154717A

  • Device and method of controlling multi-joint robot

    JP1999245184A

  • Calibration and Programming of Robots

    US20160136805A1

  • Robot device and motor control device

    US20180099422A1

  • Hard Drive Non-Destructive Dismantling System

    US20180236459A1