SIMULATION DEVICE FOR CALCULATING THE OPERATING STATE OF A ROBOT DEVICE

The simulation device addresses the lack of speed and acceleration data in robotic simulations by calculating and displaying these states at arbitrary positions, facilitating program adjustments for improved robotic operation.

DE112022006489T5Pending Publication Date: 2024-12-24FANUC LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
DE112022006489
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-04-19
Publication Date
2024-12-24

AI Technical Summary

Technical Problem

Existing simulation devices for robotic systems fail to provide accurate information on the operating state, such as speed and acceleration, at positions other than the tool center, making it difficult to assess whether these conditions are too fast or too slow for the robotic device or workpiece.

Method used

A simulation device that simulates the operation of a robotic system using a three-dimensional model, sets object points on the model's surface, calculates the velocity and acceleration at these points, and displays this information.

Benefits of technology

Enables the calculation and display of operating states like speed and acceleration at arbitrary positions, allowing operators to adjust the operation program for optimal performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

This simulation device is equipped with a unit for performing a simulation of the operation of a robotic device using a three-dimensional model. The simulation device includes: a unit for setting object points for polygons that represent the surface of the three-dimensional model; and a unit for calculating the position of all object points at a predetermined time. The simulation device is also equipped with a unit for calculating the operating state, in order to calculate at least one variable—velocity and acceleration—of the object points based on their positions at any given time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical area

[0001] The present invention relates to a simulation device for calculating an operating state of a robot device. State of the art

[0002] In a robot device with a robot and a tool, the robot can change the position and orientation of the tool by changing its position and orientation. A robot device can perform various types of work while changing the position and orientation of a tool (e.g., Japanese Unexamined Patent Publication No. 2014-14876A). The position and orientation of a robot are changed based on an operation program. In the operation program, a teaching point is set at which the position and orientation of the robot are defined. The teaching point can be taught by driving a real robot.

[0003] A simulation device that simulates the operation of a robot to create a learning point for the robot is known (e.g., Japanese Unexamined Patent Publication No. H3-52003A). With a simulation device, an operator can confirm the operation of the robot device using an image. In particular, a simulation device that displays a moving image of a robot device is known (e.g., Japanese Unexamined Patent Publication No. 2008-100315A). By simulating the operation of the robot device with the simulation device, the operator can create or correct an operation program without controlling an actual robot device. Citation listPatent literature PTL 1: Unexamined Japanese Patent Publication No. 2014-14876A PTL 2: Unexamined Japanese Patent Publication No. H3-52003A PTL 3: Unexamined Japanese Patent Publication No. 2008-100315A Summary of the inventionTechnical problem

[0004] It is known from the prior art that a simulation device calculates a speed or acceleration at which a tool center moves as the operating state of a robot device. Alternatively, it is known that a rotational speed and rotational acceleration of each drive axis of the robot are calculated as the operating state of the robot device. However, there is a problem that an operating state such as a speed at a position other than the tool center is unknown. The problem is that the operator cannot even know whether the speed or the like is too fast or too slow at a predetermined position in a robot device or a workpiece.In particular, no actual robot device is driven in the simulation device, and therefore there is a problem that it is difficult to know the operating state such as the speed of the robot, a hand, or the workpiece. Solution to the problem

[0005] One aspect of the present disclosure is a simulation device configured to simulate the operation of a robot device including a robot and a tool. The simulation device includes a simulation execution unit configured to simulate the operation of the robot device and the operation of a workpiece through a three-dimensional model. The simulation device includes an object point setting unit configured to set an object point for a plurality of elements constituting a surface of a three-dimensional model. The simulation device includes a position calculation unit configured to calculate positions at predetermined times for all object points during a period in which the simulation is performed.The simulation device includes an operating state calculation unit configured to calculate a variable of at least one of a group of a velocity and an acceleration of the object point based on a position of the object point at each time. The simulation device includes a display part configured to display information regarding at least one variable calculated by the operating state calculation unit. Advantageous effects of the invention

[0006] According to one aspect of the present disclosure, it is possible to provide a simulation device configured to calculate an operating state at a predetermined position of a robot device or a workpiece. Brief description of the drawings [ Fig. 1] Fig. 1 is a schematic diagram of a robot system in one embodiment. [ Fig. 2] Fig. 2 is a block diagram of the robot system in this embodiment. [ Fig. 3] Fig. 3 is an image of a robot device and a workpiece displayed on a display part of the simulation device. [ Fig. 4] Fig. 4 is a flowchart of the control of the simulation device in the embodiment. [ Fig. 5] Fig. 5 is a perspective view of a workpiece model describing a polygon in this embodiment. [ Fig. 6] Fig. 6 is a simulation image showing the movement of an object point in a workpiece model. Description of the embodiments

