Transforming NED Acceleration Profile to Body Frame through Quarternions












0












$begingroup$


I have an acceleration profile which is in the North-East-Down coordinate system. The moving object in question is 6 DOF, however, and frequently approaches 90 degrees in roll, pitch, and yaw, making Euler angles a poor means for the transformation. I'm very inexperienced with quaternions and having a hard time making, if not figuring out if it's even possible to do this. I'd like to have a quaternion rotation matrix that changes my velocity profile from inertial to body frame horizontal and vertical accelerations if possible. I'll take anything that might help.










share|cite|improve this question









$endgroup$












  • $begingroup$
    I know a lot about quaternions and rotations with quaternions but I have no idea what you just said. (Don't worry, that's typical of quaternion questions.) If you have a rotation in mind and you know its axis and the angle it rotates around the axis, then finding the quaternion is easy. Do you know the axis and angle of rotation (at each point of time?)
    $endgroup$
    – rschwieb
    Nov 16 '16 at 15:36


















0












$begingroup$


I have an acceleration profile which is in the North-East-Down coordinate system. The moving object in question is 6 DOF, however, and frequently approaches 90 degrees in roll, pitch, and yaw, making Euler angles a poor means for the transformation. I'm very inexperienced with quaternions and having a hard time making, if not figuring out if it's even possible to do this. I'd like to have a quaternion rotation matrix that changes my velocity profile from inertial to body frame horizontal and vertical accelerations if possible. I'll take anything that might help.










share|cite|improve this question









$endgroup$












  • $begingroup$
    I know a lot about quaternions and rotations with quaternions but I have no idea what you just said. (Don't worry, that's typical of quaternion questions.) If you have a rotation in mind and you know its axis and the angle it rotates around the axis, then finding the quaternion is easy. Do you know the axis and angle of rotation (at each point of time?)
    $endgroup$
    – rschwieb
    Nov 16 '16 at 15:36
















0












0








0





$begingroup$


I have an acceleration profile which is in the North-East-Down coordinate system. The moving object in question is 6 DOF, however, and frequently approaches 90 degrees in roll, pitch, and yaw, making Euler angles a poor means for the transformation. I'm very inexperienced with quaternions and having a hard time making, if not figuring out if it's even possible to do this. I'd like to have a quaternion rotation matrix that changes my velocity profile from inertial to body frame horizontal and vertical accelerations if possible. I'll take anything that might help.










share|cite|improve this question









$endgroup$




I have an acceleration profile which is in the North-East-Down coordinate system. The moving object in question is 6 DOF, however, and frequently approaches 90 degrees in roll, pitch, and yaw, making Euler angles a poor means for the transformation. I'm very inexperienced with quaternions and having a hard time making, if not figuring out if it's even possible to do this. I'd like to have a quaternion rotation matrix that changes my velocity profile from inertial to body frame horizontal and vertical accelerations if possible. I'll take anything that might help.







transformation coordinate-systems quaternions






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Nov 16 '16 at 15:32









cellbycellwestcellbycellwest

11




11












  • $begingroup$
    I know a lot about quaternions and rotations with quaternions but I have no idea what you just said. (Don't worry, that's typical of quaternion questions.) If you have a rotation in mind and you know its axis and the angle it rotates around the axis, then finding the quaternion is easy. Do you know the axis and angle of rotation (at each point of time?)
    $endgroup$
    – rschwieb
    Nov 16 '16 at 15:36




















  • $begingroup$
    I know a lot about quaternions and rotations with quaternions but I have no idea what you just said. (Don't worry, that's typical of quaternion questions.) If you have a rotation in mind and you know its axis and the angle it rotates around the axis, then finding the quaternion is easy. Do you know the axis and angle of rotation (at each point of time?)
    $endgroup$
    – rschwieb
    Nov 16 '16 at 15:36


















$begingroup$
I know a lot about quaternions and rotations with quaternions but I have no idea what you just said. (Don't worry, that's typical of quaternion questions.) If you have a rotation in mind and you know its axis and the angle it rotates around the axis, then finding the quaternion is easy. Do you know the axis and angle of rotation (at each point of time?)
$endgroup$
– rschwieb
Nov 16 '16 at 15:36






$begingroup$
I know a lot about quaternions and rotations with quaternions but I have no idea what you just said. (Don't worry, that's typical of quaternion questions.) If you have a rotation in mind and you know its axis and the angle it rotates around the axis, then finding the quaternion is easy. Do you know the axis and angle of rotation (at each point of time?)
$endgroup$
– rschwieb
Nov 16 '16 at 15:36












