Connection problem with the Xsens MTi 680G IMU sensor

Hi. We have encountered a connection problem while using the Nvidia AGX Jetson Orin 64GB along with the Xsens MTi 680G IMU sensor. I would really appreciate some guidance on that or help with debugging the problem.

Setup

  • The MTi is connected to Orin via USB 3.0 A
  • We use the original USB-RS232 converter from Xsens
  • The sensor is powered through USB.

Problem description

We have a Robot Operating System (ROS) stack working on Jetson and controlling our autonomous platform. We use a common ROS2 driver to read data from the sensor (Bluespace IMU driver). The problem is that we must relaunch the driver 2-3 times each time to get it to work and properly read measurements. Until that, we got the following errors from the driver.

[ERROR] [1693991301.738334066] [imu.mti680g]: Could not open port

or

[imu.mti680g]: Found baudrate parameter: 921600
[imu.mti680g]: Found port name parameter: /dev/ttyIMU
[imu.mti680g]: Scanning port /dev/ttyIMU ...
[imu.mti680g]: No MTi device found. Verify port and baud rate.

The next launch of the same SW/HW configuration gives us messages that everything works fine. Also, the data is properly sent and readable in ROS topic.

[imu.mti680g]: Device: MTi-680G-8A1G6, with ID: 008000447D opened.
[imu.mti680g]: Measuring ...

Actions

  • We verified that the port is available and does not change (there is an udev rule created between /dev/ttyUSBXXX matching the idVendor and idProduct with the symlink /dev/ttyIMU used by the driver).
  • We made sure that the sensors actually send data at the requested baud rate.
  • Physically, we have tried multiple ways of connecting, i.e., connecting through the USB 3.0 hub (with an external power source) or directly connecting the sensor to the Orin USB 3.0 A port, but we didn’t notice any change in behavior.

Hi michal.bednarek,

Are you using the devkit or custom board for AGX Orin?
What’s your Jetpack version in use?

It seems a custom driver for IMU. Do you port this driver to Jetson correctly w/o any issue?
Have you referred to the following thread for “No MTI device found” issue?
No MTI device found for MTi-3 on Ubuntu 20.04 and ros2 foxy · Issue #3 · bluespace-ai/bluespace_ai_xsens_ros_mti_driver · GitHub

Is there any issue after it could work?
Could you share the full dmesg for further check?

Hi. Thanks for the reply! Here are my answers:

Are you using the devkit or custom board for AGX Orin?

Jetson AGX Orin 64GB Developer Kit

What’s your Jetpack version in use?

Output from apt-cache show nvidia-jetpack shows: 5.1-b147

It seems a custom driver for IMU. Do you port this driver to Jetson correctly w/o any issue?

Yes, we ported it to build successfully on the ARM. No issues were observed. Also, I forgot to mention that the driver is launched from the docker container by docker-compose. Here’s the part of the compose configuration for the container. I can’t see any blocking options:

    user: root 
    privileged: true
    ipc: host
    pid: host
    network_mode: host
    restart: always
    devices:
      - /dev/ttyIMU
    volumes:
      - /dev:/dev

Have you referred to the following thread for “No MTI device found ” issue?
No MTI device found for MTi-3 on Ubuntu 20.04 and ros2 foxy · Issue #3 · bluespace-ai/bluespace_ai_xsens_ros_mti_driver · GitHub

Yes, I have a custom config file with:

  • scan_for_devices: false
  • port: '/dev/ttyIMU' (symlinked to ttyUSB0 by udev rule)
  • baudrate: 921600

Is there any issue after it could work?

When it starts to work after a few restarts of the driver, no issues are observed. Data flows just fine.

Could you share the full dmesg for further check?

Sure, I disconnected the IMU and connected it again. Here’s the dmesg tail:

[ 6409.866406] usb 1-4.4.4: USB disconnect, device number 9
[ 6409.867040] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 6409.867082] ftdi_sio 1-4.4.4:1.0: device disconnected
[ 6464.157359] usb 1-4.4.4: new full-speed USB device number 11 using tegra-xusb
[ 6464.320536] usb 1-4.4.4: New USB device found, idVendor=0403, idProduct=6015, bcdDevice=10.00
[ 6464.320551] usb 1-4.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6464.320556] usb 1-4.4.4: Product: FT230X Basic UART
[ 6464.320560] usb 1-4.4.4: Manufacturer: FTDI
[ 6464.320563] usb 1-4.4.4: SerialNumber: DK0EUDR5
[ 6464.326324] ftdi_sio 1-4.4.4:1.0: FTDI USB Serial Device converter detected
[ 6464.326389] usb 1-4.4.4: Detected FT-X
[ 6464.332034] gpiochip2: registered GPIOs 312 to 315 on ftdi-cbus
[ 6464.332095] usb 1-4.4.4: FTDI USB Serial Device converter now attached to ttyUSB0

After that, the device is visible in the dev folder:

lrwxrwxrwx  1 root root           7 wrz  7 10:23 ttyIMU -> ttyUSB0

Finally, I launched the container, and the driver worked fine on the 1st attempt. Relaunched it and and got an error that the port could not be opened. Then, after another relaunch, no MTi device was found. After another relaunch, it worked fine. I thought that it was a matter of some time between relaunches, but I verified that even waiting for 2 minutes does not guarantee that I won’t receive one of the mentioned errors, which seems to appear randomly.

It seems JP5.1 (R35.2.1).
There’s an known issue for USB before and also in the R35.3.1 so that we have an overlay package in R35.3.1.
It should be fixed in R35.4.1, could you verify with the latest JP5.1.2(R35.4.1)?

1 Like

Hi. I appreciate your support.

I followed the instructions here to upgrade JetPack (with related packages) to the R35.4 and the issue has gone.

Regards!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.