Yesterday I posed the question about steering. Which way should the robot turn is the analog stick is at a hard 90? Clockwise or anticlockwise?
We have an answer, and it came from trying a few things out and discovering that theory and practice don't always match up.
I've redrawn the control map as before. The arrows represent wheel direction. The problem: If Up+Right=clockwise, and Down+Right=anticlockwise, then what happens at Right?
The robot went crazy at 90 because to the human using an analog stick there isn't much difference between 89, 90 and 91, but to a robot it's exactly it's a full double wheel reversal at top speed..
So we bumped the problem to a different part of the quadrant.
We kept Right as clockwise and Left as anticlockwise. Then asked ourselves what happen in the back-left and back right area.
Turns out, when the map is drawn as above, there's a programmer logic to the two question marks:
...but there's a backwards logic to the user experience. If I push the stick back and to the left, the robot moves back and to the right. What?
Long story short: we tried this and it's pretty decent. Turns out the human brain always thinks backing up is weird either way, and adjusts pretty quickly. Priority went to forward, and we cope with the reverse.
Another lesson in programmers vs users - it's not like we're building this for public release. our user base is 4 people and we can roll with this.
Comments