[0007] The simulation device in one embodiment is described with reference to the Fig. 1 to 6. The simulation device of the present embodiment is an offline device configured to simulate the operation of the robot device, including the robot and a work tool attached to the robot, as well as the operation of the workpiece. The simulation device of the robot device of the present embodiment can calculate an operating state such as a speed at any position of the robot device and the workpiece.

[0008] Fig. 1 is a schematic view of the robot system in the present embodiment. Fig. 2 is a block diagram of the robot system in the present embodiment. With respect to the Fig. 1 and Fig. 2, the robot system comprises a robot device 9 and a simulation device 5. The robot device 9 comprises a tool 2 configured to perform a predetermined work on a workpiece 81, and a robot 1 configured to move the tool 2.

[0009] The robot 1 of the present embodiment is an articulated-arm robot with a plurality of jointed parts. Specifically, the robot 1 of the present embodiment is a vertical articulated-arm robot. The robot 1 includes a plurality of movable components. The components of the robot 1 are configured to rotate about the respective drive axes.

[0010] The robot 1 comprises a base part 14 attached to a installation surface and a rotatable base 13 carried by the base part 14. The rotatable base 13 rotates about a first drive axis J1 with respect to the base part 14. The robot 1 comprises an upper arm 11 and a lower arm 12. The lower arm 12 rotates about a second drive axis J2 with respect to the rotatable base 13. The upper arm 11 rotates about a third drive axis J3 with respect to the lower arm 12. In addition, the upper arm 11 rotates about a fourth drive axis J4 which runs parallel to an extension direction of the upper arm 11.

[0011] The robot 1 includes a wrist 15 supported by the upper arm 11. The wrist 15 rotates about a fifth drive axis J5. The wrist 15 includes a flange 16 that rotates about a sixth drive axis J6. The tool 2 is attached to the flange 16. In the present embodiment, the base 14, the rotatable base 13, the lower arm 12, the upper arm 11, the wrist 15, and the tool 2 correspond to the constituent parts of the robot device 9. The robot 1 of the present embodiment includes six drive axes, but is not limited to this configuration. A robot that can change its position and orientation at its own discretion may also be employed.

[0012] The tool 2 in the present embodiment is a hand that grasps the workpiece 81 by suction. The workpiece 81 of the present embodiment is a rectangular cuboid box. The robot device 9 of the present embodiment grasps the workpiece 81 placed on a support 82 and transports it to a target position.

[0013] The tool 2 of the present embodiment includes a rod-shaped member 26 attached to the flange 16 of the robot 1, and a suction member 27 attached to the tip of the rod-shaped member 26. The rod-shaped member 26 is attached to the flange 16 so as to extend in a direction perpendicular to the drive axis J6. The rod-shaped member 26 serves as a support for the suction member 27. The suction member 27 includes a plurality of suction cups configured to adsorb the surface of the workpiece 81.

[0014] The tool attached to the robot 1 is not limited to this embodiment, and any end effector may be used in response to the work performed by the robot device. For example, a tool configured for welding, a tool configured for applying a sealing material to a surface of a workpiece, or the like may be used.

[0015] A robot coordinate system 71, which is a coordinate system with a fixed position and a fixed direction of the coordinate axes, is set in the robot device 9. The robot coordinate system 71 is called a world coordinate system. In the robot device 9, a flange coordinate system 72 with an origin at the flange 16 of the wrist 15 is set. The flange coordinate system 72 is a coordinate system configured to move and rotate together with the flange 16. Furthermore, a tool coordinate system 73 with an origin at any position of the tool 2 is set in the robot device 9. The origin of the tool coordinate system 73 of the present embodiment is set to the tool center point. The tool coordinate system 73 is a coordinate system configured to move and rotate together with the tool 2.The relative position and orientation of the tool coordinate system 73 with respect to the flange coordinate system 72 are constant and predetermined.

[0016] The position of robot 1 corresponds, for example, to the position of the origin of the tool coordinate system 73 in the robot coordinate system 71. The orientation of robot 1 corresponds to the direction of the tool coordinate system 73 with respect to the robot coordinate system 71.

[0017] The robot 1 includes a robot drive device 23 configured to change the position and orientation of the robot 1. The robot drive device 23 includes a plurality of drive motors 22 configured to drive components of the robot, such as an arm and a wrist. In the present embodiment, the plurality of drive motors 22 are arranged corresponding to the plurality of drive axes J1 to J6. The robot device 9 includes a tool drive device 21 configured to drive the tool 2. The tool drive device 21 includes, for example, a motor for driving a tool, a cylinder, and an electromagnetic valve. The tool drive device 21 of the present embodiment drives the suction member 27 by air pressure. The tool drive device 21 includes a pump and an electromagnetic valve for decompressing the space within the suction pads.

