Class TimeOfFlight
- All Implemented Interfaces:
Sendable
,AutoCloseable
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
TOF Ranging Modestatic enum
Distance measurement status -
Constructor Summary
ConstructorDescriptionTimeOfFlight
(int sensorId) Create an instance of the CAN Time Of Flight sensor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Destroy the TimeOfFlight object and free any asscioated resourcesdouble
Get ambient lighting level in mega counts per second.long
Determine the sensor firmware versiondouble
getRange()
Get the distance between the sensor and the targetdouble
Get the standard deviation of the distance measurment in millimetersGet the sensor ranging modedouble
Get the sensor sampling period in millisecondslong
Determine the sensor hardware serial numberGet status of the last distance measurement.void
Flash the time of flight sensor LED red and green to idicate the sensor asscioated with this instance of softwarevoid
initSendable
(SendableBuilder builder) boolean
Determine if the last measurment was validdouble
pidGet()
void
setRangeOfInterest
(int topLeftX, int topLeftY, int bottomRightX, int bottomRightY) Specify the region of the imaging sensor used for range measurement.void
setRangingMode
(TimeOfFlight.RangingMode mode, double sampleTime) Configure the ranging mode as well as the sample rate of the time of flight sensor The ranging mode specifies the trade off between maximum measure distance verses reliablity in bright situations.
-
Constructor Details
-
TimeOfFlight
public TimeOfFlight(int sensorId) Create an instance of the CAN Time Of Flight sensor. This is designed to support the Playing With Fusion (PWF) SEN-36005 time of flight sensor- Parameters:
sensorId
- The 6-bit identifier used to select a particular sensor on the CAN bus. This identifier may be set through the PWF Device configuration page on the roboRIO.
-
-
Method Details
-
close
public void close()Destroy the TimeOfFlight object and free any asscioated resources- Specified by:
close
in interfaceAutoCloseable
-
pidGet
public double pidGet() -
initSendable
- Specified by:
initSendable
in interfaceSendable
-
identifySensor
public void identifySensor()Flash the time of flight sensor LED red and green to idicate the sensor asscioated with this instance of software -
getFirmwareVersion
public long getFirmwareVersion()Determine the sensor firmware version- Returns:
- The sensor firmware version
-
getSerialNumber
public long getSerialNumber()Determine the sensor hardware serial number- Returns:
- The sensor hardware serial number
-
isRangeValid
public boolean isRangeValid()Determine if the last measurment was valid- Returns:
- TRUE if the Time Of Flight Sensor sucessfully measured distance to an object
-
getRange
public double getRange()Get the distance between the sensor and the target- Returns:
- Distance to target in millimeters
-
getRangeSigma
public double getRangeSigma()Get the standard deviation of the distance measurment in millimeters- Returns:
- Standard deviation of distance measurment in millimeters
-
getAmbientLightLevel
public double getAmbientLightLevel()Get ambient lighting level in mega counts per second.- Returns:
- Ambient lighting level in mega counts per second.
-
getStatus
Get status of the last distance measurement.- Returns:
- Status of last measurement. See VL53L1X datasheet for more details
-
getRangingMode
Get the sensor ranging mode- Returns:
- Sensor ranging mode
-
getSampleTime
public double getSampleTime()Get the sensor sampling period in milliseconds- Returns:
- Sensor sampling period in milliseconds
-
setRangingMode
Configure the ranging mode as well as the sample rate of the time of flight sensor The ranging mode specifies the trade off between maximum measure distance verses reliablity in bright situations. Short mode (default) works the best in bright lighting conditions, but can only measure 1.3 meters. Long mode can measure up to 4 meters in the dark, but may only be able to measure shorter distances depending on the lighting conditions. See the Vl53L1x datasheet for more information The sample time specifies the how frequently the time of flight sensor attempts to measure the distance to a target. The sample time must be between 24 and 1000 milliseconds.- Parameters:
mode
- The desired sensor ranging mode (short, medium, long)sampleTime
- The desired sample time in milliseconds
-
setRangeOfInterest
public void setRangeOfInterest(int topLeftX, int topLeftY, int bottomRightX, int bottomRightY) Specify the region of the imaging sensor used for range measurement.The region of interest refers to the pixels within the time of flight imaging sensor that are used to detect reflected laser light form the target. The sensor contains a 16x16 pixel grid. By default, all 256 pixels are used which results in a roughly 27 degree field of view.
The Field of view refers to a cone which grows from the time of flight sensor outward. By reducing the size of the region of interest (by using a smaller area of pixels) it is possible to reduce the field of view. This can be helpfull when measuring objects far away. The smaller the field of view, the smaller the area where the sensor can detect targets.
Reducing the region of interest will reduce the sensitivity of the sensor. It may be necessary to increase the reflectivity of the target or to increase the sample time to compensate.
The range of interest rows and columns must be greater or equal to zero and less than or equal to fifteen. The top left corner row/column must be smaller than the bottom right column/row. The region of interest must be at least four coulmns wide and four rows tall. For example, to specify a 4x4 region at the center of the image sensor use:
TimeOfFlight_SetRangeOfInterest(pHandle, 8, 8, 12, 12);
- Parameters:
topLeftX
- Column of the top left corner of the region of interest.topLeftY
- Row of the top left corner of the region of interest.bottomRightX
- Column of the bottom right corner of the region of interest.bottomRightY
- Row of the bottom right corner of the region of interest.
-