一、问题描述
在进行gazebo 小车仿真时终端会出现TF_REPEATED_DATA ignoring data with redundant timestamp for frame
,且在未施加数据的情况下,Rviz中模型车轮有微小移动
其原因是: right_wheel_link
与left_wheel_link
的TF变换有两个发布者:/gazebo
、/robot_state_publisher
, 发布者冲突
执行roswtf
命令即可得到诊断:
二、问题解决
/robot_state_publisher
发布right_wheel_link
与left_wheel_link
TF变换的方式是在launch文件中:
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
说明:
joint_state_publisher
:读取由robot_description定义的URDF文件内的参数,找到所有非固定(non-fixed)关节并将当前关节信息转化为sensor_msgs/JointState消息发布到话题joint_statesrobot_state_publisher
:订阅话题joint_states,并根据消息内容计算更新当前机器人的运动学模型,通过tf广播器发布坐标系状态
如果不使用joint_state_publisher和robot_state_publisher,Rviz等组件就无法获得更新后的机器人完整TF树,因此考虑将差速控制器中的publishWheelTF和publishWheelJointState均设置为false,即可消除冲突。
/gazebo
发布right_wheel_link
与left_wheel_link
TF变换的方式是在底盘差速控制器 xacro
配置文件中: