[Rock-dev] Problem with mixed sizes of typekit types

Alexander Fabisch Alexander.Fabisch at dfki.de
Fri Jun 9 14:06:11 CEST 2017


Hi Dennis,

I think I have a similar problem: the problem seems to be the offset of 
strings, right? I assume that if you subtract the offset of sourceFrame 
from the offset of targetFrame you SHOULD get something like the size of 
the the type that has been used to encode the length of the string (8 
Byte vs. 32 Byte)? I have a logfile that looks like type a and a logfile 
that looks like type b but the actual length is encoded in the first 8 
Byte of the string in both cases. You can check that if you look 
directly at the binary data in the logfile with "hexdump -C <file>":

 > 00000820  ...  0c 00 00 00 00 00 00 00  |9...............| <- 0c 00 
00 00 00 00 00 00 == 12
 > 00000830  68 65 6c 6c 6f 77 20 77  6f 72 6c 64 02 ff 01 00 |hellow 
world....|

Best regards,

Alexander


Am 09.06.2017 um 12:35 schrieb Dennis Hemker:
> Hey Guys,
>
> I encountered a weird problem during the use of the C++-based
> rock-replay2, which uses the local typekit definitions to load
> marshalled types from the log files. In some logfiles, the local and the
> marshalled typekit type mismatch in their sizes, for instance the
> RigidBodyState_m type. The log was recorded with the Sherpa-Bot in Utah:
>
> type a:
> compound /base/samples/RigidBodyState_m [416] {
>         (+0) compound /base/Time [8] {
>           (+0) sint(8) (/int64_t) microseconds
>         }; time
>         (+8) container /std/string</int8_t> sourceFrame
>         (+16) container /std/string</int8_t> targetFrame
>         (+24) compound /wrappers/Matrix</double,3,1> [24] {
>           (+0) array[3] of
>             float(8) (/double) data
>         }; position
>         (+48) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_position
>         (+120) compound /wrappers/Quaternion</double> [32] {
>           (+0) array[3] of
>             float(8) (/double) im
>           (+24) float(8) (/double) re
>         }; orientation
>         (+152) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_orientation
>         (+224) compound /wrappers/Matrix</double,3,1> [24] {
>           (+0) array[3] of
>             float(8) (/double) data
>         }; velocity
>         (+248) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_velocity
>         (+320) compound /wrappers/Matrix</double,3,1> [24] {
>           (+0) array[3] of
>             float(8) (/double) data
>         }; angular_velocity
>         (+344) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_angular_velocity
>       };
> type b:
> compound /base/samples/RigidBodyState_m [464] {
>         (+0) compound /base/Time [8] {
>           (+0) sint(8) (/int64_t) microseconds
>         }; time
>         (+8) container /std/string</int8_t> sourceFrame
>         (+40) container /std/string</int8_t> targetFrame
>         (+72) compound /wrappers/Matrix</double,3,1> [24] {
>           (+0) array[3] of
>             float(8) (/double) data
>         }; position
>         (+96) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_position
>         (+168) compound /wrappers/Quaternion</double> [32] {
>           (+0) array[3] of
>             float(8) (/double) im
>           (+24) float(8) (/double) re
>         }; orientation
>         (+200) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_orientation
>         (+272) compound /wrappers/Matrix</double,3,1> [24] {
>           (+0) array[3] of
>             float(8) (/double) data
>         }; velocity
>         (+296) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_velocity
>         (+368) compound /wrappers/Matrix</double,3,1> [24] {
>           (+0) array[3] of
>             float(8) (/double) data
>         }; angular_velocity
>         (+392) compound /wrappers/Matrix</double,3,3> [72] {
>           (+0) array[9] of
>             float(8) (/double) data
>         }; cov_angular_velocity
>       };Checking /body_joint.state
>
> Differences can be found in the source- and targetFrame definitions.
>
> Thank you and best regards,
>
> Dennis
>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev

-- 
  Alexander Fabisch
  Sustained Interaction and Learning

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

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