Average of 3D rotations
I am trying to compute the average of a rotational error (the error I have in estimating a 3D rotation with respect to the real value). I have my estimated quaternion $mathbf{hat{q}}_i$ and its true value $mathbf{q^star}_i$. Consider now that I have a sequence of this quantities $mathbf{hat{q}} = left{ mathbf{hat{q}}_1 dots mathbf{hat{q}}_Nright}$ and ${mathbf{q^star}} =left{ mathbf{q^star}_1 dots mathbf{q^star}_Nright} $.
Now for each of the quaternion couples I define the error quaternion as $mathbf{q}_{epsilon,i} = mathbf{hat{q}}_i^{-1} otimes mathbf{q^star}$.
Now I want to compute the average quaternion error. At the moment I am converting the error quaternion to the corresponding rotation vector $mathbf{v}_epsilon$ and extract the rotation angle $mathbf{alpha}_epsilon$, then I average the absolute values.
However, I have the feeling that this is not the way to go. I had a look on wikipedia and I have found this https://en.wikipedia.org/wiki/Mean_of_circular_quantities, but I am not sure on how to apply it to my case.
Can you point me to some sound method to average 3D rotations?
Cheers
quaternions
bumped to the homepage by Community♦ 19 hours ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I am trying to compute the average of a rotational error (the error I have in estimating a 3D rotation with respect to the real value). I have my estimated quaternion $mathbf{hat{q}}_i$ and its true value $mathbf{q^star}_i$. Consider now that I have a sequence of this quantities $mathbf{hat{q}} = left{ mathbf{hat{q}}_1 dots mathbf{hat{q}}_Nright}$ and ${mathbf{q^star}} =left{ mathbf{q^star}_1 dots mathbf{q^star}_Nright} $.
Now for each of the quaternion couples I define the error quaternion as $mathbf{q}_{epsilon,i} = mathbf{hat{q}}_i^{-1} otimes mathbf{q^star}$.
Now I want to compute the average quaternion error. At the moment I am converting the error quaternion to the corresponding rotation vector $mathbf{v}_epsilon$ and extract the rotation angle $mathbf{alpha}_epsilon$, then I average the absolute values.
However, I have the feeling that this is not the way to go. I had a look on wikipedia and I have found this https://en.wikipedia.org/wiki/Mean_of_circular_quantities, but I am not sure on how to apply it to my case.
Can you point me to some sound method to average 3D rotations?
Cheers
quaternions
bumped to the homepage by Community♦ 19 hours ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I am trying to compute the average of a rotational error (the error I have in estimating a 3D rotation with respect to the real value). I have my estimated quaternion $mathbf{hat{q}}_i$ and its true value $mathbf{q^star}_i$. Consider now that I have a sequence of this quantities $mathbf{hat{q}} = left{ mathbf{hat{q}}_1 dots mathbf{hat{q}}_Nright}$ and ${mathbf{q^star}} =left{ mathbf{q^star}_1 dots mathbf{q^star}_Nright} $.
Now for each of the quaternion couples I define the error quaternion as $mathbf{q}_{epsilon,i} = mathbf{hat{q}}_i^{-1} otimes mathbf{q^star}$.
Now I want to compute the average quaternion error. At the moment I am converting the error quaternion to the corresponding rotation vector $mathbf{v}_epsilon$ and extract the rotation angle $mathbf{alpha}_epsilon$, then I average the absolute values.
However, I have the feeling that this is not the way to go. I had a look on wikipedia and I have found this https://en.wikipedia.org/wiki/Mean_of_circular_quantities, but I am not sure on how to apply it to my case.
Can you point me to some sound method to average 3D rotations?
Cheers
quaternions
I am trying to compute the average of a rotational error (the error I have in estimating a 3D rotation with respect to the real value). I have my estimated quaternion $mathbf{hat{q}}_i$ and its true value $mathbf{q^star}_i$. Consider now that I have a sequence of this quantities $mathbf{hat{q}} = left{ mathbf{hat{q}}_1 dots mathbf{hat{q}}_Nright}$ and ${mathbf{q^star}} =left{ mathbf{q^star}_1 dots mathbf{q^star}_Nright} $.
Now for each of the quaternion couples I define the error quaternion as $mathbf{q}_{epsilon,i} = mathbf{hat{q}}_i^{-1} otimes mathbf{q^star}$.
Now I want to compute the average quaternion error. At the moment I am converting the error quaternion to the corresponding rotation vector $mathbf{v}_epsilon$ and extract the rotation angle $mathbf{alpha}_epsilon$, then I average the absolute values.
However, I have the feeling that this is not the way to go. I had a look on wikipedia and I have found this https://en.wikipedia.org/wiki/Mean_of_circular_quantities, but I am not sure on how to apply it to my case.
Can you point me to some sound method to average 3D rotations?
Cheers
quaternions
quaternions
asked Oct 25 '16 at 16:32
MagoNick
96
96
bumped to the homepage by Community♦ 19 hours ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 19 hours ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The first thing that you need to realize is that the concept of an average does not directly apply here. This is for two reasons (1) rotations are not vectors and therefore they do not sum like you would expect for an average and (2) rotation composition is not commutative which means that when we do aggregate them, order matters. If the errors are small and are not biased (i.e. the sum would be small), then we can get an approximation by averaging the individual error terms ($mathbf{q}_{epsilon,i}$). If the errors are biased we need to do compose the errors into an aggregate rotation and then take the N'th root. Composition would look like this:
$$mathbf{q}_{epsilon}=prod_{iin{1,..,N}}mathbf{q}_{epsilon,i}$$
Where the order of the product is chosen in some rational way (i.e. order matters). We would then take the root as
$$bar{mathbf{q}}_{epsilon} ={mathbf{q}_{epsilon}}^{frac{1}{N}}$$
To compute the root, just convert to axis-angle, divide the angle by N and then convert back.
Hi tank you for your answer. In the meanwhile I have found and implemented this www.acsu.buffalo.edu/~johnc/ave_quat07.pdf and seems to do what I am looking for. I understand that the concept of average is not applicable to rotations, that's why I wrote here.
– MagoNick
Nov 2 '16 at 13:31
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%2f1984608%2faverage-of-3d-rotations%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
The first thing that you need to realize is that the concept of an average does not directly apply here. This is for two reasons (1) rotations are not vectors and therefore they do not sum like you would expect for an average and (2) rotation composition is not commutative which means that when we do aggregate them, order matters. If the errors are small and are not biased (i.e. the sum would be small), then we can get an approximation by averaging the individual error terms ($mathbf{q}_{epsilon,i}$). If the errors are biased we need to do compose the errors into an aggregate rotation and then take the N'th root. Composition would look like this:
$$mathbf{q}_{epsilon}=prod_{iin{1,..,N}}mathbf{q}_{epsilon,i}$$
Where the order of the product is chosen in some rational way (i.e. order matters). We would then take the root as
$$bar{mathbf{q}}_{epsilon} ={mathbf{q}_{epsilon}}^{frac{1}{N}}$$
To compute the root, just convert to axis-angle, divide the angle by N and then convert back.
Hi tank you for your answer. In the meanwhile I have found and implemented this www.acsu.buffalo.edu/~johnc/ave_quat07.pdf and seems to do what I am looking for. I understand that the concept of average is not applicable to rotations, that's why I wrote here.
– MagoNick
Nov 2 '16 at 13:31
add a comment |
The first thing that you need to realize is that the concept of an average does not directly apply here. This is for two reasons (1) rotations are not vectors and therefore they do not sum like you would expect for an average and (2) rotation composition is not commutative which means that when we do aggregate them, order matters. If the errors are small and are not biased (i.e. the sum would be small), then we can get an approximation by averaging the individual error terms ($mathbf{q}_{epsilon,i}$). If the errors are biased we need to do compose the errors into an aggregate rotation and then take the N'th root. Composition would look like this:
$$mathbf{q}_{epsilon}=prod_{iin{1,..,N}}mathbf{q}_{epsilon,i}$$
Where the order of the product is chosen in some rational way (i.e. order matters). We would then take the root as
$$bar{mathbf{q}}_{epsilon} ={mathbf{q}_{epsilon}}^{frac{1}{N}}$$
To compute the root, just convert to axis-angle, divide the angle by N and then convert back.
Hi tank you for your answer. In the meanwhile I have found and implemented this www.acsu.buffalo.edu/~johnc/ave_quat07.pdf and seems to do what I am looking for. I understand that the concept of average is not applicable to rotations, that's why I wrote here.
– MagoNick
Nov 2 '16 at 13:31
add a comment |
The first thing that you need to realize is that the concept of an average does not directly apply here. This is for two reasons (1) rotations are not vectors and therefore they do not sum like you would expect for an average and (2) rotation composition is not commutative which means that when we do aggregate them, order matters. If the errors are small and are not biased (i.e. the sum would be small), then we can get an approximation by averaging the individual error terms ($mathbf{q}_{epsilon,i}$). If the errors are biased we need to do compose the errors into an aggregate rotation and then take the N'th root. Composition would look like this:
$$mathbf{q}_{epsilon}=prod_{iin{1,..,N}}mathbf{q}_{epsilon,i}$$
Where the order of the product is chosen in some rational way (i.e. order matters). We would then take the root as
$$bar{mathbf{q}}_{epsilon} ={mathbf{q}_{epsilon}}^{frac{1}{N}}$$
To compute the root, just convert to axis-angle, divide the angle by N and then convert back.
The first thing that you need to realize is that the concept of an average does not directly apply here. This is for two reasons (1) rotations are not vectors and therefore they do not sum like you would expect for an average and (2) rotation composition is not commutative which means that when we do aggregate them, order matters. If the errors are small and are not biased (i.e. the sum would be small), then we can get an approximation by averaging the individual error terms ($mathbf{q}_{epsilon,i}$). If the errors are biased we need to do compose the errors into an aggregate rotation and then take the N'th root. Composition would look like this:
$$mathbf{q}_{epsilon}=prod_{iin{1,..,N}}mathbf{q}_{epsilon,i}$$
Where the order of the product is chosen in some rational way (i.e. order matters). We would then take the root as
$$bar{mathbf{q}}_{epsilon} ={mathbf{q}_{epsilon}}^{frac{1}{N}}$$
To compute the root, just convert to axis-angle, divide the angle by N and then convert back.
answered Nov 2 '16 at 1:17
Tpofofn
3,5571427
3,5571427
Hi tank you for your answer. In the meanwhile I have found and implemented this www.acsu.buffalo.edu/~johnc/ave_quat07.pdf and seems to do what I am looking for. I understand that the concept of average is not applicable to rotations, that's why I wrote here.
– MagoNick
Nov 2 '16 at 13:31
add a comment |
Hi tank you for your answer. In the meanwhile I have found and implemented this www.acsu.buffalo.edu/~johnc/ave_quat07.pdf and seems to do what I am looking for. I understand that the concept of average is not applicable to rotations, that's why I wrote here.
– MagoNick
Nov 2 '16 at 13:31
Hi tank you for your answer. In the meanwhile I have found and implemented this www.acsu.buffalo.edu/~johnc/ave_quat07.pdf and seems to do what I am looking for. I understand that the concept of average is not applicable to rotations, that's why I wrote here.
– MagoNick
Nov 2 '16 at 13:31
Hi tank you for your answer. In the meanwhile I have found and implemented this www.acsu.buffalo.edu/~johnc/ave_quat07.pdf and seems to do what I am looking for. I understand that the concept of average is not applicable to rotations, that's why I wrote here.
– MagoNick
Nov 2 '16 at 13:31
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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.
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%2f1984608%2faverage-of-3d-rotations%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