[0018] The robot device 9 includes a controller 4 configured to control the robot 1 and the tool 2. The controller 4 includes a control body 40 configured to perform the control and a teaching handset 37 for an operator to operate the control body 40. The control body 40 includes an arithmetic processing device (computer) with a central processing unit (CPU) as the processor. The arithmetic processing device includes a random access memory (RAM) and a read-only memory (ROM) connected to the CPU via a bus.

[0019] The teaching handset 37 is connected to the control body 40 via a communication device. The teaching handset 37 includes an input part 38 for inputting information about the robot 1 and the tool 2. The input part 38 is equipped with input elements such as a keyboard and a rotary knob. The teaching handset 37 includes a display part 39 configured to display information about the robot 1 and the tool 2. The display part 39 may include any display capable of displaying an image. For example, the display part 39 may be configured with a display panel such as a liquid crystal display panel or an organic electroluminescence (EL) display panel.

[0020] A pre-created operating program 46 for operating the robot 1 and the tool 2 is input into the controller 4. Alternatively, the operator can set the teaching points of the robot 1 by operating the teaching pendant 37 and driving the robot 1. The controller 4 can create the operating program 46 for the robot 1 and the tool 2 based on the teaching points.

[0021] The control body 40 includes an operation control unit 43 configured to control the operation of the robot 1 and the tool 2. The operation control unit 43 sends an operation command to a robot drive part 45 for driving the robot 1 based on the operation program 46. The robot drive part 45 includes an electrical circuit configured to drive the robot drive device 23. The robot drive part 45 supplies power to the robot drive device 23 based on the operation command. The operation control unit 43 sends an operation command to a tool drive part 44 for driving the tool 2 based on the operation program 46. The tool drive part 44 includes an electrical circuit configured to drive the tool drive device 21. The tool drive part 44 supplies power to the tool drive device 21 based on the operation command.

[0022] The control body 40 includes a memory 42 configured to store information about the control of the robot 1 and the tool 2. The memory 42 may comprise a non-transferable storage medium capable of storing information. For example, the memory 42 may be configured using a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium. The operating program 46 is stored in the memory 42.

[0023] The operation control unit 43 corresponds to a processor controlled by the operation program 46. The operation control unit 43 is configured to read the information stored in the memory 42. The processor reads the operation program 46 and executes a control defined in the operation program 46, thereby functioning as the operation control unit 43.

[0024] The robot 1 includes a rotational position detector 19 configured to detect the position and orientation of the robot 1. In the present embodiment, the rotation angle sensor 19 is mounted on the drive motor 22 of each of the drive axes. The position and orientation of the robot 1 are determined based on the output of the plurality of rotation angle sensors 19.

[0025] The simulation device 5 of the present embodiment arranges a three-dimensional model of the robot 1, a three-dimensional model of the tool 2, and a three-dimensional model of the workpiece 81 in an identical virtual space, and performs a simulation of the operation of the robot device 9 and the operation (movement) of the workpiece 81.

[0026] The simulation device 5 of the present embodiment includes an arithmetic processing device (computer) having a CPU as a processor. The simulation device 5 includes a memory 53 configured to store any information related to the simulation of the robot device 9. The memory 53 may be configured by a non-transferable storage medium capable of storing information. For example, the memory 53 may include a storage medium such as a volatile memory, a non-volatile memory, a magnetic storage medium, or an optical storage medium. A simulation program for performing the simulation of the robot device 9 is stored in the memory 53.

[0027] The simulation device 5 includes an input part 51 for inputting information related to the simulation of the robot device 9. The input part 51 is configured with a control element such as a keyboard, a mouse, and a rotary knob. The simulation device 5 includes a display part 52 configured to display information related to the simulation of the robot device 9. The display part 52 may include any display capable of displaying an image. For example, the display part 52 may be configured with a display panel such as a liquid crystal display panel or an organic electroluminescence (EL) display panel. The display part 52 displays an image of a model of the robot device 9 and an image of a model of the workpiece 81. If the simulation device includes a touchscreen display panel, this display panel functions as both the input part and the display part.

[0028] The three-dimensional shape data 50 required for the simulation is input to the simulation device 5. The three-dimensional shape data 50 includes three-dimensional shape data of a robot, a tool, and a workpiece for performing the simulation of the robot device. For example, design data output from a CAD (Computer Aided Design) device can be used as the three-dimensional shape data 50. The three-dimensional shape data of each element in the present embodiment is generated by polygons as a plurality of elements representing the surface of the element. In the present embodiment, shape data is generated in which triangular polygons are arranged along the surface of the element. The polygon functions as a micro-element whose surface is divided. The element is not limited to this shape; any polygonal shape, such as a quadrangle, can also be used.The three-dimensional shape data 50 are stored in a memory 53.

