Combining the output from an acceleromter and a rate gyro

Hello.
I'm trying to find a good way to meassure the angle of tilt for a balancing robot. An accelerometer gives me a good angle, when the robot isn't
accelerating, and the gyro gives a good angular rate but causes drift error.
So how do I combine these two signals most effectively to get accurate angles even during acceleration, without the drift caused by integrating the output from the rate gyro?
I've found that some people have used Kalman for this but I'm not sure this is the way to go. The reason I think so is that the accelerometer will be unviable for reading the angle when the robot is accelerating because it will be under the influence of acceleration other than that of gravity (not because it has a lot of white uniform noise). Kalman doesn't really help with that kind of disturbance, does it (admittedly I only have a very basic understanding of Kalman filters)?
When one senses that the robot has tilted ("a lot") from the rate gyro signal then one should be able to use that information to sort of compensate for the extra (non-gravity-induced) acceleration that this would give the acceleromter and simply compensate for it to get a good value for the angle, right? How would the "non-gravity-induced" part of the accelerometer-ouput relate to the gyro-rate?
One idea was to simply adaptively blend between the integrated angle (i.e the last angle value, however it was computed, plus gyro_rate*dt) and the value from the accelerometer. Where the rate gyro's output is high (that is, the system is under a lot of acceleration and the output of the accelerometer can't be trusted) the blend factor would approach 1.0 (meaning all-gyro) and when the gyro's output is low it would approach 0.0 (meaning all-accelerometer). Does this seem like a good approach (and is there any theory as to exactly what blend function is good for this)?
Helpful for any hints/links!
Regards, Sebastian Sylvan
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Why not use a tilt meter?

error.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Noone Home wrote:

A what?
/S
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Tilt meter, potentiometer with a dampened weight. All the sensors you are using have no useful output when the robot is still, meaning it will fall over at some rate R, where. low rate R is what your sensors are unable to detect. So you need something absolute, and it is too hard to get there with second derritive (accelerometers) devices. x = v * t + a * t ^2 Use what you have then check the tilt meter to know where zero is.

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.