Virtual object display system

11199828 · 2021-12-14

Assignee

Inventors

Cpc classification

International classification

Abstract

A virtual object is displayed with a simple method. A graph generation portion generates, as the machine configuration of a control target, a graph in which constituent elements including a camera are nodes, a node selection portion selects a node on which a virtual object is desired to be displayed, a selection node notification portion notifies the node on which the virtual object is desired to be displayed to a machine configuration management device, a transformation information calculation portion calculates transformation information which includes, as a variable, a coordinate value of a control axis node on a path in the graph from a camera node to the node of a display target and which is used for calculating the position and/or the posture of the node of the display target in a coordinate system of the camera node based on the graph, a transformation information notification portion notifies the transformation information to an augmented information controller and a coordinate information transformation portion transforms the coordinate value of a control axis which is notified into the position and/or the posture of the node of the display target in the coordinate system of the camera node.

Claims

1. A virtual object display system which comprises a machine configuration management device and an augmented information controller, in which the machine configuration management device includes a first memory; and a first processor, wherein the first processor executes a program stored in the first memory to perform first operations, and in which the augmented information controller includes a second memory; and a second processor, wherein the second processor executes a program stored in the second memory to perform second operations, and the first operations and the second operations comprising: generating, as a machine configuration of a control target, a graph in which constituent elements including a camera are nodes as one of the first operations, the control target being a real machine tool, inserting a control point and a coordinate system into the graph as one of the first operations, notifying information of a node which can be displayed to the augmented information controller as one of the first operations, selecting a node on which a virtual object is desired to be displayed as one of the second operations, notifying the node on which the virtual object is desired to be displayed to the machine configuration management device as one of the second operations, calculating transformation information which includes, as a variable, a coordinate value of a control axis node on a path in the graph from a camera node to a node of a display target and which is used for calculating a position and/or a posture of the node of the display target in a coordinate system of the camera node based on the graph as one of the first operations, notifying the transformation information to the augmented information controller as one of the first operations and using the transformation information so as to transform the coordinate value of a control axis which is notified into the position and/or the posture of the node of the display target in the coordinate system of the camera node as one of the second operations, wherein the graph that is generated as the machine configuration of the control target has a form of a hierarchical tree structure in which the nodes are arranged with respect to a machine zero point in the coordinate system, each of the nodes containing information related to the camera, a control axis of the machine tool, a workpiece or a tool, wherein the transformation information includes a formula for determining the position and/or the posture of the node on which the virtual object is desired to be displayed in the coordinate system, or a value for determining the position and/or the posture of the node on which the virtual object is desired to be displayed in the coordinate system, and wherein the transformation information is calculated for each coordinate system of the camera node.

2. The virtual object display system according to claim 1, further comprising a display device, wherein the second operations further include: calculating, based on the position and/or the posture of the node of the display target in the coordinate system of the camera node, augmented information display data for calculating, with the display device, the virtual object as augmented information; and notifying the augmented information display data to the display device.

3. The virtual object display system according to claim 1, wherein the second operations include transforming, as the coordinate value of the control axis, a coordinate value received from a numerical controller into the position and/or the posture of the node of the display target in the coordinate system of the camera node.

4. The virtual object display system according to claim 1, wherein the augmented information controller further includes a storage portion having data of the graph.

5. The virtual object display system according to claim 1, further comprising a server which stores data of the graph.

6. The virtual object display system according to claim 1, wherein the machine configuration management device is integrated with a numerical controller of a machine tool.

7. The virtual object display system according to claim 1, wherein the machine configuration management device is present on a cloud.

8. The virtual object display system according to claim 1, wherein the control point and the coordinate system are defined in all nodes of the tree-structure graph.

9. The virtual object display system according to claim 1, wherein generating the graph includes: arranging a zero point and a plurality of nodes, each of nodes corresponds to a plurality of axis of the machine tool, the tool, and the workpiece, setting axis names of individual axes, names of individual tools, names of individual workpieces, names of individual zero points and physical axis numbers of the individual axes, setting parent nodes of the individual axes, parent nodes of the individual tools and parent nodes of the individual workpieces, and setting cross-offsets of the individual axes, cross-offsets of the individual tools and cross-offsets of the individual workpieces.

10. The virtual object display system according to claim 1, wherein generating the graph includes: receiving a value of a parameter to the node, if an item of the parameter is “parent node of itself”, if a parent node has already been set to the node to which the parameter is set, deleting an identifier of itself from the item of “child node” possessed by the current parent node of the node to which the parameter is set so as to update a machine configuration tree, if the parent node has not been set to the node to which the parameter is set, setting a value to the corresponding item of the node to which the parameter is set, and adding the identifier of itself to the item of “child node” in the parent node so as to update the machine configuration tree, and if an item of the parameter is not “parent node of itself”, setting the value to the corresponding item of the node to which the parameter is set.

11. The virtual object display system according to claim 1, wherein, each of the control points and the coordinate systems has an offset and a posture matrix, the posture matrix of the control point indicates a posture of the control point, the posture matrix of the coordinate system indicates a posture of the coordinate system, the offset and the posture matrix are represented so as to be associated with the nodes corresponding thereto, each of the control points and the coordinate systems has information on whether or not the “move” and the “cross-offset” of the node present on a path up to a route of a machine configuration tree are individually added.

