Re: [eigen] Quaternion toRotationMatrix |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] Quaternion toRotationMatrix*From*: Christoph Hertzberg <chtz@xxxxxxxxxxxxxxxxxxxxxxxx>*Date*: Wed, 30 Sep 2015 18:14:34 +0200

This is basically what was suggested here: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=458

http://eigen.tuxfamily.org/bz/show_bug.cgi?id=560 Christoph On 30.09.2015 17:38, Gabriel wrote:

*Hello,* I have the following suggestions for the function *toRotationMatrix()* for the *QuaternionBase* class: The function is shown here: http://pastebin.com/QPRANVU6 The documentation says that this function is undefined if a non unit quaternion is used! This is absolutely correct! The function so far implemented is equation 1.112 in http://snag.gy/J6rDH.jpg ( tilde is the skew-symetric matrix of a vector -> cross product) If we want to use the Eigen function *toRotationMatrix*() we need to normalize the quaternion beforehand which is expensive! A better way is to use equation 1.110 directly in http://snag.gy/J6rDH.jpg, which directly normalizes the quaternion but only needs the square norm of the quaternion "s" which is much cheaper. Equation 1.110 directly gives a proper rotation matrix! (orthogonal, and det(R)=1) I would provide the following adaption: *template<bool isQuaternionNormalized = false>** **QuaternionBase<...>::***toRotationMatrix*()* where *toRotationMatrix**<true>* -> same function as already implemented (user should use this if quaternion is already normalized) * **toRotationMatrix**<false>* -> no normalized quaternion is given as argument, use an implementation which uses equation 1.110 in http://snag.gy/J6rDH.jpg Maybe the default behavior should be "true" so there is no change to the interface for the user who used these functions.... *BR Gabriel Nützi** *

-- Dipl. Inf., Dipl. Math. Christoph Hertzberg Universität Bremen FB 3 - Mathematik und Informatik AG Robotik Robert-Hooke-Straße 1 28359 Bremen, Germany Zentrale: +49 421 178 45-6611 Besuchsadresse der Nebengeschäftstelle: Robert-Hooke-Straße 5 28359 Bremen, Germany Tel.: +49 421 178 45-4021 Empfang: +49 421 178 45-6600 Fax: +49 421 178 45-4150 E-Mail: chtz@xxxxxxxxxxxxxxxxxxxxxxxx Weitere Informationen: http://www.informatik.uni-bremen.de/robotik

**Follow-Ups**:**Re: [eigen] Quaternion toRotationMatrix***From:*Gabriel

**References**:**[eigen] 3.3-alpha1 released!***From:*Gael Guennebaud

**Re: [eigen] 3.3-alpha1 released!***From:*Sergiu Dotenco

**Re: [eigen] 3.3-alpha1 released!***From:*Gael Guennebaud

**[eigen] Quaternion toRotationMatrix***From:*Gabriel

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] Quaternion toRotationMatrix** - Next by Date:
**Re: [eigen] Quaternion toRotationMatrix** - Previous by thread:
**Re: [eigen] Quaternion toRotationMatrix** - Next by thread:
**Re: [eigen] Quaternion toRotationMatrix**

Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |