[Documentation] [TitleIndex] [WordIndex


The official ROS driver for Xsens industrial Motion Trackers (MTi) can be found in the Linux installation package of the MT Software Suite (versions 2019.0 and later). Extract the downloaded installation package, execute the mtsdk_linux-x##_####.#.sh and locate the xsens_ros_mti_driver folder.

Full documentation for the ROS node and XDA library is available at:

[MTSDK folder]/doc/xsensdeviceapi/doc/html/index.html

Supported devices

This ROS driver is actively supported and maintained in order to be compatible with the latest generation MTi's.


The MTi node only receives data from an MTi device and publishes it to ROS, it is not capable of configuring a device. Topics will be filled with zero-values if the MTi is not configured to output that specific data type. To configure (the output data of) an MTi you can either use MT Manager, Xsens Device API (XDA), Low Level Communication Protocol or by extending the MTi node.

The Xsens MTi driver uses Public Xsens Device API for scanning, connecting, packet parsing and log file handling. The implemention of this driver is done in C/C++, so you can build and run it on a different platforms. You can also configure an MTi using Public XDA by extending XdaInterface class, for more information about how to do that have a look at the 'Public XDA receive data example', found in the MT SDK folder of the MT Software Suite.


Running the Xsens MTi node

$ pushd src/xsens_ros_mti_driver/lib/xspublic && make && popd

$ catkin_make

$ source devel/setup.bash

$ roslaunch xsens_mti_driver display.launch

$ roslaunch xsens_mti_driver example.launch

Configuring the Xsens MTi node

To change the configuration of the Xsens MTi node you can edit the xsens_mti_node.yaml file. The following parameters can be configured:

Published topics


The published topics do not reach the expected data output rate (e.g. 400 Hz).
We have noticed that the ROS node can cause a high CPU load, leading to lower data output rates. This issue has been fixed in ROS nodes available in MTSS2019.3.2 and later. We recommend migrating to the latest version.

If you have connected the MTi via a USB interface, we recommend enabling the low latency mode using setserial. See this page for more details.

The MTi-1 (Motion Tracker Development Board) is not recognized.
Support for the Development Board is present in recent kernels. (Since June 12, 2015). If your kernel does not support the Board, you can add this manually:

$ sudo /sbin/modprobe ftdi_sio $ echo 2639 0300 | sudo tee /sys/bus/usb-serial/drivers/ftdi_sio/new_id

The device is recognized, but I cannot ever access the device.
Make sure you are in the correct group (often dialout or uucp) in order to access the device. You can test this with:

$ ls -l /dev/ttyUSB0

crw-rw---- 1 root dialout 188, 0 May  6 16:21 /dev/ttyUSB0

$ groups

dialout audio video usb users plugdev

If you aren't in the correct group, you can fix this in two ways:

$ sudo usermod -G dialout -a $USER

$ newgrp dialout
  1. Use udev rules. Alternatively, put the following rule into /etc/udev/rules.d/99-custom.rules:

SUBSYSTEM=="tty", ATTRS{idVendor}=="2639", ACTION=="add", GROUP="$GROUP", MODE="0660"

The device is inaccessible for a while after plugging it in.
When having problems with the device being busy the first 20 seconds after plugin, purge the modemmanager application.

RViz doesn't show an MTi model.
It is a known issue with urdfdom in ROS Melodic. A workaround is to unset/modify the LC_NUMERIC environment variable:


Bug Reports & Feature Requests

We appreciate the time and effort spent submitting bug reports. Please note that Xsens cannot support any ROS packages other than the ROS driver included in the MT Software Suite.

Please visit us at BASE. BASE is our online support platform where you can find knowledge base articles, frequently asked questions and an active community forum where you can get in touch with our engineers and product specialists.

2021-01-02 13:13