1.Basler 产品文档
https://zh.docs.baslerweb.com/acquisition-frame-rate#
// Set the upper limit of the camera's frame rate to 30 fps
camera.AcquisitionFrameRateEnable.SetValue(true);
camera.AcquisitionFrameRateAbs.SetValue(30.0);
2.github 经验贴
https://github.com/basler/pylon-ros-camera/issues/81
3.roswiki:
4.博客
Basler相机的问题-低帧速率和延迟- ROS-腾讯云开发者社区-腾讯云
5.相机的编码方式:
# The encoding of the pixels -- channel meaning, ordering, size
# taken from the list of strings in include/sensor_msgs/image_encodings.h
# The supported encodings are 'mono8', 'bgr8', 'rgb8', 'bayer_bggr8',
# 'bayer_gbrg8' and 'bayer_rggb8'
# Default values are 'mono8' and 'rgb8'
# image_encoding: "mono8"
image_encoding: "mono8"
-
mono8
: 表示图像是单通道的,每个像素只有一个灰度值,取值范围是0到255。这种编码方式通常用于灰度图像。 -
bgr8
: 表示图像是三通道的,按照蓝(B)、绿(G)、红(R)的顺序排列,每个通道的取值范围也是0到255。这种编码方式通常用于彩色图像,遵循BGR颜色空间。 -
rgb8
: 类似于bgr8
,也是三通道的彩色图像,但是通道的顺序是红(R)、绿(G)、蓝(B)。这种编码方式遵循RGB颜色空间。 -
bayer_bggr8
: 表示图像是单通道的,但它是拜耳格式的一种,其中像素按照蓝-绿-绿-红的顺序排列。这种格式通常来自于某些相机的原始输出,需要经过去马赛克处理才能转换成常规的RGB或BGR图像。 -
bayer_gbrg8
: 同样是拜耳格式,像素排列顺序为绿-蓝-红-绿。 -
bayer_rggb8
: 也是拜耳格式,像素排列顺序为红-绿-绿-蓝。
了解 Linux 上的 USBFS
了解 Linux 上的 USBFS | Teledyne FLIR
所有的都设置了,但frame rate 还是只有10,
最终发现解决办法很简单:
1. 确定 acquisition frame rate 设定值 >=10,本文这里设为100
2.曝光时间设置不能太大,本文这里设置为 10000
最终frame rate 能够达到 30 了