Continue to Site

# Need guidance for horizontal positioning of a plane using a IMU

Status
Not open for further replies.

#### cybertooth

##### New Member
Hello everyone. I am fairly new to Arduino. I am trying to make a device which could be mounted on a stick to find the horizontal plane.I have read a lot about IMU sensors and have made a digital compass using MPU 6050. I have noticed that the readings tend to change even on a stationary surface i have used kalman filter in the code and it gives some stabilization . I have come across BNO055 sensor which claims to give an absolute reading also invesense has an IMU 9050.
My Doubts:
1) Are BNO0055 and invesense9050 better sensors.
2) Is it practically possible to get a true horizontal position with an IMU sensor. ie x=180,y=0,z=0.

It's impossible to get any absolute value. There will always be an error. Just deside what error you can work with and aim for that. In your example would 1/10th of a degree be acceptable?

Mike.

You only need a 2-axis accelerometer to find what is level. Many accelerometers are 3-axis, so you may end up using one of those. There is no advantage in having a device that measures magnetic fields or angular velocities as well.

An accuracy of 1 mg (1/1000 g, or 0.01 m/s2) will give you an angular accuracy of 1/20 of a degree.

Most accelerometers will have a noisy output that is improved by filtering for the speed of response that you want.

You also need to look at the temperature dependence of the signal. The Bosch BNO055 quotes a typical +/- 1mg/C so that would give you 0.5 degrees of angular error for a 10 deg C change. The LIS3DHH made by ST is better for that, as it's maximum shift is +/- 0.4 mg / C

Is it practically possible to get a true horizontal position with an IMU sensor. ie x=180,y=0,z=0.
Use two; put them as far apart as possible; arrange for your centre of rotation to be between the two as near as is practicable.

Try and find a local engineering company that has a calibrated surface plate they'll let you use when it comes to calibrating your device.

Last edited:
Thanks everyone.
0.5 degrees of angular error for a 10 deg C change is acceptable but as mentioned by Diver300 LIS3DHH made by ST is better. I checked online and it is available as

### LIS3DHH DIL24 Socket Accelerometer Sensor Adapter Board.​

Want to know if it works with arduino . I have a space constraint also so would like the sensor to be as small as possible. Any idea about the size of the adapter board.

The adapter board is made to fit a DIL24 pattern; two rows of 12 pins on 0.1" spacing between pins, and the rows 0.6" apart; the overall adapter is likely about 1.2" x 0.7"; 28 x 18mm approx.

The height is not mentioned, at a guess probably about 8 - 10mm. You could de-solder the pins and just use the PCB with wires attached, taking it down to 2 - 2.5mm

There appears to be Arduino support; some info here:

The commoner LIS3DH is readily available on various smaller adapter boards for hobby use, but it appears no one is making any other adapter for the DHH version.
It is also well supported on the Arduino.

Just a few examples for LIS3DH:

Status
Not open for further replies.