Raspberry pi 将RaspberryPi摄像头记录到rosbag
我正在尝试配置RaspberryP2,以便将视频数据从摄像头模块记录到rosbag。为了让相机与ROS一起工作,我使用了我在这里找到的代码: 这很好,但我在将数据捕获到rosbag时遇到问题。当以高帧速率以原始模式捕获时,它会平稳捕获几秒钟,然后冻结几秒钟,然后平稳捕获几秒钟,然后冻结 例如,我尝试用640x480@30FPS这就是Raspberry pi 将RaspberryPi摄像头记录到rosbag,raspberry-pi,sd-card,ros,raspberry-pi2,Raspberry Pi,Sd Card,Ros,Raspberry Pi2,我正在尝试配置RaspberryP2,以便将视频数据从摄像头模块记录到rosbag。为了让相机与ROS一起工作,我使用了我在这里找到的代码: 这很好,但我在将数据捕获到rosbag时遇到问题。当以高帧速率以原始模式捕获时,它会平稳捕获几秒钟,然后冻结几秒钟,然后平稳捕获几秒钟,然后冻结 例如,我尝试用640x480@30FPS这就是rosbag info产生的结果: duration: 2:51s (171s) size: 2.9 GB messages: 5049 c
rosbag info
产生的结果:
duration: 2:51s (171s)
size: 2.9 GB
messages: 5049
compression: none [2504/2504 chunks]
types: rosgraph_msgs/Log [acffd30cd6b6de30f120938c17c593fb]
sensor_msgs/CameraInfo [c9a58c1b0b154e0e6da7578cb991d214]
sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743]
topics: /camera/camera_info 2505 msgs : sensor_msgs/CameraInfo
/camera/image 2504 msgs : sensor_msgs/Image
/rosout 22 msgs : rosgraph_msgs/Log (2 connections)
/rosout_agg 18 msgs : rosgraph_msgs/Log
所以,如果我们有171秒的视频,每秒90帧,应该会有15390条信息,我们只有2504条,大约每秒14帧。文件本身的大小为2.9GB。这意味着它的平均写入速度约为17.5MB/s。最后,我找到了一个测试SD卡写入速度的命令(ddif=/dev/zero of=~/test.tmp bs=500K count=1024
),这表示我的写入速度平均约为19MB/s
因此,我的问题是:
它看起来像是
raspicam_节点
使用bgra8
encoding()发布图像,因此我们需要存储4*640*480*30字节/秒=36.86 MB/s。
但是~18MB/s似乎几乎是Raspberry 2()的极限
不要试图保存所有原始数据,而是让rosbag存储/camera/image/compressed
主题中的传感器/CompressedImage
。您可以调整/compressed/jpeg\u quality
参数(请参见compressed\u image\u transport
),但默认值为80时,压缩比应为30:1左右,即1.23 MB/s
覆盆子应该可以很容易地处理这个问题。考虑到微型覆盆子相机的图像质量,你甚至可能感觉不到任何质量上的差异