[Rock-dev] RigidBodyState detecting invalid orientations

Felix Rehrmann felix.rehrmann at dfki.de
Mon Jul 2 09:08:07 CEST 2012


Hi all,

I would like to propose to have a seperate function like 
isUnitQuaternion or similiar.

One says that the rotation is not set,often because only position data 
are transmitted.
The other one is to check only the quaternion, which can also be 
non-unit for numeric reasons.

The user then would have the possiblity to decide what he wants to know. 
Furthermore
this function could have the accuracy as argument: bool isUnitQuaternion 
(double accuracy = 1e-6).
I would guess it could be hard to find a fixed value here. I would 
consider some deviation from 1.0
fine for further computation (e.g. like 0.9999something ).

So long!
     Felix


Am 29.06.2012 18:43, schrieb Janosch Machowinski:
> Uhm,
>
> fabs(ori.squaredNorm() -1) < 1e-6
>
> Just as an idea ;-)
> Greetings
>     Janosch
>
> On 29.06.2012 17:58, Javier Hidalgo Carrió wrote:
>> On 06/29/2012 05:20 PM, Alexander Duda wrote:
>>> On 06/29/2012 05:02 PM, Javier Hidalgo Carrió wrote:
>>>> +1
>>>> Since Orientation is a Eigen::Quaternion we could even use the 
>>>> norm() method.
>>>>
>>>> Javier.
>>>>
>>>> Scalar 
>>>> <http://eigen.tuxfamily.org/dox/classEigen_1_1QuaternionBase.html#a844358c46408e878e60c4026c52eb1e9> 
>>>> norm 	( 	
>>>> 	) 	const|[inline]|
>>>>
>>>> *Returns:*
>>>>     the norm of the quaternion's coefficients 
>>>>
>>>> *See also:*
>>>>     QuaternionBase::squaredNorm()
>>>>     <http://eigen.tuxfamily.org/dox/classEigen_1_1QuaternionBase.html#a8699d72c996ca6cb4673e810fe3a616c>,
>>>>     MatrixBase::norm()
>>>>     <http://eigen.tuxfamily.org/dox/classEigen_1_1MatrixBase.html#a0be1b433c65ce9d92c81a4718daf54e5>
>>>>
>>>>
>>>>
>>> I think you do not gain so much from this functions as you will get 
>>> a scalar which you have to sum anyway. Do you know if there is a 
>>> function which checks if the quaternion is valid?
>>>
>> I don't know any valid method. Having no-normalized quaternion is 
>> sometimes common (e.g, passing a quaternion through a EKF) and 
>> normalization needs to be done.
>>> fabs(ori.w()*ori.w()+ori.x()*ori.x()+ori.y()*ori.y()+ori.z()*ori.z()-1.0) 
>>> < 1e-6
>>>
>> What should be the error threshold to define if a quaternion is valid 
>> or not? Perhaps norm() does some round to 1.00...
>>> Alex
>>>> On 06/29/2012 04:53 PM, Alexander Duda wrote:
>>>>> Hi,
>>>>>
>>>>> the base type samples::RigidBodyState has a function to check if the
>>>>> orientation is valid.
>>>>> At the moment it only checks if the values of the quaternion
>>>>> representing the orientation are different to NaN.
>>>>>
>>>>> I propose that we also add a check that the quaternion is an unit
>>>>> quaternion because otherwise wrongly initialised orientations might lead
>>>>> to strange transformation matrices and vanishing objects in OSG.
>>>>>
>>>>> Any opinions?
>>>>>
>>>>> Alex
>>>>>
>>>>>           static bool isValidValue(base::Orientation const& ori)
>>>>>           {
>>>>>               return !base::isNaN(ori.w()) &&
>>>>>                   !base::isNaN(ori.x()) &&
>>>>>                   !base::isNaN(ori.y()) &&
>>>>>                   !base::isNaN(ori.z()) &&
>>>>>                   
>>>>> ori.w()*ori.w()+ori.x()*ori.x()+ori.y()*ori.y()+ori.z()*ori.z()-1e6 < 1;
>>>>>           }
>>>>>
>>>>
>>>>
>>
>>
>>
>> _______________________________________________
>> Rock-dev mailing list
>> Rock-dev at dfki.de
>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>
>
> -- 
>   Dipl. Inf. Janosch Machowinski
>   SAR- & Sicherheitsrobotik
>   
>   DFKI Bremen
>   Robotics Innovation Center
>   Robert-Hooke-Straße 5
>   28359 Bremen, Germany
>   
>   Phone: +49 (0)421 178 45-6614
>   Fax:   +49 (0)421 178 45-4150
>   E-Mail:robotik at dfki.de
>   
>   Weitere Informationen:http://www.dfki.de/robotik
>   -----------------------------------------------------------------------
>   Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
>   Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
>   Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
>   (Vorsitzender) Dr. Walter Olthoff
>   Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
>   Amtsgericht Kaiserslautern, HRB 2313
>   Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
>   USt-Id.Nr.:    DE 148646973
>   Steuernummer:  19/673/0060/3
>   -----------------------------------------------------------------------
>
>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev


-- 

  Felix Rehrmann
  Researcher
  
  DFKI Bremen
  Robotics Innovation Center
  Robert-Hooke-Straße 5
  28359 Bremen, Germany
  
  Phone: +49 (0)421 178 45-4129
  Fax:   +49 (0)421 218-64150
  E-Mail: felix.rehrmann at dfki.de
  
  Weitere Informationen: http://www.dfki.de/robotik
  -----------------------------------------------------------------------
  Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
  Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
  Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
  (Vorsitzender) Dr. Walter Olthoff
  Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
  Amtsgericht Kaiserslautern, HRB 2313
  Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
  USt-Id.Nr.:    DE 148646973
  Steuernummer:  19/673/0060/3
  -----------------------------------------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.dfki.de/pipermail/rock-dev/attachments/20120702/3a0a9d93/attachment.htm 


More information about the Rock-dev mailing list