#include <ArLaserFilter.h>
Inheritance diagram for ArLaserFilter:
This is a class for generically filtering laser readings, either to separate out ones that are too far or too close compared to their neighbors. The filtering parameters can be adjusted on line through ArConfig options.
This implements ArLaser and so can be used like any other laser, though you have to set all its options before you create this and probably should connect it too. Then you should replace the original laser on ArRobot with this one, and replace the original laser as a range device too.
Public Member Functions | |
void | addToConfig (ArConfig *config, const char *sectionName, const char *prefix="") |
Add to the config. | |
ArLaserFilter (ArLaser *laser, const char *name=NULL) | |
Constructor. | |
virtual bool | asyncConnect (void) |
virtual bool | blockingConnect (void) |
virtual bool | disconnect (void) |
ArLaser * | getBaseLaser (void) |
Gets the base laser this is filtering. | |
virtual bool | isConnected (void) |
virtual bool | isTryingToConnect (void) |
virtual bool | laserCheckParams (void) |
virtual void * | runThread (void *arg) |
virtual void | setRobot (ArRobot *robot) |
Set robot. | |
~ArLaserFilter () | |
Destructor. | |
Protected Member Functions | |
bool | checkRanges (int thisReading, int otherReading, double factor) |
Does the check against all neighbor factor. | |
void | processReadings (void) |
int | selfLockDevice (void) |
int | selfTryLockDevice (void) |
int | selfUnlockDevice (void) |
Protected Attributes | |
double | myAllFactor |
double | myAngleToCheck |
double | myAnyFactor |
ArLaser * | myLaser |
int | myMaxRange |
ArFunctorC< ArLaserFilter > | myProcessCB |