Aria  2.8.0
ArSick Class Reference

Compatability class used to access SICK LMS-200 laser rangefinder device in versions of ARIA prior to 2.7.0; used alone or with ArSimpleConnector (also deprecated). More...

#include <ArSick.h>

Inherits ArLMS2xx.

Public Types

enum  BaudRate { BAUD9600, BAUD19200, BAUD38400, BAUD_INVALID }
 
enum  Bits { BITS_1REFLECTOR, BITS_2REFLECTOR, BITS_3REFLECTOR, BITS_INVALID }
 
enum  Degrees { DEGREES180, DEGREES100, DEGREES_INVALID }
 
enum  Increment { INCREMENT_ONE, INCREMENT_HALF, INCREMENT_INVALID }
 
enum  Units { UNITS_1MM, UNITS_1CM, UNITS_10CM, UNITS_INVALID }
 

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.
 
 ArSick (size_t currentBufferSize=361, size_t cumulativeBufferSize=0, const char *name="laser", bool addAriaExitCB=true, bool isSecondLaser=false)
 Constructor.
 
void configure (bool useSim=false, bool powerControl=true, bool laserFlipped=false, BaudRate baud=BAUD38400, Degrees deg=DEGREES180, Increment incr=INCREMENT_ONE)
 Use this to manually configure the laser before connecting to it. More...
 
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) More...
 
Bits getBits (void)
 Gets the Bits the laser is using.
 
int getConnectionTimeoutTime (void)
 Gets the time without a response until connection assumed lost.
 
Degrees getDegrees (void)
 Gets the degrees the laser is scanning.
 
int getFilterCleanCumulativeInterval (void)
 You should use getPlanarCumulativeCleanInterval for this now. More...
 
double getFilterCumulativeCleanDist (void)
 You should use getCumulativeCleanDist for this now. More...
 
double getFilterCumulativeInsertMaxDist (void)
 You should use getMaxInsertDistCumulative for this now. More...
 
int getFilterCumulativeMaxAge (void)
 you should use getMaxSecondsToKeepCumulative instead, (replaces this) More...
 
double getFilterCumulativeMaxDist (void)
 You should see getMaxDistToKeepCumulative (it replaces this) More...
 
double getFilterCumulativeNearDist (void)
 You should use getMinDistBetweenCumulative for this now. More...
 
double getFilterNearDist (void)
 You should use getMinDistBetweenCurrent for this now. More...
 
Increment getIncrement (void)
 Gets the amount each scan increments.
 
unsigned int getMinRange (void)
 Used to set the min range, this is no longer used because it doesn't actually solve anything (because beams that see near things and far things average) More...
 
int getSickPacCount (void)
 Gets the number of laser packets received in the last second.
 
Units getUnits (void)
 Gets the Units the laser is using.
 
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)
 
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.
 
bool runOnRobot (void)
 Runs the laser off of the robot.
 
void setConnectionTimeoutTime (int secs)
 Sets the time without a response until connection assumed lost.
 
void setFilterCleanCumulativeInterval (int milliSeconds)
 You should use setCumulativeCleanInterval for this now. More...
 
void setFilterCumulativeCleanDist (double dist)
 You should use setCumulativeCleanDist for this now. More...
 
void setFilterCumulativeInsertMaxDist (double dist)
 You should use setMaxInsertDistCumulative for this now. More...
 
void setFilterCumulativeMaxAge (int seconds)
 you should use setMaxSecondsToKeepCumulative instead, (replaces this) More...
 
void setFilterCumulativeMaxDist (double dist)
 You should see setMaxDistToKeepCumulative (it replaces this) More...
 
void setFilterCumulativeNearDist (double dist)
 You should use setMinDistBetweenCumulative for this now. More...
 
void setFilterNearDist (double dist)
 You should use setMinDistBetweenCurrent for this now. More...
 
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)
 
