Automatic joints filling in sample tile displays using a robotic system.
Serrano Mira, Julio ; Sanchis Llopis, Roberto
1. INTRODUCTION
Sample tile displays are used by dealers to show product settings.
These displays are manufactured by fixing ceramic tiles on a wooden flat
panel. Once ceramic tiles are located, the remaining space between tile
edges (known as joint) are filled with plaster (this process is called
joint filling). The dimensions of ceramic displays range from 1x1 m to
1x2 m, and the joint width varies from 2-3 mm to 10 mm maximum (Fig.
1-a). The joint filling process involves the application of an oil based
plaster mixed with a catalyser that cures in 30 min. To fill the joint,
an application device is used that injects a determined plaster quantity
directly in the joint between the tiles (Fig. 1-b). Once the plaster has
been applied, the plaster excess is eliminated using a putty knife.
Finally, the surface of the working area is cleaned with a sponge with
solvent. This is a manual process that takes between 5 and 10 minutes
per panel, depending on their size and complexity.
In order to reduce the operation time, in this work a proposal for
the process automation is exposed, by using a 6-joints anthropomorphic robot and an automatic plaster system supply, controlled by a system
that integrates the panel image processing and the automatic robot
trajectory definition.
[FIGURE 1 OMITTED]
2. DESCRIPTION OF THE AUTOMATIC TILE JOINT FILLING PROPOSED SYSTEM
The proposed system consists of (Fig. 2):
--6-joints anthropomorphic robot (Staubli RX90).
--System for plaster application, composed of a nozzle placed in
the robot hand, and a peristaltic pump with DC motor.
--A 3.2 Mpixel digital camera.
--A computer with the following functions: image capture through a
digital camera, image processing, filling path generator, and robot
communication.
[FIGURE 2 OMITTED]
2.1 Description of the robot and its environment
An anthropomorphic Staubli RX90 6-joints robot has been used. It is
a small robot (maximum reach of 900) with a limited load capacity (6 kg
at nominal speed). Maximum cartesian speed is 2 m/s and repeatability is
[+ or -]0,02 mm. Although the robot has 6 degrees of freedom, just 5 of
them were necessary for this application. Joint 4 (forearm rotation
about its axis) was not required since the application was on a
perpendicular to joint 1 plane. To achieve a wide working volume on a
plane, the most appropriate disposition is the ceiling-mounted robot
with the panel to be filled located on the floor.
The application device consists of a peristaltic pump
(http://www.boyser.com, 2009) driven by a speed regulated DC motor,
which pushes the plaster -contained in a mixing tank-through a nylon
tube to the nozzle located in the hand of the robot. The stainless steel nozzle has a terminal element that works as a putty knife to collect
excess material. The applied plaster flow is changed by changing the DC
motor speed, accordingly to joint thickness and path type.
2.2 Image processing and geometric data extraction
The starting point of this stage is a grey scale image of the whole
panel. The first step to obtain the geometric data (lines and vertices)
is to process the grey scale image to obtain a binary one where the tile
joints are one pixel wide black lines. In order to do so, several well
known image operations (Morris, 2004; De la Escalera, 2001) must be done
in the image. For this purpose, the Matlab Image Processing Toolbox is
used (Image Processing Toolbox User's Guide, 1998). The sequence of
proposed operations, expressed in terms of referred Toolbox functions,
is the following, and an example of this operations is shown in Fig. 3:
* I1 = imtophat(I0, strel('square',20));
* I2 = imbothat(I0, strel('square',20));
* I3 = imsubtract(imadd(I0,I1),I2);
* I4 = imbothat(I3, strel('square',20));
* I5 = im2bw(I4,0.85*graythresh(I4)+0.3);
* I6 = imcomplement(imfill(imcomplement(I5),'holes'));
* I7 = imclose(I6,strel('square',10));
* I8 = bwmorph(I7,'thin',Inf);
[FIGURE 3 OMITTED]
Once a binary image containing the one pixel wide inter tile lines
is obtained, the geometrical data about vertices and lines coordinates
must be calculated. First, the vertices are obtained by counting the
number of black pixels in the immediate neighbourhood of each pixel. If
there is only one black neighbour pixel, an exterior vertex has been
found. If there are three or four black neighbours, an interior vertex
has been found. When two vertices are found very near each other (only
some pixels away), one of them is discarded. The image shows the
vertices detected in the example (Fig. 4):
[FIGURE 4 OMITTED]
The next step is to define edges or lines joining the vertices.
Each edge is defined by its two extreme vertices. Two kind of edges are
defined: the required ones, that must be filled, and the non required
ones, that must not be filled. The non required are the outside edges of
the panel, that are defined by simply reordering the outside vertices.
The required edges are detected by a more complex algorithm, that
iteratively starts in every vertex and follows a black pixel way till
another vertex is found. Finally, the geometric data (vertices and
edges), obtained in number of pixels must be converted to real position
coordinates in the robot coordinate system before storing the data in a
file.
2.3 Trajectory definition and process conversion of the geometric
trajectory to a robot movement sequence
Once the geometric data of the panel (vertices and edges) has been
obtained, the controller must calculate the trajectory to be followed by
the robot in order to fill all required edges. Well known graph problems
(as de Chinese Postman Problem or the Rural Postman Problem) could be
applied to calculate the optimum trajectory in the sense of minimum
distance. Nevertheless, for the studied problem is more important to
reach the higher quality in the edges filling. For this reason, the
algorithm to define the trajectory is based on trying to fill in a
single straight movement several consecutive edges, starting the
movement from an outside vertex and finishing on another outside vertex.
The minimum total distance becomes, then, a secondary objective. The
algorithm starts in an outside arbitrary vertex. The first edge selected
is any required one starting from that vertex. The next edge selected is
a non covered required one with the same orientation that the previous
(i.e. that follows a straight line with the previous). If this is not
possible, the next edge is any non covered required one. If this is not
possible, the next one is any non covered non required one. Finally, if
this is not possible, the next edge is selected as a newly created
virtual edge that joins the present vertex with any other vertex that
belongs to any non covered required edge. This edge selection algorithm is sequentially applied till there are no required edges to be covered.
In order to cover the trajectories defined as a sequence of edges
(some required and some non required), the robot movement sequence must
be obtained. For this purpose, three types of robot movements are
defined. The first one corresponds to filling a required edge. This
movement starts with the tool positioned in the correct orientation of
the edge, and is defined as a simple straight translation of the tip of
the tool (without changing its orientation), at a constant Z, till the
final vertex of the (possibly more than one) consecutive edges. The
second movement corresponds to a change in orientation in a vertex. It
starts with the tool positioned in the orientation of the last filled
edge, and consists of rising, changing the orientation of the tool to
position it for the next edge to be filled, and descending. The third
movement corresponds to a non required edge. It starts with the tool
positioned in the orientation of the last filled edge, and consists of a
rising movement, a straight movement till the next vertex simultaneous
with an orientation change of the tool to position it for the next edge
to be filled, and a final descending movement. The trajectory is
therefore converted in a sequence of movements of these three types.
2.4 Communication and control strategy
The communication between the master PC and the robot controller is
performed via a serial and a parallel port. The serial port is used by
the PC to send to robot controller the information about the movements
that must be executed, and the parallel port is used by the PC to read a
digital output of the robot controller indicating if the previous
movement is being executed to synchronize the next movement
communication. Therefore, the trajectory to be executed is communicated
movement by movement, till the whole panel has been filled.
The robot controller has a loaded program that basically reads the
serial port, interprets the transmitted movement, and executes it,
changing the state of a digital output to ask the master PC for a new
movement. This program is written in V+ Language, version 11 (1993), and
it is started from the master PC by a serial port command.
3. CONCLUSION
In this work, the automatic filling of tile joints in sample tile
displays has been addressed by using an anthropomorphic six joint robot.
The tasks that have been successfully solved are: the extraction of the
geometric data from an image of the panel, the definition of the
trajectory to be followed, the conversion of this trajectory to a
sequence of robot movements, the communication of this sequence to the
robot and the execution of the movements. The filling of the joints of
sample tile panels is a totally hand made work. The application
developed will significantly reduce the cost of the process.
Future works to improve the system are: optimizing the
synchronization between the plaster supply flow and the speed of the
robot movement, and the automation of cleaning process.
4. REFERENCES
De la Escalera Hueso, A. (2001). Vision por computador: fun
damentos y metodos, Prentice Hall, 8420530980, Madrid.
Morris, T. (2004). Computer Vision and Image Processing. Palgrave
Macmillan. ISBN 0-333-99451-5
*** (1993). V+ Language, ver. 11. Reference Guide. Staubli France
S.A., Adept Technology, Inc., USA.
*** (1998), Image Processing Toolbox User's Guide, v. 2.1 for
Matlab 5.2, MathWorks online version ftp.mathworks.com
*** (2009) http://www.boyser.com--Bombas Boyser S.L., Accessed on:
2009-06-09