已解决(一分钟)TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_footprint at time解决方案

<1>问题描述

前言-仿真实验需求:获取小车的全局坐标系下的位姿信息,因此使用gmapping建图,并使用地图服务调用发布,自己写了个节点将map坐标系添加到现有的TF树上,最终TF树见最后截图。

进入正题,想直接搭配b站赵虚左老师的教程gazebo生成的模型,学习教程时候没注意到警告,现在还债(警告见下图),连带引发的问题为:终端输入 rosrun tf tf_echo  odom base_link 时候直接断断续续收不到,分析后发现是map odom base_footprint这些坐标系发布的频率不一致导致的,比如odom更新快,base_footprint还没更新就会获取不到相对位姿的情况,上解决方案。

 已解决(一分钟)TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_footprint at time解决方案_第1张图片已解决(一分钟)TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_footprint at time解决方案_第2张图片

<2>解决方案:结合网上的通用方法后有所改善但还是会零零散散出现上述报错

亲测改善成功方案如下:

关键步骤1:launch中增加下段代码,保持频率10000hz一致

    

关键步骤2:其次 move.xacro文件修改下面三行
            false

            false

            1

完整代码段如下:



    
    
        
        
            transmission_interface/SimpleTransmission
            
                hardware_interface/VelocityJointInterface
            
            
                hardware_interface/VelocityJointInterface
                1
            
        
    

    
    
    

    
    
        
            Debug
            false
            /
            1
            true
            false
            true
            1.0
            true
            left2link 
            right2link 
            ${base_radius * 2} 
            ${wheel_radius * 2} 
            1
            30
            1\.8
            cmd_vel 
            odom 
            odom 
            base_footprint 
            world 
        
    


<3>运行效果:最后就可以安稳的1s一次的获取小车相对于odom、map的相对位姿信息了

如下图所示,终端输入rosrun tf tf_echo map  base_footprint ,当前小车没有移动所以为0 

已解决(一分钟)TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_footprint at time解决方案_第3张图片

已解决(一分钟)TF_REPEATED_DATA ignoring data with redundant timestamp for frame base_footprint at time解决方案_第4张图片

你可能感兴趣的:(ROS,c++,vscode)