ros(12):rosbag play激光雷达数据包后,用rviz查看出现frame找不到及时间戳太老的问题----一个简单而完整launch文件

目录

0.前言

1 解决方案

1.1 在launch文件里添加坐标系关系

1.2 在launch文件里面添加时间关系

1.3 完整launch文件如下:test.launch

1.4 启动test.launch

参考链接:


0.前言

        录制了一个激光雷达数据包,在自己电脑上rosbag play后,用rviz查看不到激光雷达点云。

        录制数据包如下,其中点云的frame_id均为“rslidar”

        rosbag play数据包后,用rviz查看显示:No tf data.  Actual error: Fixed Frame [rslidar] does not exist即坐标系找不到的问题。

        解决坐标系问题后, rviz查看还可能会出现时间戳问题: Message removed because it is too old

1 解决方案

1.1 在launch文件里添加坐标系关系

        在任意需要启动的launch文件里面添加:这里命名为test.launch

<!-- static_transform_publisher x y z yaw pitch roll frame_id child_frame_id period_in_ms -->
<!-- static_transform_publisher x y z qx qy qz qw frame_id child_frame_id  period_in_ms -->
 <node pkg="tf" type="static_transform_publisher" name="rslidar_base_broadcaster" 
        args="0 0 0 0 0 0 /map /rslidar 100" />
        <!-- static_transform_publisher位tf树的一个节点,安装ros是会安装,没有的话可以安装一下;
        /map为参考坐标系,也可以设为/odom、/base_link之类常见的坐标系
        /rslidar为自己数据的坐标系,这里为/rslidar,也以自行修改 -->

1.2 在launch文件里面添加时间关系

        首先,设置使用系统时间戳,而不是数据包的ros时间戳

    <param name="use_sim_time" value="true"/>
    <!-- true即为使用系统时间,false为使用实际数据的时间戳 -->

        设置播放数据的时间戳为系统时间戳。

    <arg name="bag_file_" default="/home/meng/Desktop/data/double_lidar_calibrate/2022-03-26-19-25-56.bag" />
    <node pkg="rosbag" type="play" name="rosbag" args="--clock $(arg bag_file_) -r 0.5" />
    <!-- bag_file_:包文件目录,自行修改  “clock”为使用系统时间戳 -->

1.3 完整launch文件如下:test.launch

<?xml version="1.0" encoding="UTF-8"?>
<launch>
    <param name="use_sim_time" value="true"/>
    <!-- true即为使用系统时间,false为使用实际数据的时间戳 -->

    <node pkg="tf" type="static_transform_publisher" name="rslidar_base_broadcaster" 
        args="0 0 0 0 0 0 /map /rslidar 100" />
        <!-- static_transform_publisher位tf树的一个节点,安装ros是会安装,没有的话可以安装一下;
        /odom为参考坐标系,也可以设为/map、/base_link之类常见的坐标系
        /rslidar为自己数据的坐标系,这里为/rslidar,也以自行修改 -->

    <arg name="bag_file_" default="/home/meng/Desktop/data/double_lidar_calibrate/2022-03-26-19-25-56.bag" />
    <node pkg="rosbag" type="play" name="rosbag" args="--clock $(arg bag_file_) -r 0.5 -l" />
    <!-- bag_file_:包文件目录,自行修改  “clock”为使用系统时间戳 "-r"为播放速率 “-l”为循环播放 -->
    
    <arg name="rviz" default="true" />
    <group if="$(arg rviz)">
        <node launch-prefix="nice" pkg="rviz" type="rviz" name="rviz_meng"/>
    </group>

</launch>

1.4 启动test.launch

       在任意目录下直接:roslaunch test.launch即可(不需要source工作空间)

       在两处箭头处设置frame和选择点云,之后在中间视图区域缩放即可看到

参考链接:

https://blog.csdn.net/shaozhenghan/article/details/90295481

https://blog.csdn.net/unlimitedai/article/details/107569119

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值