Supported Sensors

VectorNav VN-300

vectornav-vn300
V2.4.0
USB/Serial
450

Supported hardware versions

Manufacturer VectorNav

VectorNav’s VN-300 is the first and only Dual GNSS Antenna Inertial Navigation System in a single surface mount package. At the size of a postage stamp, the VN-300 SMD requires only a single 3.2-5.5V power supply, and can be directly embedded into a user’s electronics. Interface with the VN-300 SMD is made easy by using either the serial 3V TTL (UART) or the Serial Peripheral Interface (SPI).

  • The Core driver will output all of the data from Binary Group 1 (Common Outputs)

Hardware requirements

  • An ECU with a USB or Serial port
  • An ECU with PolySync Core installed

The VectorNav VN-300 Rugged

Required Pre-configurations

  • GPS antenna A and B mounted on the vehicle/platform
  • GPS baseline measurements (see section 4 of the user manual)

Configuring the ECU

  • Plug either the USB or serial cable into the ECU
  • Determine which device the sensor is associated with (default is /dev/ttyUSB0)

Adding the sensor to the SDF

Using the Configurator tool, add a sensor node to the SDF.

The ‘Node Interface’ name is vectornav-vn300.

Validating the sensor is properly configured

If you’re approaching a new PolySync Core system or need to validate an existing configuration you can use the following checklist to ensure the sensor is properly configured.

Setup checklist

If the sensor passes these checks then the PolySync Core dynamic driver will be able to communicate with the sensor.

  • The sensor connected to a power supply
  • The serial device path is configured (default is /dev/ttyUSB0)
  • Default baud rate is 115200, for the device and for the PolySync Core driver

Starting the PolySync Core driver

The configuration set in the Configurator is loaded from the SDF when the dynamic driver starts. It connects to the sensor over the serial/USB interface, requests the data, and waits for confirmation that the sensor configuration is valid.

The PolySync Core VectorNav VN-300 interface publishes ps_platform_motion_msg, vn300_time_gps_msg, vn300_quaternion_msg, vn300_position_msg, and vn300_velocity_msg by default. Which messages are published is toggleable in the SDF.

  1. Power the sensor and ECU on
  2. Optionally follow the setup checklist
  3. Start your runtime
  4. Start the dynamic driver process

Starting the node manually on the command line

To start a dynamic driver node on the command line, the node must first be defined in the SDF using the Configurator application.

Each node defined in the Configurator has a unique node ID which points to the node’s configuration. This article explains how to find the node ID.

Command line flags and usage

Once the node ID is known (substitute for X), the dynamic driver node for the supported sensor can be started with the base command:

$ polysync-core-dynamic-driver -n X

Each sensor supports an array of command line arguments. To see a full list of command line arguments, pass the -h help flag:

$ polysync-core-dynamic-driver -n X -h  |  less

There’s a lot of output so we recommend you pipe the output to less, but it’s not required.

Flag Required Description Arguments
-e No Export a JSON support string describing the interface, used by the SDF configuration tool
-h No Show this help message
-i No Use provided PAL interface file instead of what is stored in the SDF
-n <N> Yes SDF node configuration key for the node [required]
-o No Reserved
-r No Reserved
-d No Enable additional debugging output
-t No Perform a validation test on the VectorNav VN-300 interface
-p No Use provided logfile in Record and Replay operations instead of the default
-O No Check the node SDF configuration for required updates and exit option (returns exit status zero if no change required)
-U No Update the node SDF configuration and exit
-u No Allow updates to the SDF configuration during the normal runtime if needed (does not exit)
-w No Disable the hardware interface(s), allowing the node to run without hardware connected

Accessing sensor data

When the dynamic driver node is operating in an OK state then data is being published to the global PolySync Core bus, and any node can subscribe to the high-level message type(s) output by the dynamic driver node.

There are several tools that PolySync Core provides to quickly validate that data exists on the bus.

Access sensor data with PolySync Core nodes that subscribe to the sensor’s output message types.

Input / output message types

Message API Docs Notes
Publishes ps_platform_motion_msg Sensor Data Model Publishing is enabled by default
Publishes vn300_time_gps_msg VectorNav VN-300 Data Model Publishing is enabled by default
Publishes vn300_position_msg VectorNav VN-300 Data Model Publishing is enabled by default
Publishes vn300_quaternion_msg VectorNav VN-300 Data Model Publishing is enabled by default
Publishes vn300_velocity_msg VectorNav VN-300 Data Model Publishing is enabled by default
Publishes ps_byte_array_msg Sensor Data Model Publishing is disabled by default
Publishes ps_imu_msg Sensor Data Model Publishing is disabled by default
Publishes ps_gps_msg Sensor Data Model Publishing is disabled by default
Publishes vn300_time_startup_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_time_sync_in_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_yaw_pitch_roll_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_time_sync_in_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_angular_rate_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_acceleration_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_imu_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_mag_temp_pres_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_ins_status_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_sync_in_count_msg VectorNav VN-300 Data Model Publishing is disabled by default
Publishes vn300_time_gps_pps_msg VectorNav VN-300 Data Model Publishing is disabled by default

