Open shadfien opened 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版本自行百度哈
sudo apt-get install ros-indigo-uvc-camera
ros-melodic-uvc-camera
二、在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呢。
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 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。
rosbag record /camera/image -O record_poseStamped
image_transport::Publisher pub = it.advertise("camera/image", 1);
因为之前已经开始运行my_publisher节点.,所以此时直接可以运行record就可以录制啦!
实现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就可以录制啦!