[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