ROVer Robot D91: Analyzing the Data from ROVer’s Crash & Debugging the Code
Yesterday’s crash from ROVer’s 1st autonomous drive test sucked!
That being said, we did learn a bunch and I’ve been hunting through ROVer’s growing code to figure out what happened. As is to be expected, I found more than what I sought out to find, but at the end of this process will be stronger than ever 🙂
It turns out that the crash was not the result of a faulty sensor or anything like that; it was a confluence of factors as is usually the case. ROVer’s programming and hardware, combined, have a lot of ‘moving’ parts and any broken link in the chain will cause the whole thing to come apart – that’s what we saw yesterday.
The main culprits, or so it seems thus far, were the RoboClaw (motor controllers) buffering commands, which essentially turned my All Stop command into a go-super-fast-forward command. The other factor, of course, were the sensors – we’re getting anomalous data, once in a while, that can throw everything into disarray if we catch it at the wrong instance.