shadfien / python_opencv

opencv问题
0 stars 0 forks source link

在ROS中使用USB网络摄像头传输图像-rosbag录制 #16

Open shadfien opened 2 years ago

shadfien commented 2 years ago

实现rosbag录制摄像头信息一共参考了两个文档,分两步

一、在ROS下使用摄像头,如下参考文档 https://blog.csdn.net/wufan88/article/details/78811657

有几个注意点 一、ros版本下载 安装uvc camera功能包

sudo apt-get install ros-indigo-uvc-camera 比如我的ros版本是 melodic ,所以安装命令为 ros-melodic-uvc-camera 具体查看ros版本自行百度哈

二、在CMakeList中声明 原blob中没说明声明位置,所以写上去之后续会报错,正确声明位置是在CMakeList文件中的 找到里面有一行写着##Declare a C++ executable,在这一行前面或者后面添加如下内容

find_package(OpenCV REQUIRED) add_executable(my_publisher src/my_publisher.cpp) target_link_libraries(my_publisher ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) add_executable(my_subscriber src/my_subscriber.cpp) target_link_libraries(my_subscriber ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) 以上按照blob执行完之后应该可以在rviz看到实时显示的效果了,问题来了,怎么录制成rosbag呢。

这时候参考第二个blob https://www.jianshu.com/p/901c2ebb4e7f

其实关键的就是一行代码 rosbag record /camera/image -O record_poseStamped 重点关注下record后 /camera/image ,这个不是随便写的,而是之前代码内定义的Topic,不清楚的可以回去gedit看下写的my_publisher.cpp这个文件,在里面其中有 image_transport::Publisher pub = it.advertise("camera/image", 1); 定义好了Topic。

因为之前已经开始运行my_publisher节点.,所以此时直接可以运行record就可以录制啦!