void setMinRange (unsigned int minRange)
 Used to get the min range, this is no longer used because it doesn't actually solve anything (because beams that see near things and far things average) More...
 
void setRangeInformation (Bits bits=BITS_1REFLECTOR, Units units=UNITS_1MM)
 Sets the ranging/reflector information. More...
 
bool tryingToConnect (void)
 Sees if this is trying to connect to the laser at the moment (note no other range devices work like this so you probably shouldn't use this)
 
virtual ~ArSick ()
 Destructor.
 
- Public Member Functions inherited from ArLMS2xx
 ArLMS2xx (int laserNumber, const char *name="lms2xx", bool appendLaserNumberToName=true)
 Constructor.
 
bool asyncConnect (void)
 Connect to the laser asyncronously. More...
 
virtual bool blockingConnect (void)
 Connect to the laser while blocking. More...
 
virtual bool disconnect (void)
 Disconnect from the laser. More...
 
virtual bool isConnected (void)
 Sees if this is connected to the laser.
 
virtual bool isTryingToConnect (void)
 
virtual void * runThread (void *arg)
 The internal function used by the ArRangeDeviceThreaded.
 
virtual void setDeviceConnection (ArDeviceConnection *conn)
 Sets the device connection.
 
virtual void setRobot (ArRobot *robot)
 
virtual ~ArLMS2xx ()
 Destructor.
 
- Public Member Functions inherited from ArLaser
void addConnectCB (ArFunctor *functor, int position=50)
 Adds a connect callback.
 
void addDisconnectNormallyCB (ArFunctor *functor, int position=50)
 Adds a callback for when disconnect is called while connected.
 
void addDisconnectOnErrorCB (ArFunctor *functor, int position=50)
 Adds a callback for when disconnection happens because of an error.
 
void addFailedConnectCB (ArFunctor *functor, int position=50)
 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 of nearest integer)
 
bool addIgnoreReadings (const char *ignoreReadings)
 Adds a series of degree at which to ignore readings (within 1 degree of nearest integer)
 
void addReadingCB (ArFunctor *functor, int position=50)
 Adds a callback that is called whenever a laser reading is processed.
 
virtual void applyTransform (ArTransform trans, bool doCumulative=true)
 Applies a transform to the buffers. More...
 
 ArLaser (int laserNumber, const char *name, unsigned int absoluteMaxRange, bool locationDependent=false, bool appendLaserNumberToName=true)
 Constructor.
 
bool canChooseAutoBaud (void)
 Gets if you can choose autoBaud for the laser. More...
 
bool canChooseDegrees (void)
 Gets if you can choose the number of degrees. More...
 
bool canChooseIncrement (void)
 Gets if you can choose an increment. More...
 
bool canChooseReflectorBits (void)
 Gets if you can choose reflectorBits for the laser. More...
 
bool canChooseStartingBaud (void)
 Gets if you can choose startingBaud for the laser. More...
 
bool canChooseUnits (void)
 Gets if you can choose units for the laser. More...
 
bool canSetDegrees (void)
 Sees if this class can set the degrees with doubles or not. More...
 
bool canSetIncrement (void)
 Gets if you can set an increment. More...
 
bool canSetPowerControlled (void)
 Gets if you can set powerControlled for the laser. More...
 
bool chooseAutoBaud (const char *reflectorBits)
 Sets the reflectorBits to one of the choices from getAutoBaudChoices. More...
 
bool chooseDegrees (const char *range)
 Sets the range to one of the choices from getDegreesChoices. More...
 
bool chooseIncrement (const char *increment)
 Sets the increment to one of the choices from getIncrementChoices. More...
 
bool chooseReflectorBits (const char *reflectorBits)
 Sets the reflectorBits to one of the choices from getReflectorBitsChoices. More...
 
bool chooseStartingBaud (const char *reflectorBits)
 Sets the reflectorBits to one of the choices from getStartingBaudChoices. More...
 
bool chooseUnits (const char *units)
 Sets the units to one of the choices from getUnitsChoices. More...
 
void clearIgnoreReadings (void)
 Clears the degrees we ignore readings at.
 
void copyReadingCount (const ArLaser *laser)
 Copies the reading count stuff from another laser (for the laser filter)
 
unsigned int getAbsoluteMaxRange (void)
 Gets the absolute maximum range on the sensor.
 
const char * getAutoBaudChoice (void)
 Gets the reflectorBits that was chosen. More...
 
std::list< std::string > getAutoBaudChoices (void)
 Gets the list of reflectorBits choices. More...
 
const char * getAutoBaudChoicesString (void)
 Gets a string with the list of reflectorBits choices seperated by |s. More...
 
virtual double getConnectionTimeoutSeconds (void)
 Gets the number of seconds without a response until connection assumed lost. More...
 
double getCumulativeCleanDist (void)
 Cumulative readings that are this close to current beams are discarded.
 
int getCumulativeCleanInterval (void)
 Cumulative readings are cleaned every this number of milliseconds.
 
int getCumulativeCleanOffset (void)
 Gets the offset for cumulative cleaning.
 
const char * getDefaultPortType (void)
 Gets the default port type for the laser.
 
int getDefaultTcpPort (void)
 Gets the default TCP port for the laser.
 
const char * getDegreesChoice (void)
 Gets the range that was chosen. More...
 
double getDegreesChoiceDouble (void)
 Gets the range that was chosen as a double. More...
 
std::list< std::string > getDegreesChoices (void)
 Gets the list of range choices. More...
 
std::map< std::string, double > getDegreesChoicesMap (void)
 Gets the map of degrees choices to what they mean. More...
 
const char * getDegreesChoicesString (void)
 Gets a string with the list of degrees choices seperated by |s. More...
 
virtual ArDeviceConnectiongetDeviceConnection (void)
 Gets the device connection.
 
double getEndDegrees (void)
 Gets the end angle. More...
 
double getEndDegreesMax (void)
 Gets the maximum value for the end angle. More...
 
double getEndDegreesMin (void)
 Gets the minimum value for the end angle. More...
 
bool getFlipped (void)
 Gets if the laser is flipped or not.
 
const std::set< int > * getIgnoreReadings (void) const
 Gets the list of readings that we ignore.
 
double getIncrement (void)
 Gets the increment. More...
 
const char * getIncrementChoice (void)
 Gets the increment that was chosen. More...
 
double getIncrementChoiceDouble (void)
 Gets the increment that was chosen as a double. More...
 
std::list< std::string > getIncrementChoices (void)
 Gets the list of increment choices. More...
 
std::map< std::string, double > getIncrementChoicesMap (void)
 Gets the map of increment choices to what they mean. More...
 
const char * getIncrementChoicesString (void)
 Gets a string with the list of increment choices seperated by |s. More...
 
double getIncrementMax (void)
 Gets the increment maximum. More...
 
double getIncrementMin (void)
 Gets the increment minimum. More...
 
ArLog::LogLevel getInfoLogLevel (void)
 Gets the log level that informational things are logged at.
 
int getLaserNumber (void)
 Gets the number of the laser this is.
 
ArTime getLastReadingTime (void)
 Gets the time data was last receieved.
 
bool getPowerControlled (void)
 Gets if the power is controlled. More...
 
int getReadingCount (void)
 Gets the number of laser readings received in the last second.
 
const char * getReflectorBitsChoice (void)
 Gets the reflectorBits that was chosen. More...
 
std::list< std::string > getReflectorBitsChoices (void)
 Gets the list of reflectorBits choices. More...
 
const char * getReflectorBitsChoicesString (void)
 Gets a string with the list of reflectorBits choices seperated by |s. More...
 
ArPose getSensorPosition (void)
 Gets the position of the sensor on the robot.
 
