四元数转欧拉角

1、四元数:ROS使用四元数表示里程计orientation(odom)信息,来跟踪和表示旋转。

对于四元数 ROS 有两种数据类型:msg 和 tf

msg geometry_msgs::Quaternion quat_msg 这种声明的就是 msg 类型

代码对应内容:

geometry_msgs::PoseStamped pose;

pose.pose.position.x=odom.pose.pose.position.x;

tf ::Quaternion quater 这种声明的就是 tf 类型

2、将四元数转换为RPY欧拉角坐标系下的角度

在导航中,很多时候需要rpy表示更加直观方便,因此四元数转换为(围绕X轴的滚动)/(围绕Y轴的后续俯仰)/(随后围绕Z轴的偏航),计算相应角度进行目标旋转,最后注意角度为弧度。

ROS中quaternion四元数和RPY欧拉角转换函数头文件为:

#include <tf/tf.h>

#include "tf/transform_datatypes.h"

将msg类型的四元数转换为tf类型的四元数为:

 tf::quaternionMsgToTF(odom.pose.pose.orientation, quat);

将四元数转换为欧拉角

double roll, pitch, yaw;
tf::Matrix3x3(quat).getRPY(roll, pitch, yaw);

因为转换后为弧度,因此转换为角度

angle1 = yaw * 180 / PI ;

本文仅代表个人见解,若有不当之处,希望大家指出

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值