add processor_capture_holder
Add a processor which sole purpose is associate a capture of any type to a key-frame creation.
The processor keeps a time-windowed list of CaptureBasePtr
from any sensor, on the keyFrameCallback
it associates the closest capture it holds to the key-frame.
This can be convenient in situation such as :
A laser sensor is used as the main odometer through ICP. Its CaptureLaser
are transformed into CaptureMotion
within the processor getIncomingCaptureMotion
function. Thus there is no laser anymore to build any map representation from the lasers. This processor aims at 'keeping' the scan for later map construction.
Merge request reports
Activity
@jsola The newly added
CaptureBuffer
class may need a bit of polishing in the capture retrieval by stamp.@artivis should I merge this?
I am recently advocating for having
CaptureMotion
act as an abstract class, therefore requiring everybody to derive it. Should this eliminate the need for your solution? Should we discuss it further? Should I merge this anyway?J
Edited by Joan Solà OrtegaCaptureMotion
as an abstract class for all captures ?? Yeah we may need to discuss.
The work here is nothing but a buffer ofCaptureBasePtr
and a Processor that query for a capture given a key-frame stamp and associate the foundCaptureBasePtr
to the frame.
I think this can be merged shall it evolve later on.However, look there are warnings:
/Users/jsola/dev/wolf/src/./capture_buffer.h:161:33: warning: returning reference to local temporary object [-Wreturn-stack-address] return (!container_.empty())? container_.front()->getTimeStamp() : ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/jsola/dev/wolf/src/./capture_buffer.h:167:33: warning: returning reference to local temporary object [-Wreturn-stack-address] return (!container_.empty())? container_.back()->getTimeStamp() : ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mentioned in commit 46e6670d