double getSensorPositionTh (void)
 Gets the heading of the sensor on the robot.
 
double getSensorPositionX (void)
 Gets the X position of the sensor on the robot.
 
double getSensorPositionY (void)
 Gets the Y position of the sensor on the robot.
 
double getSensorPositionZ (void)
 Gets the Z position of the sensor on the robot (0 is unknown)
 
double getStartDegrees (void)
 Gets the start angle. More...
 
double getStartDegreesMax (void)
 Gets the maximum value for the start angle. More...
 
double getStartDegreesMin (void)
 Gets the minimum value for the start angle. More...
 
const char * getStartingBaudChoice (void)
 Gets the reflectorBits that was chosen. More...
 
std::list< std::string > getStartingBaudChoices (void)
 Gets the list of reflectorBits choices. More...
 
const char * getStartingBaudChoicesString (void)
 Gets a string with the list of reflectorBits choices seperated by |s. More...
 
const char * getUnitsChoice (void)
 Gets the units that was chosen. More...
 
std::list< std::string > getUnitsChoices (void)
 Gets the list of units choices. More...
 
const char * getUnitsChoicesString (void)
 Gets a string with the list of units choices seperated by |s. More...
 
bool hasSensorPosition (void)
 Gets if the sensor pose has been set.
 
void remConnectCB (ArFunctor *functor)
 Adds a disconnect callback.
 
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 remReadingCB (ArFunctor *functor)
 Removes a callback that is called whenever a laser reading is processed.
 
void resetLastCumulativeCleanTime (void)
 Resets when the cumulative cleaning happened (so offset can help)
 
virtual void setConnectionTimeoutSeconds (double seconds)
 Sets the numter of seconds without a response until connection assumed lost. More...
 
virtual void setCumulativeBufferSize (size_t size)
 override the default to keep track of its been set or not
 
void setCumulativeCleanDist (double dist)
 Cumulative readings that are this close to current beams are discarded.
 
void setCumulativeCleanInterval (int milliSeconds)
 Cumulative readings are cleaned every this number of milliseconds.
 
void setCumulativeCleanOffset (int milliSeconds)
 Offset for cumulative cleaning.
 
bool setEndDegrees (double endDegrees)
 Sets the end angle, it must be between getEndDegreesMin and getEndDegreesMax. More...
 
bool setFlipped (bool flipped)
 Sets if the laser is flipped or not.
 
bool setIncrement (double increment)
 Sets the increment. More...
 
void setInfoLogLevel (ArLog::LogLevel infoLogLevel)
 Sets the log level that informational things are logged at.
 
virtual void setMaxRange (unsigned int maxRange)
 override the default to bound the maxrange by the absolute max range
 
bool setPowerControlled (bool powerControlled)
 Sets if the power is controlled. More...
 
void setSensorPosition (double x, double y, double th, double z=0)
 Sets the position of the sensor on the robot.
 
void setSensorPosition (ArPose pose, double z=0)
 Sets the position of the sensor on the robot.
 
bool setStartDegrees (double startDegrees)
 Sets the start angle, it must be between getStartDegreesMin and getStartDegreesMax. More...
 
virtual ~ArLaser ()
 Destructor.
 
- Public Member Functions inherited from ArRangeDeviceThreaded
 ArRangeDeviceThreaded (size_t currentBufferSize, size_t cumulativeBufferSize, const char *name, unsigned int maxRange, int maxSecondsTokeepCurrent=0, int maxSecondsToKeepCumulative=0, double maxDistToKeepCumulative=0, bool locationDependent=false)
 Constructor.
 
virtual bool getRunning (void)
 Get the running status of the thread.
 
virtual bool getRunningWithLock (void)
 Get the running status of the thread, locking around the variable.
 
virtual int lockDevice (void)
 
virtual void run (void)
 Run in this thread.
 
virtual void runAsync (void)
 Run in its own thread.
 
