26#include<dqrobotics/DQ.h>
28#include<rclcpp/rclcpp.hpp>
30#include<std_msgs/msg/header.hpp>
32#include<geometry_msgs/msg/point.hpp>
33#include<geometry_msgs/msg/point_stamped.hpp>
34#include<geometry_msgs/msg/quaternion.hpp>
35#include<geometry_msgs/msg/pose.hpp>
36#include<geometry_msgs/msg/pose_stamped.hpp>
37#include<geometry_msgs/msg/wrench.hpp>
38#include<geometry_msgs/msg/wrench_stamped.hpp>
39#include<geometry_msgs/msg/twist.hpp>
41using namespace DQ_robotics;
56DQ geometry_msgs_point_to_dq(
const geometry_msgs::msg::Point& msg);
64geometry_msgs::msg::Point dq_to_geometry_msgs_point(
const DQ& dq);
75DQ geometry_msgs_point_stamped_to_dq(
const geometry_msgs::msg::PointStamped& msg);
86geometry_msgs::msg::PointStamped dq_to_geometry_msgs_point_stamped(
const DQ& dq);
100DQ geometry_msgs_pose_to_dq(
const geometry_msgs::msg::Pose& msg);
111geometry_msgs::msg::Pose dq_to_geometry_msgs_pose(
const DQ& dq);
121DQ geometry_msgs_pose_stamped_to_dq(
const geometry_msgs::msg::PoseStamped& msg);
132geometry_msgs::msg::PoseStamped dq_to_geometry_msgs_pose_stamped(
const DQ& dq);
146DQ geometry_msgs_quaternion_to_dq(
const geometry_msgs::msg::Quaternion& msg);
158geometry_msgs::msg::Quaternion dq_to_geometry_msgs_quaternion(
const DQ& dq);
173void geometry_msgs_wrench_to_dq(
const geometry_msgs::msg::Wrench& msg, DQ& force, DQ& torque);
185geometry_msgs::msg::Wrench dq_to_geometry_msgs_wrench(
const DQ& force,
const DQ& torque);
196void geometry_msgs_wrench_stamped_to_dq(
const geometry_msgs::msg::WrenchStamped& msg, DQ& force, DQ& torque);
208geometry_msgs::msg::WrenchStamped dq_to_geometry_msgs_wrench_stamped(
const DQ& force,
const DQ& torque);
223void geometry_msgs_twist_to_dq(
const geometry_msgs::msg::Twist& msg, DQ& linear, DQ& angular);
235geometry_msgs::msg::Twist dq_to_geometry_msgs_twist(
const DQ& linear,
const DQ& angular);