ROS C++ tf库具有哪些功能?

本文详细介绍了C++中TF库提供的数据类型,包括向量、点、四元数等,并列举了数据转换相关API,如四元数、旋转矩阵、欧拉角之间的转换,适用于机器人操作系统的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++中给我们提供了很多TF的数据类型,如下表:

名称数据类型
向量tf::Vector3
tf::Point
四元数tf::Quaternion
3*3矩阵(旋转矩阵)tf::Matrix3x3
位姿tf::pose
变换tf::Transform
带时间戳的以上类型tf::Stamped
带时间戳的变换tf::StampedTransform

在tf中与数据转化的数据都类型都包含在#include<tf/tf.h>头文件中;

tf主要的工作就是数据转换,常见的是四元数、旋转矩阵、欧拉角这三种数据之间的转换;

数据转换相关API都存在tf_demo中的coordinate_transformation.cpp当中,其中列表如下:

编号函数名称函数功能
1.1tfScalar::tfDot(const Vector3 &v1, const Vector3 &v2)计算两个向量的点积
1.2tfScalar length()计算向量的模
1.3Vector3 &normalize()求与已知向量同方向的单位向量
1.4tfScalar::tfAngle(const Vector3 &v1, const Vector3 &v2)计算两个向量的夹角
1.5tfScale::tfDistance(const Vector3 &v1, const Vector3 &v2)计算两个向量的距离
1.6tfScale::tfCross(const Vector3 &v1,const Vector3 &v2)计算两个向量的乘积
2.1setRPY(const tfScalar& yaw, const stScalar &pitch, const tfScalar &roll)由欧拉角计算四元数
2.2Vector3 getAxis()由四元数得到旋转轴
2.3setRotation(const Vector3 &axis, const tfScalar& angle)已知旋转轴和旋转角估计四元数
3.1setRotaion(const Quaternion &q)通过四元数得到旋转矩阵
3.2getEulerYPR(tfScalar &yaw, tfScalar &pitch, tfScalar &roll )由旋转矩阵求欧拉角

 

以上程序可能是由旧版的ROS tf包提供,可能存在找不到的情况,最新版的包在文件夹名称和函数名称上可能都有所更新!!!最新的资源请参考:

conversions code API.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值