SparkFun Optical Tracking Odometry Sensor  v1.0.2-11-gb69b326
Library for the SparkFun Optical Tracking Odometry Sensor
Loading...
Searching...
No Matches
sfDevOTOS Class Referenceabstract

Class for the SparkFun Qwiic Optical Tracking Odometry Sensor (OTOS). Includes methods to communicate with the sensor, such as getting the tracked location, configuring the sensor, etc. This class is a base class that must be derived to implement the delay function and I2C communication bus. More...

#include <sfDevOTOS.h>

Inheritance diagram for sfDevOTOS:

Public Member Functions

 sfDevOTOS ()
 Default constructor, only initializes member variables. More...
 
sfTkError_t begin (sfTkII2C *commBus=nullptr)
 Begins the Qwiic OTOS and verifies it is connected. More...
 
sfTkError_t isConnected ()
 Checks if the device is connected. More...
 
sfTkError_t getVersionInfo (sfe_otos_version_t &hwVersion, sfe_otos_version_t &fwVersion)
 Gets the hardware and firmware version numbers from the OTOS. More...
 
sfTkError_t selfTest ()
 Performs a self test of the OTOS. More...
 
sfTkError_t calibrateImu (uint8_t numSamples=255, bool waitUntilDone=true)
 Calibrates the IMU on the OTOS, which removes the accelerometer and gyroscope offsets. More...
 
sfTkError_t getImuCalibrationProgress (uint8_t &numSamples)
 Gets the progress of the IMU calibration. Used for asynchronous calibration with calibrateImu() More...
 
sfe_otos_linear_unit_t getLinearUnit ()
 Gets the linear unit used by all methods using a pose. More...
 
void setLinearUnit (sfe_otos_linear_unit_t unit)
 Sets the linear unit used by all methods using a pose. More...
 
sfe_otos_angular_unit_t getAngularUnit ()
 Gets the angular unit used by all methods using a pose. More...
 
void setAngularUnit (sfe_otos_angular_unit_t unit)
 Sets the angular unit used by all methods using a pose. More...
 
sfTkError_t getLinearScalar (float &scalar)
 Gets the linear scalar used by the OTOS. More...
 
sfTkError_t setLinearScalar (float scalar)
 Sets the linear scalar used by the OTOS. Can be used to compensate for scaling issues with the sensor measurements. More...
 
sfTkError_t getAngularScalar (float &scalar)
 Gets the angular scalar used by the OTOS. More...
 
sfTkError_t setAngularScalar (float scalar)
 Sets the angular scalar used by the OTOS. Can be used to compensate for scaling issues with the sensor measurements. More...
 
sfTkError_t resetTracking ()
 Resets the tracking algorithm, which resets the position to the origin, but can also be used to recover from some rare tracking errors. More...
 
sfTkError_t getSignalProcessConfig (sfe_otos_signal_process_config_t &config)
 Gets the signal processing configuration from the OTOS. More...
 
sfTkError_t setSignalProcessConfig (sfe_otos_signal_process_config_t &config)
 Sets the signal processing configuration on the OTOS. This is primarily useful for creating and testing a new lookup table calibration. More...
 
sfTkError_t getStatus (sfe_otos_status_t &status)
 Gets the status register from the OTOS, which includes warnings and errors reported by the sensor. More...
 
sfTkError_t getOffset (sfe_otos_pose2d_t &pose)
 Gets the offset of the OTOS. More...
 
sfTkError_t setOffset (sfe_otos_pose2d_t &pose)
 Sets the offset of the OTOS. This is useful if your sensor is mounted off-center from a robot. Rather than returning the position of the sensor, the OTOS will return the position of the robot. More...
 
sfTkError_t getPosition (sfe_otos_pose2d_t &pose)
 Gets the position measured by the OTOS. More...
 
sfTkError_t setPosition (sfe_otos_pose2d_t &pose)
 Sets the position measured by the OTOS. This is useful if your robot does not start at the origin, or you have another source of location information (eg. vision odometry); the OTOS will continue tracking from this position. More...
 
sfTkError_t getVelocity (sfe_otos_pose2d_t &pose)
 Gets the velocity measured by the OTOS. More...
 
