kobuki中的tf解析

本文深入探讨了Kobuki机器人在ROS环境中的tf转换。内容包括连接和未连接Kobuki设备时的tf变化,odom的计算原理,以及如何通过robot_state_publisher和slam_gmapping维护和更新tf。同时提到了laser传感器的tf转换以及相关配置。

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

研究了很久的kobuki设备,这次一起来看看kobuki相关的tf

1.连接kobuki设备后看到的tf


启动命令

roslaunch turtlebot_bringup minimal.launch
rqt ;执行命令后点击窗口中的pluginsvi -> visualization -> tf 就可以看到图形化的tf


其中odom是由/mobile_base_nodelete_manager发出的,实际上由kobuki node发出的,而kobuki node是个nodelete,由mobile_base_nodelete_manager加载,故显示的是mobile_base_nodelete_manager。

odom由kobuki根据左右轮编码器信息和地盘参数(轮半径,轮间距)计算出来的robot实际运动的距离


nodelete相关可见文章:ros中的nodelet

mobile_base_nodelete_manager相关可见文章:turtlebot的mobile_base节点


2.不链接kobuki设备的tf


没有odom,因为kobuki driver读不到地盘信息,从而就不会发布odom transfrom

也就是说里面所有的tf信息,base_footprint,base_link和一些其他的设备关键点坐标的tf transform都由robot_state_publisher维护

其中base_link是robot硬件上的基础坐标系,robot上会有很多个关键点,例如laser所在位置,手臂所在位置,head所在位置,这些位置都以base_link为参照,

一般base_link都选取的是robot地盘中心位置,这样laser相对底盘的中心点

还可以看到robot_state_publisher监听odom的变化而同步改变robot关键点信息,可以简单理解就是,robot上关键点坐标随这robot的实际运动而改变

如果新开发一个robot,就要先设定好robot上关键点坐标,即维护好robot_state_publisher节点。


3.连接kobuki并启动并同步启动slam_gmapping


启动命令:

roslaunch turtlebot_navigation amcl_demo.launch
或者

roslaunch turtlebot_navigation gmapping_demo.launch


多了/map transform,是由/slam_gmapping发布的。odom坐标变化是依赖/map坐标


4.启动kobuki和hokuyo



laser tf由base_to_laser发布,父节点是base_link

具体的设置命令如下:

<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.30 0 0.0 0.0 base_link laser 100"/>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值