# What is the difference between geometry and tf quaternions?

I am trying to create a geometry_msgs::Quaternion from two other (to create an Odometry message). I've found that tf::Quaternion is a btQuaternion but it is not a geometry_msgs one. I would like to know which is the difference and how can I work if I only have geometry_msgs::Quaternion inputs and outputs. Thanks!