sfTkError_t getAcceleration (sfe_otos_pose2d_t &pose)
 Gets the acceleration measured by the OTOS. More...
 
sfTkError_t getPositionStdDev (sfe_otos_pose2d_t &pose)
 Gets the standard deviation of the measured position. More...
 
sfTkError_t getVelocityStdDev (sfe_otos_pose2d_t &pose)
 Gets the standard deviation of the measured velocity. More...
 
sfTkError_t getAccelerationStdDev (sfe_otos_pose2d_t &pose)
 Gets the standard deviation of the measured acceleration. More...
 
sfTkError_t getPosVelAcc (sfe_otos_pose2d_t &pos, sfe_otos_pose2d_t &vel, sfe_otos_pose2d_t &acc)
 Gets the position, velocity, and acceleration measured by the OTOS in a single burst read. More...
 
sfTkError_t getPosVelAccStdDev (sfe_otos_pose2d_t &pos, sfe_otos_pose2d_t &vel, sfe_otos_pose2d_t &acc)
 Gets the standard deviation of the measured position, velocity, and acceleration in a single burst read. More...
 
sfTkError_t getPosVelAccAndStdDev (sfe_otos_pose2d_t &pos, sfe_otos_pose2d_t &vel, sfe_otos_pose2d_t &acc, sfe_otos_pose2d_t &posStdDev, sfe_otos_pose2d_t &velStdDev, sfe_otos_pose2d_t &accStdDev)
 Gets the position, velocity, acceleration, and standard deviation of each in a single burst read. More...
 

Static Public Attributes

static constexpr uint8_t kDefaultAddress = 0x17
 Default I2C addresses of the Qwiic OTOS. More...
 
static constexpr float kMinScalar = 0.872f
 Minimum scalar value for the linear and angular scalars. More...
 
static constexpr float kMaxScalar = 1.127f
 Maximum scalar value for the linear and angular scalars. More...
 

Protected Member Functions

virtual void delayMs (uint32_t ms)=0
 
sfTkError_t readPoseRegs (uint8_t reg, sfe_otos_pose2d_t &pose, float rawToXY, float rawToH)
 
sfTkError_t writePoseRegs (uint8_t reg, sfe_otos_pose2d_t &pose, float xyToRaw, float hToRaw)
 
void regsToPose (uint8_t *rawData, sfe_otos_pose2d_t &pose, float rawToXY, float rawToH)
 
void poseToRegs (uint8_t *rawData, sfe_otos_pose2d_t &pose, float xyToRaw, float hToRaw)
 

Protected Attributes

sfTkII2C * _commBus
 
sfe_otos_linear_unit_t _linearUnit
 
sfe_otos_angular_unit_t _angularUnit
 
float _meterToUnit
 
float _radToUnit
 

Static Protected Attributes

static constexpr uint8_t kRegProductId = 0x00
 
static constexpr uint8_t kRegHwVersion = 0x01
 
static constexpr uint8_t kRegFwVersion = 0x02
 
static constexpr uint8_t kRegScalarLinear = 0x04
 
static constexpr uint8_t kRegScalarAngular = 0x05
 
static constexpr uint8_t kRegImuCalib = 0x06
 
static constexpr uint8_t kRegReset = 0x07
 
static constexpr uint8_t kRegSignalProcess = 0x0E
 
static constexpr uint8_t kRegSelfTest = 0x0F
 
static constexpr uint8_t kRegOffXL = 0x10
 
static constexpr uint8_t kRegOffXH = 0x11
 
static constexpr uint8_t kRegOffYL = 0x12
 
static constexpr uint8_t kRegOffYH = 0x13
 
static constexpr uint8_t kRegOffHL = 0x14
 
static constexpr uint8_t kRegOffHH = 0x15
 
static constexpr uint8_t kRegStatus = 0x1F
 
static constexpr uint8_t kRegPosXL = 0x20
 
static constexpr uint8_t kRegPosXH = 0x21
 
static constexpr uint8_t kRegPosYL = 0x22
 
static constexpr uint8_t kRegPosYH = 0x23
 
static constexpr uint8_t kRegPosHL = 0x24
 
static constexpr uint8_t kRegPosHH = 0x25
 
static constexpr uint8_t kRegVelXL = 0x26
 
