So much of working with robots is about dealing with uncertainty, because they operate in an open environment, and are fitted with sensors (inputs) and actuators (outputs) that don’t necessarily do what you want them to do. In the case of Pi Wars, our environments are reasonably constrained, but we still have to deal with both sensors and motors that don’t always do exactly what we want. To some extent we can control this by choosing bigger / better / faster / more accurate versions of these things, but (1) you can’t eliminate these problems entirely, and more importantly (2) we don’t want to spend a fortune on our robot! So rather than trying to eliminate the uncertainty, we’re trying to deal with it instead. And happily, last night I got a chance to do a bit of work on this.
In my last blog post, I mentioned a couple of problems with the remote control of Glitterator. The first was that it was very difficult to do fine-grained control of the robot, because the top speed is so high, and the difference between zero and max on the joystick controls is so small. The second was a tendency to drift right, because of our need to offset the motors, which in turn requires the right motor to be geared (on a 1:1 ratio), and the gears aren’t great and so skip sometimes. The right track thus turns a bit slower than the left, and so it drifts to the right.
I’ve addressed the first problem by using a couple of the PS3 controller buttons to adjust the maximum speed. One button increases by 10%, the other decreases by 10%. So you can slow it right down to do fine-grained manoeuvres, but speed it up when you want to race about with little accuracy. This seems to greatly improve the remote control, and should make things like ball capture for the skittle competition considerably easier.
To address the second problem, I’ve simply slowed down the left motor slightly. This isn’t a perfect solution, because the skipping on the right motor isn’t consistent, but it does give something much closer to straight line movement. The slight deviations can be adjusted manually for the remote driving, or by checking sensors and adjusting automatically for the autonomous ones.
So, happy to have addressed these issues midweek; now just have to worry about my sensor problems on the weekend!
P.S. Dealing with uncertainty is a big part of my research – but not in the context of robotics. I’m interested in modelling human behaviour, and particularly how they gather information and make decisions without knowing everything about everything!