This application is based on and claims the benefit of priority from Japanese Patent Application No. 2017-127692, filed on 29 Jun. 2017, the content of which is incorporated herein by reference.
The present invention relates to a virtual object display system for performing a simulation using the technology of AR (Augmented Reality) and MR (Mixed reality).
Conventionally, in the field of machine tools controlled by numerical controllers, workpieces and fixtures are designed by CAD (computer-aided design) or the like. The designed fixture is used, and thus a machining program for machining the workpiece is produced. Then, the machine tool is controlled by the numerical controller based on the machining program, and thus the machining of the workpiece is realized.
Here, before the fixture and the workpiece designed and the machining program are actually placed in a manufacturing line, in order to check if they are appropriate, a machining simulation is generally performed.
When this machining simulation is performed by an operation check with an actual machine, the machining simulation naturally cannot be performed until an actual fixture is completed. Hence, disadvantageously, the process is stopped until the fixture is completed.
When at the time of the operation check after the completion of the fixture, a problem such as interference is found, and thus it is necessary to change the design of the fixture, the process is further extended. A cost for changing the design of the fixture is also needed. If the design of the fixture is not changed, the machining program needs to be changed, and in this case, a cycle time necessary for the machining may be extended beyond the original cycle time.
With consideration given to these problems, there is a technology in which the operation check is not performed with the actual machine but the machining simulation is virtually performed by computation processing with a personal computer or the like. For example, in a technology disclosed in Patent Document 1, all structures in machine tools are transformed into virtual objects, and thus a machining simulation is performed.
However, in the technology disclosed in Patent Document 1, it is necessary to produce not only virtual objects for a workpiece and a fixture but also virtual objects for the entire machine of a plurality of types of individual machine tools. Moreover, in order to reproduce the operation of the actual machine tools, it is necessary to install operation processing into the virtual objects of movable parts of the machine tools. In other words, disadvantageously, it is not easy to produce the virtual objects.
Furthermore, even when the virtual objects described above are produced, if the reproducibility of the virtual objects is low, a difference from the reality is disadvantageously produced.
A technology with consideration given to the problems on virtual objects as described above is disclosed in Patent Document 2. In the technology disclosed in Patent Document 2, the interior of a machine tool is acquired with camera images, and a tool holding portion or a workpiece holding portion which is previously registered is extracted as a feature point. Then, the virtual object of the tool or the workpiece previously registered is overlaid and displayed, based on the position of feature point, on the image of the machine tool actually shot. In this way, it is not necessary to produce the virtual object of the machine tool.
However, disadvantageously, in the technology disclosed in Patent Document 2, it is necessary to fix the direction of shooting with a camera to a preset direction, and thus it is impossible to change a viewpoint for checking how a machining simulation is performed.
On the other hand, in the field of image processing technologies in recent years, an augmented reality technology such as for overlaying virtual objects on objects actually present in a real space and displaying them has been generally utilized. In the following description, information displayed by the augmented reality technology as described above is referred to as “augmented information”.
The augmented reality technology as described above is utilized, and thus it is possible to extract a specific feature point (for example, a marker) of an image shot with a camera and perform overlay display on the augmented information such as virtual objects. Moreover, it is possible to arbitrarily change the direction of shooting with the camera. Hence, the augmented reality technology as described above can be appropriately utilized, and thus it is possible to remove the problem in the technology disclosed in Patent Document 2 described above.
A basic technology for the augmented reality technology such as AR and MR as described above is disclosed in Non-Patent Document 1. In the technology disclosed in Non-Patent Document 1, a see-through type HMD (Head Mounted Display) is used as a display device, and the three-dimensional position of a marker serving as the reference coordinates of a virtual object display is detected from image information obtained by a small-sized camera attached to the HMD. Then, by the provision of virtual object images in which parallax is given to both eyes of a user, it is possible to display, as a three-dimensional object, a virtual object in a three-dimensional space of the real world seen through a HMD screen.
Specifically, in the technology disclosed in Non-Patent Document 1, as shown in
Then, the coordinate transformation matrix obtained in this processing is used, and thus it is possible to drawn the virtual object in appropriate positions of left and right screens in the HMD.
The augmented reality technology disclosed in Non-Patent Document 1 and the like as described above is utilized, and thus the virtual object is displayed within an actual machine tool, and the machining simulation can be performed.
For example, when as shown in
By utilization of this, the marker is arranged on a movable portion of an actual machine tool, and thus the virtual object can be moved according to the actual movement of a table. For example, as shown as (29A) on the left of
In this way, it is possible to perform the machining simulation without the entire machine tool set to virtual objects and without the movable portion of the machine tool being reproduced.
Patent Document 1: Japanese Patent No. 4083554
Patent Document 2: Japanese Patent No. 5384178
Patent Document 3: Japanese Unexamined Patent. Application, Publication No. 2012-58968
Patent Document 4: Japanese Patent No. 5872923
Non-Patent Document 1
“Augmented reality system based on marker tracking and its calibration”, “online”, “searched on Nov. 27, 2016”, Internet <URL:
http://intron.kz.tsukuba.ac.jp/tvrsj/4.4/kato/p-99_VRSJ4_4.pdf>
However, when as shown in
For example, there is a problem in which as shown as (30A) on the left of
There is also a problem in which as shown as (30B) in the center of
There is also a problem in which as shown as (30C) on the right of
In addition, it can also be considered that a plurality of virtual objects are displayed on one marker. For example, it can be considered that as shown as (31A) on the left of
With consideration given to these problems, when the machining simulation is performed on the machine tool, it is preferable to be able to fixedly install the marker in a predetermined position without the marker itself being moved.
However, when the marker is fixedly installed, a virtual object which is displayed with the marker set to the zero point is not moved. In this configuration, it is impossible to perform the machining simulation.
Hence, when the marker is fixedly installed, it is necessary to move/rotate the virtual object on the marker coordinate system according to the movement of the movable portion in the machine tool.
By contrast, the movable portion in the actual machine tool is moved/rotated by the operation of a control axis controlled by a numerical controller. The coordinate system of the control axis (hereinafter also referred to as the “control axis coordinate system”) is managed by the numerical controller so as to be specific to each machine tool.
In other words, the marker coordinate system and the control axis coordinate system are different from each other, and thus it is impossible to properly perform the machining simulation only by the amount of movement of the control axis.
As a technology for solving this problem, for example, a first method can be considered in which position information on the marker coordinate system is changed according to position information on the control axis coordinate system. However, in this method, it is necessary to set relationship information for transforming the amount of movement in the control axis coordinate system into the amount of movement in the marker coordinate system.
As a technology for making it unnecessary to set the relationship information, for example, a second method can be considered in which a plurality of pieces of image sensing data obtained by sensing the images of positions of a marker fixed in a position seen from a camera, a tool moved as the control axis is moved and the like are acquired, and in which the relationship information for transforming the amount of movement in the control axis coordinate system into the amount of movement in the marker coordinate system is estimated from the positon of the tool in the marker coordinate system calculated from the acquired image sensing data and coordinate values in the control axis coordinate system.
However, in the second method, a transformation formula needs to be previously registered so as to include an unspecified number for each of the configurations of machines, and thus only previously prepared machine configurations can be used. In addition to the recognition of the marker, an image recognition technology for recognizing the positions of a tool and the like is required.
Furthermore, both in the first and second methods, a transformation formula is needed for each virtual object, and since this transformation formula is originally used for the amount of movement, a means for recognizing the initial position is needed. In order to recognize the initial position, it is necessary to place an initial position detection marker on a target on which the virtual object is arranged or to perform image recognition on the target, with the result that when the number of virtual objects is increased, the recognition means for the individual virtual objects are needed.
Hence, an object of the present invention is to provide a virtual object display system which can display a virtual object with a simple method.
(1) A virtual object display system (for example, a virtual object display system 10 which will be described later) according to the present invention which includes a machine configuration management device (for example, a machine configuration management device 100 which will be described later) and an augmented information controller (for example, a augmented information controller 200 which will be described later), in which the machine configuration management device includes a graph generation portion (for example, a graph generation portion 111 which will be described later), a control point coordinate system insertion portion (for example, a control point coordinate system insertion portion 113 which will be described later), a node information notification portion (for example, a node information notification portion 114 which will be described later), a transformation information calculation portion (for example, a transformation information calculation portion 115 which will be described later) and a transformation information notification portion (for example, a transformation information notification portion 116 which will be described later) and in which the augmented information controller includes a node selection portion (for example, a node selection portion 211 which will be described later), a selection node notification portion (for example, a selection node notification portion 212 which will be described later) and a coordinate information transformation portion (for example, a coordinate information transformation portion 213 which will be described later), where the graph generation portion generates, as a machine configuration of a control target, a graph in which constituent elements including markers are nodes, the control point coordinate system insertion portion inserts a control point and a coordinate system into the graph, the node information notification portion notifies information of a node which can be displayed to the augmented information controller, the node selection portion selects a node on which a virtual object is desired to be displayed, the selection node notification portion notifies the node on which the virtual object is desired to be displayed to the machine configuration management device, the 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 marker 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 marker node based on the graph, the transformation information notification portion notifies the transformation information to the augmented information controller and the coordinate information transformation portion uses 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 marker node.
(2) Preferably, the virtual object display system (for example, a virtual object display system 10 which will be described later) according to (1) further includes a display device (for example, a head mounted display 300 which will be described later), where the augmented information controller (for example, an augmented information controller 200 which will be described later) further includes: an augmented information display data calculation portion (for example, an augmented information display data calculation portion 214 which will be described later) which calculates, based on the position and/or the posture of the node of the display target in the coordinate system of the marker node, augmented information da splay data for calculating, with the display device, the virtual object as augmented information; and an augmented information display data notification portion (for example, an augmented information display data notification portion 215 which will be described later) which notifies the augmented information display data to the display device.
(3) Preferably, in the virtual object display system (for example, a virtual object display system 10 which will be described later) according to (1) or (2), the coordinate information transformation portion (for example, a coordinate information transformation portion 213 which will be described later) transforms, as the coordinate value of the control axis, a coordinate value received from a numerical controller (for example, a numerical controller 150 which will be described later) into the position and/or the posture of the node of the display target in the coordinate system of the marker node.
(4) Preferably, in the virtual object display system (for example, a virtual object display system 10 which will be described later) according to any one of (1) to (3), the graph generation portion (for example, a graph generation portion 111 which will be described later) adds a plurality of the marker nodes to the graph, the transformation information calculation portion (for example, an transformation information calculation portion 115 which will be described later) calculates the transformation information for calculating the position and/or the posture of the node from the coordinate system of the marker nodes and the transformation information notification portion (for example, an transformation information notification portion 116 which will be described later) notifies the transformation information to the augmented information controller.
(5) Preferably, in the virtual object display system (for example, a virtual object display system 10 which will be described later) according to any one of (1) to (3), the graph generation portion (for example, a graph generation portion 111 which will be described later) adds a base marker node, and the transformation information calculation portion (for example, an transformation information calculation portion 115 which will be described later) notifies the augmented information controller of the transformation information with reference to the coordinate system of the base marker node and the transformation information between the coordinate system of the base marker node and the coordinate system of the marker node.
(6) Preferably, in the virtual object display system (for example, a virtual object display system 10 which will be described later) according to any one of (1) to (5), the augmented information controller (for example, an augmented information controller 200 which will be described later) further includes a storage portion (for example, a storage portion 220 which will be described later) having data of the graph.
(7) Preferably, the virtual object display system (for example, a virtual object display system 10 which will be described later) according to any one of (1) to (6), further includes a server which stores data of the graph.
(8) Preferably, in the virtual object display system (for example, a virtual object display system 10 which will be described later) according to any one of (1) to (7), the machine configuration management device (for example, a machine configuration management device 100 which will be described later) is integrated with a numerical controller (for example, a numerical controller 150 which will be described later) of a machine tool (for example, a machine tool 400 which will be described later).
(9) Preferably, in the virtual object display system (for example, a virtual object display system 10 which will be described later) according to any one of (1) to (7), the machine configuration management device (for example, a machine configuration management device 100 which will be described later) is present on a cloud.
According to the present invention, it is possible to display a virtual object with a simple method.
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
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 250, a head mounted display 300 and a machine tool 400.
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.
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, markers are added and registered as the nodes of the machine configuration tree or when a marker is adhered to the existing node, the node is recognized as a marker node. Since the machine configuration tree has mutual position relationship information of the individual nodes, the markers are included as the nodes 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 markers is found. The detailed configuration of the machine configuration management device 100 will be described later with reference to
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.
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
The augmented information controller 200 is a device specific to the present embodiment, 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
The wireless communication device 250 is connected to the augmented information controller 200 so as to be able to communicate therewith, and acquires a virtual object output by the augmented information controller 200 and the display position and the display angle thereof. The information output by the augmented information controller 200 corresponds to a camera coordinate system. The information output by the augmented information controller 200 is transmitted to the head mounted display 300 in conformity with wireless communication standards such as Wi-Fi.
The wireless communication device 250 receives, by wireless communication, from the head mounted display 300, information acquired by image sensing with a camera included in the head mounted display 300. Then, the wireless communication device 250 outputs the received information to the augmented information controller 200.
The head mounted display 300 is a general head mounted display (hereinafter referred to as the “HMD” as necessary), and acquires the virtual object output by the augmented information controller 200 and the display position and the display angle thereof through the wireless communication device 250. Then, based on the acquired information, the virtual object is displayed on a display included in the head mounted display 300 itself. The acquired information corresponds to the camera coordinate system as described above. The head mounted display 300 also outputs, through the wireless communication device 250, to the augmented information controller 200, the information acquired by image sensing with the camera included in the head mounted display 300 itself.
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 the present embodiment, in the configuration described above, a user references the virtual object displayed according to a marker coordinate system on the display of the head mounted display 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.
The configuration shown in
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.
The graph generation portion 111 generates, in a graph form, the machine configuration of the machine tool 400 including markers. 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.
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.
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.
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 marker 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 marker 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.
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.
The storage portion 120 stores information on the machine configuration tree generated by the graph generation portion 111.
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.
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.
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).
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.
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.
The node selection portion 211 selects a node on which the virtual object is desired to be displayed.
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.
The coordinate information transformation portion 213 calculates the position and/or the posture of the virtual object in the marker 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.
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 first uses information from the head mounted display 300 so as to transform the position and/or the posture of the virtual object in the marker coordinate system into the position and/or the posture in the camera coordinate system. Furthermore, the augmented information display data calculation portion 214 transforms the position and/or the posture into the position and/or the posture in a screen coordinate system.
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 head mounted display 300 through the wireless communication device 250. 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.
The storage portion 220 stores information on the graph generated by the graph generation portion 111 of the machine configuration management device 100.
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.
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
As the example, the method of generating the machine configuration tree representing the configuration of a machine shown in
First, as shown in
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
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.
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.
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
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.
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.
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.
In step S15, the graph generation portion 111 sets the value to the corresponding item of the node to which the parameter is set.
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.
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.
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
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
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.
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.
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.
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.
For example, in a rotary index machine 350 shown in
In an example of a series of nodes leading from individual workpieces to the machine zero point, as shown in
As shown in
A flowchart obtained by generalizing the method of automatically inserting the control point described above is shown in
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.
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 S32.
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.
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 nth child node is not present in the node (no in S33), the processing is transferred to step S36.
In step S34, on the nth child node, the chart B itself is performed in a recursive manner.
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.
In step S36, the variable n is popped by 1, and the flow of the chart B is completed.
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
As described above, the transformation information calculation portion 115 calculates the transformation information for transforming the coordinate value of the control axis into the positon and/or the posture of the virtual object in the marker coordinate system. A method of calculating the transformation information will be described in detail with reference to
For example, as shown in
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
Here, as shown in
M
obj=(Πi=1NSx
The homogeneous transformation matrix Sxi 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.
In the case of a rotary axis, the homogeneous transformation matrix is represented as follows.
Here, a homogeneous matrix X representing the current positon and posture of the virtual object on the control point on the marker coordinate system is determined by a formula below using Mobj.
X
m
=M
coord
−1(Πi=L1Sx
In step S41, the machine configuration management device 100 adds a marker 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
In step S42, the augmented information controller 200 acquires, from the machine configuration management device 100, a node which can be displayed.
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.
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 marker coordinate system, and notifies it to the augmented information controller 200.
In step S45, the augmented information controller 200 acquires the coordinate values of the individual control axes from the numerical controller 150.
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 marker 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 marker coordinate system.
In step S47, the augmented information controller 200 determines the position and the posture in the camera coordinate system by the transformation of the coordinate system from the position and the posture in the marker coordinate system.
In step S48, 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.
In step S49, 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 head mounted display 300.
In step S50, the head mounted display 300 displays the augmented information of the virtual object and the like. Thereafter, the processing is returned to step S45.
The position and the posture of the node on which the augmented information of the virtual object and the like is displayed in the marker 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.
In steps S47 and S48 described above, the augmented information controller 200 uses a known method such as the method disclosed in Non-Patent Document 1 so as to determine the position and the posture in the camera coordinate system from the position and the posture in the marker coordinate system and determine the position and the posture in the screen coordinate system from the position and the posture in the camera coordinate system. More specifically, the three-dimensional position of the marker serving as the reference coordinates of a virtual object display is detected from image information obtained by a small-sized camera attached to the head mounted display 300, and thus processing for determining the transformation information from the marker coordinate system into the camera coordinate system is performed. By the transformation information, the position and the posture of the virtual object are transformed from the marker coordinate system into values in the camera coordinate system. Furthermore, 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 head mounted display 300, the output data is used and thus the head mounted display 300 can draw the virtual object in appropriate positions of left and right screens.
As shown in
Xc=MmcXm [Formula 7]
By the method described above, the position posture matrix Xc of the virtual objects in the camera coordinate system can be determined, and thus on the display, for an arbitrary node, the virtual object can be displayed. As shown in
In the present embodiment, the markers are only recognized with the camera, and thus the virtual objects can be arranged on all the nodes registered on the graph. In particular, by the addition of a marker 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.
It can be considered that it is likely that the marker described above is seen or is not seen depending on the position of a viewpoint. Hence, in order to prevent a case where the marker is not seen, as shown in
Furthermore, as shown in
Here, as shown in
Xc=MmcbXmb
M
mcb
=kM
mc1
M
mb1
−1+(1−k)Mmc2Mmb2−1
X
mb
=kM
mb1
X
m1+(1−k)Mmb2Xm2 [Formula 8]
Here, k is a coefficient for determining the weight of a marker, and for example, when both markers are used, k is 0.5, when only the marker 1 is used, k is 1 and when only the marker 2 is used, k is 0. Processing for dealing with a plurality of markers is integrated into processing for determining the position and the posture of the base marker node and processing for determining the transformation information from the base marker node coordinate system into the camera coordinate system, and the other processing is the same processing as when a single marker is used, with the result that it is easy to deal with a plurality of markers.
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.
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.
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.
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.
Number | Date | Country | Kind |
---|---|---|---|
2017-127692 | Jun 2017 | JP | national |