All the information needed to configure the driver.
|
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 |
|
std::string | serialDevice_ |
int | baudRate_ |
|
bool | enableImu_ |
std::string | imuType_ |
|
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.
|
|
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.
|
|
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
|
|
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)
|
|
!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)
|
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)