[0029] Fig. Figure 3 shows an example of an image when the simulation displayed on the display part is performed. With reference to the Fig. 2 and Fig. 3, the simulation device 5 of the present embodiment generates a moving image for simulating the operation of the robot device 9. The simulation device 5 displays the operations of the robot device 9 and the workpiece 81 in an animation.

[0030] The simulation device 5 includes a processing unit 54 configured to perform arithmetic processing for the simulation. The processing unit 54 includes a model generation unit 55 configured to generate a robot device model 9M including a robot model 1M, a tool model 2M, and a workpiece model 81M based on the three-dimensional shape data 50 of the robot 1, the tool 2, and the workpiece 81.

[0031] The model generation unit 55 generates a model of an element to be placed in virtual space based on the three-dimensional shape data 50. The model generation unit 55 of the present embodiment generates a three-dimensional model of each element using polygons. Since the three-dimensional shape data 50 is generated using polygons in the present embodiment, the model generation unit 55 can easily generate a three-dimensional model from the three-dimensional shape data 50.

[0032] On the other hand, the three-dimensional shape data can be generated from a model that does not use polygons, such as a solid model. Alternatively, a curved line or curved surface can be defined in the three-dimensional shape data by a mathematical expression. In this case, the model generation unit generates a three-dimensional model in which the surface of the element is configured by polygons based on the information contained in the three-dimensional shape data.

[0033] The model generation unit 55 generates a model for each constituent element for the robot model 1M. The model generation unit 55 generates the robot model 1M, which includes a base part model 14M, a rotary base model 13M, a lower arm model 12M, an upper arm model 11M, a wrist model 15M, and a flange model 16M. The model generation unit 55 generates the tool model 2M, which includes a rod element model 26M and a suction element model 27M.

[0034] The model generating unit 55 generates the workpiece model 81M based on the three-dimensional shape data 50 of the workpiece 81. It should be noted that the model generating unit 55 can acquire three-dimensional shape data of a peripheral device arranged around the robot and generate a model of the peripheral device arranged around the robot.

[0035] The processing unit 54 includes a simulation execution unit 56 configured to simulate the operation of the robot device 9. The simulation execution unit 56 simulates the operation of the robot device 9 and the operation (movement) of the workpiece 81 through a three-dimensional model. In the virtual space, the robot coordinate system 71, the tool coordinate system 73, and the like are set as coordinate systems.

[0036] The simulation execution unit 56 calculates the positions and orientations of the component model of robot 1, the component model of tool 2, and the workpiece model 81 based on the operation program 46. The simulation execution unit 56 arranges the robot model 1M, the tool model 2M, and the workpiece model 81M in a three-dimensional virtual space. The simulation execution unit 56 changes the position and orientation of the component model of robot device 9 based on the operation program 46. For example, when the flange model 16M rotates, the workpiece model 81M moves in the direction indicated by the arrow 65.

[0037] The processing unit 54 includes a display control unit 60 configured to control an image to be displayed on the display part 52. The display control unit 60 generates a three-dimensional image displayed on the display part 52. The display control unit 60 of the present embodiment generates an image of a model when viewed from a predetermined viewpoint. For example, the display control unit 60 generates an image 64 when the model of the robot device 9M and the model of the workpiece 81M are projected onto a predetermined plane. The display control unit 60 displays the generated image 64 on the display part 52. In addition to the model of the part, arbitrary information can be displayed on the image 64.For example, the display control unit 60 may display a coordinate system such as the robot coordinate system 71 and the tool coordinate system 73.

[0038] The processing unit 54 includes an object point setting unit 57 configured to set an object point with respect to a polygon as an element representing the surface of a three-dimensional model. In the present embodiment, the polygon has a polygonal shape. The object point setting unit 57 can set object points at all corners of the polygon in the polygon.

[0039] The processing unit 54 includes a position calculation unit 58 configured to calculate positions at predetermined times for all object points during a period in which the simulation is performed. The processing unit 54 includes an operating state calculation unit 59 configured to calculate a variable of at least one of the velocity and acceleration of the object point based on the position of the object point at each time. The display control unit 60 displays information regarding a variable of at least one selected from a group of the velocity and acceleration of the object point on the display part 52.The processing unit 54 includes a specific point setting unit 61 configured to set a specific point in response to an operator input to the robot device 9 or the workpiece 81.