12. The virtual object display system according to claim 1, wherein inserting the control point and the coordinate system into the graph includes: setting a machine configuration tree, when the control point and the coordinate system have not been inserted into the node, inserting the control point and the coordinate system into the node, and stacking a variable n by 1, when the nth child node is present in the node, performing a process in a recursive manner, and performing the increment such that n=n+1, and when the nth child node is not present in the node, popping the variable n by 1.

13. The virtual object display system according to claim 1, wherein individual nodes of the graph in the machine configuration have the control points and the coordinate systems as information.

14. The virtual object display system according to claim 1, wherein the offset, the type of node, the axis direction, the posture matrix and the coordinate value are given to the individual nodes, the type of node includes linear line, rotation, unit, control point and coordinate system, and a homogeneous matrix indicating the current position and posture of the virtual object on the control point with respect to the machine zero point is determined based on homogeneous transformation matrix by individual nodes, number of a series of nodes leading from the route of the machine configuration tree to the control point, and homogeneous matrix of relative offset/posture for the parent node of the control point.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) FIG. 1 is a block diagram showing a basic configuration of an entire embodiment of the present invention;

(2) FIG. 2 is a functional block diagram of a machine configuration management device 100 according to the embodiment of the present invention;

(3) FIG. 3 is a functional block diagram of a numerical controller 150 according to the embodiment of the present invention;

(4) FIG. 4 is a functional block diagram of an augmented information controller 200 according to the embodiment of the present invention;

(5) FIG. 5 is an illustrative diagram of a method of generating a machine configuration tree in the embodiment of the present invention;

(6) FIG. 6 is an illustrative diagram of the method of generating the machine configuration tree in the embodiment of the present invention;

(7) FIG. 7 is an illustrative diagram of the method of generating the machine configuration tree in the embodiment of the present invention;

(8) FIG. 8 is a flowchart showing the method of generating the machine configuration tree in the embodiment of the present invention;

(9) FIG. 9A is an illustrative diagram of a parent-child relationship of the constituent elements of a machine in the embodiment of the present invention;

(10) FIG. 9B is an illustrative diagram of the parent-child relationship of the constituent elements of a machine in the embodiment of the present invention;

(11) FIG. 10A is an illustrative diagram of a method of inserting a unit into the machine configuration tree;

(12) FIG. 10B is an illustrative diagram of the method of inserting the unit into the machine configuration tree;

(13) FIG. 10C is an illustrative diagram of the method of inserting the unit into the machine configuration tree;

(14) FIG. 11 is a diagram showing an example of a machine configuration according to the embodiment of the present invention;

(15) FIG. 12A is a diagram showing an example of the machine which is a target for the generation of the machine configuration tree;

(16) FIG. 12B is a diagram showing an example of a machine configuration tree corresponding to the machine which is the target for the generation of the machine configuration tree;

(17) FIG. 13 is a diagram showing an example where a coordinate system and a control point are inserted into each node in the machine in the embodiment of the present invention;

(18) FIG. 14 is a diagram showing an example of the machine configuration tree into which the coordinate systems and the control points are inserted in the embodiment of the present invention;

(19) FIG. 15A is a diagram showing an example of the machine in which an offset and a posture matrix are inserted into each node in the embodiment of the present invention;

(20) FIG. 15B is a diagram showing an example where the offset and the posture matrix are inserted into each node in the machine in the embodiment of the present invention;

(21) FIG. 16 is a diagram showing an operation flow of inserting the control point into the machine configuration tree in the embodiment of the present invention;

(22) FIG. 17 is a diagram showing an example of the machine configuration tree into which the coordinate systems and the control points are inserted in the embodiment of the present invention;

(23) FIG. 18 is a diagram showing an example of information used when transformation information is generated in the embodiment of the present invention;

(24) FIG. 19 is a diagram showing an example of the information used when the transformation information is generated in the embodiment of the present invention;

(25) FIG. 20 is a diagram showing an operation flow of a method of displaying a virtual object in the embodiment of the present invention;

(26) FIG. 21A is a diagram showing an example of the embodiment of the present invention;

(27) FIG. 21B is a diagram showing the example of the embodiment of the present invention;

(28) FIG. 22A is a diagram showing the example of the embodiment of the present invention; and

(29) FIG. 22B is a diagram showing the example of the embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

1. Configuration of Virtual Object Display System

(30) An embodiment of the present invention will then be described in detail with reference to drawings. The configuration of the entire present embodiment will first be described with reference to FIG. 1.

(31) A virtual object display system 10 according to the present embodiment includes a machine configuration management device 100, a numerical controller 150, an augmented information controller 200, a wireless communication device, a display device 300 and a machine tool 400.

(32) The machine configuration management device 100 is a device specific to the present embodiment, produces a graph (hereinafter also referred to as the “machine configuration tree”) in which the constituent elements of the machine tool 400 are nodes and uses the graph to manage a machine configuration, and thus the augmented information controller 200 which will be described later can perform control by utilization of data of the machine configuration based on the machine configuration tree.

