ROS 欧拉角

在ROS中,欧拉角(Euler angles)通常用于描述一个物体相对于参考坐标系的旋转。这种表示方法基于三个连续的旋转角度,每个角度对应于绕着特定轴线(通常是XYZ轴或ZYZ轴等不同顺序)的旋转。

ROS中,欧拉角四元数 均被用于表示坐标系中的旋转关系。欧拉角的定义有许多不同的形式,但在ROS中通常采用的绕x,y,z三个轴的旋转来表示物体旋转,具体为:绕Z轴旋转,称之为航向角,使用yaw表示;绕X轴旋转,称之为横滚角,使用roll表示;绕Y轴旋转,称之为俯仰角,使用pitch表示。

欧拉角包括横滚角(Roll)俯仰角(Pitch)航向角(Yaw)。这三种角度分别表示物体绕自身三个坐标轴进行的旋转:

横滚角:沿物体的X轴(左右方向),也称为偏航轴。

俯仰角:沿物体的Y轴(前后方向),也称为升降轴。

航向角:沿物体的Z轴(上下方向),也称为滚动轴。

在ROS中的tf库中,欧拉角被用来表示三维空间中刚体的运动。通常有两种类型的欧拉角:

静态欧拉角:也称为外积旋转向量、固定坐标系下的欧拉角或Tait-Bryan角。这些是围绕世界坐标系(全局坐标系)的X、Y和Z轴进行的旋转。当使用这种方式表示时,物体本身的坐标系会随着每次旋转而改变。

动态欧拉角:也称为内积旋转向量或移动坐标系下的欧拉角。这些是围绕物体自身的坐标系的X、Y和Z轴进行的旋转。在这种情况下,物体自身的坐标系保持不变,而是世界坐标系在变化。

ROS中的欧拉角转换通常涉及到以下函数:

tf2::Quaternion

表示四元数。

tf2::Matrix3x3

用于表示旋转矩阵。

tf2::fromMsg(const geometry_msgs::Quaternion &msg)

将 ROS 消息格式的四元数转换为 TF 格式。

tf2::toMsg(const tf2::Quaternion &q)

将 TF 格式的四元数转换为 ROS 消息格式。

tf2::convertRotationToRPY(const tf2::Quaternion &quat, double& roll, double& pitch, double& yaw)

将四元数转换为 Roll-Pitch-Yaw(RPY)欧拉角。

tf2::convertRPYToRotation(double roll, double pitch, double yaw, tf2::Quaternion &quat)

将 Roll-Pitch-Yaw(RPY)欧拉角转换为四元数。

tf2_ros::Buffer

提供了缓存和查询TF数据的功能。

tf2_ros::TransformListener

监听TF消息并更新缓冲区中的变换数据。

tf2_ros::Buffer.lookupTransform

从缓冲区中查找给定时间戳的坐标系之间的变换。

使用这些函数时,需要包含相应的头文件,例如 <tf2_geometry_msgs/tf2_geometry_msgs.h>。

需要注意的是,不同旋转顺序的欧拉角是不同的。例如,在一些代码中,可能使用的是z-y'-x''(偏航、俯仰、滚转)作为欧拉角的旋转顺序。

此外,ROS中的欧拉角可以分为绕定轴绕动轴的变换方式,当没有指定Euler时,默认是按定轴转动,矩阵依次左乘。若函数的名字中有Euler,则表示为绕动轴转动的方式,矩阵依次右乘。

相关推荐
PascalXie30 分钟前
人形机器人的“眼睛“:多目视觉方案怎么选?
计算机视觉·机器人
广州虚拟动力-动捕&虚拟主播41 分钟前
产教融合,具身智能数据采集实训室打造五大真实场景
机器人
微信开发api1 小时前
微信iPad协议怎么用?基于协议的二次开发实践
微信·机器人·ipad
QYR-分析1 小时前
机器人精密运动升级,机器人关节动态旋转密封件行业全景市场报告
人工智能·机器人
CoderYanger1 小时前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
QYRdata2 小时前
年均增速24.2%!机器人数据湖未来六年增长动能强劲
网络·机器人·服务发现
伞伞悦读2 小时前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json
CCCCCCCCharlie2 小时前
Linux进程控制四大核心操作
linux·开发语言
Brilliantwxx3 小时前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件
workflower3 小时前
SSH(Struts+Spring+Hibernate)
人工智能·机器学习·机器人·云计算·无人机