1 Answer
1






active

oldest

votes


















0












$begingroup$

I will assume that your local coordinate system corresponds to your global coordinate system when yaw, pitch and roll are zero. By that I mean that x = forward, y = right, z = down (SAE standard). I will also assume that yaw, pitch and roll are done with respect to local axes in that order in the right hand sense. By this I mean that first you yaw about Z (CW), then pitch about Y (Up) and then roll about X (right). You can then define a quaternion for each of these. Let $psi = $ yaw angle, $phi = $ =pitch angle, and $theta =$ roll angle. Then:
$$q_y = [cos(psi/2), (0,0,1)sin(psi/2)]$$
$$q_p = [cos(phi/2), (0,1,0)sin(phi/2)]$$
$$q_r = [cos(theta/2), (1,0,0)sin(theta/2)]$$



Then your composed rotation would be



$$q = q_y q_p q_r$$



in that order. You can then rotate a vector $a = [a_x, a_y, a_z]$ from the global (NED) to local frame (SAE) by using the inverse transformation



$$bar{a} = q^*aq$$



using normal multiplication rules for quaternions. You can also work out a normal rotation matrix from $q$ if that is what you prefer. The equation is found in many places on the web like here.



I gave you just the highlights assuming that you have some familiarity with the algebra of quaternions.






share|cite|improve this answer









$endgroup$













  • $begingroup$
    I am familiar with the basics of quaternion algebra, and so far this seems to be helping me get the numbers I expect! Thank you for the help and sorry for the long reply.
    $endgroup$
    – cellbycellwest
    Dec 5 '16 at 12:28













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',
autoActivateHeartbeat: false,
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%2f2016886%2ftransforming-ned-acceleration-profile-to-body-frame-through-quarternions%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0












$begingroup$

I will assume that your local coordinate system corresponds to your global coordinate system when yaw, pitch and roll are zero. By that I mean that x = forward, y = right, z = down (SAE standard). I will also assume that yaw, pitch and roll are done with respect to local axes in that order in the right hand sense. By this I mean that first you yaw about Z (CW), then pitch about Y (Up) and then roll about X (right). You can then define a quaternion for each of these. Let $psi = $ yaw angle, $phi = $ =pitch angle, and $theta =$ roll angle. Then:
$$q_y = [cos(psi/2), (0,0,1)sin(psi/2)]$$
$$q_p = [cos(phi/2), (0,1,0)sin(phi/2)]$$
$$q_r = [cos(theta/2), (1,0,0)sin(theta/2)]$$



Then your composed rotation would be



$$q = q_y q_p q_r$$



in that order. You can then rotate a vector $a = [a_x, a_y, a_z]$ from the global (NED) to local frame (SAE) by using the inverse transformation



$$bar{a} = q^*aq$$



using normal multiplication rules for quaternions. You can also work out a normal rotation matrix from $q$ if that is what you prefer. The equation is found in many places on the web like here.



I gave you just the highlights assuming that you have some familiarity with the algebra of quaternions.






share|cite|improve this answer









$endgroup$













  • $begingroup$
    I am familiar with the basics of quaternion algebra, and so far this seems to be helping me get the numbers I expect! Thank you for the help and sorry for the long reply.
    $endgroup$
    – cellbycellwest
    Dec 5 '16 at 12:28


















0












$begingroup$

I will assume that your local coordinate system corresponds to your global coordinate system when yaw, pitch and roll are zero. By that I mean that x = forward, y = right, z = down (SAE standard). I will also assume that yaw, pitch and roll are done with respect to local axes in that order in the right hand sense. By this I mean that first you yaw about Z (CW), then pitch about Y (Up) and then roll about X (right). You can then define a quaternion for each of these. Let $psi = $ yaw angle, $phi = $ =pitch angle, and $theta =$ roll angle. Then:
$$q_y = [cos(psi/2), (0,0,1)sin(psi/2)]$$
$$q_p = [cos(phi/2), (0,1,0)sin(phi/2)]$$
$$q_r = [cos(theta/2), (1,0,0)sin(theta/2)]$$



Then your composed rotation would be



$$q = q_y q_p q_r$$



in that order. You can then rotate a vector $a = [a_x, a_y, a_z]$ from the global (NED) to local frame (SAE) by using the inverse transformation



$$bar{a} = q^*aq$$



