[Rock-dev] Problem with mixed sizes of typekit types
    Dennis Hemker 
    dennis.hemker at dfki.de
       
    Fri Jun  9 12:35:50 CEST 2017
    
    
  
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
    
    
More information about the Rock-dev
mailing list