[Rock-dev] vizkit3d: fixing interpretation of transformer configuration

Javier Hidalgo Carrió javier.hidalgo_carrio at dfki.de
Wed May 21 11:55:53 CEST 2014


Hi Alex,

I hope this does not change how the TransformerGraph of gui/vizkit3d 
visualizes the transformation matrices.
Because from my point of view,  the driver/transformer is the one which 
has a confusing way of interpreting transformations.

Transformation is just a matrix which express one frame with respect to 
another. That is all!
Therefore, this is what we should specify in the transformer. Meaning 
that, for example:
T_2_3 is a matrix which express frame_3 w.r.t frame_2. In algebra, it 
means the base of the subspace frame_3 is expressed (columns vectors) in 
the base of the subspace of frame_2.
Another thing is what the user can do with such a matrix. For example: 
v2 = T_2_3 * v3   (v2 is vector expressed in frame2 and v3 is a vector 
expressed in frame_3). Which convert v3 into v2 and here is when the 
different interpretation comes.

Thanks for the work,

Javier.


On 05/21/2014 10:27 AM, Alexander Duda wrote:
> Hi,
>
> there is a change on master how vizkit3d interprets the transformer
> configuration. The change is necessary because vizkit3d and
> driver/transfomer were using different ones:
>
> Vizkit3d and driver/transformer are now using the following convention:
> * All transformations are defined as SOURCE_IN_TARGET frame.
>
> Example:
> static_transform(Eigen::Vector3.new(0.0,0.0,3.0),
> Eigen::Quaternion.from_euler(Eigen::Vector3.new(Math::PI,0,0),2,1,0),"body"
> => "world")
>
> Meaning:
> The defined transformation T describes the transformation to convert
> samples taken in a body coordinate system to a world coordinate system.
> This is also the reason for its name body_in_world:
> points_in_body*body_in_world=points_in_world
>
> At the same time the transformation T also describes the translation and
> rotation to convert a world coordinate system to a body coordinate system:
> body = world*T =  world*world_to_body = world*body_in_world
> world_to_body = body_to_world^(-1) = body_in_world
>
> Greets Alex
>
>



More information about the Rock-dev mailing list