How can I get Xsens IMU data which set own setting

Hardware environment
-IMU: Xsens MTi-G-710

-SDK: DriveWorks SDK Reference 2.2.3134
-IMU Sample: driveworks/samples/src/sensors/imu

I want to use the IMU Sample application to get the data checked in “imu_setting.png”.
(The image is the result of checking the settings with “mtmanager”.)

However, after starting the sample application with the following command, I checked the IMU settings,
It was changed to the setting to output the data checked in “imu_setting (after_starting_app).png”.

./sample_imu_logger --driver=imu.xsens --params=device=/dev/ttyTHS1,frequency=10,stop-bits=1,baudrate=115200

-Does the driver(imu.xsens) change the IMU setting inside? (I don’t want to be changed the setting by the driver.)
-How can I get the data which is set by my setting shown in “imu_setting.png” in the IMU Sample application?

Hi @N.Miya,

We are checking internally. At the same time, may I know why you need the configuration and what’s the most important setting for you? Please try if 25->10 Hz change is caused by “frequency=10” in your command line.

Hi @VickNV,

I have the same IMU in another system and am porting that system to AGX.
So, the most inportant setting is delta quaternion and velocity.

thank you.

Please run with below command line (adding slave=1) to skip the configuration.
./sample_imu_logger --driver=imu.xsens --params=device=/dev/ttyTHS1,frequency=10,stop-bits=1,baudrate=115200,slave=1

Thank you for your replay @VickNV,

I ran that command, but the settings were overwritten.
slave_1.txt (6.3 KB)

Do I need to set anything other than “slave=1”?
What does the “slave=1” option do?

“slave=1” will skip device configuration of like below.

void EndpointXsens::initializeDevice(bool slave)
if (!slave)

May I know how you told setting was changed by sample_imu_logger? Thanks!

indent preformatted text by 4 spacesMay I know how you told setting was changed by sample_imu_logger? 

This is being confirmed by the person in charge.

I have a Additional question.
I want to get the imu data connected by UART with Xavier B.
But I can’t find /dev/tyTHS1 port for Xavier B.
Can I get the IMU data using the Xavier B UART?

Why do you need to connect it to Xavier B? It looks disabled in device tree.

$ cat /proc/device-tree/serial@3110000/status

I want to record sensor data on SSD connected by ESATA.
However, I heard that esata can only be accessed via Xavier B.
How do I enable the serial?

Please follow below snippet of /usr/local/driveworks/tools/capture/configs/rwd/hyperion7_1/release.json to record with USB. Thanks!

                "name": "imu:xsens",                                                                                                                                                                      
                "nominalSensor2Rig": {
                    "quaternion": [
                    "t": [
                "parameter": "device=/dev/ttyUSB0,baudrate=230400,stop-bits=1,slave=true,file-buffer-size=8192,index_table=off",
                "properties": null,
                "protocol": "imu.xsens"

Thank you!

May I know how you told setting was changed by sample_imu_logger?

I checked again if the setting changed with slave = 1, but it seems to change.
I checked the data output before and after starting sample_imu_logger.

→ MT manager before executing sample_imu_logger (setting and received data).

→ MT manager after executing sample_imu_logger (settings and received data).
sample_app_slave=1.log|attachment (6.0 KB)
→ sample_imu_logger commands and logs.

Could you try with “slave=true”? Thanks!

Are you asking about the first 80 bytes data in your first frame? Can you see the same with any xsens tools?

20200909_imu_mtmanager.txt seems not raw data.
Is there any way you can get raw data by xsens tool and crosscheck it? And could you also to try to get xsens’ advice at the same time? Thanks!

The raw data collected by MT manager is as follows.

<13:00:03.710> FA FF 36 87 10 10 0C 11 36 BD 00 07 DF 0A 12 00 03 16 F0 10 20 02 16 6D 10 60 04 00 1E DD E8 20 33 18 BF A0 47 11 A0 00 00 00 3F D4 C3 BF 00 00 00 00 C0 0D 16 96 A0 00 00 00 40 23 18 BF AC 6D D5 C0 00 00 00 3F 5F 85 F1 80 00 00 00 40 23 96 92 E0 00 00 00 C0 23 18 BF DC CC 0F 80 00 00 00 3F F2 71 B2 00 00 00 00 3F F1 B6 50 40 00 00 00 80 23 18 BF 56 FF 1B 00 00 00 01 BF 4E C8 6E A0 00 00 00 BF 45 38 D5 E0 00 00 01 2B

There is no unnecessary data before and after, and it seems that only the Xbus message can be acquired correctly.

(MT manager does not work on Xavier. Therefore, MT manager is running on a Linux machine different from Xavier.
The IMU settings are the same as when running the sample application.)

Also, I implemented the same implementation as the Example described on the following page of DriveWorks reference and checked it.

Reference :
DriveWorks SDK Reference > Tutorials > Basic Tutorials > IMU Usage > Reading IMU data from raw (binary) data.

As a result, there was unnecessary data before and after the Xbus message.
Therefore, I think there are some things to keep in mind when collecting RAW data using the DriveWorks API.
Do you have any ideas?

Hi @N.Miya ,

Please use dwSensorIMU_processRawData() to process the raw data. Thanks.