Core ps_platform_motion_msg message fields

Data type Name Description Message field populated by this sensor
ps_msg_header header PolySync message header. Yes
ps_sensor_descriptor sensor_descriptor Sensor descriptor. Yes
ps_timestamp timestamp Sample timestamp. Yes
ps_native_timestamp native_timestamp Native timestamp for the motion data sample. Provided by some devices. Check ps_native_timestamp.format for meaning. Format value PSYNC_NATIVE_TIMESTAMP_FORMAT_INVALID means not available. Yes
DDS_double position [3] Position. Value PSYNC_POSITION_NOT_AVAILABLE means given axis component not available. [xyz meters] No
DDS_double orientation [4] Orientation quaternion. Value PSYNC_ORIENTATION_NOT_AVAILABLE means given axis component not available. [xyzw quaternion] Yes
DDS_double rotation_rate [3] Rotation rate. Value PSYNC_ROTATION_RATE_NOT_AVAILABLE means given axis component not available. [xyz radians/second] Yes
DDS_double velocity [3] Velocity. Value PSYNC_VELOCITY_NOT_AVAILABLE means given axis component not available. [xyz meters/second] Yes
DDS_double acceleration [3] Acceleration. Value PSYNC_ACCELERATION_NOT_AVAILABLE means given axis component not available. [xyz meters/second^2] Yes
DDS_double heading Heading angle, 0 radians equals North. Value PSYNC_HEADING_NOT_AVAILABLE means not available. [radians] Yes
DDS_double latitude Latitude. Value PSYNC_LATITUDE_NOT_AVAILABLE means not available. [radians] Yes
DDS_double longitude Longitude. Value PSYNC_LONGITUDE_NOT_AVAILABLE means not available. [radians] Yes
DDS_double altitude Longitude. Value PSYNC_ALTITUDE_NOT_AVAILABLE means not available. [meters] Yes

Core ps_imu_msg message fields

Data type Name Description Message field populated by this sensor
ps_msg_header header PolySync message header. Yes
ps_sensor_descriptor sensor_descriptor Sensor descriptor. Yes
ps_timestamp timestamp Sample timestamp. Yes
ps_native_timestamp native_timestamp Native timestamp for the motion data sample. Provided by some devices. Check ps_native_timestamp.format for meaning. Format value PSYNC_NATIVE_TIMESTAMP_FORMAT_INVALID means not available. Yes
DDS_double orientation [4] Orientation quaternion. Value PSYNC_ORIENTATION_NOT_AVAILABLE means given axis component not available. [xyzw quaternion] Yes
DDS_double rotation_rate [3] Rotation rate. Value PSYNC_ROTATION_RATE_NOT_AVAILABLE means given axis component not available. [xyz radians/second] Yes
DDS_double velocity [3] Velocity. Value PSYNC_VELOCITY_NOT_AVAILABLE means given axis component not available. [xyz meters/second] Yes
DDS_double acceleration [3] Acceleration. Value PSYNC_ACCELERATION_NOT_AVAILABLE means given axis component not available. [xyz meters/second^2] Yes

Core ps_gps_msg message fields

Data type Name Description Message field populated by this sensor
ps_msg_header header PolySync message header. Yes
ps_sensor_descriptor sensor_descriptor Sensor descriptor. Yes
ps_timestamp timestamp Sample timestamp. Yes
ps_native_timestamp native_timestamp Native timestamp for the motion data sample. Provided by some devices. Check ps_native_timestamp.format for meaning. Format value PSYNC_NATIVE_TIMESTAMP_FORMAT_INVALID means not available. Yes
DDS_double heading Heading angle, 0 radians equals North. Value PSYNC_HEADING_NOT_AVAILABLE means not available. [radians] Yes
DDS_double latitude Latitude. Value PSYNC_LATITUDE_NOT_AVAILABLE means not available. [radians] Yes
DDS_double longitude Longitude. Value PSYNC_LONGITUDE_NOT_AVAILABLE means not available. [radians] Yes
DDS_double altitude Longitude. Value PSYNC_ALTITUDE_NOT_AVAILABLE means not available. [meters] Yes
DDS_double speed Speed over ground. Value PSYNC_VELOCITY_NOT_AVAILABLE means not available. [meters/second] Yes
DDS_octet satellite_count Number of satellites. No
ps_gps_fix_kind fix Fix kind. Value GPS_FIX_NONE means no fix. No

Filtering incoming data for this sensor

An application that subscribes to a given message type is able to see data from more than one sensor or source.

Applications can filter for specific sensors and data sources in the message callback in C applications, or the messageEvent in C++ applications.

Filter incoming messages for this sensor with ps_sensor_kind value 450.

You can find all sensor descriptor values in this article.

Resources