Jul 8, 2012 , by
Public Summary Month 5/2012
Walk-through programming
The problem of walk-through programming in contact with an hard surface is still under studying.
The main concerns are related to the implementation of a robust algorithm to detect the contact and estimate the normal to the surface.
Wheel localisation and burr analysis
To localise the wheel a camera mounted on top of the working area is usually adopted. Further, in industrial applications the valve hole is the feature usually adopted to localise the wheel. Nevertheless, we decided to mount the camera on the robot shoulder considering the following advantages:
- it is a simpler and more compact solution, that does not require any additional frame to support the camera (that could represent a dangerous obstacle in the robot workspace);
- it allows for a bigger and less occluded field of view (we do not need to ensure that the arm does not occlude the wheel or the valve hole);
- the shoulder camera can be used as an additional sensor during the deburring operation or as a recording device.
The shoulder mountig, however, entails disadvantages as well: the majority of the time the valve hole is occluded or difficult to detect due to shadows or poor illumination. The pictures taken by the camera from different robot positions suggest that the bolt holes (and their positions with respect to the wheel) represent a set of robust features to localise the wheel.
Concerning burr analysis, it must be noticed that the burr profile is estimated directly on the image plane (no extrinsic camera parameters need to be calibrated). Nonetheless, a calibration of the laser with respect to the camera and a validation of the system precision are of upmost importance.
The following tables show the results of this validation.
Each table compares the results obtained with two algorithms, A e B, and the one computed as the mean of the previous ones. In algorithm A the position of each point of the laser line is determined looking for the point, along a perpendicular to the laser, that maximises the brightness. On the other hand, algorithm B determines the position of the points on the line as the mean value between an upper and a lower threshold on the derivative of the brightness.
The first table concerns measurements of the distance along the z (focal) axis of the camera frame, between the center of the camera frame and the surface of a calibration object, a stair of 9 steps, each with an height of 1 cm.
Mean and standard deviation were computed processing 100 pictures, taken with slightly different light conditions.
The table shows a very low variance in the measurements. It must be noticed, however, that there are small errors in the distances (the nominal distance between two consecutive steps is 1 cm) due to the fact that the distance between the camera and the laser was not corrected with an accurate calibration.
Algorithm A |
Algorithm B |
Mean |
|||
Mean |
Standard deviation |
Mean |
Standard deviation |
Mean |
Standard deviation |
0.4851 |
0.000000 |
0.4851 |
0.000125 |
0.4851 |
0.000062 |
0.4746 |
0.000000 |
0.4747 |
0.000046 |
0.4746 |
0.000023 |
0.4642 |
0.000000 |
0.4642 |
0.000049 |
0.4642 |
0.000024 |
0.4537 |
0.000081 |
0.4537 |
0.000235 |
0.4537 |
0.000134 |
0.4432 |
0.000000 |
0.4433 |
0.000159 |
0.4433 |
0.000080 |
0.4331 |
0.000038 |
0.4329 |
0.000021 |
0.4330 |
0.000024 |
0.4229 |
0.000000 |
0.4227 |
0.000099 |
0.4228 |
0.000049 |
0.4123 |
0.000021 |
0.4124 |
0.000233 |
0.4123 |
0.000116 |
0.4022 |
0.000000 |
0.4023 |
0.000150 |
0.4022 |
0.000056 |
The last table shows the z distances measured on a part of the wheel. In this case there is no ground truth, but the small standard deviations demonstrate that accurate measures can be obtained even on a rough metal surface.
Algorithm A |
Algorithm B |
Mean |
|||||
Mean |
Standard deviation |
Mean |
Standard deviation |
Mean |
Standard deviation |
||
0.4338 |
0.000000 |
0.4335 |
0.000024 |
0.4337 |
0.000012 |
||
0.4340 |
0.000082 |
0.4335 |
0.000024 |
0.4337 |
0.000044 |
||
0.4375 |
0.000025 |
0.4375 |
0.000026 |
0.4375 |
0.000025 |
||
0.4435 |
0.000027 |
0.4435 |
0.000027 |
0.4435 |
0.000027 |
||
0.4452 |
0.000027 |
0.4453 |
0.000027 |
0.4453 |
0.000027 |
||
0.4436 |
0.000027 |
0.4436 |
0.000027 |
0.4436 |
0.000027 |
||
0.4381 |
0.000026 |
0.4381 |
0.000030 |
0.4381 |
0.000027 |
||
0.4334 |
0.000028 |
0.4330 |
0.000028 |
0.4332 |
0.000028 |
||
0.4331 |
0.000028 |
0.4324 |
0.000092 |
0.4328 |
0.000055 |
||