#include <novatel_gps.h>
Public Types | |
enum | ConnectionType { SERIAL, TCP, UDP, PCAP, INVALID } |
enum | ReadResult { READ_SUCCESS = 0, READ_INSUFFICIENT_DATA = 1, READ_TIMEOUT = 2, READ_INTERRUPTED = 3, READ_ERROR = -1, READ_PARSE_FAILED = -2 } |
Public Member Functions | |
void | ApplyVehicleBodyRotation (const bool &apply_rotation) |
Determines whether or not to apply a 90 degree counter-clockwise rotation about Z to the Novatel SPAN frame to match up with the ROS coordinate frame. | |
bool | Connect (const std::string &device, ConnectionType connection) |
bool | Connect (const std::string &device, ConnectionType connection, NovatelMessageOpts const &opts) |
void | Disconnect () |
std::string | ErrorMsg () const |
void | GetClockSteeringMessages (std::vector< novatel_gps_msgs::ClockSteeringPtr > &clocksteering_msgs) |
Provides any CLOCKSTEERING messages that have been received since the last time this was called. | |
void | GetFixMessages (std::vector< gps_common::GPSFixPtr > &fix_messages) |
Provides any GPSFix messages that have been generated since the last time this was called. | |
void | GetGpggaMessages (std::vector< novatel_gps_msgs::GpggaPtr > &gpgga_messages) |
Provides any GPGGA messages that have been received since the last time this was called. | |
void | GetGpgsaMessages (std::vector< novatel_gps_msgs::GpgsaPtr > &gpgsa_messages) |
Provides any GPGSA messages that have been received since the last time this was called. | |
void | GetGpgsvMessages (std::vector< novatel_gps_msgs::GpgsvPtr > &gpgsv_messages) |
Provides any GPGSV messages that have been received since the last time this was called. | |
void | GetGprmcMessages (std::vector< novatel_gps_msgs::GprmcPtr > &gprmc_messages) |
Provides any GPRMC messages that have been received since the last time this was called. | |
void | GetImuMessages (std::vector< sensor_msgs::ImuPtr > &imu_messages) |
Provides any Imu messages that have been generated since the last time this was called. | |
void | GetInscovMessages (std::vector< novatel_gps_msgs::InscovPtr > &inscov_messages) |
Provides any INSCOV messages that have been received since the last time this was called. | |
void | GetInspvaMessages (std::vector< novatel_gps_msgs::InspvaPtr > &inspva_messages) |
Provides any INSPVA messages that have been received since the last time this was called. | |
void | GetInsstdevMessages (std::vector< novatel_gps_msgs::InsstdevPtr > &insstdev_messages) |
Provides any INSSTDEV messages that have been received since the last time this was called. | |
void | GetNovatelCorrectedImuData (std::vector< novatel_gps_msgs::NovatelCorrectedImuDataPtr > &imu_messages) |
Provides any CORRIMUDATA messages that have been received since the last time this was called. | |
void | GetNovatelDualAntennaHeadingMessages (std::vector< novatel_gps_msgs::NovatelDualAntennaHeadingPtr > &headings) |
Provides any DUALANTENNAHEADING messages that have been received since the last time this was called. | |
void | GetNovatelHeading2Messages (std::vector< novatel_gps_msgs::NovatelHeading2Ptr > &headings) |
Provides any HEADING2 messages that have been received since the last time this was called. | |
void | GetNovatelPositions (std::vector< novatel_gps_msgs::NovatelPositionPtr > &positions) |
Provides any BESTPOS messages that have been received since the last time this was called. | |
void | GetNovatelUtmPositions (std::vector< novatel_gps_msgs::NovatelUtmPositionPtr > &utm_positions) |
Provides any BESTUTM messages that have been received since the last time this was called. | |
void | GetNovatelVelocities (std::vector< novatel_gps_msgs::NovatelVelocityPtr > &velocities) |
Provides any BESTVEL messages that have been received since the last time this was called. | |
void | GetNovatelXYZPositions (std::vector< novatel_gps_msgs::NovatelXYZPtr > &positions) |
Provides any BESTXYZ messages that have been received since the last time this was called. | |
void | GetRangeMessages (std::vector< novatel_gps_msgs::RangePtr > &range_messages) |
Provides any RANGE messages that have been received since the last time this was called. | |
void | GetTimeMessages (std::vector< novatel_gps_msgs::TimePtr > &time_messages) |
Provides any TIME messages that have been received since the last time this was called. | |
void | GetTrackstatMessages (std::vector< novatel_gps_msgs::TrackstatPtr > &trackstat_msgs) |
Provides any TRACKSTAT messages that have been received since the last time this was called. | |
bool | IsConnected () |
NovatelGps () | |
ReadResult | ProcessData () |
Processes any data that has been received from the device since the last time this message was called. May result in any number of messages being placed in the individual message buffers. | |
void | SetImuRate (double imu_rate, bool force=true) |
Sets the IMU rate; necessary for producing sensor_msgs/Imu messages. | |
void | SetSerialBaud (int32_t serial_baud) |
Sets the serial baud rate; should be called before configuring a serial connection. | |
bool | Write (const std::string &command) |
Writes the given string of characters to a connected NovAtel device. | |
~NovatelGps () | |
Static Public Member Functions | |
static ConnectionType | ParseConnection (const std::string &connection) |
Converts the strings "udp", "tcp", or "serial" into the corresponding enum values. | |
Public Attributes | |
double | gpgga_gprmc_sync_tol_ |
double | gpgga_position_sync_tol_ |
bool | wait_for_position_ |
Private Member Functions | |
bool | Configure (NovatelMessageOpts const &opts) |
(Re)configure the driver with a set of message options | |
bool | CreateIpConnection (const std::string &endpoint, NovatelMessageOpts const &opts) |
Establishes an IP connection with a NovAtel device. | |
bool | CreatePcapConnection (const std::string &device, NovatelMessageOpts const &opts) |
Creates a pcap device for playing back recorded data. | |
bool | CreateSerialConnection (const std::string &device, NovatelMessageOpts const &opts) |
Establishes a serial port connection with a NovAtel device. | |
void | GenerateImuMessages () |
Processes any messages in our corrimudata & inspva queues in order to generate Imu messages from them. | |
NovatelGps::ReadResult | ParseBinaryMessage (const BinaryMessage &msg, const ros::Time &stamp) throw (ParseException) |
Converts a BinaryMessage object into a ROS message of the appropriate type and places it in the appropriate buffer. | |
NovatelGps::ReadResult | ParseNmeaSentence (const NmeaSentence &sentence, const ros::Time &stamp, double most_recent_utc_time) throw (ParseException) |
Converts an NMEA sentence into a ROS message of the appropriate type and places it in the appropriate buffer. | |
NovatelGps::ReadResult | ParseNovatelSentence (const NovatelSentence &sentence, const ros::Time &stamp) throw (ParseException) |
Converts a NovatelSentence object into a ROS message of the appropriate type and places it in the appropriate buffer. | |
ReadResult | ReadData () |
Reads data from a connected NovAtel device. Any read data will be appended to data_buffer_. | |
Private Attributes | |
bool | apply_vehicle_body_rotation_ |
BestposParser | bestpos_parser_ |
BestutmParser | bestutm_parser_ |
BestvelParser | bestvel_parser_ |
BestxyzParser | bestxyz_parser_ |
boost::circular_buffer < novatel_gps_msgs::ClockSteeringPtr > | clocksteering_msgs_ |
ClockSteeringParser | clocksteering_parser_ |
ConnectionType | connection_ |
boost::circular_buffer < novatel_gps_msgs::NovatelCorrectedImuDataPtr > | corrimudata_msgs_ |
CorrImuDataParser | corrimudata_parser_ |
std::queue < novatel_gps_msgs::NovatelCorrectedImuDataPtr > | corrimudata_queue_ |
std::vector< uint8_t > | data_buffer_ |
boost::circular_buffer < novatel_gps_msgs::NovatelDualAntennaHeadingPtr > | dual_antenna_heading_msgs_ |
DualAntennaHeadingParser | dual_antenna_heading_parser_ |
std::string | error_msg_ |
NovatelMessageExtractor | extractor_ |
Used to extract messages from the incoming data stream. | |
boost::circular_buffer < novatel_gps_msgs::GpggaPtr > | gpgga_msgs_ |
GpggaParser | gpgga_parser_ |
boost::circular_buffer < novatel_gps_msgs::Gpgga > | gpgga_sync_buffer_ |
boost::circular_buffer < novatel_gps_msgs::GpgsaPtr > | gpgsa_msgs_ |
GpgsaParser | gpgsa_parser_ |
boost::circular_buffer < novatel_gps_msgs::GpgsvPtr > | gpgsv_msgs_ |
GpgsvParser | gpgsv_parser_ |
boost::circular_buffer < novatel_gps_msgs::GprmcPtr > | gprmc_msgs_ |
GprmcParser | gprmc_parser_ |
boost::circular_buffer < novatel_gps_msgs::Gprmc > | gprmc_sync_buffer_ |
boost::circular_buffer < novatel_gps_msgs::NovatelHeading2Ptr > | heading2_msgs_ |
Heading2Parser | heading2_parser_ |
boost::circular_buffer < sensor_msgs::ImuPtr > | imu_msgs_ |
double | imu_rate_ |
bool | imu_rate_forced_ |
boost::circular_buffer < novatel_gps_msgs::InscovPtr > | inscov_msgs_ |
InscovParser | inscov_parser_ |
boost::circular_buffer < novatel_gps_msgs::InspvaPtr > | inspva_msgs_ |
InspvaParser | inspva_parser_ |
std::queue < novatel_gps_msgs::InspvaPtr > | inspva_queue_ |
boost::circular_buffer < novatel_gps_msgs::InsstdevPtr > | insstdev_msgs_ |
InsstdevParser | insstdev_parser_ |
boost::asio::io_service | io_service_ |
bool | is_connected_ |
std::vector< uint8_t > | last_tcp_packet_ |
novatel_gps_msgs::InscovPtr | latest_inscov_ |
novatel_gps_msgs::InsstdevPtr | latest_insstdev_ |
std::string | nmea_buffer_ |
Buffer containing incomplete data from message parsing. | |
boost::circular_buffer < novatel_gps_msgs::NovatelPositionPtr > | novatel_positions_ |
boost::circular_buffer < novatel_gps_msgs::NovatelUtmPositionPtr > | novatel_utm_positions_ |
boost::circular_buffer < novatel_gps_msgs::NovatelVelocityPtr > | novatel_velocities_ |
boost::circular_buffer < novatel_gps_msgs::NovatelXYZPtr > | novatel_xyz_positions_ |
pcap_t * | pcap_ |
pcap device for testing | |
char | pcap_errbuf_ [MAX_BUFFER_SIZE] |
bpf_program | pcap_packet_filter_ |
boost::circular_buffer < novatel_gps_msgs::NovatelPositionPtr > | position_sync_buffer_ |
boost::circular_buffer < novatel_gps_msgs::RangePtr > | range_msgs_ |
RangeParser | range_parser_ |
swri_serial_util::SerialPort | serial_ |
int32_t | serial_baud_ |
boost::array< uint8_t, 10000 > | socket_buffer_ |
Fixed-size buffer for reading directly from sockets. | |
boost::asio::ip::tcp::socket | tcp_socket_ |
boost::circular_buffer < novatel_gps_msgs::TimePtr > | time_msgs_ |
TimeParser | time_parser_ |
boost::circular_buffer < novatel_gps_msgs::TrackstatPtr > | trackstat_msgs_ |
TrackstatParser | trackstat_parser_ |
boost::shared_ptr < boost::asio::ip::udp::endpoint > | udp_endpoint_ |
boost::shared_ptr < boost::asio::ip::udp::socket > | udp_socket_ |
double | utc_offset_ |
Static Private Attributes | |
static constexpr uint16_t | DEFAULT_TCP_PORT = 3001 |
static constexpr uint16_t | DEFAULT_UDP_PORT = 3002 |
static constexpr double | DEGREES_TO_RADIANS = M_PI / 180.0 |
static constexpr double | IMU_TOLERANCE_S = 0.0002 |
static constexpr size_t | MAX_BUFFER_SIZE = 100 |
static constexpr uint32_t | SECONDS_PER_WEEK = 604800 |
static constexpr size_t | SYNC_BUFFER_SIZE = 10 |
Definition at line 89 of file novatel_gps.h.
Definition at line 92 of file novatel_gps.h.
READ_SUCCESS | |
READ_INSUFFICIENT_DATA | |
READ_TIMEOUT | |
READ_INTERRUPTED | |
READ_ERROR | |
READ_PARSE_FAILED |
Definition at line 94 of file novatel_gps.h.
Definition at line 45 of file novatel_gps.cpp.
Definition at line 83 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::ApplyVehicleBodyRotation | ( | const bool & | apply_rotation | ) |
Determines whether or not to apply a 90 degree counter-clockwise rotation about Z to the Novatel SPAN frame to match up with the ROS coordinate frame.
apply_rotation | A bool indicating whether or not to apply the rotation. |
Definition at line 184 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::Configure | ( | NovatelMessageOpts const & | opts | ) | [private] |
(Re)configure the driver with a set of message options
opts | A map from message name to log period (seconds) |
Definition at line 1431 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::Connect | ( | const std::string & | device, |
ConnectionType | connection | ||
) |
Connect and configure with default message options.
device | For serial connections, a path to a device file handle, e.g. /dev/TTYUSB0; for IP connections, a host:port specification, e.g. "192.168.1.10:3001" |
connection | The type of connection. |
Definition at line 88 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::Connect | ( | const std::string & | device, |
ConnectionType | connection, | ||
NovatelMessageOpts const & | opts | ||
) |
Connect and configure with the given message options
device | For serial connections, a path to a device file handle, e.g. /dev/TTYUSB0; for IP connections, a host:port specification, e.g. "192.168.1.10:3001" |
connection | The type of connection. |
opts | Message options to use |
Definition at line 101 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::CreateIpConnection | ( | const std::string & | endpoint, |
NovatelMessageOpts const & | opts | ||
) | [private] |
Establishes an IP connection with a NovAtel device.
Based on the current value in connection_, this will create either a TCP or UDP socket; then, based on the value in endpoint, it will either create a connection to a NovAtel device on a specific port or wait for a connection from one. In any case, this method will block until a connection is either established or failed.
After it has been called, Configure() will be called on the device and provided opts in order to configure which logs it will produce. After that, ReadData() and Write() may be used to communicate with the device.
endpoint | A host and port specification; e. g., "192.168.1.10:1000". If the host host is omitted, it will listen for a connection the specified port. If the port is omitted, DEFAULT_TCP_PORT will be used for TCP connections and DEFAULT_UDP_PORT for UDP connections. |
opts | A map of logs and periods the device should produce. |
Definition at line 608 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::CreatePcapConnection | ( | const std::string & | device, |
NovatelMessageOpts const & | opts | ||
) | [private] |
Creates a pcap device for playing back recorded data.
device | |
opts |
Definition at line 558 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::CreateSerialConnection | ( | const std::string & | device, |
NovatelMessageOpts const & | opts | ||
) | [private] |
Establishes a serial port connection with a NovAtel device.
It will create a connection set at the baud set by SetSerialBaudRate(), no parity, no flow control, and 8N1 bits, then it will call Configure() on that connection. After this method has succeeded, RedData() and Write() can be used to communicate with the device.
device | The device node to connect to; e. g., "/dev/ttyUSB0" |
opts | A map of logs and periods the device should produce. |
Definition at line 574 of file novatel_gps.cpp.
Disconnects from a connected device
Definition at line 151 of file novatel_gps.cpp.
std::string novatel_gps_driver::NovatelGps::ErrorMsg | ( | ) | const [inline] |
Definition at line 136 of file novatel_gps.h.
void novatel_gps_driver::NovatelGps::GenerateImuMessages | ( | ) | [private] |
Processes any messages in our corrimudata & inspva queues in order to generate Imu messages from them.
Definition at line 920 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetClockSteeringMessages | ( | std::vector< novatel_gps_msgs::ClockSteeringPtr > & | clocksteering_msgs | ) |
Provides any CLOCKSTEERING messages that have been received since the last time this was called.
[out] | clocksteering_msgs | New CLOCKSTEERING messages. |
Definition at line 551 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetFixMessages | ( | std::vector< gps_common::GPSFixPtr > & | fix_messages | ) |
Provides any GPSFix messages that have been generated since the last time this was called.
[out] | fix_messages | New GPSFix messages. |
Definition at line 322 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetGpggaMessages | ( | std::vector< novatel_gps_msgs::GpggaPtr > & | gpgga_messages | ) |
Provides any GPGGA messages that have been received since the last time this was called.
[out] | gpgga_messages | New GPGGA messages. |
Definition at line 481 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetGpgsaMessages | ( | std::vector< novatel_gps_msgs::GpgsaPtr > & | gpgsa_messages | ) |
Provides any GPGSA messages that have been received since the last time this was called.
[out] | gpgsa_messages | New GPGSA messages. |
Definition at line 488 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetGpgsvMessages | ( | std::vector< novatel_gps_msgs::GpgsvPtr > & | gpgsv_messages | ) |
Provides any GPGSV messages that have been received since the last time this was called.
[out] | gpgsv_messages | New GPGSV messages. |
Definition at line 495 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetGprmcMessages | ( | std::vector< novatel_gps_msgs::GprmcPtr > & | gprmc_messages | ) |
Provides any GPRMC messages that have been received since the last time this was called.
[out] | gprmc_messages | New GPRMC messages. |
Definition at line 502 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetImuMessages | ( | std::vector< sensor_msgs::ImuPtr > & | imu_messages | ) |
Provides any Imu messages that have been generated since the last time this was called.
[out] | imu_message | New Imu messages. |
Definition at line 913 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetInscovMessages | ( | std::vector< novatel_gps_msgs::InscovPtr > & | inscov_messages | ) |
Provides any INSCOV messages that have been received since the last time this was called.
[out] | inscov_messages | New INSCOV messages. |
Definition at line 509 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetInspvaMessages | ( | std::vector< novatel_gps_msgs::InspvaPtr > & | inspva_messages | ) |
Provides any INSPVA messages that have been received since the last time this was called.
[out] | inspva_messages | New INSPVA messages. |
Definition at line 516 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetInsstdevMessages | ( | std::vector< novatel_gps_msgs::InsstdevPtr > & | insstdev_messages | ) |
Provides any INSSTDEV messages that have been received since the last time this was called.
[out] | insstdev_messages | New INSSTDEV messages. |
Definition at line 523 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetNovatelCorrectedImuData | ( | std::vector< novatel_gps_msgs::NovatelCorrectedImuDataPtr > & | imu_messages | ) |
Provides any CORRIMUDATA messages that have been received since the last time this was called.
[out] | imu_messages | New CORRIMUDATA messages. |
Definition at line 474 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetNovatelDualAntennaHeadingMessages | ( | std::vector< novatel_gps_msgs::NovatelDualAntennaHeadingPtr > & | headings | ) |
Provides any DUALANTENNAHEADING messages that have been received since the last time this was called.
[out] | headings | New DUALANTENNAHEADING messages. |
Definition at line 468 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetNovatelHeading2Messages | ( | std::vector< novatel_gps_msgs::NovatelHeading2Ptr > & | headings | ) |
Provides any HEADING2 messages that have been received since the last time this was called.
[out] | headings | New HEADING2 messages. |
Definition at line 462 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetNovatelPositions | ( | std::vector< novatel_gps_msgs::NovatelPositionPtr > & | positions | ) |
Provides any BESTPOS messages that have been received since the last time this was called.
[out] | positions | New BESTPOS messages. |
Definition at line 294 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetNovatelUtmPositions | ( | std::vector< novatel_gps_msgs::NovatelUtmPositionPtr > & | utm_positions | ) |
Provides any BESTUTM messages that have been received since the last time this was called.
[out] | positions | New BESTUTM messages. |
Definition at line 308 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetNovatelVelocities | ( | std::vector< novatel_gps_msgs::NovatelVelocityPtr > & | velocities | ) |
Provides any BESTVEL messages that have been received since the last time this was called.
[out] | velocities | New BESTVEL messages. |
Definition at line 315 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetNovatelXYZPositions | ( | std::vector< novatel_gps_msgs::NovatelXYZPtr > & | positions | ) |
Provides any BESTXYZ messages that have been received since the last time this was called.
[out] | positions | New BESTXYZ messages. |
Definition at line 301 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetRangeMessages | ( | std::vector< novatel_gps_msgs::RangePtr > & | range_messages | ) |
Provides any RANGE messages that have been received since the last time this was called.
[out] | range_messages | New RANGE messages. |
Definition at line 530 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetTimeMessages | ( | std::vector< novatel_gps_msgs::TimePtr > & | time_messages | ) |
Provides any TIME messages that have been received since the last time this was called.
[out] | time_messages | New TIME messages. |
Definition at line 537 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::GetTrackstatMessages | ( | std::vector< novatel_gps_msgs::TrackstatPtr > & | trackstat_msgs | ) |
Provides any TRACKSTAT messages that have been received since the last time this was called.
[out] | trackstat_msgs | New TRACKSTAT messages. |
Definition at line 544 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::IsConnected | ( | ) | [inline] |
Definition at line 262 of file novatel_gps.h.
NovatelGps::ReadResult novatel_gps_driver::NovatelGps::ParseBinaryMessage | ( | const BinaryMessage & | msg, |
const ros::Time & | stamp | ||
) | throw (ParseException) [private] |
Converts a BinaryMessage object into a ROS message of the appropriate type and places it in the appropriate buffer.
[in] | msg | A valid binary message |
[in] | stamp | A timestamp to set in the ROS message header. |
Definition at line 1028 of file novatel_gps.cpp.
NovatelGps::ConnectionType novatel_gps_driver::NovatelGps::ParseConnection | ( | const std::string & | connection | ) | [static] |
Converts the strings "udp", "tcp", or "serial" into the corresponding enum values.
connection | A string indicating the connection type. |
Definition at line 129 of file novatel_gps.cpp.
NovatelGps::ReadResult novatel_gps_driver::NovatelGps::ParseNmeaSentence | ( | const NmeaSentence & | sentence, |
const ros::Time & | stamp, | ||
double | most_recent_utc_time | ||
) | throw (ParseException) [private] |
Converts an NMEA sentence into a ROS message of the appropriate type and places it in the appropriate buffer.
[in] | sentence | A valid NMEA sentence |
[in] | stamp | A timestamp to set in the ROS message header. |
most_recent_utc_time | The most recently received time in any GPGGA or GPRMC message; used to adjust timestamps in ROS message headers. |
Definition at line 1151 of file novatel_gps.cpp.
NovatelGps::ReadResult novatel_gps_driver::NovatelGps::ParseNovatelSentence | ( | const NovatelSentence & | sentence, |
const ros::Time & | stamp | ||
) | throw (ParseException) [private] |
Converts a NovatelSentence object into a ROS message of the appropriate type and places it in the appropriate buffer.
[in] | msg | A valid ASCII NovAtel message message |
[in] | stamp | A timestamp to set in the ROS message header. |
Definition at line 1221 of file novatel_gps.cpp.
Processes any data that has been received from the device since the last time this message was called. May result in any number of messages being placed in the individual message buffers.
Definition at line 189 of file novatel_gps.cpp.
Reads data from a connected NovAtel device. Any read data will be appended to data_buffer_.
Definition at line 723 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::SetImuRate | ( | double | imu_rate, |
bool | force = true |
||
) |
Sets the IMU rate; necessary for producing sensor_msgs/Imu messages.
imu_rate | The IMU rate in Hz. |
force | If this value should be used instead of an autodetected one |
Definition at line 1012 of file novatel_gps.cpp.
void novatel_gps_driver::NovatelGps::SetSerialBaud | ( | int32_t | serial_baud | ) |
Sets the serial baud rate; should be called before configuring a serial connection.
serial_baud_rate | The serial baud rate. |
Definition at line 1022 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::Write | ( | const std::string & | command | ) |
Writes the given string of characters to a connected NovAtel device.
command | A string to transmit. |
Definition at line 1381 of file novatel_gps.cpp.
bool novatel_gps_driver::NovatelGps::apply_vehicle_body_rotation_ [private] |
Definition at line 507 of file novatel_gps.h.
Definition at line 456 of file novatel_gps.h.
Definition at line 458 of file novatel_gps.h.
Definition at line 459 of file novatel_gps.h.
Definition at line 457 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::ClockSteeringPtr> novatel_gps_driver::NovatelGps::clocksteering_msgs_ [private] |
Definition at line 476 of file novatel_gps.h.
Definition at line 462 of file novatel_gps.h.
Definition at line 418 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelCorrectedImuDataPtr> novatel_gps_driver::NovatelGps::corrimudata_msgs_ [private] |
Definition at line 477 of file novatel_gps.h.
Definition at line 463 of file novatel_gps.h.
std::queue<novatel_gps_msgs::NovatelCorrectedImuDataPtr> novatel_gps_driver::NovatelGps::corrimudata_queue_ [private] |
Definition at line 500 of file novatel_gps.h.
std::vector<uint8_t> novatel_gps_driver::NovatelGps::data_buffer_ [private] |
Variable-length buffer that has data continually appended to it until messages are parsed from it
Definition at line 440 of file novatel_gps.h.
constexpr uint16_t novatel_gps_driver::NovatelGps::DEFAULT_TCP_PORT = 3001 [static, private] |
Definition at line 410 of file novatel_gps.h.
constexpr uint16_t novatel_gps_driver::NovatelGps::DEFAULT_UDP_PORT = 3002 [static, private] |
Definition at line 411 of file novatel_gps.h.
constexpr double novatel_gps_driver::NovatelGps::DEGREES_TO_RADIANS = M_PI / 180.0 [static, private] |
Definition at line 416 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelDualAntennaHeadingPtr> novatel_gps_driver::NovatelGps::dual_antenna_heading_msgs_ [private] |
Definition at line 494 of file novatel_gps.h.
Definition at line 461 of file novatel_gps.h.
std::string novatel_gps_driver::NovatelGps::error_msg_ [private] |
Definition at line 420 of file novatel_gps.h.
Used to extract messages from the incoming data stream.
Definition at line 453 of file novatel_gps.h.
Definition at line 307 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::GpggaPtr> novatel_gps_driver::NovatelGps::gpgga_msgs_ [private] |
Definition at line 478 of file novatel_gps.h.
Definition at line 464 of file novatel_gps.h.
Definition at line 308 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::Gpgga> novatel_gps_driver::NovatelGps::gpgga_sync_buffer_ [private] |
Definition at line 479 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::GpgsaPtr> novatel_gps_driver::NovatelGps::gpgsa_msgs_ [private] |
Definition at line 480 of file novatel_gps.h.
Definition at line 465 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::GpgsvPtr> novatel_gps_driver::NovatelGps::gpgsv_msgs_ [private] |
Definition at line 481 of file novatel_gps.h.
Definition at line 466 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::GprmcPtr> novatel_gps_driver::NovatelGps::gprmc_msgs_ [private] |
Definition at line 482 of file novatel_gps.h.
Definition at line 467 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::Gprmc> novatel_gps_driver::NovatelGps::gprmc_sync_buffer_ [private] |
Definition at line 483 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelHeading2Ptr> novatel_gps_driver::NovatelGps::heading2_msgs_ [private] |
Definition at line 493 of file novatel_gps.h.
Definition at line 460 of file novatel_gps.h.
boost::circular_buffer<sensor_msgs::ImuPtr> novatel_gps_driver::NovatelGps::imu_msgs_ [private] |
Definition at line 484 of file novatel_gps.h.
double novatel_gps_driver::NovatelGps::imu_rate_ [private] |
Definition at line 504 of file novatel_gps.h.
bool novatel_gps_driver::NovatelGps::imu_rate_forced_ [private] |
Definition at line 423 of file novatel_gps.h.
constexpr double novatel_gps_driver::NovatelGps::IMU_TOLERANCE_S = 0.0002 [static, private] |
Definition at line 415 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::InscovPtr> novatel_gps_driver::NovatelGps::inscov_msgs_ [private] |
Definition at line 485 of file novatel_gps.h.
Definition at line 468 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::InspvaPtr> novatel_gps_driver::NovatelGps::inspva_msgs_ [private] |
Definition at line 486 of file novatel_gps.h.
Definition at line 469 of file novatel_gps.h.
std::queue<novatel_gps_msgs::InspvaPtr> novatel_gps_driver::NovatelGps::inspva_queue_ [private] |
Definition at line 501 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::InsstdevPtr> novatel_gps_driver::NovatelGps::insstdev_msgs_ [private] |
Definition at line 487 of file novatel_gps.h.
Definition at line 470 of file novatel_gps.h.
boost::asio::io_service novatel_gps_driver::NovatelGps::io_service_ [private] |
Definition at line 432 of file novatel_gps.h.
bool novatel_gps_driver::NovatelGps::is_connected_ [private] |
Definition at line 422 of file novatel_gps.h.
std::vector<uint8_t> novatel_gps_driver::NovatelGps::last_tcp_packet_ [private] |
Definition at line 450 of file novatel_gps.h.
novatel_gps_msgs::InscovPtr novatel_gps_driver::NovatelGps::latest_inscov_ [private] |
Definition at line 503 of file novatel_gps.h.
novatel_gps_msgs::InsstdevPtr novatel_gps_driver::NovatelGps::latest_insstdev_ [private] |
Definition at line 502 of file novatel_gps.h.
constexpr size_t novatel_gps_driver::NovatelGps::MAX_BUFFER_SIZE = 100 [static, private] |
Definition at line 412 of file novatel_gps.h.
std::string novatel_gps_driver::NovatelGps::nmea_buffer_ [private] |
Buffer containing incomplete data from message parsing.
Definition at line 442 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelPositionPtr> novatel_gps_driver::NovatelGps::novatel_positions_ [private] |
Definition at line 488 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelUtmPositionPtr> novatel_gps_driver::NovatelGps::novatel_utm_positions_ [private] |
Definition at line 490 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelVelocityPtr> novatel_gps_driver::NovatelGps::novatel_velocities_ [private] |
Definition at line 491 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelXYZPtr> novatel_gps_driver::NovatelGps::novatel_xyz_positions_ [private] |
Definition at line 489 of file novatel_gps.h.
pcap_t* novatel_gps_driver::NovatelGps::pcap_ [private] |
pcap device for testing
Definition at line 447 of file novatel_gps.h.
char novatel_gps_driver::NovatelGps::pcap_errbuf_[MAX_BUFFER_SIZE] [private] |
Definition at line 449 of file novatel_gps.h.
bpf_program novatel_gps_driver::NovatelGps::pcap_packet_filter_ [private] |
Definition at line 448 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::NovatelPositionPtr> novatel_gps_driver::NovatelGps::position_sync_buffer_ [private] |
Definition at line 492 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::RangePtr> novatel_gps_driver::NovatelGps::range_msgs_ [private] |
Definition at line 495 of file novatel_gps.h.
Definition at line 471 of file novatel_gps.h.
constexpr uint32_t novatel_gps_driver::NovatelGps::SECONDS_PER_WEEK = 604800 [static, private] |
Definition at line 414 of file novatel_gps.h.
Definition at line 429 of file novatel_gps.h.
int32_t novatel_gps_driver::NovatelGps::serial_baud_ [private] |
Definition at line 428 of file novatel_gps.h.
boost::array<uint8_t, 10000> novatel_gps_driver::NovatelGps::socket_buffer_ [private] |
Fixed-size buffer for reading directly from sockets.
Definition at line 444 of file novatel_gps.h.
constexpr size_t novatel_gps_driver::NovatelGps::SYNC_BUFFER_SIZE = 10 [static, private] |
Definition at line 413 of file novatel_gps.h.
boost::asio::ip::tcp::socket novatel_gps_driver::NovatelGps::tcp_socket_ [private] |
Definition at line 433 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::TimePtr> novatel_gps_driver::NovatelGps::time_msgs_ [private] |
Definition at line 496 of file novatel_gps.h.
Definition at line 472 of file novatel_gps.h.
boost::circular_buffer<novatel_gps_msgs::TrackstatPtr> novatel_gps_driver::NovatelGps::trackstat_msgs_ [private] |
Definition at line 497 of file novatel_gps.h.
Definition at line 473 of file novatel_gps.h.
boost::shared_ptr<boost::asio::ip::udp::endpoint> novatel_gps_driver::NovatelGps::udp_endpoint_ [private] |
Definition at line 435 of file novatel_gps.h.
boost::shared_ptr<boost::asio::ip::udp::socket> novatel_gps_driver::NovatelGps::udp_socket_ [private] |
Definition at line 434 of file novatel_gps.h.
double novatel_gps_driver::NovatelGps::utc_offset_ [private] |
Definition at line 425 of file novatel_gps.h.
Definition at line 309 of file novatel_gps.h.