(33) More specifically, the machine configuration management device 100 uses a method described in <5. Generation of machine configuration tree> which will be described later so as to generate the machine configuration tree representing the configuration of the machine tool 400, and furthermore, additionally registers the camera as a node of the machine configuration tree, according to the method described in <5. Generation of Machine Configuration Tree> described later. Since the machine configuration tree has mutual position relationship information of the individual nodes, the camera is included as the node on the machine configuration tree, and thus in the augmented information controller 200 which will be described later, for all the nodes on the machine configuration tree, the relationship of position/posture with the camera is found. The detailed configuration of the machine configuration management device 100 will be described later with reference to FIG. 2.

(34) The numerical controller 150 is a device which has a function as a general numerical controller and a function of communicating with the machine configuration management device 100. The numerical controller 150 is connected to the machine tool 400 so as to be able to communicate therewith. The numerical controller 150 uses the amounts of movement of individual control axes output based on a machining program incorporated in the numerical controller 150 itself and thereby controls the machine tool 400 so as to machine a workpiece.

(35) The numerical controller 150 outputs, to the augmented information controller 200, the amounts of movement of the individual control axes output based on the machining program. As described above, the numerical controller 150 outputs the amounts of movement both to the machine configuration management device 100 and the machine tool 400. In this point, the output of the amounts of movement from the numerical controller 150 to the machine configuration management device 100 may be performed in synchronization with or asynchronously with the output of the amounts of movement from the numerical controller 150 to the machine tool 400. The detailed configuration of the numerical controller 150 will be described later with reference to FIG. 3.

(36) The augmented information controller 200 uses an augmented reality technology so as to calculate the display position and the display angle of a virtual object and thereby performs control for appropriately displaying the virtual object. The detailed configuration of the augmented information controller 200 will be described later with reference to FIG. 4.

(37) The display device 300 acquires the virtual object outputted by the extended information control device 200, and the display position and posture thereof. Then, based on this acquired information, displays the virtual object on the display device 300. This acquired information becomes information corresponding to the camera coordinate system.

(38) The machine tool 400 is a general machine tool, and moves/rotates the individual control axes according to the amounts of movement of the individual control axes output from the numerical controller 150. In addition, the camera fixed to the machine tool 400 outputs the information acquired by photography to the extended information control device 200.

(39) In the present embodiment, in the configuration described above, a user references the virtual object displayed according to a camera coordinate system on the display of the display device 300, and also references, over the display, the actual structure of the machine tool 400 which is moved according to the amounts of movement of the individual control axes. In this way, the user can observe how a machining simulation is performed.

(40) The configuration shown in FIG. 1 is simply an example. For example, it may be configured so as to realize the display device 300 by way of a tablet-type terminal. Part or the whole of the functions of the machine configuration management device 100 may be incorporated in the numerical controller 150. Part or the whole of the functions of the augmented information controller 200 may be incorporated in the display device 300 or the numerical controller 150. Although the augmented information controller 200 may be realized by a single device, the augmented information controller 200 may be realized by a combination of a plurality of devices. Although the augmented information controller 200 may be realized by a device installed in the vicinity of the numerical controller 150 or the machine tool 400, the augmented information controller 200 may be realized by a server device or the like installed far away from the numerical controller 150 or the machine tool 400 through a network. Furthermore, individual communication connections may be wired connection or wireless connection. For example, although in the figure, the example where the communication connections of the machine configuration management device 100, the numerical controller 150 and the augmented information controller 200 are performed by wired connection in conformity with Ethernet (registered trade mark) is shown, the connections may be wireless connection.

2. Configuration of Machine Configuration Management Device

(41) FIG. 2 is a functional block diagram of the machine configuration management device 100. The machine configuration management device 100 includes a control portion 110 and a storage portion 120, the control portion 110 includes a graph generation portion 111, a control point coordinate system insertion portion 113, a node information notification portion 114, a transformation information calculation portion 115 and a transformation information notification portion 116 and the graph generation portion 111 includes a node addition portion 112.

(42) The control portion 110 is a processor which comprehensively controls the machine configuration management device 100. The control portion 110 reads, through a bus, a system program and an application program stored in a ROM (unillustrated), and realizes, according to the system program and the application program, the functions of the graph generation portion 111, the node addition portion 112, the control point coordinate system insertion portion 113, the node information notification portion 114, the transformation information calculation portion 115 and the transformation information notification portion 116 included in the control portion 110.

(43) The graph generation portion 111 generates, in a graph form, the machine configuration of the machine tool 400 including a camera. Furthermore, the node addition portion 112 included in the graph generation portion 111 adds nodes to the generated graph. The detailed operation thereof will be described in detail in “5. Generation of machine configuration tree” below.

(44) The control point coordinate system insertion portion 113 inserts a control point and a coordinate system into the graph of the machine configuration. The detailed operation thereof will be described in detail in “6. Automatic insertion of control point and coordinate value” below.

(45) The node information notification portion 114 notifies the augmented information controller 200 which will be described later of information of nodes which can be displayed.

