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.

ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.