ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
You can simply remove the .asBt()
part. Multiplication of tf::StampedTransform
by tf::Transform
will return tf::Transform
.
2 | No.2 Revision |
You can simply remove the .asBt()
part. Multiplication of tf::StampedTransform
by tf::Transform
will return tf::Transform
.
EDIT
Both Bullet and tf have almost identical interfaces, but the type names differ. So you have to convert everything using POD-types, for example floats array.
To convert btTransform
to tf::Transform
do something like this:
btTransform bt_transform;
tf::Transform tf_transform;
float gl_matrix[15];
bt_transform.getOpenGLMatrix(gl_matrix);
tf_transform.setFromOpenGLMatrix(gl_matrix);
Or you can do this component-wise by separately extracting quaternion and origin vector from Bullet transform and setting them back to tf transform. But I think the above method is cleaner.