一种解决使用rosbags-convert转换rosbag到ros2bag中出现问题的思路

看解决办法直接跳转到 “三、修改过程”。

 

一、背景

   由于现在比较流行的激光slam 论文中很多使用的都是ros1 版本的livox 激光lidar,但我想复写一个ros2 版本的激光slam系统,那如何使用他们的数据集来用呢?

  一个简单的办法是使用rosbags-convert 工具把ros1bag 转换为ros2bag,一般情况下是没什么问题的。但把ros1bag版本的livox 自定义类型转换为ros2bag 类型后,运行(ros2bag play dataset/)出现了以下问题:

[WARN] [1746352189.720472351] [rosbag2_player]: Ignoring a topic '/livox/lidar', reason: package 'livox_ros_driver' not found, searching: [/home/zhaoamoxa163/colcon-ws/ws_livox/install/livox_ros_driver2, /opt/ros/humble].

  如何解决呢?查阅相关资料后,了解到ros2bag中的两个文件,如下图所示:

图 1. ros2bag 中的两个文件

   这里的db3 文件是一种SQLite 数据库文件,metadata.yaml 根据我在修改如题问题的时候的经验,我猜测是用来索引查找某些配置项的文件。

二、思路

        既然是数据库文件,那我们就可以使用数据库软件打开它(本科学过MySQL或者其他数据的应该知道如何操作),我用到的是DBreaver(图 2) 数据库管理软件。

图 2

        打开你所要修改的db3 文件(这里需要读者自己查阅资料操作一下),如图 3所示:

图 3

三、修改过程

       由先前得到的错误报告 和 我上述描述的经验可知:

reason: [package 'livox_ros_driver' not found]

searching: [/home/user/colcon-ws/ws_livox/install/livox_ros_driver2, /opt/ros/humble]

         livox_ros_driver 这个包在[/home/user/colcon-ws/ws_livox/install/livox_ros_driver2, /opt/ros/humble]这两个地方没有找到,那我们就修改ros2bag 中的yaml 文件的索引。

        修改索引:把如图 4中修改成你想要的位置:

图 4

 修改数据内容:如图 5所示:

图 5

        直接双击内容修改数据中的值,然后保存即可(出现问题可能需要一点数据库的知识来修改)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值