depth_map_preprocessing
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
depth_map_preprocessing::ConverterBase Class Referenceabstract

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow. More...

#include <ConverterBase.hpp>

Inheritance diagram for depth_map_preprocessing::ConverterBase:

Classes

struct  SampleTransforms
 

Public Member Functions

 ConverterBase (std::string const &name="depth_map_preprocessing::ConverterBase")
 
 ConverterBase (std::string const &name, RTT::ExecutionEngine *engine)
 
 ~ConverterBase ()
 
bool configureHook ()
 The following lines are template definitions for the various state machine. More...
 
bool startHook ()
 
void updateHook ()
 
void errorHook ()
 
void stopHook ()
 
void cleanupHook ()
 

Protected Member Functions

virtual void newSampleCallback (const base::Time &ts, const base::samples::DepthMap &depth_map_sample)=0
 
virtual void depth_mapAcquisitionTimeTransformerCallback (const base::Time &ts, const base::Time &depth_map_sample_start)
 
virtual void depth_mapTransformerCallback (const base::Time &ts, const base::samples::DepthMap &depth_map_sample)
 
virtual void pullPorts ()
 
template<class T >
bool convertToPointCloud (const base::Time &ts, const base::samples::DepthMap &depth_map_sample, std::vector< T > &pointcloud)
 
void registerAcquisitionTimeStream ()
 
template<class ElementIterator >
void pushDepthMapTimestamps (ElementIterator it_first, ElementIterator it_last, const base::samples::DepthMap &depth_map_sample)
 

Protected Attributes

int depth_map_acquisition_times_idx_tr
 
std::list< SampleTransformsdepth_map_acquisition_transforms
 
MotionCompensation motion_compensation
 
unsigned acquisition_timestamps
 

Friends

class ConverterBaseBase
 

Detailed Description

The task context provides and requires services. It uses an ExecutionEngine to perform its functions. Essential interfaces are operations, data flow ports and properties. These interfaces have been defined using the oroGen specification. In order to modify the interfaces you should (re)use oroGen and rely on the associated workflow.

The name of a TaskContext is primarily defined via:

deployment 'deployment_name'
    task('custom_task_name','depth_map_preprocessing::ConverterBase')
end

It can be dynamically adapted when the deployment is called with a prefix argument.

Constructor & Destructor Documentation

◆ ConverterBase() [1/2]

ConverterBase::ConverterBase ( std::string const &  name = "depth_map_preprocessing::ConverterBase")

TaskContext constructor for ConverterBase

Parameters
nameName of the task. This name needs to be unique to make it identifiable via nameservices.
initial_stateThe initial TaskState of the TaskContext. Default is Stopped state.

◆ ConverterBase() [2/2]

ConverterBase::ConverterBase ( std::string const &  name,
RTT::ExecutionEngine *  engine 
)

TaskContext constructor for ConverterBase

Parameters
nameName of the task. This name needs to be unique to make it identifiable for nameservices.
engineThe RTT Execution engine to be used for this task, which serialises the execution of all commands, programs, state machines and incoming events for a task.

◆ ~ConverterBase()

ConverterBase::~ConverterBase ( )

Default deconstructor of ConverterBase

Member Function Documentation

◆ cleanupHook()

void ConverterBase::cleanupHook ( )

This hook is called by Orocos when the state machine transitions from Stopped to PreOperational, requiring the call to configureHook() before calling start() again.

◆ configureHook()

bool ConverterBase::configureHook ( )

The following lines are template definitions for the various state machine.

This hook is called by Orocos when the state machine transitions from PreOperational to Stopped. If it returns false, then the component will stay in PreOperational. Otherwise, it goes into Stopped.

It is meaningful only if the #needs_configuration has been specified in the task context definition with (for example):

task_context "TaskName" do
  needs_configuration
  ...
end

◆ convertToPointCloud()

template<class T >
bool depth_map_preprocessing::ConverterBase::convertToPointCloud ( const base::Time &  ts,
const base::samples::DepthMap &  depth_map_sample,
std::vector< T > &  pointcloud 
)
protected

Converts the given sample to a pointcloud while applying the selected motion compensation option.

◆ depth_mapAcquisitionTimeTransformerCallback()

void ConverterBase::depth_mapAcquisitionTimeTransformerCallback ( const base::Time &  ts,
const base::Time &  depth_map_sample_start 
)
protectedvirtual

Transformer callback with the purpose to receive the depth map acquisition transformations

◆ depth_mapTransformerCallback()

void ConverterBase::depth_mapTransformerCallback ( const base::Time &  ts,
const base::samples::DepthMap &  depth_map_sample 
)
protectedvirtual

Transformer callback of the actual sample Only calls

◆ errorHook()

void ConverterBase::errorHook ( )

This hook is called by Orocos when the component is in the RunTimeError state, at each activity step. See the discussion in updateHook() about triggering options.

Call recover() to go back in the Runtime state.

◆ newSampleCallback()

virtual void depth_map_preprocessing::ConverterBase::newSampleCallback ( const base::Time &  ts,
const base::samples::DepthMap &  depth_map_sample 
)
protectedpure virtual

Will be called if a new sample is availale and must be implemented in subclasses. Should call to convert the sample to the pointcloud of choice.

◆ pullPorts()

void ConverterBase::pullPorts ( )
protectedvirtual

Reads out the input ports and forwards the samples to the transformer

◆ pushDepthMapTimestamps()

template<class ElementIterator >
void depth_map_preprocessing::ConverterBase::pushDepthMapTimestamps ( ElementIterator  it_first,
ElementIterator  it_last,
const base::samples::DepthMap &  depth_map_sample 
)
protected

Helper method to push acquisition timestamps to the transformer

◆ registerAcquisitionTimeStream()

void ConverterBase::registerAcquisitionTimeStream ( )
protected

Helper method to register the depth map acquisition transformations stream in a lazy fasion. This is important since the period information might be computed based on the amount of timestamps.

◆ startHook()

bool ConverterBase::startHook ( )

This hook is called by Orocos when the state machine transitions from Stopped to Running. If it returns false, then the component will stay in Stopped. Otherwise, it goes into Running and updateHook() will be called.

◆ stopHook()

void ConverterBase::stopHook ( )

This hook is called by Orocos when the state machine transitions from Running to Stopped after stop() has been called.

◆ updateHook()

void ConverterBase::updateHook ( )

This hook is called by Orocos when the component is in the Running state, at each activity step. Here, the activity gives the "ticks" when the hook should be called.

The error(), exception() and fatal() calls, when called in this hook, allow to get into the associated RunTimeError, Exception and FatalError states.

In the first case, updateHook() is still called, and recover() allows you to go back into the Running state. In the second case, the errorHook() will be called instead of updateHook(). In Exception, the component is stopped and recover() needs to be called before starting it again. Finally, FatalError cannot be recovered.

Friends And Related Function Documentation

◆ ConverterBaseBase

friend class ConverterBaseBase
friend

Member Data Documentation

◆ acquisition_timestamps

unsigned depth_map_preprocessing::ConverterBase::acquisition_timestamps
protected

◆ depth_map_acquisition_times_idx_tr

int depth_map_preprocessing::ConverterBase::depth_map_acquisition_times_idx_tr
protected

◆ depth_map_acquisition_transforms

std::list<SampleTransforms> depth_map_preprocessing::ConverterBase::depth_map_acquisition_transforms
protected

◆ motion_compensation

MotionCompensation depth_map_preprocessing::ConverterBase::motion_compensation
protected

The documentation for this class was generated from the following files: