IMU to calculate XYZ coordinates in 3D - Survey tool

Hi,

I am looking to measure xyz co-ordinates (accurate to 1-2 centimetres) of each fixing point, of a new shade sail.

The device I aim to use is the Sparkfun 9DOF IMU.

From what I understand, as time goes on, errors result, and they build up pretty quickly unless I can use a GPS or some kind of filter…?

Just wondering if you guys could point me in the right direction… I am a mech engineer with a little experience with matlab and C++, not much else.

Is this a project I could follow along myself?

The time between measurements would be 30 seconds to 2 minutes, with the possibility to ‘‘zero’’ the z axis (vertical) using the ground, directly beneath each fixing.

There would be at most 6 fixing points to measure xyz data.

Thanks for your help in advanced, I will share results/failures as I go :slight_smile:

Hi Shadeform_Sails,

The [9DoF Razor could work for this application but will require processing the IMU data to get positional data. The stock [firmware only prints the calculated data from each of the sensors on the board. The firmware does calibrate the IMU for 8-seconds on powerup but you are correct, there will be some drift in the yaw data from the magnetometer. You can account for this by offsetting it in your code or you can use GPS data. Unfortunately, we do not have any documentation available to help you with that.

The [Using the MPU-9250 DMP Library section of the Hookup Guide will go over the various functions in our Arduino library you could use for this project.

This [blog post may have some helpful information for using the MPU-9250 in this project as well. I hope this helps you get started with this project.](Having Fun and VR Gaming with the Razor IMU - News - SparkFun Electronics)](https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide#using-the-mpu-9250-dmp-arduino-library)](9DOF_Razor_IMU/Firmware/_9DoF_Razor_M0_Firmware/_9DoF_Razor_M0_Firmware.ino at v30 · sparkfun/9DOF_Razor_IMU · GitHub)](https://www.sparkfun.com/products/14001)

HI Mark,

Thank you very much for your help, it is much appreciated.

I will take a look at the blog article you posted, it looks promising!

Regards,

Josh

I am looking to measure xyz co-ordinates (accurate to 1-2 centimetres) of each fixing point

Most people interested in robotics have this idea sooner or later, but that goal is simply not possible to achieve with consumer grade IMUs. If it were, you would be able to buy cheap 3D "position sensors" for next to nothing.

This tutorial explains the problem clearly: http://www.chrobotics.com/library/accel … n-velocity

But, you will discover that soon enough, if you try it yourself.

you will discover that soon enough, if you try it yourself.

Hmmm, you may have saved me a lot of time, thank you!

you would be able to buy cheap 3D “position sensors” for next to nothing.

That is true, I just thought it could be an untapped market.

Or at least a new market, once the tech is there (at a good price).

Hey there,

I assume you are trying to determine post positioning. I suggest doing some simple trigonometric calculations and using a [laser range finder.

Trying to determine position with an IMU would require high sampling rates, accurate timing, and a lot of post-processing to integrate the positioning from the data (not exactly simplest to code up; don’t use a simple step integration method). That isn’t even considering the digital motion processing (DMP) to get accurate data values. For user experience, you would also need slow steady movements for the sensors. I don’t really advise using an IMU.

If you are expecting to be in relatively open environments (no wall or trees within at least 50 ft.) … you could use GPS coordinates from an RTK capable GPS receiver. However, I think some math and using a laser range finder or marking string is your best option.](https://www.homedepot.com/p/Bosch-BLAZE-100-ft-Laser-Distance-Measurer-GLM-30/205910686)

RTK by GPS looks pretty promising.

Thanks for the suggestion!!!

Yeah a laser measurer is also a viable option, but probably more difficult to get desired results.