virtual void stopRunning (void)
 Stop the thread.
 
virtual int tryLockDevice (void)
 
virtual int unlockDevice (void)
 
virtual ~ArRangeDeviceThreaded ()
 Destructor.
 
- Public Member Functions inherited from ArRangeDevice
virtual void addReading (double x, double y, bool *wasAdded=NULL)
 Adds a reading to the buffer.
 
 ArRangeDevice (size_t currentBufferSize, size_t cumulativeBufferSize, const char *name, unsigned int maxRange, int maxSecondsToKeepCurrent=0, int maxSecondsToKeepCumulative=0, double maxDistToKeepCumulative=0, bool locationDependent=false)
 Constructor. More...
 
virtual void clearCumulativeOlderThan (int milliSeconds)
 Clears all the cumulative readings older than this number of milliseconds.
 
virtual void clearCumulativeOlderThanSeconds (int seconds)
 Clears all the cumulative readings older than this number of seconds.
 
virtual void clearCumulativeReadings (void)
 Clears all the cumulative readings.
 
virtual void clearCurrentReadings (void)
 Clears all the current readings.
 
virtual double cumulativeReadingBox (double x1, double y1, double x2, double y2, ArPose *readingPos=NULL) const
 Gets the closest current reading from the given box region. More...
 
virtual double cumulativeReadingPolar (double startAngle, double endAngle, double *angle=NULL) const
 Gets the closest cumulative reading in the given polar region. More...
 
virtual double currentReadingBox (double x1, double y1, double x2, double y2, ArPose *readingPos=NULL) const
 Gets the closest current reading from the given box region. More...
 
virtual double currentReadingPolar (double startAngle, double endAngle, double *angle=NULL) const
 Gets the closest current reading in the given polar region. More...
 
void filterCallback (void)
 Internal function to filter the readings based on age and distance.
 
virtual const std::list
< ArSensorReading * > * 
getAdjustedRawReadings (void) const
 Gets the raw unfiltered readings from the device (but pose takens are corrected) More...
 
virtual std::vector
< ArSensorReading > * 
getAdjustedRawReadingsAsVector (void)
 Gets the raw adjusted readings from the device into a vector. More...
 
virtual const std::list
< ArPoseWithTime * > * 
getCumulativeBuffer (void) const
 Gets the current buffer of readings. More...
 
virtual std::list
< ArPoseWithTime * > * 
getCumulativeBuffer (void)
 Gets the current buffer of readings.
 
virtual std::vector
< ArPoseWithTime > * 
getCumulativeBufferAsVector (void)
 Gets the cumulative buffer of readings as a vector. More...
 
virtual size_t getCumulativeBufferSize (void) const
 Sets the maximum size of the buffer for cumulative readings.
 
virtual ArDrawingDatagetCumulativeDrawingData (void)
 Gets data used for visualizing the cumulative buffer (see ArNetworking)
 
virtual const ArRangeBuffergetCumulativeRangeBuffer (void) const
 Gets the cumulative range buffer. More...
 
virtual ArRangeBuffergetCumulativeRangeBuffer (void)
 Gets the cumulative range buffer.
 
virtual const std::list
< ArPoseWithTime * > * 
getCurrentBuffer (void) const
 Gets the current buffer of readings. More...
 
virtual std::list
< ArPoseWithTime * > * 
getCurrentBuffer (void)
 Gets the current buffer of readings.
 
virtual std::vector
< ArPoseWithTime > * 
getCurrentBufferAsVector (void)
 Gets the current buffer of readings as a vector. More...
 
virtual size_t getCurrentBufferSize (void) const
 Gets the maximum size of the buffer for current readings.
 
virtual ArDrawingDatagetCurrentDrawingData (void)
 Gets data used for visualizing the current buffer (see ArNetworking)
 
virtual const ArRangeBuffergetCurrentRangeBuffer (void) const
 Gets the current range buffer. More...
 
