Trashbot v3: an autonomous spine for the bipedal walker

i've been working on the next evolutionary step of trashbot, a biped robot made from mostly material that i have floating around like bike parts, a typewriter, old PCBs etc. in this version i've added an "inverted" gimbal that is controlled by an MPU6050 and the whole system works as an autonomous spine, counter-balancing the movement of the lower part of the body. 

(why aren't the videos embedded when i embed them here in the editor? see here: https://www.youtube.com/watch?v=oIX9gqIgpVE  and here https://www.youtube.com/watch?v=Nu_97zBNF0A)

if anybody has more tips on PIDs especially in connection with servos: i'd love to learn more. i'm using jeff rowbergs lib to get decent values from the gyro and then wrote a little PID to control the servos. i'm not sure, i understand jeff's interrupt mechanism in the example code, the interrupt is just setting a boolean to true so that the loop can act if new data is there. why is he not reacting in the interrupt routine? (see his code here: https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050/Examples/MPU6050_DMP6 )

any help and ideas appreciated! 

see the full blog entry on my homepage: http://assadollahi.de/trashbot-3-a-gimbal-like-autonomous-2dof-spine/

https://www.youtube.com/watch?v=Nu_97zBNF0A

You always want to make
You always want to make interrupt routines as short as possible to allow other interrupts to take place.

The real calculations should be done in the main program. Usually. Sometimes there are exceptions.