U.S. patent application number 14/043183 was filed with the patent office on 2014-04-03 for translation/rotation error compensation amount creating device.
This patent application is currently assigned to FANUC CORPORATION. The applicant listed for this patent is FANUC CORPORATION. Invention is credited to Osamu HANAOKA, Toshiaki OTSUKI.
Application Number | 20140094970 14/043183 |
Document ID | / |
Family ID | 50276438 |
Filed Date | 2014-04-03 |
United States Patent
Application |
20140094970 |
Kind Code |
A1 |
OTSUKI; Toshiaki ; et
al. |
April 3, 2014 |
TRANSLATION/ROTATION ERROR COMPENSATION AMOUNT CREATING DEVICE
Abstract
A translation/rotation error compensation amount creating device
creates, for a multi-axis machining apparatus having two rotation
axes, a translation error compensation amount and a rotation error
compensation amount both depending on the rotation axes. The
translation/rotation error compensation amount creating device
calculates the translation error compensation amount and the
rotation error compensation amount based on an assembly error (set
value) including at least an assembly error in a table surface or
an assembly error in a spindle turning centerline in a multi-axis
machining apparatus as well as the positions of the two rotation
axes, and inputs the calculated error compensation amounts to a
numerical controller controlling the multi-axis machining
apparatus.
Inventors: |
OTSUKI; Toshiaki;
(Minamitsuru-gun, JP) ; HANAOKA; Osamu;
(Minamitsuru-gun, JP) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
FANUC CORPORATION |
Minamitsuru-gun |
|
JP |
|
|
Assignee: |
FANUC CORPORATION
Minamitsuru-gun
JP
|
Family ID: |
50276438 |
Appl. No.: |
14/043183 |
Filed: |
October 1, 2013 |
Current U.S.
Class: |
700/275 |
Current CPC
Class: |
G05B 2219/49198
20130101; G05B 19/404 20130101; G05B 2219/49189 20130101 |
Class at
Publication: |
700/275 |
International
Class: |
G05B 19/404 20060101
G05B019/404 |
Foreign Application Data
Date |
Code |
Application Number |
Oct 2, 2012 |
JP |
2012-220675 |
Claims
1. A translation/rotation error compensation amount creating device
creating, for a multi-axis machining apparatus having at least two
rotation axes, a translation error compensation amount and a
rotation error compensation amount both depending on the rotation
axes, the translation/rotation error compensation amount creating
device comprising: an assembly error setting section that presets
an assembly error including at least an assembly error in a table
surface or an assembly error in a spindle turning centerline in the
multi-axis machining apparatus; a translation/rotation error
compensation amount calculating section that calculates the
translation error compensation amount and the rotation error
compensation amount based on the assembly error set by the assembly
error setting section and positions of the two rotation axes; and a
translation/rotation error compensation amount input section that
inputs the calculated translation error compensation amount and the
rotation error compensation amount to a numerical controller
controlling the multi-axis machining apparatus.
2. The translation/rotation error compensation amount creating
device according to claim 1, wherein the positions of the two
rotation axes are the positions of the two rotation axes obtained
from the numerical controller at every interpolation period.
3. The translation/rotation error compensation amount creating
device according to claim 1, wherein the two rotation axes are two
rotation axes for table rotation, the multi-axis machining
apparatus is a table rotating multi-axis machining apparatus, and
the assembly error is the assembly error in the table surface and
an assembly error in the two rotation axes for table rotation.
4. The translation/rotation error compensation amount creating
device according to claim 1, wherein the two rotation axes are two
rotation axes for tool head rotation, the multi-axis machining
apparatus is a tool head rotating multi-axis machining apparatus,
and the assembly error is the assembly error in the spindle turning
centerline and an assembly error in the two rotation axes for tool
head rotation.
5. The translation/rotation error compensation amount creating
device according to claim 1, wherein the two rotation axes are one
rotation axis for table rotation and one rotation axis for tool
head rotation, the multi-axis machining apparatus is a mixed
multi-axis machining apparatus with one rotation axis for table
rotation and one rotation axis for tool head rotation, and the
assembly error is the assembly error in the table surface, an
assembly error in the one rotation axis for table rotation, an
assembly error in the one rotation axis for tool head rotation, and
the assembly error in the spindle turning centerline.
6. A numerical controller controlling a multi-axis machining
apparatus having at least two rotation axes, the numerical
controller comprising: a numerical control section that analyzes a
machining program to carry out interpolation; and a
translation/rotation error compensation amount creating device that
creates a translation error compensation amount and a rotation
error compensation amount both depending on the rotation axes, the
translation/rotation error compensation amount creating device
comprising: an assembly error setting section that presets an
assembly error including at least an assembly error in a table
surface or an assembly error in a spindle turning centerline in the
multi-axis machining apparatus; a translation/rotation error
compensation amount calculating section that calculates the
translation error compensation amount and the rotation error
compensation amount based on the assembly error set by the assembly
error setting section and positions of the two rotation axes; and a
translation/rotation error compensation amount input section that
inputs the calculated translation error compensation amount and the
rotation error compensation amount to the numerical controller.
7. The numerical controller according to claim 6, wherein the
positions of the two rotation axes are the positions of the two
rotation axes obtained from the numerical controller at every
interpolation period.
8. The numerical control apparatus according to claim 6, wherein
the two rotation axes are two rotation axes for table rotation, the
multi-axis machining apparatus is a table rotating multi-axis
machining apparatus, and the assembly error is the assembly error
in the table surface and an assembly error in the two rotation axes
for table rotation.
9. The numerical control apparatus according to claim 6, wherein
the two rotation axes are two rotation axes for tool head rotation,
the multi-axis machining apparatus is a tool head rotating
multi-axis machining apparatus, and the assembly error is the
assembly error in the spindle turning centerline and an assembly
error in the two rotation axes for tool head rotation.
10. The numerical control apparatus according to claim 6, wherein
the two rotation axes are one rotation axis for table rotation and
one rotation axis for tool head rotation, the multi-axis machining
apparatus is a mixed multi-axis machining apparatus with one
rotation axis for table rotation and one rotation axis for tool
head rotation, and the assembly error is the assembly error in the
table surface, an assembly error in the one rotation axis for table
rotation, an assembly error in the one rotation axis for tool head
rotation, and the assembly error in the spindle turning centerline.
Description
BACKGROUND OF THE INVENTION
[0001] 1. Field of the Invention
[0002] The present invention relates to a device that creates a
translation error compensation amount and a rotation error
compensation amount both depending on a rotation axis, based on a
preset assembly error and a rotation axis position in order to
compensate an assembly error in a multi-axis machining apparatus
having at least two rotation axes.
[0003] Now, the translation error compensation amount and rotation
error compensation amount depending on the rotation axis will be
described.
[0004] In "JIS B6190-7 FIG. 1 b) Error motion of rotation axis" of
Japanese Industrial Standard, errors depending on a C shaft are
represented as:
[0005] "EXC: radial motion in an X direction",
[0006] "EYC: radial motion in a Y direction",
[0007] "EZC: axial motion",
[0008] "EAC: tilting motion around an X shaft",
[0009] "EBC: tilting motion around an Y shaft", and
[0010] "ECC: angular positioning error".
[0011] According to the present invention, of the errors depending
on a C shaft, "EXC: radial motion in the X direction", "EYC: radial
motion in the Y direction", and "EZC: axial motion" are referred to
as translation errors (specifically, translation errors depending
on the C shaft). "EAC: tilting motion around the X shaft", "EBC:
tilting motion around the Y shaft", and "ECC: angular positioning
error" are referred to as rotation errors (specifically, rotation
errors depending on the C axis).
[0012] For another rotation axis, for example, an A axis, the
following are present: "EXA: axial motion", "EYA: radial motion in
the Y direction", "EZA: radial motion in a Z direction axial
motion", "EAA: angular positioning error", "EBA: tilting motion
around the Y shaft", and "ECA: tilting motion around a Z
shaft".
[0013] Thus, the translation errors and the rotation errors varying
depending on the positions of the rotation axes are hereinafter
referred to as translation errors and rotation errors depending on
the rotation axes, and compensation amounts by which those errors
are compensated are hereinafter referred to as translation error
compensation amounts and rotation error compensation amounts
depending on the rotation axes.
[0014] 2. Description of the Related Art
[0015] Japanese Patent Application Laid-open No. 2004-272887 (JP
2004-272887 A) discloses a technique for compensating an assembly
error in a rotation axis in a multi-axis machining apparatus having
rotation axes. The technique uses many matrix operations using
triangular functions. Thus, the technique can be partly carried out
in practice, but a numerical controller that needs to perform
high-speed control takes a long time for arithmetic operations, and
the technique is thus difficult to carry out in practice. Moreover,
the technique disadvantageously fails to take into account an
assembly error in a table surface, that is, an error between a
table surface centerline and a table rotation axis rotation
centerline, more specifically, an error in which the table surface
fails to be perpendicular to the table rotation axis (C axis
described below) rotation centerline and in which the table surface
centerline deviates from the table rotation axis (C axis) rotation
centerline.
[0016] On the other hand, Japanese Patent Application Laid-open No.
2009-151756 (JP 2009-151756 A) discloses a technique for
compensating an error based on a translation error compensation
amount and a rotation error compensation amount both depending on
rotation axes. The technique performs matrix operations but does
not take such a long time as needed for the technique described in
JP 2004-272887 A. Thus, the technique disclosed in JP 2009-151756 A
allows a numerical controller to perform compensation in practice.
However, to determine the compensation amount, the technique
divides a two-dimensional coordinate system for two rotation axes
into pieces like a grid, sets a translation error compensation
amount and a rotation error compensation amount at each of the
resultant grid points, and calculates a compensation amount for the
position of the rotation axis based on compensation amounts for
grid points enclosing the position of the rotation axis. That is,
the technique is not a method for obtaining the compensation amount
from the assembly error. Thus, when an attempt is made to
compensate the assembly error by the technique disclosed in JP
2009-151756 A, the assembly error needs to be converted into a
translation error compensation amount and a rotation error
compensation amount both depending on the rotation axes and to set
the translation error compensation amount and the rotation error
compensation amount. However, JP 2009-151756 A fails to disclose
such a conversion technique.
[0017] Furthermore, Journal of Technical Disclosure No. 2009-505137
discloses a technique for creating the compensation amount
disclosed in JP 2009-151756 A from the assembly error in a
multi-axis machining apparatus (table rotating multi-axis machining
apparatus) having two rotation axes for rotation of a table which
is disclosed in JP 2004-272887 A. The technique fails to take an
assembly error in the table surface into account. Journal of
Technical Disclosure No. 2009-505137 describes a technique for
creating a compensation amount from an assembly error in a rotation
axis in a table rotating 5-axis machining apparatus and further
states that the technique can be applied to a head rotating 5-axis
machining apparatus (see FIG. 10) in which a head rotates based on
two rotation axes and a mixed 5-axis machining apparatus (see FIG.
14) in which both a head and a table rotate.
[0018] However, the inventors have found that it is insufficient to
apply the technique disclosed in Journal of Technical Disclosure
No. 2009-505137 directly to the tool head rotating 5-axis machining
apparatus or the mixed 5-axis machining apparatus. The reason is as
follows.
[0019] In terms of an error in a member installed on a rotor, the
assembly error in the tool head rotating multi-axis machining
apparatus corresponding to the assembly error in the table surface
in the table rotating multi-axis machining apparatus is an assembly
error in a spindle turning centerline, that is, an error in which
the spindle turning centerline fails to be orthogonal to the
rotational centerline of a tool head tilting axis (an A axis
described below). JP 2004-272887 A takes the assembly error in the
spindle turning centerline into account while Journal of Technical
Disclosure No. 2009-505137 does not take into account the assembly
error in the table surface in the table rotating multi-axis
machining apparatus as described above. Thus, even when the
technique disclosed in Journal of Technical Disclosure No.
2009-505137 is applied to the tool head rotating multi-axis
machining apparatus disclosed in JP 2004-272887 A, the assembly
error in the spindle turning centerline fails to be compensated.
This also applies to the mixed multi-axis machining apparatus.
SUMMARY OF THE INVENTION
[0020] Thus, an object of the present invention is to provide a
translation/rotation error compensation amount creating device for
a numerical controller controlling a multi-axis machining apparatus
having at least two rotation axes by:
[0021] converting an assembly error including an assembly error in
a table surface in a table rotating multi-axis machining apparatus
having a rotary table into a translation error compensation amount
and a rotation error compensation amount both depending on the
rotation axes;
[0022] converting an assembly error including an assembly error in
a spindle turning centerline in a tool head rotating multi-axis
machining apparatus into a translation error compensation amount
and a rotation error compensation amount both depending on the
rotation axes; or
[0023] converting an assembly error including an assembly error in
a table surface and an assembly error in a spindle turning
centerline in a mixed multi-axis machining apparatus into a
translation error compensation amount and a rotation error
compensation amount both depending on the rotation axes,
[0024] wherein the translation/rotation error compensation amount
creating device enables the numerical controller to compensate the
assembly error in the table surface or the assembly error in the
spindle turning centerline in practice in a shorter time.
[0025] A translation/rotation error compensation amount creating
device according to the present invention creates, for a multi-axis
machining apparatus having at least two rotation axes, a
translation error compensation amount and a rotation error
compensation amount both depending on the rotation axes. The
translation/rotation error compensation amount creating device
includes an assembly error setting section that presets an assembly
error including at least an assembly error in a table surface or an
assembly error in a spindle turning centerline in the multi-axis
machining apparatus, a translation/rotation error compensation
amount calculating section that calculates the translation error
compensation amount and the rotation error compensation amount
based on the assembly error set by the assembly error setting
section and positions of the two rotation axes, and a
translation/rotation error compensation amount input section that
inputs the calculated translation error compensation amount and
rotation error compensation amount to a numerical controller
controlling the multi-axis machining apparatus.
[0026] The positions of the two rotation axes may be the positions
of the two rotation axes obtained from the numerical controller at
every interpolation period.
[0027] The two rotation axes are two rotation axes for table
rotation, the multi-axis machining apparatus is a table rotating
multi-axis machining apparatus, and the assembly error is the
assembly error in the table surface and an assembly error in the
two rotation axes for table rotation.
[0028] The two rotation axes are two rotation axes for tool head
rotation, the multi-axis machining apparatus is a tool head
rotating multi-axis machining apparatus, and the assembly error is
the assembly error in the spindle turning centerline and an
assembly error in the two rotation axes for tool head rotation.
[0029] The two rotation axes are one rotation axis for table
rotation and one rotation axis for tool head rotation, the
multi-axis machining apparatus is a mixed multi-axis machining
apparatus with one rotation axis for table rotation and one
rotation axis for tool head rotation, and the assembly error is the
assembly error in the table surface, an assembly error in the one
rotation axis for table rotation, an assembly error in the one
rotation axis for tool head rotation, and the assembly error in the
spindle turning centerline.
[0030] The numerical controller according to the present invention
controls a multi-axis machining apparatus having at least two
rotation axes, and has a numerical control section that analyzes a
machining program to carry out interpolation and a
translation/rotation error compensation amount creating device that
creates a translation error compensation amount and a rotation
error compensation amount both depending on the rotation axes.
Furthermore, the translation/rotation error compensation amount
creating device has an assembly error setting section that presets
an assembly error including at least an assembly error in a table
surface or an assembly error in a spindle turning centerline in the
multi-axis machining apparatus, a translation/rotation error
compensation amount calculating section that calculates the
translation error compensation amount and the rotation error
compensation amount based on the assembly error set by the assembly
error setting section and positions of the two rotation axes, and a
translation/rotation error compensation amount input section that
inputs the calculated translation error compensation amount and
rotation error compensation amount to the numerical controller.
[0031] The positions of the two rotation axes may be the positions
of the two rotation axes obtained from the numerical controller at
every interpolation period.
[0032] The present invention can provide the translation/rotation
error compensation amount creating device for the numerical
controller controlling the multi-axis machining apparatus having at
least two rotation axes by:
[0033] converting the assembly error including the assembly error
in the table surface in the table rotating multi-axis machining
apparatus having the rotary table into the translation error
compensation amount and rotation error compensation amount
depending on the rotation axes;
[0034] converting the assembly error including the assembly error
in the spindle turning centerline in the tool head rotating
multi-axis machining apparatus into the translation error
compensation amount and rotation error compensation amount
depending on the rotation axes; or
[0035] converting the assembly error including the assembly error
in the table surface and the assembly error in the spindle turning
centerline in the mixed multi-axis machining apparatus into the
translation error compensation amount and rotation error
compensation amount depending on the rotation axes, wherein the
translation/rotation error compensation amount creating device
enables the numerical controller to compensate the assembly error
in the table surface or the assembly error in the spindle turning
centerline in practice in a shorter time.
[0036] A calculation for the conversion is much more complicated
than a calculation described in Journal of Technical Disclosure No.
2009-505137 in which an assembly error not including an assembly
error in a table surface in a table rotating multi-axis machining
apparatus is converted into a translation error compensation amount
and a rotation error compensation amount both depending on the
rotation axes, as described below in an embodiment.
[0037] In accordance with notation in JP 2009-151756 A, the
translation error compensation amount depending on the rotation
axes is denoted by (.DELTA.XR, .DELTA.YR, .DELTA.ZR), and the
rotation error compensation amount depending on the rotation axes
is denoted by (.DELTA.IR, .DELTA.JR, .DELTA.KR).
[0038] The term "compensation" as used herein refers to correct a
linear-axis machine coordinate position so that a relative
positional relation between a table and a tool center point in an
original instruction is the same as the relative relation between
the actual table (with an assembly error) and the compensated tool
center point position.
[0039] The specification is intended for the conversion of an
assembly error in the table surface, that is, an assembly error
including a translation error and a rotation error in the table
surface (table centerline described below) with respect to a table
rotation axis rotation centerline, into a translation error
compensation amount and a rotation error compensation amount both
depending on the rotation axes. However, an installation error (a
translation error and a rotation error in a workpiece centerline
described below) during workpiece installation may be considered to
be an assembly error (translation error and rotation error) in the
table surface. Thus, the present invention is applicable to an
error during workpiece installation.
BRIEF DESCRIPTION OF THE DRAWINGS
[0040] The above-described and other objects and features of the
present invention will be apparent from the description below of
embodiments given with reference to the attached drawings, in
which:
[0041] FIG. 1 is a diagram illustrating a table rotating multi-axis
machining apparatus (5-axis machining apparatus) without any
assembly error;
[0042] FIG. 2 is a diagram illustrating that an assembly error
including an assembly error in a table surface is represented as an
error in a rotation axis rotation centerline (A axis rotation
centerline and C axis rotation centerline) and an error
(translation error and rotation error) in the table surface with
respect to a table rotation axis rotation centerline (C axis
rotation centerline);
[0043] FIG. 3 is a diagram showing how the displaced rotation axis
rotation centerline varies, focusing only on the rotation axis
rotation centerline;
[0044] FIG. 4 is a diagram illustrating that a workpiece is
installed on a displaced workpiece installation surface on the
displaced table in FIG. 2;
[0045] FIG. 5 is a diagram illustrating a data table for a
translation error compensation amount and a rotation error
compensation amount;
[0046] FIG. 6 is a block diagram illustrating an embodiment of a
translation/rotation error compensation amount creating device
according to the present invention which inputs a translation error
compensation amount and a rotation error compensation amount both
depending on rotation axes to a numerical controller;
[0047] FIG. 7 is a block diagram illustrating another embodiment of
the translation/rotation error compensation amount creating device
according to the present invention included in the numerical
controller;
[0048] FIG. 8 is a flowchart showing a flow of processing carried
out by a translation error compensation amount calculating section
and a translation error compensation amount input section in a
first embodiment of the translation/rotation error compensation
amount creating device according to the present invention;
[0049] FIG. 9 is a block diagram illustrating an embodiment of the
translation/rotation error compensation amount creating device
according to the present invention which obtains the positions of
two rotation axes from the numerical controller and which
calculates the translation error compensation amount and rotation
error compensation amount depending on the rotation axes and input
the calculated results to the numerical controller;
[0050] FIG. 10 is a diagram illustrating a tool head rotating
multi-axis machining apparatus (5-axis machining apparatus) without
any assembly error;
[0051] FIG. 11 is a diagram illustrating that, when A=0, a tool
direction of a tool head is a Z axis direction in the tool head
rotating multi-axis machining apparatus (5-axis machining
apparatus) shown in FIG. 10;
[0052] FIG. 12 is a diagram illustrating that an assembly error
including an assembly error in a spindle turning centerline is
represented as an error in the rotation axis rotation centerline
and an error in the spindle turning centerline (translation error
and rotation error);
[0053] FIG. 13 is a diagram showing how the displaced rotation axis
rotation centerline varies, focusing only on the rotation axis
rotation centerline;
[0054] FIG. 14 is a diagram illustrating a mixed multi-axis
machining apparatus (5-axis machining apparatus) to which the
translation/rotation error compensation amount creating device
according to the present invention is applied; and
[0055] FIG. 15 is a diagram illustrating one-dimensional data
tables for a C axis and an A axis, respectively.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
First Embodiment
<1> Target Machine and Errors
[0056] FIG. 1 shows a table rotating multi-axis machining apparatus
(5-axis machining apparatus) without any assembly error. In this
case, a table 2 rotates with respect an A axis and a C axis, and a
tool head 4 equipped with a tool 6 with a tool center point 8 moves
with respect to an X axis, a Y axis, and a Z axis. Another axial
configuration may be used if the machining apparatus includes a
table 2 that rotates with respect to two rotation axes.
[0057] When A=0, the rotary table is horizontally placed as shown
in FIG. 1. An original A axis rotation centerline Ca.sub.-T is
orthogonal to an original C axis rotation centerline Cc.sub.-T, and
the original C axis rotation centerline Cc.sub.-T coincides with an
original table centerline Ct.sub.-T. In this case, "C" means
"Correct", and "A" in A.sub.t-T described below (displaced table
centerline) and the like means "Actual". Furthermore, ".sub.-T"
means that the data forms an error in the table. A position
instruction for the A axis and the C axis, which are rotation axes,
is denoted by (a, c).
[0058] As shown in FIG. 2, an assembly error including an assembly
error in the table surface is represented as an error in a rotation
axis rotation centerline (A axis rotation centerline and C axis
rotation centerline) and an assembly error (translation error and
rotation error) in the table surface with respect to the table
centerline (C axis rotation centerline). Errors are exaggerated in
FIG. 2, though the actual errors are small.
[0059] Errors are represented as follows. The errors are
pre-measured and set by an assembly error setting section.
[0060] 1) An Error in a Displaced Table Centerline At.sub.-T with
Respect to the Original Table Centerline Ct.sub.-T
[0061] .delta.t.sub.-T (.delta.tx.sub.-T, .delta.ty.sub.-T,
.delta.tz.sub.-T).sup.T: an X component, a Y component, and a Z
component of a deviation distance from Ct.sub.-T observed when A=0
and C=0 and corresponding to Co.sub.-T that is an intersecting
point between the original A axis rotation centerline and the
original C axis rotation centerline, to At.sub.-T. This is a
translation error in the assembly error in the table surface.
".sup.T" represents transposition but will not particularly be
described when the transposition is obvious. [0062]
(.alpha.t.sub.-T, .beta.t.sub.-T, .gamma.t.sub.-T): this indicates
that, when A=0 and C=0, At.sub.-T is tilted from Ct.sub.-T with a
rotation error .alpha.t.sub.-T around an X axis, a rotation error
.beta.t.sub.-T around a Y axis, and a rotation error
.gamma.t.sub.-T around a Z axis. This is a rotation error in the
assembly error in the table surface and is expressed in radian.
Data indicative of an angle is hereinafter expressed in radian
unless otherwise specified. [0063] n.sub.T-T: a direction vector of
At.sub.-T. Thus, n.sub.T-T is normal to the actual (displaced)
table surface.
[0064] 2) An Error in the Displaced C Axis Rotation Centerline
Ac.sub.-T with Respect to the Original C Axis Rotation Centerline
Cc.sub.-T [0065] .delta.C.sub.-T (.delta.cx.sub.-T,
.delta.cy.sub.-T, .delta.cz.sub.-T): the X component, Y component,
and Z component of a deviation distance from Cc.sub.-T observed
when A=0 and corresponding to Co.sub.-T that is the intersecting
point between the original A axis rotation centerline and the
original C axis rotation centerline, to Ac.sub.-T. This is a
translation error in an assembly error in the C axis.
[0066] In this case, Ac.sub.-T may vary like a top depending on the
position of the C axis. Then, .delta.c.sub.-T is .delta.c.sub.-T(c)
(.delta.cx.sub.-T(c), .delta.cy.sub.-T(c), .delta.cz.sub.-T(c))
varying depending on c.
[0067] Moreover, Ac.sub.-T may be affected by the position of the
other axis. If Ac.sub.-T is affected by the position of the A axis,
.delta.c.sub.-T is .delta.c.sub.-T(a, c) (.delta.cx.sub.-T(a, c),
.delta.cy.sub.-T(a, c), .delta.cz.sub.-T(a, c)) varying depending
on (a, c). FIG. 3 illustrates how Ac-T and Aa-T, described next,
vary, focusing only on the rotation axis rotation centerline.
[0068] (.alpha.c.sub.-T, .beta.c.sub.-T, .gamma.c.sub.-T): this
indicates that, when A=0, Ac.sub.-T is tilted from Cc.sub.-T with a
rotation error .alpha.c.sub.-T around the X axis, a rotation error
.beta.c.sub.-T around the Y axis, and a rotation error
.gamma.c.sub.-T around the Z axis. This is a rotation error in the
assembly error in the C axis. As is the case with .delta.c.sub.-T,
if Ac.sub.-T varies depending on the position of the C axis,
(.alpha.c.sub.-T, .beta.c.sub.-T, .gamma.c.sub.-T) is
(.alpha.c.sub.-T (c), .beta.c.sub.-T(c), .gamma.c.sub.-T(c))
varying depending on c. Moreover, if Ac.sub.-T is affected by the
position of the other axis (A axis), (.alpha.c.sub.-T,
.beta.c.sub.-T, .gamma.c.sub.-T) is (.alpha.c.sub.-T(a, c),
.beta.c.sub.-T(a, c), .gamma.c.sub.-T(a, c)) varying depending on
(a, c) (see FIG. 3). [0069] n.sub.c-T: a direction vector of
Ac.sub.-T.
[0070] 3) An Error in the Displaced A Axis Rotation Centerline
Aa.sub.-T with Respect to the Original a Axis Rotation Centerline
Ca.sub.-T [0071] .delta.a.sub.-T (.delta.ax.sub.-T,
.delta.ay.sub.-T, .delta.az.sub.-T): the X component, Y component,
and Z component of a deviation distance from Ca.sub.-T
corresponding to Co.sub.-T that is the intersecting point between
the original A axis rotation centerline and the original C axis
rotation centerline, to Aa.sub.-T. This is a translation error in
an assembly error in the A axis. As is the case with
.delta.c.sub.-T, if Aa.sub.-T varies depending on the position of
the A axis, .delta.a.sub.-T is .delta.a.sub.-T(a)
(.delta.ax.sub.-T(a), .delta.ay.sub.-T(a), .delta.az.sub.-T(a))
varying depending on a (see FIG. 3). [0072] (.alpha.a.sub.-T,
.beta.a.sub.-T, .gamma.a.sub.-T): this indicates that Aa.sub.-T is
tilted from Ca.sub.-T with a rotation error .alpha.a.sub.-T around
the X axis, a rotation error .beta.a.sub.-T around the Y axis, and
a rotation error .gamma.a.sub.-T around the Z axis. This is a
rotation error in the assembly error in the A axis. As is the case
with .delta.a.sub.-T, if Aa.sub.-T varies depending on the position
of the A axis, (.alpha.a.sub.-T, .beta.a.sub.-T, .gamma.a.sub.-T)
is (.alpha.a.sub.-T(a), .beta.a.sub.-T(a), .gamma.a.sub.-T (a))
varying depending on a (see FIG. 3). [0073] n.sub.A-T: a direction
vector of Aa.sub.-T.
<2> Translation Error Compensation Amount and Rotation Error
Compensation Amount Depending on the Rotation Axes
[0074] A workpiece is placed on the table. Here, an assembly error
in the table (translation error .delta.t.sub.-T (.delta.tx.sub.-T,
.delta.ty.sub.-T, .delta.tz.sub.-T) and a rotation error
(.alpha.t.sub.-T, .beta.t.sub.-T, .gamma.t.sub.-T) are focused on.
Then, when A=0 and C=0, a translation error compensation amount
(.DELTA.XR, .DELTA.YR, .DELTA.ZR) and a rotation error compensation
amount (.DELTA.IR, .DELTA.JR, .DELTA.KR) both depending on the
rotation axes (A axis and C axis) are .delta.t.sub.-T
(.delta.tx.sub.-T, .delta.ty.sub.-T, .delta.tz.sub.-T) and
(.alpha.t.sub.-T, .beta.t.sub.-T, .gamma.t.sub.-T),
respectively.
[0075] Errors in the table are compensated so as to be traced, and
are thus equal to compensation amounts.
[0076] When A=a and C=c, the translation error .delta.t.sub.-T and
the rotation error (.alpha.t.sub.-T, .beta.t.sub.-T,
.gamma.t.sub.-T) are varied as follows by rotation of the A axis
and the C axis. When the table rotates so that A=a and C=c, the
table itself rotates around the C axis by -c and around the A axis
by -a. Thus, a translation/rotation error compensation amount
calculating section 42 (see FIG. 6) carries out a calculation for a
case where the table rotates around the actual C axis (displaced C
axis rotation centerline, Ac.sub.-T) by -c and around the actual A
axis (displaced A axis rotation centerline, Aa.sub.-T) by -a. In
the calculation, square terms for an error and an error
compensation amount are neglected. Furthermore, when a rotation
error is denoted by e, |e|<<1, and the following
approximations are carried out: sin(e)=e and cos(e)=1. This is also
applicable to embodiments to be described later.
[0077] <2-1> Translation Error Compensation Amount
[0078] A translation error .delta.t.sub.-T (.delta.tx.sub.-T,
.delta.ty.sub.-T, .delta.tz.sub.-T) in the table is rotated around
the displaced C axis rotation centerline Ac.sub.-T by -c and
further around the displaced A axis rotation centerline Aa.sub.-T
by -a.
[0079] A matrix that rotates, by -c, around a vector n.sub.c-T
indicative of the direction of Ac.sub.-T observed when A=0 is
denoted by Mc.sub.-T. A matrix that rotates, by -a, around a vector
n.sub.A-T indicative of the direction of Aa.sub.-T is denoted by
Ma.sub.-T.
[0080] The expression "A translation error .delta.t.sub.-T
(.delta.tx.sub.-T, .delta.ty.sub.-T, .delta.tz.sub.-T) in the table
is rotated around Ac.sub.-T by -c and further around Aa.sub.-T by
-a" means that .delta.t.sub.-T (.ident.tx.sub.-T, .delta.ty.sub.-T,
.delta.tz.sub.-T) is rotated around n.sub.c-T in .delta.c.sub.-T by
-c and further around n.sub.A-T in .delta.a.sub.-T by -a. Thus, the
translation error compensation amount (.DELTA.XR, .DELTA.YR,
.DELTA.ZR) corresponding to the position of the A axis (a) and the
position of the C axis (c) (that is, depending on the rotation
axes) is as expressed by:
[ .DELTA. XR .DELTA. YR .DELTA. ZR ] = Ma - T * { M c - T * (
.delta. t - T - .delta. c - T ) + .delta. c - T - .delta. a - T } +
.delta. a - T = [ ( .delta. tx - T - .delta. cx - T ) cos ( c ) + (
.delta. ty - T - .delta. cy T ) sin ( c ) + .delta. cx - T { - (
.delta. ty - T - .delta. cy - T ) sin ( c ) + ( .delta. ty - T -
.delta. cy - T ) cos ( c ) + .delta. cy - T - .delta. ay - T } cos
( a ) + ( .delta. tz - T - .delta. az - T ) sin ( a ) + .delta. ay
- T - { - ( .delta. ty - T - .delta. cy - T ) sin ( c ) + ( .delta.
ty - T - .delta. cy - T ) cos ( c ) + .delta. cy - T - .delta. ay -
T } sin ( a ) + ( .delta. tz - T - .delta. az - T ) cos ( a ) +
.delta. az - T ] . ( 1 ) ##EQU00001##
[0081] <2-2> Rotation Error Compensation Amount
[0082] A rotation error (.alpha.t.sub.-T, .beta.t.sub.-T,
.gamma.t.sub.-T) in the table rotates around the C axis rotation
centerline Ac.sub.-T by -c and further around the A axis rotation
centerline Aa.sub.-T by -a. A vector in the correct table
centerline direction observed when A=a and C=c is denoted by
nz.sub.-T. A rotation matrix M.sub.I based on the rotation error
compensation amount (.DELTA.IR, .DELTA.JR, .DELTA.KR) corresponding
to the position of the vector when A=a and C=c (that is, the
rotation error compensation amount (.DELTA.IR, .DELTA.JR,
.DELTA.KR) depending on the rotation axes), is expressed by:
M I = [ 1 - .DELTA. KR .DELTA. JR .DELTA. KR 1 - .DELTA. JR -
.DELTA. JR .DELTA. IR 1 ] . ( 2 ) ##EQU00002##
[0083] A direction obtained from compensation of the vector
nz.sub.-T using the rotation error compensation amount (.DELTA.IR,
.DELTA.JR, .DELTA.KR) corresponds to a direction resulting from
rotation of the vector n.sub.T-T around Ac.sub.-T by -c and further
around Aa.sub.-T by -a, and thus, Formula (3) holds true.
[ .beta. t - T cos ( c ) - .alpha. t - T sin ( c ) + .beta. c - T (
1 - cos ( c ) ) + .alpha. c - T sin ( c ) - .beta. a - T ( 1 - cos
( a ) ) - .gamma. a - T sin ( a ) { - .beta. t - T sin ( c ) -
.alpha. t - T cos ( c ) - .alpha. c - T ( 1 - cos ( c ) ) + .beta.
c - T sin ( c ) } cos ( a ) + sin ( a ) - { - .beta. t - T sin ( c
) - .alpha. t - T cos ( c ) - .alpha. c - T ( 1 - cos ( c ) ) +
.beta. c - T sin ( c ) } sin ( a ) + cos ( a ) ] = [ - .DELTA. KR
sin ( a ) + .DELTA. JR cos ( a ) sin ( a ) - .DELTA. IR cos ( a )
.DELTA. IR sin ( a ) + cos ( a ) ] ( 3 ) ##EQU00003##
[0084] Formula (4) is obtained from the second and third elements
of Formula (3).
.DELTA.IR=-{-.beta..sub.-T sin(c)-.alpha.t.sub.-T
cos(c)-.alpha.c.sub.-T(1-cos(c))+.beta.c.sub.-T sin(c)} (4)
[0085] .DELTA.JR and .DELTA.KR are determined from the first
element of Formula (3) but are not uniquely determined. Thus, on
the assumption that a denotes a tilting axis and is movable within
the range of about -85 degrees<a<85 degrees (cos(a) does not
assume a value close to 0), 0.0871<cos(a).ltoreq.1. Thus,
.DELTA.JR and .DELTA.KR are determined as shown in Formula (5). The
rotation error compensation amount (.DELTA.IR, .DELTA.JR,
.DELTA.KR) depending on the rotation axes is determined as
described above. Of course, another solution meets Formula (3).
.DELTA. KR = .gamma. a - T .DELTA. JR = .beta. t - T cos ( c ) -
.alpha. t - T sin ( c ) + .beta. c - T ( 1 - cos ( c ) ) + .alpha.
c - T sin ( c ) - .beta. a - T ( 1 - cos ( a ) ) cos ( a ) ( 5 )
##EQU00004##
[0086] Now, it is assumed that a workpiece is installed on the
displaced table as shown in FIG. 4. More specifically, as shown in
FIG. 4, it is assumed that a workpiece 10 is installed on a
displaced workpiece installation surface 12 on the displaced table
in FIG. 2 (the displaced workpiece 10 is placed on the displaced
workpiece installation surface 12). In this case, like "1) An error
in the displaced table centerline At.sub.-T with respect to the
original table centerline Ct.sub.-T" in "<1> Target machine
and errors", the following error is present.
[0087] 4) An Error in a Displaced Workpiece Centerline Aw.sub.-T
with Respect to the Original Workpiece Centerline Cw.sub.-T: [0088]
.delta.w.sub.-T (.delta.wx.sub.-T, .delta.wy.sub.-T,
.delta.wz.sub.-T): the X component, Y component, and Z component of
a deviation distance from Cw.sub.-T observed when A=0 and C=0 and
corresponding to Co.sub.-T that is an intersecting point between
the original A axis rotation centerline and the original C axis
rotation centerline, to Aw.sub.-T. This is a translation error in
an installation assembly error during workpiece installation.
[0089] (.alpha.w.sub.-T, .beta.w.sub.-T, .gamma.w.sub.-T): this
indicates that, when A=0 and C=0, Aw.sub.-T is tilted from
Cw.sub.-T with a rotation error .alpha.w.sub.-T around the X axis,
a rotation error .beta.w.sub.-T around the Y axis, and a rotation
error .gamma.w.sub.-T around the Z axis. This is a rotation error
in the installation error during workpiece installation. [0090]
n.sub.w-T: a direction vector of Aw.sub.-T. Thus, n.sub.w-T is
normal to the actual (displaced) workpiece installation
surface.
[0091] In this case, when the processing described in "<2-1>
Translation error compensation amount" and "<2-2> Rotation
error compensation amount" is carried out using "4) An error in a
displaced workpiece centerline Aw.sub.-T with respect to the
original workpiece centerline Cw.sub.-T" instead of "1) An error in
the displaced table centerline At.sub.-T with respect to the
original table centerline Ct.sub.-T", the installation error
(translation error and rotation error) during work installation may
also be considered to be an assembly error (translation error and
rotation error) in the table surface as described above. Obviously,
a resultant error of the assembly error (translation error and
rotation error) in the table surface and the installation error
(translation error and rotation error) during work installation may
also be considered to be an assembly error (translation error and
rotation error) in the table surface. Thus, the assembly error in
the table surface according to the present invention includes the
installation error (translation error and rotation error) during
workpiece installation.
<3> Input of the Translation Error Compensation Amount and
the Rotation Error Compensation Amount
<3-1> Input to a Translation Error Compensation Amount and
Rotation Error Compensation Amount Data Table in the Numerical
Controller
[0092] As disclosed in JP 2009-151756 A, some numerical controllers
contain a translation error compensation amount and rotation error
compensation amount data table. The translation error compensation
amount and rotation error compensation amount depending on the
rotation axes calculated according to the present invention are
input to such a numerical controller and set in the data table in
the numerical controller.
[0093] The data table is configured like a grid as shown in FIG. 5.
The translation error compensation amount (VnX, VnY, VnZ) and the
rotation error compensation amount (VnI, VnJ, VnK) corresponding to
each grid point (ai, cj) (i=1, 2, . . . , j=1, 2, . . . ) are input
to and set in the numerical controller.
[0094] In this case, (ai, cj) denotes the positions of the A axis
and the C axis pre-specified in the numerical controller and
corresponding to each grid point, and n denotes a grid point number
corresponding to a combination (i, j). Thus, the translation error
compensation amount (.DELTA.XR, .DELTA.YR, .DELTA.ZR) and rotation
error compensation amount (.DELTA.IR, .DELTA.JR, .DELTA.KR)
depending on the rotation axes (A axis and C axis) corresponding to
each grid point (ai, cj) are determined, and the resultant
translation error compensation amount (VnX, VnY, VnZ) and rotation
error compensation amount (VnI, VnJ, VnK) are input to and set in
the numerical controller. That is, with (a, c)=(ai, cj) set, the
processing described in "<2-1> Translation error compensation
amount" and "<2-2> Rotation error compensation amount" is
carried out to determine (.DELTA.XR, .DELTA.YR, .DELTA.ZR) and
(.DELTA.IR, .DELTA.JR, .DELTA.KR). Then, the resultant translation
error compensation amount (VnX, VnY, VnZ) and rotation error
compensation amount (VnI, VnJ, VnK) corresponding to (ai, cj) are
input to and set in the numerical controller in accordance
with:
VnX = .DELTA. XR , VnY = .DELTA. YR , VnZ = .DELTA. ZR VnI =
.DELTA. IR , VnJ = .DELTA. JR , VnK = .DELTA. KR . ( 6 )
##EQU00005##
[0095] In this case, a block diagram in FIG. 6 shows a first
embodiment of a translation/rotation error compensation amount
creating device according to the present invention which inputs the
translation error compensation amount (.DELTA.XR, .DELTA.YR,
.DELTA.ZR) and rotation error compensation amount (.DELTA.IR,
.DELTA.JR, .DELTA.KR) depending on the rotation axes to the
numerical controller. That is, a numerical controller 30 analyzes
an input machining program 20 by an instruction analyzing section
31 and carries out interpolation by an interpolation section 32
based on the analysis data. The interpolation section 32 further
carries out compensation based on a translation error compensation
amount and rotation error compensation amount data table 33 and the
current position to drive respective axis servos 34X, 34Y, 34Z,
34A, and 34C. Thus, the numerical controller 30 controls a
multi-axis machining apparatus having at least two rotation axes.
The instruction analyzing section 31 and interpolation section 32
of the numerical controller 30 are collectively referred to as a
numerical control section.
[0096] The compensation is performed by the interpolation section
32, but the compensation method carried out by the interpolation
section 32 is a conventional technique also described in JP
2009-151756 A and will thus not particularly be described. An
assembly error 43 including at least an assembly error in a table
surface or an assembly error in a spindle turning centerline is set
in the translation/rotation error compensation amount creating
device 40 by an assembly error setting section 44. The
translation/rotation error compensation amount calculating section
42 calculate the assembly error 43 and the translation error
compensation amount (.DELTA.XR, .DELTA.YR, .DELTA.ZR) and rotation
error compensation amount (.DELTA.IR, .DELTA.JR, .DELTA.KR)
depending on the rotation axes and corresponding to positions of
two rotation axes (ai, cj), by setting (a, c)=(ai, cj) in the
above-described processing. A translation/rotation error
compensation amount input section 41 inputs these translation error
compensation amount and the rotation error compensation amount to
the numerical controller 30.
[0097] Furthermore, the translation/rotation error compensation
amount creating device 40 may be incorporated in the numerical
controller 30 as shown in FIG. 7.
<3-2> Direct Input of the Translation Error Compensation
Amount and the Rotation Error Compensation Amount to the Numerical
Controller
[0098] JP 2009-151756 A discloses a numerical controller that
performs compensation based on the translation error compensation
amount and the rotation error compensation amount. The positions
(a, c) of the two rotation axes are obtained from the numerical
controller, and the translation error compensation amount
(.DELTA.XR, .DELTA.YR, .DELTA.ZR) and rotation error compensation
amount (.DELTA.IR, .DELTA.JR, .DELTA.KR) depending on the rotation
axes, calculated according to the present invention, are input to a
numerical controller 50, which then performs compensation.
[0099] In this case, a block diagram in FIG. 9 shows the first
embodiment of the translation/rotation error compensation amount
creating device according to the present invention which obtains
the positions (a, c) of the two rotation axes and which calculates
the translation error compensation amount (.DELTA.XR, .DELTA.YR,
.DELTA.ZR) and rotation error compensation amount (.DELTA.IR,
.DELTA.JR, .DELTA.KR) both depending on the rotation axes and
inputs the calculated result to the numerical controller. That is,
a numerical controller 50 analyzes an input machining program 20 by
an instruction analyzing section 51 and carries out interpolation
by an interpolation section 52 based on the analysis data. The
interpolation section 52 further carries out compensation based on
the translation error compensation amount, the rotation error
compensation amount, and the current position to drive the
respective axis servos 34X, 34Y, 34Z, 34A, and 34C. The
compensation method to be carried out by the interpolation section
52 is a conventional technique as described in JP 2009-151756 A
mentioned above and will thus not particularly be described.
[0100] In this case, the assembly error 43 including at least the
assembly error in the table surface or the assembly error in the
spindle turning centerline is set in the translation/rotation error
compensation amount creating device 40 by the assembly error
setting section 44. The positions (a, c) of the two rotation axes
are obtained from the numerical controller 50 at every
interpolation period. The translation/rotation error compensation
amount calculating section 42 calculates the assembly error 43 and
the translation error compensation amount (.DELTA.XR, .DELTA.YR,
.DELTA.ZR) and rotation error compensation amount (.DELTA.IR,
.DELTA.JR, .DELTA.KR) both depending on the rotation axes and
corresponding to the positions (a, c) of the two rotation axes. The
translation/rotation error compensation amount input section 41
inputs these translation error compensation amount and the rotation
error compensation amount to the numerical controller 50.
[0101] Furthermore, the translation/rotation error compensation
amount creating device 40 may be incorporated in the numerical
controller 50 as is the case with FIG. 7.
[0102] With reference to a flowchart in FIG. 8, a flow of
processing will be described which is carried out by the
translation/rotation error compensation amount calculating section
42 and translation/rotation error compensation amount input section
41 in the first embodiment of the translation/rotation error
compensation amount creating device according to the present
invention. The flow of the processing will be described in
accordance with steps of the flowchart.
[Step SA01] The translation/rotation error compensation amount
calculating section 42 sets a=ai and c=cj for the positions (ai,
cj) of the A axis and the C axis corresponding to each grid point
and pre-specified in the numerical controller 30. [Step SA02] In
accordance with Formula (1), the translation/rotation error
compensation amount calculating section 42 calculates the
translation error compensation amount (.DELTA.XR, .DELTA.YR,
.DELTA.ZR) depending on the rotation axes and corresponding to the
positions (a, c) of the A axis and the C axis. [Step SA03] In
accordance with Formulae (2) to (5), the translation/rotation error
compensation amount calculating section 42 calculates the rotation
error compensation amount (.DELTA.IR, .DELTA.JR, .DELTA.KR)
depending on the rotation axes and corresponding to the positions
(a, c) of the A axis and the C axis. [Step SA04] In accordance with
Formula (6), the translation/rotation error compensation amount
input section 41 calculates and inputs the translation error
compensation amount (VnX, VnY, VnZ) and rotation error compensation
amount (VnI, VnJ, VnK) corresponding to (ai, cj), and inputs the
calculated results to the numerical controller 30, and the process
is ended.
Second Embodiment
<1> Target Machine and Errors
[0103] FIG. 10 shows a tool head rotating multi-axis machining
apparatus (5-axis machining apparatus) without any assembly error.
In this case, a tool head moves with respect to the X axis, the Y
axis, and the Z axis, and rotates with respect the A axis and the C
axis. Another axial configuration may be used if the machining
apparatus includes a tool head that rotates with respect to two
rotation axes.
[0104] When A=0, a tool direction of the tool head is a Z axis
direction as shown in FIG. 11. An original A axis rotation
centerline Ca.sub.-H is orthogonal to an original C axis rotation
centerline Cc.sub.-H, and the original C axis rotation centerline
Cc.sub.-H coincides with an original spindle turning centerline
Cs.sub.-H. In this case, ".sub.-H" means the data that forms an
error in the tool head. A position instruction for the A axis and
the C axis is denoted by (a, c).
[0105] As shown in FIG. 12, an assembly error including an assembly
error in the spindle turning centerline is represented as an error
in the rotation axis rotation centerline (A axis rotation
centerline and C axis rotation centerline) and an error in the
spindle turning centerline (translation error and rotation error).
Errors are exaggerated in FIG. 12, though the actual errors are
small. In FIG. 12, .delta.c.sub.-H and (.alpha.c.sub.-H,
.beta.c.sub.-H, .gamma.c.sub.-H) are originally separate vectors
but are simplified and shown by one vector due to the lack of
space.
[0106] Errors are represented as follows. The errors are
pre-measured and set by an assembly error setting section.
[0107] 1) An Error in a Displaced Spindle Turning Centerline
As.sub.-H With Respect to the Original Spindle Turning Centerline
Cs.sub.-H [0108] .delta.s.sub.-H (.delta.sx.sub.-H,
.delta.sy.sub.-H, .delta.sz.sub.-H): the X component, Y component,
and Z component of a deviation distance from Cs.sub.-H observed
when A=0 and C=0 and corresponding to Co.sub.-H that is an
intersecting point between the original A axis rotation centerline
and the original C axis rotation centerline, to As.sub.-H. This is
a translation error in the assembly error in the spindle turning
centerline. [0109] (.alpha.s.sub.-H, .beta.s.sub.-H,
.gamma.s.sub.-H): this indicates that, when A=0 and C=0, As.sub.-H
is tilted from Cs.sub.-H with a rotation error .alpha.s.sub.-H
around the X axis, the rotation error .beta.s.sub.-H around the Y
axis, and a rotation error .gamma.s.sub.-H around the Z axis. This
is a rotation error in the assembly error in the spindle turning
centerline. [0110] n.sub.s-H: a direction vector of As.sub.-H.
Thus, n.sub.s-H is normal to the actual (displaced) spindle turning
centerline direction.
[0111] 2) An Error in the Displaced C Axis Rotation Centerline
Ac.sub.-H WITH Respect to the Original C Axis Rotation Centerline
Cc.sub.-H [0112] .delta.c.sub.-H (.delta.cx.sub.-H,
.delta.cy.sub.-H, .delta.cz.sub.-H): the X component, Y component,
and Z component of a deviation distance from Cc.sub.-H observed
when A=0 and corresponding to Co.sub.-H that is the intersecting
point between the original A axis rotation centerline and the
original C axis rotation centerline, to Ac.sub.-H. This is a
translation error in an assembly error in the C axis. As is the
case with the first embodiment, Ac.sub.-H may vary like a top
depending on the position of the C axis. Then, .delta.c.sub.-H is
.delta.c.sub.-H(c) (.delta.cx.sub.-H(c), .delta.cy.sub.-H(c),
.delta.cz.sub.-H (c)) varying depending on c. FIG. 13 illustrates
how Ac.sub.-H and As.sub.-H, described next, varies, focusing only
on the rotation axis rotation centerline. [0113] (.alpha.c.sub.-H,
.beta.c.sub.-H, .gamma.c.sub.-H): this indicates that, when A=0,
Ac.sub.-H is tilted from Cc.sub.-H with a rotation error
.alpha.c.sub.-H around the X axis, a rotation error .beta.c.sub.-H
around the Y axis, and a rotation error .gamma.c.sub.-H around the
Z axis. This is a rotation error in the assembly error in the C
axis. As is the case with .delta.c.sub.-H, if Ac.sub.-H varies
depending on the position of the C axis, (.alpha.c.sub.-H,
.beta.c.sub.-H, .gamma.c.sub.-H) is (.alpha.c.sub.-H(c),
.beta.c.sub.-H(c), .gamma.c.sub.-H(c)) varying depending on c (see
FIG. 13). [0114] n.sub.c-H: a direction vector of Ac.sub.-H.
[0115] 3) An Error in the Displaced A Axis Rotation Centerline
Aa.sub.-H with Respect to the Original A Axis Rotation Centerline
Ca.sub.-H [0116] .delta.a.sub.-H (.delta.ax.sub.-H,
.delta.ay.sub.-H, .delta.az.sub.-H): the X component, Y component,
and Z component of a deviation distance from Ca.sub.-H
corresponding to Co.sub.-H that is the intersecting point between
the original A axis rotation centerline and the original C axis
rotation centerline, to Aa.sub.-H. This is a translation error in
an assembly error in the A axis. As is the case with
.delta.c.sub.-H, if Aa.sub.-H varies depending on the position of
the A axis, .delta.a.sub.-H is .delta.a.sub.-H(a)
(.delta.ax.sub.-H(a), .delta.ay.sub.-H(a), .delta.az.sub.-H(a))
varying depending on a. Moreover, Aa.sub.-H may be affected by the
position of the other axis. If As.sub.-H is affected by the
position of the C axis, .delta.a.sub.-H is .delta.a.sub.-H (a, c)
(.delta.ax.sub.-H (a, c), .delta.ay.sub.-H (a, c), .delta.az.sub.-H
(a, c)) varying depending on (a, c) (see FIG. 13). [0117]
(.alpha.a.sub.-H, .beta..sub.-H, .gamma.a.sub.-H): this indicates
that Aa.sub.-H is tilted from Ca.sub.-H with a rotation error
.alpha.a.sub.-H around the X axis, a rotation error .beta.a.sub.-H
around the Y axis, and a rotation error .gamma.a.sub.-H around the
Z axis. This is a rotation error in the assembly error in the A
axis. As is the case with .delta.a.sub.-H, if Aa.sub.-H varies
depending on the position of the A axis, (.alpha.a.sub.-H,
.beta.a.sub.-H, .gamma.a.sub.-H) is (.alpha.a.sub.-H(a),
.beta.a.sub.-H(a), .gamma.a.sub.-H(a)) varying depending on a. If
Aa.sub.-H is affected by the other axis (C axis) position,
(.alpha.a.sub.-H, .beta.a.sub.-H, .gamma.a.sub.-H) is
(.alpha.a.sub.-H(a, c), .beta.a.sub.-H(a, c), .gamma.a.sub.-H(a,
c)) varying depending on (a, c) (see FIG. 13). [0118] n.sub.A-H: a
direction vector of Aa.sub.-H.
<2> Translation Error Compensation Amount and Rotation Error
Compensation Amount Depending on the Rotation Axes
[0119] An assembly error in the spindle turning centerline
(translation error .delta.s.sub.-H (.delta.sx.sub.-H,
.delta.sy.sub.-H, .delta.sz.sub.-H) and a rotation error
(.alpha.s.sub.-H, .beta.s.sub.-H, .gamma.s.sub.-H) are focused on.
Then, when A=0 and C=0, a translation error compensation amount
(.DELTA.XR, .DELTA.YR, .DELTA.ZR) and a rotation error compensation
amount (.DELTA.IR, .DELTA.JR, .DELTA.KR) both depending on the
rotation axes (A axis and C axis) are -.delta.s.sub.-H
(-.delta.sx.sub.-H, -.delta.sy.sub.-H, -.delta.sz.sub.-H) and
(-.alpha.s.sub.-H, -.beta.s.sub.-H, -.gamma.s.sub.-H),
respectively.
[0120] Errors in the tool head are compensated so as to be
retracted, and thus, the compensation amount is equal to the error
in the tool head the sign of which is inverted. When A=a and C=c,
.delta.s.sub.-H and (.alpha.s.sub.-H, .delta.s.sub.-H,
.gamma.s.sub.-H) are varied as follows by rotation of the A axis
and the C axis.
[0121] When the tool head rotates so that A=a and C=c, a
translation/rotation error compensation amount calculating section
42 (see FIG. 9) carries out a calculation for a case where the tool
head rotates around the actual A axis (displaced A axis, Aa.sub.-H)
by a and around the actual C axis (displaced C axis, Ac.sub.-H) by
c.
[0122] <2-1> Translation Error Compensation Amount
[0123] A translation error .delta.s.sub.-H (.delta.sx.sub.-H,
.delta.sy.sub.-H, .delta.sz.sub.-H) in the spindle turning
centerline is rotated around the displaced A axis rotation
centerline Aa.sub.-H by a and further around the displaced C axis
rotation centerline Ac.sub.-H by c.
[0124] A matrix that rotates, by a, around a vector n.sub.A-H
indicative of the direction of Aa.sub.-H is denoted by
Ma.sub.-H.
[0125] A matrix that rotates, by c, around a vector n.sub.c-H
indicative of the direction of Ac.sub.-H when A=0 is denoted by
Mc.sub.-H. The expression "A translation error .delta.s.sub.-H
(.delta.sx.sub.-H, .delta.sy.sub.-H, .delta.sz.sub.-H) in the
spindle turning centerline is rotated around the displaced A axis
rotation centerline Aa.sub.-H by a and further around the displaced
C axis rotation centerline Ac.sub.-H by c" means that
.delta.s.sub.-H (.delta.sx.sub.-H, .delta.sy.sub.-H,
.delta.sz.sub.-H) is rotated around n.sub.A-H in .delta.a.sub.-H by
a and further around n.sub.c-H in .delta.c.sub.-H by c. Moreover,
the translation error compensation amount is a sign inverted value
of the translation error. Thus, the translation error compensation
amount (.DELTA.XR, .DELTA.YR, .DELTA.ZR) corresponding to the
position of the A axis (a) and the position of the C axis (c) (that
is, depending on the rotation axes) are as expressed by:
[ .DELTA. XR .DELTA. YR .DELTA. ZR ] = - M c - H * { Ma - H * (
.delta. s - H - .delta. a - H ) + .delta. a - H - .delta. c - H } -
.delta. c - H = [ - ( .delta. sx - H - .delta. cx - H ) cos ( c ) +
{ ( .delta. sy - H - .delta. ay - H ) cos ( a ) - ( .delta. sz - H
- .delta. az - H ) sin ( a ) + ( .delta. ay - H - .delta. cy - H )
} sin ( c ) - .delta. cx - H - ( .delta. sx - H - .delta. cx - H )
sin ( c ) + { - ( .delta. sy - H - .delta. ay - H ) cos ( a ) + (
.delta. sz - H - .delta. az - H ) sin ( a ) - ( .delta. ay - H -
.delta. cy - H ) } cos ( c ) - .delta. cy - H - ( .delta. sy - H -
.delta. ay - H ) sin ( a ) - ( .delta. sz - H - .delta. az - H )
cos ( a ) - .delta. az - H ] . ( 7 ) ##EQU00006##
[0126] <2-2> Rotation Error Compensation Amount
[0127] (.alpha.s.sub.-H, .beta.s.sub.-H, .gamma.s.sub.-H) rotates
around the displaced A axis rotation centerline Aa.sub.-H by a and
further around the displaced C axis rotation centerline Ac.sub.-H
by c. A vector obtained in the correct spindle turning centerline
direction when A=a and C=c is denoted by nz.sub.-H. When A=a and
C=c, a rotation matrix M.sub.I based on the rotation error
compensation amount (.DELTA.IR, .DELTA.JR, .DELTA.KR) corresponding
to the position of the vector (that is, depending on the rotation
axes) is, as with the case with the first embodiment, expressed
by:
M I = [ 1 - .DELTA. KR .DELTA. JR .DELTA. KR 1 - .DELTA. IR -
.DELTA. JR .DELTA. IR 1 ] . ( 8 ) ##EQU00007##
[0128] The vector nz.sub.-H corresponds to a direction obtained by
compensation, using the rotation error compensation amount
(.DELTA.IR, .DELTA.JR, .DELTA.KR), of a direction resulting from
rotation of the direction vector n.sub.s-H around the A axis
rotation centerline Aa.sub.-H by a and further around the C axis
rotation centerline Ac.sub.-H by c. Thus, Formula (9) holds
true.
[ { .beta. s - H - .beta. a - H ( 1 - cos ( a ) ) + .gamma. a - H
sin ( a ) } cos ( c ) + { .alpha. s - H cos ( a ) + sin ( a ) } sin
( c ) + { .beta. c - H ( 1 - cos ( c ) ) - .alpha. c - H sin ( c )
} cos ( a ) { .beta. s - H - .beta. a - H ( 1 - cos ( a ) ) +
.gamma. a - H sin ( a ) } sin ( c ) - { .alpha. s - H cos ( a ) +
sin ( a ) } cos ( c ) + { - .alpha. c - H ( 1 - cos ( c ) ) -
.beta. c - H sin ( c ) } cos ( a ) - { - .alpha. c - H ( 1 - cos (
c ) ) + .beta. c - H sin ( c ) } sin ( a ) - .alpha. s - H sin ( a
) + cos ( a ) ] = [ sin ( c ) sin ( a ) - .DELTA. KR cos ( c ) sin
( a ) - .DELTA. JR cos ( a ) - .DELTA. KR sin ( c ) sin ( a ) - cos
( c ) sin ( a ) + .DELTA. IR cos ( a ) .DELTA. JR sin ( c ) sin ( a
) + .DELTA. IR cos ( c ) sin ( a ) + cos ( a ) ] ( 9 )
##EQU00008##
[0129] Given -85 degrees<a<85 degrees as is the case with the
first embodiment, Formula (10) is obtained from Formula (9). The
rotation error compensation amount (.DELTA.IR, .DELTA.JR,
.DELTA.KR) depending on the rotation axes is determined as
described above. Of course, another solution meets Formula (9).
.DELTA. IR = .beta. a - H sin ( c ) - .alpha. s - H cos ( c ) -
.alpha. c - H ( 1 - cos ( c ) ) - .beta. c - H sin ( c ) + ( .beta.
s - H - .beta. a - H ) sin ( c ) cos ( a ) .DELTA. JR = - .beta. a
- H cos ( c ) - .alpha. s - H sin ( c ) + .alpha. c - H sin ( c ) -
.beta. c - H ( 1 - cos ( c ) ) - ( .beta. s - H - .beta. a - H )
cos ( c ) cos ( a ) .DELTA. KR = - .gamma. a - H ( 10 )
##EQU00009##
<3> Input of the Translation Error Compensation Amount and
the Rotation Error Compensation Amount
[0130] This aspect is the same as the corresponding aspect of the
first embodiment and will not be described below.
Third Embodiment
<1> Target Machine and Errors
[0131] FIG. 14 shows a mixed multi-axis machining apparatus (5-axis
machining apparatus) to which the translation/rotation error
compensation amount creating device according to the present
invention is applied. In this case, a tool head moves with respect
to the X axis, the Y axis, and the Z axis, and rotates with respect
the A axis, and a table rotates with respect to the C axis. Another
axial configuration may be used if the machining apparatus includes
a tool head that rotates with respect to one of the rotation axes
and a table that rotates with respect to the other rotation
axis.
[0132] The present embodiment is the same as the second embodiment
except that the tool head rotates with respect to one rotation axis
instead of two rotation axes, and also the same as the first
embodiment except that the table rotates with respect to one axis
rather than two axes. Thus, the description of the third embodiment
is simplified.
[0133] In FIG. 14, for example, .delta.a.sub.-H and
(.alpha.a.sub.-H, .beta.a.sub.-H, .gamma.a.sub.-H), like
.delta.c.sub.-H and (.alpha.c.sub.-H, .beta.c.sub.-H,
.gamma.c.sub.-H) in FIG. 12, are originally separate vectors but
are simplified and shown by one vector due to the lack of
space.
<2> Translation Error Compensation Amount and Rotation Error
Compensation Amount Depending on the Rotation Axes
[0134] The calculation for only the C axis according to the first
embodiment is carried out. That is, with a=0, .alpha.a.sub.-T=0,
.beta.a.sub.-T=0, .gamma.a.sub.-T=0, .delta.ax.sub.-T=0,
.delta.ay.sub.-T=0, and .delta.az.sub.-T=0 set, a translation error
compensation amount (.DELTA.XC, .DELTA.YC, .DELTA.ZC) and a
rotation error compensation amount (.DELTA.IC, .DELTA.JC,
.DELTA.KC) both depending on the rotation axis (C axis) according
to the first embodiment are determined.
[0135] The calculation for only the A axis according to the second
embodiment is carried out. That is, with c=0, .alpha.c.sub.-H=0,
.beta.c.sub.-H=0, .gamma.c.sub.-H=0, .delta.cx.sub.-H=0,
.delta.cy.sub.-H=0, and .delta.cz.sub.-H=0 set, a translation error
compensation amount (.DELTA.XA, .DELTA.YA, .DELTA.ZA) and a
rotation error compensation amount (.DELTA.IA, .DELTA.JA,
.DELTA.KA) both depending on the rotation axis (A axis) according
to the second embodiment are determined.
<3> Input of the Translation Error Compensation Amount and
the Rotation Error Compensation Amount
<3-1> Input to a Translation Error Compensation Amount and
Rotation Error Compensation Amount Data Table in the Numerical
Controller
[0136] According to the conventional art, such a one-dimensional
data table as shown in FIG. 15 is provided for each of the C axis
and the A axis. A translation error compensation amount (ViX, ViY,
ViZ) and a rotation error compensation amount (ViI, ViJ, ViK) both
corresponding to each grid point (ai) (i=1, 2, . . . ) are input to
and set in the data tables.
[0137] Thus, the translation error compensation amount (.DELTA.XA,
.DELTA.YA, .DELTA.ZA) and rotation error compensation amount
(.DELTA.IA, .DELTA.JA, .DELTA.KA) both depending on the A axis and
corresponding to each grid point (ai) are determined, and are input
to and set in the numerical controller as the translation error
compensation amount (ViX, ViY, ViZ) and the rotation error
compensation amount (ViI, ViJ, ViK). That is, the
translation/rotation error compensation amount creating device sets
a equal to ai (a=ai) and determines the translation error
compensation amount (.DELTA.XA, .DELTA.YA, .DELTA.ZA) and rotation
error compensation amount (.DELTA.IA, .DELTA.JA, .DELTA.KA) both
depending on the rotation axis (A axis). The translation/rotation
error compensation amount creating device then inputs and sets the
determined (.DELTA.XA, .DELTA.YA, .DELTA.ZA) and (.DELTA.IA,
.DELTA.JA, .DELTA.KA) as translation error compensation amount
(ViX, ViY, ViZ) and rotation error compensation amount (ViI, ViJ,
ViK) corresponding to (ai) in the numerical controller in
accordance with:
ViX = .DELTA. XA , ViY = .DELTA. YA , ViZ = .DELTA. ZA ViI =
.DELTA. IA , ViJ = .DELTA. JA , ViK = .DELTA. KA . ( 11 )
##EQU00010##
[0138] The translation/rotation error compensation amount creating
device is also configured to input and set a translation error
compensation amount (VjX, VjY, VjZ) and a rotation error
compensation amount (VjI, VjJ, VjK) both corresponding to each grid
point (cj) (j=1, 2, . . . ) in the numerical controller. Thus, the
translation/rotation error compensation amount creating device
similarly determines the translation error compensation amount
(.DELTA.XC, .DELTA.YC, .DELTA.ZC) and rotation error compensation
amount (.DELTA.IC, .DELTA.JC, .DELTA.KC) depending on the rotation
axis (C axis) and corresponding to each grid point (cj). The
translation/rotation error compensation amount creating device then
inputs and sets the determined (.DELTA.XC, .DELTA.YC, .DELTA.ZC)
and (.DELTA.IC, .DELTA.JC, .DELTA.KC) as translation error
compensation amount (VjX, VjY, VjZ) and rotation error compensation
amount (VjI, VjJ, VjK) in the numerical controller.
[0139] In this case, a block diagram in FIG. 6 or FIG. 7 shows a
third embodiment of the translation/rotation error compensation
amount creating device according to the present invention which
inputs the translation error compensation amount and rotation error
compensation amount depending on the rotation axis to the numerical
controller.
<3-2> Direct Input of the Translation Error Compensation
Amount and the Rotation Error Compensation Amount to the Numerical
Controller
[0140] Some numerical controllers perform compensation based on the
translation error compensation amount and the rotation error
compensation amount as disclosed in JP 2009-151756 A. The
translation/rotation error compensation amount creating device 40
obtains the positions (a, c) of the two rotation axes from such a
numerical controller 50 as described above. The
translation/rotation error compensation amount creating device 40
then inputs the translation error compensation amounts (.DELTA.XA,
.DELTA.YA, .DELTA.ZA) and (.DELTA.XC, .DELTA.YC, .DELTA.ZC) and
rotation error compensation amounts (.DELTA.IA, .DELTA.JA,
.DELTA.KA) and (.DELTA.IC, .DELTA.JC, .DELTA.KC) determined as
described above and depending on the rotation axes to the numerical
controller 50. The numerical controller 50 perform compensation
based on the input values. In this case, the block diagram in FIG.
9 shows the third embodiment of the translation/rotation error
compensation amount creating device according to the present
invention which obtains the positions (a, c) of the two rotation
axes from the numerical controller and which calculates and inputs
the translation error compensation amount and rotation error
compensation amount depending on the rotation axes to the numerical
controller. Furthermore, the translation/rotation error
compensation amount creating device 40 may be incorporated in the
numerical controller 50 as is the case with the first
embodiment.
* * * * *