Skip to content
Snippets Groups Projects

add processor_capture_holder

Merged Jeremie Deray requested to merge processor_capture_holder into master

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Author Developer

    @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à Ortega
  • Author Developer

    CaptureMotion as an abstract class for all captures ?? Yeah we may need to discuss.
    The work here is nothing but a buffer of CaptureBasePtr and a Processor that query for a capture given a key-frame stamp and associate the found CaptureBasePtr to the frame.
    I think this can be merged shall it evolve later on.

  • Not for all captures, but for all captures that require motion integration:

    • Odom3D
    • Odom2D
    • IMU
    • maybe others.

    Not sure about motion via LIDAR with ICP, or via Vision and trifocal tensor, etc, since in these motion processors there is no need to integrate small motions.

  • Merging in 3, 2, ....

  • 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() :
                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • Halted merge. Please check warnings.

  • mentioned in commit 46e6670d

  • Author Developer

    The warning comes from the fact I return the InvalidStamp object introduced earlier in case the buffer is empty.
    I'll have a look on how to fix this.

Please register or sign in to reply
Loading