static constexpr uint8_t kRegVelXH = 0x27
 
static constexpr uint8_t kRegVelYL = 0x28
 
static constexpr uint8_t kRegVelYH = 0x29
 
static constexpr uint8_t kRegVelHL = 0x2A
 
static constexpr uint8_t kRegVelHH = 0x2B
 
static constexpr uint8_t kRegAccXL = 0x2C
 
static constexpr uint8_t kRegAccXH = 0x2D
 
static constexpr uint8_t kRegAccYL = 0x2E
 
static constexpr uint8_t kRegAccYH = 0x2F
 
static constexpr uint8_t kRegAccHL = 0x30
 
static constexpr uint8_t kRegAccHH = 0x31
 
static constexpr uint8_t kRegPosStdXL = 0x32
 
static constexpr uint8_t kRegPosStdXH = 0x33
 
static constexpr uint8_t kRegPosStdYL = 0x34
 
static constexpr uint8_t kRegPosStdYH = 0x35
 
static constexpr uint8_t kRegPosStdHL = 0x36
 
static constexpr uint8_t kRegPosStdHH = 0x37
 
static constexpr uint8_t kRegVelStdXL = 0x38
 
static constexpr uint8_t kRegVelStdXH = 0x39
 
static constexpr uint8_t kRegVelStdYL = 0x3A
 
static constexpr uint8_t kRegVelStdYH = 0x3B
 
static constexpr uint8_t kRegVelStdHL = 0x3C
 
static constexpr uint8_t kRegVelStdHH = 0x3D
 
static constexpr uint8_t kRegAccStdXL = 0x3E
 
static constexpr uint8_t kRegAccStdXH = 0x3F
 
static constexpr uint8_t kRegAccStdYL = 0x40
 
static constexpr uint8_t kRegAccStdYH = 0x41
 
static constexpr uint8_t kRegAccStdHL = 0x42
 
static constexpr uint8_t kRegAccStdHH = 0x43
 
static constexpr uint8_t kProductId = 0x5F
 
static constexpr float kMeterToInch = 39.37f
 
static constexpr float kInchToMeter = 1.0f / kMeterToInch
 
static constexpr float kRadianToDegree = 180.0f / M_PI
 
static constexpr float kDegreeToRadian = M_PI / 180.0f
 
static constexpr float kMeterToInt16 = 32768.0f / 10.0f
 
static constexpr float kInt16ToMeter = 1.0f / kMeterToInt16
 
static constexpr float kMpsToInt16 = 32768.0f / 5.0f
 
static constexpr float kInt16ToMps = 1.0f / kMpsToInt16
 
static constexpr float kMpssToInt16 = 32768.0f / (16.0f * 9.80665f)
 
static constexpr float kInt16ToMpss = 1.0f / kMpssToInt16
 
static constexpr float kRadToInt16 = 32768.0f / M_PI
 
static constexpr float kInt16ToRad = 1.0f / kRadToInt16
 
static constexpr float kRpsToInt16 = 32768.0f / (2000.0f * kDegreeToRadian)
 
static constexpr float kInt16ToRps = 1.0f / kRpsToInt16
 
static constexpr float kRpssToInt16 = 32768.0f / (M_PI * 1000.0f)
 
static constexpr float kInt16ToRpss = 1.0f / kRpssToInt16
 

Detailed Description

Class for the SparkFun Qwiic Optical Tracking Odometry Sensor (OTOS). Includes methods to communicate with the sensor, such as getting the tracked location, configuring the sensor, etc. This class is a base class that must be derived to implement the delay function and I2C communication bus.

Constructor & Destructor Documentation

◆ sfDevOTOS()

sfDevOTOS::sfDevOTOS ( )

Default constructor, only initializes member variables.

Member Function Documentation

◆ begin()

sfTkError_t sfDevOTOS::begin ( sfTkII2C *  commBus = nullptr)

Begins the Qwiic OTOS and verifies it is connected.

Parameters
commBusI2C bus to use for communication
Returns
0 for succuss, negative for errors, positive for warnings

◆ calibrateImu()

sfTkError_t sfDevOTOS::calibrateImu ( uint8_t  numSamples = 255,
bool  waitUntilDone = true 
)

