Designing the Ultimate IMU

Hi everyone,

SparkFun is updating the 6DOF v4. Over the last couple years we have added several IMU boards to our stock, but it’s become apparent that we need a ‘high end’ device (at least we think we do…). There have been many threads on the forum about IMU’s and people preferences and problems with existing hardware. So we’d like to get your feedback before we start designing our newest addition to the IMU family.

So, if you were going to design your ultimate IMU what would it have? We think the board should have a 3 axis accel, 3 axis gyro and 3 axis magneto; but which ones? What kind of ranges and accuracies would you like to see on all of the sensors? Any specific sensors youd prefer? Analog or digital? What kind of wireless interface works best for you - bluetooth, XBee, something else? The board is likely to have an ARM32, probably the LPC2138 running at 60MHz; but that too is open to suggestion. And with that, what do you expect the default firmware to do out of the box? Do you enjoy writing your own filters, or do you expect a robust platform that comes with the device? Now’s your chance to give us some feedback, and we’re looking forward to hearing from you!

-Ryan

For microcontroller, you should definitely pick a Cortex M3 from NXP, something like the LPC1759 with preflashed USB-bootloader.

Gyro and accel, ITG-3200 and BMA180. Magneto I don’t know. The best I’ve tried is the MicroMag3, but it would be neat with something equally good in one-chip solution. Maybe you should put an altimeter in there as well. Full-size SD-card slot for log-data. XBee-footprint for wireless.

It should also have a low-end microcontroller to handle standard RX and servo PPM signals (and dual as a hard watchdog).

IMHO which specific sensors you choose is not all that important.

What is critical is clear and well written software that fuses all the sensor data with a Kalman filter, right out of the box. Of course the software should be open source, so new features and bugfixes are possible. But I would definitely want sparkfun to maintain the software once it’s released… ie, incorporate the good code coming from the community into official releases, don’t just throw the firmware out there and then let the development run wild.

I would start by looking at something like the vectornav VN-100. I don’t own one, but the interface looks good. If you can duplicate that for $100 instead of $500, I think you will be ahead of the game.

It would be very nice to get a complete working IMU, lock stock with working Kalman filter and the whole package. To be realistic though, this is a several hundred hour job to implement and there just can’t be any profit in selling these units for component cost + a few percent.

My advice is to focus on a robust hardware platform and try to make it as cheap as possible.

Device Suggestions

HMC 5843 Magnetometer

Any accel other than from Analog Devices

ITG-3200 for gyroscopes

I guess using digital would reduce footprint areas on the board and in general would be good to reduce the load on the main microcontroller.

LPC2138 is cool! Lots of positive experience working with it. :slight_smile:

Code suggestions:

Definitely needs a Kalman filter with code maintenance (i’m sure everyone can help with that)

Should have features like being able to stop and start transmission and changing variable sampling rates on the fly (probably with a command set)

Sampling rate in excess of 100 Hz over wireless

Hardware suggestions:

Should be made in one board rather than the two-tier design of earlier versions. The smaller the better in my opinion

Should have Rechargeable power supply circuit so any battery that is plugged in can be recharged without adding additional modules

Needs to have bluetooth/zigbee/usb-serial plug-in capability (that seems to be the only way to satisfy everyone) but bluetooth would work best as then the IMU can be interfaced with phones (have an eye on the Android platform and interfacing here)

More coming up!

Oh yes, if you guys are really up for it, designing a case that we can order separately would be awesome too… Really helps in the usability… :slight_smile:

And probably LiPo batteries that are 1000 mAh or less as the power supply.

And while you’re at it, make it able to walk the dog, do the dishes and make a cappuccino with extra foam.

Again realistically, I don’t think people will be prepared to pay for all the stuff they wish for. Software development is expensive and this will not exactly be sold in 10000 units.

But, still I would be very happy if you actually came around and did all this!

Hey they said “Ultimate IMU” not any other IMU right… hence the wishlist… :stuck_out_tongue:

Personally I’d be happy to help out in anyway to make this a reality.

It would be interesting to know what numbers the previous IMUs sold just out of curiosity.

Harsh

You’d want at least an interface to add GPS, and maybe even integrate it on the PCB.

It looks like DIYdrones carries something really close to what I would call “the ultimate IMU” … it uses a filter called a “direction cosine matrix” instead of a Kalman filter though.

http://store.diydrones.com/ProductDetai … ArduIMU-20

There are lot’s of IMU’s out there. What I’d like to do is a proper INU (Navigation instead of Measurement).

