tf变换

1. TF库的目的是实现系统中任一个点在所有坐标系之间的坐标变换,也就是说,只要给定一个坐标系下的一个点的坐标,就能获得这个点在其他坐标系下的坐标。

使用tf功能包,A:监听tf变换,接收并缓存系统中发布的所有参考系变换,并从中查询所需要的参考系变换。

                       B:广播tf变换,向系统中广播参考系之间的坐标变换关系。系统中更可能会存在多个不同部分的tf变换广播,每个广播都可以直接将参考系变换关系直接插入tf树中,不需要进行同步。

数据结构,基本的数据类型有:Quaternion, vector, point, pose, transform

其中,quaternion表示四元数,vector3是一个3*1的向量,point表示一个点的坐标,Pose是位姿(包括坐标及方向),transform是一个转换的模板

tf::Stamped <T>

是一种包含了除了transform的其它几种基本的数据结构的一种数据结构

举个例子,在机器人的定位领域有AMCL算法,这个算法是根据给定的地图,结合粒子滤波获取最佳定位点Mp,这个定位点是相对于地图map上的坐标,也就是base_link(机器人基坐标系)相对map上的坐标,我们知道odom的原点是机器人启动时刻的位置,它在map上的位置是未知的,但是AMCl可以根据最佳粒子的位置推算出odom->map(就是说通过最佳粒子推算出机器人在地图中的位置)的tf转换信息并发布到tf主题上,因为base_link->odom的tf转换信息是每时每刻都在发布的,所以它是已知的,这里的tf关系

map->base_link(就是地图中机器人的位置,根据最佳粒子计算的)

base_link->odom(这是现实中机器人的位姿可以说是里程计的信息)

扫描二维码关注公众号,回复: 4070474 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_38145317/article/details/83956463