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

Alexander Duda Alexander.Duda at dfki.de
Wed May 21 12:34:10 CEST 2014


On 05/21/2014 11:55 AM, Javier Hidalgo Carrió wrote:
> Hi Alex,
>
> I hope this does not change how the TransformerGraph of gui/vizkit3d
> visualizes the transformation matrices.
The visualization stays the same. But the interpretation of the 
transformer configuration changes for vizkit3d only.

Former:
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),"world"
=> "body")

must no be written as:
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")

to have the same visualization in vizkit3d (this is aligned with the 
transformer)

Greets Alex

> 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
>>
>>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev


-- 
Dipl.-Ing. Alexander Duda
Unterwasserrobotik
Robotics Innovation Center

Hauptgeschäftsstelle Standort Bremen:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 1
  28359 Bremen, Germany

  Tel.:     +49 421 178 45-6620
  Zentrale: +49 421 178 45-0
  Fax:      +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
  E-Mail:   Alexander.Duda 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



More information about the Rock-dev mailing list