@Phillip Meissner : re: the 2 numbers appearing at the end of frames.
I'm not qualified to say, but I'm going to guess: That the first number specifies a yaw, pitch or roll index (eg: 0, 1 or 2. it looks like 0 will turn it off tho...) And the second number is a desired target angle. I'm seeing this in code: It looks like, if the first number is > 0, then print Yaw Pitch Roll info to serial connection, and continue to do this until the absolute value of the ypr[firstIndex] - motion.dutyAngles[secondIndex] > 20
Then exit the loop once the ypr[firstIndex] is less than 20 degrees from desired angle.
If 0 is specified for the ypr index, then skip this block altogether and do a normal end of frame delay. But, but... isn't 0 the yaw index? aha! Because we don't care about yaw, only pitch or roll! if (motion.dutyAngles[18 + c * frameSize] > 0) {
#ifdef GYRO //if opt out the gyro, the calculation can be really fast
do {
getYPR();
PT(ypr[1]);
PTF("\t");
PT(ypr[2]);
PT("\tabs\t");
PTL(fabs(ypr[motion.dutyAngles[18 + c * frameSize]] - motion.dutyAngles[19 + c * frameSize]));
} while (fabs(ypr[motion.dutyAngles[18 + c * frameSize]] - motion.dutyAngles[19 + c * frameSize]) > 20) ;
#endif
}
else {
delay(motion.dutyAngles[17 + c * frameSize] * 50);
}
It almost makes me think there are some behaviours coming where desired pitch and roll for key frames will determine how long to delay between frames.
Sounds ideal for developing "turtle roll" and backflip skills! :D
at @Rongzhong Li : am I close? :)