|
From: <rum...@us...> - 2008-06-19 12:40:57
|
Revision: 193
http://gearbox.svn.sourceforge.net/gearbox/?rev=193&view=rev
Author: rumataxyz
Date: 2008-06-19 05:40:55 -0700 (Thu, 19 Jun 2008)
Log Message:
-----------
more docu, trying to get doxygen produce what I want
Modified Paths:
--------------
gearbox/trunk/submitted/gbxnovatelacfr/driver.h
gearbox/trunk/submitted/gbxnovatelacfr/novatel.dox
Modified: gearbox/trunk/submitted/gbxnovatelacfr/driver.h
===================================================================
--- gearbox/trunk/submitted/gbxnovatelacfr/driver.h 2008-06-19 11:20:53 UTC (rev 192)
+++ gearbox/trunk/submitted/gbxnovatelacfr/driver.h 2008-06-19 12:40:55 UTC (rev 193)
@@ -35,16 +35,17 @@
//! Minimum information to configure the receiver in INS mode
class SimpleConfig{
public:
- //! @parameter imuToGpsOffset: vector (xyz [m]) from IMU center to Antenna Phase Center
- //! in IMU coordinates, vital for INS performance, make sure you get this right!
- //! @parameter imuType: as expected by the "SETIMUTYPE" command (SPAN Technology for OEMV User Manual Rev 3, Table 15, page 64)
+ //! @param imuType see Config::imuType_ for details
+ //! @param imuToGpsOffset see Config::imuToGpsOffset_ for details
SimpleConfig(std::string serialDevice, int baudRate, std::string imuType, std::vector<double > &imuToGpsOffset):
serialDevice_(serialDevice),
baudRate_(baudRate),
imuType_(imuType),
imuToGpsOffset_(imuToGpsOffset) {};
- //! Returns true if the configuration is sane. Checks include:
+ //!@brief Returns true if the configuration is sane.
+ //
+ //! Checks include:
//! - a non-empty device name
//! - baud rate is supported by device (9600, 19200, 38400, 115200, 230400)
//! - imuType refers to a known type
@@ -66,7 +67,9 @@
serialDevice_(serialDevice),
baudRate_(baudRate) {};
- //! Returns true if the configuration is sane. Checks include:
+ //!@brief Returns true if the configuration is sane.
+ //
+ //! Checks include:
//! - a non-empty device name
//! - baud rate is supported by device (9600, 19200, 38400, 115200, 230400)
bool isValid() const;
@@ -82,17 +85,27 @@
//! 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)
class Config{
public:
- Config(const SimpleConfig &simpleCfg); //!< yields a valid config, with reasonable defaults (RawImu 100Hz, InsPva 50Hz, BestGpsPos/Vel 5Hz)
- Config(const GpsOnlyConfig &gpsOnlyCfg); //!< yields a valid config, for gps only operation (BestGpsPos/Vel 20Hz)
- Config(); //!< disables everything, so you can (and must) set just the options you need
+ //! @brief Shortcut to set up a Configuration for INS operation
+ //
+ //! yields a valid config, with reasonable defaults (RawImu 100Hz, InsPva 50Hz, BestGpsPos/Vel 5Hz)
+ Config(const SimpleConfig &simpleCfg);
+ //! @brief Shortcut to set up a Configuration for GPS operation
+ //
+ //! yields a valid config, for gps only operation (BestGpsPos/Vel 20Hz)
+ Config(const GpsOnlyConfig &gpsOnlyCfg);
+ //! disables everything, so you can (and must) set just the options you need.
+ Config();
- //! Returns true if the configuration is sane. Checks include:
+ //! @brief 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
- bool isValid(); //!< not const, since it has limited self-fixing capabilities
+ //! - not const, since it has limited self-fixing capabilities (for incorrect message-rates)
+ bool isValid();
//! Dumps the config in human readable form
std::string toString();
@@ -107,7 +120,7 @@
//
//!@{
bool enableImu_;
- std::string imuType_;
+ std::string imuType_; //!< as expected by the "SETIMUTYPE" command (SPAN Technology for OEMV User Manual Rev 3, Table 15, page 64)
//!@}
//!@name Data settings
@@ -138,11 +151,11 @@
//!@name INS settings
//
//!@{
- std::vector<double > imuToGpsOffset_;
+ 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)
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
+ 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
//!@}
@@ -252,8 +265,7 @@
};
//! Generic (base) type returned by a read
-class GenericData
-{
+class GenericData {
public:
virtual ~GenericData(){};
virtual DataType type() const=0;
Modified: gearbox/trunk/submitted/gbxnovatelacfr/novatel.dox
===================================================================
--- gearbox/trunk/submitted/gbxnovatelacfr/novatel.dox 2008-06-19 11:20:53 UTC (rev 192)
+++ gearbox/trunk/submitted/gbxnovatelacfr/novatel.dox 2008-06-19 12:40:55 UTC (rev 193)
@@ -14,8 +14,10 @@
@ingroup gbx_linux
@ingroup gbx_hardware
@defgroup gbx_library_gbxnovatelacfr GbxNovatelAcfr
-@brief ACFR driver for a Novatel(Span) system
-a proprietray integrated novatel navigation system comsisting out of a gps receiver and a imu
+@brief ACFR driver for a Novatel(Span) system.
+This is a proprietary Novatel navigation system. It minimally consists out of a Novatel OEMV GPS receiver (OEM4 receivers should be compatible).
+If combined with an IMU, a SPAN system can provide a INS navigation solution at high rate (up to 100Hz).
+The driver initialises the hardware and reports navigation data continously.
for a full list of functions see @ref gbxnovatelacfr
@@ -60,14 +62,14 @@
The test program reports back all messages received from the driver and prints out the data fields for each message (in verbose mode).
-This minimal example (no error checking for clarity, but compileabel/functional) shows the driver livecycle:
+This minimal example (no error checking for clarity, but fully functional) shows the driver's intended usage:
- create configuration
- create driver
- read from driver and wait for external termination
@verbatim
#include <gearbox/gbxnovatelacfr/driver.h>
-#include <stdlib.h>
+#include <cstdlib>
#include <iostream>
#include <memory>
#include <vector>
@@ -129,12 +131,21 @@
@endverbatim
@par References
--
-- http://www.novatel.com/Documents/Manuals/GPS+Reference.pdf
+This driver was programmed based on the protocoll/message descriptions in Novatel manuals, it does not contain any code from Novatel. The main source for information was:
+- http://www.novatel.com/Documents/Manuals/om-20000094.pdf (Novatel OEMV reference)
+- http://www.novatel.com/Documents/Manuals/om-20000104.pdf (SPAN-system manual)
+
+The following sources have also been helpful:
+- http://www.novatel.com/Documents/Manuals/GPS+Reference.pdf (a good overview about GPS: correct, complete, terse)
+- http://www.novatel.com/support/faqs.htm
+- http://www.novatel.com/support/applicationnotes.htm (more details on specific subjects than the manuals)
+
@par Limitations
- This is a Linux-only implementation (because of the serial library and the system-calls for timestamps)
+- Only supports a subset of the messages a NovatelSPAN system can provide.
+- Driver currently treats the hardware as data-source only, communication _to_ the hardware is possible only during initialization.
*/
/*!
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|