ros之tf经验总结

ROS中的TF用于处理坐标变换,确保导航和定位的准确性。它包括map、odom和base_link三个关键坐标系,odom用于补偿里程计误差。文章介绍了TF的基本概念、代码应用,如sendTransform,以及tf工具的使用,如tf_echo和rqt_tf_tree。同时分享了在roslibjs中获取TF信息的方法,但未提及rosjava的相关实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.概念

搞ros都离不开tf,当建立一个机器人模型时,第一步就是要确定机器人的tf结构。

以kobuki导航运行为例,首先是

map:地图坐标,固定坐标系

odom : 机器人初始位置坐标,固定坐标系

base_link:机器人中心位置坐标

一般想法认为有map和base_link就可以了,而从网上的各种资料看来,多出来的odom是因为:在机器人导航运行过程中会出现视觉定位偏差,里程计误差积累等等问题,当算法纠正这些偏差时,base_link会出现机器人中心的位置在map坐标系上不连续,发生跳跃,而有了odom,不管算法如何纠正,base_link相对于odom是连续的,不会发生太大跳跃,从而对导航/定位过程中的雷达扫描收敛,设置区间速度等等方面不会发生突变。

参考链接:

http://www.ros.org/reps/rep-0105.html

https://answers.ros.org/question/44584/frames-definition-odom-and-map/

2.tf代码运用

熟悉以下几个方法的运用就可以了。

广播:sendTransform

#include <tf/transform_broadcaster.h>
tf::TransformBroadcaster broadcaster;
broadcaster.sendTransform(
tf::StampedTransform(tf::Transform(tf::Quaternion(0, 0, 0, 1), tf::Vector3(0.1, 0.0, 0.2)),ros::Time::now(),"base_link", "base_laser"));
监听:listener.transformPoint


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值