Best IMU for indoor use under $200? How about under $500?

I've been experimenting with various IMUs like the MPU9150, but I'm finding it simply isn't up to the task. It's noisy, non-linear, and not repeatable. I've been using the excellent RTIMULib-Arduino and calibrated the magnetometers, but it's still not what I need. I'm using it indoors which may be an issue.

You get what you pay for. I have a bigger budget for this project, so I'm looking for an IMU that can give me...

-Output of absolute orientation in Quaternions
-10Hz update rate
-Accurate within 5 degrees
-Repeatable within 2 degrees
-Ideally, serial output (to interface to an XBee/XN-XV via Arduino)
-Physically, smaller than a deck a cards if possible

Sparkfun's has the Razor IMU, is it up to the task? Other alternatives? Hoping to spend under $200, but could stretch it to $500 if absolutely necessary.

The BNO055 is self-contained, and in my experience works quite a bit better than your specs require. The calibration routines are a bit of a mystery and somewhat flaky, but I seem to get within 2 degrees of directional accuracy, quite consistently. Cost less than US $40

jremington:
The BNO055 is self-contained, and in my experience works quite a bit better than your specs require. The calibration routines are a bit of a mystery and somewhat flaky, but I seem to get within 2 degrees of directional accuracy, quite consistently. Cost less than US $40

I love the BNO055.

I really like how the magnetometer data is used to correct the heading.

I killed my first one but I should receive a second sensor on Wednesday. I plan to add some code to store calibration data to the Arduino's EEPROM. I think with calibration data stored to EEPROM the sensor will be able to perform well right on power up.

BTW, don't reverse the polarity on the sensor's power lines. It doesn't like it.

Edit: I just noticed the "serial" spec request.

Schema:
-Ideally, serial output (to interface to an XBee/XN-XV via Arduino)

The BNO055 has a UART mode. IIRC the baud is 115200 which most XBees can handle. I haven't tried the UART feature myself but it doesn't look very hard to use. The I2C was working fine so I didn't try the UART (there isn't UART demo code available that I know of).

Schema:
-Output of absolute orientation in Quaternions

I hope you guys don't mind my asking, but I'd love to find a good quaternion tutorial. It's been too many decades since I used quaternions. I think I learned what I needed for a test (at university) and then promptly forgot about them.

This is a pretty good tutorial on quaternions. It starts off with the definition of "i = sqrt(-1)", so nothing is assumed.

It is really just rather messy algebra, but unfortunately rotation operators are not particularly intuitive.