(46) As will be described later, the transformation information calculation portion 115 receives a notification of a node on which the virtual object is desired to be displayed from a selection node notification portion 212 of the augmented information controller 200, and thereafter calculates transformation information which includes, as a variable, a coordinate value of a control axis node on a path from a camera node to a node of a display target and which is used for calculating the position and/or the posture of the node of each display target in the coordinate system of the camera node based on the graph. The transformation information described above may have a matrix form, a vector form or a roll-pitch-yaw form. The detailed operation thereof will be described in detail in “7. Calculation of transformation information” below.

(47) The transformation information notification portion 116 notifies the transformation information calculated by the transformation information calculation portion 115 to a coordinate information transformation portion 213 of the augmented information controller 200.

(48) The storage portion 120 stores information on the machine configuration tree generated by the graph generation portion 111.

(49) The detailed operations of the graph generation portion 111, the node information notification portion 114, the transformation information calculation portion 115, the transformation information notification portion 116 and the storage portion 120 will be described in detail in “8. Method of displaying virtual object” below.

3. Configuration of Numerical Controller

(50) FIG. 3 is a functional block diagram of the numerical controller 150. The numerical controller 150 includes a control portion 160, and the control portion 160 includes a coordinate information notification portion 161 and a servomotor control portion 162.

(51) The control portion 160 is a processor which comprehensively controls the numerical controller 150. The control portion 160 reads, through a bus, a system program and an application program stored in the ROM (unillustrated), and realizes, according to the system program and the application program, the functions of the coordinate information notification portion 161 and the servomotor control portion 162 included in the control portion 160.

(52) The coordinate information notification portion 161 notifies coordinate information of the machine tool 400 being operated to the coordinate information transformation portion 213 of the augmented information controller 200. The servomotor control portion 162 receives a movement command amount of each axis from the control portion 160, and outputs the command of each axis to a servomotor (unillustrated).

(53) Although the numerical controller 150 includes other constituent elements included in a normal numerical controller in order to perform numerical control on the machine tool 400, the description thereof will be omitted.

4. Configuration of Augmented Information Controller

(54) FIG. 4 is a functional block diagram of the augmented information controller 200. The augmented information controller 200 includes a control portion 210 and a storage portion 220, and the control portion 210 includes a node selection portion 211, the selection node notification portion 212, the coordinate information transformation portion 213, an augmented information display data calculation portion 214 and an augmented information display data notification portion 215.

(55) The control portion 210 is a processor which comprehensively controls the augmented information controller 200. The control portion 210 reads, through a bus, a system program and an application program stored in the ROM (unillustrated), and realizes, according to the system program and the application program, the functions of the node selection portion 211, the selection node notification portion 212, the coordinate information transformation portion 213, the augmented information display data calculation portion 214 and the augmented information display data notification portion 215 included in the control portion 210.

(56) The node selection portion 211 selects a node on which the virtual object is desired to be displayed.

(57) The selection node notification portion 212 notifies the node selected by the node selection portion 211 to the transformation information calculation portion 115 of the machine configuration management device 100.

(58) The coordinate information transformation portion 213 calculates the position and/or the posture of the virtual object in the camera coordinate system from the coordinate value of each control axis periodically received from the numerical controller 150 based on the transformation information received from the machine configuration management device 100.

(59) The augmented information display data calculation portion 214 calculates, based on the technology of AR, MR or the like, augmented information display data for displaying the augmented information of the virtual object and the like. More specifically, the augmented information display data calculation portion 214 transform the position and/or the posture of the virtual object in the camera coordinate system into the position and/or the posture in the screen coordinate system.

(60) The augmented information display data notification portion 215 transmits the augmented information display data calculated by the augmented information display data calculation portion 214 to the display device 300 through the wireless communication device. The augmented information display data includes the shape and the like of the virtual object and the display position, the display angle and the like of the virtual object transformed into coordinate values in the screen coordinate system. In addition, transmission of the augmented information display data may be done wirelessly, or may be wired.

(61) The storage portion 220 stores information on the graph generated by the graph generation portion 111 of the machine configuration management device 100.

(62) The detailed operations of the node selection portion 211, the selection node notification portion 212, the coordinate information transformation portion 213, the augmented information display data calculation portion 214, the augmented information display data notification portion 215 and the storage portion 220 will be described in detail in “8. Method of displaying virtual object” below.

5. Generation of Machine Configuration Tree

(63) The machine configuration management device 100 according to the embodiment of the present invention first generates the graph showing the machine configuration. A method of generating a machine configuration tree as an example of the graph will be described in detail with reference to FIGS. 5 to 11.

(64) As the example, the method of generating the machine configuration tree representing the configuration of a machine shown in FIG. 5 will be described. In the machine of FIG. 5, it is assumed that an X axis is set perpendicular to a Z axis, that a tool 1 is installed in the X axis and that a tool 2 is installed in the Z axis. On the other hand, it is assumed that a B axis is set on a Y axis, that a C axis is set on the B axis and that a workpiece 1 and a workpiece 2 are installed in the C axis. The method of representing the machine configuration as the machine configuration tree will be described below.

(65) First, as shown in FIG. 6, only a zero point 201 and nodes 202A to 202I are arranged. In this stage, there is no connection between the zero point 201 and the nodes 202 and between the nodes 202, and the names of the zero point and the nodes are not set.