[0040] The processing unit 54 corresponds to a processor controlled according to a simulation program. The processor reads the simulation program and executes control defined in the program, thereby functioning as the processing unit 54. The model generation unit 55, the simulation execution unit 56, the object point setting unit 57, the position calculation unit 58, the operating state calculation unit 59, the display control unit 60, and the specific point setting unit 61 correspond to a processor controlled according to the simulation program. The processor executes the control defined in the program and functions as each unit.

[0041] With reference to the Fig. 1 and Fig. 3, in the present embodiment, the robot apparatus 9 lifts the workpiece 81 from the holder 82 and conveys the workpiece 81 to a predetermined target position. The tool 2 includes the rod-shaped member 26, which is elongated. One end part of the rod-shaped member 26 is fixed to the flange 16, and the suction member 27 for receiving the workpiece 81 is arranged at the other end part. The tool 2 is arranged, for example, so that the rod-shaped member 26 extends in the horizontal direction. When the flange 16 or the rotary base 13 rotates, a moving distance of the tool 2 can be increased. For example, the rotary base 13 rotates about the drive axis J1, and the flange 16 rotates about the drive axis J6, whereby the workpiece 81 can be conveyed a long distance.

[0042] When the workpiece 81 is conveyed by rotating the flange 16, the operating state, such as the speed and acceleration, of the workpiece 81 is not easy to grasp. There is a case where a speed limit or an acceleration limit is set for the workpiece at the time of movement. However, in the simulation device of the related art, the operating state, such as the speed and acceleration, in a predetermined part of the workpiece is not known. Alternatively, the operating state, such as the speed and acceleration, in a predetermined part of the robot device is not known. Therefore, the simulation device of the present embodiment performs control for calculating the operating state at a predetermined point for the workpiece and the robot device.

[0043] Fig. Fig. 4 is a flowchart showing the control of the simulation device in the present embodiment. Referring to the Fig. 2 to 4, in step 91, the model generation unit 55 generates a three-dimensional model of the constituent parts of the robot device and the workpiece based on the three-dimensional shape data 50. In this case, the model generation unit 55 generates the model of the robot device 9M and the model of the workpiece 81M.

[0044] In step 92, the processing unit 54 determines whether or not the operator has specified a specific point in the robot device model 9M or the workpiece model 81M. The specific point is one or more points located at arbitrary positions in at least one point selected from a group of the robot device model 9M and the workpiece model 81M. The specific point can be specified from an image by the operator operating the input part 51 of the simulation device 5.

[0045] If the operator does not specify a specific point in step 92, control proceeds to step 93. In step 93, the object point setting unit 57 automatically sets an object point in the three-dimensional model. In this case, the object point setting unit 57 sets the object points for all three-dimensional models. The object point corresponds to a point at which an operating state such as velocity and acceleration is calculated in a subsequent process.

[0046] Fig. 5 is a perspective view of a workpiece model for describing object points set in the workpiece model. In this example, the object point setting unit 57 sets the object point for the workpiece model 81M. Since the workpiece 81 has a rectangular parallelepiped shape, the workpiece model 81M is formed in a rectangular parallelepiped shape. The workpiece model 81M includes polygons 87a to 87f, each having a triangular, planar shape. The object point setting unit 57 sets object points 84 at all corners of the polygons 87a to 87f. In this example, the object points 84 are set at the corners of the triangles of the polygons 87a to 87f. The object point setting unit 57 controls the setting of such object points on all polygons constituting the robot model 1M and the work tool model 2M.

[0047] Next, in step 94, the simulation execution unit 56 performs a simulation of the operation of the robot device model 9M based on the operation program 46. The simulation execution unit 56 changes the position and orientation of the components of the robot device model 9M. In the virtual space, the robot model 1M is driven, and the workpiece model 81M moves. The display control unit 60 displays the image 64 of the model on the display part 52 when viewed from a predetermined viewpoint.

[0048] The position calculation unit 58 calculates the positions at predetermined times for all object points 84 during a period in which the simulation of the robot device is performed. For example, assume that the time at which the drive of the robot device is started is 0. The position calculation unit 58 calculates the positions of the object points 84 at predetermined time intervals. As a predetermined time interval, for example, a time interval during which a simulation image is displayed can be set. Alternatively, the time for calculating the positions of the object points can be set based on a control cycle of the robot. Alternatively, the operator can specify the times for detecting the positions of the object points 84 and input the specified times into the simulation device. The position calculation unit 58 can calculate the positions of the object points 84 at these times.

