Code Monkey home page Code Monkey logo

xsens_mti_ros_node's Introduction

Notice: This ROS node implementation is deprecated. Please use the new offical ROS node available as part of the Xsens MT Software Suite (version 2019.0 and later). For more information refer to http://wiki.ros.org/xsens_mti_driver

Prerequisites

  • Install the MTi USB Serial Driver

    $ git clone https://github.com/xsens/xsens_mt.git
    $ cd ~/xsens_mt
    $ make
    $ sudo modprobe usbserial
    $ sudo insmod ./xsens_mt.ko
  • Install gps_common or gps_umd as available based on the ROS distributable

    $ sudo apt-get install ros-kinetic-gps-umd
    

    or

    $ sudo apt-get install ros-kinetic-gps-common

Running the Xsens MTi ROS Node

  1. Copy the contents of the src folder into your catkin workspace 'src' folder. Make sure the permissions are set to o+rw on your files and directories. For details on creating a catkin workspace environment refer to Creating a catkin ws

  2. in your catkin_ws ($CATKIN) folder, execute

    $ catkin_make
  3. Source the environment for each terminal you work in. If necessary, add the line to your .bashrc

    . $CATKIN/devel/setup.bash
  4. Edit the config file to match your specific use case:

    rosed xsens_driver xsens.yaml
  5. To run the node

    $ roslaunch xsens_driver xsens.launch
  6. Open a new terminal (do not forget step 3)

    $ . $CATKIN/devel/setup.bash
    $ rostopic echo /mti/sensor/sample

    or

    $ . $CATKIN/devel/setup.bash
    $ rostopic echo /mti/filter/orientation

Tested with ROS Kinetic distribution, initially developed for ROS Indigo distribution.

Troubleshooting

  • The Mti1 (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.

    1. Add yourself to the correct group You can add yourself to it by using your distributions user management tool, or call

       $ sudo usermod -G dialout -a $USER
      

      Be sure to replace dialout with the actual group name if it is different. After adding yourself to the group, either relogin to your user, or call

       $ newgrp dialout
      

      to add the current terminal session to the group.

    2. 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"
      

      Change $GROUP into your desired group (e.g. adm, plugdev, or usb).

  • 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.

xsens_mti_ros_node's People

Contributors

arunvydhya avatar baronep avatar fransklaver avatar ronwalf avatar savot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xsens_mti_ros_node's Issues

Error TypeError: ord() expected a character on firmware 1.10.0

Hi,
I am using the CA-USB2-MTi cable to connect my MTi-30 (MTi-2A8G4, sn: 0368204E) to my laptop.

I can't launch ros node. The error is the same as mentioned in #36
TypeError: ord() expected a character, but string of length 0 found
If using the normal accompanying USB cable, everything works just fine.

Because I need to use SyncIn so USB-to-serial is the only choice I have.

I also try to reduce the rate to 80Hz, 50Hz as in #43 to see if I can avoid it but the problem persists.

@StevenXsens in #43 said that there is some troubles with the FTDI chip, I wonder if the problem has been resolved?
If the ROS driver is not ready, is there any workaround that I can try @arunvydhya?

run error in ros

The problem is :
When I input $rosrun xsens_driver mtdevice.py -m 2 -f 100 # publish sensor data,
the terminal showed this :
MT error: timeout waiting for message.
or this :
MT error: Ack (0x31) expected, MID 0x36 received instead (after 100 tries).
In another terminal,I input $rosrun xsens_driver mtnode.py
it showed this :
[INFO] [1520392053.315689]: Found parameter: ~device, value: /dev/ttyUSB0
[INFO] [1520392053.321804]: Found parameter: ~baudrate, value: 115200
[INFO] [1520392053.323191]: MT node interface: /dev/ttyUSB0 at 115200 bd.
Traceback (most recent call last):
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtnode.py", line 373, in
main()
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtnode.py", line 368, in main
driver = XSensDriver()
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtnode.py", line 61, in init
self.mt = mtdevice.MTDevice(device, baudrate)
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtdevice.py", line 29, in init
self.auto_config()
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtdevice.py", line 535, in auto_config
self.GoToConfig()
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtdevice.py", line 209, in GoToConfig
self.write_ack(MID.GoToConfig)
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtdevice.py", line 182, in write_ack
mid_ack, data_ack = self.read_msg()
File "/home/qiangshi/catkin_ws4imu/src/xsens_driver/src/mtdevice.py", line 140, in read_msg
raise MTException("timeout waiting for message.")
mtdef.MTException: MT error: timeout waiting for message.
Besides,there is no topic published.

MTi-10 rostopic output and magfieldmapper_gui

Hi!

I just started to use MTi-10 IMU. And I'm wondering is it only able to output 4 kinds of data ? Which are:

  1. /imu/mag
  2. /imu/dq
  3. /imu/dv
  4. /imu/time_ref

According to the mti_driver ros document page, I tried to echo some other topics like rostopic echo /imu/data or /imu/acceleration, but got nothing (as shown below):
no_message

Besides, I failed to start the magfieldmapper_gui executable to start Magfield Mapper in the magfieldmapper_linux-x64_version.tar.gz :(
Is the magfieldmapper_gui something similar with the Magnetic Field mapping of the inertial data mapping in the Xsens MT Manager (as shown below)?

mapping

Any hint or advice is appreciated. Thanks!

mode 3 and 1 of xsens mti 10 error

hello
i followed your Readme and i succeeded to make it work only in mode -m 2
i am interested in getting the orientation but i have the following error when using :

rosrun xsens_driver mtdevice.py -m 3 -f 50
rosrun xsens_driver mtnode.py _device:=/dev/ttyUSB0 _baudrate:=115200

[INFO] [WallTime: 1487110827.120157] Found parameter: ~device, value: /dev/ttyUSB0
[INFO] [WallTime: 1487110827.121863] Found parameter: ~baudrate, value: 115200
[INFO] [WallTime: 1487110827.122180] MT node interface: /dev/ttyUSB0 at 115200 bd.
Timeout defaults to 0.026s based on output settings.
[WARN] [WallTime: 1487110827.444168] Cannot find value for parameter: ~frame_id, assigning default: /mti/data
[WARN] [WallTime: 1487110827.448107] Cannot find value for parameter: ~frame_local, assigning default: ENU
[WARN] [WallTime: 1487110827.451878] Cannot find value for parameter: ~frame_local_imu, assigning default: ENU
Traceback (most recent call last):
File "/home/toshiba/catkin_ws/src/xsens_driver/nodes/mtnode.py", line 373, in main()
File "/home/toshiba/catkin_ws/src/xsens_driver/nodes/mtnode.py", line 369, in main driver.spin()
File "/home/toshiba/catkin_ws/src/xsens_driver/nodes/mtnode.py", line 112, in spin self.spin_once()
File "/home/toshiba/catkin_ws/src/xsens_driver/nodes/mtnode.py", line 129, in spin_once data = self.mt.read_measurement()
File "/home/toshiba/catkin_ws/src/xsens_driver/nodes/mtdevice.py", line 520, in read_measurement mid, data = self.read_msg()
File "/home/toshiba/catkin_ws/src/xsens_driver/nodes/mtdevice.py", line 140, in read_msg raise MTException("timeout waiting for message.")
mtdef.MTException: MT error: timeout waiting for message.

I am using Ubuntu 14.04
can you help me ?

Mti modes

Hi,
I'm using your node to configure a Mti-30 with ROS Kinetic. I'm interested in a implementation of a pose-estimation system based on the IMU. I understand Mti-30 has a kalman filter for pitch/roll orientation. However if I choose Mti-Mode = 3 I have not information about accelerations, and when I chose Mti-Mode=[1,2] I have not information about estimated pitch/roll angles. ¿ How can I configure to obtain all the information even the free_accelerations ? ¿ Modes are defined based on Mti capacities or can I edit to create a new mode?

------------------------------ Line 476 of mtdevide.py
print "MTi-10/20/30 device detected"
                        if mtiMode == 1:
                                print "Enabled publishing all sensor data"
                                data = mStf+mImuDq+mImuDv+mImuMag+mSw+mOrientationQuat
                        elif mtiMode == 2:
                                print "Enabled publishing all sensor data (rate quantities)"
                                data = mStf+mImuGyr+mImuAcc+mImuMag+mSw+mOrientationQuat
                        elif mtiMode == 3:
                                print "Enabled publishing all filter estimates"
                                data = mStf+mSw+mOrientation
------------------------------```

Intermittent MT error on startup

I am experiencing an intermittent issue with the ROS driver where I get the following error message when I try to run mtdevice.py.

#> ./mtdevice.py
MT error: Ack (0x31) expected, MID  0x36 received instead (after 100 tries)

The issue usually starts when I unplug the device while its running and will not recognize when I plug it back in. The problem usually goes away when I try a different USB port on my computer. To reproduce the issue I usually alternate between unplugging the device and running ./mtdevice.py

I am running this on the following system ...

LSB Version:	core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.4 LTS
Release:	16.04
Codename:	xenial

Issue with MTi 1-series dev kit drivers after firmware update

Hello, I've been using a slightly modified version of these drivers with a MTi 1-series Development Kit (with the MTi-3-8A7G6 sensor) for some time without any problem.

I recently updated the firmware from FW 1.0.6 version to the lates, FW 1.0.12 version and now, when I launch the xsens_driver.launch file I'm seeing the following error:

SUMMARY

PARAMETERS

  • /rosdistro: indigo
  • /rosversion: 1.11.19
  • /xsens_driver/frame_id: imu
  • /xsens_driver/frame_local: ENU
  • /xsens_driver/frame_local_imu: ENU

NODES
/
xsens_driver (xsens_driver/mtnode_new.py)

ROS_MASTER_URI=http://localhost:11311

core service [/rosout] found
process[xsens_driver-1]: started with pid [25162]
[WARN] [WallTime: 1462986141.530980] Cannot find value for parameter: ~device, assigning default: auto
[WARN] [WallTime: 1462986141.531970] Cannot find value for parameter: ~baudrate, assigning default: 0
[INFO] [WallTime: 1462986141.621873] Detected MT device on port /dev/ttyUSB0 @ 115200 bps
[INFO] [WallTime: 1462986141.622076] MT node interface: /dev/ttyUSB0 at 115200 bd.
[INFO] [WallTime: 1462986141.663337] Found parameter: ~frame_id, value: imu
Traceback (most recent call last):
File "/home/gautam/catkin_ws/src/ethzasl_xsens_driver/nodes/mtnode_new.py", line 495, in
main()
File "/home/gautam/catkin_ws/src/ethzasl_xsens_driver/nodes/mtnode_new.py", line 491, in main
driver.spin()
File "/home/gautam/catkin_ws/src/ethzasl_xsens_driver/nodes/mtnode_new.py", line 111, in spin
self.spin_once()
File "/home/gautam/catkin_ws/src/ethzasl_xsens_driver/nodes/mtnode_new.py", line 448, in spin_once
data = self.mt.read_measurement()
File "/home/gautam/catkin_ws/src/ethzasl_xsens_driver/nodes/mtdevice.py", line 390, in read_measurement
mid, data = self.read_msg()
File "/home/gautam/catkin_ws/src/ethzasl_xsens_driver/nodes/mtdevice.py", line 120, in read_msg
if ord(waitfor())<>0xFA:
File "/home/gautam/catkin_ws/src/ethzasl_xsens_driver/nodes/mtdevice.py", line 118, in waitfor
raise MTException("timeout waiting for message.")
mtdef.MTException: MT error: timeout waiting for message.

I'm running these drivers in ROS Indigo and everything was running perfectly with the previous firmware! It seems that after the firmware update the raw messages from the IMU is not being read by the ROS drivers(or maybe they are not in the correct format?).

I also tried testing the IMU in the MT software suite V4.5.4 provided by xsens MT_Software_Suite_Linux_4.5.4 with the latest firmware(FW 1.0.12). Even though I was able to visualize the data from the IMU, I was getting the following out on my terminal window:

./mtmanager
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(351) setLogLevel Log level switched to [ERROR]
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(365) setDebugLevel Debugger output log level switched to [FATAL]
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(207) writeFileHeader Journaller logging to /home/gautam/.local/share/Xsens/mtmanager/xda.log for xda
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(208) writeFileHeader Current log level is [ERROR]
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(212) writeFileHeader Journaller is not using threaded logging
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(365) setDebugLevel Debugger output log level switched to [FATAL]
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(207) writeFileHeader Journaller logging to /home/gautam/.local/share/Xsens/mtmanager/mtmanager.log for MT Manager
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(208) writeFileHeader Current log level is [ERROR]
1462986440.721 <740B4780> [WRITE] /home/builder/.pulse2-agent/data/agents/linux64-agent2/recipes/396918878/base/src/journaller.cpp(212) writeFileHeader Journaller is not using threaded logging
1462986441.328 <3EBE4700> [WRITE] createMasterDevice id: 03880223 firmware version: 1.0.12 build 106 rev 52752

Please let me know if you have any suggestion for me. I'll be happy to provide you with any other information that might be helpful. Thanks in advance!

KeyError: 'SampleTimeFine'

Node is crashing consistently after starting. Using a MTi-G-710-2A5G4.

[WARN] [WallTime: 1469577089.593448] Cannot find value for parameter: ~device, assigning default: auto
[WARN] [WallTime: 1469577089.594456] Cannot find value for parameter: ~baudrate, assigning default: 0
Timeout defaults to 0.020s based on output settings.
[INFO] [WallTime: 1469577090.848241] Detected MT device on port /dev/ttyUSB0 @ 115200 bps
[INFO] [WallTime: 1469577090.848563] MT node interface: /dev/ttyUSB0 at 115200 bd.
Timeout defaults to 0.020s based on output settings.
[INFO] [WallTime: 1469577091.170101] Found parameter: ~frame_id, value: /imu
[INFO] [WallTime: 1469577091.171322] Found parameter: ~frame_local, value: ENU
[INFO] [WallTime: 1469577091.172411] Found parameter: ~frame_local_imu, value: ENU
Traceback (most recent call last):
File "/home/dev/catkin_ws/src/xsens_driver/src/mtnode.py", line 373, in <module>
main()
File "/home/dev/catkin_ws/src/xsens_driver/src/mtnode.py", line 369, in main
driver.spin()
File "/home/dev/catkin_ws/src/xsens_driver/src/mtnode.py", line 112, in spin
self.spin_once()
File "/home/dev/catkin_ws/src/xsens_driver/src/mtnode.py", line 184, in spin_once
time = time_data['SampleTimeFine']
KeyError: 'SampleTimeFine'

MTi-G-710 filter estimates only getting orientation???

Hello,

I'm using MTi-G-710 with ROS. Two days ago it worked pretty well, but starting from yesterday, the filter estimates only getting orientation and missing velocity and position. I deleted the files on my laptop and downloaded again from the repo to make sure the code is right, but it's still having that problem.

Any suggestions about what causing the problem??? Below is my setup:

SUMMARY
========


PARAMETERS
 * /rosdistro: kinetic
 * /rosversion: 1.12.13
 * /xsens_mti/baudrate: 115200
 * /xsens_mti/configure_on_startup: True
 * /xsens_mti/device: /dev/ttyUSB0
 * /xsens_mti/frame_id: xsens
 * /xsens_mti/odr: 1
 * /xsens_mti/output_mode: 3
 * /xsens_mti/use_rostime: True
 * /xsens_mti/xkf_scenario: 1

NODES
  /
    xsens_mti (xsens_driver/mtnode.py)

auto-starting new master
process[master]: started with pid [18472]
ROS_MASTER_URI=http://192.168.31.100:11311

setting /run_id to e13d7adc-9681-11e8-a682-34f39af35331
process[rosout-1]: started with pid [18485]
started core service [/rosout]
process[xsens_mti-2]: started with pid [18492]
[INFO] [1533234522.482688]: Found parameter: ~device, value: /dev/ttyUSB0
[INFO] [1533234522.483868]: Found parameter: ~baudrate, value: 115200
[INFO] [1533234522.484383]: MT node interface: /dev/ttyUSB0 at 115200 bd.
Timeout defaults to 1.010s based on output settings.
[INFO] [1533234522.870719]: Found parameter: ~configure_on_startup, value: True
[INFO] [1533234522.872696]: Found parameter: ~odr, value: 1
[INFO] [1533234522.877465]: Found parameter: ~output_mode, value: 3
[INFO] [1533234522.879254]: Found parameter: ~xkf_scenario, value: 1
[INFO] [1533234522.881285]: Found parameter: ~use_rostime, value: True
[INFO] [1533234522.881881]: Setting ODR (1) and output mode (3)
Timeout changed to 1.010s based on current settings.
MTi-G-700/710 (GNSS/INS) device detected.
Enabled publishing all filter estimates
Device configured at 115200 bps
Baudrate set to 115200 bps
Set to scenario: 1
[INFO] [1533234524.305939]: Found parameter: ~frame_id, value: xsens
[WARN] [1533234524.307501]: Cannot find value for parameter: ~frame_local, assigning default: ENU
[WARN] [1533234524.309245]: Cannot find value for parameter: ~frame_local_imu, assigning default: ENU

I also double checked the mtdevice.py and made sure that the `mtiMode' lines 448-461 are set up to get all the filter estimates data like below:

# Output configuration set based on the product ID and user specification	
		if (deviceIDProductMask[2] == XDIProductMask.MTi100Series) & (deviceTypeMask[2] == XDIProductMask.MTi700Device):
			print "MTi-G-700/710 (GNSS/INS) device detected."
			if mtiMode == 1:
				print "Enabled publishing all sensor data"
				data = mStf+mImuDq+mImuDv+mImuMag+mImuP+mGnssPvt+mGnssSat+mSw+mOrientationQuat
			elif mtiMode == 2:
				print "Enabled publishing all sensor data (rate quantities)"
				data = mStf+mImuGyr+mImuAcc+mImuMag+mImuP+mGnssPvt+mGnssSat+mSw+mOrientationQuat
			elif mtiMode == 3:
				print "Enabled publishing all filter estimates"
				data = mStf+mSw+mOrientation+mVelocity+mPosition+mHeight
			else:
				raise MTException("unknown mtiMode: (%d)."%	(mtiMode))

using filtered orientation together with accleration

in case I set the filter mode parameter to 3 (filtered output) on my MTI-G 700 device, without any GPS connected, I will just receive a filtered orientation estimation. Is there a possibility to achieve any other filtered values (acceleration, position)?

By the way I didn’t get the difference between filter mode 1 and 2. Can anyone help?

Cheers!

Tristan

True heading

Hi,

I currently have the xsens MTi-G-710 which should offer True Heading. However i can't find out where to get this data. Does your node publish this data and if so, in what topic?
If not, any idea where i can start to get this data?

The /mti/filter/orientation data offer a Yaw angle, but it drifts quite alot. I've also tried to calculate true north from the /mti/sensor/magnet topic but since i have a lot of rolling and pitching motion this is quite unaccurate i believe.

(Adding in that i'm fairly new to ROS)
Any help appreciated!

Thanks

KeyError: 'SampleTimeFine'

Device: MTi-30
Firmware: 1.7.2

Error:

Traceback (most recent call last):
  File "/home/nvidia/labs-scv/src/xsens_driver/src/mtnode.py", line 400, in <module>
    main()
  File "/home/nvidia/labs-scv/src/xsens_driver/src/mtnode.py", line 396, in main
    driver.spin()
  File "/home/nvidia/labs-scv/src/xsens_driver/src/mtnode.py", line 131, in spin
    self.spin_once()
  File "/home/nvidia/labs-scv/src/xsens_driver/src/mtnode.py", line 211, in spin_once
    time = time_data['SampleTimeFine']
KeyError: 'SampleTimeFine'

Inspected data, got this

{'Status': {'StatusWord': 3}, 'Timestamp': {'PacketCounter': 23041}, 'Orientation Data': {'Q1': -0.0018019694834947586, 'Q0': 0.1061224490404129, 'Q3': -0.9943498969078064, 'Q2': -0.001756915939040482}}

Time out issue, cannot connect to Device.

Hi,

I have tried to run the node but I was not successful. Here is the log. While I could just use the sensor under normal (none-ROS)executable file and see the output.
Could it have done anything with the baudrate?

$ rosrun xsens_driver mtdevice.py -m 1 -f 100
MT error: timeout waiting for message.

momo@Momo-Lenovo:~/catkin_ws$ rosrun xsens_driver mtnode.py _device:=/dev/ttyUSB0 _baudrate:=115200
[INFO] [1504479547.096812]: Found parameter: ~device, value: /dev/ttyUSB0
[INFO] [1504479547.103987]: Found parameter: ~baudrate, value: 115200
[INFO] [1504479547.105051]: MT node interface: /dev/ttyUSB0 at 115200 bd.
Traceback (most recent call last):
File "/home/momo/catkin_ws/src/xsens_driver/src/mtnode.py", line 373, in
main()
File "/home/momo/catkin_ws/src/xsens_driver/src/mtnode.py", line 368, in main
driver = XSensDriver()
File "/home/momo/catkin_ws/src/xsens_driver/src/mtnode.py", line 61, in init
self.mt = mtdevice.MTDevice(device, baudrate)
File "/home/momo/catkin_ws/src/xsens_driver/src/mtdevice.py", line 29, in init
self.auto_config()
File "/home/momo/catkin_ws/src/xsens_driver/src/mtdevice.py", line 535, in auto_config
self.GoToConfig()
File "/home/momo/catkin_ws/src/xsens_driver/src/mtdevice.py", line 209, in GoToConfig
self.write_ack(MID.GoToConfig)
File "/home/momo/catkin_ws/src/xsens_driver/src/mtdevice.py", line 182, in write_ack
mid_ack, data_ack = self.read_msg()
File "/home/momo/catkin_ws/src/xsens_driver/src/mtdevice.py", line 140, in read_msg
raise MTException("timeout waiting for message.")
mtdef.MTException: MT error: timeout waiting for message.

Thanks.

xsens MTi-300 can’t driver

Hi,
I am using Xsens MTI-300 to get imu data for a sensor fusion application. But I can't install the MTi-300 driver now.I follow the tutorial you gave on this site. My system is ubuntu 16.04 and ros Kinetic Kame.I had the following problem .
How can I solve this problem? Thank you!

Errors on launching the ROS package

Hello,

I have an MTi-G-710 sensor, and it's connected to a Ubuntu 16.04 computer with ROS Kinetic.

When I launch the package, it shows the following errors:

~/ws/research/ros$ roslaunch xsens_driver xsens.launch 
... logging to /home/zongyao/.ros/log/f11847dc-9507-11e8-a682-34f39af35331/roslaunch-x1-7901.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://192.168.31.100:46065/

SUMMARY
========

PARAMETERS
 * /rosdistro: kinetic
 * /rosversion: 1.12.13
 * /xsens_mti/baudrate: 115200
 * /xsens_mti/configure_on_startup: True
 * /xsens_mti/device: /dev/ttyUSB0
 * /xsens_mti/frame_id: xsens
 * /xsens_mti/odr: 400
 * /xsens_mti/output_mode: 3
 * /xsens_mti/use_rostime: True
 * /xsens_mti/xkf_scenario: 1

NODES
  /
    xsens_mti (xsens_driver/mtnode.py)

auto-starting new master
process[master]: started with pid [7911]
ROS_MASTER_URI=http://192.168.31.100:11311

setting /run_id to f11847dc-9507-11e8-a682-34f39af35331
process[rosout-1]: started with pid [7924]
started core service [/rosout]
process[xsens_mti-2]: started with pid [7934]
[WARN] [1533072200.350604]: timeout waiting for message
Traceback (most recent call last):
  File "/home/zongyao/ws/research/ros/src/xsens_driver/src/mtnode.py", line 392, in <module>
    main()
  File "/home/zongyao/ws/research/ros/src/xsens_driver/src/mtnode.py", line 387, in main
    driver = XSensDriver()
  File "/home/zongyao/ws/research/ros/src/xsens_driver/src/mtnode.py", line 77, in __init__
    self.mt.SetCurrentScenario(xkf_scenario)
  File "/home/zongyao/ws/research/ros/src/xsens_driver/src/mtdevice.py", line 373, in SetCurrentScenario
    self.write_ack(MID.SetCurrentScenario, (0x00, scenario_id&0xFF))
  File "/home/zongyao/ws/research/ros/src/xsens_driver/src/mtdevice.py", line 182, in write_ack
    mid_ack, data_ack = self.read_msg()
  File "/home/zongyao/ws/research/ros/src/xsens_driver/src/mtdevice.py", line 141, in read_msg
    if ord(c)<>0xFA:
TypeError: ord() expected a character, but string of length 0 found
[xsens_mti-2] process has died [pid 7934, exit code 1, cmd /home/zongyao/ws/research/ros/src/xsens_driver/src/mtnode.py __name:=xsens_mti __log:=/home/zongyao/.ros/log/f11847dc-9507-11e8-a682-34f39af35331/xsens_mti-2.log].
log file: /home/zongyao/.ros/log/f11847dc-9507-11e8-a682-34f39af35331/xsens_mti-2*.log
^C[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

And my group setting is as follows:

~$ ls -l /dev/ttyUSB0 

crw-rw---- 1 root plugdev 188, 0 Jul 31 16:23 /dev/ttyUSB0

~$ groups

dialout adm lp cdrom sudo dip plugdev lpadmin sambashare libvirtd docker zongyao

I was wondering if someone could help me out?

Does this package support XTi-670?

I had tried this ros package with XTi-700 series and it succeed.
But when I tried it with XTi-670, I got the following message:

$ roslaunch xsens_mti_driver run.launch


[ INFO] [1574323409.286351815]: Scanning for devices...
[ERROR] [1574323409.345365809]: No MTi device found

Position estimate

I'm working with MTi-G-700 GPS/INS, I would like to know how positionEstimate works. I mean the position estimate is a approximation or is more accurate compared to the latitude and longitude data that are published in mti/sensor/gnssPvt??

Support for RAW Data

Hey, I'm with the University of Washington robotics club. We're using one of your MTI-1 or MTI-3 development kit for a NASA contest in the spring, and one of the rules for that contest is that we can't use magnetic data for any of our odometry (because Mars doesn't have a strong magnetic field). I spoke to an engineer on the phone last Fall, Scott I think his name was, who told me this was possible but not part of the default behavior of this ROS node. My understanding is that the IMU does some sensor fusion before publishing the data.

We received what I thought was the MTI-3 Developent Kit from Xsens as part of a sponsorship for our competition, but the physical chip is labeled MTI-1 Dev Kit. Our invoice says it's an MTI-3. I believe either of these works for what we need, but I'm not sure if it changes how the driver is used.

ROS xsens regex error on Ubuntu 14

I'm having an issue running the ros version for Xsens. I have the MTi-G-710 GNSS. I'm having a Ubuntu 14 machine, with gcc and g++ version 4.8. Building the application was not a problem. When I run roslaunch for the default launch file recommend in the readme, it throws an error:
"Terminate called after throwing an instance of 'std::regex_error' what(): regex_error"

I proceeded to upgrade my gcc and g++ version to version 6 and rebuild the Xsens ros package again. The same error still appears.

The roslaunch works fine on my other machine with Ubuntu 16, although initially I had troubles with the package unable to detect my Xsens device. But I need the Xsens to work on the Ubuntu 14 machine.

I am using the latest xsens linux SDK and also recently updated the firmware.

Any help is really appreciated. Thank you!

Xsens MTI-G-700-2A5G4 Drifting largely even when stationary

Hi,
I am using Xsens MTI-G-700-2A5G4 to get imu data for a sensor fusion application and the imu measurements are observed to be drifting largely. I know the position estimation from IMU drift over time but the IMU data in my case makes me feel like the vehicle on which it is mounted is a high-speed train(I did the gravity compensation). I assumed Xsens MTI-G-700-2A5G4 is factory calibrated so this behavior is not expected I guess. Do I need to calibrate it? If yes could you point to some details on the same? Also, can I get raw GPS measurements from the sensor itself using the driver? I haven't tried it outdoors.

mtnode.py throws a bunch of errors

Hey,
I am trying to use this ROS node with my MTi-10, but the ROS node throws a bunch of errors.
the output of rosrun xsens_driver mtnode.py _device:=/dev/xsens _baudrate:=115200 is


[INFO] [1498865061.446497]: Found parameter: ~device, value: /dev/xsens
[INFO] [1498865061.447545]: Found parameter: ~baudrate, value: 115200
[INFO] [1498865061.447719]: MT node interface: /dev/xsens at 115200 bd.
Traceback (most recent call last):
  File "/home/spacemanspiff/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtnode.py", line 373, in <module>
    main()
  File "/home/spacemanspiff/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtnode.py", line 368, in main
    driver = XSensDriver()
  File "/home/spacemanspiff/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtnode.py", line 61, in __init__
    self.mt = mtdevice.MTDevice(device, baudrate)
  File "/home/spacemanspiff/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtdevice.py", line 23, in __init__
    writeTimeout=timeout)
  File "/usr/lib/python2.7/dist-packages/serial/serialutil.py", line 180, in __init__
    self.open()
  File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 311, in open
    self._update_dtr_state()
  File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 605, in _update_dtr_state
    fcntl.ioctl(self.fd, TIOCMBIS, TIOCM_DTR_str)
IOError: [Errno 22] Invalid argument

I did check the file permissions , everything seems to be alright. The output of ls -l /dev/xsens
is lrwxrwxrwx 1 root root 7 Jun 30 15:57 /dev/xsens -> ttyUSB0

Thanks

Timeout exceed using odr: 10 and output_mode: 3

I'm using v4.0.0 and have noticed that timeout is not enough for odr: 10 and output_mode: 3 configuration entries on xsens.yaml. The other output modes are working fine at the same odr: 10. I'm testing a MTi-30 under xkf_scenario: 39 and baudrate: 115200 and even tried this in other computers.

Finally, I've changed additionalTimeOutOffset from "0.010" to "0.020" and it worked. Could anyone explain what is happening once output_mode 3 has fewer data than mode 1 or 2?

Connection issues

Hi, I am trying to run your ros node but getting the following error messages:
If I run xsens_driver alone using:

rosrun xsens_driver mtdevice.py -m 2 -f 10

I get the error:

TypeError: ord() expected a character, but string of length 0 found

If I first run the awindamonitor from your mtsdk examples, 'enable' and undock a sensor (so it shows on the connected MTw list) I get the error

MT error: could not find message.

(also once I run the xsens_driver, the awindamonitor stops responding)

The dock is plugged into my computer and have tried running xsens_driver both with sensors docked and undocked, the error is the same.

Any help appreciated! Thanks :)

MTi3-DK - Timeouts only on 100 Hz

Hi,

I keep getting timeout messages on the MTi3-DK, but only when the update rate is set to 100 Hz. At 50 Hz, it works properly.

It still seems the board is giving me proper 100 Hz output, albeit the abnormally long fetch times. The values still seem appropriate though. This does not happen with the included examples in the MT SDK (when run on Windows 10 on the same machine, anyway).

It seems to only happen in modes 1 and 2 (i.e. raw data), and not in mode 3.
Edit: The irregular timing still seems to happen in mode 3, but the waitfor(length+1) does not timeout.

I added some extra code and found that it seems to happen approximately at 22-23 Hz, and that the apparent time to receive these messages is bimodal, with the two times being roughly 0.039 s and 0.045 s. This is obviously much longer than the interval for 50 Hz (0.020 s), which works correctly and has
a constant time between packets! The interval between these events looks fairly random but spreadout. I have attached an Excel spreadsheet with this data. Sheet 1 details apparently timed out messages, and sheet 2 details the time taken per message (for all messages).

Edit:
The sequence is something like 10 us, 10 us, 10 us, 10 us, 39 ms, 10 us, 10 us, 10 us, 10 us, 44 ms.
For mode 3, the sequence is something like 10 us, 10 us, 30 ms.

I have narrowed it down to being these two waitfor():

# second part of preamble
waitfor(3) 		
# read contents and checksum
waitfor(length+1) 

According to the code, there should be 2 waitfor() called per read_msg() if everything runs properly. In my spreadsheet, I see 200 calls per second, so this lines up appropriately.

I've had a look through the code and I'm not sure why exactly this behaviour occurs.

Timeout.zip
(For some weird reason, it straight up wouldn't let me upload an Excel file even though it says they're supported)


Edit:
I've done some more investigating, it seems that the it only happens in the waitfor(length+1). It seems to be stalling when reading data into the buffer for whatever reason. A seemingly arbitrary number of bytes seem to get read in before a stall. Once the stall is over, the rest of the bytes magically come flooding in all at once.

I forgot to mention, but I am using ROS Melodic on Ubuntu 18.04, and the MTi3 is running firmware 1.2.7. I have spent quite a bit of time digging, and I simply cannot find the culprit. I am using Python 2.7.15 and PySerial 3.4.

unable to get /filter/twist data

Hello, I am working with Xsens MTi-670 model of IMU in Ubuntu 18.04 platform and trying to get /filter/twist data. There is no data in the topic name /filter/twist. Could anyone please suggest to me how to fix this issue?

Regards,
AJay

Mti-1 Development board

Hi I am trying to run the Mti1 (Motion Tracker Development Board). I got the everything setup and I use the following commands
scrubba2@scrubba2-desktop:$ rosrun xsens_driver mtdevice.py -m 3 -f 10 Timeout defaults to 0.110s based on output settings.
Device intiated at 10 Hz
Timeout changed to 0.110s based on current settings.
MTi-1/2/3 device detected
Enabled publishing all filter estimates
Device configured at 115200 bps
scrubba2@scrubba2-desktop:
$ rosrun xsens_driver mtnode.py _device:=/dev/ttyUSB0 _baudrate:=115200
Traceback (most recent call last):
File "/home/scrubba2/catkin_ws/src/xsens_driver/src/mtnode.py", line 373, in
main()
File "/home/scrubba2/catkin_ws/src/xsens_driver/src/mtnode.py", line 369, in main
driver.spin()
File "/home/scrubba2/catkin_ws/src/xsens_driver/src/mtnode.py", line 112, in spin
self.spin_once()
File "/home/scrubba2/catkin_ws/src/xsens_driver/src/mtnode.py", line 129, in spin_once
data = self.mt.read_measurement()
File "/home/scrubba2/catkin_ws/src/xsens_driver/src/mtdevice.py", line 552, in read_measurement
mid, data = self.read_msg()
File "/home/scrubba2/catkin_ws/src/xsens_driver/src/mtdevice.py", line 144, in read_msg
waitfor(3)
File "/home/scrubba2/catkin_ws/src/xsens_driver/src/mtdevice.py", line 134, in waitfor
raise MTException("timeout waiting for message.")
mtdef.MTException: MT error: timeout waiting for message.

However , the above problem doesn't occur if I use

scrubba2@scrubba2-desktop:~$ rosrun xsens_driver mtdevice.py -m 2 -f 10

and then run
rosrun xsens_driver mtnode.py _device:=/dev/ttyUSB0 _baudrate:=115200

but I want the angular velocity and angular acceleration as well from the IMU and hence want to use mode 3 instead of 1 and 2. ( -m 2 -f 10)

Timeout and covariance questions and solutions

User reported cloning the repo and running the node and the following commands with the IMU hardware (MTI-300) -
rosrun xsens_driver mtdevice.py -m 2
rosrun xsens_driver mtdevice.py -f 80
rosrun xsens_driver mtnode.py

User Question #1) The node crashes after a few seconds with error "mtdef.MTException: MT error: timeout waiting for message".

Explanation/Solution: The timeout error usually happens in a slow system or when there are lots of parallel processes running. You might be able to play with the ‘additionalTimeOutOffset’ parameter in the mtdef.py script to avoid the timeout.

User Question #2) The covariances for all data (orientation, angular vel., linear acceleration) are published as 0, instead we would like to use actual values or at least a way to set them from a launch file using parameters.

Explanation/Solution: The covariance are not output by the filter and so it is set to zero. For values available, you may adapt the mtdevice.py script to publish values you want.

the differences with MVN Studio

Hi, thanks for the nice driver. I plan to buy MVN Link or MVN Awinda. I want to confirm some questions listed as below.

  1. Is this ROS driver for both two hardware versions (MVN Link and MVN Awinda)? We can use it without any licenses, and we just need the MVN Link or MVN Awinda hardware, right?
  2. You know the main hardware is the inertial sensor. Are there any differences (for example IMU drift) between sensor data from xsens_mti_ros_node and MVN Studio? The xsens_mti_ros_node give us the raw data or filtered data?

MTi-G-710 Launch Error :process has died

I am using Mti-G-710 in ros-kinetic .And I do the process as it says in https://github.com/xsens/xsens_mti_ros_node but when I do the step of "roslaunch xsens_driver xsens.launch",An error occured as following:

[xsens_mti-1] process has died [pid 6465, exit code 1, cmd /home/admin1234/catkin_ws3/src/xsens_driver/src/mtnode.py __name:=xsens_mti __log:=/home/admin1234/.ros/log/212d9eda-952c-11e8-a8d2-00216bec87bd/xsens_mti-1.log].
log file: /home/admin1234/.ros/log/212d9eda-952c-11e8-a8d2-00216bec87bd/xsens_mti-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

I search the forum of base but haven't got good solution.What should I do to solve the problem?Thank you!
screenshot from 2018-08-01 09-48-29

TF does not work

Hello!
I make a tf world>base_link with /mti/sensor/imu.
then a static tf transform base_link>laser
The second tf does not work I get
From frame laser: No transform to fixed frame world.
If i use other imu brand works fine.

Timeouts and message fragmentation

Hello I have been working with this sensor for a few weeks, and I am running into some synchronization issues with the driver.

I have the device calibrated to:

  • 115200 baud
  • output:
    • orientation: 50hz
    • angular velocity: 50hz
    • linear acceleration: 50hz

Examining the output of the device in mtmanager, the messages are small enough where they fit in a standard message.

The issue I am having is that I need to run the driver at any less than 50hz or it fragments messages like the image below:

screenshot from 2018-01-18 22-00-25

I am in a pretty constrained system, and I don't want to run it that fast, but I do need smooth output from the driver to make our sensor fusion work.

I tried slowing down the publishing rate in the sensor firmware, but what I noticed is that it fragments mti messages into two messages at the device level, which causes the same issue of splitting the data at the driver level.

What I would like to do with the device is run it at ~15 Hz, and have the 3 sets of data output in one message. Is there something I am missing, or something I can modify in the driver/firmware to make this work?

Usage of Filtered Orientation and Original Acceleration

Hello @arunvydhya
I am using xsens G710-2A8G4, and I would like to know if it is possible to obtain both filtered orientation and original acceleration using your python node. I was able to get rostopic echo /mti/sensor/imu with the output like this:

header:
seq: 3010
stamp:
secs: 1540801612
nsecs: 818232059
frame_id: "xsens"
orientation:
x: 0.0150714591146
y: -0.00283857248724
z: 0.968756854534
w: 0.247538030148
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
x: 0.0
y: 0.0
z: 0.0
angular_velocity_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
linear_acceleration:
x: 0.0
y: 0.0
z: 0.0
linear_acceleration_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

However, whichever parameter I chose (rosed xsens_driver xsens.yaml, to change the output mode among 1, 2, 3) in the xsens.yaml, the accelerations remained zeros. Will you please give me some indications?

Reset Device for Calibration

Hi Everyone

I am using the IMU Mti-3 (development kit) version in ROS. I am using the filter VRU which provides me with unreferenced Yaw. I am using the IMU data in AMCL planner for mobile robots.

At the beginning when the robot is turned on, I would like to do the following things

  1. Reset the Gyroscope and Accelerometer to zero in order to calibrate as I know that my robot is stationary
  2. Reset the Heading for the Yaw reading to zero ( i don't know what that value would be in Quaternion form)

Problem to visualize GPS data

I'm working with a rover that has inside a MTi-G-700 GPS/INS and it's connected to a PC embedded with Linux. I have installed the drivers and I did what is written in the README.txt,the node runs correctly but it doesn't publish the GPS data (all the data are set to 0.0); how I can configure the MTI??? I'm sure the MTI works because I'm using MT Manager for Linux (the software suite provided by Xsens) and I see the data and the satellites.

MTi-G-710 output mode: would it be possible to get filter and sensor data together?

Hello,

I have the MTi-G-710 sensor, and running it with the ROS package. I notice in the xsens.yaml, it can either be configured to collect sensor data or filter estimates data with the following:

# Output data mode
# 1: sensor data
# 2. sensor data w/ rate quantities
# 3: filter estimates
output_mode: 3

I was wondering if it's possible to collect the sensor and filter estimates data together? If so, how would I do it? Thanks!

timeout: catch exceptions

I have been facing timeout exceptions which make the node crash.
mtdef.MTException: MT error: timeout waiting for message.
From function read_msg in mtdevice.py
Could exceptions be caught so the node can keep running?
I'm using a Xsens MTi-300 IMU. Timeouts happen from time to time (don't know why yet).
Behavior can be tested by manually setting autoconf=False and a small timeout value.

set up exclusive access to serial port

If another process accidentally opens the serial port, bad things happen.

def __init__(self, port, baudrate=115200, timeout=0.1, autoconf=True,
config_mode=False):
"""Open device."""
self.device = serial.Serial(port, baudrate, timeout=timeout,
writeTimeout=timeout, rtscts=True, dsrdtr=True)
self.device.flushInput() # flush to make sure the port is ready TODO
self.device.flushOutput() # flush to make sure the port is ready TODO
## timeout for communication
self.timeout = timeout
if autoconf:
self.auto_config()
else:
## mode parameter of the IMU
self.mode = None
## settings parameter of the IMU
self.settings = None
## length of the MTData message
self.length = None
## header of the MTData message
self.header = None
if config_mode:
self.GoToConfig()

Can we add something like stackoverflow to set up exclusive access to the serial port?

MT error: Ack (0x31) expected, MID 0x36 received instead (after 100 tries)

Hi
I have an MTi-20 using the USB cable from the dev kit. Most of the time when powering up the robot that the IMU is in it works perfectly.

Every 20 (or so) power cycles I can not communicate successfully with the IMU.

When sending commands instead of getting an ACK of 0x31, I get a MID 0x36 received (see below).

In order to get the IMU to work again I need to power cycle it.

Any ideas what causes that response?


[WARN] [1535127391.286388]: timeout waiting for message
[WARN] [1535127391.586306]: timeout waiting for message
Traceback (most recent call last):
File "/home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtnode.py", line 392, in
main()
File "/home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtnode.py", line 387, in main
driver = XSensDriver()
File "/home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtnode.py", line 61, in init
self.mt = mtdevice.MTDevice(device, baudrate)
File "/home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtdevice.py", line 29, in init
self.auto_config()
File "/home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtdevice.py", line 535, in auto_config
self.GoToConfig()
File "/home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtdevice.py", line 209, in GoToConfig
self.write_ack(MID.GoToConfig)
File "/home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtdevice.py", line 187, in write_ack
" (after 100 tries)."%(mid+1, mid_ack))
mtdef.MTException: MT error: Ack (0x31) expected, MID 0x36 received instead (after 100 tries).
[xsens_mti-1] process has died [pid 27966, exit code 1, cmd /home/pipe/radPiper2/catkin_ws/src/xsens_mti_ros_node/src/xsens_driver/src/mtnode.py __name:=xsens_mti __log:=/home/pipe/.ros/log/d223e990-a7b2-11e8-9f36-7085c21558ec/xsens_mti-1.log].
log file: /home/pipe/.ros/log/d223e990-a7b2-11e8-9f36-7085c21558ec/xsens_mti-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Please, correct quaternion mismatch in mtnode.py

