Information processing method, robot system, article manufacturing method, information processing device, program, and recording medium
Patent Information
- Application Number
- JP2022011329
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-03-05
- Filing Date
- 2022-01-27
- Publication Date
- 2025-01-30
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing industrial robot teaching methods require manual visual confirmation of virtual work switching, which hinders user workability and efficiency in simulating robot movements.
An information processing device that simulates virtual robot behavior and work in a virtual environment, allowing for the configuration of linked conditions to enhance user interaction and prevent collisions.
Improves user workability by enabling easy simulation of robot movements without visual confirmation, facilitating efficient and collision-free operation planning.
Smart Images

Figure 00000000_0000_ABST 
Figure 00000000_0001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a technology related to robots.
Background Art
[0002] In factories, there are operations such as kitting operations for sorting unpacked workpieces onto trays, etc., and assembly operations for fitting or inserting supplied workpieces into other workpieces to assemble articles. In these operations, industrial robots are utilized and factory automation is implemented.
[0003] In the kitting operations and assembly operations performed by industrial robots, there is a conveyance operation of holding a workpiece by the robot and conveying the workpiece to a specific position. It is necessary for the user to teach the position where the robot holds the workpiece and the operation of the robot from that position. When giving such teaching, it is necessary to ensure that the robot does not contact peripheral equipment, etc.
[0004] In Patent Document 1, as a technology related to offline teaching, it is described that when simulating the operation of a virtual robot, it is possible to set whether to display a virtual workpiece.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0006] However, simply switching between displaying and not displaying the virtual workpiece held by the virtual robot only allows the user to confirm the behavior of the virtual workpiece by visually observing the image, and there has been a demand for improvement in the workability of the user related to the simulation.
[0007] The present invention aims to improve the user's workability in simulations. [Means for solving the problem]
[0008] An information processing device according to a first embodiment of the present invention comprises an information processing unit capable of simulating the behavior of a virtual robot and a virtual workpiece in a virtual environment, and the information processing unit is capable of performing a process to set linkage conditions for linking the virtual workpiece with a predetermined part of the virtual robot.
[0009] A second aspect of the present invention is an information processing method in which an information processing unit simulates the behavior of a virtual robot and a virtual workpiece in a virtual environment, characterized in that the information processing unit executes a process to set linkage conditions for linking the virtual workpiece with a predetermined part of the virtual robot. [Effects of the Invention]
[0010] According to the present invention, it is possible to improve the user's workability in simulations. [Brief explanation of the drawing]
[0011] [Figure 1] This is an explanatory diagram of the robot system according to the first embodiment. [Figure 2] (a) is an explanatory diagram of the robot according to the first embodiment. (b) is an explanatory diagram of the robot hand according to the first embodiment. [Figure 3] (a) is an explanatory diagram of the information processing device according to the first embodiment. (b) is a block diagram of the information processing device according to the first embodiment. [Figure 4] This is an explanatory diagram of the virtual space simulated by the information processing device according to the first embodiment. [Figure 5] This is a flowchart of the information processing method according to the first embodiment. [Figure 6] This is an explanatory diagram showing an example of a display image according to the first embodiment. [Figure 7] It is an explanatory diagram showing an example of a display image according to the first embodiment. [Figure 8] It is an explanatory diagram showing an example of a display image according to the first embodiment. [Figure 9] It is an explanatory diagram showing an example of a display image according to the first embodiment. [Figure 10] It is a schematic diagram for explaining the calculation of interlocking a virtual work with a virtual robot hand in the first embodiment. [Figure 11] (a) and (b) are explanatory diagrams showing an example of a list of targets set for a virtual work in the first embodiment. [Figure 12] It is an explanatory diagram showing an example of the operation of a virtual robot obtained by processing in the first embodiment. [Figure 13] It is an explanatory diagram showing an example of a display image according to the first embodiment. [Figure 14] It is a flowchart showing an example of the processing according to the first embodiment. [Figure 15] It is an explanatory diagram showing an example of a display image according to the second embodiment. [Figure 16] It is an explanatory diagram showing an example of a display image according to the second embodiment. [Figure 17] It is an explanatory diagram showing an example of a display image according to the second embodiment.
Mode for Carrying Out the Invention
[0012] Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
[0013] (First Embodiment) FIG. 1 is an explanatory diagram of a robot system 1000 according to the first embodiment. The robot system 100 includes a robot 100, a control device 200, and an information processing device 300.
[0014] Robot 100 is an industrial robot used to manufacture goods. Robot 100 is a manipulator and has a robot arm 101 and a robot hand 102, which is an example of an end effector. Robot 100 is positioned and mounted on, for example, a frame 500.
[0015] Around the robot 100, multiple workpieces W11, W12, W13, W14, multiple workpieces W21, W22, and a wall 50 are positioned and arranged on the frame 500. Each of the workpieces W11 to W14 is a first workpiece, and each of the workpieces W21 and W22 is a second workpiece.
[0016] Each workpiece W11 to W14 is placed on a workpiece support base 501 positioned on a frame 500. This positions each workpiece W11 to W14 relative to the frame 500. The robot 100 then assembles one of the workpieces W11 to W14 onto either workpiece W21 or W22, thereby manufacturing the product.
[0017] Figure 2(a) is an explanatory diagram of the robot 100 according to the first embodiment. Figure 2(b) is an explanatory diagram of the robot hand 102 according to the first embodiment. The robot arm 101 is, for example, a vertically articulated robot arm. The fixed end 1011, which is the base end of the robot arm 101, is fixed to the frame 500. The robot hand 102 is attached to the free end 1012, which is the tip of the robot arm 101. The robot arm 101 has a base 110 and a plurality of links 111 to 116. These base 110 and links 111 to 116 are connected by joints J1 to J6, so that each link 111 to 116 can rotate at each joint J1 to J6. In the first embodiment, the base 110 is the fixed end 1011 and the link 116 is the free end 1012.
[0018] Each joint J1 to J6 is equipped with a motor (not shown) as a power source. The motors (not shown) provided in each joint J1 to J6 drive each joint J1 to J6, i.e., each link 111 to 116, allowing the robot 100 to assume various postures.
[0019] The robot hand 102 is configured to hold each workpiece W11 to W14. In the first embodiment, as shown in Figure 2(b), the robot hand 102 has a hand body 120 including a drive unit and a plurality of fingers 121 supported by the hand body 120, and is configured to grip each workpiece W11 to W14. The plurality of fingers 121 are linearly driven by the drive unit of the hand body 120 in directions toward and toward each other. In Figure 2(b), arrows indicate the directions toward which the plurality of fingers 121 move toward each other. Although the description focuses on the case where the robot hand 102 is a gripping type, it is not limited to this, and may also be a suction type.
[0020] The control device 200 shown in Figure 1 controls the robot 100 based on the robot's operation information, i.e., teaching data that represents the robot program. The control device 200 acquires the teaching data from the information processing device 300. The teaching data includes command information and teaching point information. In the first embodiment, the control device 200 operates the robot 100 based on the teaching data, causing the robot 100 to hold one of the multiple workpieces W11 to W14. The control device 200 then causes the robot 100 to assemble that workpiece onto one of the multiple workpieces W21 and W22 to manufacture an item.
[0021] The information processing device 300 is composed of a computer and functions as a teaching device, i.e., a simulator. In the first embodiment, the information processing device 300 generates teaching data by computer simulation, i.e., offline teaching. The teaching data generated by the information processing device 300 is output to the control device 200. The method of outputting the teaching data to the control device 200 is not particularly limited. For example, the teaching data generated by the information processing device 300 may be output to the control device 200 by wired communication, wireless communication, or via a storage device (not shown).
[0022] Figure 3(a) is an explanatory diagram of the information processing device 300 according to the first embodiment. The information processing device 300 comprises a device body 301, a display 302 which is an example of a display device connected to the device body 301, and a keyboard 303 and a mouse 304 which are examples of input devices connected to the device body 301. The following description will use the case where the information processing device 300 is a general-purpose computer, such as a desktop PC, as an example, but is not limited to this. The information processing device 300 may be a general-purpose computer such as a laptop PC, tablet PC, or smartphone, or it may be a teaching pendant, or it may be a computer dedicated to a simulator. Furthermore, the information processing device 300 may be incorporated into the control device 200. That is, the control device 200 may have the functionality of a simulator.
[0023] Figure 3(b) is a block diagram of the information processing device 300 according to the first embodiment. The main body 301 of the information processing device 300 includes a CPU (Central Processing Unit) 311, which is a processor. The main body 301 also includes a ROM (Read Only Memory) 312, a RAM (Random Access Memory) 313, and an HDD (Hard Disk Drive) 314 as storage units. The main body 301 also includes a recording disk drive 315 and an I / O 320, which is an input / output interface. The CPU 311, ROM 312, RAM 313, HDD 314, recording disk drive 315, and I / O 320 are connected to each other via a bus 310 so that they can communicate with one another.
[0024] ROM312 is a non-temporary storage device. ROM312 stores the basic program that is read by the CPU311 when the computer starts up. RAM313 is a temporary storage device used for the calculation processing of the CPU311. HDD314 is a non-temporary storage device that stores various data, such as the results of the calculation processing of the CPU311. In the first embodiment, program 350 is stored in HDD314. Program 350 is application software. By executing program 350, the CPU311 functions as an information processing unit capable of simulating the behavior of virtual robots and virtual workpieces in a virtual environment, as described later.
[0025] The recording disk drive 315 can read various data and programs recorded on the recording disk 340. The I / O 320 functions as an external interface. The display 302, keyboard 303, and mouse 304 are connected to the I / O 320. The display 302, under the control of the CPU 311, displays images that serve as the user interface, as well as images that reflect information entered by the user using the keyboard 303 and mouse 304. Teaching data, including information on teaching points, is created by the CPU 311, which executes the program 350.
[0026] In the first embodiment, the non-temporary recording medium readable by the computer is the HDD 314, and the program 350 is recorded on the HDD 314, but this is not the only embodiment. The program 350 may be recorded on any recording medium that is a non-temporary recording medium readable by the computer. Examples of recording media that can be used to supply the program 350 to the computer include flexible disks, optical disks, magneto-optical disks, magnetic tapes, non-volatile memory, etc.
[0027] Figure 4 is an explanatory diagram of the virtual space R simulated by the information processing device 300 according to the first embodiment. The CPU 311 defines the virtual space R shown in Figure 4 as a virtual environment. Virtual objects in the virtual space R are defined by three-dimensional model data, such as CAD data, and in Figure 4, for convenience, they are visualized and illustrated as structures.
[0028] The virtual objects defined in the virtual space R shown in Figure 4 are described below. In the virtual space R, a virtual frame 500A and a virtual robot 100A are defined. The virtual frame 500A and the virtual robot 100A are defined by three-dimensional model data that simulates the frame 500 and robot 100 shown in Figure 1. The virtual robot 100A is defined on the virtual frame 500A. The virtual robot 100A includes multiple parts, such as a virtual base 110A, multiple virtual links 111A to 116A, and a virtual robot hand 102A. Each virtual link 111A to 116A is defined to be rotatable at each joint J1A to J6A so that the virtual robot 100A can perform the same operations as the robot 100 shown in Figure 1. The virtual robot hand 102A is an example of a virtual end effector, and in the first embodiment, it is also an example of a predetermined part.
[0029] In the virtual space R, virtual workpieces W11A-W14A, W21A, and W22A are defined around the virtual robot 100A on the virtual stand 500A. These are 3D model data that simulates the workpieces W11-W14, W21, and W22 shown in Figure 1. Each virtual workpiece W11A-W14A is a first virtual workpiece, and each virtual workpiece W21A and W22A are second virtual workpieces. Each virtual workpiece W11A-W14A is defined to be placed on the virtual support base 501A. In addition, a virtual wall 50A, which is 3D model data that simulates a wall 50, is defined on the virtual stand 500A in the virtual space R. The CPU 311 simulates the operation of the virtual robot 100A to assemble one of the virtual workpieces W11A-W14A onto one of the virtual workpieces W21A or W22A. The virtual space R shown in Figure 4 is displayed as a still image or video on the display screen 3020 of the display 302 shown in Figure 3(a).
[0030] Figure 5 is a flowchart of the information processing method according to the first embodiment. The CPU 311 executes steps S100 to S1000 based on the program 350. As a result, the CPU 311 generates teaching data, which is a robot program, and outputs the generated teaching data to the control device 200.
[0031] First, in step S100, when the CPU 311 starts executing the program 350, it displays an image that will serve as the user interface on the display screen 3020 of the display 302.
[0032] The images displayed on the display screen 302 of the display 302 will now be described. The images displayed on the display 302 are controlled by the CPU 311. Figure 6 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment. The CPU 311 functions as a simulator by executing the program 350 and displays the image 400 shown in Figure 6 on the display screen 302 of the display 302 as an interface between the user (operator) and the information processing device 300. The image 400 displayed on the display 302 consists of three display units: a list display unit 401, a setting display unit 402, and a 3D display unit 403.
[0033] The list display unit 401 displays a list of objects set by the user in a hierarchical structure. By creating a hierarchical structure between objects, that is, by creating parent-child relationships between objects, changes in the position of a parent object can be reflected in the child objects.
[0034] In the list display unit 401, groups 411 to 414 are created by the user to correspond to the real space shown in Figure 1. Group 411 is a group of objects representing robot 100. Group 412 is a group of objects representing workpieces W11 to W14. Group 413 is a group of objects representing workpieces W21 and W22. Group 414 is a group of objects representing wall 50.
[0035] Additionally, the list display section 401 displays several buttons 415, 416, and 417. Button 415 is labeled "Add Object". Button 416 is labeled "Add Teaching Point". Button 417 is labeled "Delete".
[0036] The settings display unit 402 is a display unit that serves as an interface for the user to input information about virtual objects, teaching points, and operating programs, and the display can be switched using three tabs 4021, 4022, and 4023. By selecting each tab 4021, 4022, or 4023, the user can input information about virtual objects, teaching points, and operating programs, respectively. In the example in Figure 6, tab 4021 for inputting information about virtual objects is named "Object Settings". Also in the example in Figure 6, tab 4022 for inputting information about teaching points is named "Teaching Point Settings". Also in the example in Figure 6, tab 4023 for inputting information about operating programs is named "Program Creation".
[0037] When the user selects button 415 in the list display section 401, boxes 421 to 425 are displayed in the settings display section 402, indicated by the "Object Settings" tab 4021. The user can input setting information into each of the boxes 421 to 425. Box 421 allows input of the object name. Box 422 allows input of relative position and orientation information from the parent object. Box 423 allows input of mass information. Box 424 allows input of center of gravity information. Additionally, the file name of a 3D model data created in advance using CAD software can be entered into box 425, which is labeled "3D Model".
[0038] The "Object Settings" tab 4021 displays a button 426 labeled "Confirm". When the button 426 labeled "Confirm" is selected, the current settings are overwritten, and the object's position and 3D model information are reflected in the 3D display unit 403.
[0039] Furthermore, the settings display unit 402, shown in the "Object Settings" tab 4021, displays a button 427 labeled "Cancel" and a button 428 labeled "Set Detection Target". When button 427 is selected, the CPU 311 cancels the user's edit. When button 428 is selected, the settings display unit 402, shown in tab 4021, switches to a screen display where the detection target is set for the virtual object corresponding to the object name information specified in box 421, i.e., the target of detection. The detection target is a virtual object. Contact also means interference.
[0040] In step S200, the CPU 311 accepts the setting of virtual object information entered by the user. The user can input information to the CPU 311 by operating the keyboard 303 and mouse 304 to enter information into the tab 4021 and the associated boxes 421 to 425.
[0041] In the first embodiment, the virtual objects include a virtual robot 100A, virtual workpieces W11A-W14A, W21A, W22A, and a virtual wall 50A. At this time, the CPU 311 displays an image of the three-dimensional virtual space R on the 3D display unit 403. This allows the user to visually confirm the set virtual objects.
[0042] In the example in Figure 6, the name "Robot1_Base" is assigned information for the virtual base 110A. The name "Robot1_Joint1" is assigned information for the virtual link 111A, which includes joint J1A. The name "Robot1_Joint2" is assigned information for the virtual link 112A, which includes joint J2A. The name "Robot1_Joint3" is assigned information for the virtual link 113A, which includes joint J3A. The name "Robot1_Joint4" is assigned information for the virtual link 114A, which includes joint J4A. The name "Robot1_Joint5" is assigned information for the virtual link 115A, which includes joint J5A. The name "Robot1_Joint6" is assigned information for the virtual link 116A, which includes joint J6A. The name "Robot1_Hand" is assigned information for the virtual robot hand 102A. The name "TCP1" is assigned to the tool center point information of virtual robot 100A.
[0043] In the example in Figure 6, the name "Part1" is assigned to the information of virtual work W11A. The name "Part2" is assigned to the information of virtual work W12A. The name "Part3" is assigned to the information of virtual work W13A. The name "Part4" is assigned to the information of virtual work W14A. The name "Box1" is assigned to the information of virtual work W21A. The name "Box2" is assigned to the information of virtual work W22A. The name "Wall1" is assigned to the information of virtual wall 50A. Note that these names can be arbitrarily set by the user.
[0044] The information in boxes 421 to 424 is set individually for each of the following: multiple parts of the virtual robot 100A, virtual workpieces W11A to W14A, W21A, W22A, and virtual wall 50A.
[0045] Furthermore, when editing the information of the virtual link 111A corresponding to the name "Robot1_Joint1" in tab 4021, if the button 428, which is named "Set Detection Target," is selected, the CPU 311 switches image 400 as shown in Figure 7. Figure 7 is an explanatory diagram showing an example of image 400 displayed on the display 302 according to the first embodiment. When button 428 is selected, the display switches to a screen in tab 4021 for setting the detection target for the virtual link 111A corresponding to the name "Robot1_Joint1".
[0046] The settings display section 402, indicated by tab 4021, displays a box 421, a box 430 for the user to specify the detection target, a button 431 labeled "Confirm," and a button 432 labeled "Cancel." When the user enters the name of the virtual object to be detected in box 430 and selects the button 431 labeled "Confirm," the CPU 311 accepts the user's setting of the virtual object to be detected for the virtual link 111A. That is, the CPU 311 sets the virtual object corresponding to the name displayed in box 430 as the detection target for the virtual object corresponding to the name displayed in box 421. In the example in Figure 7, the virtual workpieces W11A~W14A, W21, W22 and the virtual wall 50A are set as detection targets for the virtual link 111A, which is named "Robot1_Joint1." If the user selects the button 432 labeled "Cancel," the CPU 311 cancels the user's editing.
[0047] The detection targets are manually set individually by the user for each of the multiple parts of the virtual robot 100A. That is, the CPU 301 accepts individual user settings for each of the multiple parts of the virtual robot 100A, namely the virtual base 110A, the multiple virtual links 111A~116A, and the virtual robot hand 102A. The CPU 311 also automatically sets the detection targets for each of the virtual workpieces W11A~W14A, W21A, W22A and the virtual wall 50A based on the detection targets set for each of the multiple parts of the virtual robot 100A. For example, if the virtual workpiece W11A is set as the detection target for the virtual robot hand 102A, then the virtual robot hand 102A will be automatically set as the detection target for the virtual workpiece W11A.
[0048] Preferably, the configured virtual objects are displayed as 3D models on the 3D display unit 403. The 3D display unit 403 also displays a robot model 100B corresponding to the virtual robot 100A, a work model W11B corresponding to the virtual work W11A, a wall model 50B corresponding to the virtual wall 50A, and a work model W21B corresponding to the virtual work W21A.
[0049] Furthermore, once detection targets have been set for each of the multiple parts of the virtual robot 100A, if any part comes into contact with a detection target, it is preferable to notify the user of the contact by changing the color of the 3D model of the corresponding object on the 3D display unit 403.
[0050] Next, in step S300, the CPU 311 accepts the teaching point settings entered by the user. Teaching points are created when the user selects the button 416 labeled "Add Teaching Point" on the list display unit 401. Teaching points are the target position and orientation of the tool center point. Figure 8 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment. For example, teaching points P0, P1, and P2 are created by the user on the list display unit 401. The information for each teaching point P0, P1, and P2 can be edited and set by the user by selecting tab 4022.
[0051] In the example shown in Figure 8, teaching point P0 is a teaching point that indicates the initial position of the virtual robot 100A and is named "TP_init". Teaching point P1 is the first teaching point. Teaching point P1 is a teaching point that indicates the gripping position of the virtual workpiece W11A and is named "TP_1". Teaching point P2 is the second teaching point. Teaching point P2 is a teaching point that indicates the aerial position where the virtual workpiece W11A is attached to the virtual workpiece W21A and is named "TP_2". Note that the names of these teaching points can be arbitrarily set by the user.
[0052] It is preferable that each teaching point P0, P1, and P2 is automatically updated when the position and orientation of the parent object are changed. Managing each teaching point P0, P1, and P2 in a hierarchical structure facilitates design changes.
[0053] By selecting a teaching point name in the list display section 401, the user can edit the information of the teaching point corresponding to the selected name in the settings display section 402 shown on tab 4022. The settings display section 402 shown on tab 4022 displays a box 440 that displays the name of the teaching point, and a box 441 in which information about the position and orientation of the teaching point associated with the name of the teaching point displayed in box 440 can be entered. The settings display section 402 shown on tab 4022 also displays a box 442 in which information about the orientation flag can be entered. Here, the orientation flag is a flag used to specify which solution to adopt when multiple solutions exist in the inverse kinematics calculation of the virtual robot 100A. The settings display section 402 shown on tab 4022 also displays a button 443 labeled "Confirm" and a button 444 labeled "Cancel".
[0054] In the example shown in Figure 8, "TP_1," which is the name of teaching point P1, is selected in the list display unit 401, and the information of teaching point P1 corresponding to "TP_1" is editable in the settings display unit 402 shown in tab 4022.
[0055] When the user enters the position and orientation information of the teaching point into box 441 and selects button 443, which is labeled "Confirm," the CPU 311 accepts the user's setting of the teaching point. However, when the user selects button 444, which is labeled "Cancel," the CPU 311 cancels the user's editing.
[0056] Preferably, the set teaching points are displayed as 3D teaching point models on the 3D display unit 403. The 3D display unit 403 displays teaching point models P0B, P1B, and P2B, corresponding to teaching points P0, P1, and P2, respectively. In each teaching point model P0B to P2B, the points represent positions, and the three arrows represent orientations.
[0057] Next, in step S400, the CPU 311 accepts the settings of the operation program entered by the user. Figure 9 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment.
[0058] The settings display unit 402, indicated by tab 4023 labeled "Program Creation," displays a table 450 for setting the operation program and a button 455 labeled "Start Calculation." Table 450 contains several columns 451, 452, 453, and 454. Column 451 is a command column that specifies the operation of the virtual robot 100A. Column 452 is a teaching point column that specifies the teaching points. Column 453 is a column that specifies the workpiece to be transported. Column 454 is a column that specifies the speed. When the user selects the "Start Calculation" button 455, the CPU 311 simulates the operation of the virtual robot 100A in order from the first row.
[0059] There are multiple command types that can be specified in column 451. The types of commands can be expanded depending on the application. In the example shown in Figure 9, there is the "Init" command, which sets the specified teaching point as the initial position of the virtual robot, and the "Joint" command, which moves the virtual robot to the specified teaching point using joint interpolation.
[0060] This section describes the case where the virtual robot 100A is operated starting from teaching point P0, from teaching point P0 to teaching point P1, the virtual workpiece W11A is linked with the virtual robot 100A at teaching point P1, and the virtual robot 100A is operated from teaching point P1 to teaching point P2. In robot 100, the robot starts from teaching point P0, moves to teaching point P1, grasps the workpiece W11 at teaching point P1, and moves from teaching point P1 to teaching point P2 to transport the workpiece W11 above the workpiece W21, thereby assembling the workpiece W11 onto the workpiece W21.
[0061] Here, linking the virtual workpiece W11A with the virtual robot 100A means having the virtual robot 100A simulate holding the virtual workpiece W11A. In the first embodiment, this means having the virtual robot hand 102A, which is an example of a predetermined part of the virtual robot 100A, simulate gripping the virtual workpiece W11A. Therefore, if the virtual workpiece W11A is linked with the virtual robot 100A, the relative position and orientation of the virtual workpiece W11A with respect to the virtual robot hand 102A is maintained even if the posture of the virtual robot 100A changes. In the first embodiment, the CPU 311 links the virtual workpiece W11A with the virtual robot 100A by maintaining the relative position and orientation between the virtual robot hand 102A and the virtual workpiece W11A. This makes it possible to simulate the state in which the virtual robot hand 102A is gripping the virtual workpiece W11A.
[0062] Table 450 describes these operations using multi-line operation programs prg1 to prg3. Operation program prg1 sets teaching point P0 as the starting point using the command "Init" and the teaching point name "TP_init". Next, operation program prg2 sets virtual robot 100A to move from teaching point P0 to teaching point P1 by joint interpolation using the command "Joint" and the teaching point name "TP_1". Furthermore, operation program prg3 sets virtual workpiece W11A to be linked with virtual robot 100A at teaching point P1 using the workpiece name "part1". Finally, operation program prg3 sets movement from teaching point P1 to teaching point P2 by joint interpolation using the command "Joint" and the teaching point name "TP_2". In this way, the operation programs are set by the user writing the operation programs in Table 450.
[0063] Using the above configuration information, the CPU 311 can execute a predetermined process to acquire the operation of the virtual robot 100A. In the first embodiment, the CPU 311 can execute a search process to determine the operation of the virtual robot 100A, that is, to search for the operation of the virtual robot 100A, as a predetermined process.
[0064] In the first embodiment, the CPU 311 simulates the behavior of the virtual robot 100A in the search process according to the operation program set in the table 450. Then, for operation programs that include instructions to link the virtual workpiece W11A with the virtual robot 100A, the CPU 311 simulates the behavior of both the virtual robot 100A and the virtual workpiece W11A in the search process. As a result, the CPU 311 automatically calculates the behavior of the virtual robot 100A so that it avoids obstacles with the virtual robot 100A and the virtual workpiece W11A.
[0065] The following describes in detail the simulation performed by the CPU 311 when the "Start Calculation" button 455 is selected by the user. The example described is when the virtual robot 100A transports the virtual workpiece W11A to the virtual workpiece W21A, according to the operation programs prg1 to prg3 described in Table 450 shown in Figure 9. Table 450 contains multiple rows, for example, three rows of operation programs prg1 to prg3. The CPU 311 performs the simulation sequentially for each row.
[0066] When the user selects the "Start Calculation" button 455, the CPU 311 executes the processes in steps S500 to S1000.
[0067] First, in step S500, the CPU 311 reads the operation program prg1 from the first row of table 450 and selects whether or not to link the virtual work W11A with the virtual robot 100A. In operation program prg1, the virtual work W11A is not specified in column 453, so the CPU 311 selects not to link the virtual work W11A with the virtual robot 100A (S500: NO). The CPU 311 executes the command "Init" and sets the teaching point P0, which is named "TP_init", as the starting point.
[0068] Next, in step S600, the CPU 311 searches for the movement of the virtual robot 100A from the starting point to the ending point, using the teaching point specified in the previous operation program as the starting point and the teaching point specified in the current operation program as the ending point. For operation program prg1, there is no previous operation program, so the CPU 311 proceeds to the next step S700 without performing any processing in step S600.
[0069] In step S700, the CPU 311 determines whether the simulation of all operational programs has finished. Since the operational program prg2 on the second line exists (S700: NO), the CPU 311 returns to the process in step S500.
[0070] In step S500, the CPU 311 reads the operation program prg2 on the second line and selects whether or not to link the virtual workpiece W11A with the virtual robot 100A. In the operation program prg2, the virtual workpiece W11A is not specified in column 453, so the CPU 311 selects not to link the virtual workpiece W11A with the virtual robot 100A (S500: NO).
[0071] Next, in step S600, the CPU 311 performs a search process to find a way for the virtual robot 100A to move from the teaching point P0 specified in the previous operation program prg1 to the teaching point P1 specified in the current operation program prg2 without coming into contact with any obstacles. Obstacles are set as detection targets in step S200.
[0072] In the search process of step S600, the CPU 311 calculates intermediate teaching points to be inserted between teaching point P0 and teaching point P1 in order to ensure that each part of the virtual robot 100A does not come into contact with an obstacle. That is, the CPU 311 finds intermediate teaching points between teaching point P0 and teaching point P1 when the virtual robot 100A moves from teaching point P0 to teaching point P1 so that the virtual robot 100A does not come into contact with an obstacle. It is preferable to use a search algorithm such as RRT (Rapidly exploring Random Tree) to calculate the intermediate teaching points. In RRT, the movement of the virtual robot 100A, i.e., the intermediate teaching points, is calculated so that each part of the virtual robot 100A does not come into contact with a detection target that is individually set for each part.
[0073] In step S700, the CPU 311 determines whether the simulation of all operational programs has finished. Since the operational program prg3 on the third line exists (S700: NO), the CPU 311 returns to the process in step S500.
[0074] In step S500, the CPU 311 reads the operation program prg3 on the third line and selects whether or not to link the virtual workpiece W11A with the virtual robot 100A. In the operation program prg3, the virtual workpiece W11A is specified in column 453. Therefore, the CPU 311 selects to link the virtual workpiece W11A with the virtual robot 100A (S500: YES).
[0075] In the operation program prg3, the starting point for the transport operation by the virtual robot 100A is the teaching point P1, and the ending point is the teaching point P2. In step S800, the CPU 311 sets up the virtual workpiece W11A to be linked with the virtual robot hand 102A. Figure 10 is a schematic diagram illustrating the calculation of linking the virtual workpiece W11A with the virtual robot hand 102A in the first embodiment. In step S800, the CPU 311 calculates the relative position relationship trsf1 of the virtual workpiece W11A with respect to the virtual robot hand 102A, which is in a state where the posture of the virtual robot 100A is at the teaching point P1. That is, when calculating the position relationship trsf1, the posture of the virtual robot 100A is determined such that the position and posture information of the tool center point linked to the virtual robot 100A becomes the teaching point P1. The CPU 311 stores the calculated position relationship trsf1 information in, for example, RAM 313 or HDD 314. In this embodiment, the positional relationship trsf1 between the virtual robot hand 102A and the virtual workpiece W11A stores information about the position and orientation of the virtual robot hand 102A and the position and orientation of the virtual workpiece W11A. However, it is also acceptable to store only the position information of the virtual robot hand 102A and the position information of the virtual workpiece W11A.
[0076] Here, if the virtual workpiece W11A does not interact with the virtual robot 100A, the virtual workpiece W11A must be treated as an obstacle that the virtual robot 100A must avoid contact with. Therefore, the CPU 311 needs to calculate whether the virtual robot 100A will come into contact with the virtual workpiece W11A in the RRT simulation. Here, calculating is synonymous with detecting.
[0077] On the other hand, when the virtual workpiece W11A is linked to the virtual robot 100A, the CPU 311 does not need to calculate in the RRT simulation whether the virtual workpiece W11A is in contact with the virtual robot hand 102A. Instead, the CPU 311 needs to calculate in the RRT simulation whether the virtual workpiece W11A is in contact with some parts of the virtual robot 100A other than the virtual robot hand 102A, and with virtual objects around the virtual robot 100A.
[0078] Therefore, in step S900, the CPU 311 sets the detection target for the virtual workpiece W11A when it is linked with the virtual robot hand 102A, based on the detection target set for the virtual robot hand 102A.
[0079] In the first embodiment, the detection targets for the virtual workpiece W11A are already set in step S200. Therefore, in the first embodiment, the CPU 311 changes the setting of the detection targets for the virtual workpiece W11A when it is linked with the virtual robot hand 102A, based on the detection targets set for the virtual robot hand 102A. For example, the CPU 311 changes the detection targets already set for the virtual workpiece W11A to those set for the virtual robot hand 102A, excluding "part1".
[0080] Figures 11(a) and 11(b) are explanatory diagrams showing an example of a list of detection targets set for the virtual workpiece W11A in the first embodiment. Figure 11(a) shows the settings before change, and Figure 11(b) shows the settings after change. In the simulation of operation programs prg1 and prg2, the detection targets set for the virtual workpiece W11A are the parts that make up the virtual robot 100A, as shown in Figure 11(a). On the other hand, in the simulation of operation program prg3, the detection targets set for the virtual workpiece W11A are changed as shown in Figure 11(b) in order to link the virtual workpiece W11A with the virtual robot 100A. The list shown in Figure 11(b) is the same as the detection targets set for the virtual robot hand 102A, but with the virtual workpiece W11A excluded.
[0081] In the search process of step S600, the CPU 311 links the virtual workpiece W11A with the virtual robot 100A and searches for the movement of the virtual robot 100A in which neither the virtual robot 100A nor the virtual workpiece W11A come into contact with the detection target. In this case, the movement of the virtual robot 100A is searched using the RRT search algorithm, similar to the case where the virtual workpiece W11A is not linked with the virtual robot 100A.
[0082] Figure 12 is an explanatory diagram showing an example of the operation of the virtual robot 100A obtained by the search process in the first embodiment. The CPU 311 determines intermediate teaching points P11 and P12 between teaching point P1 and teaching point P2. The operation of the virtual robot 100A calculated using the four teaching points P1, P11, P12, and P2 is the trajectory traj1 shown by the dotted line in Figure 12.
[0083] Figure 13 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the first embodiment. In the list display unit 401 shown in Figure 13, intermediate teaching points P11 and P12 are added with the names "TP_mid1" and "TP_mid2". In addition, the 3D display unit 403 schematically displays these four teaching points and the trajectories connecting these four teaching points. This allows the user to use the added intermediate teaching points P11 and P12 to consider things like creating a new operation program or modifying the teaching points.
[0084] In step S700, the CPU 311 determines whether the simulation of all operational programs has finished. Since the operational program prg3 on the third line is the last operational program, the simulation of all operational programs has finished (S700: YES), and the CPU 311 proceeds to the process in step S1000.
[0085] In step S1000, the CPU 311 outputs teaching data, including information on teaching points P0, P1, P11, P12, and P2, to the control device 200. Since the teaching data created through this series of operations is output to the control device 200 that controls the robot 100, the control device 200 can operate the actual robot 100 based on the teaching data created through offline teaching.
[0086] Figure 14 is a flowchart showing an example of the search process of the RRT algorithm in step S600. The flowchart shown in Figure 14 is an example of the search process when a virtual workpiece W11A is specified in the operation program and the virtual workpiece W11A is linked with the virtual robot 100A.
[0087] In step S601, the CPU 311 adds the starting point to the node group. Here, a node represents all combinations of joint values J1A to J6A of the virtual robot 100A, and the node group represents a collection of nodes. The node group is initially empty.
[0088] In step S602, the CPU 311 randomly generates new nodes. The joints J1A to J6A of the virtual robot 100A have a range from the minimum to the maximum value of their movement. The CPU 311 calculates random values within that range for each joint.
[0089] In step S603, the CPU 311 calculates the positions of each joint J1A to J6A and the position of the virtual robot hand 102A from the values of each joint J1A to J6A included in the new node by performing forward kinematics calculations.
[0090] In step S604, the CPU 311 calculates the position of the virtual workpiece W11A based on the relative position relationship trsf1 of the virtual workpiece W11A with respect to the virtual robot hand 102A, which was calculated in step S800.
[0091] In step S605, the CPU 311 calculates the node that is the nearest neighbor to the new node from the group of nodes. The nearest neighbor is the node in the group where the difference between the joint value of the new node and the joint value of the node included in the group of nodes is the smallest.
[0092] In step S606, the CPU 311 interpolates the distance between the new node and the nearest node by a predetermined or arbitrary interval. The interpolation is performed using a pre-set method, such as joint interpolation. The interpolation calculation also utilizes the mass and center of gravity information set in step S200 in Figure 5.
[0093] In step S607, the CPU 311 determines whether multiple parts of the virtual robot 100A and the virtual workpiece W11A, which is linked to the virtual robot 100A, are in contact with their respective detection targets at each position determined by interpolation. The detection targets for each part of the virtual robot 100A are those set in step S200 in Figure 5, and the detection targets for the virtual workpiece W11A are those reset in step S900 in Figure 5.
[0094] If contact is detected between any of the multiple parts of the virtual robot 100A and the virtual workpiece W11A (S607: YES), the CPU 311 discards the data for the new node, returns to the process in step S602, and calculates a new node again.
[0095] If no contact is detected between any of the virtual robot 100A or the virtual workpiece W11A (S607: NO), in step S608, the CPU 311 adds a new node to the node group. When adding a node to the node group, the CPU 311 also records information about the nearest neighbor node to the new node.
[0096] In step S609, the CPU 311 interpolates the distance between the new node and the endpoint at a predetermined or arbitrary interval. The interpolation is performed using a pre-set method, such as joint interpolation. The interpolation calculation also utilizes the mass and center of gravity information set in step S200.
[0097] In step S610, the CPU 311 determines whether multiple parts of the virtual robot 100A and the virtual workpiece W11A, which is linked to the virtual robot 100A, are in contact with their respective detection targets at each position determined by interpolation. The detection targets for each part of the virtual robot 100A are those set in step S200 in Figure 5, and the detection targets for the virtual workpiece W11A are those reset in step S900 in Figure 5.
[0098] If contact is detected between any of the multiple parts of the virtual robot 100A and the virtual workpiece W11A (S610: YES), the CPU 311 returns to the process in step S602 and calculates a new node.
[0099] If no contact is detected between any of the virtual robot 100A or the virtual workpiece W11A (S610:NO), the CPU 311 proceeds to step S611.
[0100] In step S611, the CPU 311 extracts an intermediate point from the group of nodes. The intermediate point is extracted by sequentially traversing the nearest neighbor nodes starting from the last newly added node. The above process from steps S601 to S611 is the search process when the virtual work W11A is linked to the virtual robot 100A.
[0101] In the search process when the virtual workpiece W11A is not linked to the virtual robot 100A, the processing in step S604 is omitted. Also, in the processing of steps S607 and S610, the CPU 311 determines whether multiple parts of the virtual robot 100A come into contact with their respective detection targets at each position determined by interpolation. The detection targets for each part of the virtual robot 100A are those set in step S200 in Figure 5.
[0102] The CPU 311 may simulate the virtual robot 100A and virtual workpiece W11A, resulting from the processing in steps S601 to S611, as still images or videos on the 3D display unit 403.
[0103] As described above, according to the first embodiment, the CPU 311 can automatically calculate the movements of the virtual robot 100A and the virtual workpiece W11A so as not to come into contact with obstacles by linking the virtual workpiece W11A with the virtual robot 100A. Therefore, users can easily perform simulation work even without specialized knowledge. Furthermore, since the movements of the virtual robot 100A and the virtual workpiece W11A so as not to come into contact with obstacles can be obtained without the user having to visually check each step of the virtual robot 100A's operation, the user's work efficiency related to simulation can be improved. In addition, teaching the robot 100 based on the simulation work can also be easily performed.
[0104] Furthermore, the user only needs to set the teaching point P1, which will be the starting point of the virtual robot 100A, the teaching point P2, which will be the ending point, and the virtual workpiece W11A, which will be transported. Based on these settings, the CPU 311 can automatically calculate the transport operation of the virtual robot 100A so that the virtual robot 100A and the virtual workpiece W11A do not come into contact with any obstacles. As a result, the user can easily perform simulation work even without specialized knowledge. In addition, since the operation of the virtual robot 100A can be obtained so that the virtual robot 100A and the virtual workpiece W11A do not come into contact with any obstacles without the user having to visually check each step, the user's work efficiency related to simulation can be improved. Furthermore, teaching the robot 100 based on the simulation work can also be easily performed.
[0105] Furthermore, even for the operation of the virtual robot 100A that is not linked to the virtual workpiece W11A, the CPU 311 can automatically calculate movements that prevent the virtual robot 100A from coming into contact with obstacles. Therefore, users can easily perform simulation work even without specialized knowledge. In addition, since the operation of the virtual robot 100A can be obtained without the user having to visually check each step, movements that prevent the virtual robot 100A and the virtual workpiece W11A from coming into contact with obstacles can be obtained, the user's work efficiency related to simulation can be improved. Furthermore, teaching the robot 100 based on the simulation work can also be easily performed.
[0106] (Second Embodiment) Next, the second embodiment will be described in detail. In the following, parts of the hardware and control system configuration that differ from the first embodiment will be illustrated and explained. Furthermore, parts that are the same as in the first embodiment will have the same configuration and operation as described above, and their detailed explanation will be omitted.
[0107] Figure 15 is an explanatory diagram showing an example of an image 400 displayed on the display 302 according to the second embodiment. As can be seen from Figure 15, the second embodiment differs significantly from the first embodiment in that a button 456 labeled "Linking Settings" is displayed. In the first embodiment, the CPU 311 was made to calculate the relative position relationship trsf1 of the virtual robot hand 102A and the virtual workpiece W11A, which is the linking condition between the virtual robot hand 102A and the virtual workpiece W11A. In the second embodiment, the user is made to set this relative position relationship trsf1, which is the linking condition. The robot hand model 102B displayed on the 3D display unit 403 corresponds to the virtual robot hand 102A, and the workpiece model W11B displayed on the 3D display unit 403 corresponds to the virtual workpiece W11A. The following explanation will use the virtual robot hand 102A and the virtual workpiece W11A.
[0108] Figure 16 is an explanatory diagram showing an example of an image 400 displayed on the display 302 when the user clicks button 456 shown in Figure 15. When the user clicks button 456 shown in Figure 15, the tab 4024 for setting the linkage conditions shown in Figure 16 and the 3D display unit 403 showing the virtual space R are displayed. Tab 4024 is displayed with the name "Linkage Settings". The display screen shown on tab 4024 shows a box 460, a table 461, columns 462, 463, and buttons 464, 465, 466, and 467. These will be described in detail below.
[0109] First, box 460 is a setting box for setting the target to be linked when setting the linkage conditions. In Figure 16, the virtual robot hand 102A is set in box 460. In the second embodiment, the virtual robot hand 102A is used as an example to explain the predetermined part of the virtual robot 100A that will be linked, but it is not limited to this. For example, it is also possible to set a predetermined link of the virtual robot 100A as the target to be linked.
[0110] Table 461 is a table for inputting information about the virtual work to be linked and the target of the linkage, as well as parameters related to the relative positional relationship trsf1, when setting the linkage conditions. Column 462 is for setting the information about the virtual work to be linked and the target of the linkage. In Figure 16, the work name corresponding to virtual work W11A is displayed in column 462, and the names of other workpieces are also displayed sequentially in column 462. Column 463 is a column for inputting the parameters of the relative positional relationship trsf1 between the corresponding virtual workpiece and the virtual robot hand 102A.
[0111] The parameter in column 463 in Figure 16 indicates the relative position and orientation of the tool center point of the virtual robot hand 102A with respect to an arbitrary virtual point on the virtual workpiece W11A. The arbitrary virtual point is an example of a first control position for the virtual workpiece W11A, and the tool center point is an example of a second control position for the virtual robot hand 102A. In other words, the parameter in column 463 in Figure 16 indicates that the tool center point of the virtual robot hand 102A is 50 units away from the arbitrary virtual point on the virtual workpiece W11A in the positive Z-axis direction. This value of 50 is distance information set in the virtual space R, and the unit can be either mm or cm. By inputting the values of Rx, Ry, and Rz, it is also possible to set the orientation of the tool center point of the virtual robot hand 102A with respect to an arbitrary virtual point on the virtual workpiece W11A. This makes it easy for the user to set not only cases where the virtual workpiece W11A is grasped from directly above, but also cases where it is grasped from directly to the side.
[0112] Button 464 is used to acquire the position and orientation of the tool center point of the virtual robot hand 102A(102B) relative to an arbitrary virtual point on the virtual workpiece W11A(W11B) displayed on the 3D display unit 403, and to display the acquired position and orientation as a parameter in column 463. If setting the parameters is complicated, the virtual robot hand 102A(102B) displayed on the 3D display unit 403 can be moved to a predetermined position using the pointer 470 and set to a predetermined orientation. Then, by pressing button 464, the position and orientation of the tool center point of the virtual robot hand 102A(102B) relative to an arbitrary virtual point on the virtual workpiece W11A(W11B) at the time button 464 is pressed, and the acquired position and orientation is displayed as a parameter in column 463. This allows users to intuitively set the relative positional relationship trsf1, which serves as the linkage condition, while viewing the position and orientation of the virtual robot hand 102A (102B) in the 3D display unit 403. Furthermore, by pressing button 464', it is also possible to capture the position and orientation of the virtual workpiece W21A (W21B) relative to an arbitrary virtual point at the tool center point of the virtual robot hand 102A (102B) and set this as the linkage condition. Button 464 is displayed in column 463 in the row corresponding to the virtual workpiece.
[0113] In the second embodiment, the positional relationship trsf1 is set by setting and acquiring the tool center point position of the virtual robot hand 102A (102B) based on an arbitrary virtual point of the virtual workpiece W11A (W11B). The reference for the positional relationship trsf1 can be changed by pressing the button 468 labeled "Change Reference". In the state shown in Figure 16, "Workpiece" is displayed in the reference display unit 469, but pressing the button 468 will display "Robot Hand" in the reference display unit 469. When the reference is the robot hand, setting the positional relationship trsf1 sets the position of an arbitrary virtual point on the virtual workpiece W11A (W11B) based on the tool center point of the virtual robot hand 102A (102B). In the case of column 463, the Z-axis value becomes "-50".
[0114] Once the relative positional relationship trsf1, which is the linking condition, has been set, the linking condition for each workpiece can be confirmed by pressing button 465, which is labeled "Confirm". By pressing button 466, which is labeled "Cancel", the parameters entered in column 463 can be deleted. In the second embodiment, if button 466 is pressed while a predetermined parameter is selected in column 463, the selected predetermined parameter will be deleted. However, it is also acceptable to delete all parameters in column 463 when button 466 is pressed. By pressing button 467, which is labeled "Back", the display of image 400 shown in Figure 15 can be returned.
[0115] (modified version) Figure 17 shows a modified version of the tab 4024 used for setting the linkage in the second embodiment. In this modified version, the 3D display unit 403 showing the virtual space R is displayed on the display screen indicated by tab 4024. The relative positional relationship trsf1, which is the linkage condition, can be set by drawing with the pointer 470. It is preferable that the drawing can be performed by at least one of clicking, dragging, and dropping with the mouse 304. In the example in Figure 17, the user clicks the tool center point of the virtual robot hand 102A (102B) with the mouse 304, drags the pointer to a virtual point on the virtual workpiece W11A (W11B) while clicking, and drops the pointer at the virtual point on the virtual workpiece W11A (W11B) to draw and set the positional relationship trsf1. The CPU 311 displays the positional relationship trsf1 set by the drawing on the 3D display unit 403, for example, as the model shown by the dashed line in Figure 17. From this state, the user can change the pose of the model, shown by the dashed line in Figure 17, using the pointer 470. The CPU 311 can then recognize this change in the model's pose by the user as a change from position relationship trsf1 to position relationship trsf1'. In this modified example, the model representing position relationship trsf1 is rotated by moving the tool center point of the virtual robot hand 102A (102B) relative to an arbitrary virtual point on the virtual workpiece W11A (W11B). The reference for position relationship trsf1 can be changed by pressing the button 468 labeled "Change Reference". In the state shown in Figure 17, "Workpiece" is displayed in the reference display unit 469, but pressing the button 468 will display "Robot Hand" in the reference display unit 469. When the reference point is a virtual robot hand, rotating the model representing the positional relationship trsf1 causes any virtual point on the virtual workpiece W11A (W11B) to move relative to the tool center point of the virtual robot hand 102A (102B).
[0116] Furthermore, this modified example uses the setting of virtual workpiece W11A (W11B) as an example. However, it is also possible to position the virtual robot hand 102A (102B) at a predetermined location near another virtual workpiece using the pointer 470, and then set the linkage conditions with the other virtual workpiece by clicking and dragging with the pointer 470.
[0117] Once the desired positional relationship trsf1 has been drawn, pressing button 465 confirms the drawn positional relationship trsf1 as a linking condition. Pressing button 466 deletes the positional orientation that serves as the linking condition, which has been drawn in the virtual space R. In this modified example, pressing button 466 while a predetermined positional orientation is selected in the virtual space R deletes the selected predetermined positional orientation. However, pressing button 466 may also delete all positional orientations in the virtual space R. Pressing button 467 returns to the display of image 400 shown in Figure 15.
[0118] As described above, in the second embodiment and its modified form, the linkage conditions between the virtual robot hand 102A, the virtual workpiece W11A, and other virtual workpieces can be easily set. This allows the user to easily set the linkage conditions not only when gripping the virtual workpiece W11A from directly above, but also when gripping the virtual workpiece W11A from the side. Therefore, the user can easily perform simulation work of various workpieces and robot behaviors, improving the user's work efficiency related to simulation. Thus, the user can easily teach the robot 100 based on the simulation work. Note that the second embodiment or its modified form may be combined with the first embodiment or its modified form described above in the information processing device or information processing method. Also, the second embodiment described with reference to Figure 16 and the modified form of the second embodiment described with reference to Figure 17 may be combined in the information processing device or information processing method.
[0119] The present invention is not limited to the embodiments described above, and many modifications are possible within the technical concept of the present invention. Furthermore, the effects described in the embodiments are merely a list of the most preferred effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.
[0120] In the embodiments described above, the case where the robot arm is a vertically articulated robot arm was explained, but the invention is not limited to this. The robot arm may be various types of robot arms, such as a horizontally articulated robot arm, a parallel link robot arm, or a Cartesian robot. Furthermore, the invention may be used to simulate the operation of transporting a workpiece by a machine that can automatically perform movements such as extension and retraction, bending and straightening, vertical movement, horizontal movement or rotation, or combinations thereof, based on information stored in a memory device provided in the control device.
[0121] Furthermore, although the above-described embodiment described a case in which the information processing device 300 outputs teaching data including teaching point information as motion information of the virtual robot, it is not limited to this. The information processing device 300 may also output trajectory data calculated from the teaching data as motion information of the virtual robot.
[0122] (Other examples) The present invention can also be realized by supplying a program that implements one or more of the functions of the above-described embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions. [Explanation of symbols]
[0123] 100...Robot, 100A...Virtual robot, 200...Control device, 300...Information processing device, 311...CPU (Information Processing Unit), 1000...Robot system
Claims
1. 1. An information processing method for simulating a behavior of a virtual robot for moving a virtual workpiece in a virtual environment, comprising: A detection target to be avoided from contacting is set on the virtual workpiece, Identifying a predetermined portion of the virtual robot that is to be linked with the virtual workpiece; changing the detection target according to the predetermined portion; 23. An information processing method comprising:
2. Outputting operation information of the virtual robot that realizes a path of the virtual robot for avoiding the changed detection target by the virtual workpiece through a simulation in the virtual environment.
2. The information processing method according to claim 1,
3. The detection target includes a virtual object disposed around the virtual robot.
3. The information processing method according to claim 1, wherein the first and second inputs are input to the information processing apparatus.
4. The operation information of the virtual robot is teaching data of the virtual robot or trajectory data of the virtual robot.
3. The information processing method according to claim 2.
5. Selecting the virtual workpiece by an operation program for moving the virtual robot.
5. The information processing method according to claim 1,
6. The virtual workpiece to be linked with the virtual robot is set in the operation program.
6. The information processing method according to claim 5,
7. When the virtual workpiece is linked with the virtual robot, a user can set whether the virtual workpiece is linked below the specified portion or next to the specified portion.
7. The information processing method according to claim 1,
8. A detection target to be avoided from contact is set in the predetermined portion, adding the detection target set in the predetermined portion to the detection target set in the virtual work; 8. The information processing method according to claim 1,
9. When the virtual workpiece is set as a detection target set in the specified portion, the virtual workpiece is excluded from the detection targets set in the specified portion and is added to the detection targets set in the virtual workpiece.
9. The information processing method according to claim 8,
10. When the specified part is set as a detection target set for the virtual work, the specified part is excluded from the detection targets set for the virtual work.
10. The information processing method according to claim 1,
11. A user can set detection targets to be avoided for each of a plurality of parts of the virtual robot.
11. The information processing method according to claim 1,
12. A relative positional relationship between the virtual workpiece and the predetermined portion in the virtual environment is set as an interlocking condition for interlocking the virtual robot and the virtual workpiece.
12. The information processing method according to claim 1,
13. Accepting the setting of the linkage condition by inputting a parameter.
13. The information processing method according to claim 12.
14. Displaying a button for acquiring a relative positional relationship between the virtual workpiece and the predetermined portion in the virtual environment; a relative positional relationship between the virtual workpiece and the predetermined portion in the virtual environment, which is acquired by pressing the button, is set as the linkage condition; 14. The information processing method according to claim 12 or 13.
15. In the virtual environment, a setting of the linkage condition is accepted by drawing.
15. The information processing method according to claim 12,
16. Displaying the linkage conditions set by the drawing in a model.
16. The information processing method according to claim 15,
17. The drawing can be performed by at least one of clicking, dragging, and dropping with a mouse.
17. The information processing method according to claim 15 or 16.
18. Accepting an operation to change the posture of the model.
17. The information processing method according to claim 16.
19. In the virtual environment, a relative positional relationship between a first position used in controlling the virtual workpiece and a second position used in controlling the predetermined portion is set as the linkage condition.
13. The information processing method according to claim 12.
20. The button is displayed in correspondence with the virtual work.
15. The information processing method according to claim 14.
21. Displaying a button for changing a criterion for a relative positional relationship between the virtual workpiece and the specified portion under the interlocking condition.
21. The information processing method according to claim 12,
22. Displaying the criteria.
22. The information processing method according to claim 21.
23. The linkage condition indicates that the virtual work moves together with the specified portion, 23. The information processing method according to claim 12,
24. Displaying a button for displaying a screen for setting details of the linkage conditions, 24. The information processing method according to claim 12,
25. The contact between the virtual workpiece for which the linkage condition is set and the predetermined portion is not determined.
25. The information processing method according to claim 12,
26. The predetermined portion is a virtual end effector.
26. The information processing method according to claim 1,
27. The virtual work is linked to the predetermined portion by maintaining a relative positional relationship between the predetermined portion and the virtual work.
27. The information processing method according to claim 1,
28. Accepting settings of a first teaching point and a second teaching point, acquiring an intermediate teaching point between the first teaching point and the second teaching point when the virtual robot is moved from the first teaching point to the second teaching point by linking the virtual workpiece with the virtual robot; 28. The information processing method according to claim 1,
29. The algorithm for acquiring the path of the virtual robot is RRT.
3. The information processing method according to claim 2.
30. Displaying a setting box in which the predetermined part can be set, 30. The information processing method according to claim 1,
31. A robot, and a control device that controls the robot based on operation information of the virtual robot acquired by the information processing method according to any one of claims 1 to 30. A robot system comprising:
32. Manufacturing an article using the robot system according to claim 31. A method for producing an article comprising the steps of:
33. An information processing device that simulates the behavior of a virtual robot for moving a virtual workpiece in a virtual environment, comprising: The processing unit: A detection target to be avoided from contacting is set on the virtual workpiece, Identifying a predetermined portion of the virtual robot that is to be linked with the virtual workpiece; changing the detection target according to the predetermined portion; 23. An information processing apparatus comprising:
34. A program for causing a computer to execute the information processing method according to any one of claims 1 to 30.
35. A computer-readable recording medium having the program according to claim 34 recorded thereon.