Thank you for the fast response!
My naive solution for the imu-timestamp issue right now is to patch dv-ros to detect duplicate timestamps before publishing and increment it by the inverse of my known imu-frequency.
I have another issue with the dvxploerer-micro, I observe high spikes of off-events, when capturing data.
About my configuration:
Because I'm operating on weak hardware running ros1, I took measures to reduce the maximum number of events per second to prevent ros from dropping messages during publishing.
These measures are
- configuring the Contrast Threshold to be maximal (17) in the dv.ros config.
- put a frequency filter (lowpass) after the noise filter implemented in dv-ros, limiting average frequency per pixel to 100Hz.
dv-ros/dv_ros_capture/src/capture_node.cpp:826
"""
while (events.has_value() && !events->isEmpty() && timestamp >= events->getHighestTime()) {
dv::EventStore store;
if (mNoiseFilter != nullptr) {
mNoiseFilter->accept(*events);
store = mNoiseFilter->generateEvents();
}
else {
store = *events;
}
if (mFrequencyFilter != nullptr) {
mFrequencyFilter->accept(store);
store = mFrequencyFilter->generateEvents();
}
if (mEventArrayPublisher.getNumSubscribers() > 0) {
auto msg = dv_ros_msgs::toRosEventsMessage(store, resolution);
mEventArrayPublisher.publish(msg);
}
mCurrentSeek = events->getHighestTime();
std::lock_guard<boost::recursive_mutex> lockGuard(mReaderMutex);
events = mReader->getNextEventBatch();
}
"""
During event capturing I now observe big spikes in event count from lots of off events, as visible in this plot:
Is this behavior expected when changing the Contrast Threshold or is something different at fault?
I'm aware my lowpass-filter can't prevent these spikes because it operates on a per pixel basis, not on the total amount of events per second.
Thanks for any kind of help!