Calibrates the IMU on the OTOS, which removes the accelerometer and gyroscope offsets.

Parameters
numSamplesNumber of samples to take for calibration. Each sample takes about 2.4ms, so fewer samples can be taken for faster calibration
waitUntilDoneWhether to wait until the calibration is complete. Set false to calibrate asynchronously, see getImuCalibrationProgress()
Returns
0 for succuss, negative for errors, positive for warnings

◆ delayMs()

virtual void sfDevOTOS::delayMs ( uint32_t  ms)
protectedpure virtual

Implemented in QwiicOTOS.

◆ getAcceleration()

sfTkError_t sfDevOTOS::getAcceleration ( sfe_otos_pose2d_t pose)

Gets the acceleration measured by the OTOS.

Parameters
poseAcceleration measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings

◆ getAccelerationStdDev()

sfTkError_t sfDevOTOS::getAccelerationStdDev ( sfe_otos_pose2d_t pose)

Gets the standard deviation of the measured acceleration.

Parameters
poseStandard deviation of the acceleration measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings
Note
These values are just the square root of the diagonal elements of the covariance matrices of the Kalman filters used in the firmware, so they are just statistical quantities and do not represent actual error!

◆ getAngularScalar()

sfTkError_t sfDevOTOS::getAngularScalar ( float &  scalar)

Gets the angular scalar used by the OTOS.

Parameters
scalarAngular scalar
Returns
0 for succuss, negative for errors, positive for warnings

◆ getAngularUnit()

sfe_otos_angular_unit_t sfDevOTOS::getAngularUnit ( )

Gets the angular unit used by all methods using a pose.

Returns
Angular unit

◆ getImuCalibrationProgress()

sfTkError_t sfDevOTOS::getImuCalibrationProgress ( uint8_t &  numSamples)

Gets the progress of the IMU calibration. Used for asynchronous calibration with calibrateImu()

Parameters
numSamplesNumber of samples remaining for calibration
Returns
0 for succuss, negative for errors, positive for warnings

◆ getLinearScalar()

sfTkError_t sfDevOTOS::getLinearScalar ( float &  scalar)

Gets the linear scalar used by the OTOS.

Parameters
scalarLinear scalar
Returns
0 for succuss, negative for errors, positive for warnings

◆ getLinearUnit()

sfe_otos_linear_unit_t sfDevOTOS::getLinearUnit ( )

Gets the linear unit used by all methods using a pose.

Returns
Linear unit

◆ getOffset()

sfTkError_t sfDevOTOS::getOffset ( sfe_otos_pose2d_t pose)

Gets the offset of the OTOS.

Parameters
poseOffset of the sensor relative to the center of the robot
Returns
0 for succuss, negative for errors, positive for warnings

◆ getPosition()

sfTkError_t sfDevOTOS::getPosition ( sfe_otos_pose2d_t pose)

Gets the position measured by the OTOS.

Parameters
posePosition measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings

◆ getPositionStdDev()

sfTkError_t sfDevOTOS::getPositionStdDev ( sfe_otos_pose2d_t pose)

Gets the standard deviation of the measured position.

Parameters
poseStandard deviation of the position measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings
Note
These values are just the square root of the diagonal elements of the covariance matrices of the Kalman filters used in the firmware, so they are just statistical quantities and do not represent actual error!

◆ getPosVelAcc()

sfTkError_t sfDevOTOS::getPosVelAcc ( sfe_otos_pose2d_t pos,
sfe_otos_pose2d_t vel,
sfe_otos_pose2d_t acc 
)

Gets the position, velocity, and acceleration measured by the OTOS in a single burst read.

Parameters
posPosition measured by the OTOS
velVelocity measured by the OTOS
accAcceleration measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings

◆ getPosVelAccAndStdDev()

sfTkError_t sfDevOTOS::getPosVelAccAndStdDev ( sfe_otos_pose2d_t pos,
sfe_otos_pose2d_t vel,
sfe_otos_pose2d_t acc,
sfe_otos_pose2d_t posStdDev,
sfe_otos_pose2d_t velStdDev,
sfe_otos_pose2d_t accStdDev 
)

