MOTION SMOOTHING IN 3-D POSITION SENSING APPARATUS
First Claim
1. A method of estimating position and orientation of an article, comprising:
- reading the orientation of the article from at least three gyroscopes mounted on the article;
reading the acceleration of the article from three accelerometers mounted on the article;
at time T estimating a position vector velocity vector V, and orientation matrix O of an article, between T and an initial time T0 where;
an initial position vector=P0,an initial velocity vector=V0,an initial orientation matrix=O0,an initial rotational velocity, relative to the article, vector=R0, andan initial acceleration, relative to the article, vector=A0; and
re-calculating the position vector P, velocity vector V, and orientation matrix O at a subsequent time T1 using new information from the accelerometers and gyroscopes where;
new acceleration relative to the object vector=A1,new rotational velocity relative to the object vector=R1,andthe re-calculation is carried out by, linearly interpolating from R0 to R1 to discover the local rotational velocity at any time between T0 and T1, and by linearly interpolating from A0 to A1 to discover the local acceleration.
8 Assignments
0 Petitions
Accused Products
Abstract
A method of estimating and extrapolating the position of an article is provided. The article'"'"'s position is detected by relatively infrequent ultrasonic ranging, and provides more frequent reports from internal accelerometers, gyroscopes and optional magnetometers. In a first instance, the method includes calculating new position, velocity and orientation vectors by linearly interpolating between the readings of the sensors at two times. In a second instance, the method includes estimating the orientation of the article by calculating the duration of a timeslice, making a rotational increment matrix and taking the product of the initial orientation and the increment matrix for the appropriate number of timeslices. In a third instance, the method includes calculating the acceleration of an article between three ultrasonically determined locations and recalibrating the accelerometers to align the measured acceleration with the calculated acceleration.
25 Citations
17 Claims
-
1. A method of estimating position and orientation of an article, comprising:
-
reading the orientation of the article from at least three gyroscopes mounted on the article; reading the acceleration of the article from three accelerometers mounted on the article; at time T estimating a position vector velocity vector V, and orientation matrix O of an article, between T and an initial time T0 where; an initial position vector=P0, an initial velocity vector=V0, an initial orientation matrix=O0, an initial rotational velocity, relative to the article, vector=R0, and an initial acceleration, relative to the article, vector=A0; and re-calculating the position vector P, velocity vector V, and orientation matrix O at a subsequent time T1 using new information from the accelerometers and gyroscopes where; new acceleration relative to the object vector=A1, new rotational velocity relative to the object vector=R1,and the re-calculation is carried out by, linearly interpolating from R0 to R1 to discover the local rotational velocity at any time between T0 and T1, and by linearly interpolating from A0 to A1 to discover the local acceleration. - View Dependent Claims (2, 3)
-
-
4. A method of estimating position and orientation of an article, comprising:
-
extrapolating a position vector P, and orientation matrix O of the article at time T, moveable from an initial state at time T0, described by; an initial position vector=P0, an initial velocity vector=V0, an initial orientation matrix=O0, (in angular units), and initial rotational velocity, relative to the article, vector=R0; calculating the duration of a timeslice TSlice=(T−
T0)/N, where N tends to zero; andmaking a rotational increment matrix M to create a rotation matrix from a rotation expressed as a vector of components representing x, y, and z axes of rotation ;
M=MatrixCreate(TSlice*R0), where the estimated orientation and estimated position are given as O=M1×
M2×
M3 ×
. . . ×
MN×
O0 and P=P0+V(T−
T0) respectively. - View Dependent Claims (5)
-
-
6. A method of estimating position and orientation of an article, the method comprising correcting orientation, and optionally velocity, by:
-
taking a plurality of readings from the output of at least three accelerometers mounted on the article; using at least three positions given by ultrasonic time-of-flight measurements, during transit between at least the first, second and third ultrasonic-derived positions, assuming that acceleration of the article between the first to the third the positions was substantially constant and verifying this against the plurality of accelerometer readings; calculating the acceleration vector at the second position using the position and time information about the at least three known positions and comparing that calculated acceleration vector with one obtained from the accelerometers; and thereby re-calibrating the measurements taken from the accelerometers.
-
-
7. A computer program product embedded on non-transitory computer-readable medium, the computer program product carrying program steps which when executed on suitable hardware causes the hardware to carry out the steps of:
-
reading the orientation of the article from at least three gyroscopes mounted on the article; reading the acceleration of the article from at least three accelerometers mounted on the article; at time T estimating a position vector P, velocity vector V, and orientation matrix O of an article, between T and an initial time T0 where; an initial position vector=P0, an initial velocity vector=V0, an initial orientation matrix=O0), an initial rotational velocity, relative to the article, vector=R0, and an initial acceleration, relative to the article, vector=A0; and re-calculating the position vector P, velocity vector V, and orientation matrix O at a subsequent time T1 using new information from the accelerometers and gyroscopes where; new acceleration relative to the object vector=A1, new rotational velocity relative to the object vector=R1,and the re-calculation is carried out by, linearly interpolating from R0 to R1 to discover the local rotational velocity at any time between T0 and T1, and by linearly interpolating from A0 to A1 to discover the local acceleration. - View Dependent Claims (8, 9)
-
-
10. A computer program product embedded on non-transitory computer-readable medium, the computer program product carrying program steps which when executed on suitable hardware causes the hardware to carry out the steps of:
-
extrapolating a position vector P, and orientation matrix O of the article at time T, moveable from an initial state at time T0, described by; an initial position vector=P0, an initial velocity vector=V0, an initial orientation matrix=O0, (in angular units), and an initial rotational velocity, relative to the article, vector=R0; calculating the duration of a timeslice TSlice=(T−
T0)/N, where N tends to zero; andmaking a rotational increment matrix M to create a rotation matrix from a rotation expressed as a vector of components representing x, y, and z axes of rotation ;
M=MatrixCreate(TSlice*R0), where the estimated orientation and estimated position are given as O=M1×
M2×
M3 ×
. . . ×
MN×
O0 and P=P0+V(T−
T0) respectively. - View Dependent Claims (11)
-
-
12. A computer program product embedded on non-transitory computer-readable medium, the computer program product carrying program steps which when executed on suitable hardware causes the hardware to carry out the steps of:
-
taking a plurality of readings from the output of at least three accelerometers mounted on the article; using at least three positions given by ultrasonic time-of-flight measurements, during transit between at least the first, second and third ultrasonic-derived positions, assuming that acceleration of the article between the first to the third the positions was substantially constant and verifying this against the plurality of accelerometer readings; calculating the acceleration vector at the second the position using the position and time information about the at least three known positions and comparing that calculated acceleration vector with one obtained from the accelerometers; and thereby re-calibrating the measurements taken from the accelerometers.
-
-
13. A method of controlling an on-screen pointer, comprising:
-
reading the orientation of the article from at least three gyroscopes mounted on the article; reading the acceleration of the article from at least three accelerometers mounted on the article; at time T estimating a position vector P, velocity vector V, and orientation matrix O of an article, between T and an initial time T0 where; an initial position vector=P0, an initial velocity vector=V0, an initial orientation matrix=O0, an initial rotational velocity, relative to the article, vector=R0, and an initial acceleration, relative to the article, vector=A0; re-calculating the position vector P, velocity vector V, and orientation matrix O at a subsequent time T1 using new information from the accelerometers and gyroscopes where; new acceleration relative to the object vector=A1, new rotational velocity relative to the object vector=R1,and the re-calculation is carried out by, linearly interpolating from R0 to R1 to discover the local rotational velocity at any time between T0 and T1, and by linearly interpolating from A0 to A1 to discover the local acceleration; and using the position vector P, velocity vector V, and orientation matrix O of the article to determine where a line through a predetermined one of the article'"'"'s axes intersects a plane. - View Dependent Claims (14, 15)
-
-
16. A method of controlling an on-screen pointer, comprising:
-
extrapolating a position vector P, and orientation matrix O of the article at time T, moveable from an initial state at time T0, described by; an initial position vector=P0, an initial velocity vector=V0, an initial orientation matrix=O0, (in angular units), and initial rotational velocity, relative to the article, vector=R0; calculating the duration of a timeslice TSlice=(T−
T0)/N, where N tends to zero; andmaking a rotational increment matrix M to create a rotation matrix from a rotation expressed as a vector of components representing x, v, and z axes of rotation ;
M=MatrixCreate(TSlice*R0), where the estimated orientation and estimated position are given as O=M1×
M2×
M3 ×
. . . ×
MN×
O0 and P=P0+V(T−
T0) respectively; andusing the position vector P, and orientation matrix O of the article to determine where a line through a predetermined one of the article'"'"'s axes intersects a plane. - View Dependent Claims (17)
-
Specification