IMU data from Reach Kit

Has anyone had any luck with this? I am far from a professional developer, but need access to IMU data for a robotics project I am working on for school. I have downloaded the drivers from: http://www.invensense.com/developers/software-downloads/#sla_content_209. There is mllite_test.c source file in there that throws an error stating that msp430.h file cannot be found. I can’t find it anywhere in the zip file. I need some kind of sample source so that I can see how to acquire the data for the IMU and append it to the RTK data that we will be sending to our ROS system. Any help would be greatly appreciated. Thanks

also, I can’t find the MPUtest mentioned above by Igor. I found mpu_test in /usr/bin/mpu_test, but it is an executable that just returns mpu_sensor:passed. Does that start the IMU?

Nevermind, we found a solution here: https://github.com/egorf/MPUtest/blob/master/MPU9250.cpp

Is there any update on this? Will Reach Kit provide IMU data?

Russell_Plenkers’ solution basically works, but it will get lost when upgrading the firmware.

1 Like

I would very much appreciate it if someone could provide some more detailed help on how to access the IMU data form the reach.

Can I access the data over USB? or do I need to use the pins? What am I supposed to download from the Invensense (seems the link might be old)?

The main reason we purchased a reach module was for fusing IMU and GPS for navigation.

You could take https://github.com/egorf/MPUtest and build it inside your Reach. This is an example how to get data. Now it’s up to you how you get the data outside. You could just use ssh and pipe it to somewhere:
ssh root@192.168.1.xx "/home/root/MPUtest/MPUtest" | someprogram here

If you come up with a better solution, let me know.

3 Likes

thanks for the clarification. But how can I find the password to root for the ssh?

By the way, I’m assuming you are talking about the reach module (and not reach RS).

Yes, talking about the module. The password is emlidreach (which is not easy to find from the spec).

Thanks! I will try and report back if I get it to work. I also found some information here: Getting IMU data

edit: where in the specs did you find the password?
edit2: it’s mentioned in the reachView documentation: https://docs.emlid.com/reach/common/reachview/

That’s actually wifi password which is mentioned there. Yes, this is the same. But I probably found the information here: https://github.com/emlid/reach-docs/blob/old-docs/docs/software-development.md (too bad this page is not available any more).

Has anybody tried to get the IMU data from reach kit?
How can I do it from putty? Can someone gimme a brief? Is it tough process?

Same question, would need the IMU data for a robotics project

@igor.vereninov, I would also be interested in the raw IMU data from the MPU9250 for use in post processing the nav solution of a point on the vehicle. It would be good enough for me if the full 200Hz data could be logged onboard or externally. Has anyone successfully done this ?

I got this to work quickly using this code:


For a quick test:
pip install spidev

change line 6 in IMU.py to
imu = MPU9250(spi_bus_number = 5, spi_dev_number = 1)

and run python IMU.py
will output the sensor values until you abort
e.g.
Acc: -0.006 +0.081 +0.990 Gyr: +2.317 +1.098 +0.854 Mag: +37.691 +14.026 +21.0451

2 Likes

Can you give the novice guide to how you used the python code to start getting data out of the reach? How did you connect, where did you store and run? Thx.

…success after messing around with it for a little bit.

Steps for someone else:
logged into the reach as root:
used a file manager window and connected to the reach as a server.
copied the files (modified as above) into a new directory /imu
SSH into the reach root@xxx.xxx.xx.xx
cd in /imu
python IMU.py
started spitting out numbers the look reasonable. Need to figure out how to make sence of the Gyr and Mag readings.

Seems like you could modify the script to send these values to a TPC address/port and get the numbers out in a stream.

1 Like

ANyone know a good way to convert the output to roll pitch yaw? I am getting the following output following ago’s method

.
.
.
Acc: +0.047 -0.003 +0.994 Gyr: -0.915 +0.183 +0.610 Mag: -11.795 +4.275 -78.898
Acc: +0.055 +0.004 +1.010 Gyr: -0.854 +0.061 +0.549 Mag: -11.795 +4.275 -78.898
Acc: +0.047 -0.007 +1.009 Gyr: -0.671 -0.122 +0.610 Mag: -11.795 +4.275 -78.898
Acc: +0.048 -0.013 +0.980 Gyr: -0.732 -0.061 +0.427 Mag: -9.293 -0.356 -77.175
Acc: +0.056 -0.007 +1.006 Gyr: -0.793 +0.183 +0.427 Mag: -9.293 -0.356 -77.175
Acc: +0.054 -0.008 +1.006 Gyr: -0.915 +0.000 +0.427 Mag: -9.293 -0.356 -77.175
Acc: +0.057 -0.010 +0.992 Gyr: -0.854 +0.000 +0.488 Mag: -9.293 -0.356 -77.175
.
.
.

Do a lot of math…or use RTIMULib2, which does all of the math for you. Search for other posts on the forum for the IMU and using the RTIMULib2 implementation to get useful data out.

Here’s how I did it. https://github.com/87yj/EmlidIMU

There’s also a RTIMULib2 branch on the forum that’s parsed out all of the GUI stuff.

3 Likes

We’ve made some ROS node to get IMU values out of the reach. We tested it successfully for reach M+. It’s based on the RTIMULib2 that we compiled for the reach, for reasons we were not able to compile directly on it. Let us know if there are issues we’ll update the readme and make the required edit to the code. This outputs IMU message (Pose + Gyros + Accel) and the Compass as a MagneticField message.

4 Likes

Hello,

I’m using your code for a moment but now I need to get the IMU data WITH the GPS data on the serial ouput (with OTG). Did you find a solution to do this?

Thanks,

Jimmy

Hi All,

Is there any update on when these data might be available alongside the GPS to download through the wifi interface (or some other way)?