ROS 2 video_recorder 详细介绍
video_recorder 是 ROS 2 中的一个工具包,用于从 ROS 话题中录制视频并保存为文件。它基于 OpenCV 库,支持多种视频格式和编码器。
一、安装
video_recorder 包含在 image_tools
包中,可以通过以下命令安装:
sudo apt install ros-<ros2-distro>-image-tools
将 <ros2-distro>
替换为你的 ROS 2 发行版名称,如 humble
或 foxy
。
二、基本使用
-
启动 video_recorder 节点:
ros2 run image_tools video_recorder --ros-args -p filename:=output_video.mp4 -p topic:=/camera/image_raw
filename
: 输出视频文件名。topic
: 要录制的图像话题。
-
查看录制进度:
节点启动后,会在终端显示录制帧数和文件大小。
-
停止录制:
使用
Ctrl+C
停止节点,视频文件将保存到指定路径。
三、高级功能
-
设置视频编码器和参数:
通过
encoding
和codec
参数指定编码器和格式:ros2 run image_tools video_recorder --ros-args -p filename:=output_video.avi -p topic:=/camera/image_raw -p encoding:=bgr8 -p codec:=MJPG
-
设置视频分辨率和帧率:
使用
width
,height
, 和fps
参数调整分辨率和帧率:ros2 run image_tools video_recorder --ros-args -p filename:=output_video.mp4 -p topic:=/camera/image_raw -p width:=640 -p height:=480 -p fps:=30
-
录制指定时间段:
通过
duration
参数设置录制时长(秒):ros2 run image_tools video_recorder --ros-args -p filename:=output_video.mp4 -p topic:=/camera/image_raw -p duration:=60
-
录制到内存:
使用
buffer_size
参数将视频录制到内存,适用于实时处理:ros2 run image_tools video_recorder --ros-args -p filename:=output_video.mp4 -p topic:=/camera/image_raw -p buffer_size:=100
-
与其他工具结合使用:
video_recorder 可与
rosbag
和rqt_image_view
等工具结合,实现更复杂的视频录制和处理。
四、注意事项
- 确保图像话题类型为
sensor_msgs/msg/Image
。 - 视频文件大小受磁盘空间限制。
- 录制质量受图像话题帧率和分辨率影响。