Lothar: A Tile Identifying and Placing Robot

Table of Contents

    Executive Summary
    Mobile Platform
    • Tile-gripping Assembly
    • Color Sensor Turret Arm
    • Color Senor
    • Infer-red Sensors
    • Limit-switches
    • Color Calibration
    • Color Identification
    • Find Tile
    • Obstacle avoidance
    • Find Color
    • Wall Following:

    Back to Ben's Project Page


Lothar is a tile placing robot that follows colored trails to find 1 1/4 inch tiles. It then captures, identifies, and places the tiles. Lothar's primary function is to find tiles and then based on the tiles color, place them in an appropriately colored area. He was designed to roam about looking for lines on the ground which then lead to colored tiles. Once a tile is found and properly positioned in the grabber, it's color is identified. From here Lothar looks for the appropriate colored area to place this tile.

Back to Table of Contents

Executive Summary

Lothar was designed to manipulate his environment by identifying and moving tiles around on the floor. While a tile placement robot has been built before, I wanted to add color and give it the ability to seek and select tiles. To accomplish this task I built a color sensor and a tile grabber as well a wrote behaviors that demonstrate there usefulness.

The color senor arm provides a means of looking and detecting colors in different locations around the robot. The arm uses a spring and two bump switches to protect the servo that drives it. This design could also be used to detect obstacles.

The tile grabber provides a means of detecting tiles and a way of holding them in place. Because the tiles are too light to be detected by any other means, the tile grabber presses down onto the tile thus sensing it's presences. The tile grabber also has a sensor that detects when a tile is in position and is ready to be moved and placed.

Back to Table of Contents


In this paper I will describe my tile robot, Lothar. Lothar finds tiles, identifies their color, and then slides them into a predetermined colored area on the ground. A mobile platform, a collection of senors, actuators, and behaviors enable Lothar to complete this task.

I wanted to build a robot that manipulated its environment in a constructive manner. After evaluating many ideas including a sand painting robot and one that would make mosaics out of M&M's, I decided tiles would be the easiest medium to implement and clean up. This idea had been done before by Alan Senior with his robot, TileBot. Senior's robot dispensed tiles which meant it had to be reloaded. Also, it placed thin black plastic 'tiles' which limited TileBot to creating only black and white images. I wanted to build a robot that could find and identify colored tiles in it's environment and then arrange them to create images. Due to time constraints and unforseen difficulties, I was only able to complete the first part.

Lothar consists of a color sensor on a rotating arm and a tile grabber supported by a 1/8 inch plywood structure propelled by two hacked servos. Lothar's processing power is provided by a Motorola HC11 EVBU board expanded with 32k of RAM, a clock divider to provide a 40 kHz signal, two memory mapped output ports, two memory mapped input ports, and a multiplexed analog port.

This paper is a description of Lothar's mobile platform, actuators, and sensors which are each discussed in detail in the following sections.

Back to Table of Contents

Mobile Platform

The mobile platform needed to be able to provide structure to support all of Lothar's components and be able to move accurately when sliding tiles.

The physical structure of the mobile platform consists of an open-ended box which houses the primary battery pack, the two drive servos, and the grabber servo. The two circuit boards and the color turret tower are attached to the main chasse or top of the box. A V-shaped tile jaw is attached on the bottom front for pushing and positioning tiles. I had to remove a barrier that enclosed the batteries when I started using six C batteries instead of the originally designed for six AA batteries. I added a secondary six pack of AA batteries that had to be taped onto the main chasse due to the lack of space in the battery compartment. I also had great difficulty accessing the two circuit boards because the color turret made it necessary to stack them.

Movement is provided by two partially hacked 45 inch/ounce servos with three inch wheels attached. These servos are positioned close to the front for greater control of the jaw. There is also a closed-ended nut glued to the rear to provide a pivot for dragging the rear end. This drive system was not very accurate or responsive primarily because the servos I used were of very low quality and the refresh rate needed by the servo was too slow. In retrospect, I should have used geared stepper motors.

Back to Table of Contents


To find and arrange tiles, Lothar needed to hold tiles, move the color sensor to follow lines, and determine the color of captured tiles. Two assemblies where designed for this purpose: the tile-gripping assembly, and the color sensor turret.

Tile-gripping Assembly:

The tile-gripping assembly enables Lothar to sense and grip tiles. The gripper is actuated by a 45 inch/ounce servo mounted above the left drive servo. The gripper is pulled up by a rubber band so that its at rest in the open position when the servo is not activated. The gripper consists of four parts: the major armature, the ankle, two minor armatures, and the foot. The servo is

