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@dfki.de http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev