# Revision history [back]

There's a geometry_msgs/msg/quaternion.hpp that is the replacement of geometry_msgs/Quaternion.h in ros1, tf2/LinearMath/Quaternion.h is not a message, it doesn't have a changed path or capitalization or extension (yet?) from ros1 to ros2. This http://wiki.ros.org/tf2/Tutorials/Quaternions#Components_of_a_quaternion still applies:

ROS uses two quaternion datatypes: msg and 'tf.' To convert between them in C++, use the methods of tf/transform_datatypes.

There's a geometry_msgs/msg/quaternion.hpp geometry_msgs/msg/quaternion.hpp that is the replacement of geometry_msgs/Quaternion.h geometry_msgs/Quaternion.h in ros1, tf2/LinearMath/Quaternion.h tf2/LinearMath/Quaternion.h is not a message, it doesn't have a changed path or capitalization or extension (yet?) from ros1 to ros2. This http://wiki.ros.org/tf2/Tutorials/Quaternions#Components_of_a_quaternion still applies:

ROS uses two quaternion datatypes: msg and 'tf.' To convert between them in C++, use the methods of tf/transform_datatypes.

There's a geometry_msgs/msg/quaternion.hpp that is the replacement of geometry_msgs/Quaternion.h in ros1, tf2/LinearMath/Quaternion.h is not a message, it doesn't have a changed path or capitalization or extension (yet?) from ros1 to ros2. ros2 so the same include will work. This http://wiki.ros.org/tf2/Tutorials/Quaternions#Components_of_a_quaternion still applies:

ROS uses two quaternion datatypes: msg and 'tf.' To convert between them in C++, use the methods of tf/transform_datatypes.

There's a geometry_msgs/msg/quaternion.hpp that is the replacement of geometry_msgs/Quaternion.h in ros1, ros1. tf2/LinearMath/Quaternion.h is not a message, it doesn't have a changed path or capitalization or extension (yet?) from ros1 to ros2 so the same include will work. This http://wiki.ros.org/tf2/Tutorials/Quaternions#Components_of_a_quaternion still applies:

ROS uses two quaternion datatypes: msg and 'tf.' To convert between them in C++, use the methods of tf/transform_datatypes.