Quote:
Originally Posted by PhilBot
Despite my best efforts to partition the program into neat modular sections, I'm starting to see erratic behaviour that is hard to explain from simple bugs.
|
I'm convinced that there are a lot of gremlins in RC, since in the years since 2003 I've seen a lot of bizarre stuff. The biggest one was the "8.2V" data alignment bug, which basically killed our bot for the entirety of BAE last year (and a bizarre scene in which one of the IFI guys insisted it was our code at fault when we had the default code loaded).
This year, I've had two times where editing a portion of code caused a completely different section of code to stop working. For example, today we added a single check of a limit switch in our non-autonomous code (test rc_dig_in10 and limit a single pwm, either with our own code or with the IFI-supplied routine), and that completely broke the PID loop in autonomous mode which doesn't even call that limit switch code. All I can think of is that somewhere hiding in the code something is trampling on the variables for another variable, like a 16 bit value being written atop an 8 bit value.
Similarly, we had an issue during the Aces High scrimmage where random spurious values would appear on a variable that was tied directly to p1_wheel, even though I could monitor p1_wheel directly and verify it was constant.