#include <ArSick.h>
Inheritance diagram for ArSick:
Public Types | |
enum | BaudRate { BAUD9600, BAUD19200, BAUD38400 } |
enum | Degrees { DEGREES180, DEGREES100 } |
enum | Increment { INCREMENT_ONE, INCREMENT_HALF } |
Public Member Functions | |
void | addConnectCB (ArFunctor *functor, ArListPos::Pos position=ArListPos::LAST) |
Adds a connect callback. | |
void | addDataCB (ArFunctor *functor, ArListPos::Pos position=ArListPos::LAST) |
Adds a callback that is called whenever a laser packet is processed. | |
void | addDisconnectNormallyCB (ArFunctor *functor, ArListPos::Pos position=ArListPos::LAST) |
Adds a callback for when disconnect is called while connected. | |
void | addDisconnectOnErrorCB (ArFunctor *functor, ArListPos::Pos position=ArListPos::LAST) |
Adds a callback for when disconnection happens because of an error. | |
void | addFailedConnectCB (ArFunctor *functor, ArListPos::Pos position=ArListPos::LAST) |
Adds a callback for when a connection to the robot is failed. | |
void | addIgnoreReading (double ignoreReading) |
Adds a degree at which to ignore readings (within 1 degree). | |
virtual void | applyTransform (ArTransform trans, bool doCumulative=true) |
Applies a transform to the buffers. | |
ArSick (size_t currentBufferSize=361, size_t cumulativeBufferSize=0, const char *name="laser", bool addAriaExitCB=true) | |
Constructor. | |
bool | asyncConnect (void) |
Connect to the laser asyncronously. | |
bool | blockingConnect (void) |
Connect to the laser while blocking. | |
void | clearIgnoreReadings (void) |
Clears the degrees we ignore readings at. | |
void | configure (bool useSim=false, bool powerControl=true, bool laserFlipped=false, BaudRate baud=BAUD38400, Degrees deg=DEGREES180, Increment incr=INCREMENT_ONE) |
Configure the laser before connecting to it. | |
void | configureShort (bool useSim=false, BaudRate baud=BAUD38400, Degrees deg=DEGREES180, Increment incr=INCREMENT_ONE) |
Shorter configure for the laser (settings are overridden by the .p file). | |
bool | disconnect (bool doNotLockRobotForSim=false) |
Disconnect from the laser. | |
void | dropConnection (void) |
void | failedConnect (void) |
int | getConnectionTimeoutTime (void) |
Gets the time without a response until connection assumed lost. | |
Degrees | getDegrees (void) |
Gets the degrees the laser is scanning. | |
ArDeviceConnection * | getDeviceConnection (void) |
Gets the device connection. | |
int | getFilterCleanCumulativeInterval (void) |
Cumulative readings are cleaned every this number of milliseconds. | |
double | getFilterCumulativeCleanDist (void) |
Cumulative readings that are this close to current beams are discarded. | |
double | getFilterCumulativeInsertMaxDist (void) |
Cumulative readings must be taken within this distance to the robot to be added. | |
int | getFilterCumulativeMaxAge (void) |
double | getFilterCumulativeMaxDist (void) |
You should see getMaxDistToKeepCumulative (it replaces this). | |
double | getFilterCumulativeNearDist (void) |
Cumulative readings closer than this are discarded as too close. | |
double | getFilterNearDist (void) |
Current readings closer than this are discarded as too close. | |
const std::list< double > * | getIgnoreReadings (void) const |
Gets the list of readings that we ignore. | |
Increment | getIncrement (void) |
Gets the amount each scan increments. | |
ArTime | getLastReadingTime (void) |
Gets the time data was last receieved. | |
unsigned int | getMinRange (void) |
Gets the minimum range for this device (defaults to 100 mm). | |
ArPose | getSensorPosition () |
Gets the position of the laser on the robot. | |
double | getSensorPositionTh () |
Gets the heading of the laser on the robot. | |
double | getSensorPositionX () |
Gets the X position of the laser on the robot. | |
double | getSensorPositionY () |
Gets the Y position of the laser on the robot. | |
int | getSickPacCount () |
Gets the number of laser packets received in the last second. | |
int | internalConnectHandler (void) |
An internal function, single loop event to connect to laser. | |
bool | internalConnectSim (void) |
bool | isConnected (void) |
Sees if this is connected to the laser. | |
bool | isControllingPower (void) |
Gets whether the computer is controling laser power or not. | |
bool | isLaserFlipped (void) |
Gets whether the laser is flipped over or not. | |
bool | isUsingSim (void) |
Gets whether the laser is simulated or not. | |
void | madeConnection (void) |
void | processPacket (ArSickPacket *packet, ArPose pose, ArPose encoderPose, unsigned int counter, bool deinterlace, ArPose deinterlaceDelta) |
void | remConnectCB (ArFunctor *functor) |
Adds a disconnect callback. | |
void | remDataCB (ArFunctor *functor) |
Removes a callback that is called whenever a laser packet is processed. | |
void | remDisconnectNormallyCB (ArFunctor *functor) |
Removes a callback for when disconnect is called while connected. | |
void | remDisconnectOnErrorCB (ArFunctor *functor) |
Removes a callback for when disconnection happens because of an error. | |
void | remFailedConnectCB (ArFunctor *functor) |
Removes a callback for when a connection to the robot is failed. | |
void | robotConnectCallback (void) |
void | runOnce (bool lockRobot) |
bool | runOnRobot (void) |
Runs the laser off of the robot. | |
virtual void * | runThread (void *arg) |
void | sensorInterpCallback (void) |
void | setConnectionTimeoutTime (int mSecs) |
Sets the time without a response until connection assumed lost. | |
void | setDeviceConnection (ArDeviceConnection *conn) |
Sets the device connection. | |
void | setFilterCleanCumulativeInterval (int milliSeconds) |
Cumulative readings are cleaned every this number of milliseconds. | |
void | setFilterCumulativeCleanDist (double dist) |
Cumulative readings that are this close to current beams are discarded. | |
void | setFilterCumulativeInsertMaxDist (double dist) |
Cumulative readings must be taken within this distance to the robot to be added. | |
void | setFilterCumulativeMaxAge (int seconds) |
void | setFilterCumulativeMaxDist (double dist) |
You should see setMaxDistToKeepCumulative (it replaces this). | |
void | setFilterCumulativeNearDist (double dist) |
Cumulative readings closer than this are discarded as too close. | |
void | setFilterNearDist (double dist) |
Current readings closer than this are discarded as too close. | |
void | setIsControllingPower (bool controlPower) |
Sets whether the computer is controling laser power or not. | |
void | setIsLaserFlipped (bool laserFlipped) |
Sets whether the laser is flipped over or not. | |
void | setIsUsingSim (bool usingSim) |
Sets whether the laser is simulated or not. | |
void | setMinRange (unsigned int minRange) |
Sets the maximum range for this device (defaults to 100 mm). | |
virtual void | setRobot (ArRobot *robot) |
Sets the robot this device is attached to. | |
void | setSensorPosition (ArPose pose) |
Sets the position of the laser on the robot. | |
void | setSensorPosition (double x, double y, double th) |
Sets the position of the laser on the robot. | |
bool | simPacketHandler (ArRobotPacket *packet) |
bool | tryingToConnect (void) |
Sees if this is trying to connect to the laser at the moment. | |
virtual | ~ArSick () |
Destructor. | |
Protected Types | |
enum | State { STATE_NONE, STATE_INIT, STATE_WAIT_FOR_POWER_ON, STATE_CHANGE_BAUD, STATE_CONFIGURE, STATE_WAIT_FOR_CONFIGURE_ACK, STATE_INSTALL_MODE, STATE_WAIT_FOR_INSTALL_MODE_ACK, STATE_SET_MODE, STATE_WAIT_FOR_SET_MODE_ACK, STATE_START_READINGS, STATE_WAIT_FOR_START_ACK, STATE_CONNECTED } |
Protected Member Functions | |
void | filterAddAndCleanCumulative (double x, double y, bool clean) |
Internal function for managing the cumulative. | |
void | filterFarAndOldCumulative (void) |
Internal function for managing the cumulative. | |
void | filterReadings () |
Internal function for filtering the raw readings and updating buffers. | |
void | switchState (State state) |
Internal function for switching states. | |
Protected Attributes | |
ArRetFunctor1C< bool, ArSick, bool > | myAriaExitCB |
std::list< ArSensorReading * > * | myAssembleReadings |
BaudRate | myBaud |
ArDeviceConnection * | myConn |
std::list< ArFunctor * > | myConnectCBList |
ArMutex | myConnLock |
std::list< ArSensorReading * > * | myCurrentReadings |
std::list< ArFunctor * > | myDataCBList |
Degrees | myDegrees |
std::list< ArFunctor * > | myDisconnectNormallyCBList |
std::list< ArFunctor * > | myDisconnectOnErrorCBList |
std::list< ArFunctor * > | myFailedConnectCBList |
int | myFilterCleanCumulativeInterval |
double | myFilterCumulativeCleanDist |
double | myFilterCumulativeInsertMaxDist |
double | myFilterCumulativeNearDist |
double | myFilterNearDist |
double | myFilterSquaredCumulativeCleanDist |
double | myFilterSquaredCumulativeInsertMaxDist |
double | myFilterSquaredCumulativeNearDist |
std::list< double > | myIgnoreReadings |
Readings we ignore. | |
Increment | myIncrement |
double | myIncrementAmount |
bool | myInterpolation |
std::list< ArSensorReading * >::iterator | myIter |
bool | myLaserFlipped |
ArTime | myLastCleanedCumulative |
ArTime | myLastReading |
unsigned int | myMinRange |
double | myOffsetAmount |
ArSickPacket | myPacket |
std::list< ArSickPacket * > | myPackets |
bool | myPowerControl |
bool | myProcessImmediately |
bool | myRealConfigured |
ArFunctorC< ArSick > | myRobotConnectCB |
bool | myRunInOwnThread |
bool | myRunningOnRobot |
ArFunctorC< ArSick > | mySensorInterpCB |
ArPose | mySensorPose |
int | mySickPacCount |
int | mySickPacCurrentCount |
ArSickPacketReceiver | mySickPacketReceiver |
unsigned int | mySimPacketCounter |
ArTransform | mySimPacketEncoderTrans |
ArRetFunctor1C< bool, ArSick, ArRobotPacket * > | mySimPacketHandler |
ArPose | mySimPacketStart |
ArTransform | mySimPacketTrans |
bool | myStartConnect |
State | myState |
ArMutex | myStateMutex |
ArTime | myStateStart |
time_t | myTimeLastSickPacket |
int | myTimeoutTime |
unsigned int | myTotalNumReadings |
bool | myUseSim |
unsigned int | myWhichReading |
Definition at line 39 of file ArSick.h.
|
|
|
|
|
|
|
|
Adds a connect callback. Adds a connect callback, which is an ArFunctor, created as an ArFunctorC. The entire list of connect callbacks is called when a connection is made with the laser. If you have some sort of module that adds a callback, that module must remove the callback when the module is removed.
Definition at line 1259 of file ArSick.cpp. References ArLog::log(). |
|
Adds a callback that is called whenever a laser packet is processed. Adds a data callback, which is an ArFunctor, created as an ArFunctorC. Whenever a new reading is processed this callback is called. You can then get the raw readings with getRawReadings.
Definition at line 1396 of file ArSick.cpp. References ArLog::log(). |
|
Adds a callback for when disconnect is called while connected. Adds a disconnect normally callback,which is an ArFunctor, created as an ArFunctorC. This whole list of disconnect normally callbacks is called when something calls disconnect if the instance isConnected. If there is no connection and disconnect is called nothing is done. If you have some sort of module that adds a callback, that module must remove the callback when the module is removed.
Definition at line 1328 of file ArSick.cpp. References ArLog::log(). |
|
Adds a callback for when disconnection happens because of an error. Adds a disconnect on error callback, which is an ArFunctor, created as an ArFunctorC. This whole list of disconnect on error callbacks is called when ARIA loses connection to a laser because of an error. This can occur if the physical connection (ie serial cable) between the laser and the computer is severed/disconnected, or if the laser is turned off. Note that if the link between the two is lost the ARIA assumes it is temporary until it reaches a timeout value set with setConnectionTimeoutTime. If you have some sort of module that adds a callback, that module must remove the callback when the module removed.
Definition at line 1365 of file ArSick.cpp. References ArLog::log(). |
|
Adds a callback for when a connection to the robot is failed. Adds a failed connect callback,which is an ArFunctor, created as an ArFunctorC. This whole list of failed connect callbacks is called when an attempt is made to connect to the laser, but fails. The usual reason for this failure is either that there is no laser/sim where the connection was tried to be made. If you have some sort of module that adds a callback, that module must remove the callback when the module removed.
Definition at line 1294 of file ArSick.cpp. References ArLog::log(). |
|
Applies a transform to the buffers. Applies a transform to the buffers.. this is mostly useful for translating to/from local/global coords, but may have other uses. This is different from the class because it also transforms the raw readings.
Reimplemented from ArRangeDevice. Definition at line 2129 of file ArSick.cpp. References ArRangeBuffer::applyTransform(). |
|
Connect to the laser asyncronously. This does not lockDevice the laser, but you should lockDevice the laser before you try to connect. Also note that if you are connecting to the sim the laser MUST be unlocked so that this can lock the laser and send the commands to the sim. To be connected successfully, either the useSim must be set from configure (and the laser must be connected to a simulator, or this will return true but connection will fail), the device must have been run or runasync, or the device must have been runOnLaser.
Definition at line 1600 of file ArSick.cpp. References ArRangeDeviceThreaded::getRunning(), ArLog::log(), and STATE_CONNECTED. |
|
Connect to the laser while blocking. lockDevice s the laser, and then makes a connection. If it is connecting to the simulator (set with the useSim flag in configure) then it will lock the laser and send the commands to the sim. If where you are calling from has the laser locked, make sure you unlock it before calling this function.
Definition at line 1558 of file ArSick.cpp. References ArRangeDeviceThreaded::getRunningWithLock(), internalConnectHandler(), internalConnectSim(), ArMutex::lock(), ArRangeDeviceThreaded::lockDevice(), ArUtil::sleep(), STATE_INIT, switchState(), ArMutex::unlock(), and ArRangeDeviceThreaded::unlockDevice(). |
|
Configure the laser before connecting to it. You must lockDevice the laser or not have the laser being poked at by multiple threads before you use htis function call Definition at line 292 of file ArSick.cpp. References DEGREES100, DEGREES180, INCREMENT_HALF, INCREMENT_ONE, and ArLog::log(). Referenced by ArSick(). |
|
Shorter configure for the laser (settings are overridden by the .p file). You must lockDevice the laser or not have the laser being poked at by multiple threads before you use htis function call Definition at line 337 of file ArSick.cpp. References DEGREES100, DEGREES180, INCREMENT_HALF, INCREMENT_ONE, ArRobot::isConnected(), ArLog::log(), and robotConnectCallback(). |
|
Disconnect from the laser. Disconnects from the laser. You should lockDevice the laser before calling this function. Also if you are using the simulator it will lock the robot so it can send the command to the simulator, so you should make sure the robot is unlocked.
Definition at line 1472 of file ArSick.cpp. References ArBasePacket::byteToBuf(), ArDeviceConnection::close(), ArRobot::comInt(), ArBasePacket::empty(), ArSickPacket::finalizePacket(), ArBasePacket::getBuf(), ArBasePacket::getLength(), ArRobot::lock(), ArMutex::lock(), ArRangeDeviceThreaded::lockDevice(), ArLog::log(), ArSickPacketReceiver::receivePacket(), ArRangeBuffer::reset(), ArSerialConnection::setBaud(), ArUtil::sleep(), STATE_CONNECTED, STATE_NONE, ArBasePacket::uByteToBuf(), ArRobot::unlock(), ArMutex::unlock(), ArRangeDeviceThreaded::unlockDevice(), and ArDeviceConnection::write(). Referenced by runThread(), and ~ArSick(). |
|
Internal function, shouldn't be used, drops the conn because of error Definition at line 1417 of file ArSick.cpp. References ArDeviceConnection::close(), ArLog::log(), ArRangeBuffer::reset(), STATE_CONNECTED, STATE_NONE, and switchState(). Referenced by runOnce(). |
|
Internal function, shouldn't be used, denotes the conn failed Definition at line 1437 of file ArSick.cpp. References ArDeviceConnection::close(), STATE_NONE, and switchState(). Referenced by internalConnectHandler(), and internalConnectSim(). |
|
Internal function for filtering the raw readings and updating buffers. filter readings here, from raw current buffer to filtered current buffer of the range device object, and then to the cumulative buffer current buffer filtering is to eliminate max (null) readings, and compress close readings cumulative buffer filtering is to replace readings within the scope of the current sensor set Definition at line 555 of file ArSick.cpp. References ArRangeBuffer::beginRedoBuffer(), ArRangeBuffer::endRedoBuffer(), filterAddAndCleanCumulative(), ArRangeBuffer::getBuffer(), ArSensorReading::getEncoderPoseTaken(), ArSensorReading::getIgnoreThisReading(), ArSensorReading::getPoseTaken(), ArSensorReading::getX(), ArSensorReading::getY(), ArTime::mSecSince(), ArRangeBuffer::redoReading(), ArRangeBuffer::setEncoderPoseTaken(), ArRangeBuffer::setPoseTaken(), and ArTime::setToNow(). Referenced by processPacket(), and simPacketHandler(). |
|
Gets the time without a response until connection assumed lost. Gets the number of seconds to go without response from the laser until it is assumed tha tthe connection with the laser has been broken and the disconnect on error events will happen. Definition at line 264 of file ArSick.cpp. |
|
Cumulative readings are cleaned every this number of milliseconds. The cumulative readings are check against the current buffer every this number of milliseconds... if 0 its cleaned every time there are readings. Definition at line 1995 of file ArSick.cpp. |
|
Cumulative readings that are this close to current beams are discarded. When the readings are cleaned the current readings are compared against the cumulative readings... if a beam of a current reading comes within this distance of a cumulative reading that cumulative reading is removed. If this value is 0 then there is no filtering of this kind. Definition at line 1970 of file ArSick.cpp. |
|
Cumulative readings must be taken within this distance to the robot to be added. When readings are put into the cumulative buffer they must be within this distance of the robot. If this value is 0 then there is no filtering of this kind. Definition at line 1914 of file ArSick.cpp. |
|
you should use getMaxSecondsToKeepCumulative instead, (replaces this)
Definition at line 150 of file ArSick.h. References ArRangeDevice::getMaxSecondsToKeepCumulative(). |
|
Cumulative readings closer than this are discarded as too close. When readings are put into the cumulative buffer they must be this far from all the other cumulative readings or they aren't put in. If this value is 0 then there is no filtering of this kind. Definition at line 1940 of file ArSick.cpp. |
|
Current readings closer than this are discarded as too close. When readings are put into the current buffer they are compared against the last reading and must be at least this distance away from the last reading. If this value is 0 then there is no filtering of this kind. Definition at line 1887 of file ArSick.cpp. |
|
An internal function, single loop event to connect to laser.
Definition at line 740 of file ArSick.cpp. References BAUD19200, BAUD38400, BAUD9600, ArBasePacket::bufToByte(), ArBasePacket::byte2ToBuf(), ArBasePacket::byteToBuf(), ArBasePacket::empty(), failedConnect(), ArSickPacket::finalizePacket(), ArBasePacket::getBuf(), ArSickPacket::getID(), ArBasePacket::getLength(), ArDeviceConnection::getStatus(), ArLog::log(), madeConnection(), ArTime::mSecSince(), ArSickPacketReceiver::receivePacket(), ArTime::secSince(), ArSerialConnection::setBaud(), ArUtil::sleep(), STATE_CHANGE_BAUD, STATE_CONFIGURE, STATE_CONNECTED, STATE_INIT, STATE_INSTALL_MODE, STATE_NONE, STATE_SET_MODE, STATE_START_READINGS, STATE_WAIT_FOR_CONFIGURE_ACK, STATE_WAIT_FOR_INSTALL_MODE_ACK, STATE_WAIT_FOR_POWER_ON, STATE_WAIT_FOR_SET_MODE_ACK, STATE_WAIT_FOR_START_ACK, ArBasePacket::strNToBuf(), switchState(), ArBasePacket::uByte2ToBuf(), ArBasePacket::uByteToBuf(), and ArDeviceConnection::write(). Referenced by blockingConnect(), and runThread(). |
|
An internal function Definition at line 1217 of file ArSick.cpp. References ArRobot::comInt(), failedConnect(), ArRobot::lock(), ArRangeDeviceThreaded::lockDevice(), ArLog::log(), madeConnection(), STATE_CONNECTED, STATE_NONE, switchState(), ArRobot::unlock(), and ArRangeDeviceThreaded::unlockDevice(). Referenced by blockingConnect(), and runThread(). |
|
Internal function, shouldn't be used, does the after conn stuff Definition at line 1450 of file ArSick.cpp. References ArTime::setToNow(). Referenced by internalConnectHandler(), and internalConnectSim(). |
|
The internal function which processes the sickPackets Definition at line 1639 of file ArSick.cpp. References ArMath::addAngle(), filterReadings(), ArPose::getTh(), ArPose::getX(), ArPose::getY(), ArLog::log(), myIgnoreReadings, ArSensorReading::newData(), ArSensorReading::resetSensorPosition(), ArMath::roundInt(), ArTime::setToNow(), and ArTransform::setTransform(). Referenced by runOnce(), and sensorInterpCallback(). |
|
Adds a disconnect callback.
Definition at line 1275 of file ArSick.cpp. |
|
Removes a callback that is called whenever a laser packet is processed.
Definition at line 1412 of file ArSick.cpp. |
|
Removes a callback for when disconnect is called while connected.
Definition at line 1344 of file ArSick.cpp. |
|
Removes a callback for when disconnection happens because of an error.
Definition at line 1381 of file ArSick.cpp. |
|
Removes a callback for when a connection to the robot is failed.
Definition at line 1310 of file ArSick.cpp. |
|
Internal function, shouldn't be used, gets params from the robot Definition at line 105 of file ArSick.cpp. References ArArgumentBuilder::add(), addIgnoreReading(), clearIgnoreReadings(), DEGREES100, DEGREES180, ArArgumentBuilder::getArgc(), ArArgumentBuilder::getArgDouble(), ArRobotParams::getLaserFlipped(), ArRobotParams::getLaserIgnore(), ArRobotParams::getLaserPowerControlled(), ArRobotParams::getLaserTh(), ArRobotParams::getLaserX(), ArRobotParams::getLaserY(), ArRobot::getRobotParams(), INCREMENT_HALF, INCREMENT_ONE, ArArgumentBuilder::isArgDouble(), ArRobot::isConnected(), ArLog::log(), and setSensorPosition(). Referenced by configureShort(), and setRobot(). |
|
The internal function that gets does the work Definition at line 1780 of file ArSick.cpp. References ArTransform::doInvTransform(), dropConnection(), ArRobot::getCounter(), ArRobot::getEncoderPoseInterpPosition(), ArRobot::getEncoderTransform(), ArRobot::getPose(), ArRobot::getPoseInterpPosition(), ArSickPacket::getTimeReceived(), ArMutex::lock(), ArRobot::lock(), ArRangeDeviceThreaded::lockDevice(), ArTime::mSecSince(), processPacket(), ArSickPacketReceiver::receivePacket(), STATE_CONNECTED, ArMutex::unlock(), ArRobot::unlock(), and ArRangeDeviceThreaded::unlockDevice(). Referenced by runThread(), and sensorInterpCallback(). |
|
Runs the laser off of the robot. This sets up a sensor interp task on the robot, which is where the robot will be driven from. Note that the device must have been added to the robot already so that the device has a pointer to the robot. You should lock the robot and lockDevice the laser before doing this if other things are running already. Definition at line 1626 of file ArSick.cpp. References ArRangeDeviceThreaded::getRunning(), and ArRangeDeviceThreaded::stopRunning(). |
|
The internal function used by the ArRangeDeviceThreaded Implements ArRangeDeviceThreaded. Definition at line 2075 of file ArSick.cpp. References disconnect(), ArRangeDeviceThreaded::getRunningWithLock(), internalConnectHandler(), internalConnectSim(), isConnected(), ArMutex::lock(), ArRangeDeviceThreaded::lockDevice(), runOnce(), ArUtil::sleep(), STATE_INIT, switchState(), ArMutex::unlock(), and ArRangeDeviceThreaded::unlockDevice(). |
|
The function called if the laser isn't running in its own thread and isn't simulated Definition at line 2002 of file ArSick.cpp. References ArTime::addMSec(), ArTransform::doInvTransform(), ArRobot::getCounter(), ArRobot::getEncoderPoseInterpPosition(), ArRobot::getPoseInterpPosition(), ArSickPacket::getTimeReceived(), INCREMENT_HALF, ArRobot::isConnected(), ArRangeDeviceThreaded::lockDevice(), ArLog::log(), processPacket(), runOnce(), ArTransform::setTransform(), and ArRangeDeviceThreaded::unlockDevice(). |
|
Sets the time without a response until connection assumed lost. Sets the number of seconds to go without a response from the laser until it is assumed that the connection with the laser has been broken and the disconnect on error events will happen.
Definition at line 251 of file ArSick.cpp. |
|
Cumulative readings are cleaned every this number of milliseconds. The cumulative readings are check against the current buffer every this number of milliseconds... if 0 its cleaned every time there are readings. Definition at line 1980 of file ArSick.cpp. References ArLog::log(). Referenced by ArSick(). |
|
Cumulative readings that are this close to current beams are discarded. When the readings are cleaned the current readings are compared against the cumulative readings... if a beam of a current reading comes within this distance of a cumulative reading that cumulative reading is removed. If this value is 0 then there is no filtering of this kind. Definition at line 1952 of file ArSick.cpp. References ArLog::log(). Referenced by ArSick(). |
|
Cumulative readings must be taken within this distance to the robot to be added. When readings are put into the cumulative buffer they must be within this distance of the robot. If this value is 0 then there is no filtering of this kind. Definition at line 1898 of file ArSick.cpp. References ArLog::log(). Referenced by ArSick(). |
|
you should use setMaxSecondsToKeepCumulative instead, (replaces this)
Definition at line 145 of file ArSick.h. References ArRangeDevice::setMaxSecondsToKeepCumulative(). Referenced by ArSick(). |
|
Cumulative readings closer than this are discarded as too close. When readings are put into the cumulative buffer they must be this far from all the other cumulative readings or they aren't put in. If this value is 0 then there is no filtering of this kind. Definition at line 1924 of file ArSick.cpp. References ArLog::log(). Referenced by ArSick(). |
|
Current readings closer than this are discarded as too close. When readings are put into the current buffer they are compared against the last reading and must be at least this distance away from the last reading. If this value is 0 then there is no filtering of this kind. Definition at line 1872 of file ArSick.cpp. References ArLog::log(). Referenced by ArSick(). |
|
The packet handler for when connected to the simulator Definition at line 379 of file ArSick.cpp. References ArTransform::doInvTransform(), filterReadings(), ArRobot::getCounter(), ArRobot::getEncoderTransform(), ArRobot::getPose(), ArPose::getTh(), ArRobot::getToGlobalTransform(), ArPose::getX(), ArPose::getY(), ArRangeDeviceThreaded::lockDevice(), ArLog::log(), myIgnoreReadings, ArSensorReading::newData(), ArSensorReading::resetSensorPosition(), ArMath::roundInt(), ArTime::setToNow(), and ArRangeDeviceThreaded::unlockDevice(). |