6 #ifndef YARP_ROSMSG_IMPL_HELPER_H
7 #define YARP_ROSMSG_IMPL_HELPER_H
24 constexpr
double PI = 3.1415926535897932384626433;
29 return degrees / 180.0 *
PI;
34 for (
size_t i = 0; i < degrees.size(); i++) {
44 quaternion[0] = -sin(eulerXYZ[0]/2) * sin(eulerXYZ[1]/2) * sin(eulerXYZ[2]/2) + cos(eulerXYZ[0]/2) * cos(eulerXYZ[1]/2) * cos(eulerXYZ[2]/2);
45 quaternion[1] = sin(eulerXYZ[0]/2) * cos(eulerXYZ[1]/2) * cos(eulerXYZ[2]/2) + cos(eulerXYZ[0]/2) * sin(eulerXYZ[1]/2) * sin(eulerXYZ[2]/2);
46 quaternion[2] = -sin(eulerXYZ[0]/2) * cos(eulerXYZ[1]/2) * sin(eulerXYZ[2]/2) + cos(eulerXYZ[0]/2) * sin(eulerXYZ[1]/2) * cos(eulerXYZ[2]/2);
47 quaternion[3] = sin(eulerXYZ[0]/2) * sin(eulerXYZ[1]/2) * cos(eulerXYZ[2]/2) + cos(eulerXYZ[0]/2) * cos(eulerXYZ[1]/2) * sin(eulerXYZ[2]/2);
52 for(
int i=0; i<4; i++)
54 norma += quaternion[i] * quaternion[i];
58 if((norma -1) >= 0.05)
60 yError(
"convertEulerAngleYXZrads_to_quaternion: Error on quaternion conversion.");
bool convertEulerAngleYXZdegrees_to_quaternion(double *eulerXYZ, double *quaternion)
bool convertEulerAngleYXZrads_to_quaternion(double *eulerXYZ, double *quaternion)
double convertDegreesToRadians(double degrees)
convert degrees to radiants for ROS messages