Transforming NED Acceleration Profile to Body Frame through Quarternions
$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.
transformation coordinate-systems quaternions
$endgroup$
add a comment |
$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.
transformation coordinate-systems quaternions
$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
add a comment |
$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.
transformation coordinate-systems quaternions
$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
transformation coordinate-systems quaternions
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
add a comment |
$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
add a comment |
1 Answer
1
active
oldest
votes
$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.
$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
add a comment |
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
});
}
});
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%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
$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.
$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
add a comment |
$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.
$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
add a comment |
$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.
$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.
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
add a comment |
$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
add a comment |
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.
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%2f2016886%2ftransforming-ned-acceleration-profile-to-body-frame-through-quarternions%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
$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