ROS_rosbag使用注意点

来源:https://zhengyu.tech

无法对tf的内容进行录制

问题描述:

当我们利用rosbag record/tf进行录制时,有时候会发现有些节点并没有被录制,而这些节点确实存在。比如我们利用robot_state_publisher发布机器人的关节tf信息,就会出现该问题。
进一步仔细观察导出的tf树图,我们可以发现问题:没有被录制的节点并没实时在发布tf信息,所以才导致了该问题。
在这里插入图片描述

解决方法:

这是由于ros添加了tf_static机制,使得对相对固定的tf不必重复发布,从而占用宝贵的带宽。我们只需在关闭该功能即可:

  <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" args="robot_description:=robot_description"
       name="use_tf_static" value="false" />
  node>

无法对tf进行重映射

问题描述:

当我们在利用rosbag时,有时候希望对tf名进行重映射,来适配当前代码。例如,H_imu_link_record—> H_imu_link,我们可以很快找到对应功能模块remapper来实现,但是依旧没有变换。

    <node name="remapper" pkg="tf" type="tf_remap" output="screen"> 
        <rosparam param="mappings">[{old: H_imu_link_record, new: /H_imu_link},
        ]rosparam>
    node>
解决方法:

其实,我们还需要对原/tf也进行重映射,才能够实现:

    <node pkg="rosbag" type="play" name="player" args="/home/sbdx/Documents/2022_03_04_16_33_48.bag" output="screen">
        <remap from="tf" to="tf_old" />
    node>

你可能感兴趣的:(ROS学习,ROS,rosbag)