六哥,您好,想请问为什么VINS-Mono的特征点检测线程需要控制发布频率(复位控制频率)?

南下.南下. · 2022-11-03 16:20
config文件说设置freq为1000,就是图像原始运行频率,既然rosbag包都是原始运行频率,为什么这里还要调整频率?具体就是下面这部分的代码。 以及还有不懂的地方就是,下面代码中的TODO的地方 if (round(1.0 * pub_count / (img_msg->header.stamp.toSec() - first_image_time)) <= FREQ) { PUB_THIS_FRAME = true; // reset the frequency control if (abs(1.0 * pub_count / (img_msg->header.stamp.toSec() - first_image_time) - FREQ) < 0.01 * FREQ) { first_image_time = img_msg->header.stamp.toSec(); pub_count = 0; } } else PUB_THIS_FRAME = false; // TODO: 为什么这里还需要判断img_msg->encoding的类型再做转换?是有什么注意事项吗? // 例如当img_msg->encoding = '8UC1'时为什么不能够只写 // ptr = cv_bridge::toCvCopy(img, sensor_msgs::image_encodings::MONO8); cv_bridge::CvImageConstPtr ptr; if (img_msg->encoding == "8UC1") { sensor_msgs::Image img; img.header = img_msg->header; img.height = img_msg->height; img.width = img_msg->width; img.is_bigendian = img_msg->is_bigendian; img.step = img_msg->step; img.data = img_msg->data; img.encoding = "mono8"; ptr = cv_bridge::toCvCopy(img, s
0 个回答
暂无回答