Aria  2.8.0
ArLineFinder Class Reference

This class finds lines out of any range device with raw readings (lasers for instance) More...

#include <ArLineFinder.h>

Public Member Functions

void addToConfig (ArConfig *config, const char *section)
 
 ArLineFinder (ArRangeDevice *dev)
 Constructor.
 
std::map< int, ArLineFinderSegment * > * getLines (void)
 Finds the lines and returns a pointer to ArLineFinder's map of them. More...
 
void getLinesAndSaveThem (void)
 Gets the lines, then prints them.
 
std::set< ArLineFinderSegment * > getLinesAsSet ()
 Finds the lines, then copies pointers to them them into a new set.
 
ArPose getLinesTakenPose (void)
 Gets the position the last lines were gotten at.
 
std::map< int, ArPose > * getNonLinePoints (void)
 Finds the lines, but then returns a pointer to ArLineFinder's map of the points that AREN'T in lines. More...
 
std::set< ArPosegetNonLinePointsAsSet ()
 Finds the lines, and then copies the points that AREN'T in the lines into a new set.
 
bool getVerbose (void)
 Whether to print verbose information about line decisions.
 
void saveLast (void)
 Logs all the points and lines from the last getLines. More...
 
void setLineCombiningParams (int angleTol=30, int linesCloseEnough=75)
 Sets some parameters for line combining.
 
void setLineCreationParams (int minLineLen=40, int minLinePoints=2)
 Sets some parameters for line creation.
 
void setLineFilteringParams (int minPointsInLine=3, int minLineLength=75)
 Filter out lines smaller than this.
 
void setLineValidParams (int maxDistFromLine=30, int maxAveDistFromLine=20)
 Don't let lines happen that have points not close to it.
 
void setMaxDistBetweenPoints (int maxDistBetweenPoints=0)
 Sets the maximum distance between points that'll still be included in the same line.
 
void setVerbose (bool verbose)
 Whether to print verbose information about line decisions.
 
virtual ~ArLineFinder ()
 Destructor.
 

Protected Member Functions

ArLineFinderSegmentaverageSegments (ArLineFinderSegment *line1, ArLineFinderSegment *line2)
 
bool combineLines ()
 
void fillPointsFromLaser (void)
 
void filterLines ()
 
void findLines (void)
 

Protected Attributes

int myCombiningAngleTol
 
int myCombiningLinesCloseEnough
 
int myFilteringMinLineLength
 
int myFilteringMinPointsInLine
 
bool myFlipped
 
bool myFlippedFound
 
std::map< int, ArLineFinderSegment * > * myLines
 
int myMakingMinLen
 
int myMakingMinPoints
 
int myMaxDistBetweenPoints
 
std::map< int, ArPose > * myNonLinePoints
 
std::map< int, ArPose > * myPoints
 
ArPose myPoseTaken
 
bool myPrinting
 
ArRangeDevicemyRangeDevice
 
double mySinMultiplier
 
int myValidMaxAveFromLine
 
int myValidMaxDistFromLine
 

Detailed Description

This class finds lines out of any range device with raw readings (lasers for instance)

Examples:
lineFinderExample.cpp.

Member Function Documentation

◆ getLines()

std::map< int, ArLineFinderSegment * > * ArLineFinder::getLines ( void  )

Finds the lines and returns a pointer to ArLineFinder's map of them.

Java and Python Wrappers: Not available in Java or Python wrapper libraries.

◆ getNonLinePoints()

std::map< int, ArPose > * ArLineFinder::getNonLinePoints ( void  )

Finds the lines, but then returns a pointer to ArLineFinder's map of the points that AREN'T in lines.

Java and Python Wrappers: Not available in Java or Python wrapper libraries.

◆ saveLast()

void ArLineFinder::saveLast ( void  )

Logs all the points and lines from the last getLines.

Saves the points in the "points" with all the points file in the current directory and saves the "lines" file with the final lines in the current directory.


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