Go Down

Topic: Need help picking an IMU for a quadcopter project (Read 5 times) previous topic - next topic

GoussLegend

Hi all,

First post here! I am going to build my own quadcopter and I am currently checking IMUs. Basically, the IMU that I am looking for:


  • will be used with an Arduino MEGA

  • won't be super expensive (not over 60$ I guess)

  • I would prefer if the IMU would give me the corrected value of the 3 angles and 3 positions. I know there is a lot of code out here to design a Kalman filter or a complementary filter from the raw data but I think I will have enough other problems while building the quad so I prefer to keep it simple for the IMU.  :)



I have seen some on the Sparkfun website : https://www.sparkfun.com/categories/160 , but I couldn't choose one.. :smiley-roll-sweat:

Any advice would be greatly appreciated,
Thanks!

Mariduino

#1
Jul 11, 2013, 08:07 pm Last Edit: Jul 11, 2013, 08:09 pm by Mariduino Reason: 1
Hey !

I use the GY-80 (not for a quad copter though). It's cheap, it had everything you want and it's precise enough with a good filter. Nevertheless, I only used it to follow the orientation for now so I don't really now how it is for position.

Take care to choose an IMU with accels, gyroscopes AND a compass or you won't be able to have a good yaw measure because of the gyro's drift. It's a huge problem, the drift =P. Pressure sensor as well to know the altitude.
Actually, no sensors will be able to give you a precise measure directly from the raw data because of the gyro's drift I just told you about. The drift is something that happen "within the sensor" so you can't get rid of it without using a filter. You'll have to do some computation on the raw measurements. Even if it's just some comparisons between accels, gyros and compass. You know complementary filter is really an easy thing, really simple to implement and understand and as good as Kalman filter for what you want to do ;). Even more easy since people already programmed it and the source code is on github ...  :P

After that, it's about how precise you want your sensor to be. You can read the datasheets or let prices decide for you  :smiley-mr-green:.

GoussLegend

Thanks for the reply!

Yeah i was planning on buying an IMU with a compass (9 DOF). Does the pressure sensor realy help though? Is it that accurate?

Also I was also worried (but I don't have any estimate..) that it would be time consumming for the main arduino to compute the corrected value for position and orientation and I thought then that it will be better if it was handled by an another card. But I guess if I implement only a complementary filter it won't be that much.

Mariduino

I didn't play that much with the pressure sensor so I can't tell for sure if it's accurate or not. Told you I don't use it for a quadcopter so I don't need to use all the GY-80 components :~

Anyways, the complementary filter is really fast. That kind of computation are common for arduino. What's the point in doing this with another card ? I think, you even take a chance to be slower since you have to transfer the data =P.

GoussLegend


What's the point in doing this with another card ? I think, you even take a chance to be slower since you have to transfer the data =P.


When I said "another card" I meant that the calculations could have been done by some processor on the IMU card, not on a third card  :P

Mariduino

Ho ! Sorry for the misunderstanding.
Yes it probably could but it is also probably more expensive =~ ...

Chagrin

The BMP085 is very precise (2cm precision) but not very accurate. Wind affects it greatly so it needs a stable environment or some kind of windscreen.

When you buy your IMU make sure it's 5V capable or you'll need to add an additional level translator. Assuming you're looking at the cheap boards on eBay, on the board you should be able to identify a small, 6 pin, 3.3V voltage regulator and and even smaller, 6 pin I2C level translator.

GoussLegend

Quote
Wind affects it greatly

Yeah that could be a problem, especially when the quad is flying at high speed!

My budget for the IMU is something less than 50$. Since it will be (at first) the only sensor on the quad, and the environnement could be harsh (lot of vibrations from the motors for the instance) I thought it will be worth to spend more than 10$. I have seen this one https://www.sparkfun.com/products/11486 which doesn't look bad.

Chagrin


I have seen this one https://www.sparkfun.com/products/11486 which doesn't look bad.

It's extremely overpriced. The bare chip is $13 in singles. And something else to watch out for is the logic level; the Sparkfun board requires 3.3V power and signals; a board like this one has a level translator on it and will work fine with a 5V Arduino.

GoussLegend

Yeah I have seen MPU-9150 breakout bord at cheaper prices (here for instance => http://www.drotek.fr/shop/en/home/153-mpu9150-gyro-accelerometer-magnetometer.html)

Quote

the Sparkfun board requires 3.3V power


I thought the Arduino had a pin "3,3V" to supply 3,3V, and a pin "5V" to supply 5V ?

Ufoguy


Yeah I have seen MPU-9150 breakout bord at cheaper prices (here for instance => http://www.drotek.fr/shop/en/home/153-mpu9150-gyro-accelerometer-magnetometer.html)

Quote

the Sparkfun board requires 3.3V power


I thought the Arduino had a pin "3,3V" to supply 3,3V, and a pin "5V" to supply 5V ?


Yeah, but the digital pins are able to supply only 5v which may damage the IMU.
If you want to meet a beautiful nurse you must be patient.

Ufoguy


Yeah I have seen MPU-9150 breakout bord at cheaper prices (here for instance => http://www.drotek.fr/shop/en/home/153-mpu9150-gyro-accelerometer-magnetometer.html)

Quote

the Sparkfun board requires 3.3V power


I thought the Arduino had a pin "3,3V" to supply 3,3V, and a pin "5V" to supply 5V ?


Yeah, but the digital pins are able to supply only 5v which may damage the IMU.
If you want to meet a beautiful nurse you must be patient.

GoussLegend


Yeah, but the digital pins are able to supply only 5v which may damage the IMU.


Hum there is something that I definetely don't understand here, on the Uno webpage (http://arduino.cc/en/Main/ArduinoBoardUno) it says:

Quote
3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.


Anyway the breakout board (http://www.drotek.fr/shop/fr/home/153-mpu9150-gyro-accelerometre-magnetometre.html) can be powered with either 3.3V or 5V but I still would like to understand  :)


Another question for IMU, What is the best way to fix it on the quadcopter frame. I see a lot a people use double side tape and foam (instead of screws) to reduce the vibration induced from the motors. But can I apply directly the double side tape on the board?  :smiley-roll:

Ufoguy



Yeah, but the digital pins are able to supply only 5v which may damage the IMU.


Hum there is something that I definetely don't understand here, on the Uno webpage (http://arduino.cc/en/Main/ArduinoBoardUno) it says:

Quote
3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.


Anyway the breakout board (http://www.drotek.fr/shop/fr/home/153-mpu9150-gyro-accelerometre-magnetometre.html) can be powered with either 3.3V or 5V but I still would like to understand  :)


Another question for IMU, What is the best way to fix it on the quadcopter frame. I see a lot a people use double side tape and foam (instead of screws) to reduce the vibration induced from the motors. But can I apply directly the double side tape on the board?  :smiley-roll:


You can use the 3.3v for powering the IMU,  but you use the Arduinos digital pins to communicate with it. The digital pins give a 5v signal which may damage the IMU.
If you want to meet a beautiful nurse you must be patient.

GoussLegend

Hum I think I finally understand. Some pull-up resistors should do the trick: http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter

Go Up