Newsgroups: comp.robotics
Path: brunix!sgiblab!sdd.hp.com!saimiri.primate.wisc.edu!ames!koriel!sh.wide!wnoc-tyo-news!nkkgw!damned!hattori
From: hattori@csrd.nkk.co.jp (Mato Hattori)
Subject: Repost: My challenge to the 5th Annual All Japan Sumo Robot Tournament
Message-ID: <HATTORI.93Dec24135733@gaea.csrd.nkk.co.jp>
Sender: news@nkk.co.jp
Organization: NKK corp.,Tokyo,Japan
Date: Fri, 24 Dec 1993 04:57:33 GMT
Lines: 342


This re-posting of the article I posted on October 28th.


Dear All,

I suppose some people are expecting further story of my challenge to
All Japan Robot Sumo Tournament.  Here's the latest story of BigTX and
Opus2, the Robot Sumo wrestlers!



In case you don't know what Robot Sumo is, I'd like to explain how the
games are played.

Sumo is one of Japanese traditional sports.  Two guys fights against
each other in a circle.  The guy who has not touched the ground and
has not stepped out the circle before other guy does will win the
game.

Robot Sumo is similar to Sumo, except two robots will fight rather
than human.  There are many precise rules in order to keep fairness of
the game.  Here's brief idea of the rules :

1. A robot's basearea has to be within a square of 20cmX20cm before
   the game starts, and weight have to be no heavier than 3Kg.  It
   means that it's free in height and can expand arm or something else
   after game started.

2. The robots are divided in two categories due to the way of control,
   Radio Control type and Stand Alone type.  The games are played with
   two robots in the same category.

3. The circle has 154cm of diameter, 5cm elevated from floor, colored
   black inside, and 5 cm width of white paint at the circumference.

4. Though real sumo wrestlers may not touch his hand to the ground,
   robot sumo wrestlers can touch any part of his body to any where
   inside the circle.  Once robot touches outside the circle, the
   robot will lose the point.

5.  Each game is played as 3 points matches, and limited in 3 minutes.
    The robot that gets two points first, or leads when the time 
    exceeded, will win the game.

6. The games will go on with pre-randomized tournament style.  The
   robot has to keep winning in order to be a champion.  Several
   preliminaries will be held in several cities in all over Japan.
   We may enter any preliminaries if we can travel to there.  The
   finals will be held on December 23rd.  Those who could win
   preliminaries will gather at Kokugi-kan in Tokyo for final games to
   decide who is the champion.



I have been trying to participate such games since 4 years ago.  I made
3 stand alone robot wrestlers so far.  The first one didn't move at
all.  It has already gone to the junk yard.  amen ... ;-)


The second one is named "BigTX".  He has 2 DC motors, each has
750g-cm torque at 3000rpm.  2 wheels with 3.5cm diameter has been
driven separately by each motor via 10:1 worm gear.  So that,
theoretically, he can push things of 8.5Kg at speed of 54cm/sec.  Of
course, it depends on surface of floor he runs.  In my experiment, on
the sanded wooden surface, he could push 4 of B4 size encyclopedias,
which weight is totally about 10Kg.

He has 8 infra-red reflection sensors in his base to detect the white
line in border of the circle.  He has 2 sets of ultra-sonic sonar
sensors in front to detect opponent.  The sonar sensors are directed to
oblique right and left ahead.  He is shaped like wedge, totally covered
by metal protector, and colored black.

His brain is Intel's 8052AH running at 12MHz.  I bought a merchandised
compact pc board with the CPU, RAM, EEPROM, and RS232C serial port.  I
added 8255, programmable parallel interface, and constructed interface
circuit for sensors and motors.  I used some of LM324, operational
amp., and 2 of MOS H-bridge ICs.

Power source consists of 20 AA type Ni-Cd batteries.  24volts is
supplied directly to the H-bridges, and 5volts converted by switching
regulator is supplied to computer and other electric circuits.  He can
run for maximum 10 to 15 minutes without recharging batteries.

Control program was written by BASIC language.  Intel's 8052AH has
BASIC interpreter internally, and the board I bought has capability of
serial communication.  So that, things I had to do to program is
studying the BASIC syntax, writing a program locally with my PC, and
download it from the PC via RS232C serial interface.

Algorithm of the program is simple.  Basically, white line sensors are
checked by interrupt routine, and sonar sensors are checked by polling
routine.  Brief flow of the main program looks like following.

	1. initial movement
	2. go Forward
	3. polling sonar sensors
	4. goto 2.

Initial movement can be selected before it starts.  We, operator, can
choose strategies according to how opponent looks like.  Polling
routine of sonar sensors are basically looks like following.

	if only left sensor is active
		then turn to left
	else if only right sensor is active
		then turn to right
	else   ( means both or neither sensors are active )
		do nothing

