有关ROS中的TF坐标变换工具包的使用体会

基本上,在使用ROS遇到多个坐标系的时候,都不需要手工计算坐标变换关系,比如各种正弦余弦,四元数,变换矩阵等。只要坐标系之间相对位姿(pose)清楚,就都可以用TF发布坐标变换或坐标系的方法完成。这样甚至连Eigen库都用不着。

怎样判断各个坐标系之间的相对位姿都清楚呢?只要能徒手画出TF树就好,就像 使用 $ rosrun tf view_frames 命令生成的PDF里面展示的那样,所有坐标系能串起来而没有孤立坐标系,就可以了。因此画出完整的TF树也是ROS里面理清坐标变换关系/进行变换的第一步。

发布了所有需要的TF后,用到坐标变换时只要用 tf::TransformListener 获取相应的变换就好了。另外,对于有 stamp 的 消息类型,可以使用 tf::MessageFilter (http://wiki.ros.org/tf/Tutorials/Using%20Stamped%20datatypes%20with%20tf%3A%3AMessageFilter),使得程序更简单且健壮。

你可能感兴趣的:(占据栅格地图,ROS)