(66) Then, the axis names (axis types) of the individual axes, the names of the individual tools, the names of the individual workpieces, the names of the individual zero points and the physical axis numbers (axis types) of the individual axes are set. Then, the parent nodes (axis types) of the individual axes, the parent nodes of the individual tools and the parent nodes of the individual workpieces are set. Finally, the cross-offsets (axis types) of the individual axes, the cross-offsets of the individual tools and the cross-offsets of the individual workpieces are set. Consequently, the machine configuration tree shown in FIG. 7 is generated.

(67) Each node of the machine configuration tree is not limited to the pieces of information described above, and it may or may not have information related to, for example, an identifier (name), the identifier of the parent node of itself, the identifiers of all child nodes whose parents are itself, a relative offset (cross-offset) with respect to the parent node, a relative coordinate value with respect to the parent node, a relative movement direction (unit vector) with respect to the parent node, node types (linear axis/rotary axis/unit (which will be described later)/control point/coordinate system/zero point and the like), the physical axis number and the transformation formulas of an orthogonal coordinate system and a physical coordinate system.

(68) As described above, values are set to the individual nodes, and thus data which has a data structure in the shape of a machine configuration tree is generated within the machine configuration management device 100. Furthermore, even when another machine (or robot) is added, a zero point is added, and thus it is possible to further add nodes.

(69) A flowchart obtained by generalizing the method of generating the machine configuration tree described above, in particular, the method of setting the values to the individual nodes is shown in FIG. 8.

(70) In step S11, the graph generation portion 111 receives the value of a parameter set to the node. When in step S12, the item of the set parameter is “parent node of itself” (yes in S12), the processing is transferred to step S13. When the item of the set parameter is not “parent node of itself” (no in S12), the processing is transferred to step S17.

(71) When in step S13, a parent node has already been set to the node to which the parameter is set (yes in S13), the processing is transferred to step S14. When a parent node has not been set (no in S13), the processing is transferred to step S15.

(72) In step S14, the graph generation portion 111 deletes the identifier of itself from the item of “child node” possessed by the current parent node of the node to which the parameter is set so as to update the machine configuration tree.

(73) In step S15, the graph generation portion 111 sets the value to the corresponding item of the node to which the parameter is set.

(74) In step S16, the graph generation portion 111 adds the identifier of itself to the item of “child node” in the parent node so as to update the machine configuration tree, and thereafter the flow is completed.

(75) In step S17, the graph generation portion 111 sets the value to the corresponding item of the node to which the parameter is set, and thereafter the flow is completed.

(76) The method of generating the data having the data structure in the shape of the machine configuration tree described above is used, and thus it is possible to set a parent-child relationship of the constituent elements of the machine. Here, the parent-child relationship refers to a relationship in which, for example, when as shown in FIG. 9A, two rotary axis nodes 504 and 505 are present, a variation in the coordinate value of the node 504 on one side unilaterally affects the geometric state (typically, the position and the posture) of the node 505 on the other side. In this case, the nodes 504 and 505 are said to have a parent-child relationship, the node 504 is referred to as a parent and the node 505 is referred to as a child. However, for example, as shown in FIG. 9B, in a machine configuration that is configured with two linear axis nodes 502 and 503 and four free joints 501, a mechanism is present in which as the coordinate value (length) of one of the nodes 502 and 503 is varied, not only the geometric state of the other node but also the geometric state of itself is varied, that is, the nodes affect each other. In such a case, both of them are parents and children, and in other words, the parent-child relationship can be regarded as being bidirectional.

(77) As described above, a mechanism in which a variation in a certain node affects the other node is regarded as one unit in terms of convenience, this unit is inserted into the machine configuration tree and thus the entire machine configuration tree is generated. As shown in FIG. 10A, the unit has two connection points 510 and 520, and when the unit is inserted into the machine configuration tree as shown in FIG. 10B, as shown in FIG. 10C, the parent node is connected to the connection point 520, and the child node is connected to the connection point 510. The unit also has a transformation matrix from the connection point 520 to the connection point 510. This transformation matrix is indicated by the coordinate values of the individual nodes included in the unit. For example, in the case of a machine configuration as shown in FIG. 11, when a homogeneous matrix indicating the position and the posture of the connection point 520 is assumed to be M.sub.A, and a homogeneous matrix indicating the position and the posture of the connection point 510 is assumed to be M.sub.B, a transformation formula between the matrices is represented as follows by use of the coordinate values x.sub.1 and x.sub.2 of the linear axis nodes included in the unit.

(78) When it is assumed that θ = sin - 1 ( x 1 2 - x 2 2 4 L 1 L 2 ) L = L 1 cos θ + 0.5 x 1 2 + 0.5 x 2 2 - L 2 2 - L 1 2 sin 2 θ it is represented by M B = TM A where T = ( sin θ 0 cos θ L cos θ 0 1 0 0 - cos θ 0 sin θ L sin θ 0 0 0 1 ) [ Formula 1 ]

(79) The unit indicating this machine configuration has a homogeneous transformation matrix such as T in the mathematical formula of [Formula 1] described above. The homogeneous matrix refers to a 4×4 matrix which can collectively represent the position and the posture as in the mathematical formula of [Formula 2] below.

(80) posture position ( cos θ - sin θ 0 sin θ cos θ 0 0 0 1 x y z 0 0 0 1 ) [ Formula 2 ]

