使用ros中的image_transport API将自己的数据集做成rosbag

因为很多的slam代码是有ROS版的,ROS版的一般数据的输入都是rosbag的形式,所以为了使用,测试新的数据集,需要将没有rosbag的数据集转为rosbag的形式,其实这里涉及的就是将普通的照片转为ros的图片,使用一个节点发布这写图片流,然后使用rosbag进行记录,然后生成一个rosbag的包.整体就是这样的思路.ROS的官网上也有相关的Tutorials.Tutorials 里面命令有一些小错误,但是不会影响很大.接下来将分两个部分来记录一下自己转换的过程.第一部分是学习ROS WIKI上的tutorials的内容,第二部分是使用自己的数据集进行实验.
一. Tutorials的学习
在ROS的image_transport的tutorial上,根据它的教程进行如下的命令操作,这些操作的前提是你已经在你的系统上安装了ROS的系统,哇是跟着官方教程 安装的,这里因为设置软件源的问题,折腾了好久,最后先删除出问题的软件源,最后再安装官方的教程就可以成功了.然后按照image_transport的教程走通如下的命令:
1.

$ mkdir -p ~/image_transport_ws/src
$ cd ~/image_transport_ws/src
$ source /opt/ros/kinetic/setup.bash  #notice 看你安装的是什么版本的ros,我的是kinetic
$ catkin_create_pkg learning_image_transport image_transport cv_bridge #生成一个包
$ cd ~/image_transport_ws  #或者 cd ..
$ rosdep install --from-paths src -i -y --rosdistro kinetic #这里也需要改成自己的安装
$ catkin_make
$ source devel/setup.bash
$ git clone https://github.com/ros-perception/image_common.git
$ ln -s `pwd`/image_common/image_transport/tutorial/ ./src/image_transport_tutorial
$catkin_make #编译源文件
  1. 以上操作完成之后,你就可以使用如下步骤你就可以发布一张图片到ROS的节点中去了.

(1)在你编译的命令行窗口新开一个窗口,保证其是在 /image_transport_ws 这个路径下的,然后运行:

$roscore 

(2)在你编译的命令行窗口新开一个窗口,保证其是在 /image_transport_ws 这个路径下的,然后运行:

$ source /opt/ros/kinetic/setup.bash #每次读要运行一次的,不然会报错
$ source devel/setup.bash ##每次读要运行一次的,不然会报错
$ rosrun image_transport_tutorial my_publisher path/to/some/image.jpg #需要修改成为你图片的path 

(3)查看节点

$rostopic list -v #查看节点
/camera/image
/camera/image/compressed
/camera/image/compressed/parameter_descriptions
/camera/image/compressed/parameter_updates
/camera/image/compressedDepth
/camera/image/compressedDepth/parameter_descriptions
/camera/image/compressedDepth/parameter_updates
/camera/image/theora
/camera/image/theora/parameter_descriptions
/camera/image/theora/parameter_updates
/rosout
/rosout_agg

(4)订阅节点

$rosrun image_transport_tutorial my_subscriber

运行上诉命令之后就会在rqt(需要单独打开一个终端输入:rqt)出现你发布的image图片.
在这里插入图片描述
在这里插入图片描述

将opencv格式的图像转化为ROS所支持的消息类型,从而发布到相应的话题上。
节点管理器(roscore)
参考:https://blog.csdn.net/danwuxie/article/details/86709530(这篇博客Ros发布和订阅有消息的源代码的解析)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值