Gets the position, velocity, acceleration, and standard deviation of each in a single burst read.

Parameters
posPosition measured by the OTOS
velVelocity measured by the OTOS
accAcceleration measured by the OTOS
posStdDevStandard deviation of the position measured by the OTOS
velStdDevStandard deviation of the velocity measured by the OTOS
accStdDevStandard deviation of the acceleration measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings

◆ getPosVelAccStdDev()

sfTkError_t sfDevOTOS::getPosVelAccStdDev ( sfe_otos_pose2d_t pos,
sfe_otos_pose2d_t vel,
sfe_otos_pose2d_t acc 
)

Gets the standard deviation of the measured position, velocity, and acceleration in a single burst read.

Parameters
posStandard deviation of the position measured by the OTOS
velStandard deviation of the velocity measured by the OTOS
accStandard deviation of the acceleration measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings

◆ getSignalProcessConfig()

sfTkError_t sfDevOTOS::getSignalProcessConfig ( sfe_otos_signal_process_config_t config)

Gets the signal processing configuration from the OTOS.

Parameters
configSignal processing configuration
Returns
0 for succuss, negative for errors, positive for warnings

◆ getStatus()

sfTkError_t sfDevOTOS::getStatus ( sfe_otos_status_t status)

Gets the status register from the OTOS, which includes warnings and errors reported by the sensor.

Parameters
statusStatus register value
Returns
0 for succuss, negative for errors, positive for warnings

◆ getVelocity()

sfTkError_t sfDevOTOS::getVelocity ( sfe_otos_pose2d_t pose)

Gets the velocity measured by the OTOS.

Parameters
poseVelocity measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings

◆ getVelocityStdDev()

sfTkError_t sfDevOTOS::getVelocityStdDev ( sfe_otos_pose2d_t pose)

Gets the standard deviation of the measured velocity.

Parameters
poseStandard deviation of the velocity measured by the OTOS
Returns
0 for succuss, negative for errors, positive for warnings
Note
These values are just the square root of the diagonal elements of the covariance matrices of the Kalman filters used in the firmware, so they are just statistical quantities and do not represent actual error!

◆ getVersionInfo()

sfTkError_t sfDevOTOS::getVersionInfo ( sfe_otos_version_t hwVersion,
sfe_otos_version_t fwVersion 
)

Gets the hardware and firmware version numbers from the OTOS.

Parameters
hwVersionHardware version number
fwVersionFirmware version number
Returns
0 for succuss, negative for errors, positive for warnings

◆ isConnected()

sfTkError_t sfDevOTOS::isConnected ( )

Checks if the device is connected.

Returns
0 for succuss, negative for errors, positive for warnings

◆ poseToRegs()

void sfDevOTOS::poseToRegs ( uint8_t *  rawData,
sfe_otos_pose2d_t pose,
float  xyToRaw,
float  hToRaw 
)
protected

◆ readPoseRegs()

sfTkError_t sfDevOTOS::readPoseRegs ( uint8_t  reg,
sfe_otos_pose2d_t pose,
float  rawToXY,
float  rawToH 
)
protected

◆ regsToPose()

void sfDevOTOS::regsToPose ( uint8_t *  rawData,
sfe_otos_pose2d_t pose,
float  rawToXY,
float  rawToH 
)
protected

◆ resetTracking()

sfTkError_t sfDevOTOS::resetTracking ( )

Resets the tracking algorithm, which resets the position to the origin, but can also be used to recover from some rare tracking errors.

Returns
0 for succuss, negative for errors, positive for warnings

◆ selfTest()

sfTkError_t sfDevOTOS::selfTest ( )

Performs a self test of the OTOS.

Returns
0 for succuss, negative for errors, positive for warnings

◆ setAngularScalar()

sfTkError_t sfDevOTOS::setAngularScalar ( float  scalar)

Sets the angular scalar used by the OTOS. Can be used to compensate for scaling issues with the sensor measurements.

Parameters
scalarAngular scalar, must be between 0.872 and 1.127
Returns
0 for succuss, negative for errors, positive for warnings

◆ setAngularUnit()

void sfDevOTOS::setAngularUnit ( sfe_otos_angular_unit_t  unit)

