【无标题】

StampedTransform类

  • tf::StampedTransform 是c++类,继承tf::Transform

  • tf::Transform类中有旋转平移两个变量:
    ///Storage for the rotation
    Matrix3x3 m_basis;
    ///Storage for the translation
    Vector3 m_origin;

  • 访问:可以通过
    getOrigin()访问平移m_origin,
    getRotation()访问旋转m_basis(以四元数形式访问);
    getBasis()访问旋转m_basis(以旋转矩阵形式访问);

  • 设置值:可以通过
    setRotation( tf::Quaternion(x,y,z,w));设置旋转
    setOrigin( tf::Vector3(x,y,z) );设置平移

  • 类重载*,可以通过乘vector,实现3d点坐标变化

        tf::StampedTransform& in_transform
        tf::Vector3 tf_point(in_point.x, in_point.y, in_point.z);
        tf::Vector3 tf_transformed = in_transform * tf_point;
    
  • 其中tf::Quaternion是tf自定义的四元数类
    tf::Vector3是tf自定义的vector类
    tf::Matrix3x3是tf自定义的三维vector类

注意:tf::StampedTransform 和 geometry_msgs/TransformStamped.msg不同,tf::StampedTransform只能用在C++里,是C++的一个类,一种数据格式,不是一个消息。geometry_msgs/TransformStamped.msg是一个message,依赖于ROS,与语言无关(即是无论和种语言C++、Python、Java等,都可以发送该消息)。参考:

tf::StampedTransform 一般用在tf库。tf库是ROS中的旧版坐标变换库,用于处理坐标系之间的转换和广播。它是基于坐标树(Coordinate Tree)的概念,可以管理多个坐标系之间的变换关系。tf库包含了坐标变换的核心功能,如广播坐标变换、查询坐标变换等。它使用TransformBroadcaster和TransformListener实现了坐标系的广播和监听。

一般使用 void lookupTransform(const std::string& target_frame, const std::string& source_frame, const ros::Time& time, StampedTransform& transform)监听

transform_listener.lookupTransform(target_frame, source_frame, ros::Time(0), transform);

geometry_msgs/TransformStamped.msg一般用于tf2。tf2是ROS中的新版坐标变换库,也是现在推荐使用的库。tf2库在设计上更加模块化、灵活且可扩展,具有更好的性能和稳定性。它引入了更多的功能和改进,例如支持更多数据类型、更精确的坐标变换组件(TransformStamped)、更稳定的坐标缓存等,同时还可以与ROS的时间和消息系统更好地集成。与tf类似,tf2还提供了框架来广播和监听坐标变换,通过tf2_ros包来提供ROS相关的接口。

一般使用geometry_msgs::TransformStamped tfs = buffer.lookupTransform("son2","son1",ros::Time(0));监听

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值