Ester
4th place in La-Ferté Bernard, France, Eurobot 2004
Eurobot 2004 has passed and for the curious who are interested how a fourth rank can be achieved at such a contest, we have gathered some information about Ester. Right now you can find here articles about the ball manipulation and the control software. We hope that the amount of information will increase gradually (e.g. articles about localization or movement control are in preparation).
Overview — some basic information and photos
Ester is so far the most successful reincarnation of its older sisters (
Barbora, Cecilka and
Dana). It is based on the same bogie thus you'll find the same
BLDC motors (each with 600W), motherboard with AMD K6 500MHz, 128MB RAM and
128MB CompactFlash, video input, 100Mb Ethernet and of course – Linux. The
navigation is based a combination of odometry and color of the floor under the
robot mixed together by Monte Carlo Localization. Camera is used to search for
the balls.
|
Ball Manipulation — the quest for reliability and robustness
Ester's job is to collect small rugby balls at a 2x3m field. Last year's
experience lead to the decision that reliability must be the main and most
important property of any future manipulator. Dana's hand was
nice and smart, but too delicate and Barbora's scroll feeder
worked only sometimes and only with some balls. According to our observations
the most reliable design for ball manipulation at
Euroboot 2002 was the use of cylinders. Therefore
cylinders are also the basis of our design.
|
Control Software — how to program a robot and not to go mad while doing so
Last year's experiences lead to the decision to completely rebuild the software
for Ester to allow easier modifications and tests of different strategies. The
robot's control considerably depends on the detection of its position and its
surroundings (e.g. I am in front of the goal and I have the ball) and the
application of the appropriate solution (shoot). The classic tool for
programming that kind of application is FSM (finite state machine), but the
usual implementations seem hard to maintain and in general are somewhat clumsy.
Can't we do better?
|