kvh_geo_fog_3d_driver Documentation

kvh_geo_fog_3d_driver

A ROS driver for the KVH Geo Fog 3D INS family of systems.

kvh_geo_fog_3d_driver is a ROS-compatible hardware driver for the KVH GEO FOG 3D family of localization systems.

Copyright 2019 The MITRE Corporation. All rights reserved.

This driver connects to the KVH sensor using the RS232 serial library. It then uses the an_packet_protocol library to encode/decode packets to the sensor, and creates a request packet specifying the device configuration. Finally, it runs at a synchronous rate defined by a ros::Rate object and reads the serial buffer at that rate, stores the data in member objects, and then walks through each object to fill out and send the corresponding ROS data.

The driver itself has no ROS dependencies. It follows the Construct/Init/Once/Cleanup paradigm, and is extensible through a list of packet types it expects to receive and a templated GetPacket() fuction in the driver. The ROS node wraps this driver and performs the ROS interpretation of the data.

All data is published at least as custom ROS messages which perform no interpretation. This allows for checking of the data for validity after the fact. Data may additionally be published as standard types, such as nav_msgs/Odometry or sensor_msgs/Imu.

Sections of this project contains content developed by The MITRE Corporation. If this code is used in a deployment or embedded within another project, it is requested that you send an email to opens.nosp@m.ourc.nosp@m.e@mit.nosp@m.re.o.nosp@m.rg in order to let us know where this software is being used.

ROS API

List of nodes:


kvh_geo_fog_3d_driver_node

kvh_geo_fog_3d_driver_node connects to the device via a serial connection, reads data using the AN packet protocol, re-publishes the data as pass-through KVH messages (present in the kvh_geo_fog_3d_msgs package), and interprets the data into ROS-compatible data, published as standard ROS types. This interpretation takes into consideration ROS REP-103 (standard units of measure), ROS REP-105 (coordinate frames for mobile robots), and ROS REP-145 (conventions for IMU sensor data).

Usage

$ kvh_geo_fog_3d_driver_node port:=<serial port> baud:=<baud>
Example
$ kvh_geo_fog_3d_driver_node port:=/dev/ttyUSB0 baud:=115200

ROS topics

Publishes to:

ROS parameters

Reads the following parameters from the parameter server. For detailed information regarding these configuration options, see the KVH technical reference manual.

Todo:
What are the defaults?

determine_baud_node

determine_baud_node attempts to auto-baud to the device over the specified serial port. It listens for messages and, if none come in, it tries the next baud rate.

The only baud rates attempted are the ones supported by the device by default. To learn more about supported baud rates, consult the KVH technical reference.

Once a baud rate is determined, the software offers the opportunity to reconfigure the baud rate.

Usage

$ determine_baud_node port:=<port>
Example
$ determine_baud_node port:=/dev/ttyUSB0

ROS parameters

Reads the following parameters from the parameter server.

Command-line tools

This section is a catch-all for any additional tools that your package provides or uses that may be of use to the reader. For example:

kvh_geo_fog_3d_node.launch

Default launch file for the kvh_geo_fog_3d_driver node, which will attach to the USB port with the default baud rate and some sane default configurations for a bicycle-model ground vehicle.

Usage

$ roslaunch kvh_geo_fog_3d_driver kvh_geo_fog_3d_node.launch

enable_debug.sh

Enables debugging logging of the ROS KVH driver, using ROS service calls.

Usage

$ ./enable_debug.sh

disable_debug.sh

Disables debugging logging of the ROS KVH driver, using ROS service calls.

Usage

$ ./disable_debug.sh

run_tests.sh

Use the ROS build system to run the unit tests for the driver.

Usage

$ ./run_tests.sh {-v,-b}
run_tests_example Example
$ ./run_tests.sh -v


kvh_geo_fog_3d_driver
Author(s): Trevor Bostic , Zach LaCelle
autogenerated on Mon Feb 28 2022 22:39:54