[0049] The simulation execution unit 56 calculates the position and orientation of each model. For example, the simulation execution unit 56 calculates the positions and orientations of the constituent elements such as the rotary base model 13M, the forearm model 12M, and the wrist model 15M. Then, the position calculation unit 58 in the robot coordinate system 71 calculates the position and orientation of the robot model 1M. For example, the position calculation unit 58 calculates the position of the origin of the tool coordinate system 73 and the orientation of the tool coordinate system 73 in the robot coordinate system 71.

[0050] The relative position of the workpiece model 27M with respect to the suction element model 81M can be specified. Alternatively, the position calculation unit 58 may calculate a relative position of the workpiece model 81M with respect to the suction element model 27M during a period in which the simulation is performed. The position calculation unit 58 calculates the position in the tool coordinate system 73 of each of the object points 84 specified in the workpiece model 81M. In other words, the coordinate value of the tool coordinate system 73 is calculated for each of the object points 84. Alternatively, the position calculation unit 58 may calculate the positions of the object points 84 using the flange coordinate system 72 instead of the tool coordinate system 73.

[0051] The position calculation unit 58 calculates the positions of the object points 84 with the coordinate values ​​of the robot coordinate system 71 based on the position and orientation of the robot model 1M and the positions of the object points 84 in the tool coordinate system. The position calculation unit 58 calculates the positions of all object points 84 specified in the workpiece model 81M. Similarly, the position calculation unit 58 calculates the positions of all object points specified in the work tool model 2M and the robot model 1M in the robot coordinate system 71. The position calculation unit 58 calculates the positions of all object points at each specified time.

[0052] Fig. Figure 6 shows an image of a model of the robot device to describe the calculation of the position of the object point. In Fig. 6, the object point 84 is shown at a corner of the workpiece model 81M. The robot model 1M is driven, and the workpiece model 81M moves. The object point 84 moves in the direction indicated by the arrow 66 in accordance with the operation of the robot model 1M. At this time, the position calculation unit 58 sets a movement point MP indicating the position of the object point 84 at each predetermined time.

[0053] The position calculation unit 58 calculates the position of each of the motion points MP using the coordinate values ​​of the robot coordinate system 71. The memory 53 stores the position of each of the motion points MP. The position calculation unit 58 can perform this calculation for the object points specified for the polygons of all models.

[0054] The position calculation unit 58 may calculate the position of the object point during all periods during which the simulation is performed. Alternatively, the position calculation unit 58 may calculate the position of the object point within a range of predetermined times. For example, the position calculation unit 58 may calculate the position of the object point 84 during a period from the moment the workpiece 81 is gripped until the workpiece 81 reaches the target position.

[0055] With reference to Fig. 4, the operating state calculation unit 59 calculates the operating state of each object point in step 95. The operating state calculation unit 59 calculates a variable of at least one selected from the group of the velocity and acceleration of the object point. In the present embodiment, the operating state calculation unit 59 calculates both the velocity and acceleration of the object point. The operating state calculation unit 59 can calculate the velocity and acceleration of the object point based on the position of the object point at each time point.

[0056] With reference to Fig. 6, for example, the operating state calculation unit 59 can calculate the speed of the object point 84 based on the moving distance and the moving time (time interval) between the adjacent moving points MP (object points 84). The operating state calculation unit 59 can calculate the acceleration based on the speed difference between the adjacent moving points MP (object points 84) and the moving time (time interval). The operating state calculation unit 59 can calculate at least one of a group of speed and acceleration for the object points set in all models.

[0057] It should be noted that the operating state calculated by the operating state calculation unit 59 is not limited to speed and acceleration, and any variable related to the operation can be calculated. For example, the jerk of the object point can be calculated. Alternatively, if the object point moves in a curved line, the radius of curvature of the moving path can be calculated.

[0058] In the next step 96, the display control unit 60 displays information about the speed and acceleration of the object point on the display section 52. In this case, the display control unit 60 displays the calculated speeds and accelerations of all object points. Numerical values ​​of the respective quantities can be displayed in time series to represent the operating status. Alternatively, a graph can also be displayed for each variable.

[0059] The display control unit 60 can calculate information about at least one variable based on the calculated speed and acceleration. For example, the display control unit 60 can display a variable of at least one quantity selected from the group of maximum speed and maximum acceleration. The display control unit 60 can display the time and position of the object point when the maximum speed or maximum acceleration occurs. For example, the position and time of the object point of the workpiece at which the maximum speed in the workpiece occurs can be displayed.

[0060] A comparative example is a simulation device configured to calculate a center of gravity position of a tool attached to a robot and perform a simulation. However, there is a case where it is difficult to calculate the center of gravity position of the tool. Alternatively, for a hand with a claw or the like, the center of gravity position changes when the claw is driven. With such a tool, it is difficult to perform a simulation taking the center of gravity position into account. On the other hand, in the simulation device of the present embodiment, the object point is set on the surface of an arbitrary element by using the polygon at the time of creating the animation. Then, the operating state of the element is calculated based on the position of the object point. Therefore, the operating state of an arbitrary element can be calculated by a simple method.

