Introduction
We have developed a number of off-the-shelf modules for robotic
applications. Among these is an implementation in the ABB "RAPID"
language of a system to optimally guide a robot based on sensor
inputs (particularly useful with vision sensors)
The robot teaches itself the dependence of these sensor inputs
on the position of the object, and forms a matrix of values, known
as the Jacobian Matrix. This describes how the inputs
change when the robot moves in up to 6 degrees of freedom (linearly
in X, Y or Z, or rotation about these 3 axes).
During production, the inputs are used to calculate the position
of the robot (in up to 6 degress of freedom), and can do so in
a very robust, fault-tolerant way when there is random "noise"
in the sensor inputs.
Example Application
An application is to guide a robot during insertion of a vehicle
windscreen. A number of cameras placed on the robot gripper take
images of parts of the vehicle, and report the position within
the image (measured in pixels) of features on the vehicle. The
robot teaches itself how the position of these features in the
image move when the gripper is moved in each direction: the cameras
are not necessarily aligned with the gripper movements.
In order to be able to guide the robot in six degrees of freedom,
at least six suitable measurements must be taken from the images.
If further meaningful measurements can be taken, this information
can be used to check and enhance accuracy. If for example the
position of the feature in the image changes slightly due to manufacturing
tolerance, change of lighting or other physical reasons, the system
is able to make a "best guess" from imperfect data.
This system shares some features of neural network systems in
that it learns about its environment as part of the commissioning
process, but during the production process the response is tracable
to the inputs which facilitates fault-finding.
|