Sets the angular unit used by all methods using a pose.

Parameters
unitAngular unit

◆ setLinearScalar()

sfTkError_t sfDevOTOS::setLinearScalar ( float  scalar)

Sets the linear scalar used by the OTOS. Can be used to compensate for scaling issues with the sensor measurements.

Parameters
scalarLinear scalar, must be between 0.872 and 1.127
Returns
0 for succuss, negative for errors, positive for warnings

◆ setLinearUnit()

void sfDevOTOS::setLinearUnit ( sfe_otos_linear_unit_t  unit)

Sets the linear unit used by all methods using a pose.

Parameters
unitLinear unit

◆ setOffset()

sfTkError_t sfDevOTOS::setOffset ( sfe_otos_pose2d_t pose)

Sets the offset of the OTOS. This is useful if your sensor is mounted off-center from a robot. Rather than returning the position of the sensor, the OTOS will return the position of the robot.

Parameters
poseOffset of the sensor relative to the center of the robot
Returns
0 for succuss, negative for errors, positive for warnings

◆ setPosition()

sfTkError_t sfDevOTOS::setPosition ( sfe_otos_pose2d_t pose)

Sets the position measured by the OTOS. This is useful if your robot does not start at the origin, or you have another source of location information (eg. vision odometry); the OTOS will continue tracking from this position.

Parameters
poseNew position for the OTOS to track from
Returns
0 for succuss, negative for errors, positive for warnings

◆ setSignalProcessConfig()

sfTkError_t sfDevOTOS::setSignalProcessConfig ( sfe_otos_signal_process_config_t config)

Sets the signal processing configuration on the OTOS. This is primarily useful for creating and testing a new lookup table calibration.

Parameters
configSignal processing configuration
Returns
0 for succuss, negative for errors, positive for warnings

◆ writePoseRegs()

sfTkError_t sfDevOTOS::writePoseRegs ( uint8_t  reg,
sfe_otos_pose2d_t pose,
float  xyToRaw,
float  hToRaw 
)
protected

Member Data Documentation

◆ _angularUnit

sfe_otos_angular_unit_t sfDevOTOS::_angularUnit
protected

◆ _commBus

sfTkII2C* sfDevOTOS::_commBus
protected

◆ _linearUnit

sfe_otos_linear_unit_t sfDevOTOS::_linearUnit
protected

◆ _meterToUnit

float sfDevOTOS::_meterToUnit
protected

◆ _radToUnit

float sfDevOTOS::_radToUnit
protected

◆ kDefaultAddress

constexpr uint8_t sfDevOTOS::kDefaultAddress = 0x17
staticconstexpr

Default I2C addresses of the Qwiic OTOS.

◆ kDegreeToRadian

constexpr float sfDevOTOS::kDegreeToRadian = M_PI / 180.0f
staticconstexprprotected

◆ kInchToMeter

constexpr float sfDevOTOS::kInchToMeter = 1.0f / kMeterToInch
staticconstexprprotected

◆ kInt16ToMeter

constexpr float sfDevOTOS::kInt16ToMeter = 1.0f / kMeterToInt16
staticconstexprprotected

◆ kInt16ToMps

constexpr float sfDevOTOS::kInt16ToMps = 1.0f / kMpsToInt16
staticconstexprprotected

◆ kInt16ToMpss

constexpr float sfDevOTOS::kInt16ToMpss = 1.0f / kMpssToInt16
staticconstexprprotected

◆ kInt16ToRad

constexpr float sfDevOTOS::kInt16ToRad = 1.0f / kRadToInt16
staticconstexprprotected

◆ kInt16ToRps

constexpr float sfDevOTOS::kInt16ToRps = 1.0f / kRpsToInt16
staticconstexprprotected

◆ kInt16ToRpss

constexpr float sfDevOTOS::kInt16ToRpss = 1.0f / kRpssToInt16
staticconstexprprotected

◆ kMaxScalar

constexpr float sfDevOTOS::kMaxScalar = 1.127f
staticconstexpr

Maximum scalar value for the linear and angular scalars.

◆ kMeterToInch

constexpr float sfDevOTOS::kMeterToInch = 39.37f
staticconstexprprotected

◆ kMeterToInt16

