Anyone have source code using either the 156 or 157 command for the Create?
The source code that iRobot offers doesnt use those commands to operate the encoders.
Instead it cheats with occasionally reading the encoders, but doesnt check if it drifts over . . . resulting in huge errors . . . I wrote a subroutine that keeps track of the error to account for it in the next motion, but it doesnt correct for it. Better, but still bad drift . . .
The closest I can find is the source code for 137 (which I got to work):
// Send Create drive commands in terms of velocity and radius
void drive(int16_t velocity, int16_t radius)
{
byteTx(137);
byteTx((uint8_t)((velocity >>
& 0x00FF));
byteTx((uint8_t)(velocity & 0x00FF));
byteTx((uint8_t)((radius >>
& 0x00FF));
byteTx((uint8_t)(radius & 0x00FF));
}
But Im clueless to why that works . . .
I'd ask in the iRobot forum, but the registration part of the site is broken . . . Im sooo not impressed by this robot so far . . .