Raspberry pi 将RaspberryPi摄像头记录到rosbag

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

我正在尝试配置RaspberryP2,以便将视频数据从摄像头模块记录到rosbag。为了让相机与ROS一起工作,我使用了我在这里找到的代码:

这很好,但我在将数据捕获到rosbag时遇到问题。当以高帧速率以原始模式捕获时,它会平稳捕获几秒钟,然后冻结几秒钟,然后平稳捕获几秒钟,然后冻结

例如,我尝试用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帧,应该会有15390条信息,我们只有2504条,大约每秒14帧。文件本身的大小为2.9GB。这意味着它的平均写入速度约为17.5MB/s。最后,我找到了一个测试SD卡写入速度的命令(
ddif=/dev/zero of=~/test.tmp bs=500K count=1024
),这表示我的写入速度平均约为19MB/s

因此,我的问题是:

  • 如果SD写入速度导致了问题,为什么RaspberryPi不能利用全部90MB/s
  • 我可以调整RaspberryPi以更快地写入SD卡吗
  • 我想买一个带有SATA的BananaPi,这样我就可以连接SATA驱动器,不会遇到任何写入速度问题。在进行这项投资之前,是否有人拥有BananaPis的经验?我在这里看到一个测试:,看起来BananaPi应该能够处理它
  • 还有什么办法可以让它在覆盆子上工作吗

  • 它看起来像是
    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

    覆盆子应该可以很容易地处理这个问题。考虑到微型覆盆子相机的图像质量,你甚至可能感觉不到任何质量上的差异