我正在尝试配置一个RaspberryPi2,以便将摄像机模块中的视频数据记录到一个玫瑰袋中。为了让摄像机与ROS一起工作,我使用了我在这里找到的代码:节点。
这很好,但我在将数据捕获到ros袋时遇到了问题。当以较高的帧速率捕获原始模式时,它平滑地捕获几秒钟,然后冻结几秒钟,然后平滑地捕获几秒钟,然后冻结,.
例如,我尝试用640x480@30FPS捕获一个文件,这就是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 got,这应该是15390条信息,我们只有2504,即大约14 got。文件本身的大小为2.9GB。这意味着它的平均写入速度为17.5MB/s。最后,我找到了一个命令来测试SD卡(dd if=/dev/zero of=~/test.tmp bs=500K count=1024)的写入速度,这表明我的平均写入速度大约为19 my /s。
所以我的问题是:
发布于 2018-08-11 11:14:08
看起来raspicam_node用bgra8编码(node.cpp#L266)发布图像,所以我们需要存储4*640*480*30字节/秒=36.86MB/s,但是~18 MB/s似乎是树莓2 (microSD卡性能比较)的限制。
与其尝试保存所有原始数据,不如让rosbag从sensor_msgs/CompressedImage主题中存储/camera/image/compressed。您可以调优<base_topic>/compressed/jpeg_quality参数(请参阅compressed_image_transport的动态重新配置参数),但是在默认情况下,您应该得到大约30:1的压缩比,即1.23MB/s。
覆盆子应该可以轻松地处理这件事。考虑到小树莓相机的图像质量,你可能甚至不会察觉到质量上的任何差别。
https://stackoverflow.com/questions/33304521
复制相似问题