Average of 3D rotations












1














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










share|cite|improve this question














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.




















    1














    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










    share|cite|improve this question














    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.


















      1












      1








      1







      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










      share|cite|improve this question













      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






      share|cite|improve this question













      share|cite|improve this question











      share|cite|improve this question




      share|cite|improve this question










      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.
























          1 Answer
          1






          active

          oldest

          votes


















          0














          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.






          share|cite|improve this answer





















          • 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











          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%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









          0














          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.






          share|cite|improve this answer





















          • 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
















          0














          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.






          share|cite|improve this answer





















          • 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














          0












          0








          0






          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.






          share|cite|improve this answer












          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.







          share|cite|improve this answer












          share|cite|improve this answer



          share|cite|improve this answer










          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


















          • 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


















          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.





          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.




          draft saved


          draft discarded














          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





















































          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