Blogubarra – May ’11
OK Computer – I admit that i am writing this post today, inspired to write this down having seen all sorts of my colleagues come to grief after a few seconds of fun riding mechanical bulls. These bulls seem to be all the rage in Texas at least. I’ve just got back from there, and lets face it, felt a bit more than afraid of getting on one, putting myself in the hands of some kind of cowboy operator with a manual controller, with the crowd screaming:-
“Make it go faster”
And the poor guy falling off after around 3 seconds. Mechanical bull riding seems all about the embarrassment of novices rather than, actually having fun on the bull.. never mind. !
So this innovation is hypothetical, how would you create an unbeatable robot controller, which could not be beaten at arm wrestling, which was evenly matched in brain and brawn to it’s contestant, man or woman, with a beer in hand.
So innovation 11 is a cautious step down this pathway…
Mark I iRobot wrestler has a strong arm, a hand, and a controller managing the arm and it’s own winning strategy. The initial controller is just a proportional controller, or servo regulator, and has a strategy relating to the setpoint or angle of the arm from the vertical.
I step up to the arm, have beer, see the lighted buttons, and plan to select “Right ARM” which is the hand I will use to wrestle the robot.
“Got any change mister ?” says the robot
“Sure”, I say
“Up for a challenge then… bet you can’t beat my arm !” says the robot.
“No worries mate, I wrestle tractors all the time, downunder. You have no chance.” I say.
I sit down, adjust my Akubra, and then just put in the money, select right arm fast, grab the arm and see what happens.
The robot arm instantly starts humming and pushes up to the vertical position. I let it, ‘cos I want to see what it does. So the arm is just sitting there at vertical. I push left, the restoring force on the arm increases directly proportional to the force I use to push it over. The more I push, the more the robot arm leans over, but the more force I have to apply to get it to lean over.
At about 45 degrees to the left, the robot says ” ah I see you are stronger than I thought, I must apply more effort. ”
“No worries I say, go for it ”
The robot arm strategy engine figures that its proportional gain may not be enough since I got it over to 45 degrees, and I challenged it with “No Worries Mate”, something the robot didn’t understand. But correctly guesses it had something to do with confidence, purely by the tone.
So suddenly the force increased and it had pushed my arm back to 22 degrees from centre.
I figured ok, proportional control being used here, because I can just keep on pushing and the robot can never win. I wondered what other tricks it had up it’s sleeve.
after 1 minute the robot says impatiently “Look buddy, I don’t have all day, so I am going to finish this off in about 30 seconds”
I quickly think, 30 seconds, the robot must be going to change the setpoint to 90 degrees against me. So I have 30 seconds to figure out how to defeat this.
I figure, since the robot is currently set to drive the arm to the vertical before the ‘coup de grace’ all I have to do it trick it into driving the arm my direction, and then suddenly I can win.
“Hey Robot, I exclaim, in 10 seconds you will be defeated!”
Before the robot has time to reply, I gradually relax my arm and the robot arm pushes it to vertical, right up in the middle, and at that point there is no force from either me or the robot. I suddenly pull the robot arm past vertical to the point where it is about 10 degrees from winning, I move fast so that the momentum of the arm moving helps move it further before the restoring force catches up. Since it is proportional control, and the robot hasn’t changed the setpoint, the robot controller immediately applies a restoring force to push the arm back to vertical, i.e. going my way, with full force. I suddenly reverse direction and both the robot controller and I are both pushing the arm at full force in my direction.
“Geronimo” I exclaim, the robot arm moves rapidly past vertical in my direction and the momentum of the heavy arm and my force push it over further and further until it hits the table.
“Uncle !” says the robot.. – who taught this thing language ? who the hell is “Uncle” ?
“Mate !.. see thats how it is done. Cheers “.
In proportional control, the controller generates an output or restoring force proportionally equal to the difference between the setpoint and the actual position multiplied by some gain factor.
Generally speaking proportional control is kind of ok, but depending on the disturbance pushing the controlled variable away from the setpoint, you will always have an error, since it is the error which creates the control output. No error, equals no output.