AURobotServers  4
Public Member Functions | Private Attributes | List of all members
UClientLaserData Class Reference

#include <ulaserdataset.h>

Public Member Functions

double getAngle ()
 
double getDistance (int set=0)
 
int getFlag ()
 
UPosition getPosition (UPosition laserPos, double cosLaserTilt, int set=0)
 
UPosition getPosition (UMatrix4 *movLtoR, int set=0)
 
int getRangeCnt ()
 
double getSdL ()
 
double getTilt ()
 
double getVarL ()
 
bool isValid (int set=0)
 
void print (char *preString)
 
bool setFromTag (USmlTag *tag)
 
void setValue (double ang, unsigned char lsb, unsigned char msb, double measurementUnits)
 
void setValue (double ang, int set, int rng)
 
 UClientLaserData ()
 

Private Attributes

double angle
 
int flag
 
double range [5]
 
int rangeCnt
 
double tilt
 
double varL
 

Detailed Description

Class to hold one measurement of a laser scan

Constructor & Destructor Documentation

UClientLaserData::UClientLaserData ( )

Constructor

References flag, and rangeCnt.

Member Function Documentation

double UClientLaserData::getAngle ( )
inline

Set values from tag data Get measurement angle

References angle.

Referenced by getPosition(), and ULaserDataSet::print().

double UClientLaserData::getDistance ( int  set = 0)
inline
int UClientLaserData::getFlag ( )
inline

Is measurement dazzeled (measurement is not valid)

References flag.

Referenced by UNavPaint::paintHistScan().

UPosition UClientLaserData::getPosition ( UPosition  laserPos,
double  cosLaserTilt,
int  set = 0 
)

Get position as 3D relative to robot, when laser is positioned at laserPos - assuming same orientation

References getAngle(), getDistance(), UPosition::x, and UPosition::y.

Referenced by getTilt(), UPaintLaserScan::makeScanCloud(), UNavPaint::paintHistScan(), and UNavPaint::paintScanNewest().

UPosition UClientLaserData::getPosition ( UMatrix4 movLtoR,
int  set = 0 
)

Get position in robot coordinates using full pose set

References getAngle(), getDistance(), UPosition::x, UPosition::y, and UPosition::z.

int UClientLaserData::getRangeCnt ( )
inline

get number of measdurements at this angle

References rangeCnt.

Referenced by UNavPaint::paintHistScan(), and UNavPaint::paintScanNewest().

double UClientLaserData::getSdL ( )
inline

Get measurement deviation to the left

References varL.

double UClientLaserData::getTilt ( )
inline

Get measurement variance to the right

References getPosition(), print(), setFromTag(), and tilt.

double UClientLaserData::getVarL ( )
inline

Get measurement variance to the left

References varL.

bool UClientLaserData::isValid ( int  set = 0)
inline
void UClientLaserData::print ( char *  preString)

Print values of this measurement

References angle, bool2str(), isValid(), and range.

Referenced by ULaserDataSet::getLaserTilt(), getTilt(), and ULaserDataSet::print().

bool UClientLaserData::setFromTag ( USmlTag tag)

Set values from a message tag

Returns
true if set

References angle, flag, USmlTagIn::getNextAttribute(), MAX_SML_NAME_LENGTH, range, rangeCnt, tilt, and varL.

Referenced by getTilt(), and UResLaserIfScan::handleLaserScan().

void UClientLaserData::setValue ( double  ang,
unsigned char  lsb,
unsigned char  msb,
double  measurementUnits 
)

Set values from 2-byte data

References angle, flag, range, and rangeCnt.

Referenced by UResLaserIfScan::handleLaserScan().

void UClientLaserData::setValue ( double  ang,
int  set,
int  rng 
)

Set values from LIST structure

Parameters
angis angle in degrees (used for set 0 only)
setis number of range set - must be loaded in set order, as set 0 will reset the measurement at this angle. NB! no limit test for set - must be within [0..4].
rngis range measurement in mm

References angle, range, and rangeCnt.

Member Data Documentation

double UClientLaserData::angle
private

Angle of measurement in radians

Referenced by getAngle(), print(), setFromTag(), and setValue().

int UClientLaserData::flag
private

Measuremnt is in zone A or otherwise

Referenced by getFlag(), setFromTag(), setValue(), and UClientLaserData().

double UClientLaserData::range[5]
private

Distance in meter

Referenced by getDistance(), isValid(), print(), setFromTag(), and setValue().

int UClientLaserData::rangeCnt
private

number of used ranges

Referenced by getRangeCnt(), isValid(), setFromTag(), setValue(), and UClientLaserData().

double UClientLaserData::tilt
private

tilt of line-fit

Referenced by getTilt(), and setFromTag().

double UClientLaserData::varL
private

Variance

Referenced by getSdL(), getVarL(), and setFromTag().


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