constexpr float sfDevOTOS::kMeterToInt16 = 32768.0f / 10.0f
staticconstexprprotected

◆ kMinScalar

constexpr float sfDevOTOS::kMinScalar = 0.872f
staticconstexpr

Minimum scalar value for the linear and angular scalars.

◆ kMpssToInt16

constexpr float sfDevOTOS::kMpssToInt16 = 32768.0f / (16.0f * 9.80665f)
staticconstexprprotected

◆ kMpsToInt16

constexpr float sfDevOTOS::kMpsToInt16 = 32768.0f / 5.0f
staticconstexprprotected

◆ kProductId

constexpr uint8_t sfDevOTOS::kProductId = 0x5F
staticconstexprprotected

◆ kRadianToDegree

constexpr float sfDevOTOS::kRadianToDegree = 180.0f / M_PI
staticconstexprprotected

◆ kRadToInt16

constexpr float sfDevOTOS::kRadToInt16 = 32768.0f / M_PI
staticconstexprprotected

◆ kRegAccHH

constexpr uint8_t sfDevOTOS::kRegAccHH = 0x31
staticconstexprprotected

◆ kRegAccHL

constexpr uint8_t sfDevOTOS::kRegAccHL = 0x30
staticconstexprprotected

◆ kRegAccStdHH

constexpr uint8_t sfDevOTOS::kRegAccStdHH = 0x43
staticconstexprprotected

◆ kRegAccStdHL

constexpr uint8_t sfDevOTOS::kRegAccStdHL = 0x42
staticconstexprprotected

◆ kRegAccStdXH

constexpr uint8_t sfDevOTOS::kRegAccStdXH = 0x3F
staticconstexprprotected

◆ kRegAccStdXL

constexpr uint8_t sfDevOTOS::kRegAccStdXL = 0x3E
staticconstexprprotected

◆ kRegAccStdYH

constexpr uint8_t sfDevOTOS::kRegAccStdYH = 0x41
staticconstexprprotected

◆ kRegAccStdYL

constexpr uint8_t sfDevOTOS::kRegAccStdYL = 0x40
staticconstexprprotected

◆ kRegAccXH

constexpr uint8_t sfDevOTOS::kRegAccXH = 0x2D
staticconstexprprotected

◆ kRegAccXL

constexpr uint8_t sfDevOTOS::kRegAccXL = 0x2C
staticconstexprprotected

◆ kRegAccYH

constexpr uint8_t sfDevOTOS::kRegAccYH = 0x2F
staticconstexprprotected

◆ kRegAccYL

constexpr uint8_t sfDevOTOS::kRegAccYL = 0x2E
staticconstexprprotected

◆ kRegFwVersion

constexpr uint8_t sfDevOTOS::kRegFwVersion = 0x02
staticconstexprprotected

◆ kRegHwVersion

constexpr uint8_t sfDevOTOS::kRegHwVersion = 0x01
staticconstexprprotected

◆ kRegImuCalib

constexpr uint8_t sfDevOTOS::kRegImuCalib = 0x06
staticconstexprprotected

◆ kRegOffHH

constexpr uint8_t sfDevOTOS::kRegOffHH = 0x15
staticconstexprprotected

◆ kRegOffHL

constexpr uint8_t sfDevOTOS::kRegOffHL = 0x14
staticconstexprprotected

◆ kRegOffXH

constexpr uint8_t sfDevOTOS::kRegOffXH = 0x11
staticconstexprprotected

◆ kRegOffXL

constexpr uint8_t sfDevOTOS::kRegOffXL = 0x10
staticconstexprprotected

◆ kRegOffYH

constexpr uint8_t sfDevOTOS::kRegOffYH = 0x13
staticconstexprprotected

◆ kRegOffYL

constexpr uint8_t sfDevOTOS::kRegOffYL = 0x12
staticconstexprprotected

◆ kRegPosHH

constexpr uint8_t sfDevOTOS::kRegPosHH = 0x25
staticconstexprprotected

◆ kRegPosHL

constexpr uint8_t sfDevOTOS::kRegPosHL = 0x24
staticconstexprprotected

◆ kRegPosStdHH

constexpr uint8_t sfDevOTOS::kRegPosStdHH = 0x37
staticconstexprprotected