The interrupt routine will be called by interrupt signal generated by
white line sensors.  This is the most important routine.  The routine
is basically similar to the polling routine.  Just dividing in several
cases according to which sensors are active, and make him not to go out
of the circle.  I worked out for this for 3 years.  There are many
precise know-how.  I cannot explain all about this now.


The third robot, actually second one I recently completed, is named
"Opus2".  It is similar to BigTX, the first one I made up.

Opus2 has 2 motors with 2000g-cm at 2500rpm, 2 wheels with 6.5cm
diameter have been driven by each motor separately via 20:1 worm gear.
With my experiment, he is a bit slower, but much powerful than BigTX.
He also shaped like wedge, and colored whole black.

Power source is 20 AA type Ni-Cd batteries in series as well.  Unlike
BigTX, he has additional 5 AAA type Ni-Cd batteries for electric
circuits.  5volts are made from 6volts by series regulator IC.  He can
keep running 5 to 10 minutes with one set of fully charged batteries.

He also has 8 infra-red sensors as well to detect white line.  He has
6 additional infra-red reflection sensors.  Though white line sensors
have only 0.5-1cm range, these special infra-red sensors have maximum
detecting range of 20-30cm.  I worked out for a long time to make
sensors work well.  I used high luminosity infra-red emitting diode,
and provided them modulated driving signal which is 1KHz frequency,
12.5% duty cycle, and 80mA peek current.  I located these sensors 2 in
forward, 2 in left side, 2 in right side.  So that, Opus2 can know
location of the opponent more precisely.

Additionally, Opus2 has special feature of "walking sideways like crab".

In my experience in the competitions, being attacked from a side is
weak point for the robot wrestlers.  I'm not sure how it's effective,
but at least trying to escape when the opponent came to the side would
be better than doing nothing.  The idea to escape is "the crab walk".

Opus2 has 2 more motors and wheels.  It located behind the main
wheels, and makes right angle with them.  Usually, these sub-wheels
are floated from ground, and only main-wheels are touching onto the
ground.  When he realizes emergency, he signals to the sub-wheel
driving mechanism, then sub-wheels would have the main-wheels elevated
and run right or left way.

Following is view from top of Opus2.  #1-#6 are long range infra-red
proximity sensors.  Arrow shows direction each sensors directs.  Big
squares at the middle are main-wheels.  Small squares behind are
sub-wheels.

			   front
	              / \         / \
		       |           |
		 ________________________
		|     #1           #2    |
		|                        |
	     <- |#5                    #3| ->
		| ______          ______ |
		||      |        |      ||
	left	||      |        |      ||	right
		||______|        |______||
		|                        |
	     <- |#6                    #4| ->
		|  ___              ___  |
		| |___|            |___| |    
		|________________________|

			   back

His brain is Z84C015 running at 6MHz.  Z84C015 is a ZART chip, which
contains Z80 family, CPU, PIO, SIO, CTC, and CGC, all in one chip.  I
connected 32KByte each of RAM and ROM, and another parallel interface,
8255.  I made analog circuits for sensors and motors.  I made 3 sets
of discreet H-bridge with 4 transistors and 4 opt-isolators.

The control program is simple as well as BigTX.  Interrupt routine
handles white line sensors, and polling routine handles proximity
sensors.  The polling sensors looks like following.

	If only #1 is active
		then turn to left
	else if only #2 is active
		then turn to right
	else if both #1 and #2 are active
		then go forward
	else if only #3 is active
		then turn to left backward
	else if only #4 is active
		then rotate clockwise at there
	else if both #3 and #4 are active
		then escape left way
	else if only #5 is active
		then turn to right backward
	else if only #6 is active
		then rotate counter clockwise at there
	else if both #5 and #6 are active
		then escape right way



Well, I have been trying to participate the competition of the stand
alone category with these my dear robots.  Of course, my aim is
becoming the champion.  I have to take part in preliminaries and get
ticket to go finals.


On September 19th, the first preliminary competition had been held at
Koutou Technical High School in Tokyo, Japan.  About 250 robots, I
guess, had been gathered.  I had to win 5 games continuously in order
to go finals.

Opus2 lost his first opponent.  Oh, my dear ...  :-<
BigTX could defeat 4 opponents!  I really excited at the 5th game!!
But, Oh, God!  How sever it is!!  BigTX was defeated by his last
opponent.


Next preliminary I entered was in Osaka on October 24th.  I took a trip
by bullet train with two robots and many quick aid tools.  Number of
competitors gathered there was actually less than the preliminary in
Tokyo.  Although, about 40 robots are entered in stand alone category.
I had to defeat 4 opponents continuously.

The games of Opus2 and BigTX ran in parallel at separate rings.  My
friend, Mr.Shida, went along with me and helped me to operate two
robots at the same time.