virtual ArRangeBuffergetCurrentRangeBuffer (void)
 Gets the current range buffer.
 
double getMaxDistToKeepCumulative (void)
 sets the maximum distance cumulative readings can be from current pose More...
 
double getMaxInsertDistCumulative (void)
 Gets the maximum distance a cumulative reading can be from the robot and still be inserted. More...
 
virtual unsigned int getMaxRange (void) const
 Gets the maximum range for this device.
 
int getMaxSecondsToKeepCumulative (void)
 gets the maximum seconds to keep current readings around More...
 
int getMaxSecondsToKeepCurrent (void)
 gets the maximum seconds to keep current readings around More...
 
double getMinDistBetweenCumulative (void)
 Gets the minimum distance between cumulative readings. More...
 
double getMinDistBetweenCurrent (void)
 Gets the minimum distance between current readings. More...
 
virtual const char * getName (void) const
 Gets the name of the device.
 
virtual const std::list
< ArSensorReading * > * 
getRawReadings (void) const
 Gets the raw unfiltered readings from the device. More...
 
virtual std::vector
< ArSensorReading > * 
getRawReadingsAsVector (void)
 Gets the raw unfiltered readings from the device into a vector. More...
 
virtual ArRobotgetRobot (void)
 Gets the robot this device is attached to.
 
bool isLocationDependent (void)
 Gets if this device is location dependent or not.
 
virtual void setCumulativeDrawingData (ArDrawingData *data, bool takeOwnershipOfData)
 Sets data for visualizing the cumulative buffer (and if we own it)
 
virtual void setCurrentBufferSize (size_t size)
 Sets the maximum size of the buffer for current readings. More...
 
virtual void setCurrentDrawingData (ArDrawingData *data, bool takeOwnershipOfData)
 Sets data for visualizing the current buffer (and if we own it)
 
void setMaxDistToKeepCumulative (double maxDistToKeepCumulative)
 sets the maximum distance cumulative readings can be from current pose More...
 
void setMaxInsertDistCumulative (double maxInsertDistCumulative)
 Sets the maximum distance a cumulative reading can be from the robot and still be inserted. More...
 
void setMaxSecondsToKeepCumulative (int maxSecondsToKeepCumulative)
 gets the maximum seconds to keep cumulative readings around More...
 
void setMaxSecondsToKeepCurrent (int maxSecondsToKeepCurrent)
 Sets the maximum seconds to keep current readings around. More...
 
void setMinDistBetweenCumulative (double minDistBetweenCumulative)
 Sets the minimum distance between cumulative readings. More...
 
void setMinDistBetweenCurrent (double minDistBetweenCurrent)
 Sets the minimum distance between current readings. More...
 
virtual ~ArRangeDevice ()
 Destructor.
 

Additional Inherited Members

- Static Public Member Functions inherited from ArLaser
static void useSimpleNamingForAllLasers (void)
 Makes it so we'll apply simple naming to all the lasers.
 
- Protected Types inherited from ArLMS2xx
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 inherited from ArLMS2xx
void dropConnection (void)
 
void failedConnect (void)
 
bool finishParams (void)
 Finishes getting the unset parameters from the robot then setting some internal variables that need it.
 
int internalConnectHandler (void)
 An internal function, single loop event to connect to laser.
 
bool internalConnectSim (void)
 Sends the commands to the sim to start up the connection. More...
 
bool internalRunOnRobot (void)
 internal function to runOnRobot so that ArSick can do that while this class won't More...
 
virtual bool laserCheckParams (void)
 
virtual void laserSetName (const char *name)
 
void madeConnection (void)
 
void processPacket (ArLMS2xxPacket *packet, ArPose pose, ArPose encoderPose, unsigned int counter, bool deinterlace, ArPose deinterlaceDelta)
 
void runOnce (bool lockRobot)
 
void sensorInterpCallback (void)
 
bool sickGetIsUsingSim (void)
 Internal function that gets whether the laser is simulated or not (just for the old ArSick)
 
void sickSetIsUsingSim (bool usingSim)
 Internal function that sets whether the laser is simulated or not (just for the old ArSick)
 
bool simPacketHandler (ArRobotPacket *packet)
 
void switchState (State state)
 Internal function for switching states.
 
- Protected Attributes inherited from ArLMS2xx
ArRetFunctorC< bool, ArLMS2xxmyAriaExitCB
 
std::list< ArSensorReading * > * myAssembleReadings
 
std::list< ArSensorReading * > * myCurrentReadings
 
double myIncrementAmount
 
bool myInterlaced
 
bool myInterpolation
 
std::list< ArSensorReading * >
::iterator 
myIter
 
ArLMS2xxPacketReceiver myLMS2xxPacketReceiver
 
int myNumReflectorBits
 
double myOffsetAmount
 
ArLMS2xxPacket myPacket
 
std::list< ArLMS2xxPacket * > myPackets
 
bool myProcessImmediately
 
ArFunctorC< ArLMS2xxmyRobotConnectCB
 
bool myRunningOnRobot
 
ArFunctorC< ArLMS2xxmySensorInterpCB
 
unsigned int mySimPacketCounter
 
ArTransform mySimPacketEncoderTrans
 
ArRetFunctor1C< bool, ArLMS2xx,
ArRobotPacket * > 
mySimPacketHandler
 
ArPose mySimPacketStart
 
ArTransform mySimPacketTrans
 
bool myStartConnect
 
State myState
 
ArMutex myStateMutex
 
ArTime myStateStart
 
unsigned int myTotalNumReadings
 
bool myUseSim
 
unsigned int myWhichReading
 
- Static Protected Attributes inherited from ArLaser
static bool ourUseSimpleNaming = false
 

Detailed Description

Compatability class used to access SICK LMS-200 laser rangefinder device in versions of ARIA prior to 2.7.0; used alone or with ArSimpleConnector (also deprecated).

In 2.7.0 and later, ArSick implements the same API as in previous versions, but serves only as an interface to ArLMS2xx; the preferred way to access laser rangefinders is to first connect to a robot using ArRobotConnector to load robot parameter files specifying laser types and options, then use ArLaserConnector to connect to all lasers the robot has. ArRobot stores a list of ArLaser objects for these lasers.

Deprecated:
Examples:
gpsRobotTaskExample.cpp, lineFinderExample.cpp, and triangleDriveToActionExample.cpp.

Member Enumeration Documentation

Enumerator
BAUD9600 

9600 Baud

BAUD19200 

19200 Baud

BAUD38400 

38400 Baud

BAUD_INVALID 

Invalid baud.

Enumerator
BITS_1REFLECTOR 

Uses 1 reflector bits (means 32/320/150 meter range)

BITS_2REFLECTOR 

Uses 2 reflector bits (means 16/160/150 meter range)

BITS_3REFLECTOR 

Uses 3 reflector bits (means 8/80/150 meter range)

BITS_INVALID 

Invalid bits.

Enumerator
DEGREES180 

180 Degrees

DEGREES100 

100 Degrees

DEGREES_INVALID 

Invalid degrees.

Enumerator
INCREMENT_ONE 

One degree increments.

INCREMENT_HALF 

Half a degree increments.

INCREMENT_INVALID 

Increment invalid.

Enumerator
UNITS_1MM 

Uses 1 mm resolution (8/16/32 meter max range)

UNITS_1CM 

Uses 1 cm resolution (80/160/320 meter max range)

UNITS_10CM 

Uses 10 cm resolution (150 meter max range)

UNITS_INVALID 

Invalid units.

Member Function Documentation

void ArSick::configure ( bool  useSim = false,
bool  powerControl = true,
bool  laserFlipped = false,
BaudRate  baud = BAUD38400,
Degrees  deg = DEGREES180,
Increment  incr = INCREMENT_ONE 
)

Use this to manually configure the laser before connecting to it.

Manually set laser configuration options for connection.

This must be called only before connecting to the laser (not while the laser is connected). This configuration is automatically performed if you are using ArSimpleConnector to connect to the laser based on command line parameters, so calling this function is only neccesary if you are not using ArSimpleConnector, or you wish to always override ArSimpleConnector's configuration.

(Don't forget, you must lock ArLMS2xx with lockDevice() if multiple threads are accessing the ArLMS2xx, e.g. if you used runAsync().)

void ArSick::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)

Use this to manually configure the laser before connecting to it.

Manually set laser configuration options for connection.

This must be called only before connecting to the laser (not while the laser is connected). This configuration is automatically performed if you are using ArSimpleConnector to connect to the laser based on command line parameters, so calling this function is only neccesary if you are not using ArSimpleConnector, or you wish to always override ArSimpleConnector's configuration.

(Don't forget, you must lock ArLMS2xx with lockDevice() if multiple threads are accessing the ArLMS2xx, e.g. if you used runAsync().)

int ArSick::getFilterCleanCumulativeInterval ( void  )
inline

You should use getPlanarCumulativeCleanInterval for this now.

Deprecated:
double ArSick::getFilterCumulativeCleanDist ( void  )
inline

You should use getCumulativeCleanDist for this now.

Deprecated:
double ArSick::getFilterCumulativeInsertMaxDist ( void  )
inline

You should use getMaxInsertDistCumulative for this now.

Deprecated:
int ArSick::getFilterCumulativeMaxAge ( void  )
inline

you should use getMaxSecondsToKeepCumulative instead, (replaces this)

Deprecated:
double ArSick::getFilterCumulativeMaxDist ( void  )
inline

You should see getMaxDistToKeepCumulative (it replaces this)

Deprecated:
double ArSick::getFilterCumulativeNearDist ( void  )
inline

You should use getMinDistBetweenCumulative for this now.

Deprecated:
double ArSick::getFilterNearDist ( void  )
inline

You should use getMinDistBetweenCurrent for this now.

Deprecated:
unsigned int ArSick::getMinRange ( void  )
inline

Used to set the min range, this is no longer used because it doesn't actually solve anything (because beams that see near things and far things average)

Deprecated:
void ArSick::setFilterCleanCumulativeInterval ( int  milliSeconds)
inline

You should use setCumulativeCleanInterval for this now.

Deprecated:
void ArSick::setFilterCumulativeCleanDist ( double  dist)
inline

You should use setCumulativeCleanDist for this now.

Deprecated:
void ArSick::setFilterCumulativeInsertMaxDist ( double  dist)
inline

You should use setMaxInsertDistCumulative for this now.

Deprecated:
void ArSick::setFilterCumulativeMaxAge ( int  seconds)
inline

you should use setMaxSecondsToKeepCumulative instead, (replaces this)

Deprecated:
void ArSick::setFilterCumulativeMaxDist ( double  dist)
inline

You should see setMaxDistToKeepCumulative (it replaces this)

Deprecated:
void ArSick::setFilterCumulativeNearDist ( double  dist)
inline

You should use setMinDistBetweenCumulative for this now.

Deprecated:
void ArSick::setFilterNearDist ( double  dist)
inline

You should use setMinDistBetweenCurrent for this now.

Deprecated:
void ArSick::setMinRange ( unsigned int  minRange)
inline

Used to get the min range, this is no longer used because it doesn't actually solve anything (because beams that see near things and far things average)

Deprecated:
void ArSick::setRangeInformation ( Bits  bits = BITS_1REFLECTOR,
Units  units = UNITS_1MM 
)

Sets the ranging/reflector information.

Sets the range/bit information.

The old immutable combination is (in effect) the same as the new default. If you look at the enums for these units you can see the effect this has on range.


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