[Bug 1037] New: GetRot() : angle-axis calculation not robust

http://bugs.orocos.org/show_bug.cgi?id=1037

Summary: GetRot() : angle-axis calculation not robust
Product: KDL
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P3
Component: Primitives
AssignedTo: orocos-dev [..] ...
ReportedBy: bert [dot] willaert [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

KDL::Rotation rot = KDL::Rotation::Quaternion(x,y,z,w);
KDL::vector axis = rot.getRot();

Two more or less the same quaternions give a completely different result
-------------------------------
45.085 [ Warning][Logger] Commanded Quaternion: 0.999991 , -0.00419755 ,
-3.73226e-16 , 1.04598e-16
45.085 [ Warning][Logger] Commanded axis: 4.29121e-12 , -1.80127e-14 , 0
-------------------------------
47.162 [ Warning][Logger] Commanded Quaternion: 0.999969 , -0.00783564 ,
3.20454e-16 , 5.25546e-17
47.162 [ Warning][Logger] Commanded axis: -3.1415 , 0.0246159 , -nan

It turned out to be a problem with the epsilon value of
getRotAngle(axis,epsilon)

For epsilon bigger than 0.001 it works fine!

Ruben Smits's picture

[Bug 1037] GetRot() : angle-axis calculation not robust

http://bugs.orocos.org/show_bug.cgi?id=1037

Ruben Smits <ruben [dot] smits [..] ...> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |ruben.smits@intermodalics.e
| |u
Resolution| |FIXED