【总结学习】ROS——TF tree

ROS机器狗开发,TF tree 坐标转化
摘要由CSDN通过智能技术生成


近期进行了机器人相关的项目,其中涉及了TF tree的概念,查阅浏览了相关材料,准备把相关知识总结一下,到时候也方便自己查看,若有侵权,实在抱歉,请联系我进行删除,感谢~

最重要的关键点

坐标系转化

通常来说 geometry_msgs/TransformStamped.msg 定义了两个坐标系的转换关系,在 TransformStamped 下Header 中的 frame_id 表示的是父节点, 与 Header 同一级别的 child_frame_id 表示的子节点。父节点与子节点在 TF tree 关系图中表示为,父节点——箭头指向——子节点 ,这也有助于根据 rqt_graph 中出现的节点图来判断节点之间的关系。

那么在 TransformStamped 中另外一个重要的部分是 transform ,官方对其描述为 # This represents the transform between two coordinate frames in free space,也就是说在这一部分中定义了两个坐标系的转换关系,具体地 transform 由 translation 以及 rotation 组成,分别代表了平移和旋转,因为任意两个坐标系都可以通过有限的平移和转旋所重合。

重点!!那么上面所说的 TransformStamped 描述的是 父节点中的坐标系向子节点坐标系转换呢,还是子节点内坐标系向父节点所代表的坐标系转化呢。答案是,其作用是将在 子坐标系下的A点的坐标,转换到A点在父坐标系下的新坐标。所以在使用该msgs时一定要区分清楚,想要将某一点的坐标转换到哪一个坐标系下,这个想要转换到的坐标系就是你的父节点所代表的坐标系。同时, transform 部分如何赋值呢,具体地为,针对 子结点所代表的坐标系的原点,得到这个原点在父坐标系下的位置,以及旋转角度,然后将其坐标和转旋直接填入到 transform 内对应的 translation.x/y/z 以及 rotation.x/y/z/w 即可。

坐标转化 TransformPose

void transformPose(const std::string &target_frame, const geometry_msgs::PoseStamped &stamped_in, geometry_msgs::PoseStamped &stamped_out) const

target_frame 为目标坐标系。假如原始 pose 的 frame_id 为 “odom”,想要转化到 "

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值