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.










share|cite|improve this question






















  • 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















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.










share|cite|improve this question






















  • 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













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.










share|cite|improve this question













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






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










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


















  • 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















active

oldest

votes











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















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






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














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





















































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







Popular posts from this blog

How to change which sound is reproduced for terminal bell?

Can I use Tabulator js library in my java Spring + Thymeleaf project?

Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents