Location Finding

Location Finding.

Data Structures

struct  sl_rtl_loc_locator_item
 Locator item which contains the position and orientation of the locator array.

Macros

#define SL_RTL_LOC_ALL_LOCATORS   (uint32_t)(-1)
 
#define SL_RTL_LOC_ALL_TAGS   INT32_MAX

Typedefs

typedef void * sl_rtl_loc_libitem
 Locationing library item.

Enumerations

enum  sl_rtl_loc_locator_measurement_field {
  SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH, SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION, SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE, SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH_DEVIATION,
  SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION_DEVIATION, SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE_DEVIATION, SL_RTL_LOC_LOCATOR_LAST
}
 Locator-specific measurements.
 
enum  sl_rtl_loc_target_measurement_field { SL_RTL_LOC_TARGET_MEASUREMENT_LAST }
 Target-specific measurements - Not yet supported.
 
enum  sl_rtl_loc_estimation_mode {
  SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_FAST_RESPONSE, SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_FAST_RESPONSE, SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_HIGH_ACCURACY, SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY,
  SL_RTL_LOC_ESTIMATION_MODE_LAST
}
 Estimation mode.
 
enum  sl_rtl_loc_measurement_validation_method { SL_RTL_LOC_MEASUREMENT_VALIDATION_MINIMUM, SL_RTL_LOC_MEASUREMENT_VALIDATION_MEDIUM, SL_RTL_LOC_MEASUREMENT_VALIDATION_FULL }
 Measurement validation method.
 
enum  sl_rtl_loc_locator_parameter {
  SL_RTL_LOC_LOCATOR_PARAMETER_X_COORDINATE, SL_RTL_LOC_LOCATOR_PARAMETER_Y_COORDINATE, SL_RTL_LOC_LOCATOR_PARAMETER_Z_COORDINATE, SL_RTL_LOC_LOCATOR_PARAMETER_X_ORIENTATION,
  SL_RTL_LOC_LOCATOR_PARAMETER_Y_ORIENTATION, SL_RTL_LOC_LOCATOR_PARAMETER_Z_ORIENTATION, SL_RTL_LOC_LOCATOR_PARAMETER_LAST
}
 Locator-specific parameters related to locationing.
 
enum  sl_rtl_loc_target_parameter { SL_RTL_LOC_TARGET_PARAMETER_TARGET_HEIGHT, SL_RTL_LOC_TARGET_CLEAR_TARGET_HEIGHT, SL_RTL_LOC_TARGET_PARAMETER_LAST }
 Target-specific parameters related to locationing.
 
enum  sl_rtl_loc_result {
  SL_RTL_LOC_RESULT_POSITION_X = 0, SL_RTL_LOC_RESULT_POSITION_Y, SL_RTL_LOC_RESULT_POSITION_Z, SL_RTL_LOC_RESULT_POSITION_RADIUS,
  SL_RTL_LOC_RESULT_POSITION_STDEV_X, SL_RTL_LOC_RESULT_POSITION_STDEV_Y, SL_RTL_LOC_RESULT_POSITION_STDEV_Z, SL_RTL_LOC_RESULT_POSITION_VELOCITY_X,
  SL_RTL_LOC_RESULT_POSITION_VELOCITY_Y, SL_RTL_LOC_RESULT_POSITION_VELOCITY_Z, SL_RTL_LOC_RESULT_POSITION_ACCELERATION_X, SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Y,
  SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Z, SL_RTL_LOC_RESULT_LAST
}
 Locationing state results.

Functions

enum sl_rtl_error_code sl_rtl_loc_init (sl_rtl_loc_libitem *item)
 
enum sl_rtl_error_code sl_rtl_loc_deinit (sl_rtl_loc_libitem *item)
 
enum sl_rtl_error_code sl_rtl_loc_reinit (sl_rtl_loc_libitem *item)
 
enum sl_rtl_error_code sl_rtl_loc_set_mode (sl_rtl_loc_libitem *item, enum sl_rtl_loc_estimation_mode mode)
 
enum sl_rtl_error_code sl_rtl_loc_set_measurement_validation (sl_rtl_loc_libitem *item, enum sl_rtl_loc_measurement_validation_method method)
 
enum sl_rtl_error_code sl_rtl_loc_add_locator (sl_rtl_loc_libitem *item, struct sl_rtl_loc_locator_item *locator_item, uint32_t *locator_id_out)
 
enum sl_rtl_error_code sl_rtl_loc_add_tag (sl_rtl_loc_libitem *item, int32_t *tag_id_out)
 
enum sl_rtl_error_code sl_rtl_loc_remove_tag (sl_rtl_loc_libitem *item, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_create_position_estimator (sl_rtl_loc_libitem *item)
 
enum sl_rtl_error_code sl_rtl_loc_set_locator_parameter (sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_parameter parameter, float value)
 
enum sl_rtl_error_code sl_rtl_loc_set_target_parameter (sl_rtl_loc_libitem *item, enum sl_rtl_loc_target_parameter parameter, float value)
 
enum sl_rtl_error_code sl_rtl_loc_set_target_parameter_tag (sl_rtl_loc_libitem *item, enum sl_rtl_loc_target_parameter parameter, float value, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_clear_measurements (sl_rtl_loc_libitem *item)
 
enum sl_rtl_error_code sl_rtl_loc_clear_measurements_tag (sl_rtl_loc_libitem *item, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_set_locator_measurement (sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float value)
 
enum sl_rtl_error_code sl_rtl_loc_set_locator_measurement_tag (sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float value, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_set_target_measurement (sl_rtl_loc_libitem *item, enum sl_rtl_loc_target_measurement_field field, float value)
 
enum sl_rtl_error_code sl_rtl_loc_process (sl_rtl_loc_libitem *item, float time_step)
 
enum sl_rtl_error_code sl_rtl_loc_process_tag (sl_rtl_loc_libitem *item, float time_step, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_get_result (sl_rtl_loc_libitem *item, enum sl_rtl_loc_result result, float *value)
 
enum sl_rtl_error_code sl_rtl_loc_get_result_tag (sl_rtl_loc_libitem *item, enum sl_rtl_loc_result result, float *value, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_get_measurement_in_system_coordinates (sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float *value_out)
 
enum sl_rtl_error_code sl_rtl_loc_get_measurement_in_system_coordinates_tag (sl_rtl_loc_libitem *item, uint32_t locator_id, enum sl_rtl_loc_locator_measurement_field field, float *value_out, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_get_expected_direction (sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance)
 
enum sl_rtl_error_code sl_rtl_loc_get_expected_direction_tag (sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance, int32_t tag_id)
 
enum sl_rtl_error_code sl_rtl_loc_get_expected_deviation (sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance)
 
enum sl_rtl_error_code sl_rtl_loc_get_expected_deviation_tag (sl_rtl_loc_libitem *item, uint32_t locator_id, float *azimuth, float *elevation, float *distance, int32_t tag_id)
 
int sl_rtl_loc_get_number_disabled (sl_rtl_loc_libitem *item)
 
int sl_rtl_loc_get_number_disabled_tag (sl_rtl_loc_libitem *item, int32_t tag_id)
 
bool sl_rtl_loc_filter_in_reach (sl_rtl_loc_libitem *item, uint32_t locator_id)
 
enum sl_rtl_error_code sl_rtl_loc_filter_clear (sl_rtl_loc_libitem *item, uint32_t locator_id)
 
enum sl_rtl_error_code sl_rtl_loc_filter_sphere (sl_rtl_loc_libitem *item, uint32_t locator_id, float radius, bool exclude_region)
 
enum sl_rtl_error_code sl_rtl_loc_filter_circle (sl_rtl_loc_libitem *item, uint32_t locator_id, float radius, bool exclude_region)
 
enum sl_rtl_error_code sl_rtl_loc_filter_box (sl_rtl_loc_libitem *item, uint32_t locator_id, float xDelta, float yDelta, float zDelta, bool exclude_region)
 
enum sl_rtl_error_code sl_rtl_loc_filter_rect (sl_rtl_loc_libitem *item, uint32_t locator_id, float xDelta, float yDelta, bool exclude_region)
 
enum sl_rtl_error_code sl_rtl_loc_filter_room (sl_rtl_loc_libitem *item, uint32_t locator_id, float minX, float maxX, float minY, float maxY, float minZ, float maxZ, bool exclude_region)
 
enum sl_rtl_error_code sl_rtl_loc_filter_floor (sl_rtl_loc_libitem *item, uint32_t locator_id, float minX, float maxX, float minY, float maxY, bool exclude_region)
 
enum sl_rtl_error_code sl_rtl_loc_enable_trilateration (sl_rtl_loc_libitem *item, bool value)

Detailed Description

Location Finding.

These functions are related to the calculation of positions from angles and distances.


Data Structure Documentation

◆ sl_rtl_loc_locator_item

struct sl_rtl_loc_locator_item

Locator item which contains the position and orientation of the locator array.

Data Fields
float coordinate_x X-axis coordinate of the locator.
float coordinate_y Y-axis coordinate of the locator.
float coordinate_z Z-axis coordinate of the locator.
float orientation_x_axis_degrees X-axis rotation of the locator (Euler angles) in degrees.
float orientation_y_axis_degrees Y-axis rotation of the locator (Euler angles) in degrees.
float orientation_z_axis_degrees Z-axis rotation of the locator (Euler angles) in degrees.

Macro Definition Documentation

◆ SL_RTL_LOC_ALL_LOCATORS

#define SL_RTL_LOC_ALL_LOCATORS   (uint32_t)(-1)

◆ SL_RTL_LOC_ALL_TAGS

#define SL_RTL_LOC_ALL_TAGS   INT32_MAX

Typedef Documentation

◆ sl_rtl_loc_libitem

typedef void* sl_rtl_loc_libitem

Locationing library item.

Enumeration Type Documentation

◆ sl_rtl_loc_locator_measurement_field

Locator-specific measurements.

Enumerator
SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH 

Measured azimuth from locator to tag.

SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION 

Measured elevation from locator to tag.

SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE 

Measured distance from locator to tag.

SL_RTL_LOC_LOCATOR_MEASUREMENT_AZIMUTH_DEVIATION 

Azimuth stdev.

SL_RTL_LOC_LOCATOR_MEASUREMENT_ELEVATION_DEVIATION 

Elevation stdev.

SL_RTL_LOC_LOCATOR_MEASUREMENT_DISTANCE_DEVIATION 

Distance stdev.

SL_RTL_LOC_LOCATOR_LAST 

◆ sl_rtl_loc_target_measurement_field

Target-specific measurements - Not yet supported.

Enumerator
SL_RTL_LOC_TARGET_MEASUREMENT_LAST 

◆ sl_rtl_loc_estimation_mode

Estimation mode.

Enumerator
SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_FAST_RESPONSE 

Two-dimensional mode - Only X and Y plane considered, less filtered mode for fast moving assests.

SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_FAST_RESPONSE 

Three-dimensional mode - Covers X, Y and Z planes, less filtered mode for fast moving assests.

SL_RTL_LOC_ESTIMATION_MODE_TWO_DIM_HIGH_ACCURACY 

Two-dimensional mode - Only X and Y plane considered, more filtered mode for relatively static assets.

SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY 

Three-dimensional mode - Covers X, Y and Z planes, more filtered mode for relatively static assets.

SL_RTL_LOC_ESTIMATION_MODE_LAST 

◆ sl_rtl_loc_measurement_validation_method

Measurement validation method.

Enumerator
SL_RTL_LOC_MEASUREMENT_VALIDATION_MINIMUM 

Only the basic validation integrated in the locationing algorithm (default)

SL_RTL_LOC_MEASUREMENT_VALIDATION_MEDIUM 

May discard the most inaccurate measurements with an additional calculation round.

SL_RTL_LOC_MEASUREMENT_VALIDATION_FULL 

May discard the most inaccurate measurements with several calculation rounds.

◆ sl_rtl_loc_locator_parameter

Locator-specific parameters related to locationing.

Enumerator
SL_RTL_LOC_LOCATOR_PARAMETER_X_COORDINATE 

Set X-axis coordinate of the locator.

SL_RTL_LOC_LOCATOR_PARAMETER_Y_COORDINATE 

Set Y-axis coordinate of the locator.

SL_RTL_LOC_LOCATOR_PARAMETER_Z_COORDINATE 

Set Z-axis coordinate of the locator.

SL_RTL_LOC_LOCATOR_PARAMETER_X_ORIENTATION 

Set X-axis rotation of the locator (Euler angles) in degrees.

SL_RTL_LOC_LOCATOR_PARAMETER_Y_ORIENTATION 

Set Y-axis rotation of the locator (Euler angles) in degrees.

SL_RTL_LOC_LOCATOR_PARAMETER_Z_ORIENTATION 

Set Z-axis rotation of the locator (Euler angles) in degrees.

SL_RTL_LOC_LOCATOR_PARAMETER_LAST 

◆ sl_rtl_loc_target_parameter

Target-specific parameters related to locationing.

Enumerator
SL_RTL_LOC_TARGET_PARAMETER_TARGET_HEIGHT 
SL_RTL_LOC_TARGET_CLEAR_TARGET_HEIGHT 
SL_RTL_LOC_TARGET_PARAMETER_LAST 

◆ sl_rtl_loc_result

Locationing state results.

Enumerator
SL_RTL_LOC_RESULT_POSITION_X 

Estimated X-axis position of the target.

SL_RTL_LOC_RESULT_POSITION_Y 

Estimated Y-axis position of the target.

SL_RTL_LOC_RESULT_POSITION_Z 

Estimated Z-axis position of the target.

SL_RTL_LOC_RESULT_POSITION_RADIUS 

The combined radius (stdev) of the location estimate.

SL_RTL_LOC_RESULT_POSITION_STDEV_X 

The accuracy (stdev) of the location x-coordinate estimate.

SL_RTL_LOC_RESULT_POSITION_STDEV_Y 

The accuracy (stdev) of the location y-coordinate estimate.

SL_RTL_LOC_RESULT_POSITION_STDEV_Z 

The accuracy (stdev) of the location z-coordinate estimate.

SL_RTL_LOC_RESULT_POSITION_VELOCITY_X 

Estimated X-axis velocity of the target.

SL_RTL_LOC_RESULT_POSITION_VELOCITY_Y 

Estimated Y-axis velocity of the target.

SL_RTL_LOC_RESULT_POSITION_VELOCITY_Z 

Estimated Z-axis velocity of the target.

SL_RTL_LOC_RESULT_POSITION_ACCELERATION_X 

Estimated X-axis acceleration of the target.

SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Y 

Estimated Y-axis acceleration of the target.

SL_RTL_LOC_RESULT_POSITION_ACCELERATION_Z 

Estimated Z-axis acceleration of the target.

SL_RTL_LOC_RESULT_LAST 

Number of results.

Function Documentation

◆ sl_rtl_loc_init()

enum sl_rtl_error_code sl_rtl_loc_init ( sl_rtl_loc_libitem item)

Initialize the locationing libitem instance.

Parameters
[in]itemPointer to the libitem to be initialized
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_deinit()

enum sl_rtl_error_code sl_rtl_loc_deinit ( sl_rtl_loc_libitem item)

Deinitialize the locationing libitem instance.

Parameters
[in]itemPointer to the libitem to be initialized
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_reinit()

enum sl_rtl_error_code sl_rtl_loc_reinit ( sl_rtl_loc_libitem item)

Reinitialize the locationing libitem instance.

Reset the libitem's internal values to the starting point so that it can start all over from the beginning. This can be used, for example, in testing instead of deleting and re-creating the libitem object.

Parameters
[in]itemPointer to the libitem to be initialized
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_mode()

enum sl_rtl_error_code sl_rtl_loc_set_mode ( sl_rtl_loc_libitem item,
enum sl_rtl_loc_estimation_mode  mode 
)

Set the locationing dimensionality mode. Possible choices are 2D or 3D modes. Two-dimensional mode does not vary the z-position of the target and assumes it is 0 at all times. When updating, for example, the distance measure- ment from the locator to the target in 2D mode, it should be noted that even if the locator and tag are on different z-planes, the distance should be given as the distance as if they were on the same z-plane.

Parameters
[in]itemPointer to the libitem
[in]modeEstimation mode as enum
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_measurement_validation()

enum sl_rtl_error_code sl_rtl_loc_set_measurement_validation ( sl_rtl_loc_libitem item,
enum sl_rtl_loc_measurement_validation_method  method 
)

Set the measurement validation method. If not given, the minimum method is used. Possible choices are minimum, medium, and full. The minimum does not increase the calculation CPU load because it is integrated inside the algorithm's normal operation. The medium and full methods use additionally one or multiple calculation rounds respectively and may discard the most inaccurate measurements from the calculation. However, they will always leave enough of them to calculate the estimate.

Parameters
[in]itemPointer to the libitem
[in]methodValidation method as enum
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_add_locator()

enum sl_rtl_error_code sl_rtl_loc_add_locator ( sl_rtl_loc_libitem item,
struct sl_rtl_loc_locator_item locator_item,
uint32_t *  locator_id_out 
)

Add a locator item into the locationing estimator after setting its position and orientation parameters. Add all locators using this function before calling sl_rtl_loc_create_position_estimator to create the estimator instance.

Parameters
[in]itemPointer to the libitem
[in]locator_itemLocator item instance to be added
[out]locator_id_outID of the locator assigned by the library
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_add_tag()

enum sl_rtl_error_code sl_rtl_loc_add_tag ( sl_rtl_loc_libitem item,
int32_t *  tag_id_out 
)

Add an asset tag item into the locationing estimator.

Parameters
[in]itemPointer to the libitem
[out]tag_id_outID of the tag assigned by the library
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_remove_tag()

enum sl_rtl_error_code sl_rtl_loc_remove_tag ( sl_rtl_loc_libitem item,
int32_t  tag_id 
)

Remove an asset tag item previously added with sl_rtl_loc_add_tag.

Parameters
[in]itemPointer to the libitem
[out]IDof the tag to be removed
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_create_position_estimator()

enum sl_rtl_error_code sl_rtl_loc_create_position_estimator ( sl_rtl_loc_libitem item)

Create the position estimator instance after all locators have been added.

Parameters
[in]itemPointer to the libitem
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_locator_parameter()

enum sl_rtl_error_code sl_rtl_loc_set_locator_parameter ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
enum sl_rtl_loc_locator_parameter  parameter,
float  value 
)

Set locator-specific parameters, such as the azimuth and elevation measurement covariances.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator for which the parameter will be set
[in]parameterParameter to be set (as enum)
[in]valueNew value for the parameter
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_target_parameter()

enum sl_rtl_error_code sl_rtl_loc_set_target_parameter ( sl_rtl_loc_libitem item,
enum sl_rtl_loc_target_parameter  parameter,
float  value 
)

Set target-specific parameters, such as the known target height.

Parameters
[in]itemPointer to the libitem
[in]parameterParameter to be set (as enum)
[in]valueNew value for the parameter
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_target_parameter_tag()

enum sl_rtl_error_code sl_rtl_loc_set_target_parameter_tag ( sl_rtl_loc_libitem item,
enum sl_rtl_loc_target_parameter  parameter,
float  value,
int32_t  tag_id 
)

Set target-specific parameters, such as the known target height for a specified tag.

Parameters
[in]itemPointer to the libitem
[in]parameterParameter to be set (as enum)
[in]valueNew value for the parameter
[in]tag_idTagID of the asset to be changed or SL_RTL_LOC_ALL_TAGS
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_clear_measurements()

enum sl_rtl_error_code sl_rtl_loc_clear_measurements ( sl_rtl_loc_libitem item)

Clear previous measurements. Call this function before setting new measurements if the previous measurements are not valid for the next iteration step.

Parameters
[in]itemPointer to the libitem
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_clear_measurements_tag()

enum sl_rtl_error_code sl_rtl_loc_clear_measurements_tag ( sl_rtl_loc_libitem item,
int32_t  tag_id 
)

Clear previous measurements for a specified tag. Call this function before setting new measurements if the previous measurements are not valid for the next iteration step.

Parameters
[in]itemPointer to the libitem
[in]tag_idTagID of the asset to be changed or SL_RTL_LOC_ALL_TAGS
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_locator_measurement()

enum sl_rtl_error_code sl_rtl_loc_set_locator_measurement ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
enum sl_rtl_loc_locator_measurement_field  field,
float  value 
)

Set a new measurement for a locator specified by the locator ID.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator for which the measurement will be set
[in]fieldMeasurement to be updated (as enum)
[in]valueNew value for the measurement
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_locator_measurement_tag()

enum sl_rtl_error_code sl_rtl_loc_set_locator_measurement_tag ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
enum sl_rtl_loc_locator_measurement_field  field,
float  value,
int32_t  tag_id 
)

Set a new measurement for a locator specified by the locator ID for a specified tag.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator for which the measurement will be set
[in]fieldMeasurement to be updated (as enum)
[in]valueNew value for the measurement
[in]tag_idTagID of the asset to be changed
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_set_target_measurement()

enum sl_rtl_error_code sl_rtl_loc_set_target_measurement ( sl_rtl_loc_libitem item,
enum sl_rtl_loc_target_measurement_field  field,
float  value 
)

Set a new measurement for the target. Because the current version does not support this function, calling it has no effect.

Parameters
[in]itemPointer to the libitem
[in]fieldMeasurement to be updated (as enum)
[in]valueNew value for the measurement
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_process()

enum sl_rtl_error_code sl_rtl_loc_process ( sl_rtl_loc_libitem item,
float  time_step 
)

Process the current time step of the locationing filter. Call this function after old measurements are cleared and new measurements are set for the current time step. The process will step the filter forward and provide new state results and state covariance values, which can be retrieved with separate function calls.

Parameters
[in]itemPointer to the libitem
[in]time_stepProcess time interval in seconds. This is the time separation between the previous step and this current step.
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_process_tag()

enum sl_rtl_error_code sl_rtl_loc_process_tag ( sl_rtl_loc_libitem item,
float  time_step,
int32_t  tag_id 
)

Process the current time step of the locationing filter for a specified tag. Call this function after old measurements are cleared and new measurements are set for the current time step. The process will step the filter forward and provide new state results and state covariance values, which can be retrieved with separate function calls.

Parameters
[in]itemPointer to the libitem
[in]time_stepProcess time interval in seconds. This is the time separation between the previous step and this current step.
[in]tag_idTagID of the asset to be processed or SL_RTL_LOC_ALL_TAGS
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_get_result()

enum sl_rtl_error_code sl_rtl_loc_get_result ( sl_rtl_loc_libitem item,
enum sl_rtl_loc_result  result,
float *  value 
)

Get result of the current state variables or state covariances.

Parameters
[in]itemPointer to the libitem
[in]resultThe desired state variable result as enum
[out]valueThe value output of the state variable
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_get_result_tag()

enum sl_rtl_error_code sl_rtl_loc_get_result_tag ( sl_rtl_loc_libitem item,
enum sl_rtl_loc_result  result,
float *  value,
int32_t  tag_id 
)

Get result of the current state variables or state covariances for a specified tag.

Parameters
[in]itemPointer to the libitem
[in]resultThe desired state variable result as enum
[out]valueThe value output of the state variable
[in]tag_idTagID of the asset to fetch the results for
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_get_measurement_in_system_coordinates()

enum sl_rtl_error_code sl_rtl_loc_get_measurement_in_system_coordinates ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
enum sl_rtl_loc_locator_measurement_field  field,
float *  value_out 
)

Get the latest measurement converted into the coordinate system of the multi-locator system.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator whose measurement will be retrieved
[in]fieldMeasurement to be retrieved (as enum)
[out]value_outThe value output of the state variable
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_get_measurement_in_system_coordinates_tag()

enum sl_rtl_error_code sl_rtl_loc_get_measurement_in_system_coordinates_tag ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
enum sl_rtl_loc_locator_measurement_field  field,
float *  value_out,
int32_t  tag_id 
)

Get latest measurement converted into the coordinate system of the multi-locator system for a specified tag.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator whose measurement will be retrieved
[in]fieldMeasurement to be retrieved (as enum)
[out]value_outThe value output of the state variable
[in]tag_idTagID of the asset
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_get_expected_direction()

enum sl_rtl_error_code sl_rtl_loc_get_expected_direction ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float *  azimuth,
float *  elevation,
float *  distance 
)

Get the expected direction of the asset for the locator.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator whose measurement will be retrieved
[out]azimuthThe expected azimuth value
[out]elevationThe expected elevation value
[out]distanceThe expected distance value
Returns
SL_RTL_ERROR_SUCCESS if the locator does not require correction
SL_RTL_ERROR_INCORRECT_MEASUREMENT if the locator's previous measurement was ignored because the error is too large
Another error code in case of error

Position calculation has a better overal view to the asset's location than any individual locator. In case the direction angles differ too much from the expected direction, the locator can be instructed to correct its internal state so that in can recover from this incorrectness faster. See also sl_rtl_aox_set_expected_direction()

◆ sl_rtl_loc_get_expected_direction_tag()

enum sl_rtl_error_code sl_rtl_loc_get_expected_direction_tag ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float *  azimuth,
float *  elevation,
float *  distance,
int32_t  tag_id 
)

Get the expected direction of the asset for the locator for a specified tag.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator whose measurement will be retrieved
[out]azimuthThe expected azimuth value
[out]elevationThe expected elevation value
[out]distanceThe expected distance value
[in]tag_idTagID of the asset
Returns
SL_RTL_ERROR_SUCCESS if the locator does not require correction
SL_RTL_ERROR_INCORRECT_MEASUREMENT if the locator's previous measurement was ignored because of too large error
Another error code in case of error

Position calculation has a better overal view to the asset's location than any individual locator. In case the direction angles differ too much from the expected direction, the locator can be instructed to correct its internal state so that in can recover from this incorrectness faster. See also sl_rtl_aox_set_expected_direction()

◆ sl_rtl_loc_get_expected_deviation()

enum sl_rtl_error_code sl_rtl_loc_get_expected_deviation ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float *  azimuth,
float *  elevation,
float *  distance 
)

Get the deviation values for expected direction of the asset for the locator.

Parameters
[in]locator_idID of the locator whose measurement will be retrieved
[out]azimuthThe expected azimuth value's standard deviation
[out]elevationThe expected elevation value's standard deviation
[in]itemPointer to the libitem
[out]distanceThe expected distance value's standard deviation
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_get_expected_deviation_tag()

enum sl_rtl_error_code sl_rtl_loc_get_expected_deviation_tag ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float *  azimuth,
float *  elevation,
float *  distance,
int32_t  tag_id 
)

Get the deviation values for expected direction of the asset for the locator for a specified tag.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator whose measurement will be retrieved
[out]azimuthThe expected azimuth value's standard deviation
[out]elevationThe expected elevation value's standard deviation
[out]distanceThe expected distance value's standard deviation
[in]tag_idTagID of the asset
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_get_number_disabled()

int sl_rtl_loc_get_number_disabled ( sl_rtl_loc_libitem item)

Get the number of locators, which are disabled from position calculation because the direction error is too large.

Parameters
[in]itemPointer to the libitem
Returns
Number of locators needing correction, or -1 in case of any other error

◆ sl_rtl_loc_get_number_disabled_tag()

int sl_rtl_loc_get_number_disabled_tag ( sl_rtl_loc_libitem item,
int32_t  tag_id 
)

Get the number of locators, which are disabled from position calculation because the direction error is too large, for a specified tag.

Parameters
[in]itemPointer to the libitem
[in]tag_idTagID of the asset
Returns
Number of locators needing correction, or -1 in case of any other error

◆ sl_rtl_loc_filter_in_reach()

bool sl_rtl_loc_filter_in_reach ( sl_rtl_loc_libitem item,
uint32_t  locator_id 
)

Check if the asset is in reach of a given locator according to the position-based filtering.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of the locator to run the test
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_filter_clear()

enum sl_rtl_error_code sl_rtl_loc_filter_clear ( sl_rtl_loc_libitem item,
uint32_t  locator_id 
)

Clear all the position-based filters from a locator or from all locators.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of a single locator or SL_RTL_LOC_ALL_LOCATORS
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_filter_sphere()

enum sl_rtl_error_code sl_rtl_loc_filter_sphere ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float  radius,
bool  exclude_region 
)

Add a position-based filter. This filter is based on the distance from a locator. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of a single locator or SL_RTL_LOC_ALL_LOCATORS
[in]radiusDistance from the locator
[in]exclude_regionIf true, define an excluded region instead
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_filter_circle()

enum sl_rtl_error_code sl_rtl_loc_filter_circle ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float  radius,
bool  exclude_region 
)

Add a position-based filter. The two dimensional filter is based on the distance from a locator. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of a single locator or SL_RTL_LOC_ALL_LOCATORS
[in]radiusDistance from the locator
[in]exclude_regionIf true, define an excluded region instead
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_filter_box()

enum sl_rtl_error_code sl_rtl_loc_filter_box ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float  xDelta,
float  yDelta,
float  zDelta,
bool  exclude_region 
)

Add a position-based filter. This filter defines relative distances in coordinate axes' directions. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of a single locator or SL_RTL_LOC_ALL_LOCATORS
[in]xDeltaMaximum distance in X-coordinate direction
[in]yDeltaMaximum distance in Y-coordinate direction
[in]zDeltaMaximum distance in Z-coordinate direction
[in]exclude_regionIf true, define an excluded region instead
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_filter_rect()

