3 #ifndef DEPTH_MAP_PREPROCESSING_CONVERTERBASE_TASK_HPP 4 #define DEPTH_MAP_PREPROCESSING_CONVERTERBASE_TASK_HPP 6 #include "depth_map_preprocessing/ConverterBaseBase.hpp" 7 #include <depth_map_preprocessing/PointCloudConversion.hpp> 9 #include <Eigen/StdVector> 41 sample_time_id.microseconds = 0;
42 laser_in_odometry.clear();
50 virtual void newSampleCallback(
const base::Time &ts,
const base::samples::DepthMap &depth_map_sample) = 0;
72 bool convertToPointCloud(
const base::Time &ts,
const base::samples::DepthMap &depth_map_sample,
73 std::vector<T>& pointcloud);
84 template<
class ElementIterator>
85 void pushDepthMapTimestamps(ElementIterator it_first, ElementIterator it_last,
const base::samples::DepthMap &depth_map_sample);
99 ConverterBase(std::string
const& name =
"depth_map_preprocessing::ConverterBase");
106 ConverterBase(std::string
const& name, RTT::ExecutionEngine* engine);
174 std::vector<T>& pointcloud)
178 depth_map_sample.convertDepthMapToPointCloud(pointcloud,
true);
188 if(acquisition_transforms->sample_time_id == depth_map_sample.time)
191 Eigen::Affine3d depth_map_end_transform;
192 if(_laser2odometry.get(ts, depth_map_end_transform,
true))
194 acquisition_transforms->laser_in_odometry.push_back(depth_map_end_transform);
195 return PointCloudConversion::convertToPointCloud(depth_map_sample, acquisition_transforms->laser_in_odometry,
200 LOG_DEBUG_S <<
"No acquisition transforms for the current sample available!";
202 LOG_ERROR_S <<
"Failed to convert depth map to point cloud, missing scan acquisition transformations!";
206 template<
class ElementIterator>
209 for(;it_first != it_last; it_first++)
211 _transformer.pushData(depth_map_idx_tr, *it_last, depth_map_sample);
std::list< SampleTransforms > depth_map_acquisition_transforms
Definition: ConverterBase.hpp:90
friend class ConverterBaseBase
Definition: ConverterBase.hpp:29
The task context provides and requires services. It uses an ExecutionEngine to perform its functions...
Definition: ConverterBase.hpp:27
MotionCompensation motion_compensation
Definition: ConverterBase.hpp:91
void updateHook()
Definition: ConverterBase.cpp:125
Definition: ConverterBase.hpp:11
void pushDepthMapTimestamps(ElementIterator it_first, ElementIterator it_last, const base::samples::DepthMap &depth_map_sample)
Definition: ConverterBase.hpp:207
virtual void newSampleCallback(const base::Time &ts, const base::samples::DepthMap &depth_map_sample)=0
bool startHook()
Definition: ConverterBase.cpp:118
~ConverterBase()
Definition: ConverterBase.cpp:17
void stopHook()
Definition: ConverterBase.cpp:133
void registerAcquisitionTimeStream()
Definition: ConverterBase.cpp:83
bool configureHook()
The following lines are template definitions for the various state machine.
Definition: ConverterBase.cpp:105
void cleanupHook()
Definition: ConverterBase.cpp:137
bool convertToPointCloud(const base::Time &ts, const base::samples::DepthMap &depth_map_sample, std::vector< T > &pointcloud)
Definition: ConverterBase.hpp:173
virtual void pullPorts()
Definition: ConverterBase.cpp:46
void errorHook()
Definition: ConverterBase.cpp:129
virtual void depth_mapTransformerCallback(const base::Time &ts, const base::samples::DepthMap &depth_map_sample)
Definition: ConverterBase.cpp:41
unsigned acquisition_timestamps
Definition: ConverterBase.hpp:92
virtual void depth_mapAcquisitionTimeTransformerCallback(const base::Time &ts, const base::Time &depth_map_sample_start)
Definition: ConverterBase.cpp:21
int depth_map_acquisition_times_idx_tr
Definition: ConverterBase.hpp:89
ConverterBase(std::string const &name="depth_map_preprocessing::ConverterBase")
Definition: ConverterBase.cpp:7