[0061] In the above embodiment, the workpiece was primarily described as an example of an object whose operating state is to be detected, but the embodiment is not limited to this. The operating state, such as speed and acceleration, can be calculated for any element of the robot system.

[0062] In other words, in terms of Fig. 3. In the present embodiment, the models of the constituent elements of the robot, such as the upper arm model 11M and the lower arm model 12M in the robot model 1M, are generated by polygons. The tool model 2M is formed from a polygon. Therefore, the object point can be set to any constituent element in the robot device model 9M. It is possible to calculate the operating state, such as the speed, for an object point of any element. For example, the maximum speed and maximum acceleration can be calculated in the suction element model 27M.

[0063] For example, a servo gun for spot welding can be used as a tool. When the servo gun rotates rapidly around the drive axis J6, the maximum speed and acceleration of any part of the servo gun as the servo gun rotates are unknown. Alternatively, the position and timing of the servo gun at which the maximum speed and acceleration occur are unknown. However, in the simulation device of the present embodiment, it is possible to obtain information about the speed and acceleration as the servo gun moves.

[0064] In the above embodiment, if the operator does not specify the specific point, the object point setting unit sets the object point at the corners of all polygons of the three-dimensional model. In other words, the object point is set on the polygons of the models of all components of the robot device and the workpiece in the robot system, but the embodiment is not limited to this. The operator can specify the range in which the object point is set.

[0065] For example, the operator can specify an item for setting the object point in advance by operating the input part. The object point setting unit can set the object point at the item specified by the operator. For example, the operator can specify a workpiece, a hand, and an upper arm as the items for setting the object point. The object point setting unit can set the object points to all corners of the polygons of the workpiece, hand, and upper arm.

[0066] Alternatively, the operator can predetermine the range of a part of the element for setting the object point. For example, the operator can specify the range of the tip end of the work tool. Such a range can be specified, for example, in a simulation image by the operator operating the input part. The object point setting unit can set the object point for the polygon that lies within the range specified by the operator.

[0067] In the above embodiment, the object point is placed at the corner of the polygon as an element where the surface is divided, but the embodiment is not limited to this. The object point can be placed anywhere within the polygon. For example, the object point can be placed at the position of the polygon's centroid. Alternatively, the object point can be placed at a center point of each side of the polygon.

[0068] Then there is a case where the position of an element whose operating state, such as speed and acceleration, is to be detected is determined. In this case, the operator can specify this position in advance as a specific point instead of the object point described above. For example, the operator can specify the specific point in the image displayed on the display part.

[0069] With reference to Fig. 5, for example, by operating the input part 51, the operator can set the center point of a bottom surface of the workpiece model 81M displayed on the display part 52 as the specific point 85. The specific point 85 can be set to any point independent of the polygons 87a to 87f. Alternatively, the operator can set the positions connected to the polygons 87a to 87f as specific points. For example, the operator can set a point of a corner of the polygon as the specific point.

[0070] As in Fig. 4, when the operator specifies the specific point 85 in step 92, the controller proceeds to step 97. In step 97, the specific point setting unit 61 sets the specific point 85 designated by the operator for the robot device model 9M or the workpiece model 81M.

[0071] The simulation execution unit 56 performs a simulation of the robot device 9. The position calculation unit 58 calculates the position of the specific point 85 using the coordinate values ​​of the robot coordinate system 71. For example, the position calculation unit 58 calculates the position of the specific point 85 specified in the workpiece model 81M in the tool coordinate system 73. In other words, the position calculation unit 58 calculates the relative position of the specific point 85 with respect to the position of the robot using the coordinate values ​​of the tool coordinate system 73. The position calculation unit 58 calculates the position of the specific point 85 in the robot coordinate system 71 based on the coordinate value of the specific point 85 in the tool coordinate system 73 and the position and orientation of the robot 1.The position calculation unit 58 repeats the calculation of the position of the specific point 85 at predetermined times during a period in which the simulation is performed.

[0072] Next, in step 98, the operating state calculation unit 59 calculates at least one variable selected from a group of the speed and acceleration of the specific point 85 based on the position of the specific point 85 at the predetermined times. In this example, the operating state calculation unit 59 calculates the speed and acceleration of the specific point.

[0073] In the next step 99, the display control unit 60 displays information about the speed and acceleration of the specified point on the display part 52. For example, the speed and acceleration are displayed in time series at specified time intervals.