using normal multiplication rules for quaternions. You can also work out a normal rotation matrix from $q$ if that is what you prefer. The equation is found in many places on the web like here.



I gave you just the highlights assuming that you have some familiarity with the algebra of quaternions.






share|cite|improve this answer









$endgroup$













  • $begingroup$
    I am familiar with the basics of quaternion algebra, and so far this seems to be helping me get the numbers I expect! Thank you for the help and sorry for the long reply.
    $endgroup$
    – cellbycellwest
    Dec 5 '16 at 12:28
















0












0








0





$begingroup$

I will assume that your local coordinate system corresponds to your global coordinate system when yaw, pitch and roll are zero. By that I mean that x = forward, y = right, z = down (SAE standard). I will also assume that yaw, pitch and roll are done with respect to local axes in that order in the right hand sense. By this I mean that first you yaw about Z (CW), then pitch about Y (Up) and then roll about X (right). You can then define a quaternion for each of these. Let $psi = $ yaw angle, $phi = $ =pitch angle, and $theta =$ roll angle. Then:
$$q_y = [cos(psi/2), (0,0,1)sin(psi/2)]$$
$$q_p = [cos(phi/2), (0,1,0)sin(phi/2)]$$
$$q_r = [cos(theta/2), (1,0,0)sin(theta/2)]$$



Then your composed rotation would be



$$q = q_y q_p q_r$$



in that order. You can then rotate a vector $a = [a_x, a_y, a_z]$ from the global (NED) to local frame (SAE) by using the inverse transformation



$$bar{a} = q^*aq$$



using normal multiplication rules for quaternions. You can also work out a normal rotation matrix from $q$ if that is what you prefer. The equation is found in many places on the web like here.



I gave you just the highlights assuming that you have some familiarity with the algebra of quaternions.






share|cite|improve this answer









$endgroup$



I will assume that your local coordinate system corresponds to your global coordinate system when yaw, pitch and roll are zero. By that I mean that x = forward, y = right, z = down (SAE standard). I will also assume that yaw, pitch and roll are done with respect to local axes in that order in the right hand sense. By this I mean that first you yaw about Z (CW), then pitch about Y (Up) and then roll about X (right). You can then define a quaternion for each of these. Let $psi = $ yaw angle, $phi = $ =pitch angle, and $theta =$ roll angle. Then:
$$q_y = [cos(psi/2), (0,0,1)sin(psi/2)]$$
$$q_p = [cos(phi/2), (0,1,0)sin(phi/2)]$$
$$q_r = [cos(theta/2), (1,0,0)sin(theta/2)]$$



Then your composed rotation would be



$$q = q_y q_p q_r$$



in that order. You can then rotate a vector $a = [a_x, a_y, a_z]$ from the global (NED) to local frame (SAE) by using the inverse transformation



$$bar{a} = q^*aq$$



using normal multiplication rules for quaternions. You can also work out a normal rotation matrix from $q$ if that is what you prefer. The equation is found in many places on the web like here.



I gave you just the highlights assuming that you have some familiarity with the algebra of quaternions.







share|cite|improve this answer












share|cite|improve this answer



share|cite|improve this answer










answered Nov 17 '16 at 2:21









TpofofnTpofofn

3,6271427




3,6271427












  • $begingroup$
    I am familiar with the basics of quaternion algebra, and so far this seems to be helping me get the numbers I expect! Thank you for the help and sorry for the long reply.
    $endgroup$
    – cellbycellwest
    Dec 5 '16 at 12:28




















  • $begingroup$
    I am familiar with the basics of quaternion algebra, and so far this seems to be helping me get the numbers I expect! Thank you for the help and sorry for the long reply.
    $endgroup$
    – cellbycellwest
    Dec 5 '16 at 12:28


















$begingroup$
I am familiar with the basics of quaternion algebra, and so far this seems to be helping me get the numbers I expect! Thank you for the help and sorry for the long reply.
$endgroup$
– cellbycellwest
Dec 5 '16 at 12:28






$begingroup$
I am familiar with the basics of quaternion algebra, and so far this seems to be helping me get the numbers I expect! Thank you for the help and sorry for the long reply.
$endgroup$
– cellbycellwest
Dec 5 '16 at 12:28




















draft saved

draft discarded




















































Thanks for contributing an answer to Mathematics Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2016886%2ftransforming-ned-acceleration-profile-to-body-frame-through-quarternions%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

Wiesbaden

Marschland

Dieringhausen