enum sl_rtl_error_code sl_rtl_loc_filter_rect ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float  xDelta,
float  yDelta,
bool  exclude_region 
)

Add a position-based filter. This two dimensional filter defines relative distances in coordinate axes' directions. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of a single locator or SL_RTL_LOC_ALL_LOCATORS
[in]xDeltaMaximum distance in X-coordinate direction
[in]yDeltaMaximum distance in Y-coordinate direction
[in]exclude_regionIf true, define an excluded region instead
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_filter_room()

enum sl_rtl_error_code sl_rtl_loc_filter_room ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float  minX,
float  maxX,
float  minY,
float  maxY,
float  minZ,
float  maxZ,
bool  exclude_region 
)

Add a position-based filter. This filter defines an area in global coordinates. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of a single locator or SL_RTL_LOC_ALL_LOCATORS
[in]minXMinimum X-coordinate value
[in]maxXMaximum X-coordinate value
[in]minYMinimum Y-coordinate value
[in]maxYMaximum Y-coordinate value
[in]minZMinimum Z-coordinate value
[in]maxZMaximum Z-coordinate value
[in]exclude_regionIf true, define an excluded region instead
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_filter_floor()

enum sl_rtl_error_code sl_rtl_loc_filter_floor ( sl_rtl_loc_libitem item,
uint32_t  locator_id,
float  minX,
float  maxX,
float  minY,
float  maxY,
bool  exclude_region 
)

Add a position-based filter. The two dimensional filter defines an area in global coordinates. The filter can be added to one locator or all locators. A locator may have several filters which are combined.

Parameters
[in]itemPointer to the libitem
[in]locator_idID of a single locator or SL_RTL_LOC_ALL_LOCATORS
[in]minXMinimum X-coordinate value
[in]maxXMaximum X-coordinate value
[in]minYMinimum Y-coordinate value
[in]maxYMaximum Y-coordinate value
[in]exclude_regionIf true, define an excluded region instead
Returns
SL_RTL_ERROR_SUCCESS if successful

◆ sl_rtl_loc_enable_trilateration()

enum sl_rtl_error_code sl_rtl_loc_enable_trilateration ( sl_rtl_loc_libitem item,
bool  value 
)

Enable trilateration method in location calculation.

The trilateration method calculates the position based on the distances from the locators rather than the direction angles. This function enables the method, but the location calculation may still utilize also the directon if available to further increase the accuracy.

Trilateration method is not turned on by default.

Parameters
[in]itemPointer to the libitem
[in]valueTurn the trilateration on or off
Returns
SL_RTL_ERROR_SUCCESS if successful