I upgraded the RCX CheckerBot to the NXT CheckerBot about a year ago or maybe
a bit longer than that. I’m just now getting a chance to post something now
about it. This is actually the second NXT version I have made. The original was
essentially the RCX version with NXT bricks and motors no additional
capabilities or improvements were made. I believe it was LEJOS 0.5 for the NXT
garbage collection was incorporated and I started working with my checkers
Much faster – There are no more multiplexers for rotation sensors or the touch
sensors on the slave brick. This was a large drawback to the RCX version. The
chain was removed and a wire like an umbilical was run to the cab with the
master robot to run a 4th motor that moved horizontally across the board. I’m
not sure why I never did this with the RCX version. Since the NXT has stronger
motor the gear ratios was reduced from 5:1 to 1.6:1. This added a great amount
Improved Griper – The most challenging part of the project has been picking up
the checker pieces. Well I think I got it down pretty good now. I added a half
bushing to either side of the gripper. This made the gripper slightly wider
which accomplished two things. First the checker would be slid to the center of
the gripper. And secondly it allows for a better grip on the checker.
Improved Compressor – I still think that pneumatics were the best way to go. The
pump is still a bit slow it’s the larger cylinder attached to 40 tooth gear. It
is faster than the older one. An additional improvement to the compressor was a
pneumatic pressure sensor from mindsensors.com. Using the pneumatic sensor I was
able determine how much pressure was required to open and close the gripper.
This made picking up checkers more reliable.
Kings – The NXT version can recognize kings in addition to normal checkers. I
figure there are 2 ways of doing this. Most likely the easiest is to use four
colors for the checkers. I personally don’t like this approach. I went with the
traditional method of stacking the checkers. I started out using the light
sensor for the colors and the optical distance senor from mindsensors.com to
determine the height of the checkers. This worked out ok except that it slowed
down my scan time. When moving horizontally across the board the robot had to
make five stops instead of four. I had the optical sensor spaced 10 studs from
the light sensor to accommodate speed.
So I went back to the drawing board. I contacted Hi Technic regarding there
Electro Optical Proximity Detector (EOPD Sensor). I got no response so I took a
risk and bought one. That sensor did the trick. I replaced the light sensor with
the EOPD and removed the optical distance sensor that I had gotten from
mindsensors.com. The optical distance sensor wasn’t the greatest thing anyways.
With the EOPD sensors I was able to reliably get 5 different values no checker,
grey, grey king, yellow and yellow king. I had to spend some time testing colors
but it seamed to work out very well. The EOPD sensor is not affected by external
light sources like the light sensor and the optical distance sensor are. I was
hoping to use red and black checkers for the kings but I was unable to do so
they absorbed so muck light the king values were the same as the regular checker
Game Play – In the RCX version of the checkerbot it would look for a jump and
see if it could double or triple it and if it could it would just do it. If it
was a single jump it would pick a safe jump then a unsafe jump and it would to
the same for a regular moves.
The NXT version will scan the board and creates a move object with all the steps
for each move stored in the object. It will then do the moves in memory and then
evaluate and score the move. The move with the highest score is executed. If
there are two or more moves with the same score a move will randomly be picked.
When a move is scored several criteria is used to determine the moves score.
Jumps are scored considerably higher than a normal move. This is because if you
can jump you have to. The number of opponent’s pieces that would be taken is
counted and added to the score. If a move will resort in a king is considered.
If the piece is safe just sitting there is considered or if after the move is
doe will it be safe or not. There are a few others but I can’t remember what all
I implemented. Every time I take this thing to show it ia add some features to
I added some neat little features. When a opponents piece is jumped the checkers
are lined up and the number of pieces is tracked. So when the robot is done
scanning the board the bottom row is checked for the opponent’s pieces. If any
are found the robot will take the last jumped piece and king the opponent’s
piece. I though this was a pretty cool feature.
Well that’s it for now.