U.S. patent application number 10/935303 was filed with the patent office on 2005-03-24 for method and apparatus for compensating attitude of inertial navigation system and method and apparatus for calculating position of inertial navigation system using the same.
This patent application is currently assigned to SAMSUNG ELECTRONICS CO., LTD.. Invention is credited to Bang, Won-chul, Chang, Wook, Cho, Sung-jung, Choi, Eun-seok, Kang, Kyoung-ho, Kim, Dong-yoon, Yang, Jing.
Application Number | 20050065728 10/935303 |
Document ID | / |
Family ID | 34309405 |
Filed Date | 2005-03-24 |
United States Patent
Application |
20050065728 |
Kind Code |
A1 |
Yang, Jing ; et al. |
March 24, 2005 |
Method and apparatus for compensating attitude of inertial
navigation system and method and apparatus for calculating position
of inertial navigation system using the same
Abstract
Provided are a method and apparatus for compensating an attitude
of an inertial navigation system and a method and apparatus for
calculating a position of the inertial navigation system using the
same. The method of compensating an attitude of the inertial
navigation system includes sensing movement of the system and
outputting information for stoppage time periods and a movement
time period of the system; receiving angular velocity information
of the system during every time period and calculating a first
attitude of the system using the angular velocity information;
receiving gravity direction information of the system during the
stoppage time periods, calculating a second attitude of the system
using the gravity direction information, and calculating an
attitude error of the system during every time period using the
first attitude and the second attitude; and compensating the
attitude error for the first attitude.
Inventors: |
Yang, Jing; (Yongin-si,
KR) ; Kim, Dong-yoon; (Seoul, KR) ; Bang,
Won-chul; (Seongnam-si, KR) ; Chang, Wook;
(Seoul, KR) ; Kang, Kyoung-ho; (Yongin-si, KR)
; Choi, Eun-seok; (Anyang-si, KR) ; Cho,
Sung-jung; (Suwon-si, KR) |
Correspondence
Address: |
SUGHRUE MION, PLLC
2100 PENNSYLVANIA AVENUE, N.W.
SUITE 800
WASHINGTON
DC
20037
US
|
Assignee: |
SAMSUNG ELECTRONICS CO.,
LTD.
|
Family ID: |
34309405 |
Appl. No.: |
10/935303 |
Filed: |
September 8, 2004 |
Current U.S.
Class: |
701/500 |
Current CPC
Class: |
G01C 21/16 20130101 |
Class at
Publication: |
701/220 ;
701/221 |
International
Class: |
G01C 021/26 |
Foreign Application Data
Date |
Code |
Application Number |
Sep 8, 2003 |
KR |
2003-62779 |
Claims
What is claimed is:
1. A method of compensating an attitude of an inertial navigation
system, comprising: sensing movement of the system and outputting
information for both stoppage time periods and a movement time
period of the system; receiving angular velocity information of the
system during every time period and calculating a first attitude of
the system using the angular velocity information; receiving
gravity direction information of the system during the stoppage
time periods, calculating a second attitude of the system using the
gravity direction information, and calculating an attitude error of
the system during every time period using the first attitude and
the second attitude; and compensating the attitude error for the
first attitude.
2. The method of claim 1, wherein the stoppage time periods include
a first stoppage time period before the system begins movement and
a second stoppage time period after movement of the system
stops.
3. The method of claim 2, wherein, during the first or second
stoppage time period, a standard deviation of the gravity direction
information or of the angular velocity information is less than or
equal to a predetermined value.
4. The method of claim 2, wherein the attitude error of the system
for the first stoppage time period is output such that a difference
between the first attitude and the second attitude varies linearly
with respect to time and a difference between the first attitude
and the second attitude at a start time of the first stoppage time
period is 0.
5. The method of claim 4, wherein the attitude error for the
movement time period is output such that a difference between the
first attitude and the second attitude calculated at a start time
and an end time of the movement time period varies linearly with
respect to time and a difference between the first attitude and the
second attitude at a start time of the movement time period is a
difference between the first attitude and the second attitude
calculated at an end time of the first stoppage time period.
6. The method of claim 5, wherein the attitude error during the
second stoppage time period is output so that linear variation of
the attitude error of the system during the movement time period
extends to an end time of the second stoppage time period.
7. The method of claim 1, wherein the second attitude is given by:
9 acc = tan - 1 ( - f y b - f z b ) acc = sin - 1 ( f x b g ) = tan
- 1 ( f x b ( f z b ) 2 + ( f z b ) 2 ) , acc = 0 where
.phi..sub.acc is a roll angle, .theta..sub.acc is a pitch angle,
.psi..sub.acc is a yaw angle, g is gravitational acceleration, and
f.sub.x.sup.b, f.sub.y.sup.b, f.sub.z.sup.b are the gravity
direction information in a body frame.
8. An apparatus that compensates an attitude of an inertial
navigation system, comprising: a movement sensor which senses
movement of the system and outputs information for stoppage time
periods and a movement time period of the system; an attitude
calculating unit which receives angular velocity information of the
system during every time period and calculates a first attitude of
the system using the angular velocity information; an attitude
error calculating unit which receives gravity direction information
of the system during the stoppage time periods, calculates a second
attitude of the system from the gravity direction information, and
calculates an attitude error of the system for each time period
using the first attitude and the second attitude; and an attitude
compensating unit which compensates and outputs the attitude error
for the first attitude.
9. The apparatus of claim 8, wherein the movement sensor divides
the stoppage time period into a first stoppage time period before
the system begins movement and a second stoppage time period after
movement of the system stops.
10. The apparatus of claim 9, wherein the attitude error
calculating unit approximates the attitude error so that a
difference between the first attitude and the second attitude
calculated at a start time and an end time of each time period
varies linearly with respect to time, and calculates the attitude
error of the system.
11. The apparatus of claim 8, wherein the attitude error
calculating unit obtains the second attitude using: 10 acc = tan -
1 ( - f y b - f z b ) acc = sin - 1 ( f x b g ) = tan - 1 ( f x b (
f z b ) 2 + ( f z b ) 2 ) , acc = 0 where .phi..sub.acc is a roll
angle, .theta..sub.acc is a pitch angle, .psi..sub.acc is a yaw
angle, g is gravitational acceleration, and f.sub.x.sup.b,
f.sub.y.sup.b, f.sub.z.sup.b are the gravity direction information
in a body frame.
12. A method of calculating a position of an inertial navigation
system, comprising: sensing movement of the system and outputting
information for stoppage time periods and a movement time period of
the system; receiving angular velocity information of the system,
calculating an attitude of the system using the angular velocity
information, receiving acceleration information of the system, and
compensating the attitude of the system using the acceleration
information; transforming the acceleration information into
acceleration information in a space including the system using the
compensated attitude; and calculating a position of the system in
the space using the transformed acceleration information.
13. The method of claim 12, wherein the stoppage time periods
include a first stoppage time period before the system begins
movement and a second stoppage time period after movement of the
system stops.
14. The method of claim 13, wherein during the first or second
stoppage time period, standard deviation of the acceleration
information or angular velocity information is less than or equal
to a predetermined value.
15. The method of claim 14, wherein the calculating the attitude of
the system and the compensating the attitude of the system
comprises: calculating a first attitude of the system using the
angular velocity information for each of the time periods;
calculating a second attitude of the system using the acceleration
information for each of the time periods and calculating the
attitude error of the system for each of the time periods using the
first attitude and the second attitude; and compensating and
outputting the attitude error for the first attitude.
16. The method of claim 14, further comprising, between the
transforming the acceleration information and the calculating the
position of the system, obtaining an acceleration error value using
the transformed acceleration information from the movement time
period on a basis of a condition that the velocity is 0 at each
time when the movement of the system starts and stops, and
subtracting the calculated acceleration error value from the
transformed acceleration information, thereby compensating for the
transformed acceleration information.
17. The method of claim 14, further comprising, between the
transforming the acceleration information and the calculating the
position of the system, obtaining an acceleration error by linearly
approximating the transformed acceleration information for each
time period and compensating the acceleration error for the
transformed acceleration information.
18. The method of claim 17, wherein the obtaining the acceleration
comprises: approximating the acceleration error such that the
transformed acceleration information varies linearly with respect
to time for the first and second stoppage time periods and setting
the linearly-approximated acceleration information to 0; linearly
approximating the transformed acceleration information of the
movement time period using linearly approximated gradients for the
first and second stoppage time periods and a predetermined initial
condition; and compensating the linearly-approximated acceleration
information for the transformed acceleration information during the
movement time period.
19. An apparatus that calculates a position of an inertial
navigation system, comprising: a movement sensor which senses
movement of the system and outputs information for stoppage time
periods and a movement time period of the system; an attitude
compensating unit which receives angular velocity information of
the system, calculates an attitude of the system using the angular
velocity information, receives acceleration information of the
system, and compensates the attitude of the system using the
acceleration information; an acceleration transforming unit which
transforms the acceleration information into acceleration
information in a space including the system using the compensated
attitude; and a position calculating unit which calculates a
position of the system in the space using the transformed
acceleration information.
20. The apparatus of claim 19, wherein the movement sensor divides
the stoppage time periods into a first stoppage time period before
the system begins movement and a second stoppage time period after
movement of the system stops.
21. The apparatus of claim 20, wherein the movement sensor
determines the first or second stoppage time period to be when
standard deviation of the acceleration information or angular
velocity information is less than or equal to a predetermined
value.
22. The apparatus of claim 19, further comprising an acceleration
compensating unit, between the acceleration transforming unit and
the position calculating unit, which obtains an acceleration error
value using the transformed acceleration information for the
movement time period on a basis of a condition that the velocity is
0 when the movement of the system starts and stops, and subtracts
the calculated acceleration error value from the transformed
acceleration information, thereby compensating for the transformed
acceleration information.
23. The apparatus of claim 19, further comprising an acceleration
compensating unit, between the acceleration transforming unit and
the position calculating unit, which linearly approximates the
acceleration information transformed by the acceleration
transforming unit during each time period and compensates for the
transformed acceleration information using the
linearly-approximated acceleration information.
24. The apparatus of claim 23, wherein the acceleration
compensating unit approximates the acceleration error such that the
transformed acceleration information varies linearly with respect
to time for the first and second stoppage time periods, linearly
approximates the transformed acceleration information for the
movement time period using gradients of the linearly-approximated
acceleration information, sets the linearly-approximated
acceleration information of the first and second stoppage time
periods to 0, and compensates the linearly-approximated
acceleration information for the transformed acceleration
information for the movement time period.
25. The apparatus of claim 19, wherein the position calculating
unit calculates a first attitude and a second attitude of the
system using the angular velocity information and the acceleration
information for each of the time periods, calculates the attitude
error of the system for each of the time periods using the first
attitude and second attitude, and compensates the attitude error
for the first attitude.
Description
[0001] This application claims the priority of Korean Patent
Application No. 2003-62779, filed on Sep. 8, 2003, in the Korean
Intellectual Property Office, the disclosure of which is
incorporated herein in its entirety by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates to a method and apparatus for
compensating an attitude of an inertial navigation system and a
method and apparatus for calculating a position of the inertial
navigation system using the same.
[0004] 2. Description of the Related Art
[0005] In order to measure a position and an attitude of an object
that moves in a three dimensional space using an inertial sensor,
an inertial measurement unit comprising a triaxial acceleration
sensor and a triaxial angular velocity sensor should be used. The
attitude of the inertial navigation system can be obtained by
solving a differential equation for the angular velocity measured
by a gyroscope used as the triaxial angular velocity sensor. The
position of the inertial navigation system can be obtained by
removing a gravity component according to the attitude of the
inertial navigation system and from the acceleration measured by an
acceleration sensor and by a double integral of the acceleration
from which the gravity component is removed. In this case, due to
the gyroscope's drift and other noise, the attitude error of the
inertial navigation system increases over time for the angular
velocity error, and the error of the acceleration from which the
gravity component is removed also increases over time for the
angular velocity error. Thus, the position error of the inertial
navigation system increases over a square of time for the
acceleration error, and the attitude error of the inertial
navigation system increases over a cube of time for the angular
velocity error. Due to an error that rapidly increases in time, it
is very difficult to calculate the position of the inertial
navigation system using an inertial sensor for a long period of
time. Thus, it is required to compensate the attitude of a moving
object calculated from acceleration and angular velocity measured
by inertial sensors and to calculate the position of the
object.
SUMMARY OF THE INVENTION
[0006] The present invention provides a method and apparatus for
compensating an attitude of an inertial navigation system and a
method and apparatus for calculating a position of the inertial
navigation system using the same, in which acceleration and angular
velocity measured by an inertial measurement unit are compensated
and the position of the inertial navigation system is determined
using the compensated values.
[0007] According to a first exemplary embodiment of the present
invention, there is provided a method of compensating an attitude
of an inertial navigation system. The method comprises sensing
movement of the system and outputting information for both stoppage
time periods and a movement time period of the system; receiving
angular velocity information of the system during every time period
and calculating a first attitude of the system using the angular
velocity information; receiving gravity direction information of
the system during the stoppage time periods, calculating a second
attitude of the system using the gravity direction information, and
calculating an attitude error of the system during every time
period using the first attitude and the second attitude; and
compensating the attitude error for the first attitude.
[0008] According to a second exemplary embodiment of the present
invention, there is provided an apparatus that compensates an
attitude of an inertial navigation system. The apparatus comprises
a movement sensor, which senses movement of the system and outputs
information for stoppage time periods and a movement time period of
the system; an attitude calculating unit, which receives angular
velocity information of the system during every time period and
calculates a first attitude of the system using the angular
velocity information; an attitude error calculating unit, which
receives gravity direction information of the system during the
stoppage time periods, calculates a second attitude of the system
from the gravity direction information, and calculates an attitude
error of the system for each time period using the first attitude
and the second attitude; and an attitude compensating unit, which
compensates and outputting the attitude error for the first
attitude.
[0009] According to a third exemplary embodiment of the present
invention, there is provided a method of calculating a position of
an inertial navigation system. The method comprises sensing
movement of the system and outputting information for stoppage time
periods and a movement time period of the system; receiving angular
velocity information of the system, calculating an attitude of the
system using the angular velocity information, receiving
acceleration information of the system, and compensating the
attitude of the system using the acceleration information;
transforming the acceleration information into acceleration
information in a space including the system using the compensated
attitude; and calculating a position of the system in the space
using the transformed acceleration information.
[0010] According to a fourth exemplary embodiment of the present
invention, there is provided an apparatus that calculates a
position of an inertial navigation system, the apparatus comprising
a movement sensor sensing movement of the system and outputs
information for stoppage time periods and a movement time period of
the system; an attitude compensating unit receiving angular
velocity information of the system, calculating an attitude of the
system using the angular velocity information, receiving
acceleration information of the system, and compensating the
attitude of the system using the acceleration information; an
acceleration transforming unit transforming the acceleration
information into acceleration information in a space including the
system using the compensated attitude; and a position calculating
unit calculating a position of the system in the space using the
transformed acceleration information.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The above aspects and advantages of the present invention
will become more apparent by describing in detail exemplary
embodiments thereof with reference to the attached drawings in
which:
[0012] FIG. 1 is a block diagram of a pen-shaped 3D input device
using an inertial navigation system;
[0013] FIG. 2 is a block diagram of an apparatus that compensates
the attitude of an inertial navigation system according to an
embodiment of the present invention;
[0014] FIGS. 3A through 3E illustrate a process of compensating for
the attitude of the inertial navigation system obtained from
angular velocity information;
[0015] FIG. 4 is a flowchart illustrating the method of
compensating the attitude of the inertial navigation system;
[0016] FIG. 5 is a block diagram of an apparatus that calculates
the position of an inertial navigation system using the apparatus
that compensates the attitude of the inertial navigation system
according to an embodiment of the present invention;
[0017] FIGS. 6A through 6C illustrate a process of linearizing
acceleration;
[0018] FIG. 7 is a table showing errors of trajectories of
characters in a prior art in which compensation is not performed
and errors of trajectories of the same characters according to the
present invention in which compensation is performed; and
[0019] FIGS. 8A through 8C show trajectory tracing results in a
prior art in which only zero velocity compensation is performed as
acceleration compensation and according to the present invention in
which both acceleration and angular velocity compensation are
performed when tablets are used as reference trajectories.
DETAILED DESCRIPTION OF THE INVENTION
[0020] Hereinafter, exemplary embodiments of the present invention
will be described in detail with reference to the accompanying
drawings.
[0021] FIG. 1 is a block diagram of a pen-shaped 3D input device
using an inertial navigation system. The 3D input device (pen) 1
shown in FIG. 1 comprises a gravity direction sensor 10, an angular
velocity sensor 11, a circuit unit 12, a processor 13, and a
wireless communication unit 14. The gravity direction sensor 10 may
be a tilt sensor which senses a direction of gravity of the pen 1
and outputs gravity direction information indicating a tilting
angle with respect to a triaxial direction. The gravity direction
sensor 10 may also be an acceleration sensor. Although the gravity
direction sensor 10 will be limited to the acceleration sensor,
hereinafter, the gravity direction sensor 10 means basically a
device which outputs the gravity direction information.
[0022] The acceleration sensor 10 senses and outputs triaxial
acceleration of movement of the pen 1, and the angular velocity
sensor 11 senses and outputs triaxial angular velocity of the pen
1.
[0023] The circuit unit 12 converts the output acceleration and
angular velocity into a digital value. The processor 13 calculates
a position of the pen 1 in a navigation frame, in which any one
point in a space in which the pen 1 exists is considered as an
origin. This position is calculated from the acceleration and
angular velocity obtained from a body frame, in which any one point
of the pen 1, for example a tip 15, is considered as an origin. The
processor 13 compensates the measured attitude of the pen 1 by
compensating for an error that occurs unavoidably in the angular
velocity sensor 11 and calculates a more accurate position of the
pen 1 in the navigation frame by compensating the measured
acceleration of the pen 1 using the compensated attitude of the pen
1. The wireless communication unit 14 communicates information on a
basis of the position of the pen 1, as calculated by the processor
13, to an external device such as a computer, a digital TV or a PDA
in a predetermined wireless communication manner.
[0024] FIG. 2 is a block diagram of an apparatus that compensates
the attitude of an inertial navigation system according to an
embodiment of the present invention. The apparatus compensates the
attitude of the pen 1 and may correspond to the processor 13. The
apparatus comprises a movement sensor 20, an attitude calculating
unit 21, an attitude error calculating unit 22, and an attitude
compensating unit 23.
[0025] The movement sensor 20 determines whether the pen 1 is
moving during a stroke of the pen 1 to detect a stoppage or
movement time period. The movement of the pen 1 may be determined
using a unit that discriminates the movement of the pen 1 from the
stoppage of the pen 1. Otherwise, the movement of the pen 1 can be
determined using acceleration information f.sup.b or angular
velocity information .omega..sup.b input from the acceleration
sensor 10 or the angular velocity sensor 11. Determining the
movement of the pen 1 from f.sup.b or .omega..sup.b can be
performed by obtaining a standard deviation of f.sup.b or
.omega..sup.b, and when the obtained standard deviation is less
than or equal to a predetermined threshold value, it can be
determined that the pen 1 is stopped temporarily. Here, superscript
b is a measured value in the body frame.
[0026] The attitude calculating unit 21 calculates parameters, for
example Euler angles, that is, a roll angle .phi..sub.ins, a pitch
angle .theta..sub.ins, and a yaw angle .psi..sub.ins indicating the
attitude of the pen 1 in the navigation frame. The calculation is
performed using a well-known theory of an inertial navigation
system (INS) from the angular velocity information .omega..sup.b.
The attitude calculating unit 21 then calculates an attitude matrix
.sub.b.sup.n indicating the attitude of the pen 1 in the navigation
frame relative to the body frame.
[0027] The attitude error calculating unit 22 calculates an
attitude error matrix .DELTA.C.sub.b.sup.n using the acceleration
information f.sup.b and calculates a movement time detected by the
movement sensor 20. This will now be described in detail.
[0028] The acceleration of the pen 1 measured by the acceleration
sensor 10 is assumed to be much smaller than gravitational
acceleration of the pen 1. In order to remove the effect of gravity
on acceleration, therefore, the attitude of the pen 1 should be
precisely measured. Due to drift of the angular velocity sensor 11
and other noise, the attitude error increases over time.
Considering a period of the stoppage time of the pen 1, the
acceleration sensor 10 senses only a gravity component. However,
acceleration measurement values on each axis vary according to the
attitude of the pen 1. Only the roll angle .phi..sub.acc and the
pitch angle .theta..sub.acc among the Euler angles are used to
specify the attitude of the pen 1 obtained from the acceleration
measurement values. The roll angle and the pitch angle obtained
from the acceleration measurement values are given by Equation 1. 1
acc = tan - 1 ( - f y b - f z b ) acc = sin - 1 ( f x b g ) = tan -
1 ( f x b ( f z b ) 2 + ( f z b ) 2 ) ( 1 )
[0029] where, g is gravitational acceleration, and
.function..sub.x.sup.b, .function..sub.y.sup.b,
.function..sub.z.sup.b are triaxial gravity direction information.
Also, superscript b is a measured value in the body frame.
[0030] When a gravity direction sensor is adopted, said
.phi..sub.acc and .theta..sub.acc may also be obtained from a
gravity direction tilt using Equation 1.
[0031] The Euler angles indicating the attitude of the pen 1 may
also be obtained using INS theory. In other words, the Euler angles
may also be obtained by integrating angular velocity sensed by the
angular velocity sensor 11. Thus, when an error is included in the
sensed angular velocity, an error is also incurred in the attitude
of the pen 1. In particular, due to drift of the angular velocity
sensor 11, an attitude error is accumulated over time. However, if
the attitude of the pen 1 is obtained from the acceleration
information using Equation 1, the attitude error does not increase
according to time but depends on only noise incurred in the
acceleration measurement by the acceleration sensor 10. Therefore,
the attitude of the pen 1 obtained from the acceleration
information may be used as a reference attitude when the pen 1
stops.
[0032] However, the yaw angle .psi. cannot be obtained from the
acceleration measurement, but an initial yaw angle is not an
important factor for measuring the attitude of the pen 1. In
general, the yaw angle is set to 0.degree. when a stroke of the pen
1 starts.
[0033] Since the drift of the angular velocity sensor 11 is a main
factor of error in angular velocity measurement, and an angle
indicating the attitude of the pen 1 is obtained by integration of
the angular velocity, the attitude error may be expressed as a
linear function of time during handwriting. The attitude error that
occurs during a stroke of the pen 1 can be estimated by an attitude
calculated from the acceleration information measured during a
period between the start and end of the stroke.
[0034] In order to compensate for the attitude error, a handwriting
period is divided into three time periods, that is, a pause start
time period of 0.ltoreq.t.ltoreq.t.sub.1, a handwriting time period
of t.sub.1.ltoreq.t.ltoreq.t.sub.2, and a pause end time period of
t.sub.2.ltoreq.t.ltoreq.t.sub.end. When the attitude of the pen 1
obtained from the INS theory during a period of
0.ltoreq.t.ltoreq.t.sub.e- nd is indicated by .phi..sub.ins(t),
.theta..sub.ins(t), .psi..sub.ins(t), the attitude of the pen 1 may
be indicated by .phi..sub.acc(t), .theta..sub.acc(t),
0.ltoreq.t.ltoreq.t.sub.1, t.sub.2.ltoreq.t.ltoreq.t.- sub.end.
Since different reference information is obtained in the three time
periods, different methods are used when the attitude error is
estimated. As an example of one such method, a compensation
principle for the roll angle, will now be described.
[0035] Assuming that during the time period of
0.ltoreq.t.ltoreq.t.sub.1, an error due to initial misalignment at
t=0 does not occur, then a roll angle error increases linearly over
time and can be modeled as: 2 ( t ) = k 1 t , k 1 = ins ( t 1 ) -
acc ( t 1 ) t 1 ( 2 )
[0036] Since there is no reference attitude when
t.sub.1<t<t.sub.2, a reference attitude during other time
period is used only to estimate the attitude error. When an
attitude error model satisfies a linear function according to time,
the attitude error can be modeled as. 3 ( t ) = k 2 t + b k 2 = [
ins ( t 2 ) - acc ( t 2 ) ] - [ ins ( t 1 ) - acc ( t 1 ) ] t 2 - t
1 , b = [ ins ( t 1 ) - acc ( t 1 ) ] t 2 - [ ins ( t 2 ) - acc ( t
2 ) ] t 1 t 2 - t 1 ( 3 )
[0037] During t.sub.2.ltoreq.t.ltoreq.t.sub.end, the trajectory of
the pen 1 uses position information of the time period of
t.sub.1<t<t.sub.2- . Thus, if the attitude error during
t.sub.2.ltoreq.t.ltoreq.t.sub.end is constant, the roll angle error
still increases according to time, and the model given by Equation
3 can be used. A pitch angle error can also be modeled as the roll
angle error is modeled.
[0038] If the attitude error is estimated according to the
above-described linear modeling, the attitude error matrix
.DELTA.C.sub.b.sup.n is obtained from the estimated attitude
error.
[0039] The attitude compensating unit 23 outputs the attitude
matrix C.sub.b.sup.n for which the error .DELTA.C.sub.b.sup.n is
compensated for .sub.b.sup.n output from the attitude calculating
unit 21.
[0040] A method of compensating for the attitude of the pen 1 will
now be described with reference to FIGS. 3 and 4 in case of the
roll angle. FIGS. 3A through 3E illustrate a process of
compensating for a roll angle obtained from angular velocity
information, and FIG. 4 is a flowchart illustrating the method of
FIG. 3.
[0041] The angular velocity sensor 11 senses and outputs angular
velocity information .omega. (step 40). Referring to FIG. 3A, the
magnitude of the output angular velocity is large during the time
period of the stroke of the pen 1, and during the pause time
periods, the output angular velocity has drift .DELTA..omega. that
does not become 0 due to noise inherited in a sensor itself.
[0042] The angular velocity information is integrated considering
an initial angle .phi..sub.0 according to the INS theory so that
.phi..sub.ins(t) is obtained (step 41). The obtained
.phi..sub.ins(t) is as shown in FIG. 3B. In addition, an operation
of Equation 1 is performed on the acceleration information f.sup.b
to obtain .phi..sub.acc(t) (step 42). The obtained .phi..sub.ins(t)
is shown as an initial angle .phi..sub.0 and an angle value
.phi..sub.end, as shown in FIG. 3C.
[0043] The roll angle error .DELTA..phi.(t) is linearly
approximated using .phi..sub.ins(t) and .phi..sub.acc(t) in
Equations 2 and 3, as shown in FIG. 3D (step 43). Compensating for
the roll angle is given by (step 44)
.phi.(t)=.phi..sub.ins(t)-.DELTA..phi.(t) (4)
[0044] The finally-compensated roll angle does not increase over
time before the start of the stroke of the pen 1 or after the end
of the stroke of the pen 1 and is stable, as shown in FIG. 3E.
[0045] FIG. 5 is a block diagram of an apparatus that calculates
the position of an inertial navigation system using the apparatus
that compensates the attitude of the inertial navigation system
according to an embodiment of the present invention.
[0046] The apparatus that calculates the position of the inertial
navigation system comprises an attitude compensating unit 50, an
acceleration transforming unit 51, an acceleration compensating
unit 52, and a position calculating unit 53. The acceleration
compensating unit 52 may be optional.
[0047] The attitude compensating unit 50 has a structure as shown
in FIG. 2. In this case, acceleration information and angular
velocity information are input into the attitude compensating unit
50. The attitude compensating unit 50 outputs a movement time t of
the pen 1 and a compensated attitude matrix C.sub.b.sup.n. The
acceleration transforming unit 51 outputs acceleration in the
navigation frame given by Equation 5 using C.sub.b.sup.n and
acceleration information f.sup.b output from the acceleration
sensor 10.
.sup.n(t)=C.sub.b.sup.na.sup.b(t) (5)
[0048] The acceleration compensating unit 52 compensates for .sup.n
using the movement time t, output from the attitude compensating
unit 50. Here, the acceleration compensating unit 52 may be
optional. In other words, the position calculating unit 53 may
perform a double integral of the acceleration in the navigation
frame, which is output from the acceleration transforming unit 51,
without compensation and calculates the position of the pen 1 in
the navigation frame.
[0049] In case of using the acceleration compensating unit 52, a
process of compensating for the acceleration will now be
described.
[0050] An error .DELTA.a.sup.n(t) of the acceleration a.sup.n(t) is
generated basically by the acceleration sensor 10 and the angular
velocity sensor 11 and is given by. 4 a n ( t ) = f [ C b n , C b n
, f b , f b ( t ) , t ] = [ I - C p n ( t ) ] C b p ( t ) f b ( t )
+ C b n ( t ) f b ( t ) ( 6 )
[0051] where, .delta.f.sup.b(t) is an acceleration error in the
body frame generated by an acceleration error and an attitude
error, and .DELTA.C.sub.b.sup.n is an attitude error matrix
obtained from an attitude angle error .DELTA..phi., .DELTA..theta.,
.DELTA..psi. and an angle error .DELTA..phi..sub.0,
.DELTA..theta..sub.0, .DELTA..psi..sub.0 due to initial
misalignment.
[0052] The acceleration information measured in the body frame is
transformed into a value in the navigation frame. The first term of
the second row of Equation 6 represents acceleration deviated from
a true value using the attitude matrix C.sub.b.sup.n calculated in
the body frame.
[0053] For a rough estimation value, a horizontal acceleration
error that is incurred due to an angular error caused by gravity
can be represented by 1 g.times.sin (.DELTA..theta.), and this
value is added to an acceleration vector in the navigation frame.
For example, if acceleration accuracy is maintained in an
acceleration sensor having an accuracy of 0.1 mg unit during
handwriting, the accuracy of the pitch angle and the roll angle
would be maintained at 0.0057.degree.. Even at this accuracy, a
position error after 5 minutes is about 1.225 cm.
[0054] The second term of Equation 6 shows that .delta.f.sup.b(t)
depends on C.sub.b.sup.n(t) and has an effect on a.sup.n(t). The
second term of Equation 6 is given by a complex nonlinear function
of time. If there is no variation in an attitude, a constant
acceleration error in the body frame is linked to a constant
acceleration error in the navigation frame. However, in practice,
an attitude during handwriting continuously varies according to
time. Even though the acceleration error is constant, an effect on
.DELTA.a.sup.n(t) varies according to the complex nonlinear
function of time. Simultaneously, a variable attitude error
increases the complexity of a nonlinear relationship.
[0055] In the present invention, nonlinear acceleration is
linearized, as shown in FIG. 6. This will now be described in
detail.
[0056] A linear regression method is applied to acceleration values
recorded over a time period 0<t<t.sub.1 before the pen 1
moves in order to obtain a line a.sub.1t+c.sub.1 to which the
measured acceleration values are linearly approximated, as shown in
FIG. 6A. Simultaneously, the linear regression method is used in
acceleration values recorded when t>t.sub.2 in which the pen 1
is stopped in order to obtain a line a2t+c2 to which the measured
acceleration values are linearly approximated, as shown in FIG.
6A.
[0057] Intuitively, it is possible to know that the linear velocity
of the pen 1 during the pause time periods 0<t<t.sub.1 and
t>t.sub.2 of the pen 1 is substantially 0. Thus, the
acceleration during the pause time periods is also 0. Thus, as
shown in FIG. 6B, acceleration in each pause time period is set to
0, and subsequently, linear components become errors. This is also
referred to as zero velocity compensation.
[0058] An acceleration error at+c during a movement time period
t.sub.1<t<t.sub.2 is approximated using the approximated
acceleration errors a.sub.1t+c.sub.1 and a.sub.2t+c.sub.2 in each
pause time period. A gradient a of the approximated acceleration
error during the movement time period is determined by Equation 7,
and then, an intercept c is determined. 5 a = ( a 2 t 2 + c 2 ) - (
a 1 t 1 + c 1 ) t 2 - t 1 ( 7 )
[0059] The gradient a of the acceleration errors may be
alternatively determined by Equation 8 using the gradients of the
approximated acceleration errors in each pause time period. 6 a = (
a 1 + a 2 ) 2 ( 8 )
[0060] As shown in Equation 8, the fact that the gradient of the
acceleration error in the movement time period can be obtained by
averaging the gradients of the acceleration error during each pause
time period is based on the intuition that the acceleration error
measured by the pen 1 vary continuously.
[0061] The intercept c can be obtained by Equation 9 under a
condition that integration of actual acceleration, which is
measured and compensated for, from t.sub.1 to t.sub.2 should be 0,
since the velocity of the pen 1 at times t.sub.1 and t.sub.2 is
0.
.intg..sub.t.sub..sub.1.sup.t.sup..sub.2dt=.intg..sub.t.sub..sub.1.sup.t.s-
up..sub.2{A-(at+c)}dt=0 (9)
[0062] Here, is the compensated acceleration, and A is the measured
acceleration.
[0063] Solving Equation 9 for c gives. 7 c = 1 2 ( A - at ) t t 2 -
t 1 ( 10 )
[0064] The acceleration error at+c in the movement time period
t.sub.1<t<t.sub.2 obtained by Equations 7 or 8 and 10 is
shown in FIG. 6B with a zero velocity compensated acceleration
curve.
[0065] When t.sub.1<t<t.sub.2, the acceleration error at+c is
subtracted from the measured acceleration, and a compensated
acceleration A" in the navigation frame is given.
A"=A-(at+c) (11)
[0066] FIG. 6C shows acceleration in which zero velocity
compensation is performed and the acceleration error in the
movement time period is compensated for.
[0067] If acceleration compensation is performed by the
acceleration compensating unit 52 using the above-described
procedure, the position calculating unit 53 performs a double
integral on the acceleration and calculates the position of the pen
1 in the navigation frame.
[0068] Alternatively, an acceleration error value satisfying the
condition that the velocity at times when the pen 1 starts to move
and stops is 0 is obtained to compensate for the acceleration,
under an assumption that an acceleration error is constant. The
calculated acceleration error value is subtracted from the measured
acceleration, and a double integral is performed on the
acceleration with respect to time, thereby obtaining the position
of the pen 1.
[0069] FIG. 7 is a table showing errors of trajectories by pen
strokes for some characters in the prior art in which compensation
is not performed and errors of trajectories of the same characters
according to the present invention in which compensation is
performed. Trajectories recorded in a Wacom Intous tablet are used
as reference trajectories. It shows positional errors between
reference trajectories and corresponding INS pen trajectories
reproduced by a prior art method and the method according to an
embodiment of the present invention, respectively. A positional
error can be given as follows. 8 J method = 1 N k = 1 N ( P n
tablet ( kT ) - P n method ( kT ) ) 2 ( 12 )
[0070] Here, N is the number of samples for a given character, T is
a sampling interval, P.sub.n.sup.tablet is reference position
information obtained from the tablet, and P.sub.n.sup.method is
position information calculated by the prior art or the present
invention. In other words, the positioned error is a distance
between the reference position information and the position
information by the prior art or the present invention for a given
character. Referring to FIG. 7, the positioned errors according to
the present invention are smaller than the ones by the prior art
for a maximum, a minimum, and an average distance for the given
character. As such, the reproduction performance of the trajectory
according to the present invention is higher than the one by the
prior art. In particular, the averaged positional error is improved
from 0.0195 m to 0.016 m.
[0071] FIGS. 8A through 8C show trajectory tracing results in prior
art in which only zero velocity compensation is performed and
according to the present invention in which both acceleration and
angular velocity compensation are performed when tablets are used
as reference trajectories. The results show "9", "q", and "y"
trajectories, respectively. As shown in FIGS. 8A through 8C,
compensation results according to the present invention follow the
reference trajectory more accurately.
[0072] As described above, according to the present invention, not
only acceleration compensation but also angular velocity
compensation is considered when following the trajectory of an INS
such that a more accurate trajectory can be traced. In addition,
during acceleration compensation or angular velocity compensation,
a complex nonlinear function is approximated to a linear function
and compensated, such that simpler calculations are performed.
[0073] While the present invention has been particularly shown and
described with reference to exemplary embodiments thereof, it will
be understood by those skilled in the art that various changes in
form and details may be made therein without departing from the
spirit and scope of the invention as defined by the following
claims.
* * * * *