Filter by Type
Autoliv MMR 77Ghz
Autoliv SRR C6
Continental ARS 308
Dataspeed MKZ DBW
Delphi ESR 2.5
Delphi ESR 9.21.21
Generic Video Device / Webcam
ibeo LUX 4L
ibeo Feature Fusion for LUX
ibeo LUX HD
OxTS RT3000 Series
FLIR / Point Grey GigE
Preco Gen 3
SainSmart 16 Channel Controller
Swift Navigation Piksi Multi
Velodyne VLP-16 (Puck)
Xsens MTi-G-700 Series
Xsens MTi-G-700 Series
Supported hardware versions
The driver interface communicates with the GPS/IMU sensor using the MT Software suite.
- Define the node in the SDF Configurator
- Parse the sensor identifier from the connected hardware device
- Copy the
Sensor 0 Identifier(serial number) into the SDF Configurator
- Run the Dynamic Driver interface
Sensor background and requirements
All MTi’s have a powerful multi-processor core design, capable of processing roll, pitch and yaw with extremely low latencies, as well as out putting calibrated 3D linear acceleration, rate of turn (gyro), (earth) magnetic field and atmospheric pressure (100-series only) data. The MTi-G-700 GPS/INS and MTi-G-710 GNSS/INS also offers 3D position and 3D velocity.
- Default baud rate is 115200, for the device and for the PolySync Core driver
- Do not modify the key value stored in the
Third Party Software Key 0field in the SDF Configurator
- An ECU with a USB port
- An ECU with PolySync Core installed
Configuring the PolySync driver
Adding the sensor to the SDF
Using the Configurator tool, add a sensor node to the SDF.
The Xsens ‘Node Interface’ name is
Parse the sensor identifier
The PolySync Core driver can parse the identifier when started on the command line.
The driver needs the Xsens MTs sensor identifier to validate the hardware device while initializing the connection.
Enter the sensor identifier in the Configurator node entry’s
Sensor 0 Identifier parameter field, which is the second entry in the Sensor Configuration table.
The only required configuration parameter supported by the driver is the
Sensor 0 Identifier the rest are optional.
Validating the sensor is properly configured
If you’re approaching a new PolySync system or need to validate an existing configuration you can use the following checklist to ensure the sensor is properly configured.
- The sensor is connected to a USB port
- The PolySync Core driver is able to parse the sensor identifier
Starting the PolySync driver
The configuration set in the Configurator is loaded from the SDF when the dynamic driver starts. It connects to the sensor through the USB port, requests the data, and waits for confirmation that the sensor configuration is valid.
When the dynamic driver receives the first packet of data, it begins processing and abstracting the data from the OEM data structure in a high-level hardware agnostic message type. In this case the GPS/IMU data is placed in a
- Power the ECU on
- Optionally follow the set up checklist
- Start the PolySync Core manager
$ sudo service polysync-core-manager start
- 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 nodes 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.
||No||Show the help message||N/A|
||No||Disable the hardware interface(s), allowing the node to run without hardware connected - also known as replay mode||N/A|
||No||SDF runtime configuration key that specifies the domain to operated under, the default domain is used otherwise||Runtime configuration key, [0-65536]|
||Yes||SDF node configuration identifier for the node||SDF node ID from the Configurator, [0-65536]|
||No||Use provided PAL interface file instead of what is stored in the SDF||Path to the dyanmic driver interface PAL shared object library|
||No||export a JSON support string describing the interface, used by the SDF configuration tool||N/A|
||No||Allow updates to the SDF configuration during the normal runtime if needed (does not exit)||N/A|
||No||Use provided logfile in Record and Replay operations instead of the default||File path to a PolySync
||No||Use provided SDF instead of the default||File path to an SDF file|
||No||Update the node SDF configuration and exit||N/A|
||No||check the node SDF configuration for required updates and exit option (returns exit status zero if no change required)||N/A|
||No||get all available Xsens MT device identifiers on the host||N/A|
||No||enable additional debugging output in the interface||N/A|
|DTC value||DTC name||Fault description||Notes|
|304||DTC_NOINTERFACE||Interface not available||Activated when the sensor is not reachable at the serial port set in the Configurator; activated when the sensor becomes unreachable during runtime|
Troubleshooting connection issues
If you see this error:
ERROR : XSENS_MT : XSENS_MT_pre_validate - no devices found
Verify the Xsens udev file got installed during installation.
$ ls /lib/udev/rules.d/92-xsens.rules /lib/udev/rules.d/92-xsens.rules
Verify the user is part of the dialout group. This allows access to the USB device.
$ whoami dev $ sudo adduser dev dialout
Some Linux users reported that the MTi-G-710 model required additional steps to access the device through PolySync. Please follow the steps below to build and install the MT SDK libraries.
Install the dependency:
$ sudo apt-get install sharutils
$ cp $PSYNC_HOME/deps/MT_Software_Suite_Linux_4.7.tar.gz ~/Downloads $ cd ~/Downloads/ $ tar xf MT_Software_Suite_Linux_4.7.tar.gz $ cd MT_Software_Suite_Linux_4.7 $ sudo ./mtsdk_linux_4.7.sh
Accessing sensor data
When the dynamic driver node is operating in an
OK state then data is being published to the global PolySync 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 provides to quickly validate that data exists on the bus.
Access sensor data with PolySync nodes that subscribe to the sensor’s output message types.
Input / output message types
The Xsens MT dynamic driver node outputs the following message types to the bus. You can enable and disable the publishing of specific message types in the Configurator.
||Sensor Data Model|
By default the
ps_platform_motion_msg is published to the bus when you create a new Xsens MT node.
Platform motion message fields
|Data type||Name||Description||Message field populated by this sensor|
|ps_msg_header||header||PolySync message header.||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 ||Position. Value PSYNC_POSITION_NOT_AVAILABLE means given axis component not available. [xyz meters]||No|
|DDS_double||orientation ||Orientation quaternion. Value PSYNC_ORIENTATION_NOT_AVAILABLE means given axis component not available. [xyzw quaternion]||Yes|
|DDS_double||rotation_rate ||Rotation rate. Value PSYNC_ROTATION_RATE_NOT_AVAILABLE means given axis component not available. [xyz radians/second]||Yes|
|DDS_double||velocity ||Velocity. Value PSYNC_VELOCITY_NOT_AVAILABLE means given axis component not available. [xyz meters/second]||Yes|
|DDS_double||acceleration ||Acceleration. Value PSYNC_ACCELERATION_NOT_AVAILABLE means given axis component not available. [xyz meters/second^2]||No|
|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|
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
You can find all sensor descriptor values in this article.