◆ kRegPosStdHL

constexpr uint8_t sfDevOTOS::kRegPosStdHL = 0x36
staticconstexprprotected

◆ kRegPosStdXH

constexpr uint8_t sfDevOTOS::kRegPosStdXH = 0x33
staticconstexprprotected

◆ kRegPosStdXL

constexpr uint8_t sfDevOTOS::kRegPosStdXL = 0x32
staticconstexprprotected

◆ kRegPosStdYH

constexpr uint8_t sfDevOTOS::kRegPosStdYH = 0x35
staticconstexprprotected

◆ kRegPosStdYL

constexpr uint8_t sfDevOTOS::kRegPosStdYL = 0x34
staticconstexprprotected

◆ kRegPosXH

constexpr uint8_t sfDevOTOS::kRegPosXH = 0x21
staticconstexprprotected

◆ kRegPosXL

constexpr uint8_t sfDevOTOS::kRegPosXL = 0x20
staticconstexprprotected

◆ kRegPosYH

constexpr uint8_t sfDevOTOS::kRegPosYH = 0x23
staticconstexprprotected

◆ kRegPosYL

constexpr uint8_t sfDevOTOS::kRegPosYL = 0x22
staticconstexprprotected

◆ kRegProductId

constexpr uint8_t sfDevOTOS::kRegProductId = 0x00
staticconstexprprotected

◆ kRegReset

constexpr uint8_t sfDevOTOS::kRegReset = 0x07
staticconstexprprotected

◆ kRegScalarAngular

constexpr uint8_t sfDevOTOS::kRegScalarAngular = 0x05
staticconstexprprotected

◆ kRegScalarLinear

constexpr uint8_t sfDevOTOS::kRegScalarLinear = 0x04
staticconstexprprotected

◆ kRegSelfTest

constexpr uint8_t sfDevOTOS::kRegSelfTest = 0x0F
staticconstexprprotected

◆ kRegSignalProcess

constexpr uint8_t sfDevOTOS::kRegSignalProcess = 0x0E
staticconstexprprotected

◆ kRegStatus

constexpr uint8_t sfDevOTOS::kRegStatus = 0x1F
staticconstexprprotected

◆ kRegVelHH

constexpr uint8_t sfDevOTOS::kRegVelHH = 0x2B
staticconstexprprotected

◆ kRegVelHL

constexpr uint8_t sfDevOTOS::kRegVelHL = 0x2A
staticconstexprprotected

◆ kRegVelStdHH

constexpr uint8_t sfDevOTOS::kRegVelStdHH = 0x3D
staticconstexprprotected

◆ kRegVelStdHL

constexpr uint8_t sfDevOTOS::kRegVelStdHL = 0x3C
staticconstexprprotected

◆ kRegVelStdXH

constexpr uint8_t sfDevOTOS::kRegVelStdXH = 0x39
staticconstexprprotected

◆ kRegVelStdXL

constexpr uint8_t sfDevOTOS::kRegVelStdXL = 0x38
staticconstexprprotected

◆ kRegVelStdYH

constexpr uint8_t sfDevOTOS::kRegVelStdYH = 0x3B
staticconstexprprotected

◆ kRegVelStdYL

constexpr uint8_t sfDevOTOS::kRegVelStdYL = 0x3A
staticconstexprprotected

◆ kRegVelXH

constexpr uint8_t sfDevOTOS::kRegVelXH = 0x27
staticconstexprprotected

◆ kRegVelXL

constexpr uint8_t sfDevOTOS::kRegVelXL = 0x26
staticconstexprprotected

◆ kRegVelYH

constexpr uint8_t sfDevOTOS::kRegVelYH = 0x29
staticconstexprprotected

◆ kRegVelYL

constexpr uint8_t sfDevOTOS::kRegVelYL = 0x28
staticconstexprprotected

◆ kRpssToInt16

constexpr float sfDevOTOS::kRpssToInt16 = 32768.0f / (M_PI * 1000.0f)
staticconstexprprotected

◆ kRpsToInt16

constexpr float sfDevOTOS::kRpsToInt16 = 32768.0f / (2000.0f * kDegreeToRadian)
staticconstexprprotected

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