Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
alvar::MultiMarkerInitializer Class Reference

Initializes multi marker by estimating their relative positions from one or more images. More...

#include <MultiMarkerInitializer.h>

Inheritance diagram for alvar::MultiMarkerInitializer:
Inheritance graph
[legend]

List of all members.

Classes

class  MarkerMeasurement
 MarkerMeasurement that holds the maker id. More...

Public Member Functions

int getMeasurementCount ()
const std::vector
< MarkerMeasurement,
Eigen::aligned_allocator
< MarkerMeasurement > > & 
getMeasurementMarkers (int measurement)
double getMeasurementPose (int measurement, Camera *cam, Pose &pose)
int Initialize (Camera *cam)
template<class M >
void MeasurementsAdd (const std::vector< M, Eigen::aligned_allocator< M > > *markers)
void MeasurementsReset ()
 MultiMarkerInitializer (std::vector< int > &indices, int filter_buffer_min=4, int filter_buffer_max=15)
 ~MultiMarkerInitializer ()

Protected Types

typedef std::vector
< std::vector
< MarkerMeasurement,
Eigen::aligned_allocator
< MarkerMeasurement >
> >::iterator 
MeasurementIterator

Protected Member Functions

void MeasurementsAdd (MarkerIterator &begin, MarkerIterator &end)
bool updateMarkerPoses (std::vector< MarkerMeasurement, Eigen::aligned_allocator< MarkerMeasurement > > &markers, const Pose &pose)

Protected Attributes

int filter_buffer_min
std::vector< bool > marker_detected
std::vector< std::vector
< MarkerMeasurement,
Eigen::aligned_allocator
< MarkerMeasurement > > > 
measurements
FilterMedianpointcloud_filtered

Detailed Description

Initializes multi marker by estimating their relative positions from one or more images.

To use, detect markers from images using MarkerDetector and call addMeasurement for each image that has at least two markers. Finally, call initialize to compute the relative positions of markers.

After the multi marker has been initialized, the point cloud can be copied into another MultiMarker implementation by PointCloudCopy.

Examples:
SampleMultiMarkerBundle.cpp.

Definition at line 50 of file MultiMarkerInitializer.h.


Member Typedef Documentation

typedef std::vector<std::vector<MarkerMeasurement, Eigen::aligned_allocator<MarkerMeasurement> > >::iterator alvar::MultiMarkerInitializer::MeasurementIterator [protected]

Definition at line 68 of file MultiMarkerInitializer.h.


Constructor & Destructor Documentation

alvar::MultiMarkerInitializer::MultiMarkerInitializer ( std::vector< int > &  indices,
int  filter_buffer_min = 4,
int  filter_buffer_max = 15 
)

Definition at line 32 of file MultiMarkerInitializer.cpp.


Member Function Documentation

Examples:
SampleMultiMarkerBundle.cpp.

Definition at line 113 of file MultiMarkerInitializer.h.

const std::vector<MarkerMeasurement, Eigen::aligned_allocator<MarkerMeasurement> >& alvar::MultiMarkerInitializer::getMeasurementMarkers ( int  measurement) [inline]
Examples:
SampleMultiMarkerBundle.cpp.

Definition at line 115 of file MultiMarkerInitializer.h.

double alvar::MultiMarkerInitializer::getMeasurementPose ( int  measurement,
Camera cam,
Pose pose 
) [inline]
Examples:
SampleMultiMarkerBundle.cpp.

Definition at line 119 of file MultiMarkerInitializer.h.

Tries to deduce marker poses from measurements.

Returns the number of initialized markers.

Examples:
SampleMultiMarkerBundle.cpp.

Definition at line 94 of file MultiMarkerInitializer.cpp.

Examples:
SampleMultiMarkerBundle.cpp.

Definition at line 44 of file MultiMarkerInitializer.cpp.

template<class M >
void alvar::MultiMarkerInitializer::MeasurementsAdd ( const std::vector< M, Eigen::aligned_allocator< M > > *  markers) [inline]

Adds a new measurement for marker field initialization. Each measurement should contain at least two markers. It does not matter which markers are visible, especially the zero marker does not have to be visible in every measurement. It suffices that there exists a 'path' from the zero marker to every other marker in the marker field.

For example:

  • first measurement contains marker A and B.
  • second measurement containt markers ZERO and A.

When Initialize is called, the system can first deduce the pose of A and then the pose of B.

Definition at line 95 of file MultiMarkerInitializer.h.

Examples:
SampleMultiMarkerBundle.cpp.

Definition at line 83 of file MultiMarkerInitializer.cpp.

bool alvar::MultiMarkerInitializer::updateMarkerPoses ( std::vector< MarkerMeasurement, Eigen::aligned_allocator< MarkerMeasurement > > &  markers,
const Pose pose 
) [protected]

Definition at line 120 of file MultiMarkerInitializer.cpp.


Member Data Documentation

Definition at line 70 of file MultiMarkerInitializer.h.

std::vector<bool> alvar::MultiMarkerInitializer::marker_detected [protected]

Definition at line 66 of file MultiMarkerInitializer.h.

std::vector<std::vector<MarkerMeasurement, Eigen::aligned_allocator<MarkerMeasurement> > > alvar::MultiMarkerInitializer::measurements [protected]

Definition at line 67 of file MultiMarkerInitializer.h.

Definition at line 69 of file MultiMarkerInitializer.h.


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


ar_track_alvar
Author(s): Scott Niekum
autogenerated on Thu Jun 6 2019 21:12:55