(81) Even when the parent-child relationship is not mutual, in order for calculation processing or a setting to be simplified, a unit in which a plurality of nodes are previously integrated into one may be defined and configured into the machine configuration tree.

(82) As described above, in the present embodiment, the graph of the machine configuration can include, as a constituent element, a unit in which a plurality of axes are integrated into one.

6. Automatic Insertion of Control Point and Coordinate System

(83) In order to specify, as the control points, various positions on the machine configuration and set coordinate systems in various places on the machine configuration, the following method is performed by use of the machine configuration tree generated in “5. Generation of machine configuration tree” described above.

(84) For example, in a rotary index machine 350 shown in FIG. 12A, an X1 axis is set perpendicular to a Z1 axis, and a tool 1 is installed in the X1 axis. An X2 axis is set perpendicular to a Z2 axis, and a tool 2 is installed on the X2 axis. Furthermore, it is assumed that in a table, on a C axis, a C1 axis and a C2 axis are set in parallel, and in the C1 axis and the C2 axis, a workpiece 1 and a workpiece 2 are respectively installed. When this machine configuration is represented by a machine configuration tree, the machine configuration tree shown in FIG. 12B is provided.

(85) In an example of a series of nodes leading from individual workpieces to the machine zero point, as shown in FIG. 13, a coordinate system and a control point are automatically inserted into each of the machine zero point, the C axis, the C1 axis, the C2 axis, the workpiece 1 and the workpiece 2. This is performed not only on the table but also on the series of nodes leading from individual tools to the machine zero point, that is, all the X1 axis, the X2 axis, the Z1 axis, the Z2 axis, the tool 1 and the tool 2. Consequently, as shown in FIG. 14, into all the nodes of the machine configuration tree, the control points and the coordinate systems corresponding to the individual nodes are automatically inserted. Normally, when machining is performed, the coordinate system is specified in the workpiece, and the tool is specified as the control point. In this way, for example, it is possible to cope with various cases such as a case where in order to move a workpiece itself to a predetermined position, the control point is desired to be specified in the workpiece and a case where in order to use a certain tool to polish another tool, the coordinate system is desired to be set in the tool itself.

(86) As shown in FIG. 15A, each of the control points and the coordinate systems has an offset. Hence, a point away from the center of the node can be set to a control point or a coordinate system zero point. Furthermore, each of the control points and the coordinate systems has a posture matrix. When this posture matrix is the posture matrix of the control point, it indicates the posture (the direction, the inclination) of the control point whereas when this posture matrix is the posture matrix of the coordinate system, it indicates the posture of the coordinate system. In a machine configuration tree shown in FIG. 15B, the offset and the posture matrix are represented so as to be associated with the nodes corresponding thereto. Furthermore, each of the control points and the coordinate systems has information on whether or not the “move” and the “cross-offset” of the node present on a path up to the route of the machine configuration tree are individually added, and the information can be set.

(87) A flowchart obtained by generalizing the method of automatically inserting the control point described above is shown in FIG. 16. Specifically, this flowchart includes a chart A and a chart B, and as will be described later, the chart B is performed in the middle of the chart A.

(88) The chart A will first be described. In step S21, the graph generation portion 111 sets a machine configuration tree. In step S22, the chart B is performed, and the flow of the chart A is completed.

(89) The chart B will then be described. In step S31 of the chart B, when the control point and the coordinate system have been inserted into the node (yes in S31), the flow is completed. When the control point and the coordinate system have not been inserted into the node (no in S31), the processing is transferred to step S32.

(90) In step S32, the control point coordinate system insertion portion 113 inserts the control point and the coordinate system into the node, and stacks a variable n by 1. A setting is made such that n=1.

(91) In step S33, when the nth child node is present in the node (yes in S33), the processing is transferred to step S34. When the n.sup.th child node is not present in the node (no in S33), the processing is transferred to step S36.

(92) In step S34, on the n.sup.th child node, the chart B itself is performed in a recursive manner.

(93) In step S35, n is incremented by 1. In other words, the increment is performed such that n=n+1, and the processing is returned to step S33.

(94) In step S36, the variable n is popped by 1, and the flow of the chart B is completed.

(95) By the method described above, the control point coordinate system insertion portion 113 inserts, as nodes, the control points and the coordinate systems into the individual nodes of the graph in the machine configuration. Although in the above description, the example where the control points and the coordinate systems are added as nodes is described, an embodiment is also possible in which as shown in FIG. 17, the control point coordinate system insertion portion 113 makes the individual nodes of the graph in the machine configuration have the control points and the coordinate systems as information.

7. Calculation of Transformation Information

(96) As described above, the transformation information calculation portion 115 calculates the transformation information for transforming the coordinate value of the control axis into the position and/or the posture of the virtual object in the camera coordinate system. A method of calculating the transformation information will be described in detail with reference to FIGS. 18 and 19.

