Options to calculate sensor fusion with orthonormal matrix
up vote
0
down vote
favorite
I have created an orthonormal matrix using my accelerometer / tile adjusted magnetometer / and the cross product of these two vectors. the values are normalized -1/+1.
Im trying to work out how to fuse my gyroscope into this in a complimentary fashion. Is there a way to achieve this mathematically as a matrix or do I need to convert to another form for calculations?
My 3x3 matrix is giving me orientation information with disruptive factors (mainly acceleration noise from movement) my sensors output at 20ms intervals. if I convert to Euler angles I can then implement my gyroscope readings as a complimentary filter using these values. but this comes with the issue of Gimbal lock. if I produce a matrix from my gyroscope readings I'm not sure how to transpose this with my orientation matrix to correct for gyro drift. I wondered if there was a way to calculate the rotation matrix between two orthonormal matrices then comparing this with my rotation matrix for the gyroscope and using the complimentary filter combining these two matrices then running a total.
or am I best to convert the matrix to another form? I don't have C coding knowledge so I'm trying my best to understand and work through the maths to have a clearer picture of how this is working out. essentially what I want to achieve is sensor orientation as a means of tracking hand movement.
matrices
add a comment |
up vote
0
down vote
favorite
I have created an orthonormal matrix using my accelerometer / tile adjusted magnetometer / and the cross product of these two vectors. the values are normalized -1/+1.
Im trying to work out how to fuse my gyroscope into this in a complimentary fashion. Is there a way to achieve this mathematically as a matrix or do I need to convert to another form for calculations?
My 3x3 matrix is giving me orientation information with disruptive factors (mainly acceleration noise from movement) my sensors output at 20ms intervals. if I convert to Euler angles I can then implement my gyroscope readings as a complimentary filter using these values. but this comes with the issue of Gimbal lock. if I produce a matrix from my gyroscope readings I'm not sure how to transpose this with my orientation matrix to correct for gyro drift. I wondered if there was a way to calculate the rotation matrix between two orthonormal matrices then comparing this with my rotation matrix for the gyroscope and using the complimentary filter combining these two matrices then running a total.
or am I best to convert the matrix to another form? I don't have C coding knowledge so I'm trying my best to understand and work through the maths to have a clearer picture of how this is working out. essentially what I want to achieve is sensor orientation as a means of tracking hand movement.
matrices
This seems like more of an engineering or physics question to me. I'm not sure it's off topic, but have you tried asking at one of the relevant SE's?
– DreamConspiracy
Nov 14 at 5:12
No worries, I'll wait 30 minutes and repost in engineering.
– Ian Bloomfield
Nov 14 at 5:28
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I have created an orthonormal matrix using my accelerometer / tile adjusted magnetometer / and the cross product of these two vectors. the values are normalized -1/+1.
Im trying to work out how to fuse my gyroscope into this in a complimentary fashion. Is there a way to achieve this mathematically as a matrix or do I need to convert to another form for calculations?
My 3x3 matrix is giving me orientation information with disruptive factors (mainly acceleration noise from movement) my sensors output at 20ms intervals. if I convert to Euler angles I can then implement my gyroscope readings as a complimentary filter using these values. but this comes with the issue of Gimbal lock. if I produce a matrix from my gyroscope readings I'm not sure how to transpose this with my orientation matrix to correct for gyro drift. I wondered if there was a way to calculate the rotation matrix between two orthonormal matrices then comparing this with my rotation matrix for the gyroscope and using the complimentary filter combining these two matrices then running a total.
or am I best to convert the matrix to another form? I don't have C coding knowledge so I'm trying my best to understand and work through the maths to have a clearer picture of how this is working out. essentially what I want to achieve is sensor orientation as a means of tracking hand movement.
matrices
I have created an orthonormal matrix using my accelerometer / tile adjusted magnetometer / and the cross product of these two vectors. the values are normalized -1/+1.
Im trying to work out how to fuse my gyroscope into this in a complimentary fashion. Is there a way to achieve this mathematically as a matrix or do I need to convert to another form for calculations?
My 3x3 matrix is giving me orientation information with disruptive factors (mainly acceleration noise from movement) my sensors output at 20ms intervals. if I convert to Euler angles I can then implement my gyroscope readings as a complimentary filter using these values. but this comes with the issue of Gimbal lock. if I produce a matrix from my gyroscope readings I'm not sure how to transpose this with my orientation matrix to correct for gyro drift. I wondered if there was a way to calculate the rotation matrix between two orthonormal matrices then comparing this with my rotation matrix for the gyroscope and using the complimentary filter combining these two matrices then running a total.
or am I best to convert the matrix to another form? I don't have C coding knowledge so I'm trying my best to understand and work through the maths to have a clearer picture of how this is working out. essentially what I want to achieve is sensor orientation as a means of tracking hand movement.
matrices
matrices
asked Nov 14 at 5:09
Ian Bloomfield
11
11
This seems like more of an engineering or physics question to me. I'm not sure it's off topic, but have you tried asking at one of the relevant SE's?
– DreamConspiracy
Nov 14 at 5:12
No worries, I'll wait 30 minutes and repost in engineering.
– Ian Bloomfield
Nov 14 at 5:28
add a comment |
This seems like more of an engineering or physics question to me. I'm not sure it's off topic, but have you tried asking at one of the relevant SE's?
– DreamConspiracy
Nov 14 at 5:12
No worries, I'll wait 30 minutes and repost in engineering.
– Ian Bloomfield
Nov 14 at 5:28
This seems like more of an engineering or physics question to me. I'm not sure it's off topic, but have you tried asking at one of the relevant SE's?
– DreamConspiracy
Nov 14 at 5:12
This seems like more of an engineering or physics question to me. I'm not sure it's off topic, but have you tried asking at one of the relevant SE's?
– DreamConspiracy
Nov 14 at 5:12
No worries, I'll wait 30 minutes and repost in engineering.
– Ian Bloomfield
Nov 14 at 5:28
No worries, I'll wait 30 minutes and repost in engineering.
– Ian Bloomfield
Nov 14 at 5:28
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2997814%2foptions-to-calculate-sensor-fusion-with-orthonormal-matrix%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
This seems like more of an engineering or physics question to me. I'm not sure it's off topic, but have you tried asking at one of the relevant SE's?
– DreamConspiracy
Nov 14 at 5:12
No worries, I'll wait 30 minutes and repost in engineering.
– Ian Bloomfield
Nov 14 at 5:28