The first match, Opus2 could easily get 2 points. It took only few
seconds.  The opponent of BigTX was like a spinning top.  His strategy
was spinning so fast and driving out objects touched.  It was hard but
BigTX could get 2 points without let him get a point.  After the game,
BigTX's front protector was damaged so much because of the opponent's
brutal attack.

The second match, Opus2 lost a half point by starting before judge's
signal, but could easily get two points.  BigTX's opponent seemed
strong, he could run faster and clever.  I tried to help Mr.Shida soon
after I finished Opus2's game, but BigTX was scooped up from side then
he was carried out of the ring.

Then, in the third match of remaining Opus2, the opponent looked so
strong.  At first Opus2 lost a half point again by flying fast.
Actually, it is one of my strategies.  I intended to make the internal
clock advanced.  Any way, Opus2 couldn't go forward with spinning and
slipping his main wheels.  The reason was surface of the ring was
somehow damaged during the previous game.  After judges changed the
ring to new one, we resumed the game again.  Two robots collided on
head.  Opus2 could scoop up the opponent, but could not carry him out
of the ring.  The motion has been stopped.  I eventually realized
that the opponent has oblique stick in his back.  He propped the stick
onto the ring not to be pushed.  I was impressed with the idea.  Then,
the judge declared beginning of the 30 seconds rule.

The 30 seconds rule is one of the special rule to make games end.  When
the exactly same status has been continued for 30 seconds,
1. if both robots are totally not moving, the game would be drawn.
2. if one is totally not moving and the another is observed moving, 
   the robot moving get one point.
3. if both robots are keep moving under contacting each other,
   the game would be drawn.
4. if both robots are keep moving under not-contacting each other,
   the robot seems to have nicer movement than the another would get a
   half point.

At the moment, Opus2's main wheels were slipping and spinning.  The
opponent had completely stopped moving.  Opus2 could get one point
after 30 seconds.

Once drew and started again.  Robots rushed then collided.  Somehow
Opus2's computer got mad.  He stopped moving completely.  The opponent
kept moving forward slowly.  Opus2 lost a point, then.

So far, Opus2 got 1 point against the opponent got 1 and a half point.
My dear... Opus2 stays behind the opponent.  

The next trial went as similar as before.  The opponent stopped his
movement and Opus2 kept spinning his wheels.  It seemed to be able to
get a point and win the game.  But, some white smoke happenly came out
from the opponent's control circuits.  Probably, a register or a
transistor had been overloaded.  In this case, the opponent violated
the regulation of the robot wrestlers, not to equip mechanism to spray
or throw either gas or liquid.  Violation of rules will lose a half
point not a full one point.  Therefore, the opponent had been helped
by making smoke himself.

Both robots got one and half point.  It was really full match point.
I set Opus2 carefully at the start line on the ring.  As soon as judge
signaled beginning, I pushed the button, and left the ring.  After
exactly 5 seconds, the exciting game would be started.

Opus2 ran forward beside the opponent, detected him, turned toward him,
attacked at his left side, scooped up from the bottom, and carried him 
out of the ring!  Got him!!  I was really glad because I could win as
the way I had been imagining.


Well then, the last game.  I can get ticket to make progress to the
finals if Opus2 won this game.  I changed the batteries to fully
charged one.  

The opponent of the last game was stealth type, that totally covered
with black spongy materials.  I knew black things can have stealth
effect because the reflection of infra-red would be much lower than
other materials.  I guess the opponent has been intended not reflect
ultra-sonic as well.

I actually underestimated the stealth effect of the opponent.  I set
Opus2 as same as I did before trying to turn around his weaker side.
Opus2 ran forward beside the opponent, but he could not detect him.
He ran as blind as a bat.  Eventually, he attacked from behind and was
easily carried out of the ring.

As he dropped from the ring in front, his front edge to scoop up
opponents had been broken.  The edge is one of most important parts in
robot wrestlers.  I had supposed it might break, and had prepared some
spare parts.  I quickly changed the edge.  The rule of competition
allows 30 seconds repairing time during a game.

I again tried to turn around weaker side of the opponent, setting
carefully at the start line.  But, Opus2 could not detect him well.
He was scooped up and carried out of the ring.


Ha !.....  How severe it is!  Never give up!!  I will take part in the
last preliminary that will be held on December 22nd in Tokyo.  Hope I
could report pleasant result.
--
Mato  Hattori                      Computer System Research Department,
email : hattori@csrd.nkk.co.jp     Electronics Research Center, NKK Corporation
voice : 81+44-322-6483 (office)    1-1 Minamiwatarida Kawasaki-ku
      : 81+44-246-9665 (home)      Kawasaki-city, 210 JAPAN