attached to the major armature which is then connected to the ankle. The ankle has a limit switch attached that comes in contact with the ram when the grabber is closed and there are no tiles under the foot. Due to their light weight, impact with tiles can not be detected and this is the only way to detect them. The ankle is connected to the foot by the two minor armatures. The foot contains a limit switch that makes contact if a tile is properly in position against the tile jaw. The foot also has three bump switches and two IR sensors for obstacle avoidance. The under side of the foot is covered in rubber for grabbing tiles that are not yet fully in position.

Gripper from above

Gripper from below

Color Sensor Turret Arm:


The color sensor turret arm moves and supports the color sensor, allowing Lothar to determine the color of tiles in the V-shaped jaw as well as finding and following colored trails. It consists of a 45 inch/ounce servo, a pivot housing, and a 12 inch arm. The purpose of the pivot housing is to protect the servo from stripping gears by providing a spring to absorb impact. The pivot housing is a pair of identical 1/8 inch plywood supports that are spaced ½ inch apart by 1/8 inch brass rod. A spring and a counter balance are attached to the brass spacing rod farthest from where the servo is mounted. The brass spacer closest to where the servo is mounted serves as a pivot for the arm which is also attached to the other end of the spring. Two limit switches are mounted to the arm and make contact when force is applied to the arm. This also aids in protecting the servo.

Back to Table of Contents


Color Senor:

Lothar needed the ability to sense color to identify tiles and find trails. The sensor I designed to accomplish this task consists of an incandescent lamp, three CDS cells, three color filters, a curtain to keep out ambient light, and a screw reinforced wood support structure. To assure that this sensor would read dependably I tested it throughly.

The incandescent lamp was used instead of LEDs because the light it produces covers more of the visible spectrum than can be expected from LEDs. After trying a small 6 volt 25 milliamp light, I decided that a larger lamp was needed and implemented a 6 volt 100 milliamp light. Due to the greater power requirement, a simple driver circuit consisting of a P2N2222 transistor and a 330 ohm resister which can be seen on the right in Figure 1 was also added. This lamp provides enough light to allow the sensors to read the color of the tiles but being incandescent, it requires more than .3 seconds to reach full luminescence. This requires that the lamp stay on or have a warm-up period more than .3 seconds each time the light is turned on.

Three CDS are used to sense the amount of light reflected off of a tile and filtered through three different color filters. A CDS cell is a solid state device which increases conductivity when light is present. Using this fact, I constructed three voltage divider circuits using 10 k potentiometers as seen on the left of Figure 1. The signal is then converted from analog to digital using PE1, PE2, and PE3 on the HC11. My concerns about inconsistent readings from these sensors where quieted by how consistent the experimental data was.

The selection of the color filters or jells as they are called in the lighting industry was very important and challenging. Instead of choosing three from the 159 filters that would best enable Lothar to distinguish the tiles, I chose eight. I designed my sensor so that the jells could be mounted to wheels and these wheels could be changed rather easily. Three wheels where constructed and tested on each tile color. The table below shows which jells where used on which wheel.

Wheel Position Color/Name Y(%) Part Number
0 1 Yellow 80.00 #139
2 True Red 6.87 #109
3 Just Blue 5.93 #79
1 1 Primary Green 14.97 #139
2 Pail Blue 54.39 #63
3 Flame Red 17.97 #164
2 1 Yellow 80.00 #101
2 Magenta 10.92 #113
3 Marine Blue 41.32 #131


The mechanical structure consists of five disks held together by screws and the circuit board. Two of the disks combine to form the wheels previously mentioned. Two other disks are used to hold the circuit board in place and the last supports the lamp. Paint brush bristles where wrapped around this frame blocking out light from outside.

The test consisted of using each of the three wheels described in Table 1 on all of the tiles. A minium of 45 readings where taken for every wheel and tile combination. The test software warmed up the sensor and took five readings (one from each CDS cells) and waited for input on the keyboard. The software would then loop, waiting for input and then receive five readings. To provide variance, I picked up and set the sensor down again between every five readings. Below are some charts and tables describing the test results.

After inspecting the data, I chose to use wheel two because it provided the greatest distribution for each of the sensors. This sensor works well but there are some important changes I would have liked to make. The sensors are too spread out and this means that they need at least one square inch of color to identify it. The light shines mainly on the area seen by sensors one and three, leaving sensor two in the dark. The senor needs to be about 3/8 inches from the ground to look at tiles and on the ground to best identify colors on the ground.