in mtnode.py:
252 imu_msg.orientation.x = orient_data['Q0']
253 imu_msg.orientation.y = orient_data['Q1']
254 imu_msg.orientation.z = orient_data['Q2']
255 imu_msg.orientation.w = orient_data['Q3']
replace with:
252 imu_msg.orientation.w = orient_data['Q0']
253 imu_msg.orientation.x = orient_data['Q1']
254 imu_msg.orientation.y = orient_data['Q2']
255 imu_msg.orientation.z = orient_data['Q3']

Thanks,

mti-7dk

hallo,sir. i use the xsens mti-7-dk. and i git clone your code.
when i finish the step"roslaunch" the terminal tell me cannot find the value for parameter -linear_acceleration and orientation comvariance_diagonal

Cannot find Device on NVidia Jetson Nano

Hello,

I have Xsens MTi-30 imu. I use it on Nvidia Jetson Nano with Ubuntu 18.04.02
Jetson Nano can recognize Mti-30 by typing lsusb

Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 008: ID 2639:0003 Xsens MTi-30 AHRS
Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

However, i couldn't find it in /dev

So here are how i already tried:

  1. build and install xsens_mt manually
  2. download from dpkg xsens_mti_ros_node packge or build from source
  3. sudo chmod 777 /dev/bus/usb/001/004
  4. add the rule into /etc/udev/rules.d/

KERNEL=="ttyUSB*", ATTRS{idVendor}=="2639", ATTRS{idProduct}=="0003", MODE:="0777", SYMLINK+="xsense"

or

BUS=="usb", ATTRS{idVendor}=="2639", ATTRS{idProduct}=="0003", MODE="0666", SYMLINK+="xsens_mti"

All these method did not work!

So could you please help me with this problem?
Thank you!!!

ttyUSB0 does not exist

I am trying to connect a FMT1030 device on a development/evaluation board to my Jetson TK1 embedded system. However, once I enter the following line:
rosrun xsens_driver mtdevice.py -m 1 -f 100
I get the following error:
'MT error: unable to open /dev/ttyUSB0'

The folder does not seem to exist on the system. lsusb shows the device is connected however

Unfortunately have not been able to find a 32bit software suite for the FMT1030 but I have downloaded the prerequisites from this repository. Not sure if this would be the issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.