// 1. 创建广播对象 transform_broadcaster
// 2. 创建变换关系 transform R_parent_child
// 3. 广播这个变换关系,并且告知tf树谁是parent,谁是child
究竟是谁到谁的变换,取决于第3步中你想把谁填在前面,填在后面,上面的步骤给出了一个变换例子。
参考:
每个监听者都有一个缓冲区,用于存储来自不同广播者广播的变换关系。
对于许多任务,更容易在局部坐标系思考,因此,我们只需要考虑相邻坐标系的变换,不同坐标系的变换由tf树内部计算得到!!!
tf树建立了一个 树形坐标结构,它不允许在坐标系结构中出现闭环。这意味着一个坐标系仅仅只有一个父结点,但是可以有多个子结点。
就像1中一样广播一个transform即可。
推荐使用ros::Time(0),这会自动等待获取最新帧变换,最新帧变换传过来需要几毫秒。
参考:
[2].浅析TF树中ros::Time(0)和ros::Time::now()_光头明明的博客-CSDN博客_ros::time(0)
rosrun rqt_tf_tree rqt_tf_tree
rosrun tf tf_echo /world /turtle1上述输出的坐标变换,是R_world_turtle,依次类推