Robot control device, robot control system, and computer program
The robot control system generates and manages paths to avoid interference by identifying high-risk sections and adjusting the robot's speed, ensuring safe operation and efficient testing by preventing collisions with surrounding objects.
Patent Information
- Application Number
- TW111104563
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-02-18
- Filing Date
- 2022-02-08
- Publication Date
- 2026-07-11
- Estimated Expiration
- 2042-02-07
AI Technical Summary
Existing technologies fail to ensure safe robot path generation by avoiding interference with surrounding objects, particularly when the three-dimensional model input by the operator is incorrect, leading to potential collisions with machine tools and other peripheral objects.
A robot control system that includes a robot path generation device and a control device, which generate and manage robot paths to avoid interference by determining high-risk sections and adjusting the robot's speed or stopping its movement to prevent collisions.
Ensures safe operation by reducing or stopping the robot's movement in sections where interference is likely, confirming the safety of the generated path and preventing collisions with surrounding objects, thus enabling efficient operation testing.
Smart Images

Figure IMG-2_DRAW_111104563-A0304-14-0001-1 
Figure IMG-2_DRAW_111104563-A0304-14-0002-2 
Figure IMG-2_DRAW_111104563-A0304-14-0003-3
Abstract
Description
Technical Field
[0001] Invention Field
[0002] This disclosure relates to a robot control device, a robot control system, and a computer program. Prior Technology
[0003] Background of the Invention
[0004] In the past, systems connecting machine tools and robots were constructed to automate the installation and removal of workpieces. For example, due to the confined interior of machine tools such as lathes and the difficulty of visual inspection, the robot's position teaching must avoid interference with surrounding objects such as machine tools when installing and removing workpieces. Therefore, a technology is disclosed that allows for the simple creation of robot programs that avoid interference between the robot and its surroundings (see, for example, Patent Document 1).
[0005] Using the technology in Patent Document 1, a three-dimensional model consisting of a robot and surrounding objects is created, and the robot's start and end positions are specified on the created three-dimensional model. In this way, a robot path that avoids interference with surrounding objects existing in the interval between the start and end positions is automatically calculated on the three-dimensional model. Therefore, interference-avoidance paths for the robot can be automatically generated regardless of the operator's skill level.
[0006] Prior technology documents
[0007] Patent documents
[0008] Patent Document 1: Japanese Patent Application Publication No. 2015-160277 Summary of the Invention Invention Summary
[0009] Simple Explanation of the Diagram
[0010] Figure 1 is a functional block diagram of the robot control system in the first embodiment.
[0011] Figure 2 is a diagram illustrating an example of a maneuverable ellipsoid for a robot.
[0012] FIG. 3 is a flowchart showing a program for a robot path confirmation process according to the first embodiment.
[0013] FIG. 4 is a functional block diagram of a robot control system according to the second embodiment.
[0014] FIG. 5 is a flowchart showing a program for a robot path confirmation process according to the second embodiment. Summary of the Invention Problems to be Solved by the Invention
[0015] However, in the technology of Patent Document 1, when the setting of the three-dimensional model input by the operator is incorrect, if the robot is made to move in the real machine environment according to the path generated based on the three-dimensional model, the robot may interfere with peripheral objects such as machine tools. Therefore, a technology is sought that can confirm the safety of the generated robot path while surely avoiding interference between the robot and peripheral objects.
[0016] An object of the present disclosure is to provide a technology that can confirm the safety of the generated robot path while surely avoiding interference between the robot and peripheral objects. Means for Solving the Problems
[0017] [[ID=2S]]One aspect of the present disclosure provides a robot control device including: an acquisition unit that acquires a robot path generated based on a three-dimensional model of a robot and its peripheral objects to avoid interference between the robot and the peripheral objects; an interference determination unit that determines, for each predetermined section, whether the possibility that the robot interferes with the peripheral objects is high when the robot is moved according to the robot path acquired by the acquisition unit; and a speed change unit that reduces the speed of the robot or stops the movement of the robot for a section determined by the interference determination unit to have a high possibility that the robot interferes with the peripheral objects.
[0018] Furthermore, an aspect of the present disclosure provides a robot control system including a robot path generation device and the aforementioned robot control device. The robot path generation device includes: a robot path generation unit that generates a robot path for avoiding interference between the robot and surrounding objects based on a three-dimensional model of the robot and its surrounding objects; and a forwarding unit that forwards the robot path generated by the robot path generation device to the robot control device as a robot program. The robot control device further includes: a program startup unit that starts the robot program forwarded by the forwarding unit; and a program management unit that manages the robot program started by the program startup unit to execute the determination of the interference determination unit and the speed change of the speed change unit.
[0019] Furthermore, an aspect of the present disclosure provides a computer program that causes a computer storing a robot program for controlling the operation of a robot to perform the following steps: obtaining a robot path generated based on a three-dimensional model of the robot and its surrounding objects to avoid interference between the robot and the surrounding objects; when moving the robot according to the robot path, determining for each predetermined section whether the possibility of the robot interfering with the surrounding objects is high; and for a section determined to have a high possibility of the robot interfering with the surrounding objects, reducing the speed of the robot or stopping the movement of the robot. Advantages of the Invention
[0020] According to the present disclosure, in a section where it is determined that there is a high possibility of interference between the robot and surrounding objects, that is, a section where the posture of the robot changes significantly, the moving speed of the robot in this section is reduced or set to 0, thereby enabling confirmation of the safety of the generated robot path while surely avoiding interference between the robot and surrounding objects. Therefore, during the operation test of the robot, the robot is only slowed down in necessary sections, thereby enabling confirmation of the safety of the generated robot path while surely avoiding interference and achieving an efficient operation test. Brief Description of the Drawings FIG. 1 is a functional block diagram of the robot control system according to the first embodiment. FIG. 2 is a diagram showing an example of the manipulability ellipsoid of the robot. FIG. 3 is a flowchart showing the procedure of the robot path confirmation process according to the first embodiment. FIG. 4 is a functional block diagram of the robot control system according to the second embodiment. FIG. 5 is a flowchart showing the procedure of the robot path confirmation process according to the second embodiment. Embodiments
[0021] Forms used to implement inventions
[0022] The following detailed description of the disclosed embodiments is based on the accompanying drawings. Furthermore, in the description of the second embodiment, the details of the components common to the first embodiment are omitted.
[0023] [First Implementation Form]
[0024] Figure 1 is a functional block diagram of the robot control system 1 according to a first embodiment. The robot control system 1 of this embodiment includes a robot path generation device 2 for generating robot paths and a robot control device 3 for controlling the movements of the robot 30.
[0025] In this embodiment, the robot path generation device 2 can be installed in a numerical control device (CNC) or a personal computer, etc. The aforementioned numerical control device controls the movement of a machine tool (not shown) located near the robot 30. The following describes an example of installing the robot path generation device 2 in a numerical control device.
[0026] The robot control system 1 of this embodiment uses a robot path generation device 2 (numerical control device) and a robot control device 3 that are communicatively connected to each other to perform linkage control of the movements of the machine tool and the robot 30.
[0027] The machine tool processes a workpiece (not shown) in response to machine tool control signals sent from the robot path generation device 2 (numerical control device). Machine tools include, but are not limited to, lathes, drilling machines, milling machines, grinding machines, laser processing machines, and injection molding machines.
[0028] Robot 30 operates under the control of robot control device 3, for example, performing a predetermined task on a workpiece being machined inside a machine tool such as a lathe. Robot 30 is, for example, a multi-joint robot, with tools mounted at the fore-end of its arm for gripping, machining, or inspecting the workpiece. The following describes the case where robot 30 is a 6-axis multi-joint robot, but it is not limited to this. Furthermore, the following describes the case where robot 30 is a 6-axis multi-joint robot, but the number of axes is not limited to this.
[0029] The robot path generation device 2 and the robot control device 3 are computers composed of the following hardware: a CPU (Central Processing Unit) and other arithmetic processing units; an auxiliary memory such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) storing various computer programs; a main memory such as RAM (Random Access Memory) storing data temporarily needed by the arithmetic processing units to execute the computer programs; an operating mechanism such as a keyboard for the operator to perform various operations; and a display mechanism such as a monitor for displaying various information to the operator. These robot path generation devices 2 and robot control devices 3 can send and receive various signals to each other via, for example, an Ethernet network (registered trademark).
[0030] First, the detailed structure of the robot path generation device 2 will be explained. The robot path generation device 2, through the aforementioned hardware configuration, realizes the machine tool control function of controlling the machine tool's movements and the function of generating the motion paths of the robot 30's control axes. Specifically, the robot path generation device 2 implements various functions such as the memory unit 21, robot path generation unit 22, forwarding unit 23, program input unit 24, analysis unit 25, robot program start command unit 26, and data transceiver unit 27.
[0031] The memory unit 21 includes a program memory unit, a mechanical coordinate value memory unit, a robot coordinate value memory unit, a robot teaching position memory unit, and a three-dimensional model memory unit, none of which are shown in the figure.
[0032] The program memory stores, for example, multiple numerical control programs created based on the operator's actions. More specifically, the program memory stores numerical control programs composed of multiple instruction blocks for controlling the machine tool's movements, or multiple instruction blocks for controlling the robot's movements. The numerical control programs stored in the program memory are described using known programming languages, such as G-code or M-code, for controlling the machine tool's movements.
[0033] The machine coordinates are stored in the machine coordinate memory unit. These machine coordinates represent the positions of various axes of the machine tool operating under the aforementioned numerical control program (i.e., the positions of the machine tool's tool rest or worktable, etc.). Furthermore, these machine coordinates are defined under the machine tool coordinate system, which uses a reference point determined at any location on or near the machine tool as its origin. The system is updated sequentially through a process not shown, so that the latest values of the machine coordinates, which change sequentially under the numerical control program, are stored in this machine coordinate memory unit.
[0034] Robot coordinate values are stored in the robot coordinate memory unit. These robot coordinate values represent the position and posture of the control points (e.g., the fore-end of the robot arm) of the robot 30 operating under the control of the robot control device 3; in other words, they represent the positions of each control axis of the robot 30. Furthermore, these robot coordinate values are defined in a robot coordinate system different from the machine tool coordinate system. The robot coordinate values obtained from the robot control device 3 are updated sequentially through a process not shown, so that the latest values of the robot coordinate values, which change sequentially under the numerical control program, are stored in this robot coordinate memory unit.
[0035] The robot teaching position memory unit stores the teaching positions of the robot 30, such as the start and end points, input by the operator. Specifically, it stores the teaching positions of the robot 30 input from a teach pendant or keyboard. The teaching positions of the robot 30 include robot coordinate values representing the positions of each control axis of the robot 30. These robot coordinate values are defined in a robot coordinate system different from the machine tool coordinate system.
[0036] The robot coordinate system is a coordinate system whose origin is a reference point determined at any position on or near the robot 30. Furthermore, although the following describes cases where the robot coordinate system differs from the machine tool coordinate system, it is not limited to this. The robot coordinate system can also be made consistent with the machine tool coordinate system. In other words, the origin or coordinate axis direction of the robot coordinate system can also be consistent with the origin or coordinate axis direction of the machine tool coordinate system.
[0037] Furthermore, the robot coordinate system can switch between two or more coordinate systems for different control axes. More specifically, in the numerical control program, the position and orientation of the robot 30's control points can be specified using orthogonal coordinates or individual axis coordinates. Alternatively, they can be specified using a tool coordinate system.
[0038] In terms of coordinate system for each axis, the position and orientation of the control points of the robot 30 are specified by a total of six real coordinate values, which are composed of the rotation angle values (J1, J2, J3, J4, J5, J6) of the six joints of the robot 30.
[0039] In orthogonal coordinate form, the position and orientation of the control point of robot 30 are specified by a total of 6 real coordinate values, which consist of 3 coordinate values (X, Y, Z) along the 3 orthogonal coordinate axes and 3 rotation angle values (A, B, C) around each orthogonal coordinate axis.
[0040] Therefore, in the per-axis coordinate system, since the rotation angle of each joint of the robot 30 is directly specified, the axis configuration of each arm or wrist of the robot 30, or the number of rotations of joints capable of rotating more than 360 degrees (hereinafter collectively referred to as the "shape of the robot 30"), is determined without discrepancy. In contrast, in the orthogonal coordinate system, since the position and posture of the control points of the robot 30 are specified by six coordinate values (X, Y, Z, A, B, C), the shape of the robot 30 cannot be determined without discrepancy. Therefore, in the robot numerical control program, the shape of the robot 30 can be specified by an integer value with a predetermined number of bits, namely the shape value P. Therefore, the position and orientation of the control points of robot 30, as well as the shape of robot 30, are represented by 6 coordinate values (J1, J2, J3, J4, J5, J6) in the coordinate system of each axis, and by 6 coordinate values and 1 shape value (X, Y, Z, A, B, C, P) in the orthogonal coordinate system. Furthermore, for convenience, the shape value P will also be referred to as the coordinate value below.
[0041] Furthermore, the tool coordinate system of robot 30 is a coordinate system that defines the position of the tool tip point (TCP) of robot 30 and the posture of the tool. It is the movement around the mechanical interface coordinate system (wrist flange surface) of robot 30, and the tool coordinate system is set by setting the offset value calculated from the origin of the mechanical interface coordinate system and the rotation angle around each coordinate axis.
[0042] The 3D model memory unit stores data about the robot system model, which is constructed by arranging the 3D shapes of the simulated robot 30 and peripheral objects such as the machine tool in a virtual space. Here, in addition to the machine tool, peripheral objects also include objects located within the operating range of the robot 30, such as workpieces that are processed by the machine tool, workpiece storage containers holding multiple workpieces, pallets, and safety barriers. The motion path generation device 2 of this embodiment generates motion trajectories of the robot 30's control axes that avoid interference on the robot system model by simulating the robot system model stored in the 3D model memory unit.
[0043] The robot path generation unit 22 generates the motion path of the control axis of the robot 30. More specifically, the robot path generation unit 22 generates a robot path that avoids interference between the robot 30 and its surrounding objects, based on the three-dimensional model of the robot 30 and its surrounding objects stored in the robot teaching position memory unit as the starting and ending points of the robot teaching position. The robot path generation unit 22 writes the generated robot path as a robot program into the forwarding unit 23.
[0044] When the robot path generated by the robot path generation unit 22 is written as a robot program, the forwarding unit 23 forwards the robot path as a robot program to the memory unit 31 of the robot control device 3.
[0045] The program input unit 24 reads the numerical control program from the program memory unit and inputs it into the analysis unit 25 one by one.
[0046] The analysis unit 25 analyzes the instruction category of each instruction block based on the numerical control program input from the program input unit 24, and outputs the analysis results to the machine tool control unit (not shown) and the robot program start instruction unit 26. More specifically, when the instruction category of the instruction block is an instruction for the machine tool, the analysis unit 25 sends it to the machine tool control unit; when the instruction category of the instruction block is an instruction for the robot 30, it outputs it to the robot program start instruction unit 26.
[0047] The machine tool control unit (not shown) generates machine tool control signals to control the machine tool's movements based on the analysis results sent from the analysis unit 25, and inputs these signals to the actuators driving various axes of the machine tool. The machine tool operates in response to the machine tool control signals input from the machine tool control unit, machining a workpiece (not shown). Furthermore, after controlling the machine tool's movements according to the numerical control program as described above, the machine tool control unit updates the machine coordinate values stored in the machine coordinate value memory unit using the latest machine coordinate values.
[0048] The robot program startup instruction unit 26 generates a robot program startup instruction at a predetermined time point for the robot program stored in the memory unit 21, for which the analysis unit 25 has determined the instruction category of the instruction area to be for the robot 30. This robot program startup instruction serves as a trigger to activate the robot program on the robot control device 3 side. The robot program startup instruction generated by the robot program startup instruction unit 26 is generated using, for example, G-code from a numerical control program. Furthermore, the robot program startup instruction generated by the robot program startup instruction unit 26 describes whether it is a path confirmation mode or a general operation mode without path confirmation. The robot program startup instruction unit 26 writes the generated robot program startup instruction into the data transceiver unit 27. Moreover, regarding the robot program analyzed by the analysis unit 25, the robot path generation unit 22 generates the robot path, which is then forwarded to the robot control device 3 side by the forwarding unit 23 and stored in the memory unit 31. Therefore, by sending the robot program start command from the data transceiver unit 27 to the robot control device 3, the robot program with the robot path corresponding to the robot program start command is called and started from the memory unit 31 on the robot control device 3.
[0049] The data transceiver unit 27 exchanges various commands or data with the data transceiver unit 32 of the robot control device 3. When the robot program start command is written by the robot program start command unit 26, the data transceiver unit 27 sends the robot program start command to the data transceiver unit 32 of the robot control device 3.
[0050] As will be described later, if the robot program start command is sent from the data transceiver 27 to the data transceiver 32, the program start unit 33 and the program management unit 34 on the robot control device 3 side will start the robot program that has been forwarded and stored in the memory unit 31 and has a specified robot path, and control the action of the robot 30 according to the started robot program.
[0051] Next, the structure of the robot control device 3 will be described in detail. As shown in Figure 1, the robot control device 3 uses the above-described hardware configuration to realize various functions such as the memory unit 31, data transceiver unit 32, program startup unit 33, program management unit 34, interference detection unit 35, override change unit 36, trajectory control unit 37, kinematic control unit 38, and servo control unit 39. Specifically, the robot control device 3 uses these memory unit 31, data transceiver unit 32, program startup unit 33, program management unit 34, interference detection unit 35, override change unit 36, trajectory control unit 37, kinematic control unit 38, and servo control unit 39 to control the movement of the robot 30 according to the instructions sent from the robot path generation device 2.
[0052] The memory unit 31 constitutes an acquisition unit, which acquires and memorizes the robot path generated by the robot path generation unit 22 on the robot path generation device 2 side and forwarded by the forwarding unit 23 as a robot program. The robot program memorized in the memory unit 31 is called and restarted by the program management unit 34, which will be described later.
[0053] The data transceiver unit 32 inputs the robot program start command generated by the robot program start command unit 26 on the robot path generation device 2 side and sent from the data transceiver unit 27 to the program start unit 33, which will be described later.
[0054] The program startup unit 33 inputs the robot program startup command from the data transceiver unit 32 to the program management unit 34 (described later). The program startup unit 33 starts the robot program under the management of the program management unit 34.
[0055] The program management unit 34 manages the robot program. Specifically, the program management unit 34 calls the robot program corresponding to the robot program start command input from the program start unit 33 from the robot programs stored in the memory unit 31 and starts and regenerates it. Furthermore, the program management unit 34 executes the commands described in the started robot program. When the started robot program is a robot program for path confirmation mode, the program management unit 34 causes the interference determination unit 35 (described later) and the speed change unit 36 to execute the speed change. When the started robot program is a robot program for general operation mode, the program management unit 34 sequentially notifies the trajectory control unit 37 of the movement commands of the robot 30's control axes.
[0056] The interference determination unit 35 moves the robot 30 according to the robot path of the robot program called and activated by the program management unit 34 in the robot program stored in the memory unit 31, and determines whether the robot 30 is likely to interfere with surrounding objects in each predetermined area. Specifically, the interference determination unit 35 determines that the robot 30 is likely to interfere with surrounding objects when at least one of the following conditions is met: near a shape change point, near a coordinate system switching point, or a large change in the operability ellipsoid of the robot 30. Furthermore, the setting of the interval is not particularly limited, and can be appropriately set for each fixed interval or according to the content of the robot program.
[0057] When robot 30 is near a shape change point, meaning before or after robot 30 changes shape by crossing a singularity, the interference determination unit 35 determines that robot 30 is highly likely to interfere with surrounding objects. For example, regarding a command position that would result in a robot posture with two or more axes of rotation aligned in a straight line, since the rotation angle of these axes cannot be determined unambiguously, robot 30 cannot be moved to such a position. Such uncontrollable position of robot 30 is called a singularity. During robot 30 instruction, the pointer of robot 30 is moved to avoid this singularity or its vicinity. Therefore, since robot 30 changes shape by crossing this singularity, it is presumed that interference with surrounding objects must be avoided; thus, in this case, the interference determination unit 35 determines that robot 30 is highly likely to interfere with surrounding objects. By analyzing the robot program, it can be determined whether the robot 30 is near a shape change point. For example, when the coordinate system is an orthogonal coordinate system, when the rate of change of the configuration (coordinate value) or rotation number (rotation angle) of each axis of the shape value P is above a predetermined threshold, it can be determined that it is near a shape change point.
[0058] When robot 30 is near a coordinate system change point, meaning before or after the robot 30's coordinate system switches between, for example, the individual axis coordinate system, the orthogonal coordinate system, and the tool coordinate system, the interference determination unit 35 determines that there is a high probability that robot 30 will interfere with surrounding objects. Here, the individual axis coordinate system, the orthogonal coordinate system, and the tool coordinate system of robot 30 are as described above. Since these coordinate system switching events of robot 30 presuppose that it must avoid interference with surrounding objects, the interference determination unit 35 determines that there is a high probability that robot 30 will interfere with surrounding objects in this situation.
[0059] When the maneuverability ellipsoid of robot 30 changes significantly, meaning that the rate of change of each major axis and / or minor axis of the maneuverability ellipsoid of robot 30 exceeds a predetermined threshold, the interference determination unit 35 determines that the possibility of robot 30 interfering with surrounding objects is high. Here, Figure 2 shows an example of maneuverability ellipsoids M1 and M2 of robot 30. Maneuverability ellipsoids M1 and M2 of robot 30 are ellipsoids obtained from the intrinsic value λ and intrinsic vector v of matrix A, calculated from the transpose of the Jacobi matrix J. The Jacobi matrix J represents the relationship between the joint velocities dθ / dt and finger velocities dx / dt of robot arm 30a of robot 30. The intrinsic vector v represents the magnitude of the axial direction of the maneuverability ellipsoid, and the square root of the intrinsic value λ represents the magnitude of the axial direction (major axis and minor axis of the ellipsoid). A large force can be output in the direction E, where the axial direction magnitude is larger, but in the direction D, where the axial direction magnitude is smaller, a large force cannot be output because it is close to the singularity pose of robot 30. Therefore, the robot 30 is generally controlled to move in the direction where it can output a large force. However, if the robot 30 is about to interfere with surrounding objects, it will be controlled to move in a direction different from the direction where it can output a large force. Therefore, when the rate of change of the major axis and / or minor axis of the operability ellipsoid of the robot 30 exceeds a predetermined threshold, the interference determination unit 35 determines that the robot 30 is highly likely to interfere with surrounding objects. Furthermore, the thresholds are appropriately set by conducting experiments in advance.
[0060] Returning to Figure 1, the oversight change unit 36 constitutes a speed change unit. In areas where the interference determination unit 35 determines a high probability of robot 30 interfering with surrounding objects, it reduces the speed of robot 30 or stops its movement (changing the speed to 0). Thus, the robot control device 3 of this embodiment possesses an oversight function, allowing adjustment of the robot 30's motion conditions for optimal motion control without editing the robot program. The aforementioned oversight function applies oversight (multiplier: oversight amount) to the motion conditions to control the robot 30's movement. Therefore, the oversight change unit 36 reduces the speed of robot 30 or stops its movement by reducing the speed oversight. By reducing the speed of robot 30 or stopping its movement in areas where it is determined to meet at least one of the following conditions—near a shape change point, near a coordinate system switching point, or where the change in the robot 30's operability ellipsoid is large—the safety of the generated robot path can be confirmed while effectively preventing interference between robot 30 and surrounding objects.
[0061] The trajectory control unit 37 calculates the time sequence data of the control points of the robot 30 in response to the movement command notified by the program management unit 34, and outputs it to the kinematic control unit 37.
[0062] The kinematic control unit 38 calculates the target angles of each joint of the robot 30 from the input time series data and outputs them to the servo control unit 39.
[0063] The servo control unit 39 generates a robot control signal for the robot 30 that realizes the target angle input from the kinematic control unit 38 by performing feedback control on each servo motor of the robot 30, and inputs it into the servo motor of the robot 30.
[0064] Next, the procedure for robot path confirmation processing executed by the robot control device 3 of this embodiment will be described. Figure 3 is a flowchart showing the procedure for robot path confirmation processing of this embodiment. Furthermore, this processing can be performed in advance by predicting the execution of the robot program, and since the robot program is stored in the memory unit 31, this processing can also be executed in advance.
[0065] In step S11, determine whether the robot program is a robot program used in path confirmation mode. If the determination is yes, proceed to step S12; if no, since the robot program is a robot program used in normal action mode, proceed to S15, set the moving speed of robot 30 to normal speed by speed override, and end this process.
[0066] In step S12, it is determined whether robot 30 meets at least one of the following criteria: near a shape change point, near a coordinate system switching point, or a large change in the operability ellipsoid. If this determination is yes, proceed to step S13, and set the movement speed of robot 30 to the path confirmation speed. Specifically, by overshooting the speed of robot 30, the speed of robot 30 is reduced or its movement is stopped, and the process ends. If this determination is no, proceed to step S14, and by overshooting the speed, the movement speed of robot 30 is set to a normal speed, and the process ends.
[0067] As explained above, based on this embodiment, if the range where the robot 30 is highly likely to interfere with its surroundings is determined, that is, the range where the robot 30's posture changes significantly, the robot 30's movement speed in that range is reduced by overdrive to a minimum or zero. This allows for both verification of the safety of the generated robot path and effective avoidance of interference between the robot 30 and its surroundings. Therefore, during the motion testing of the robot 30, the robot 30's movement is only slowed down in necessary ranges, thereby verifying the safety of the generated robot path and effectively avoiding interference, thus achieving efficient motion testing.
[0068] Furthermore, in recent years, to promote automation in machining sites, there has been a demand for a system that links the actions of machine tools that process workpieces with the actions of robots positioned near those machine tools. Generally, the programming languages used to control the machine tool and the robot program used to control the robot are different. Therefore, to link the machine tool's actions with the robot's actions, the operator must be proficient in both the numerical control program and the robot program. In contrast, according to this embodiment, since the robot program, including the robot path, is automatically generated using the numerical control program, the aforementioned effect can be achieved regardless of the operator's skill level.
[0069] [Second Implementation]
[0070] Figure 4 is a functional block diagram of the robot control system 1A according to the second embodiment. As shown in Figure 4, compared with the robot control system 1 of the first embodiment, the robot control system 1A of this embodiment is a part of the robot control device 3A that controls the movement of the robot 30, and its configuration is different from that of the robot control device 3 of the first embodiment. Specifically, unlike the first embodiment which changes the speed of the robot 30 by means of a override function, the robot control device 3A of this embodiment changes the speed of the robot 30 by means of the operation of a manual pulse generator. Therefore, the robot control device 3A of this embodiment includes an operation quantity analysis unit 42 that analyzes the operation quantity of the manual pulse generator 41, a forward / reverse control unit 43, an analysis unit 44, and a movement ratio change unit 45.
[0071] The manual pulse generator 41 is equipped with a manual handle that can be operated manually by the operator. For example, when the operator rotates the rotary manual handle, the manual pulse generator 41 outputs a pulse train signal corresponding to the number of rotations, and this signal is input to the operation quantity analysis unit 42 described later.
[0072] The operation quantity analysis unit 42 analyzes the operator's manual operation quantity on the manual handle based on the output of the manual pulse generator 41. The operation quantity analysis unit 42 outputs the analyzed manual operation quantity to the forward / reverse control unit 43, which will be described later. The manual operation quantity includes the number of rotations (rotation speed) in the forward rotation direction and the number of rotations (rotation speed) in the reverse rotation direction.
[0073] The forward / reverse movement control unit 43, in response to the manual operation quantity analyzed by the operation quantity analysis unit 42, causes the robot 30 to move forward or backward on the robot path forwarded from the forwarding unit 23 and stored in the memory unit 31, and performs tracking actions. That is, this forward / reverse movement control unit 43 replaces the movement speed command obtained by the analysis unit 44 from the robot program with a movement speed corresponding to the manual operation quantity analyzed by the operation quantity analysis unit 42. Specifically, when the manual operation quantity analyzed by the operation quantity analysis unit 42 is a positive rotation direction, the forward / reverse movement control unit 43 outputs a signal corresponding to that rotation number (rotation speed) to the adder 46, thereby instructing the trajectory control unit 37 to replace the movement speed command obtained from the robot program with a movement speed corresponding to the manual operation quantity, so that the robot 30 moves forward and performs tracking actions. Furthermore, when the manual operation quantity analyzed by the operation quantity analysis unit 42 is in the reverse rotation direction, the forward / reverse control unit 43 outputs a signal corresponding to the number of rotations (rotation speed) to the adder 46, thereby notifying the trajectory control unit 37 to replace the movement speed command obtained from the analysis of the robot program with the movement speed corresponding to the manual operation quantity, so that the robot 30 moves in reverse and performs a tracking action.
[0074] The analysis unit 44 analyzes the robot program initiated by the program startup unit 33 under the management of the program management unit 34. Specifically, the analysis unit 44 outputs the movement speed command obtained from analyzing the robot program to the aforementioned adder 46.
[0075] The movement ratio change unit 45 constitutes a speed change unit. By reducing the movement ratio of the tracking motion speed of the robot 30, it reduces the movement speed of the robot 30 or stops its movement. Therefore, by reducing the speed of the robot 30 or stopping its movement within a range that is determined to be near a shape change point, near a coordinate system switching point, or where the change in the operability ellipsoid of the robot 30 is large or small, the safety of the generated robot path can be confirmed while effectively preventing interference between the robot 30 and its surroundings.
[0076] Next, the procedure for robot path confirmation processing executed by the robot control device 3A of this embodiment will be described. Figure 5 is a flowchart showing the procedure for robot path confirmation processing of this embodiment. Furthermore, this processing can be performed in advance by predicting the execution of the robot program, and since the robot program is stored in the memory unit 31, this processing can also be executed in advance.
[0077] In step S21, it is determined whether the robot is in a tracking action along the robot path. If the determination is yes, proceed to step S22; if no, since the robot is not in a tracking action along the robot path but in a normal action, proceed to step S25, set the robot 30's moving speed to a normal speed, and end this process.
[0078] In step S22, it is determined whether robot 30 meets at least one of the following criteria: near a shape change point, near a coordinate system switching point, or a large change in the operability ellipsoid. If this determination is yes, proceed to step S23, and set the movement speed of robot 30 to the path confirmation speed. Specifically, by reducing the movement ratio of robot 30, the speed of robot 30 is reduced or the movement of robot 30 is stopped, and this process ends. If this determination is no, proceed to step S24, set the movement speed of robot 30 to a normal speed, and this process ends.
[0079] As explained above, according to this embodiment, if the range where the robot 30 is highly likely to interfere with its surroundings is determined, that is, the range where the robot 30's posture changes significantly, and the movement ratio is reduced, the robot 30's movement speed corresponding to the manual operation amount of the manual pulse generator 41 in that range is reduced or reduced to 0. This allows the safety of the generated robot path to be confirmed while effectively avoiding interference between the robot 30 and its surroundings. Therefore, during the robot 30's motion testing, the robot 30's movement is slowed down only in the necessary range, thereby confirming the safety of the generated robot path and effectively avoiding interference to achieve efficient motion testing. Furthermore, since a manual handle (manual pulse generator) can be used to make the program run forward and backward during automatic operation, the robot 30 can be actually moved while easily checking for errors in the program. In other words, similar to the first embodiment, according to this embodiment, since the robot program, including the robot path, is automatically generated by the numerical control program, the above-mentioned effects can be obtained regardless of the operator's skill level.
[0080] This disclosure is not limited to the above embodiments and may include various modifications and variations. For example, the above embodiments illustrate the implementation of this disclosure by a robot control system 1, 1A equipped with a robot path generation device 2 and robot control devices 3, 3A, but this disclosure is not limited to this. It can also be implemented by a computer program that causes a computer to execute the various functions of the robot path generation device 2 and robot control devices 3, 3A.
[0081] Furthermore, in each of the above embodiments, when the robot 30 is near a shape change point, near a coordinate system switching point, or when the change in the operable ellipse is large, the movement speed of the robot 30 is changed to a predetermined path confirmation speed, but is not limited to this. For example, when it is determined that the robot 30 is near a shape change point, the movement speed of the robot 30 may be reduced to a first path confirmation speed; when it is determined that it is near a coordinate system switching point, the movement speed may be reduced to a second path confirmation speed different from the first path confirmation speed; and when it is determined that the change in the operable ellipse is large, the movement speed may be reduced to a third path confirmation speed different from both the first and second path confirmation speeds.
[0082] 1,1A: Robot Control System
[0083] 2: Robot path generation device
[0084] 3,3A: Robot control device
[0085] 21, 31: Memory Department
[0086] 22: Robot Path Generation Department
[0087] 23: Forwarding Department
[0088] 24: Program Input Section
[0089] 25,44: Analysis Department
[0090] 26: Robot Program Startup Command Section
[0091] 27: Document Receiving and Dispatch Department
[0092] 30: Robot
[0093] 30a: Robotic arm
[0094] 32: Data Receiving and Dispatching Department (Acquisition Department)
[0095] 33: Program Startup Section
[0096] 34: Program Management Department
[0097] 35: Interference Detection Unit
[0098] 36: Overdrive Change Department (Speed Change Department)
[0099] 37: Track Control Department
[0100] 38: Kinematic Control Department
[0101] 39: Servo Control Department
[0102] 41: Manual Pulse Generator
[0103] 42: Operational Volume Analysis Department
[0104] 43: Forward / Reverse Traffic Control Department
[0105] 45: Moving Average Change Department
[0106] 46: Adder
[0107] A: Matrix
[0108] CNC: Numerical Control System
[0109] CPU: Central Processing Unit
[0110] dx / dt: finger velocity
[0111] dθ / dt: Joint velocity
[0112] HDD: Hard Disk Drive
[0113] J: Jacobi Matrix
[0114] M1, M2: Manipulable ellipsoids
[0115] RAM: Random Access Memory
[0116] S11~S15, S21~S25: Steps
[0117] SSD: Solid State Drive
[0118] v: intrinsic vector
[0119] λ: intrinsic value
Claims
1. A robot control device comprising: an acquisition unit that acquires a robot path generated based on a three-dimensional model of the robot and its surrounding objects, which avoids interference between the robot and the surrounding objects; an interference determination unit that, when moving the robot according to the robot path acquired by the acquisition unit, determines whether the likelihood of the robot interfering with the surrounding objects is high in each predetermined interval; and a speed change unit that, for intervals where the interference determination unit determines that the likelihood of the robot interfering with the surrounding objects is high, reduces the speed of the robot or stops the movement of the robot, wherein the interference determination unit determines that the likelihood of the robot interfering with the surrounding objects is high when the robot changes its form by crossing a singularity, and the singularity is a singularity in which the position of the robot cannot be controlled due to the robot's posture having two or more rotation axes arranged in a straight line.
2. The robot control device of claim 1, wherein the aforementioned interference determination unit determines that the possibility of the aforementioned robot interfering with the aforementioned surrounding objects is higher during the switching period of the switching point of the coordinate system including the aforementioned robot than before and after the aforementioned switching period.
3. A robot control device comprising: an acquisition unit that acquires a robot path generated based on a three-dimensional model of the robot and its surrounding objects, which avoids interference between the robot and the surrounding objects; an interference determination unit that, when moving the robot according to the robot path acquired by the acquisition unit, determines whether the likelihood of the robot interfering with the surrounding objects is high in each predetermined interval; and a speed change unit that, for intervals where the interference determination unit determines that the likelihood of the robot interfering with the surrounding objects is high, reduces the speed of the robot or stops the movement of the robot, wherein the interference determination unit determines that the likelihood of the robot interfering with the surrounding objects is higher during a switching point that includes a switching of the robot's coordinate system than before or after the switching period.
4. The robot control device according to any one of claims 1 to 3, wherein the aforementioned interference determination unit determines that the robot is likely to interfere with the aforementioned surrounding objects when the rate of change of the major axis and / or minor axis of the operable ellipsoid of the aforementioned robot is above a predetermined threshold.
5. A robot control device comprising: an acquisition unit that acquires a robot path generated based on a three-dimensional model of the robot and its surrounding objects, which avoids interference between the robot and the surrounding objects; an interference determination unit that, when moving the robot according to the robot path acquired by the acquisition unit, determines whether the likelihood of the robot interfering with the surrounding objects is high in each predetermined interval; and a speed change unit that, for intervals where the interference determination unit determines that the likelihood of the robot interfering with the surrounding objects is high, reduces the speed of the robot or stops the movement of the robot, wherein the interference determination unit determines that the likelihood of the robot interfering with the surrounding objects is high when the rate of change of each major axis and / or minor axis of the operable ellipse of the robot is above a predetermined threshold.
6. The robot control device according to any one of claims 1 to 3 and 5, wherein the aforementioned speed change unit reduces the speed of the robot or stops the movement of the robot by reducing the speed overshoot of the robot.
7. The robot control device according to any one of claims 1 to 3 and 5, further comprising: an operation quantity analysis unit that analyzes manual operation quantity from the output of a manual pulse generator; and a forward / reverse movement control unit that, in response to the manual operation quantity analyzed by the operation quantity analysis unit, causes the robot to move forward and / or backward on the robot path obtained by the acquisition unit and perform a tracking action; and the speed change unit reduces the speed of the robot or stops the movement of the robot by reducing the movement ratio of the tracking action speed of the robot.
8. A robot control system comprising: a robot control device as described in any one of claims 1 to 3 and 5; and a robot path generation device for generating the robot path; the robot path generation device comprising: a robot path generation unit that generates a robot path that avoids interference between the robot and the surrounding objects based on a three-dimensional model of the robot and its surrounding objects; and a forwarding unit that forwards the robot path generated by the robot path generation unit as a robot program to the robot control device; the robot control device further comprising: a program initiation unit that initiates the robot program forwarded by the forwarding unit; and a program management unit that manages the robot program initiated by the program initiation unit, thereby executing the determination by the interference determination unit and the speed change by the speed change unit.
9. A computer program for executing a computer that stores a robot program for controlling the actions of a robot: an acquisition step, acquiring a robot path generated based on a three-dimensional model of the robot and its surroundings to avoid interference between the robot and the surroundings; an interference determination step, determining, when moving the robot according to the robot path, whether the likelihood of the robot interfering with the surroundings is high for each predetermined interval; and a speed change step, reducing the speed of the robot or stopping the movement of the robot in intervals where the likelihood of the robot interfering with the surroundings is high, wherein in the interference determination step, the likelihood of the robot interfering with the surroundings is high when the robot changes shape by crossing a singularity, and the singularity is a singularity in which the position of the robot cannot be controlled due to the robot posture having two or more rotation axes arranged in a straight line.
10. A computer program for instructing a computer storing a robot program for controlling the actions of a robot to execute: an acquisition step, acquiring a robot path generated based on a three-dimensional model of the robot and its surroundings to avoid interference between the robot and the surroundings; an interference determination step, determining, for each predetermined interval, whether the likelihood of the robot interfering with the surroundings is high when the robot is moved according to the robot path; and a speed change step, for intervals where the likelihood of the robot interfering with the surroundings is high, reducing the speed of the robot or stopping the movement of the robot, wherein in the interference determination step, during a switching point including a switching of the coordinate system of the robot, the likelihood of the robot interfering with the surroundings is determined to be higher than before or after the switching period.
11. A computer program for instructing a computer storing a robot program for controlling the actions of a robot to execute: an acquisition step, acquiring a robot path generated based on a three-dimensional model of the robot and its surroundings to avoid interference between the robot and the surroundings; an interference determination step, determining, for each predetermined interval, whether the likelihood of the robot interfering with the surroundings is high when the robot is moved according to the robot path; and a speed change step, for intervals where the likelihood of the robot interfering with the surroundings is high, reducing the speed of the robot or stopping the movement of the robot, wherein in the interference determination step, the likelihood of the robot interfering with the surroundings is high when the rate of change of each major axis and / or minor axis of the operable ellipse of the robot exceeds each predetermined threshold.