That means using the ultimate IMU - but adding, as some have suggested, the filtering and dead reckoning needed to get proper cartesian co-ordinates out of it. That is, instead of getting the raw data, you get X, Y, Z, roll, pitch, and yaw in real units.

Key to a good INU is a non-deadreckoning input to the kalman filter - GPS, magnetometers, and a software input for odometry or homing.

We have already started developing something along these lines and we were planning to use the sparkfun products as a starting point. But our market is slightly more specky than I think you had in mind.

But I love sparkfun! And if you are interested maybe we can work together and produce an OSH level INU version of the product for the sparkfun community?

I agree that an incorporating sensor fusion algorithm but more more significantly, pre-calibrated sensors, is allot to ask. However, this should not be dismissed at this stage.

Consider this recent competitor ‘9DOF IMU’ product [1], it costs <$150 and is factory calibrated, which is really something to boast about at the price… yet they fail to incorporate a sensor fusion algorithm. To the best of my knowledge, VectorNav [2] produces the cheapest ‘complete’ IMU/AHRS, at $500! If SFE produces yet another ‘raw’ sensor array, then they will be missing a big opportunity.

I’ve been doing allot of work developing sensory fusion algorithms [3,4,5] and can tell you that there are very effective, easy to use (forget Kalman!), even READY TO USE algorithms out there.

[1] http://www.phidgets.com/products.php?product_id=1056

[2] http://www.vectornav.com/

[3] http://www.youtube.com/watch?v=fOSTOnQzZCI (with SFE products)

[4] http://code.google.com/p/imumargalgorithm30042010sohm/

[5] http://www.youtube.com/watch?v=9sA9vyL1C8Y (my ‘ulitimate IMU’)

#5 - the IMU tag - that looks really interesting. Googling only seems to find the link you gave. Any additional info?

Hi sebmadgwick,

Nice work on your IMU tag. I browsed your videos and got lost in the British grand challenge project you were involved in… Bastard! :wink:

I’m keen to learn more about the data fusion algorithm you used. Do you have a paper I could see?

I have also started a forum on my own site to capture these ideas for a professional INU.

I’m not trying to cut sparkfun out of the action. In fact, while my main focus is to develop more of a professional drone/university/research level product, I would love to create a spin-off INU with a price point and an intuitive interface that fits the sparkfun/DIYDrones market.

I just noticed this…

http://www.pololu.com/catalog/product/1253

Sparkfun has their work cut out for them

Forget about Kalman filters. This baby needs a neural-net processor (a learning computer). I’m thinking a MCU married to a low cost FPGA. Then it needs a 3-axis accelerometer and a 3-axis gyro for 6-degrees of relative freedom; and 3-axis magnetometer and gps for 6-degrees of absolute freedom (referenced to the earth).

The GPS should have PPS break-out so that you can log time-stamped data to an SD card. You could add some environmental sensors (temperature, pressure, humidity) so that sensors that drift with respect to temperature (for instance) can be dynamically calibrated.

Finally, if you really feel like going overboard, add some camera sensors so that people can play around with [optical INS stuff.

If you print a nice big feducial marker on the board, you could use a web camera to calibrate it.

Oh, oh! also, put lasers on it. Lasers are great.](http://www.wired.com/wiredscience/2009/11/fly-eyes/)

Oh, oh! also, put lasers on it. Lasers are great.

Yes… Yes they are.

Hi

Any idea what this new IMU will be called?

How will it compare with your 9DoF Razor IMU?

When do you hope to have it available?

Thanks

Invicta:
Any idea what this new IMU will be called?

I'd actually like to call it 'Ultimate IMU,' but I'm sure we'd get slammed for that. Any good ideas?

evarobotics:
How will it compare with your 9DoF Razor IMU?

Similar in that it will have 9 degrees of freedom; a different gyro will be used and it will have an ARM core. It will also be Xbee ready and GPS ready. Possible additions are USB mass storage and a pressure sensor adapter, but these haven't been finalized yet. Hopefully it will have a good base code that runs some filtering or AHRS code to come standard.

evarobotics:
When do you hope to have it available?

Ah, this is a question I can not answer. Sorry, but priorities change very quickly around here; I'm working on it now but there are always unforeseen delays and higher priority projects. Giving a timetable often leads to frustration and the accusations of 'vaporware.' We'd like to offer a better IMU and we're working on it is all I can really say.

I’m sure the price will be right… but if it is sufficiently sexy then it sounds like something we are better off distributing rather than making our own! No point reinventing the wheel.

Have you thought about mounting the IC’s onto a flexible PCB and then packaging the lot into an anodised cube to align the chips?

And Blue LED’s. Always a plus.