(97) For example, as shown in FIG. 18, it is assumed that an axis X.sub.2 is set on an axis X.sub.1, that an axis X.sub.3 is set on the axis X.sub.2, that then, N nodes are likewise continuous and that the end thereof is an axis X.sub.N. Furthermore, it is assumed that on the control point on the axis X.sub.N, a virtual object is displayed. Likewise, it is assumed that an axis y.sub.2 is set on an axis y.sub.1, that an axis y.sub.3 is set on the axis y.sub.2, that then, L nodes are likewise continuous and that the end thereof is an axis y.sub.L. Furthermore, it is assumed that on the axis y.sub.L, a camera is installed. Here, although X.sub.i and y.sub.j are the names of nodes, it is assumed that they simultaneously indicate the coordinate values of the individual nodes.

(98) Furthermore, it is assumed that the offset, the type of node (linear line/rotation/unit/control point/coordinate system), the axis direction, the posture matrix and the coordinate value shown in FIG. 18 are given to the individual nodes.

(99) Here, as shown in FIG. 19, the homogeneous matrix M.sub.obj indicating the current position and posture of the virtual object on the control point with respect to the route (machine zero point) is determined by a formula below.
M.sub.obj=(Π.sub.i=1.sup.NS.sub.x.sub.i)M.sub.ctrl where Π.sub.i=1.sup.NS.sub.x.sub.i=S.sub.x.sub.1S.sub.x.sub.2. . . S.sub.x.sub.N  [Formula 3]
Here, the meanings of symbols are as follows:
S.sub.xi: homogeneous transformation matrix by individual nodes;
N: number of a series of nodes leading from the route of the machine configuration tree to the control point; and
M.sub.ctrl: homogeneous matrix of relative offset/posture for the parent node of the control point which is defined according to [Formula 2] described above from an offset vector/posture matrix defined in the control point.

(100) The homogeneous transformation matrix S.sub.xi is varied depending on the type of node, and for example, in the case of a linear axis, the homogeneous transformation matrix is represented as follows.

(101) S x i = ( 1 0 0 0 1 0 ofs x i .Math. 0 0 1 0 0 0 1 ) ( 1 0 0 0 1 0 x i v x i .Math. 0 0 1 0 0 0 1 ) [ Formula 4 ]
Here, the meanings of symbols are as follows:
x.sub.i: coordinate value of a node x.sub.i;
ofs.sub.xi: relative offset vector for the parent node of the node x.sub.i; and
v.sub.xi: movement direction vector of the node x.sub.i.

(102) In the case of a rotary axis, the homogeneous transformation matrix is represented as follows.

(103) S x i = ( 1 0 0 0 1 0 ofs x i .Math. 0 0 1 0 0 0 1 ) R ( x i , v 1 , v 2 , v 3 ) R ( x i , v 1 , v 2 , v 3 ) = ( v 1 2 ( 1 - cos x i ) + cos x i v 1 v 2 ( 1 - cos x i ) - v 3 sin x i v 1 v 3 ( 1 - cos x i ) + v 2 sin x i 0 v 1 v 2 ( 1 - cos x i ) + v 3 sin x i v 2 2 ( 1 - cos x i ) + cos x i v 3 v 2 ( 1 - cos x i ) - v 1 sin x i 0 v 1 v 3 ( 1 - cos x i ) - v 2 sin x i v 2 v 3 ( 1 - cos x i ) + v 1 sin x i v 3 2 ( 1 - cos x i ) + cos x i 0 0 0 0 1 ) [ Formula 5 ]
Here, the meanings of symbols are as follows;
v.sub.1: first component of the rotary axis direction vector of the node x.sub.i;
v.sub.2: second component of the rotary axis direction vector of the node x.sub.i; and
v.sub.3: third component of the rotary axis direction vector of the node x.sub.i.

(104) Here, a homogeneous matrix X.sub.m representing the current position and posture of the virtual object on the control point on the camera coordinate system is determined by a formula below using M.sub.obj.
X.sub.m=M.sub.coord.sup.−1(Π.sub.i=L.sup.1S.sub.x.sub.i.sup.−1)M.sub.obj where Π.sub.i=L.sup.1S.sub.x.sub.i.sup.−1=S.sub.x.sub.L.sup.−1S.sub.x.sub.L−1.sup.−1. . . S.sub.x.sub.1.sup.−1  [Formula 6]
Here, the meanings of symbols are as follows;
L: number of a series of nodes leading from the route of the machine configuration tree to the coordinate system; and
M.sub.coord: homogeneous matrix of relative offset/posture for the parent node of the camera which is defined according to the mathematical formula of [Formula 2] described above from an offset vector/posture matrix defined in the coordinate system

8. Method of Displaying Virtual Object

(105) FIG. 20 shows an operation flow when a virtual object is displayed. First, individual steps will be schematically described.

(106) In step S41, the machine configuration management device 100 adds a camera node to the machine configuration tree as a new node. In this way, for example, when the configuration of the machine tool 400 is a configuration as shown in FIG. 21A, the camera node is added to the machine configuration tree showing the configuration of the machine tool 400 as shown in FIG. 21B.

(107) In step S42, the augmented information controller 200 acquires, from the machine configuration management device 100, a node which can be displayed.

(108) In step S43, the augmented information controller 200 selects a node on which the augmented information of the virtual object and the like is displayed, and notifies it to the machine configuration management device 100.