[0074] As described above, the simulation device of the present embodiment can calculate and display the operating state at the point designated by the operator.

[0075] In the simulation device of the present embodiment, the operator can acquire information about the velocity and acceleration of the object point or information about the velocity and acceleration of the specific point. Then, the operator can determine whether the velocity or acceleration of a component such as the workpiece or the tool is low. For example, if the velocity or acceleration of the workpiece and the work tool is low, it is possible to modify the work program to increase the speed or acceleration at which the robot is driven. This can shorten the work time.On the other hand, when the speed or acceleration of the workpiece, tool, or the like is large, it is possible that the change in the operation program is performed to reduce the speed or acceleration at which the robot is driven.

[0076] For example, there is a case where the acceleration that can be applied to the workpiece is predetermined. As a result of running the simulation, there is a case where the maximum acceleration of the object point of the workpiece exceeds a predetermined upper limit. In this case, the operator can reduce the acceleration of the robot's operation so that the maximum acceleration of the workpiece decreases, or change the robot's movement route.

[0077] As described above, the offline simulation device of the present embodiment can calculate information about the operating state of the robot device or the operating state of the workpiece from the animation using the three-dimensional model. The simulation device of the present embodiment can automatically set an object point using a polygon used for creating an animation and easily calculate an operating state such as a speed and acceleration of the object point. Alternatively, the simulation device of the present embodiment can detect a specific point designated by the operator at any position of any element and easily calculate an operating state such as a speed and acceleration of the specific point.

[0078] The operator can modify the operating program based on the operating conditions of the robot device, the workpiece, and the like. Then, the controller 4 of the robot device 9 can move the robot device 9 with the corrected operating program.

[0079] The processing unit of the simulation device of the present embodiment is configured differently from the arithmetic processing device of the robot controller, but the embodiment is not limited to this. The robot controller may perform the function of the simulation device. In other words, the processor of the arithmetic unit of the controller may function as the processing unit of the simulation device. In this case, the display part of the teaching handheld device functions as the display part of the simulation device. The display part of the teaching handheld device may display an animation of the robot device model. If the teaching handheld device includes an arithmetic processing device with a processor, the teaching handheld device may also perform the function of the simulation device. In other words, the processor of the teaching handheld device may function as the processing unit of the simulation device.

[0080] The above embodiments can be combined as desired. In each of the above-described controls, the order of steps can be changed as appropriate, as long as the functions and actions are not changed. In each of the above-described drawings, identical or equivalent parts are designated by identical reference numerals. The above embodiments are examples and do not limit the invention. The embodiment includes modifications of the embodiments described in the claims. Reference character list 1 robot 1M robot model 2 tools 2M tool model 4 Control 5 Simulation device 9 Robot device 9M robot device model 51 Input part 52 Display section 54 processing unit 55 Unit for creating the model 56 Unit for running the simulation 57 Unit for setting the object point 58 Unit for calculating the position 59 Unit for calculating the operating state 60 Unit for controlling the display 61 Unit for setting the specific point 81 Workpiece 81M workpiece model 84 Object point 85 Specific point 87a to 87f Polygon QUOTES CONTAINED IN THE DESCRIPTION

[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature

[0000] JP 2014-14876A [0002, 0003] JP 3-52003A

[0003] JP 2008-100315A

[0003]

Claims

[1] A simulation device configured to simulate the operation of a robotic device comprising a robot and a tool, the simulation device comprising: a simulation executing unit configured to perform simulation of an operation of a robot device and an operation of a workpiece through a three-dimensional model; an object point setting unit configured to set object points for a plurality of elements constituting a surface of a three-dimensional model; a position calculating unit configured to calculate positions at predetermined times for all object points during a period in which the simulation is performed; an operating state calculating unit configured to calculate a variable of at least one selected from a group of a velocity and an acceleration of the object point based on a position of the object point at each time point; and a display part configured to display information about at least one variable calculated by the operating state calculation unit. [2] The simulation device according to claim 1, wherein the element has a polygonal shape, and the object point setting unit is configured to set the object point at all corners of the element. [3] The simulation device according to claim 1 or 2, wherein the operating state calculating unit is configured to calculate at least one of a group of maximum speed and maximum acceleration of the object point. [4] The simulation device according to claim 1, comprising a specific point setting unit configured to set a specific point in a robot device or a workpiece in response to an operator's input, the position calculating unit configured to calculate a position of the specific point at a predetermined time during a period in which the simulation is performed, and the operation state calculating unit configured to calculate a variable of at least one of a speed and an acceleration of the specific point.

Citation Information

Patent Citations

  • 2008-100315A

  • 3-52003A

  • 2014-14876A