More details avialable in the Final Report, lothar.pdf

Infer-red Sensors:

The IR sensors are used to detect obstacles and walls by emitted infer-red light and then quantifying how much of this light is returned. I used six of these sensors which are constructed using a 40 kHz modulated signal, a infer-red LED, and a hacked Sharp infer-red sensor. These sensors where then connected to a multiplexed A-D port. These sensors returned values ranging from 88 to 129 with larger values indicating something is close to the sensor.


Four limit-switches were used. Two to detect when the senor armature comes in contact with something, one to detected when a tile is in the jaw, and one to detect when a tile is under the foot.

Back to Table of Contents


To find and identify tiles, I developed behaviors for the color sensor, the tile grabber, and the drive system. I had a few difficulties developing these behaviors. First, I was completely terminal dependant to initiate them. Second, being used to Java and C++, I had difficulties writing large code using non-object-oriented ICC11. While I found it limiting, ICC11 allowed for far quicker code development than writing in assembly.

Color Calibration:

To identify colors, I had to first enter the colors to be identified and calibrate the sensors. During development of the sensor, I manually put the sensor on colors and pressed a key at a terminal. This was time consuming and not autonomous. I found that stored values also worked, but not as well as a fresh calibration. I believe this is due to the battery levels effect on the color sensors light. When Lothar's color arm and physical structure where completed, I developed a self calibration which involved setting him on a piece of posterboard with the colors arranged so that the color sensor turret could move the color sensor over them and a reading could be taken. Once the color values are stored in memory, a bubble-sort puts the color values of each sensor in order from lowest to highest. A table is then made by finding the midpoint between adjacent color values.

Color Identification:

The table created by the color calibration behaviors can then be used to identify colors by determining which midpoints the new value is between. The color identification returns the color that is presently under the color sensor and sets a global variable to the percentage of sensors that agree.

Find Tile:

The tile finding behavior has Lothar follow a black line and closes the grabber and checks the state of its limit switches every few moves. Because of the possibility of false readings from the color sensor, the only dependable means of tile detection is checking the state of the limit switches on the grabber assembly. It checks the grabber by closing it and checking its two limit switches. If the limit switch on the gripper foot is activated, the color sensor is brought over to identify the color of the tile. If the tile is the correct color, all the LEDs blink. If it is not the right color the tile is released and the find color behavior is called to get Lothar back on the line. The limit switch between the ram and the grabber detects wether there is a tile under the grabber foot. If a tile is under the foot, Lothar is moved forward .5 inches and the grabber is checked again. This cycle is repeated till the tile is no longer under the gripper foot. Hopefully the tile will end up in the tile jaw and the gripper can fully close and the tile can be identified and dealt with. Otherwise, the tile is lost and the find color behavior is called to get Lothar back on the line.

Obstacle avoidance:

The obstacle avoidance behavior checks the infer-red sensors for obstacles and moves accordingly. This behavior tries to move forward, but if an obstacle is found, Lothar is turned away from the obstacle. This is done by choosing to turn to the side whose infer-red sensors have the lowest reading. While turning, the infer-red sensors on the side which is turning are checked to assure that Lothar does not turn into an obstacle. The number of interrupted turns are counted and when this number breaches ten, Lothar backs up and tries again.

Find Color:

In this behavior, Lothar moves about avoiding obstacles and looking for a color on the ground. This behavior is essentially obstacle avoidance with the addition of periodic checks of the color sensor after every move.

Wall Following:

This behavior involves veering left till an object is encountered. If the object is a specified distance away from the left infer-red sensors, Lothar goes forward. When the object gets too close Lothar turns right till the object is the desired distance away.

Back to Table of Contents


In summary, Lothar is capable of wall following, obstacle avoidance, finding colors, following trails, grabbing tiles, and identifying them. There are many areas that I would like to improve.

I feel that using cheep servos instead of geared stepper motors was a mistake. I chose to use servos because they did not require driving circuitry, but their poor performance far out weighed there ease on implementation. I would also like to greatly reduce the size of the color sensors and use multiple color sensors instead of the arm. I believe I could get the sensor down to the size of a dime and reduce the power requirement by 150%. I learned a great deal this summer, unfortunately much of what I learned did not make it onto Lothar, there simple was not enough time.

Back to Table of Contents

Back to Ben's Project Page