(109) In step S44, the machine configuration management device 100 derives a formula for determining the position and the posture of the node required to be displayed in the camera coordinate system, and notifies it to the augmented information controller 200.

(110) In step S45, the augmented information controller 200 acquires the coordinate values of the individual control axes from the numerical controller 150.

(111) In step S46, the augmented information controller 200 uses the acquired coordinate values and the formula for determining the position and the posture in the camera coordinate system so as to determine the position and the posture of the node on which the augmented information of the virtual object and the like is displayed in the camera coordinate system.

(112) In step S47, the augmented information controller 200 determines the position and the posture in the screen coordinate system by the transformation of the coordinate system from the position and the posture in the camera coordinate system.

(113) In step S48, the augmented information controller 200 generates augmented information display data which is the display data of the augmented information of the virtual object and the like, and outputs it to the display device 300.

(114) In step S49, the display device 300 displays the augmented information of the virtual object and the like. Thereafter, the processing is returned to step S45.

(115) The position and the posture of the node on which the augmented information of the virtual object and the like is displayed in the camera coordinate system may be determined in the machine configuration management device 100, and values indicating the position and the posture themselves may be notified to the augmented information controller 200.

(116) In steps S47 described above, the augmented information controller 200 uses a known method so as to determine the position and the posture in the screen coordinate system from the position and the posture in the camera coordinate system.

(117) More specifically, processing for determining the transformation information from the camera coordinate system into the screen coordinate system is performed, and by the transformation information, the position and the posture of the virtual object are transformed from the camera coordinate system into values in the screen coordinate system. The augmented information display data includes, in addition to the positions and the postures in the camera coordinate system and the screen coordinate system determined here, the data of the shape and the like of the virtual object. The augmented information display data is output to the display device 300, the output data is used and thus the display device 300 can draw the virtual object in appropriate positions of left and right screens.

(118) By way of the above-mentioned method, it is possible to display the virtual object at an arbitrary node on the display. As shown in FIG. 22A, as the virtual objects, for example, 3D models for a workpiece and a tool may be arranged so as to be used for performing a machining simulation. Data which is associated with a node such as the number of revolutions of each spindle may be displayed. Furthermore, an acceleration sensor and a temperature sensor are arranged, and as shown in FIG. 22B, sensor nodes are added to the machine configuration tree, with the result that it is possible to visually check the acceleration and the temperature of each place. In this way, an operator of the machine tool 400 can check the data associated with the nodes and the numerical values of the sensors.

9. Effects Exerted by the Present Embodiment

(119) In the present embodiment, the virtual objects can be arranged on all the nodes registered on the graph. In particular, by the addition of a camera node, it is possible to add a virtual object in an arbitrary position, and it is not necessary to additionally register the transformation formula for the amount of movement and to additionally recognize a singular point. It is also not necessary to recognize the initial position.

10. Modified Examples

(120) Although partially repeated, the graph data may be stored in the machine configuration management device 100 but there is no limitation to this configuration. For example, the graph data may be stored in the augmented information controller 200 or may be stored on a server which is connected to the virtual object display system 10 through a network. The data of the machine configuration tree can be stored in the augmented information controller 200 or on the server, and thus the present invention can be applied to even an old machine tool. In this case, the above-described processing until step S43 is not performed, and step S44 is performed on the side of the augmented information controller 200.

(121) The machine configuration management device 100 may be incorporated so as to be integrated into the numerical controller 150. The machine configuration management device 100 may also be present on a cloud.

(122) The machine configuration management device, the numerical controller, the augmented information controller and the machine tool each can be realized by hardware, software or a combination thereof. The simulation method performed by the cooperation of the machine configuration management device, the numerical controller, the augmented information controller and the machine tool can also be realized by hardware, software or a combination thereof. Here, the realization by software means that the realization is achieved by reading and performing programs with a computer.

(123) The programs are stored with various types of non-transitory computer readable media, and can be supplied to a computer. The non-transitory computer readable media include various types of tangible storage media. Examples of the non-transitory computer readable medium include magnetic storage media (for example, a flexible disk, a magnetic tape and a hard disk drive), magneto-optical storage media (for example, a magneto-optical disk), a CD-ROM (Read Only Memory), a CD-R, a CD-R/W, semiconductor memories (for example, a mask ROM and a PROM (Programmable ROM), an EPROM (Erasable PROM), a flash ROM and a RAM (random access memory). The programs may be supplied with various types of transitory computer readable media to a computer. Examples of the transitory computer readable medium include an electrical signal, an optical signal and electromagnetic waves. The transitory computer readable medium can supply the programs to a computer through a wired communication path such as an electrical wire or an optical wire or a wireless communication path.

EXPLANATION OF REFERENCE NUMERALS

(124) 10 virtual object display system 100 machine configuration management device 110 control portion 111 graph generation portion 112 node addition portion 113 control point coordinate system insertion portion 114 node information notification portion 115 transformation information calculation portion 116 transformation information notification portion 120 storage portion 150 numerical controller 160 control portion 161 coordinate information notification portion 162 servomotor control portion 200 augmented information controller 211 node selection portion 212 selection node notification portion 213 coordinate information transformation portion 214 augmented information display data calculation portion 215 augmented information display data notification portion 220 storage portion 300 display device 400 machine tool