SLAM从入门到入土:TF转换中,odom与base_footprint没有连接上。

问题:

map中status:Error报错,no transform from map to base_footprint. 有时候会延迟几分钟后显示正常。如图1所示

打开rqt,显示base_footprint上面没有连接任何TF发布,如图2或者图3情况。

图1 

图2

图3 

问题原因:

缺少odom与base_footprint的TF转换

解决方法:

在小车对象中添加

tf::TransformBroadcaster odom_broadcaster;

在该对象的文件添加

#include <tf/transform_broadcaster.h>

在话题发布的CPP文件中,

odom话题发布下添加 

current_time_ = ros::Time::now();
// 发布TF
geometry_msgs::TransformStamped odom;
odom.header.stamp = current_time_;
odom.header.frame_id = "odom";
odom.child_frame_id  = "base_footprint";

geometry_msgs::Quaternion odom_quat;
odom_quat = tf::createQuaternionMsgFromYaw(theta);
odom.transform.translation.x = x_;
odom.transform.translation.y = y_;
odom.transform.translation.z = 0.0;
odom.transform.rotation = odom_quat;
        
odom_broadcaster.sendTransform(odom_trans);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值