Robot programming device
By configuring robot and workpiece models in a virtual space and generating teaching points using surface-specified and grid-specified configurations, the problem of low robot programming efficiency in existing technologies is solved, achieving a more efficient programming process.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2023-11-10
- Publication Date
- 2026-06-05
AI Technical Summary
In existing technologies, the method of teaching robots or robot models by jogging requires a lot of time to adjust the position and posture, resulting in low programming efficiency.
By employing a robot programming device, robot models, manipulator models, and workpiece models are configured in a virtual space, and teaching points for motion programs are generated using a surface specification unit, a grid configuration unit, and a posture setting unit, thereby improving operational efficiency.
It simplifies robot teaching operations, improves programming efficiency, and enables more efficient generation of robot motion programs.
Smart Images

Figure CN122161695A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to a robot programming device. Background Technology
[0002] As a method for teaching a robot to perform a specified operation on a workpiece, the following methods are known: An operator manipulates a physical robot by using a teaching pendant to adjust its position and posture while gradually teaching it methods for obtaining, placing, approaching, and separating from the workpiece; or an operator manipulates a robot model on a robot programming device by using jog operations to adjust its position and posture while gradually teaching it methods for obtaining, placing, approaching, and separating from the workpiece model.
[0003] Relatedly, Patent Document 1 describes an example of a robot programming device that has the function of assisting in confirming whether a workpiece can be approached. Patent Document 2 describes an example of a simulation device that simulates the actions of a robot-based workpiece transfer system.
[0004] Existing technical documents
[0005] Patent documents
[0006] Patent Document 1: Japanese Patent Application Publication No. 2020-175471
[0007] Patent Document 2: Japanese Patent Application Publication No. 2020-199625 Summary of the Invention
[0008] The problem that the invention aims to solve
[0009] Traditional methods of teaching robots or robot models step-by-step, such as using jog operations to determine the workpiece's acquisition, placement, approach, and separation points, require fine adjustments to the robot's or robot model's position and posture. The more teaching points a motion program has, the more time is required for teaching. The aim is to find a technology that makes it easier for operators to teach robots motion programs for workpiece operations, enabling more efficient robot programming.
[0010] Methods for solving problems
[0011] One aspect of this disclosure is a robot programming device comprising: a model configuration unit that configures a robot system model including a robot model, a manipulator model mounted on the robot model, and a workpiece model in a virtual space; a surface designation unit that accepts user operations that specify the surface involved in a predetermined operation performed by the robot model on the workpiece model in the virtual space; a grid configuration unit that configures a three-dimensional grid in the virtual space based on the specified surface or points on the surface; a posture setting unit that sets the posture of the robot model in which the manipulator model grasps the workpiece model at grid points configured on the three-dimensional grid; and a teach point generation unit that generates teach points constituting the motion program of the predetermined operation based on the grid points configured on the workpiece model and the posture of the robot model set at the grid points.
[0012] These objects, features, and advantages of the invention will become more apparent from the detailed description of typical embodiments of the invention shown in the accompanying drawings. Attached Figure Description
[0013] Figure 1 This is a diagram showing the external structure of a robot programming device according to one embodiment.
[0014] Figure 2 This is a functional block diagram of the robot programming device according to the first embodiment.
[0015] Figure 3 This is a flowchart illustrating the program creation process of the first embodiment.
[0016] Figure 4 This is a diagram representing the state of a robot system model configured in virtual space.
[0017] Figure 5 This is a diagram showing the situation where a robot model is used to hold a workpiece model.
[0018] Figure 6 It is a diagram that shows the state of the surfaces involved in the operation within the virtual space specified by the cursor.
[0019] Figure 7 It is a diagram that shows the arrangement of three-dimensional grids on the surfaces related to the operation.
[0020] Figure 8 This is a diagram showing the situation where the grid points on the surface of the workpiece model are selected through user operation.
[0021] Figure 9 This is a diagram showing the configuration of the workpiece model at the selected grid points.
[0022] Figure 10This is a diagram showing the status of adjusting the orientation of the configured workpiece model.
[0023] Figure 11 This is a diagram showing the state of the robot model's posture.
[0024] Figure 12 This diagram shows the state where the teaching point is set to retrieve the workpiece model using a robotic arm model.
[0025] Figure 13 It is a diagram that shows the situation where the operator moves the cursor and selects the grid points corresponding to the approach point and the separation point.
[0026] Figure 14 It is a diagram representing the state of the generated teaching points corresponding to the approach point and the separation point.
[0027] Figure 15 It is a diagram showing the state of the teaching points that constitute the action program for taking out and configuring the workpiece model.
[0028] Figure 16 It is a diagram showing the state of generating an action program that places multiple workpiece models configured on the upper surface of a workbench model on the upper surface of another workbench model.
[0029] Figure 17 This is a diagram showing the situation where the operator selects multiple grid points on the surface of the workpiece model as the position of the workpiece model.
[0030] Figure 18 It is a diagram showing the configuration of the workpiece model on the surface where the workpiece model is removed, with multiple grid points selected by the operator.
[0031] Figure 19 This diagram illustrates the situation where the position of the workpiece model has been changed in order to eliminate interference.
[0032] Figure 20 This is a diagram showing the situation where the bottom face of the container model is designated as the face of the workpiece model or the face of the workpiece model is configured through user operation.
[0033] Figure 21 It is a diagram showing the situation where multiple workpiece models are positioned at user-specified locations on the bottom surface of a container model.
[0034] Figure 22 It is a diagram showing the state of the workpiece model whose position has changed due to interference with the container model.
[0035] Figure 23 This is a diagram showing the situation where the upper surface of the workpiece model, which is placed on the upper surface of the worktable model, is designated as the face where the workpiece model is removed or the face where the workpiece model is placed.
[0036] Figure 24 This diagram shows the situation where the operator has selected a grid point on the bottom surface of a three-dimensional grid as the location of the workpiece model to be removed.
[0037] Figure 25 This is a diagram showing the configuration of the workpiece model at the grid points selected by the operator.
[0038] Figure 26 This is a diagram showing the configuration of the workpiece model at the grid points selected by the operator.
[0039] Figure 27 This diagram shows a situation where the position of the workpiece model has been changed so that the contact between the bottom surface of the workpiece model and the upper surface of the worktable model becomes better.
[0040] Figure 28 This is a diagram showing the configuration of the workpiece model at the grid points selected by the operator.
[0041] Figure 29 This diagram shows a change in the position of the workpiece model to ensure good contact between the bottom and top surfaces of the workpiece model.
[0042] Figure 30 This is a functional block diagram of the robot programming device according to the second embodiment.
[0043] Figure 31 This is a flowchart illustrating the program creation process of the second embodiment.
[0044] Figure 32 It is a diagram showing the operator moving the cursor to specify a point on the upper surface of the workbench model.
[0045] Figure 33 This is a diagram showing the state where the workpiece model is configured at the specified gripping points on the surface where the workpiece model is removed.
[0046] Figure 34 It is a diagram that shows the configuration of a three-dimensional grid based on the grab point.
[0047] Figure 35 This is a diagram showing the orientation of the workpiece model after adjustment.
[0048] Figure 36 This is a diagram showing the status of changes in the grab points.
[0049] Figure 37 This is a diagram showing an example of a user interface used to set parameters for a three-dimensional grid. Detailed Implementation
[0050] Next, embodiments of the present disclosure will be described with reference to the accompanying drawings. In the referenced drawings, the same structural or functional parts are labeled with the same reference numerals. For ease of understanding, the scale of these drawings has been appropriately altered. Furthermore, the embodiments shown in the drawings are examples for carrying out the invention, and the invention is not limited to the illustrated embodiments.
[0051] The following describes two embodiments of a robot programming apparatus according to the present disclosure. These two embodiments of the robot programming apparatus include: a model configuration unit that configures a robot system model comprising a robot model, a manipulator model mounted on the robot model, and a workpiece model in a virtual space; a surface designation unit that accepts user operations that designate the surfaces involved in a specified operation performed by the robot model on the workpiece model in the virtual space; a grid configuration unit that configures a three-dimensional grid in the virtual space based on the specified surfaces or points on those surfaces; a posture setting unit that sets the posture of the robot model, in which the manipulator model grasps the workpiece model at grid points configured on the three-dimensional grid; and a teach point generation unit that generates teach points constituting the motion program of the specified operation based on the grid points of the workpiece model configured and the posture of the robot model set at those grid points. According to this structure, when an operator specifies a surface involved in a task within a virtual space, a three-dimensional grid is prompted based on that surface or points on that surface (e.g., a three-dimensional grid is prompted on that surface). This enables the generation of teach points constituting an action program, which includes actions of grasping a workpiece model arranged in the grid points within the three-dimensional grid. As detailed below, this structure facilitates the operation of workpiece-oriented action programs for robot teaching, enabling more efficient robot programming.
[0052] First Implementation Method
[0053] Figure 1 This is a diagram showing the external structure of a robot programming device 10 according to one embodiment. Figure 2 This is a functional block diagram of the robot programming device 10. The robot programming device 10 can be composed of various information processing devices such as personal computers, laptops, and tablet terminals. The robot programming device 10 provides the following functions: configuring a robot system model containing a robot model in virtual space to simulate the robot's actions and perform programming.
[0054] like Figure 1 As shown, the robot programming device 10 includes a display unit 12 for displaying various images related to programming and an operation unit 13 for allowing the operator to perform various operation inputs. The display unit 12 may include, for example, a liquid crystal display (LCD). The operation unit 13 may include, for example, an input device such as a keyboard, mouse, or touchpad. A three-dimensional model of the robot, etc., is stored in a storage unit 14. Figure 2The robot programming device 10 may also have a general computer structure, including a memory (ROM, RAM, non-volatile memory, etc.), a display unit 12, an operation unit 13, a storage unit 14, a network interface, and various input / output interfaces connected to the processor 11.
[0055] like Figure 2 As shown, the robot programming device 10 includes: a virtual space creation unit 111, a model configuration unit 112, a surface designation unit 113, a grid configuration unit 114, a grid spacing setting unit 115, a grid range setting unit 116, a grid point selection unit 117, a workpiece model orientation setting unit 118, an interference detection unit 119, a bottom surface contact determination unit 120, a workpiece model position changing unit 121, a posture setting unit 122, a teach point generation unit 123, a simulation execution unit 124, and a gripping position setting unit 125. These functional blocks can also be implemented by the processor 11 executing software.
[0056] The robot programming device 10 includes a storage unit 14. The storage unit 14 may be configured as a storage device such as a non-volatile memory or an HDD. The storage unit 14 stores three-dimensional models of the objects constituting the robot system model, configuration information, and various setting information required for simulation and programming.
[0057] The virtual space creation unit 111 generates a virtual space for arranging three-dimensional models of various objects constituting the robot system model within the memory space of the robot programming device 10. A three-dimensional image of the robot system model arranged in the virtual space is displayed on the display unit 12.
[0058] The model configuration unit 112 provides the following function: based on the configuration information of various objects constituting the robot system model, it configures the three-dimensional models of various objects constituting the robot system model containing the robot in the virtual space.
[0059] The face designation unit 113 provides the function of designating the faces involved in the prescribed operations of the robot model. Specifically, the face designation unit 113 may also have the function of accepting the designation of faces or points on faces of objects arranged in virtual space based on external input or user operation.
[0060] The grid configuration unit 114 provides the function of generating and configuring a grid with three-dimensional extension (hereinafter also referred to as a three-dimensional grid) in a virtual space. The grid configuration unit 114 may have the function of automatically generating a three-dimensional grid, or it may have the function of generating a three-dimensional grid based on information specified by external input or user operation. As described later, the three-dimensional grid is used to improve operability when the operator is taught the acquisition position, placement position, approach point, separation point, etc., of the workpiece model.
[0061] The grid spacing setting unit 115 has the following function: setting the grid spacing of the three-dimensional grid generated by the grid configuration unit 114. The grid spacing setting unit 115 may have the function of automatically setting the grid spacing, or it may have the function of accepting the specification of the grid spacing based on external input or user operation.
[0062] The grid range setting unit 116 provides the following function: setting the spatial range of a three-dimensional grid. The grid range setting unit 116 may have the function of automatically setting the spatial range of a three-dimensional grid based on specified information, or it may have the function of accepting the specification of the spatial range of a three-dimensional grid based on external input or user operation. The parameters specifying the spatial range may include at least one of position, size, shape, and vertex position. For example, when the three-dimensional grid has a cuboid shape, the spatial range of the three-dimensional grid can be determined by information representing the position and size (dimensions in the longitudinal, transverse, and height directions) of the three-dimensional grid.
[0063] The grid point selection unit 117 provides the following function: selecting grid points within a three-dimensional grid. The grid point selection unit 117 may also have the function of accepting grid point selections based on external input or user operation.
[0064] The workpiece model orientation setting unit 118 provides the following function: setting the orientation (posture) of the workpiece model configured in the virtual space. The workpiece model orientation setting unit 118 may have the function of accepting the specification of the orientation (posture) of the workpiece model based on external input or user operation.
[0065] The interference detection unit 119 provides the following function: detecting interference between object models based on information representing the position and shape of various object models configured in the virtual space. For example, the interference detection unit 119 can detect interference between workpiece models configured in the virtual space, and interference between workpiece models and peripheral equipment models. The interference detection unit 119 may also have the function of displaying a warning or displaying information in a way that allows the operator to identify the part where interference has occurred when interference is detected between object models. The interference detection unit 119 may also have the function of changing the position of the object models without causing interference when interference is detected.
[0066] The bottom surface contact determination unit 120 provides the function of determining the contact state between the bottom surface of the workpiece model and the surface on which the workpiece model is placed. For example, the bottom surface contact determination unit 120 detects a situation where the bottom surface of the workpiece model partially protrudes from the upper surface of the worktable model on which the workpiece model is placed. The bottom surface contact determination unit 120 may have the function of issuing a warning when it determines that the contact state between the bottom surface of the workpiece model and the surface on which the workpiece model is placed is poor, or displaying a message in a manner that allows the operator to recognize the poor contact state between the bottom surface of the workpiece model and the surface on which the workpiece model is placed.
[0067] The workpiece model position changing unit 121 provides the following function: changing the position of the workpiece model. For example, the workpiece model position changing unit 121 may have the following function: when interference is detected between object models by the interference detection unit 119, or when the bottom surface contact determination unit 120 determines that the contact state between the bottom surface of the workpiece model and the surface on which the workpiece model is placed is poor, it automatically changes the placement position of the workpiece model based on information related to the placement position and shape of various object models. The workpiece model position changing unit 121 may also have the following function: changing the position of the workpiece model according to user operation.
[0068] The posture setting unit 122 provides the following function: setting the posture of the robot model. The posture setting unit 122 may have the function of automatically setting the posture of the robot model at the selected grid point, or it may have the function of accepting user operations that specify the posture of the robot model at the selected grid point.
[0069] The teach point generation unit 123 provides the following function: it generates teach points that constitute the robot's motion program based on the position of the robot model as a grid point within a three-dimensional grid and the pose of the robot model set for that position. The position of the robot as a grid point within a three-dimensional grid can include the acquisition position, placement position, approach point, separation point, etc., for the workpiece model.
[0070] The simulation execution unit 124 provides the following functions: performing simulation of the robot system model. In the simulation, in addition to simulating the actions of the three-dimensional models of each device containing the robot model on the display screen (virtual space), it also includes performing numerical calculations of the position and posture of the robot model and the models of other devices.
[0071] Figure 3 This is a flowchart illustrating the process of creating motion programs for the robot in the robot programming device 10 (program creation process). This program creation process is executed under the control of the processor 11.
[0072] When the program production process is started by the operator performing the prescribed operation, firstly, the model configuration unit 112 configures the robot system model, which includes the robot model, the manipulator model mounted on the robot model, and the workpiece model, in the virtual space created by the virtual space production unit 111 (step S11).
[0073] Figure 4 This indicates that a robot system model 100M has been configured in the workspace, which serves as a virtual space. This is displayed on the screen of display unit 12. Figure 4 The following diagrams show images representing states within the virtual space. Figure 4 In the example shown, a robot system model 100M is configured including robot model 30M and worktable models 91M and 92M. A robotic arm model 31M is attached to the forearm of the arm of robot model 30M. Hereinafter, it is assumed that... Figure 4 The process of transferring the workpiece model from workbench model 91M to workbench model 92M via robot model 30M in robot system model 100M is used to illustrate the production process of this program. Figure 4 The text indicates that the robot coordinate system C1 is set at the base of the 30M robot model. Figure 4 The circle in the lower right corner indicates the directions of the coordinate axes (X, Y, Z axes) of the robot coordinate system C1. Information about the position (including pose) and shape of each object model in the virtual space can also be represented using this robot coordinate system C1.
[0074] also, Figure 4 The structure of the robot system model 100M shown is an example, and various robot system models can be constructed according to the task requirements. For example, peripheral equipment models (including workbenches, containers, conveying devices, etc.), machine tool models, sensor models, and other object models can also be configured within the robot system model. Furthermore, this illustration shows an example of using a vertical multi-joint robot model as the robot model 30M, but other types of robot models, such as horizontal multi-joint robots, parallel linkage robots, and dual-arm robots, can also be used depending on the task requirements.
[0075] Next, as Figure 5 As shown, the gripping position setting unit 125 sets the position of the workpiece model WM relative to the robot model 31M when the robot model 31M grips the workpiece model WM of the work object as the gripping position (step S12). The gripping position indicates the position and posture of the workpiece model based on the robot model 31M when the robot model 31M properly grips the workpiece model WM. Therefore, when the position of the workpiece model WM is set as the gripping position in virtual space, the position and posture of the robot model 31M (i.e., the position and posture of the robot model 30M) can be determined.
[0076] Next, the surface designation unit 113 accepts user operations that specify the surface of the workpiece model WM to be retrieved in the virtual space (the surface of the transfer source) or the surface of the workpiece model WM to be configured (the surface of the transfer destination) (step S13). Figure 6 As shown, the operator can use the indicator device of the operation unit 13 to operate the cursor R on the display screen to specify a point on the surface of the workpiece model WM to be removed or to configure a point on the surface of the workpiece model WM. Figure 6 The diagram shows the state where the upper surface 91a of the workbench model 91M is designated as the face from which the workpiece model WM is removed, and the upper surface 92a of the workbench model 92M is designated as the face from which the workpiece model WM is configured.
[0077] When a face of the workpiece model WM is selected or a face of the workpiece model WM is configured, the grid configuration unit 114 then configures a three-dimensional grid based on a point on the face of the workpiece model WM or a point on the face of the workpiece model being configured (step S14). Here, configuring a three-dimensional grid based on a certain point corresponds to configuring a three-dimensional grid with a predetermined positional relationship relative to that point (reference point). Alternatively, the grid configuration unit 114 may also configure a three-dimensional grid based on a specified face. Here, configuring a three-dimensional grid based on a certain face corresponds to configuring a three-dimensional grid with a predetermined positional relationship relative to that face. As an example, in Figure 7 The text indicates that three-dimensional grids 51 and 52 are respectively configured on the upper surfaces of the workbench models 91M and 92M.
[0078] Three-dimensional grids 51 and 52 are each composed of multiple cubes arranged at equal intervals, forming a rectangular parallelepiped shape as a whole. 3D grid 51 is configured such that the center (geometric center) of its base coincides with the center (geometric center) of the upper surface of the worktable model 91M. The dimensions of 3D grid 51 are such that its horizontal (X, Y axis) size is equal to the horizontal (X, Y axis) size of the upper surface of the worktable model 91M, and its height can be set to a standard size covering the vertical movement range of the robot model 30M during operation. Similarly, 3D grid 52 is configured such that the center (geometric center) of its base coincides with the center (geometric center) of the upper surface of the worktable model 92M. Furthermore, 3D grid 52 is configured such that its horizontal (X, Y axis) size is equal to the horizontal (X, Y axis) size of the upper surface of the worktable model 91M, and its height is set to the same height as 3D grid 51.
[0079] The parameters, including the spatial extent (size) and grid spacing of the three-dimensional grid, can be automatically generated by the grid configuration unit 114 according to the information specified in the job content, or they can be specified through external input or user operation.
[0080] When the robot programming device 10 automatically generates a three-dimensional grid, for example, the grid range setting unit 116 can set the range of the three-dimensional grid such that the bottom surface of the three-dimensional grid covers the entire surface designated as the surface where the workpiece model is taken out or the surface where the workpiece model is placed. In this case, the height of the three-dimensional grid can also be set to a standard height that includes the movement range of the robot in various operations.
[0081] When the robot programming device 10 automatically generates a three-dimensional grid, the grid spacing setting unit 115 can, for example, set the grid point spacing within the three-dimensional grid based on the overall size of the three-dimensional grid or based on the task content. When the grid spacing setting unit 115 sets the grid point spacing based on the overall size of the three-dimensional grid, for example, the grid point spacing can be set proportionally to the overall size of the three-dimensional grid. When the grid spacing setting unit 115 sets the grid point spacing based on the task content, for example, if the task content of the robot model 30M is a high-precision task such as "setting the workpiece in the workpiece machining position within the machine tool model," the grid point spacing of the three-dimensional grid can be set to a finer, more precise spacing. Thus, when the task content is intended for precise operation, the grid point spacing can be set to a finer spacing.
[0082] In this way, the grid spacing of the three-dimensional grid can be set to a value corresponding to the task content. However, as an example, the following might be considered: In the case of envisioning a task where a robot model moves a workpiece model from 30 meters away, the ground within the work space is allocated... Figure 7 The grid shown is given, and the grid spacing d is set to 1000mm. The grid point spacing k1 of the three-dimensional grid is set to 100mm.
[0083] When the robot programming device 10 allows the user to specify the spatial range and grid point spacing of the three-dimensional grid, the grid configuration unit 114 can also provide a user interface on the display screen of the display unit 12 to accept user operations that specify the range and grid point spacing of the three-dimensional grid. Such a user interface can also be provided through the cooperation of the grid configuration unit 114, the grid range setting unit 116, and the grid spacing setting unit 115. Figure 37 This represents an example of a user interface 200 with such functionality. Figure 37The user interface 200 shown includes input fields 201 and 202 for specifying the spatial extent (here, dimensions) and grid point spacing of the three-dimensional grid. The operator can input the dimensions of the three-dimensional grid along the X, Y, and Z axes (X, Y, and Z axes in the robot coordinate system) in input field 201, and input the grid point spacing value in input field 202. By specifying values in these input fields 201 and 202, the operator can adjust the extent and grid point spacing of the three-dimensional grid automatically generated by the grid configuration unit 114, or generate a three-dimensional grid with the specified extent and grid point spacing. Furthermore, the user interface may also include an input field for specifying the location used as a reference for configuring the three-dimensional grid (e.g., where on a surface specified by the operator is the reference point for configuring the three-dimensional grid).
[0084] Return to Figure 3 The flowchart shows that, next, the grid point selection unit 117 accepts a user operation that specifies at least one grid point of three-dimensional grid 51 or 52 on the surface where the workpiece model is extracted or on the surface where the workpiece model is configured (step S15). Figure 8 The text indicates that the operator moves the cursor R to specify the status of grid point G1 on the face of the workpiece model that is being removed. Additionally, in... Figure 8 The left side shows the view of the 30M robot model from above. Figure 8 The right side shows the view of the robot model 30M from the front. The grid point G1 selected on the surface where the workpiece model is removed is set as the position (holding position) of the workpiece model to be removed. The grid point selected on the surface where the workpiece model is positioned is set as the position (holding position) of the workpiece model to be positioned.
[0085] The model configuration unit 112 configures the workpiece model WM at the position (holding position) set in step S15 as the position where the workpiece model should be removed (step S16). Figure 9 This indicates the state where the workpiece model WM is positioned at the grid point G1 selected in step S15. Furthermore, in Figure 9 The left side represents the view from above the 30M robot model. Figure 9 The right side represents the state of the robot model 30M as viewed from the front.
[0086] Here, the workpiece model orientation setting unit 118 can accept user operations that change the orientation (posture) of the workpiece model configured in step S15. For example... Figure 10 As shown on the right, the workpiece model orientation setting unit 118 can be configured to accept user operations that cause the workpiece model WM to rotate about axis A1, which is perpendicular to the surface where the workpiece model is removed and passes through the holding position (grid point G1) of the workpiece model WM. Through this function, the operator can position the workpiece model WM in the desired orientation (posture). Furthermore, in Figure 10 The left side represents the state of the workpiece model WM as viewed from above the robot model 30M, indicating the adjustment of its orientation. Figure 9 The right side indicates the state of adjusting the orientation of the workpiece model WM when viewed from the front of the robot model 30M.
[0087] Next, the posture setting unit 122 sets the posture of the robot model 30M so that the robot model 30M (manipulator model 31M) holds the workpiece model WM at the position (grid point G1) set in step S16 (step S17). Here, the posture of the robot model 30M is set using the holding position set in step S12, which determines the position of the workpiece model relative to the manipulator model. Figure 11 In step S17, the posture of the robot model 30M (manipulator model 31M) is set so that the manipulator model 31M properly holds the workpiece model WM. Furthermore, in... Figure 11 The left side represents the state of the robot model 30M as viewed from above, with the robot model 30M in its set pose. Figure 11 The right side indicates the state of the robot model 30M as viewed from the front, showing the pose of the robot model 30M.
[0088] Furthermore, regarding the position of the workpiece model set in step S16, the posture setting unit 122 similarly sets the posture of the robot model 30M (manipulator model 31M) when placing the workpiece model WM. In this case, the gripping position set in step S12, which determines the position of the workpiece model relative to the manipulator model, is also used.
[0089] Based on the position and posture of the robot model 30M when it removes the workpiece model, the teaching point generation unit 123 can generate teaching points for the robot arm model when removing the workpiece model as teaching points for constituting the motion program (step S18). Furthermore, based on the position and posture of the robot model 30M when it places the workpiece model, as described above, the teaching point generation unit 123 can generate teaching points for the robot arm model when placing the workpiece model as teaching points for constituting the motion program (step S18). Teaching points are information that defines the position and posture of a specified part of the robot model 30M (e.g., the robot arm model 31M). Figure 12 This indicates that the teaching point P1 has been set so that the workpiece model WM is retrieved by the robot model 31M. Furthermore, in Figure 12 The left side represents the state of the teaching point P1, set when the workpiece model WM is retrieved by the robotic arm model 31M, as viewed from above by the robot model 30M. Figure 12The right side represents the state of the teaching point P1, which is set when the robot model 30M takes out the workpiece model WM through the manipulator model 31M, as viewed from the front.
[0090] The grid point selection unit 117 is capable of handling further operations for selecting grid points that should be set as teaching points constituting an action program. For example, the grid point selection unit 117 handles operations for selecting approach points and separation points as positions on the grid points, the approach points being used to approach the workpiece model positioned on the surface where the workpiece model is removed, and the separation points being used to separate from the surface where the workpiece model is removed after removal. For this purpose, such as... Figure 13 As shown, the grid point selection unit 117 accepts the operation of selecting grid points that are not present on the surface of the workpiece model taken out in the three-dimensional grid 51 (step S19). Figure 13 This indicates that the operator moves the cursor R and selects grid points G2 and G3 as approach and separation points, respectively. Grid points G2 and G3 corresponding to the approach and separation points are selected, for example, from the grid points in the upper vertical direction of grid point G1 (teaching point P1) corresponding to the position of the workpiece model. The posture setting unit 122 can also determine the posture of the robot model 30M (manipulator model 31M) by assuming the workpiece model is held at these grid points G2 and G3 when setting the posture of the robot model 30M at these grid points G2 and G3.
[0091] Therefore, as Figure 14 As shown, the teaching point generation unit 123 can generate a teaching point P2 corresponding to the approach point and a teaching point P3 corresponding to the separation point (step S20). That is, the teaching point generation unit 123 can generate an action program that moves along path L1 in the order of teaching points P2, P1, and P3 to perform the workpiece model removal action. Furthermore, in Figure 14 The example shown is an illustration of teaching points P2 and P3 arranged vertically with teaching point P1 as the reference. However, the arrangement of teaching points P2 and P3 may not be vertically based on teaching point P1. In addition, intermediate teaching points may be added between teaching point P1 (holding position) and teaching point P3 (separation point).
[0092] Regarding the operation of configuring the workpiece model, the grid point selection unit 117 also handles the operation of selecting approach points and separation points as grid points within the three-dimensional grid 52. The approach points are used to approach the face where the workpiece model is configured, and the separation points are used to separate from the workpiece model after it has been configured. For this purpose, in step S19, the grid point selection unit 117 handles the operation of selecting grid points in the three-dimensional grid 52 that are not present on the face where the workpiece model is placed. Thus, as... Figure 15As shown, the teaching point generation unit 123 can generate a teaching point P4 corresponding to the approach point in the action of configuring the workpiece model and a teaching point P6 corresponding to the separation point (step S20). In addition, the teaching point P5 is the teaching point generated in step S18 for configuring the workpiece model through the robot model.
[0093] Therefore, the teaching point generation unit 123 can generate an action program for retrieving and configuring the workpiece model by moving along path L2 in the order of teaching points P2, P1, P3, P4, P5, and P6.
[0094] As described above, in the program creation process of this embodiment, the operator can easily teach the position of the workpiece model, the position of the workpiece model, the approach point, the separation point, etc., and generate the motion program by using a pointing device such as a mouse to specify grid points. A three-dimensional grid is displayed on the workspace, so the operator can grasp the position of the workpiece model, the position of the robot model, or the positional relationship between the workpiece model or the robot model and other objects (workpiece, worktable, etc.) by using the grid points of the three-dimensional grid or the lines connecting the grid points as a reference. This allows for easy and reliable positioning of the workpiece model and robot model in the desired position, and also enables posture adjustments. Furthermore, the parameters of the three-dimensional grid (spatial range, grid point interval, reference position, etc.) can be automatically set, or can be specified by the operator. Therefore, the operator can easily and efficiently create motion programs according to the work content.
[0095] By repeatedly executing the teaching steps (S15 to S19) in the above-mentioned program production process for taking out the workpiece model from the specified position and placing it in the specified position, it is also possible to generate an action program that takes out multiple workpiece models placed on the surface where the workpiece model is taken out and places them on the surface where the workpiece model is placed (the surface of the transfer destination). Figure 16 This indicates that through such teaching, a motion program is generated that configures multiple workpiece models WM, which are configured on the upper surface of the worktable model 91M, on the upper surface of the worktable model 92M.
[0096] Next, refer to Figures 17 to 22 The function of the interference detection unit 119 will be explained. As described above, multiple workpiece models to be removed can also be arranged on the surface where the workpiece model is removed. When multiple grid points are selected as the positions of the workpiece models on the surface where the workpiece models are removed, the interference detection unit 119 can provide the following functions: detect interference between workpiece models or between workpiece models and other objects, and change the position of the workpiece models so that interference does not occur.
[0097] like Figure 17As shown, imagine an operator selecting grid points G11 and G12 as positions of the workpiece model on the surface where the workpiece model is removed (the upper surface of the worktable model 91M) using the grid point selection unit 117. Furthermore, in Figure 17 The left side represents the state of selected grid points G11 and G12 as viewed from above the robot model (30M). Figure 17 The right side represents the state of the selected grid points G11 and G12 when viewed from the front of the robot model 30M.
[0098] In this case, such as Figure 18 As shown, the workpiece models W2M and W3M are positioned at grid points G1 and G2 respectively on the surface where the workpiece model is removed (the upper surface of the workbench model 91M) by the model placement unit 112. Furthermore, in Figure 18 The left side shows an image viewed from above the robot model 30M, showing the situation where workpiece models W2M and W3M are positioned at grid points G1 and G2. Figure 18 The image on the right shows the situation where workpiece models W2M and W3M are configured at grid points G1 and G2, as viewed from the front of robot model 30M.
[0099] like Figure 18 As shown, workpiece models W2M and W3M partially overlap. The interference detection unit 119 can detect the interference between workpiece models W2M and W3M based on information related to their positions and shapes.
[0100] When interference between workpiece models is detected by the interference detection unit 119, the workpiece model position changing unit 121 can change the position of the workpiece model at the grid point on the upper surface of the worktable model 91M without causing interference. Figure 19 The diagram illustrates the situation where the position of workpiece model W3M is changed to grid point G13 via workpiece model position changing unit 121. This eliminates the interference between workpiece models W2M and W3M. Furthermore, in... Figure 19 The left side represents the state of the workpiece model W3M, viewed from above the robot model 30M, where the position has changed to grid point G13. Figure 19 The right side indicates the state of the workpiece model W3M changing its position to grid point G13 when viewed from the front of the robot model 30M.
[0101] Figure 20This diagram illustrates an example where a container model 93M is configured as a peripheral device model in virtual space, and the bottom surface of the container model 93M is designated by the user as the face from which the workpiece model is retrieved or configured. In this case, the grid configuration unit 114 configures a three-dimensional grid 53 based on points on the bottom surface of the container model 93M. Figure 20 In the example, the size of the three-dimensional grid 53 is determined such that the center of the grid point of its bottom surface coincides with the center of the bottom surface of the container model 93M, extending to the entire containment space of the container model 93M.
[0102] Container model 93M is used to contain workpiece models that should be removed, or to place workpiece models removed from a specific location. During the above-described process, the operator performs the following operation: selecting grid points on the bottom surface of container model 93M as the positions for removing or placing workpiece models. Figure 21 As an example, the following situation is illustrated: Container model 93M is used as a container to hold workpiece models that should be removed, and multiple workpiece models WM are positioned at user-specified locations on the bottom surface of container model 93M. Furthermore, in Figure 21 The left side shows the state of the workpiece model being housed on the bottom surface of the container model 93M, as viewed from above by the robot model 30M. Figure 21 The right side shows the state of the workpiece model being contained on the bottom surface of the container model 93M, as viewed from above the robot model 30M.
[0103] like Figure 21 As shown on the left, a portion of the workpiece model WM, placed at grid point G14 specified by the operator, protrudes outward from the wall of the container model 93M. The interference detection unit 119 can detect the interference between the workpiece model WM and the container model 93M based on information representing the position and shape of each object model (here, the workpiece model WM and the container model 93M).
[0104] If interference is detected by the interference detection unit 119 between the workpiece model WM and the container model 93M, the workpiece model position changing unit 121 can change the position of the workpiece model WM so that it does not interfere with the container model 93M. For example, the workpiece model position changing unit 121 moves the workpiece model WM toward the inside of the container model 93M so that it does not interfere with the wall of the container model 93M. At this time, the workpiece model position changing unit 121 considers that the moved workpiece model does not come into contact with other workpiece models. Figure 22The diagram illustrates how the workpiece model WM, which interferes with the container model 93M, is repositioned to grid point G15 via the function of the workpiece model position changing unit 121. At grid point G15, the workpiece model WM is appropriately positioned without interfering with the container model 93M. Furthermore, in... Figure 22 The left side represents the state where the position of the workpiece model WM changes to grid point 15 when viewed from above by the robot model 30M. Figure 21 The right side indicates the state of the workpiece model WM, viewed from diagonally above the robot model 30M, where the position has changed to grid point 15.
[0105] The interference detection unit 119 may also have the following functions: when interference between the workpiece model WM and the container model 93M is detected, it may issue a warning or display a message that allows the operator to identify the interference. For example, when interference is detected, the interference detection unit 119 may issue an alarm sound, display a warning message on the display screen, or emphasize the location of the interference. In this case, the operator can identify that interference has occurred between the workpiece model WM and the container model 93M (i.e., the grid point G14, which is the position of the workpiece model, is inappropriate). The operator can also change the position of the workpiece model to avoid interference through the functions of the grid point selection unit 117 and the workpiece model position changing unit 121.
[0106] In the above description of the process, examples were given of designating the upper surface of the workbench model 91M or 92M as the face from which the workpiece model is removed or configured. The following will refer to... Figures 23 to 25 This section records other examples related to the faces of the workpiece model that are removed or the faces of the workpiece model that are configured.
[0107] like Figure 5 As shown, imagine the following situation: In a virtual space, configure robot model 30M and workbench models 91M and 92M. On workbench models 91M and 92M, as shown... Figure 23 and Figure 24 Multiple workpiece models have been arranged as shown. In this situation, as... Figure 23 As indicated by the thick arrow, the operator can also designate the upper surface of the workpiece model WM, which is positioned on the upper surface of the worktable model 91M, as the face where the workpiece model is removed, and designate the upper surface of the workpiece model WM, which is positioned on the upper surface of the worktable model 92M, as the face where the workpiece model is positioned.
[0108] In this case, such as Figure 23As shown, the grid configuration unit 114 arranges a three-dimensional grid 54 on a plane containing the upper surface of the specified workpiece model WM. The position of the three-dimensional grid 54 can also be determined at a predetermined position based on the center of the upper surface of the specified workpiece model WM. For example, the three-dimensional grid 54 can also be configured such that one of the grid points on its bottom surface coincides with the center of the upper surface of the specified workpiece model WM. Regarding the horizontal dimension of the three-dimensional grid 54, it can be determined in such a way that it covers the area of the upper surface of the worktable model 91M on which the specified workpiece model WM is placed, or in such a way that it covers the area of the group of workpiece models located at a predetermined distance from the specified workpiece model WM. The height and grid point spacing of the three-dimensional grid 54 can also be determined from the same perspective as the case of the three-dimensional grid 51 described above. Regarding the spatial range and grid point spacing of the three-dimensional grid 55, it can also be determined in the same way as the three-dimensional grid 54.
[0109] The operator can select a grid point on the bottom surface of the three-dimensional grid 54 corresponding to the upper surface of the workpiece model WM as the position of the workpiece model to be removed. Figure 24 This indicates that the operator selected grid point G16 on the bottom surface of 3D grid 54 as the location for the workpiece model to be retrieved. Furthermore, in... Figure 24 The left side represents the state of the selected grid point G16 as viewed from above the robot model at a height of 30M. Figure 24 The right side represents the state of the selected grid point G16 when viewed from the front of the robot model 30M.
[0110] The model configuration unit 112 configures the workpiece model at the grid points selected by the operator. Figure 25 The text indicates the state where the workpiece model W5M is positioned at grid point G16 via the model configuration unit 112. Furthermore, in... Figure 25 The left side represents the state of the workpiece model W5M positioned at grid point G16, as viewed from above by the robot model 30M. Figure 25 The right side represents the state of the workpiece model W5M configured at grid point G16, as viewed from the front of the robot model 30M.
[0111] In this way, the operator can also designate the upper surface of the workpiece model already stacked on the worktable model as the face where the workpiece model is removed or the face where the workpiece model is configured. Additionally, the operator can also select grid points in the 3D grid 55 for configuring the workpiece model. Therefore, regarding program creation processing ( Figure 3 As mentioned above, the operator can also use the three-dimensional grids 54 and 55 to teach the motion program for transferring the workpiece model W5M.
[0112] Next, refer to Figures 26 to 29The function of the bottom surface contact determination unit 120 will be explained. The bottom surface contact determination unit 120 has the following function: determining whether the bottom surface of the workpiece model is in proper contact with the surface designated as the surface from which the workpiece model is removed or the surface on which the workpiece model is placed. For example... Figure 26 As shown, the following scenario is envisioned: the operator selects grid point G20 on the bottom surface of the 3D grid 51 (the upper surface of the workbench model 91M) as the location of the workpiece model to be retrieved, and the workpiece model WM is positioned at grid point G20. Furthermore, in Figure 26 The left side represents the state of the workpiece model WM positioned at grid point G20, as viewed from above by the robot model 30M. Figure 26 The right side represents the state of the workpiece model WM configured at grid point G20, as viewed from the front of the robot model 30M.
[0113] like Figure 26 As shown on the left, the workpiece model WM protrudes from the upper surface of the worktable model 91M as part of it. The bottom surface contact determination unit 120 can detect whether the bottom surface of the workpiece model WM is in proper contact with the surface where the workpiece model is removed or the surface where the workpiece model is placed, based on information indicating the position and shape of the workpiece model WM and the worktable model 91M.
[0114] The workpiece model position change unit 121 may also have the following function: automatically correcting the position of the workpiece model when the bottom surface contact determination unit 120 detects that the contact state between the workpiece model and the specified surface is poor. Figure 27 The following situation is indicated: the workpiece model WM is repositioned to grid point G21 by the workpiece model position changing unit 121 to ensure good contact between the workpiece model WM and the upper surface of the worktable model 91M. In this case, the workpiece model position changing unit 121 moves the workpiece model WM on the upper surface of the worktable model 91M in a direction from the outer edge towards the inner side, so that the entire bottom surface of the workpiece model WM is in contact with the upper surface of the worktable model 91M. Furthermore, in Figure 27 The left side represents the state of the workpiece model WM as viewed from above the robot model 30M, where the position has changed to grid point G21. Figure 27 The right side indicates the state of the workpiece model WM changing its position to grid point G21 when viewed from the front of the robot model 30M.
[0115] Next, as shown in the reference Figure 23 and Figure 24 As in the example above, suppose the following situation occurs: the operator designates the upper surface of the workpiece model, which has already been arranged on the worktable model 91M, as the face from which the workpiece model will be removed, generating a 3D grid 54. Here, suppose the following situation occurs: the operator... Figure 28As shown, grid point G25 is selected as the location of workpiece model W6M, and workpiece model W6M is positioned at grid point G25. Furthermore, in Figure 28 The left side represents the state of the workpiece model W6M positioned at grid point G25 as viewed from above by the robot model 30M. Figure 28 The right side represents the state of the workpiece model W6M positioned at grid point G25 as viewed from the front of the robot model 30M.
[0116] like Figure 28 As shown on the left, the bottom surface of workpiece model W6M is offset from the upper surface of the lower workpiece model WM, resulting in an undesirable contact between the bottom surface of workpiece model W6M and the upper surface of workpiece model WM. The bottom surface contact determination unit 120 is capable of detecting this condition.
[0117] The workpiece model position changing unit 121 can have the following function: automatically adjusting the position of the workpiece model when the bottom surface contact determination unit 120 detects poor contact between the workpiece model and the specified surface (the upper surface of the workpiece model WM). Figure 29 The following situation is described: the workpiece model W6M is repositioned to grid point G26 by the workpiece model position changing unit 121 to ensure good contact between the bottom surface and the top surface of the workpiece model W6M. In this case, the workpiece model position changing unit 121 moves the workpiece model W6M so that the entire bottom surface of the workpiece model W6M contacts the top surface of the workpiece model W6M. Furthermore, in... Figure 29 The left side represents the state of the workpiece model W6M as viewed from above the robot model 30M, where the position has changed to grid point G26. Figure 29 The right side indicates the state of the workpiece model W6M changing its position to grid point G26 when viewed from the front of the robot model 30M.
[0118] If a poor contact condition is detected between the bottom surface of the workpiece model and a designated surface, the bottom surface contact determination unit 120 may issue a warning or display an indication of the poor contact condition. In this case, the bottom surface contact determination unit 120 may, for example, issue an alarm sound, display a warning message on the display screen, or emphasize the portion of the bottom surface of the workpiece model that is not in contact with the designated surface. Thus, the operator can identify the location of the poor contact condition between the bottom surface of the workpiece model and the designated surface, and can change the position of the workpiece model using the grid selection unit 117.
[0119] As explained above, according to the first embodiment, a three-dimensional grid is displayed on the face of the robot model that the operator designates as the operation-related face in the virtual space. By selecting grid points within the three-dimensional grid, the operator can easily and efficiently teach the acquisition position, placement position, approach point, separation point, etc. of the workpiece model.
[0120] Therefore, according to the first embodiment, it becomes easier for the operator to operate the robot's teaching action program, and the robot can be programmed more efficiently.
[0121] Second Implementation Method
[0122] The robot programming device 10A according to the second embodiment will be described. The external structure of the robot programming device 10A according to the second embodiment is similar to... Figure 1 The robot programming device 10 shown in the first embodiment is common to this embodiment; therefore, referring to... Figure 1 Its appearance and structure are described.
[0123] Figure 30 This is a functional block diagram illustrating the robot programming device 10A according to the second embodiment. For ease of explanation, in... Figure 30 In this document, function blocks having the same or similar functions as the function blocks of the robot programming device 10 in the first embodiment are labeled with the same reference numerals. For example... Figure 30 As shown, the robot programming device 10A includes: a virtual space creation unit 111, a model configuration unit 112, a surface designation unit 113A, a grid configuration unit 114, a grid spacing setting unit 115, a grid range setting unit 116, a grid point selection unit 117, a workpiece model orientation setting unit 118, an interference detection unit 119, a bottom surface contact determination unit 120, a workpiece model position changing unit 121, a posture setting unit 122, a teach point generation unit 123, a simulation execution unit 124, a gripping position setting unit 125, and a gripping point changing unit 126. In the second embodiment, the surface designation unit 113A provides the following function: the operator designates points on the work-related surface in the virtual space as gripping points for gripping the workpiece model.
[0124] Figure 31 This is a flowchart illustrating the program creation process of the second embodiment. The program creation process is initiated by a pre-defined operation by the operator and executed under the control of the processor 11.
[0125] when Figure 31 When the program creation process begins, firstly, the model configuration unit 112 configures the robot system model 100M, which includes the robot model, the manipulator model, and the workpiece model, in the virtual space created by the virtual space creation unit 111 (step 31). Thus, the configuration in the virtual space... Figure 4The robot model shown is 30M, and the workbench models are 91M and 92M. The following assumes the following situation: In Figure 4 The robot system model 100M, as illustrated, is used for teaching related to the transfer operation of taking out the workpiece model from the worktable model 91M and placing it on the worktable model 92M. The robot system model 100M arranged in virtual space is displayed on the display screen of the display unit 12.
[0126] Next, the gripping position setting unit 125 will use the robotic arm model 31M as... Figure 5 The position of the workpiece model WM relative to the robot arm model 31M (the position and posture of the workpiece model WM based on the robot arm model 31M) when the workpiece model WM can be properly held in the state shown is set as the holding position (step S32). This "holding position" is used when calculating the position and posture of the robot model 30M when the robot model 30M (robot arm model 31M) holds the workpiece model WM placed in the virtual space.
[0127] Next, the surface designation unit 113A accepts user operations that specify points on the surface from which the workpiece model is extracted or points on the surface of the workpiece model are configured in the virtual space (step S33). Figure 32 The following situation is indicated: the operator moves the cursor R by operating the indicator device of the operation unit 13, and points on the upper surface of the workbench model 91M and the upper surface of the workbench model 92M are specified respectively.
[0128] In this case, the surface designation unit 113A sets the points designated on the surface where the workpiece model is taken out (the upper surface of the worktable model 91M) and the points designated on the surface where the workpiece model is placed (the upper surface of the worktable model 92M) as gripping points H1 and H2, respectively, indicating the position of gripping the workpiece model (step S34).
[0129] like Figure 33 As shown, the workpiece model WM is configured by the model configuration unit 112 at the gripping point H1 specified on the surface where the workpiece model is removed (the upper surface of the workbench model 91M). Furthermore, in Figure 33 The left side represents the state of the workpiece model WM positioned at the gripping point H1, as viewed from above by the robot model 30M. Figure 33 The right side represents the state of the workpiece model WM positioned at the gripping point H1, as viewed from the front of the robot model 30M.
[0130] Next, the grid configuration unit 114 configures a three-dimensional grid based on the gripping points (step S35). Figure 34The following configuration is shown: A three-dimensional grid 56 is configured with reference to gripping point H1 via the grid configuration unit 114, and a three-dimensional grid 57 is configured with reference to gripping point H2. As an example, the three-dimensional grid 56 is formed such that one of its grid points on its bottom surface coincides with gripping point H1, covering the entire surface of the workpiece model being removed (the upper surface of the worktable model 91M). Similarly, the three-dimensional grid 57 is formed such that one of its grid points on its bottom surface coincides with gripping point H2, covering the entire surface of the workpiece model being configured (the upper surface of the worktable model 92M). The heights of the three-dimensional grids 56 and 57 can also be set to a standard value covering a 30M working area of the robot model.
[0131] The workpiece model orientation setting unit 118 can provide the following function: adjusting the orientation (posture) of the workpiece model arranged at the gripping point. For example, Figure 35 As shown, the workpiece model orientation setting unit 118 can also be configured to accept user operations that cause the workpiece model WM, positioned at the gripping point H1, to rotate about axis A2, which is perpendicular to the surface of the workpiece model being removed (the upper surface of the worktable model 91M) and passes through the gripping point H1. Furthermore, in Figure 35 The left side represents the state of the workpiece model WM as viewed from above the robot model 30M, indicating the adjustment of its orientation. Figure 35 The right side indicates the state of adjusting the orientation of the workpiece model WM when viewed from the front of the robot model 30M.
[0132] The grab point change unit 126 is configured to accept user operations that change the location of grab points set as described above. Figure 36 The following situation is described: Through the function of the gripping point changing unit 126, the operator changes the position of gripping point H1 to the position of gripping point H3. As a result, the configuration position of the workpiece model WM changes to the position of gripping point H3. Furthermore, in Figure 36 The left side represents the state of the workpiece model WM, viewed from above the robot model 30M, where the position has changed to gripping point H3. Figure 36 The right side indicates the state of the workpiece model WM changing its position to gripping point H3 when viewed from the front of the robot model 30M.
[0133] Next, the posture setting unit 122 sets the posture of the robot model 30M so that the workpiece model WM is held by the robot arm model 31M at the gripping point (step S36). Here, the posture of the robot model 30M (robot arm model 31M) is set so that the robot arm model 31M holds the workpiece model by using the gripping point as the gripping position. The posture setting unit 122 sets the posture of the robot model 30M with respect to both gripping points H1 and H2 so that the robot model 30M (robot arm model 31M) holds the workpiece model WM.
[0134] Based on the position and posture of the robot model 30M when it takes out the workpiece model, the teaching point generation unit 123 can generate a teaching point for the position of the workpiece model (step S37). Furthermore, based on the position and posture of the robot model 30M when it places the workpiece model, as set above, the teaching point generation unit 123 can generate a teaching point for the placement position of the workpiece model (step S37).
[0135] In the next step S38, as described in the first embodiment regarding step S19, the grid point selection unit 117 performs an operation to select grid points in the three-dimensional grid 56 that are not present on the surface where the workpiece model is removed, based on the position of the gripping point H1. Additionally, the grid point selection unit 117 performs an operation to select grid points in the three-dimensional grid 57 that are not present on the surface where the workpiece model is placed, based on the gripping point H2. Thus, as referred to in the first embodiment... Figures 13-14 As explained, it is possible to generate teaching points corresponding to proximity points close to the workpiece model and teaching points corresponding to separation points far from the workpiece model (step S39).
[0136] As a result, through program processing, as described in the first embodiment, Figure 15 As explained, it is possible to generate teach points that constitute an action program, which performs a series of actions such as removing the workpiece model from the face where the workpiece model is removed and placing it on the face where the workpiece model is placed.
[0137] Refer to the first embodiment Figures 17 to 22 The function described above, which is based on the interference detection unit 119 and the workpiece model position change unit 121, to detect interference between workpiece models arranged at grid points or between workpiece models and peripheral device models, and to change the position of workpiece models to eliminate interference, can also be provided in the second embodiment as follows: to detect interference between workpiece models arranged at multiple gripping points or between workpiece models arranged at gripping points and peripheral device models, and to automatically change the position of workpiece models to avoid interference.
[0138] Refer to the first embodiment Figures 26 to 29The functions described above, based on the bottom contact determination unit 120 and the workpiece model position change unit 121, which determine the contact state between the bottom surface of the workpiece model positioned at the grid point and the surface of the workpiece model being removed or the surface of the workpiece model being positioned, and which change the position of the workpiece model to ensure good contact when the contact state is determined to be poor, can also be provided in the second embodiment as follows: the function of determining the contact state between the bottom surface of the workpiece model positioned at the gripping point and the surface of the workpiece model being removed or the surface of the workpiece model being positioned, and the function of changing the position of the workpiece model to ensure good contact when the contact state is determined to be poor.
[0139] As explained above, according to the second embodiment, a three-dimensional grid is displayed based on points (grasping points) on the surfaces of the robot model that the operator designates in the virtual space as the work-related surfaces, and the workpiece model is positioned at the gripping points. The gripping points coincide with one of the grid points on the designated three-dimensional grid surface. Therefore, by selecting grid points within the three-dimensional grid, the operator can easily and efficiently teach the workpiece model to its acquisition position, placement position, approach point, separation point, etc.
[0140] The second embodiment has the advantage of allowing the operator more freedom to set the gripping points of the workpiece model to be configured in the virtual space. For a three-dimensional grid, after being prompted to use the gripping point as a reference, the operator can easily specify various teaching points using the three-dimensional grid as a reference.
[0141] Therefore, according to the second embodiment, it becomes easier for the operator to operate the robot's teaching motion program, enabling more efficient robot programming.
[0142] In the above embodiments, as examples of three-dimensional lattices, a three-dimensional lattice in the shape of a cuboid composed of multiple cubes arranged at equal intervals is described, but the shape of the three-dimensional lattice is not limited to this. The shape of the three-dimensional lattice can take various three-dimensional shapes such as spheres, hemispheres, domes, cylinders, and polyhedra.
[0143] In the example of the three-dimensional lattice described above, the lattice spacing is set to constant, but examples of three-dimensional lattices are not limited to this. The lattice spacing of a three-dimensional lattice is not uniform and can vary in some areas. For example, there are examples where the lattice spacing near the center of the three-dimensional lattice is smaller than the lattice spacing in the peripheral areas (the lattice points near the center are denser).
[0144] As a way to display three-dimensional grids on a screen, there are various display methods, such as the following:
[0145] • Displays both the grid points and the horizontal and vertical lines connecting them;
[0146] • Only grid points are displayed;
[0147] • Grid points are displayed with normal emphasis, while the lines connecting the grid points are displayed in a lighter shade. The grid configuration unit 114 can also be configured to allow the operator to select a display method for the three-dimensional grid. The grid configuration unit 114 can also be configured to accept user operations that specify the size, color, density, etc. of the grid points, as well as the thickness, color, density, etc. of the lines connecting the grid points. With this structure, the operator can easily identify the spatial expansion of the grid points within the three-dimensional grid.
[0148] When the grid configuration unit 114 configures the three-dimensional grid based on the face specified by the operator, a situation may arise where the size of the three-dimensional grid is larger than the face. In such cases, the grid configuration unit 114 can change the area and display method on the face of the three-dimensional grid so that the operator can identify the parts of the three-dimensional grid that are not on the face as areas where the workpiece model cannot be placed. For example, the grid configuration unit 114 can also set the color of the parts of the three-dimensional grid that are not on the face to a different color than the areas on the face.
[0149] In the above embodiments, Figure 2 and Figure 30 The functional configuration structure shown in the functional block diagram of the robot programming device is illustrative, and the functional configuration structure of the robot programming device is not limited to this. As can be seen from the descriptions of the various embodiments above, Figure 2 or Figure 30 All the functional blocks shown are not necessary to provide the functionality of a robot programming device. For example, in the robot programming device 10 of the first embodiment, when the grid configuration unit 114 automatically generates a three-dimensional grid based on information such as the job content, in Figure 2 In the functional block diagram, the functions of the grid interval setting unit 115, grid range setting unit 116, workpiece model orientation setting unit 118, interference detection unit 119, bottom surface contact determination unit 120, and workpiece model position changing unit 121 can also be omitted.
[0150] The functions of the robot programming device described in the above embodiments can also be programmed into the function of the teach pendant.
[0151] Figure 2 and Figure 30 The functional blocks of the robot programming device shown can be implemented by one or more processors of the robot programming device executing various software stored in the storage device, or they can be implemented by a structure based on hardware such as ASIC (Application Specific Integrated Circuit).
[0152] The program that performs the various processes such as program creation in the above embodiments can be recorded on various computer-readable recording media (e.g., semiconductor memory such as ROM, EEPROM, flash memory, magnetic recording media, CD-ROM, DVD-ROM, etc.).
[0153] This disclosure has been described in detail, but it is not limited to the various embodiments described above. Various additions, substitutions, modifications, and partial deletions can be made to these embodiments without departing from the spirit of this disclosure, or from the spirit of this disclosure derived from the claims and their equivalents. Furthermore, these embodiments can also be implemented in combination. For example, in the embodiments described above, the order of each action and the order of each process are shown as an example and are not limited thereto. The same applies to the use of numerical values or mathematical formulas in the description of the embodiments described above.
[0154] The following notes further describe the above-described embodiments and variations.
[0155] (Note 1)
[0156] A robot programming device (10, 10A), wherein:
[0157] The model configuration unit (112) configures a robot system model, including a robot model, a manipulator model mounted on the robot model, and a workpiece model, in a virtual space;
[0158] The surface designation unit (113, 113A) accepts user operations that specify the surfaces involved in the prescribed operation performed by the robot model on the workpiece model within the virtual space;
[0159] A grid configuration unit (114) configures a three-dimensional grid within the virtual space based on the specified face or points on the face;
[0160] The posture setting unit (122) sets the posture of the robot model that uses the manipulator model to hold the workpiece model which is arranged at the grid points of the three-dimensional grid;
[0161] The teach point generation unit (123) generates teach points that constitute the motion program of the prescribed operation based on the grid points configured on the workpiece model and the posture of the robot model set at the grid points.
[0162] (Note 2)
[0163] According to claim 1, the robot programming device (10, 10A) wherein,
[0164] The posture setting unit (122) sets the posture of the robot model that uses the manipulator model to hold the workpiece model positioned at a first grid point. The first grid point exists on the designated surface of the three-dimensional grid and is specified according to user operation.
[0165] The teaching point generation unit (123) generates teaching points that constitute the motion program of the prescribed operation based on the first grid point and the posture of the robot model set at the first grid point.
[0166] (Note 3)
[0167] The robot programming device (10) according to claim 2, wherein,
[0168] It also includes: a grid point selection unit (117), which accepts user operations to select grid points in the three-dimensional grid.
[0169] The first grid point is a grid point on the specified surface of the three-dimensional grid, selected by the user through the grid point selection unit.
[0170] (Note 4)
[0171] The robot programming device (10A) according to claim 2, wherein,
[0172] The surface designation unit (113A) accepts the operation of designating points on the surface involved in the specified operation as gripping points of the workpiece model.
[0173] The grid configuration unit (114) configures the three-dimensional grid in such a way that the gripping point is consistent with the specified grid points of the three-dimensional grid.
[0174] The first grid point configured with the workpiece model is the specified grid point that corresponds to the gripping point.
[0175] (Note 5)
[0176] The robot programming device (10A) according to claim 4, wherein,
[0177] It also includes: a gripping point change unit (126), which accepts user operations that select a grid point within the three-dimensional grid in order to change the position of the gripping point in the three-dimensional grid.
[0178] (Note 6)
[0179] The robot programming device (10, 10A) according to any one of claims 2 to 5, wherein,
[0180] The specified operation involves either the surface of the workpiece model that is extracted by the robot model, or the surface of the workpiece model that is configured by the robot model.
[0181] The teaching point generation unit (123) generates teaching points corresponding to the acquisition position or placement position of the workpiece model.
[0182] (Note 7)
[0183] The robot programming device (10, 10A) according to any one of claims 2 to 6, wherein,
[0184] The posture setting unit (122) further sets the posture of the robot model at one or more second grid points, wherein the one or more second grid points are not on the designated surface of the three-dimensional grid, and correspond to one or more of the approach points and separation points specified by the user for the workpiece model.
[0185] The teaching point generation unit also generates teaching points corresponding to one or more of the approach points and separation points of the workpiece model based on the one or more second grid points and the posture of the robot model set for the one or more second grid points.
[0186] (Postscript 8)
[0187] The robot programming device (10, 10A) according to any one of claims 2 to 7, wherein,
[0188] It also includes a workpiece model orientation setting unit (118) that accepts an operation to rotate the workpiece model, which is arranged on the first grid point on the specified surface, about an axis perpendicular to the specified surface.
[0189] (Note 9)
[0190] The robot programming device (10, 10A) according to any one of claims 2 to 8, wherein,
[0191] It also has:
[0192] Interference detection unit (119) detects whether interference occurs between multiple workpiece models, which are respectively arranged at multiple grid points, which are selected by user operation on the specified surface in the three-dimensional grid and include the first grid point;
[0193] The workpiece model position changing unit (121) changes the position of at least one of the plurality of workpiece models so as not to cause interference when interference is detected by the interference detection unit.
[0194] (Postscript 10)
[0195] The robot programming device (10, 10A) according to any one of claims 2 to 8, wherein,
[0196] The robot system model includes models of peripheral equipment.
[0197] The robot programming device (10, 10A) also has:
[0198] Interference detection unit (119) detects interference between the workpiece model disposed at the first grid point and other object models in the robot system model;
[0199] The workpiece model position changing unit (121) changes the position of the workpiece model so as not to cause interference when interference is detected by the interference detection unit.
[0200] (Postscript 11)
[0201] The robot programming device (10, 10A) according to any one of claims 2 to 8, wherein,
[0202] It also has:
[0203] Bottom surface contact determination unit (120) detects whether the bottom surface of the workpiece model disposed at the first grid point is in contact with the designated surface;
[0204] The workpiece model position changing unit (121) changes the position of the workpiece model so that the bottom surface of the workpiece model is in contact with the designated surface when the bottom surface contact determination unit determines that the bottom surface of the workpiece model is not in contact with the designated surface.
[0205] (Postscript 12)
[0206] The robot programming device (10, 10A) according to any one of claims 1 to 11, wherein,
[0207] It also includes: a grid spacing setting unit (115), which sets the grid point spacing of the three-dimensional grid according to specified input information or user operation.
[0208] The grid configuration unit (114) generates the three-dimensional grid according to the set grid point interval.
[0209] (Postscript 13)
[0210] The robot programming device (10, 10A) according to any one of claims 1 to 12, wherein,
[0211] It also includes: a grid range setting unit (116), which sets the spatial range of the three-dimensional grid according to specified input information or user operation.
[0212] The grid configuration unit (114) generates the three-dimensional grid according to the set spatial range.
[0213] (Postscript 14)
[0214] The robot programming device (10, 10A) according to any one of claims 1 to 13, wherein,
[0215] The specified surface is either the upper surface of the peripheral device model configured in the virtual space or the upper surface of the workpiece model configured in the virtual space.
[0216] (Postscript 15)
[0217] The robot programming device (10, 10A) according to any one of claims 1 to 14, wherein,
[0218] It also includes a gripping position setting unit (125) that sets a gripping position, the gripping position being the position and posture of the workpiece model relative to the robot model when the robot model grips the workpiece model.
[0219] Explanation of reference numerals in the attached figures
[0220] 10, 10A Robot Programming Device
[0221] 11 processors
[0222] 12 Display Section
[0223] 13 Operations Department
[0224] 30M robot model
[0225] 31M robotic arm model
[0226] 91M and 92M workbench models
[0227] 93M container model
[0228] 100M Robot System Model
[0229] 111 Virtual Space Production Department
[0230] 112 Model Configuration Department
[0231] 113, 113A designated area
[0232] 114 Grid Configuration Department
[0233] 115 Grid Spacing Setting Section
[0234] 116 Grid Range Setting Department
[0235] 117 Grid Point Selection Section
[0236] 118 Workpiece Model Orientation Setting Unit
[0237] 119 Interference Detection Department
[0238] 120 Bottom Surface Contact Judgment Section
[0239] 121 Workpiece Model Position Change Section
[0240] 122 Posture Setting Department
[0241] 123 Demonstration Point Generation Department
[0242] 124 Simulation Execution Unit
[0243] 125 Holding position setting unit
[0244] 126. Catch Point Change Department.
Claims
1. A robot programming device, characterized in that, have: The model configuration department configures the robot system model, which includes the robot model, the manipulator model mounted on the robot model, and the workpiece model, in the virtual space; The surface designation unit accepts user operations on the surfaces involved in the specified operations performed by the robot model on the workpiece model within the virtual space. A grid configuration unit, which configures a three-dimensional grid within the virtual space based on the specified face or points on the face; An attitude setting unit sets the attitude of the robot model that uses the robotic arm model to hold the workpiece model which is arranged at the grid points of the three-dimensional grid. The teaching point generation unit generates teaching points that constitute the motion program of the prescribed operation based on the grid points configured on the workpiece model and the posture of the robot model set at the grid points.
2. The robot programming device according to claim 1, characterized in that, The posture setting unit sets the posture of the robot model, in which the robotic arm model holds the workpiece model positioned at a first grid point, wherein the first grid point exists on the designated surface of the three-dimensional grid and is specified according to user operation. The teaching point generation unit generates teaching points that constitute the motion program of the prescribed operation based on the first grid point and the posture of the robot model set at the first grid point.
3. The robot programming device according to claim 2, characterized in that, The robot programming device also includes: a grid point selection unit, which accepts user operations to select grid points in the three-dimensional grid. The first grid point is a grid point on the specified surface of the three-dimensional grid, selected by the user through the grid point selection unit.
4. The robot programming device according to claim 2, characterized in that, The surface designation unit accepts the operation of designating points on the surface involved in the specified operation as gripping points of the workpiece model. The grid configuration unit configures the three-dimensional grid in such a way that the gripping point aligns with the specified grid points of the three-dimensional grid. The first grid point configured with the workpiece model is the specified grid point that corresponds to the gripping point.
5. The robot programming device according to claim 4, characterized in that, The robot programming device further includes a gripping point modification unit, which accepts user operations that select a grid point within the three-dimensional grid in order to change the position of the gripping point in the three-dimensional grid.
6. The robot programming device according to any one of claims 2 to 5, characterized in that, The specified operation involves either the surface of the workpiece model that is extracted by the robot model, or the surface of the workpiece model that is configured by the robot model. The teaching point generation unit generates teaching points corresponding to the acquisition position or placement position of the workpiece model.
7. The robot programming device according to any one of claims 2 to 6, characterized in that, The posture setting unit further sets the posture of the robot model at one or more second grid points, wherein the one or more second grid points are not on the designated surface of the three-dimensional grid and correspond to one or more of the approach points and separation points specified by the user for the workpiece model. The teaching point generation unit also generates teaching points corresponding to one or more of the approach points and separation points of the workpiece model based on the one or more second grid points and the posture of the robot model set for the one or more second grid points.
8. The robot programming device according to any one of claims 2 to 7, characterized in that, The robot programming device further includes a workpiece model orientation setting unit, which accepts an operation to rotate the workpiece model, which is arranged on the first grid point on the specified surface, about an axis perpendicular to the specified surface.
9. The robot programming device according to any one of claims 2 to 8, characterized in that, The robot programming device also has: An interference detection unit detects whether interference occurs between multiple workpiece models, which are respectively configured at multiple grid points. These multiple grid points are selected by user operation on a designated surface in the three-dimensional grid and include the first grid point. The workpiece model position changing unit changes the position of at least one of the plurality of workpiece models so as not to cause interference when interference is detected by the interference detection unit.
10. The robot programming device according to any one of claims 2 to 8, characterized in that, The robot system model includes models of peripheral equipment. The robot programming device also has: An interference detection unit detects interference between the workpiece model positioned at the first grid point and other object models in the robot system model. The workpiece model position changing unit changes the position of the workpiece model to prevent interference when interference is detected by the interference detection unit.
11. The robot programming device according to any one of claims 2 to 8, characterized in that, The robot programming device also has: The bottom surface contact determination unit detects whether the entire bottom surface of the workpiece model disposed at the first grid point is in contact with the designated surface; The workpiece model position changing unit changes the position of the workpiece model so that the bottom surface of the workpiece model is in contact with the designated surface when the bottom surface contact determination unit determines that the bottom surface of the workpiece model is not in contact with the designated surface.
12. The robot programming device according to any one of claims 1 to 11, characterized in that, The robot programming device further includes a grid spacing setting unit, which sets the grid point spacing of the three-dimensional grid according to specified input information or user operation. The grid configuration unit generates the three-dimensional grid according to the set grid point interval.
13. The robot programming device according to any one of claims 1 to 12, characterized in that, The robot programming device also includes a grid range setting unit, which sets the spatial range of the three-dimensional grid according to specified input information or user operation. The grid configuration unit generates the three-dimensional grid according to the set spatial range.
14. The robot programming device according to any one of claims 1 to 13, characterized in that, The specified surface is either the upper surface of the peripheral device model configured in the virtual space or the upper surface of the workpiece model configured in the virtual space.
15. The robot programming device according to any one of claims 1 to 14, characterized in that, The robot programming device further includes: a gripping position setting unit, which sets a gripping position, wherein the gripping position represents the position and posture of the workpiece model based on the robot model when the robot model grips the workpiece model.