Download and Install


Dev Guide

Users Logo
Mailing lists



gbxnovatelacfr::Config Class Reference

All the information needed to configure the driver. More...

#include <driver.h>

List of all members.

Public Member Functions

 Config (const SimpleConfig &simpleCfg)
 Shortcut to set up a Configuration for INS operation.
 Config (const GpsOnlyConfig &gpsOnlyCfg)
 Shortcut to set up a Configuration for GPS operation.
 Config ()
 disables everything, so you can (and must) set just the options you need.
bool isValid ()
 Returns true if the configuration is sane.
std::string toString () const
 Dumps the config in human readable form.

Public Attributes

Serial settings
std::string serialDevice_
int baudRate_
IMU settings
bool enableImu_
std::string imuType_
Data settings
First we disable all output in the ctor. Then all the messages set to true here are enabled.

bool enableInsPva_
bool enableGpsPos_
bool enableGpsVel_
bool enableRawImu_
bool ignoreUnknownMessages_
 normally we throw an exception, set this to "true" if you want to enable some other message permanently.
Data rate settings
Time between messages in seconds (i.e. 0.01 == 100Hz). RawImu can only be reported at the "natural" rate of the IMU (100Hz or 200Hz, depending on model). We check in isValid() if any of these don't make sense

double dtInsPva_
 100Hz max, if RawImu is enabled 50Hz max
double dtGpsPos_
 20Hz max, 5Hz max if RawImu or InsPva is enabled
double dtGpsVel_
 20Hz max, 5Hz max if RawImu or InsPva is enabled
bool fixInvalidRateSettings_
 Don't bitch about wrong rates, change them to something sensible.
INS settings
std::vector< double > imuToGpsOffset_
 vector (xyz [m]) from IMU center to Antenna Phase Center, in IMU coordinates, vital for INS performance, make sure you get this right!
std::vector< double > imuToGpsOffsetUncertainty_
 optional (size 3 or 0) xyz; !it is unclear to me whether these are factors, or absolute values (in [m])!
bool enableInsOffset_
std::vector< double > insOffset_
 report INS position/velocity offset (xyz [m] in IMU coordinates) from the IMU center; useful e.g. to get data w.r. to robot's center of rotation
bool enableInsPhaseUpdate_
 tightly coupled (phase based vs position based) filter; Chance of better performance in adverse conditions
GPS settings
bool enableCDGPS_
 code-differential corrections over satellite (North America/Canada)
bool enableSBAS_
 code-differential corrections over satellite on GPS frequencies (WAAS/EGNOS)
bool enableRTK_
 carrier-differential corrections (you need to set up your own base-station and wireless link), assumes RTCA corrections on COM2, 9600bps, 8N1 (hardcoded)
bool enableUseOfOmniStarCarrier_
 carrier-differential corrections OMNIStarXP/HP (you need to get a subscription with them)
INS settings for fast (dynamic) alignment
!I'd strongly recommend that you read the manual _very_ closely! These guys enable the Span system to do an alignment while moving, they also allow you to mount the IMU in weird ways (e.g. upside down). It's worth to accept a fair amount of pain to mount the IMU in the recommended way. Otherwise you'll probably need a good amount of experimentation/calibration to get a parameter-set that works.

bool enableSetImuOrientation_
int setImuOrientation_
bool enableVehicleBodyRotation_
std::vector< double > vehicleBodyRotation_
std::vector< double > vehicleBodyRotationUncertainty_
 optional (size 3 or 0)

Detailed Description

All the information needed to configure the driver.

The device itself has even more options, consult your manual. If all these possibilities don't seem to be sufficient, consult your friendly developer for extension (better yet, send a patch) The easiest way to get a valid (and useful) Config, is to initialise it with a SimpleConfig (for INS operation) or GpsOnlyConfig (for GPS operation)

Constructor & Destructor Documentation

gbxnovatelacfr::Config::Config ( const SimpleConfig simpleCfg  ) 

Shortcut to set up a Configuration for INS operation.

yields a valid config, with reasonable defaults (RawImu 100Hz, InsPva 50Hz, BestGpsPos/Vel 5Hz)

gbxnovatelacfr::Config::Config ( const GpsOnlyConfig gpsOnlyCfg  ) 

Shortcut to set up a Configuration for GPS operation.

yields a valid config, for gps only operation (BestGpsPos/Vel 20Hz)

Member Function Documentation

bool gbxnovatelacfr::Config::isValid (  ) 

Returns true if the configuration is sane.

Checks include:

  • a non-empty device name
  • baud rate is supported by device (9600, 19200, 38400, 57600, 115200, 230400)
  • imuType refers to a known type
  • offset has size 3
  • message rates are consistent and don't exceed serial-data-rate
  • not const, since it has limited self-fixing capabilities (for incorrect message-rates)

References dtGpsPos_, dtGpsVel_, dtInsPva_, fixInvalidRateSettings_, imuToGpsOffset_, imuToGpsOffsetUncertainty_, imuType_, insOffset_, and vehicleBodyRotationUncertainty_.

Member Data Documentation

as expected by the "SETIMUTYPE" command (SPAN Technology for OEMV User Manual Rev 3, Table 15, page 64)

Referenced by isValid(), and toString().

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

Generated for GearBox by  doxygen 1.4.5