perf(*): node frame skip fix.
This commit is contained in:
parent
8d780caef9
commit
65d0aa3222
|
@ -89,6 +89,7 @@
|
||||||
<rosparam file="$(find mynt_eye_ros_wrapper)/config/mesh/mesh.yaml" command="load" />
|
<rosparam file="$(find mynt_eye_ros_wrapper)/config/mesh/mesh.yaml" command="load" />
|
||||||
|
|
||||||
<param name="gravity" value="$(arg gravity)" />
|
<param name="gravity" value="$(arg gravity)" />
|
||||||
|
<!-- <param name="ros_output_framerate_cut" value="2" /> -->
|
||||||
</node>
|
</node>
|
||||||
|
|
||||||
<!-- disable compressed depth plugin for image topics -->
|
<!-- disable compressed depth plugin for image topics -->
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
using namespace configuru; // NOLINT
|
using namespace configuru; // NOLINT
|
||||||
|
|
||||||
#define PIE 3.1416
|
#define PIE 3.1416
|
||||||
|
#define MATCH_CHECK_THRESHOLD 3
|
||||||
|
|
||||||
#define FULL_PRECISION \
|
#define FULL_PRECISION \
|
||||||
std::fixed << std::setprecision(std::numeric_limits<double>::max_digits10)
|
std::fixed << std::setprecision(std::numeric_limits<double>::max_digits10)
|
||||||
|
@ -710,6 +711,12 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
skip_tmp_left_tag--;
|
skip_tmp_left_tag--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (left_timestamps.size() < MATCH_CHECK_THRESHOLD) {
|
||||||
|
left_timestamps.insert(left_timestamps.begin(), data.img->timestamp);
|
||||||
|
} else {
|
||||||
|
left_timestamps.insert(left_timestamps.begin(), data.img->timestamp);
|
||||||
|
left_timestamps.pop_back();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
publishCamera(Stream::LEFT, data, left_count_, stamp);
|
publishCamera(Stream::LEFT, data, left_count_, stamp);
|
||||||
publishMono(Stream::LEFT, data, left_count_, stamp);
|
publishMono(Stream::LEFT, data, left_count_, stamp);
|
||||||
|
@ -742,6 +749,29 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
skip_tmp_right_tag--;
|
skip_tmp_right_tag--;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (right_timestamps.size() < MATCH_CHECK_THRESHOLD) {
|
||||||
|
right_timestamps.insert(right_timestamps.begin(), data.img->timestamp);
|
||||||
|
} else {
|
||||||
|
right_timestamps.insert(right_timestamps.begin(), data.img->timestamp);
|
||||||
|
right_timestamps.pop_back();
|
||||||
|
bool is_match = false;
|
||||||
|
for (size_t i = 0; i < right_timestamps.size(); i++) {
|
||||||
|
for (size_t j = 0; j < left_timestamps.size(); j++) {
|
||||||
|
if (right_timestamps[i] == left_timestamps[j]) {
|
||||||
|
is_match = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (is_match) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_match) {
|
||||||
|
std::cout << "find the output stamp can't matched try to fix with one skip step." << std::endl;
|
||||||
|
skip_tmp_right_tag++;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
publishCamera(Stream::RIGHT, data, right_count_, stamp);
|
publishCamera(Stream::RIGHT, data, right_count_, stamp);
|
||||||
publishMono(Stream::RIGHT, data, right_count_, stamp);
|
publishMono(Stream::RIGHT, data, right_count_, stamp);
|
||||||
|
@ -1667,6 +1697,8 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
||||||
double mesh_rotation_x;
|
double mesh_rotation_x;
|
||||||
double mesh_rotation_y;
|
double mesh_rotation_y;
|
||||||
double mesh_rotation_z;
|
double mesh_rotation_z;
|
||||||
|
std::vector<int64_t> left_timestamps;
|
||||||
|
std::vector<int64_t> right_timestamps;
|
||||||
|
|
||||||
std::uint64_t unit_hard_time = std::numeric_limits<std::uint32_t>::max();
|
std::uint64_t unit_hard_time = std::numeric_limits<std::uint32_t>::max();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user