Aria
2.8.0
|
A class to hold a sensor reading, should be one instance per sensor. More...
#include <ArSensorReading.h>
Public Member Functions | |
void | applyEncoderTransform (ArTransform trans) |
Applies a transform to the encoder pose taken. More... | |
void | applyTransform (ArTransform trans) |
Applies a transform to the reading position, and where it was taken. More... | |
ArSensorReading (double xPos=0.0, double yPos=0.0, double thPos=0.0) | |
Constructor, the three args are the physical location of the sensor. More... | |
ArSensorReading (const ArSensorReading &reading) | |
Copy constructor. | |
bool | getAdjusted (void) |
Applies a transform to the reading position, and where it was taken. | |
unsigned int | getCounterTaken (void) const |
Gets the counter from when the reading arrived. More... | |
ArPose | getEncoderPoseTaken (void) const |
Gets the robot's encoder pose the reading was taken at. More... | |
int | getExtraInt (void) const |
Gets the extra int with this reading. More... | |
bool | getIgnoreThisReading (void) const |
Gets whether this reading should be ignore or not. More... | |
ArPose | getLocalPose (void) const |
Gets the position of the reading. More... | |
double | getLocalX (void) const |
Gets the X location of the sensor reading in local coords. | |
double | getLocalY (void) const |
Gets the Y location of the sensor reading. | |
ArPose | getPose (void) const |
Gets the position of the reading. More... | |
ArPose | getPoseTaken (void) const |
Gets the pose of the robot at which the reading was taken. More... | |
unsigned int | getRange (void) const |
Gets the range from sensor of the reading. More... | |
double | getSensorDX (void) const |
Gets the cosine component of the heading of the sensor reading. | |
double | getSensorDY (void) const |
Gets the sine component of the heading of the sensor reading. | |
ArPose | getSensorPosition (void) const |
Gets the sensor's position on the robot. More... | |
double | getSensorTh (void) const |
Gets the heading of the sensor on the robot. More... | |
double | getSensorX (void) const |
Gets the X location of the sonar on the robot. More... | |
double | getSensorY (void) const |
Gets the Y location of the sensor on the robot. More... | |
double | getThTaken (void) const |
Gets the th (heading) of the robot when the reading was received. More... | |
ArTime | getTimeTaken (void) const |
double | getX (void) const |
Gets the X location of the sensor reading. | |
double | getXTaken (void) const |
Gets the X locaiton of the robot when the reading was received. More... | |
double | getY (void) const |
Gets the Y location of the sensor reading. | |
double | getYTaken (void) const |
Gets the Y location of the robot when the reading was received. More... | |
bool | isNew (unsigned int counter) const |
Given the counter from the robot, it returns whether the reading is new. More... | |
void | newData (int range, ArPose robotPose, ArPose encoderPose, ArTransform trans, unsigned int counter, ArTime timeTaken, bool ignoreThisReading=false, int extraInt=0) |
Takes the data and makes the reading reflect it. More... | |
void | newData (int sx, int sy, ArPose robotPose, ArPose encoderPose, ArTransform trans, unsigned int counter, ArTime timeTaken, bool ignoreThisReading=false, int extraInt=0) |
Takes the data and makes the reading reflect it. More... | |
ArSensorReading & | operator= (const ArSensorReading &reading) |
Assignment operator. | |
void | resetSensorPosition (double xPos, double yPos, double thPos, bool forceComputation=false) |
Resets the sensors idea of its physical location on the robot. More... | |
void | setAdjusted (bool adjusted) |
Applies a transform to the reading position, and where it was taken. | |
void | setExtraInt (int extraInt) |
Sets the extra int. | |
void | setIgnoreThisReading (bool ignoreThisReading) |
Sets that we should ignore this reading. | |
virtual | ~ArSensorReading () |
Destructor. | |
Protected Attributes | |
bool | myAdjusted |
double | myAngleToCenter |
unsigned int | myCounterTaken |
double | myDistToCenter |
ArPose | myEncoderPoseTaken |
int | myExtraInt |
bool | myIgnoreThisReading |
ArPose | myLocalReading |
int | myRange |
ArPose | myReading |
ArPose | myReadingTaken |
double | mySensorCos |
ArPose | mySensorPos |
double | mySensorSin |
ArTime | myTimeTaken |
A class to hold a sensor reading, should be one instance per sensor.
This class holds sensor data and a sensor reading... it can happen that it contains the data for a sonar, but not the reading, in which case the range (from getRange) will be -1, and the counter it was taken (from getCounterTaken) will be 0, also it will never be new (from isNew). If ignoreThisReading returns true then ignore this reading (its still here since this is used for raw data).
ArSensorReading::ArSensorReading | ( | double | xPos = 0.0 , |
double | yPos = 0.0 , |
||
double | thPos = 0.0 |
||
) |
Constructor, the three args are the physical location of the sensor.
xPos | the x position of the sensor on the robot (mm) |
yPos | the y position of the sensor on the robot (mm) |
thPos | the heading of the sensor on the robot (deg) |
void ArSensorReading::applyEncoderTransform | ( | ArTransform | trans | ) |
Applies a transform to the encoder pose taken.
trans | the transform to apply to the encoder pose taken |
void ArSensorReading::applyTransform | ( | ArTransform | trans | ) |
Applies a transform to the reading position, and where it was taken.
trans | the transform to apply to the reading and where the reading was taken |
|
inline |
Gets the counter from when the reading arrived.
|
inline |
Gets the robot's encoder pose the reading was taken at.
|
inline |
Gets the extra int with this reading.
Some range devices provide extra device-dependent information with each reading. What that means depends on the range device, if a range device doesn't give the meaning in its constructor description then it has no meaning at all.
Note that for all laser like devices this should be a value between 0 - 255 which is the measure of reflectance. It should be 0 if that device doesn't measure reflectance (the default).
|
inline |
Gets whether this reading should be ignore or not.
e.g. the sensor encountered an error or did not actually detect anything.
|
inline |
Gets the position of the reading.
|
inline |
Gets the position of the reading.
|
inline |
Gets the pose of the robot at which the reading was taken.
|
inline |
Gets the range from sensor of the reading.
|
inline |
Gets the sensor's position on the robot.
|
inline |
Gets the heading of the sensor on the robot.
|
inline |
Gets the X location of the sonar on the robot.
|
inline |
Gets the Y location of the sensor on the robot.
|
inline |
Gets the th (heading) of the robot when the reading was received.
|
inline |
Gets the X locaiton of the robot when the reading was received.
|
inline |
Gets the Y location of the robot when the reading was received.
|
inline |
Given the counter from the robot, it returns whether the reading is new.
counter | the counter from the robot at the current time |
void ArSensorReading::newData | ( | int | range, |
ArPose | robotPose, | ||
ArPose | encoderPose, | ||
ArTransform | trans, | ||
unsigned int | counter, | ||
ArTime | timeTaken, | ||
bool | ignoreThisReading = false , |
||
int | extraInt = 0 |
||
) |
Takes the data and makes the reading reflect it.
range | the distance from the sensor to the sensor return (mm) |
robotPose | the robot's pose when the reading was taken |
encoderPose | the robot's encoder pose when the reading was taken |
trans | the transform from local coords to global coords |
counter | the counter from the robot when the sensor reading was taken |
timeTaken | the time the reading was taken |
ignoreThisReading | if this reading should be ignored or not |
extraInt | extra laser device-specific value associated with this reading (e.g. SICK LMS-200 reflectance) |
void ArSensorReading::newData | ( | int | sx, |
int | sy, | ||
ArPose | robotPose, | ||
ArPose | encoderPose, | ||
ArTransform | trans, | ||
unsigned int | counter, | ||
ArTime | timeTaken, | ||
bool | ignoreThisReading = false , |
||
int | extraInt = 0 |
||
) |
Takes the data and makes the reading reflect it.
sx | the coords of the sensor return relative to sensor (mm) |
sy | the coords of the sensor return relative to sensor (mm) |
robotPose | the robot's pose when the reading was taken |
encoderPose | the robot's encoder pose when the reading was taken |
trans | transform of reading from local to global position |
counter | the counter from the robot when the sensor reading was taken |
timeTaken | the time the reading was taken |
ignoreThisReading | if this reading should be ignored or not |
extraInt | extra laser device-specific value associated with this reading (e.g. SICK LMS-200 reflectance) |
void ArSensorReading::resetSensorPosition | ( | double | xPos, |
double | yPos, | ||
double | thPos, | ||
bool | forceComputation = false |
||
) |
Resets the sensors idea of its physical location on the robot.
xPos | the x position of the sensor on the robot (mm) |
yPos | the y position of the sensor on the robot (mm) |
thPos | the heading of the sensor on the robot (deg) |
forceComputation | recompute position even if new position is the same as current |