WPS2 Manual

© 2011-2015, Kevan Hashemi, Open Source Instruments Inc..


Thermal Expansion
Dynamic Range


Device Mounting: Use a torque wrench to tighten the WPS mounting screw. Do not exceed torque 0.17 Nm (24 in-oz) or you will damage the kinematic mounting surfaces and ruin the absolute calibration of the instrument.


A Wire Position Sensor contains two cameras that take pictures of the same section of the same stretched wire from two different angles. Calibration of each camera allows us to determine for each image a plane that contains the center-line of the wire. By intersecting these two planes, we obtain the center-line itself. Thus each camera produces a plane, and each pair of cameras produces a line. We call these planes wire planes, and their intersections are wire lines.

Figure: Front View of the WPS2-B, showing identity number label, calibration stickers over camera mounting screws, and a view of the nine-LED array inside. The wire will pass through the opening between the cover metal and the front wall. To remove the cover, we loosen the two screws that hold it to the base plate.

The camera lens is a 6-mm diameter, 9-mm focal length plano-convex 32469. The aperture is a 500-μm hole drilled in a 250-μm thick brass disk. The aperuture is pressed against the lens in the manner shown here. The image sensors are TC255s from Texas Instruments. Illumination comes from an array of nine OVSA1 LEDs, each of which emit roughly 20 mW of 620-nm red light. The WPS Head (A3022) allows simultaneous exposure of both images followed by sequential readout. The circuit also provides two connections for 1-kΩ RTD sensors. The WPS2 provides a single RTD glued to the end wall. The cover is secured in place by two thumb screws, so that the entire device may be mounted upside down.

Figure: Left View of WPS2-B with Cover Off. The two cameras are the black parts mounted to the end wall. The LED array is helt up by a post. The Wire Position Sensor Head (A3022) circuit with its RJ-45 socket is to the right. The temperature sensor glued to the end wall. The white screen against which the cameras view the wire is stuck to the inside of the cover, we can see it in the Rear Right view of the WPS2-A. We also have a Rear Left view of the WPS2-A.

The WPS2 obtains excellent images with a 20-ms exposure and adequate images with a 5-ms exposure. The WPS2-A uses the TC255 image sensor in a 0.3-in ceramic package. The WPS2-A, and all versions of the WPS1, use the TC255P in a 0.4-in plastic package. The WPS2 is almost identical to the WPS1-D. The WPS1 sensor plates were glued in place rather than screwed. The WPS1 used infrared light rather than red light, and apertures were usually less than 500 μm. The WPS1 required 50-ms exposure times.

Figure: The WPS2 Lens Holder. On the left, the top view showing the threaded light baffle. On the right, bottom view showing the 500-μm copper apperture.

The TC255P image sensor has been obsolete for ten years, but small stocks still exist in the United States. We bought enough oin 2015 to make dozens of WPS2-Bs.


Schematic View: Schematic view of WPS2 assembly.
End Wall: Drawing of End Wall.
Base Plate: Drawing of Base Plate.
Lens Holder: Drawing of Lens Holder.
CCD Holder: Drawing of CCD Holder for 0.3-in Package.
CCD Holder: Drawing of CCD Holder for 0.4-in Package.
LED Holder: Drawing of LED Array Holder.
Geometry Sketch: Sketch of WPS2 optical geometry, showing field of view.
Mounting Plate: Drawing of Mounting Plate.
WPS Head: Manual for the WPS2 Head (A3022A).


The following table gives the properties of the WPS2 optics.

Aperture-CCD10.8 mm
Aperture Diameter500 μm
Aperture Centering±100 μm
Lens Focal Length9 mm
Lens Diameter6 mm
Lens Thickness1.75 mm
CCD Width3.4 mm
CCD Height2.4 mm
CCD Pixel Size10 μm × 10 μm
Field of View±150 mrad × ±110 mrad
Aperture Height Above End Wall15.8 mm
Aperture to Front of CCD Mounting Plate1.9 mm
Exposure Time for Black Wire20 ms
Depth of Field30 mm to 130 mm
Dynamic Range(41.0±10 mm, 63.2±5 mm, −5 mm)
Optical Center(38.0 mm, 63.2 mm, −5 mm)
Table: Specification of WPS2 Optics.

The WPS2, when combined with its calibration constants, measures wire position in mount coordinates. For the definition of mount coordinates with respect to the three mounting balls, see here. Wires run parallel to the z-axis. The optical center of the WPS2 is the place where the two camera center lines intersect, as shown in this sketch. The nominal position of this intersection is (38.0 mm, 63.2 mm, −5 mm). The actual location of the intersection is within 0.5 mm of the nominal location. The overlapping field of view of the two cameras is not symmetric about the optical center. The guaranteed square dynamic range of the WPS2 for a thin wire is ±5 mm in x and y, with the square centered upon the point (41.0 mm, 63.2 mm, −5 mm). We calibrate the WPS2-B in a diamond-shaped area 18 mm wide in x and 8 mm high in y, and its accuracy is better than 5 μm rms within the calibration range. Because the WPS2 can be mounted in any orientation, we can mount it at 90° so as to make its ±9 mm dynamic range vertical, in the direction of wire sag.

The WPS2 will locate wires within its field of view with absolute accuracy 5 μm rms or better. With a radially-symmetric, sharp-edged wire, the absolute accuracy should be better than 2 μm. Measurement time when used with the LWDAQ Driver (A2071E) is roughly 500 ms. When used with the LWDAQ Driver (A2037E), measurement time is roughly 1500 ms.

The following table gives the properties of the WPS2 electronics.

Operating Temperature0-75°C
Thermometer Accuracy±0.3°C
Thermometer Precision±0.05°C
Thermometer Stability±0.05°C
Image Noise<0.2 ADC counts rms
Image Dark Current<25 ADC counts/s at 20°C
Image Dynamic Range>150 ADC counts
Image Intensity Precision0.5%, 8-bit counts
Minimum Exposure time<10 ms
Table: Specification of WPS2 Electronics.

The operating temperature range is determined by the radiation-resistant diode-chain voltage regulator in the A3022 circuit, as we describe in Diode Regulator.


The WPS2 is a LWDAQ Device. Plug it into a LWDAQ Driver or LWDAQ Multiplexer, open the LWDAQ Software and select the WPS Instrument from the Instrument Menu. Set the instrument's internet protocol address, driver socket, and multiplexer socket to select the target WPS. Press Acquire. The WPS Instrument, shown below, captures images from both WPS cameras at once and displays them one above the other, with the image from camera one on top. With daq_simultaneous set to 1, the images are illuminated by the same flash of the LED array. With the same parameter set to 0, two separate flashes are used. This latter setting is useful for debugging the simultaneous data acquisition, and is also required by the WPS1 electronics, which do not support simultaneous exposures.

Figure: The WPS Instrument on MacOS, LWDAQ 7.6+. Note the two images acquired and displayed simultaneously. The WPS Instrument combines them into one tall image and analyzes the top and bottom halves separately. The top half is the image taken from the top camera, which is camera one.

The WPS instrument analyzes both images in the same way, whether thay were acquired simultaneously or separately. The results of analysis are displayed on the screen. For details of the types of analysis available, and how the results will be displayed, see WPS Instrument. We can use the Acquisifier to obtain measurements from multiple wire position sensors. The WPS_6.tcl is an example Acquisifier script that obtains wire edge positions from multiple WPS1 or WPS2 instruments and combines these with calibration constants to obtain measurements of wire position in the coordinates of the instrument mounting balls.

The WPS2 comes with one 1-kΩ RTD sensor glued to the end wall to measure the temperature of the WPS frame. To read out the RTD, use the Thermometer Instrument with daq_device_name = A3022 and daq_device_element = 1. There are two plugs on the WPS Head (A3022) for RTDs. The WPS end-wall RTD is connected to P1. We can connect another RTD to P2 and read it out as device element 2. The RTD_1.tcl is an example Acquisifier script that obtains temperature measurements from WPS2s.

The following plot shows data we obtained from one instance of the LWDAQ Software, using two separate Acquisifier scripts. We open the Acquisifier from the Tool menu, then press Spawn to create a second Acquisifier. We use one with a script like WPS_6.tcl to obtain wire position, and another with a script like RTD_1.tcl to obtain temperature measurements. We set the wire position script to execute every five seconds, by setting its cycle period seconds parameter to 5. We set the temperature script to execute every sixty seconds by setting its cycle period seconds to 60.

Figure: WPS2 Resolution. We see temperature every minute and position every five seconds. Flash time is 10 ms and the wire is black vectran. We obtained this data simultaneously with two acquisifier scripts, one for position and one for temperature.

The graph above shows us the short-term resolution of the WPS2 with a black vectran wire and flash time 10 ms. We can operate equally well, perhaps with slightly improved resolution, with 20 ms or 30 ms flash times. Once we get to 40 ms, however, there is a chance of saturating the CCD. The resolution in x is 0.4 μm and in y is 0.4 μm. We expect the y-resolution to be better because the triangulation angle of the cameras favors the vertical direction over the horizontal.

When combined with a LWDAQ Driver (A2071E), exposure time 20 ms, and simultaneous image captures, the WPS Instrument acquires image pairs from the WPS2 at 2.3 Hz. With separate flashes, the rate drops to 2.0 Hz. With the older A2037E driver, the rate with simultaneous exposure is 0.7 Hz.

The Wire Position Sensor Express script (WPSX) allows us to connect to six WPS2s simultaneously and acquire images from them in parallel. Open LWDAQ Version 7.6.4+ and run the script with Run Tool from the Tool menu. We see a window with separate sections for six sensors. Each sensor can be a WPS2 or WPS1 depending upon the WPS2 checkbox. You can enable individual sensors with another checkbox. Each sensor gets its own IP address, flash time, driver socket, and name. We can connect several sensors to the same driver if we like, but the fastest acquisition will occur when each sensor has its own driver. When it acquires the images, it displays a miniature version of each image in the window. There are no analysis results overlayed upon these miniature images, but if you click on one of them, another window opens up giving you a larger version of the image, and this one will have the results of analysis overlayed.

The WPSX tool uses the name to look up the sensor's calibration constants in a calibration table that is embedded in the script itself. The WPSX analysis looks up each sensor in the list and converts the wire image positions into actual wire measurements in mount coordinates. It displays these on the screen in the same format as the WPS_5.tcl Acquisifier script. There is a timestamp at the start of the result line, followed by sensor name, x, and y in millimeters for each sensor. If the WPSX cannot find the sensor in its calibration table, it will print the measurement in blue, having used the calibration constants for the first camera in its calibration list. If the WPS analysis returns an error, the measurement will be red, with x and y set to −1. With Save checked, the WPSX saves the result line to a result file. You pick the file with buttons in the Configuration panel. The Draw and Analysis buttons enable the drawing of images in the WPSX window, which takes a little time, and the analysis of the images also.

With a fast local ethernet connecting the data acquisition computer to the six drivers, and a fast computer to display and analyze the images, data acquisition should proceed at the same rate we would obtain from a single sensor. We turned off image display and drawing on our old lap-top computer, and acquired images from six sensors on our departmental network from six A2037E drivers. The time taken to acquire the six images varied from 1.5 s to 4 s, so that our average rate was around 0.4 Hz. The variability in the rate suggests traffic on our local internet is slowing down the image transfers. In theory, with six A2071E drivers and an isolated 100-MBit/s Ethernet, we can obtain a sustained acquisition rate from six sensors of 2.0 Hz.

We can control the WPSX through the LWDAQ System Server. Open the System Server from the File menu and set it to execute. Open the WPSX also and configure it to acquire data as you like. From another computer, open a socket to the System Server and send the command "WPSX_execute Acquire". Now read back the line that this command returns, which will arrive once the acquisition and analysis is complete.

Thermal Expansion

The mechanical structure of the WPS2 is made entirely of aluminum. The same is true of all versions of the WPS1. The image sensor itself, however, is made of silicon. When the aluminum chassis warms up, its shape can change if there is a temperature gradient from one side to the other. We measured wire position with fluctuations in temperature in WPS1 Performance. With daily 1.5°C changes in temperature over a period of a week, the measured position was stable to better than 0.5 μm rms. In the face of sudden 1°C changes in ambient temperature, we the measured position jumped by 2 μm and settled back to its previous value. Here we concern ourselves with the change in measured position that results from a slower change in temperature, so that we can assume the entire sensor is in thermal equilibrium.

Let us suppose we calibrate our sensor perfectly at some known temperature Tc. The coefficient of thermal expansion of aluminum is kAl = 25 ppm/K. For the moment, let us assume that all parts of the device, including the image sensors, share the same coefficient of expansion. Thus we assume that at temperature T, every dimension of the sensor is larger by (TTc) kAl. Now let p(T) be the point that the sensor measures to be at mount coordinates (x, y) when the sensor is at temperature T. Because of thermal expansion, the actual position of p varies with temperature. But at Tc, we have p(Tc) = (x, y). The sensor is held in place by its cone ball, and the center of this ball is the origin of our mount coordinates. As the sensor expands, the coordinates of the origin do not change. Because the sensor expands uniformly, it does not rotate upon its kinematic mount.

p(T) = (TTc)(x, y)kAl.

Consider the point p(Tc) = (38 mm, 64 mm), which lies near the center of the WPS1 and WPS2 field of view. With our assumption of uniform expansion, we have:

dp(T)/dT = (x, y)kAl = (38 mm, 64 mm) × 0.000025/K = (+0.95, +1.6) μm/K.

By definition, we will measure the position of p(T) to be (x, y) at any temperature, so uniform thermal expantion kAl introduces a measurement error of −0.95 μm/K in x and −1.6 μ/K in y. If we warm up our sensor by 10°C above its calibration temperature, the center of its field of view moves up by 9.5 μm and sideways by 16 μm.

Now suppose we now move our point p(T) a distance w across the field of view at temperature T. The sensor will report a movement:

w(T) = |Δp(T)| = w(1−(TTc))kAl.

If we warm up our sensor by 10°C above Tc, it will measure a 10-mm movement to be only 9.9975 mm, for a net error of −2.5 μm, which is small enough to ignore. We see that change in temperature of one or two degrees will introduce measurement errors less than 5 μm rms, but larger changes we must account for. We have always measured the temperature of the sensors during calibration, and now the WPS2 provides its own on-board thermometer to determine the relative change in temperature with respect to calibration. By adding 0.95 μm/K to x and 1.6 μm/K to y we can correct the WPS measurement at the center of its field of view.

Let us now consider the silicon image sensor. In the direction perpendicular to the wire image, the sensor package is held in a 10-mm aluminum aperture. The package is plastic in the WPS1 and ceramic in the WPS2. Both have coefficients of thermal expansion that are much smaller than that of aluminum. The gap between the aperture and the sensor is filled with a thin layer of glue. When the aperture warms by 10°C, it will tend to expand by 2.5 μm, while the image sensor package will not. Stress will develop between them. The stress resists the widening of the aperture encourages some stretching of the sensor package. To the first approximation, the center of the silicon image sensor will not move with respect to the center of the aperture. Thus we expect the non-expansion of silicon to have no effect upon the position of the center of the field of view of the WPS. When a wire is at the center of the field of view, its images lie upon the center of both image sensors.

Now consider a wire at the edge of the field of view. The coefficient of thermal expansion of silicon is only 2.6 ppm/K. We previously assumed that the sensor expanded by 25 ppm/K. If the width of 100 pixels was 1 mm at 20°C, we assumed theiy would expand to 1.00025 mm at 30°C. But now we see that the width of 100 pixels will expand only to 1.00003 mm at 30°C. Because we assumed the pixels had expanded by 25 ppm/K, we figured the WPS would under-report displacements by 25 ppm/K. Now we see that the WPS will under-report displacements by only 2.6 ppm/K. In our equation for w(T), we should use kSi = 2.6 ppm/K instead of 25 ppm/K. A WPS that is 10°C above its calibration temperature observing a 10-mm movement of a wire will report this movement to be only 0.26 μm less than 10 mm, which is an effect so small we can ignore it.

We conclude that the expansion of the aluminum chassis causes a displacement of the entire field of view of the WPS1 and WPS2 by +0.95 μm/K in x and +1.6 μm/K in y, but no significant change in the scale of its measurements within the field of view, nor any significant rotation of the field of view. To correct WPS measurements for temperature, we add (T-Tc)(0.95, 1.6) μm/K to the sensor measurement, where (T-Tc) is the amount by which the current temperature is above the calibration temperature.


Calibration of the WPS2 uses the same procedure we developed for the WPS1. At each pin position in the calibration, we use the Acquisifier with script WPS_Acquire.tcl to measure wire edge positions and rotations, WPS2 temperature, and CMM temperature. The Acquisifier writes all these values to a text file, and also stores the combined top and bottom camera image as obtained from the WPS Instrument. Here are the calibration constants for the existing WPS2s. We use calib_extract_1.tcl to combine the CMM and WPS calibration measurements into a single data file. We use calib_calc_6.pas to read this data file and determine the calibration constants. We later use calib_check_1.tcl to determine the calibration error of the two cameras acting together. If we need to re-calculate the wire edge positions in the image we use calib_reanalyze_2.tcl.

                pivot (mm)              sensor (mm)            rot (mrad)          pivot-  error
Camera     x      y        z       x      y        z         x        y       z    ccd (mm) (um)
C0562_1 -3.5814 88.8400 -4.9796 -12.6389 94.3849 -4.9598 -1558.772  -0.344 -566.827 10.620  1.6
C0562_2 -3.2934 39.0816 -4.9960 -12.3827 33.6002 -5.1009  1582.496  -3.005  536.976 10.615  1.0
C0563_1 -3.5214 88.9127 -5.1230 -12.7312 94.5887 -5.0763 -1575.969   5.514 -542.610 10.819  1.5
C0563_2 -3.3509 39.2680 -4.9734 -12.5065 33.7752 -4.9481  1551.272  19.575  539.416 10.677  1.1
C0564_1 -3.9747 88.5415 -4.7928 -13.1483 94.0905 -4.6594 -1569.021  -8.746 -512.315 10.722  1.4
C0564_2 -3.9695 39.3654 -4.7458 -13.1743 34.0412 -4.7220  1593.724   4.024  520.136 10.634  0.9
C0565_1 -3.5672 88.6207 -5.0629 -12.6076 94.2726 -4.9598 -1567.705  10.392 -546.849 10.662  1.0
C0565_2 -3.4484 39.8043 -5.2642 -12.5624 34.5183 -5.4396  1565.119  -3.078  508.839 10.537  1.3
C0566_1 -3.8859 88.6454 -5.2273 -12.9857 94.2809 -5.1865 -1582.320 -20.841 -534.469 10.704  1.1
C0566_2 -3.7466 39.2677 -5.0547 -12.9736 33.8539 -5.0552  1563.256 -13.310  543.711 10.698  0.7
C0567_1 -3.5694 88.6711 -5.0861 -12.6712 94.3061 -5.0781 -1580.440  -5.260 -537.937 10.705  1.0
C0567_2 -3.7736 39.4031 -4.8684 -12.9777 33.9881 -4.9191  1572.537   0.816  536.695 10.679  0.9
C0568_1 -3.3093 88.3844 -5.1412 -12.5615 93.9346 -5.1872 -1570.244  16.832 -516.928 10.789  1.5
C0568_2 -3.3202 39.7891 -5.0332 -12.5296 34.4080 -5.0489  1574.662 -22.893  523.054 10.666  1.4
C0569_1 -3.7589 88.3002 -5.1047 -12.8801 93.9368 -4.9732 -1572.172   0.810 -521.804 10.723  1.1
C0569_2 -3.3012 39.2002 -5.0119 -12.4385 33.8331 -5.0350  1567.840   9.412  527.534 10.597  0.8
C0570_1 -3.2442 88.4068 -4.9615 -12.2915 94.0330 -4.7980 -1567.418  13.082 -564.814 10.655  0.8
C0570_2 -3.6587 39.5604 -4.7582 -12.8826 34.2429 -4.8317  1571.667   8.676  507.737 10.647  1.0
C0571_1 -3.4310 88.3453 -4.9420 -12.4542 94.0619 -4.8731 -1574.059  11.026 -545.430 10.682  0.7
C0571_2 -2.9100 39.2205 -4.8333 -12.0803 33.9034 -4.8948  1586.120  -3.044  523.163 10.601  1.9
C0572_1 -3.3310 88.4273 -5.0365 -12.3326 94.0394 -5.0141 -1572.532  -3.147 -584.894 10.608  1.1
C0572_2 -3.3205 39.1416 -4.6273 -12.5399 33.8051 -4.6120  1585.005  35.942  502.761 10.653  1.6
C0573_1 -3.0105 88.0131 -5.0867 -12.1858 93.5084 -5.0842 -1566.850   1.849 -529.929 10.695  1.7
C0573_2 -3.1108 39.4726 -5.1132 -12.4342 34.2241 -5.4606  1583.793 -19.189  474.527 10.705  1.7
C0574_1 -3.7672 88.0655 -5.1314 -12.9420 93.6321 -5.1718 -1563.151 -11.060 -502.908 10.732  1.0
C0574_2 -3.4638 39.1504 -4.9903 -12.7721 33.8712 -4.9789  1582.060   9.463  476.708 10.701  1.0
C0575_1 -3.5899 88.2808 -4.8065 -12.7710 93.7388 -4.5779 -1555.422   0.226 -533.660 10.683  0.9
C0575_2 -3.4780 39.4648 -5.2590 -12.6939 34.0032 -5.3275  1574.193  -9.697  540.351 10.713  1.1
C0576_1 -3.6122 88.3072 -5.2199 -12.6852 93.9971 -5.2623 -1559.916  -9.041 -552.198 10.710  1.7
C0576_2 -3.5002 38.8492 -5.1328 -12.8716 33.4424 -5.3060  1579.434  -1.799  505.294 10.821  1.6
C0577_1 -3.0532 88.1737 -4.6874 -12.1139 93.7990 -4.6121 -1575.027  11.455 -531.172 10.665  1.0
C0577_2 -3.1468 39.4506 -4.9204 -12.5241 34.1552 -4.9024  1574.531 -12.994  499.106 10.769  1.0
C0578_1 -3.6175 88.0932 -5.0633 -12.7138 93.6782 -4.9648 -1572.136  12.085 -541.722 10.674  0.7
C0578_2 -3.3534 39.2265 -4.9850 -12.5076 33.7612 -4.9016  1565.918  11.386  492.205 10.662  0.9
C0579_1 -3.3659 88.2530 -5.1653 -12.4633 93.8897 -5.1154 -1564.642   8.264 -536.941 10.702  1.8
C0579_2 -3.7198 38.9574 -4.9004 -13.0884 33.5283 -4.9737  1571.121 -15.314  507.540 10.828  1.1
C0580_1 -3.4580 88.3465 -4.9325 -12.6421 94.0081 -4.8300 -1575.557   9.820 -548.068 10.789  1.7
C0580_2 -2.8809 39.4290 -5.0137 -12.1095 33.9672 -5.1403  1567.693  -6.918  543.600 10.724  1.6
C0581_1 -3.6676 88.2095 -5.3032 -12.9480 93.6797 -5.2093 -1570.081  12.812 -494.762 10.773  0.8
C0581_2 -3.3130 39.2144 -5.5655 -12.5075 33.7681 -5.7888  1571.064   2.444  529.898 10.689  1.6
C0582_1 -3.2097 88.1029 -4.8020 -12.2649 93.7537 -4.6914 -1568.776   5.256 -547.926 10.674  0.9
C0582_2 -3.4677 39.2683 -4.5794 -12.7149 33.8733 -4.7029  1567.015   3.807  535.636 10.707  1.1
C0583_1 -2.9301 88.2465 -5.0233 -12.0009 93.7958 -5.0725 -1575.312  -8.390 -546.042 10.634  1.3
C0583_2 -3.2566 39.5093 -5.0483 -12.6026 34.1069 -5.1614  1571.859 -26.316  537.762 10.796  1.7
C0584_1 -3.4858 88.3578 -5.0164 -12.7522 93.8360 -5.0101 -1564.727  -1.190 -501.328 10.765  1.8
C0584_2 -3.1045 39.4025 -4.8897 -12.3314 34.1424 -4.9835  1570.411  -4.260  522.362 10.621  1.6
C0585_1 -3.6850 88.3330 -5.1424 -12.8687 94.0633 -5.0198 -1576.082  16.447 -555.258 10.825  2.5
C0585_2 -3.3292 39.2889 -5.1974 -12.5287 33.8389 -5.2820  1569.332 -18.081  547.339 10.693  1.8
Q0216_1 -3.5591 88.5890 -4.9124 -12.2187 93.8527 -4.8770 -1555.264 -22.240 -506.775 10.134  4.1
Q0216_2 -3.3179 39.6788 -4.7670 -11.7975 34.4772 -4.8075  1583.882   1.952  546.866  9.948  3.3
Q0217_1 -3.7363 88.0171 -5.1652 -12.3476 93.1622 -5.3174 -1570.841  -2.356 -523.955 10.032  4.1
Q0217_2 -3.7764 39.2806 -5.2529 -12.4793 33.8572 -5.4969  1579.514 -14.634  537.788 10.257  3.4
Q0218_1 -3.5813 88.2743 -5.0126 -12.3336 93.4845 -5.2073 -1577.138 -17.503 -501.868 10.188  2.7
Q0218_2 -3.0523 39.2724 -5.0193 -11.6411 34.0799 -5.1460  1587.486 -16.533  524.898 10.037  3.5
Q0219_1 -3.8767 88.2140 -4.7340 -12.6789 93.3891 -4.6100 -1570.961 -12.751 -512.679 10.212  2.1
Q0219_2 -4.0764 38.9668 -5.0679 -12.8813 33.7422 -5.2887  1564.115   4.237  515.015 10.241  1.6
Q0220_1 -3.8005 88.5382 -4.7380 -12.5620 93.8282 -4.6276 -1566.102  -2.963 -518.161 10.235  1.6
Q0220_2 -3.8483 39.3110 -5.1357 -12.6152 34.0222 -5.2907  1582.789  -2.921  523.668 10.240  2.0
Q0221_1 -3.3437 88.5564 -4.9704 -12.1553 93.9007 -5.2349 -1564.318 -27.889 -536.436 10.309  2.4
Q0221_2 -3.3022 38.9191 -5.1785 -12.5569 33.2544 -5.2791  1572.362  -5.979  508.251 10.851  2.7
Q0222_1 -3.5868 88.5916 -5.0083 -12.2011 93.8793 -5.1198 -1572.243  -4.076 -507.009 10.108  1.5
Q0222_2 -3.6320 38.9257 -5.1766 -12.2432 33.7289 -5.3273  1588.764  -7.073  530.035 10.059  2.2
Q0223_1 -3.2018 88.1766 -4.7839 -11.9541 93.4684 -4.8056 -1556.855 -12.150 -538.599 10.228  2.9
Q0223_2 -3.6389 39.1648 -5.1051 -12.4195 33.8758 -5.2099  1574.238   7.316  497.997 10.251  2.4
Q0224_1 -3.1788 88.0793 -4.7190 -11.9091 93.3991 -4.7437 -1571.332  -3.309 -517.308 10.223  1.5
Q0224_2 -3.2386 39.0490 -4.8937 -11.8836 33.8782 -4.9505  1576.488   1.762  513.098 10.074  1.6
Q0225_1 -4.0589 88.3720 -4.8995 -12.8287 93.5064 -4.9055 -1553.095  -4.769 -522.098 10.162  1.5
Q0225_2 -3.3123 39.3407 -5.0090 -11.8970 34.3197 -5.2214  1571.366  -6.593  525.225  9.948  1.8
Q0226_1 -3.6464 88.1116 -4.8707 -12.2739 93.3026 -4.8040 -1569.563   1.982 -532.738 10.069  1.7
Q0226_2 -3.3656 39.1447 -5.9433 -13.4427 33.1344 -6.2755  1561.946  -6.834  539.483 11.738  3.7
Q0227_1 -3.9777 88.4234 -4.7618 -12.7566 93.7305 -4.7552 -1555.219 -19.688 -518.563 10.258  1.8
Q0227_2 -3.1953 39.3071 -4.7512 -11.8001 34.1020 -4.9436  1569.442 -10.096  520.840 10.058  2.2
Table: Calibration Constants for Existing WPS2s. Note that the error is given for the cameras individually, and is in units of microns.

The micrometer stage failed after the second calibration and we re-built the calibration procedure using a new probe. The ray errors for the subsequent WPS2s average around 0.9 μm, as compared to 1.8 μm for the WPS1s (Versions B, C, and D). Thus we see a factor of two improvement with respect to the WPS1, and we suspect that this is due to improvement in the calibration accuracy, not the fundamental accuracy of the instrument.

[05-JUN-13] The C0584 and C0585 calibrations have line error 4.4 μm and 3.1 μm respectively, but they are measured over a larger field of view. The calibration spans 12 mm in x and 8 mm in y.

[01-DEC-15] We have 12 completed WPS2Bs. We calibrate Q0218 over a region 18 mm in x and 8 mm in y. See Q0218 for pin locations and errors. Calibration line error is 3.9 μm, which is consistent with the calibration error of our WPS2A devices over a 12 mm × 8 mm region.

Figure: Calibration Error versus Reference Plane for Wire Measurement.

[02-DEC-15] By default, we calculate wire position where the measured wire center line crosses the plane z = −5 mm. The graph above shows how the calibration error varies with our choice of z-plane. We provide plots for our new Q0218, a WPS2B, and two WPS2As. We note that the calibration range for the WPS2As is smaller.

[03-DEC-15] We calibrate Q0216 (4.6 μm), Q0217 (4.6 μm), Q0219 (3.3 μm), Q0221 (4.0 μm), and Q0222 (1.9 μm).

[07-DEC-15] We calibrate Q0220 (2.4 μm), Q0223 (4.1 μm), Q0224 (2.8 μm), Q0225 (2.8 μm), and Q0227 (2.7 μm). We have two pin positions with the pin touching the edge of the field of view in our Q0226_A calibration, so we calibrate with only sixteen pin positions, Q0226 (5.0 μm).

[08-DEC-15] We will ship Q0217-Q0225, and Q0227 to CERN, to make a total of 10. We keep back Q0216, but we accept its calibration. We keep back Q0226 but reject its calibration. We re-align the bottom camera on Q0226, and we intend to re-calibrate.

Dynamic Range

[05-JUN-13] The WPS2-A is provides a dynamic range of ±5 mm in x and y centered about on (41.0 mm, 63.2 mm, −5mm) in mount coordinates. Our original calibration routine explored 38±6 mm in x and 63± 3 mm in y. We re-calibrate sensors C0584 and C0585 with a grid of 37 points covering 41±6 mm in x and 63±4 mm in y. The following two plots show the location of the calibration pin in mount coordinates, as measured by the CMM, and the exaggerated error of the calibrated WPS in measuring these same pin positions.

Figure: Line Calibration Error of C0584, Measurement C. The errors are exaggerated by ×100.

The line error of C0584_C is 4.4 μm, and that of C0585_B is 3.2 μm.

Figure: Line Calibration Error of C0585, Measurement B. The errors are exaggerated by ×100.

We are unable to calibrate the sensor over a ±5 mm range in y. Each sensor does have a ±5 mm dynamic range in y, but the center of this range varies by ±1 mm from one sensor to the next. Furthermore, the pin we use in calibration has diameter 1.6 mm, which is far larger than the 0.4-mm wires we expect to use with the WPS2. The thickness of the pin subtracts another 0.6 mm from our calibration range. The result is we calibrate over 12 mm × 8 mm instead of 10 mm × 10 mm.

[01-DEC-15] We calibrate Q0218 over a region 18 mm in x and 8 mm in y. The plot below shows the calibration points and the exaggerated errors.

Figure: Line Calibration Error of Q0218, Measurement B. This is a WPS2B. The errors are exaggerated by ×100.

The steel pin we use for calibration is 1.6 mm in diameter. The calibration points are such that the edge of the pin is at least one diameter away from the edge of the dynamic range. We have set the center of the field of view to within ±0.5 mm. With a 0.8-mm Vectran wire, we expect the guaranteed dynamic range to be roughly 10 mm high and 20 mm wide.


[29-JUL-15] The absolute calibration of the WPS2-B appears to be good to 4 μm rms within the range of the calibration measurements. With our original calibration measurement positions, the accuracy across the entire advertized range of the device is only 10 μm rms. With an expanded calibration range, the accuracy improves to 4 μm in the advertised range. Measurements at CERN with a motorized stage produce larger errors than we obtain with our own coordinate measuring machine, but the accuracy still appears to be better than 5 μm rms. We are making ten WPS2-Bs for CERN now, and hope to obtain ±5 mm dynamic range overlapping for all sensors, with a well-defined center.


[25-JAN-12] Here is a picture of the CERN test stand taken today. There are two lines of WPS2s looking at a silver-coated white vectran wire. There are two lines of capacitive wire sensors also, looking at carbon fiber wire. The vectran wire is under tension of a 15 kg weight.

Figure: CLIC Test Stand at CERN.

Half of the WPS2s are mounted upside down like this one.

Figure: WPS2 Mounted Upside Down. The lid stays on.

[30-APR-12] We receive back from CERN four WPS2s. Numbers C0562 and C0563 they sent back because we were suspicious of our original calibration. Numbers C06565 and C0568 they sent back because they were damaged in shipping. The RJ-45 connectors on the main circuit board had been forced up, breaking the shielding tabs. We repaired the damaged sensors and re-calibrated all four. We apply the new calibration constants to the old calibration measurements. The following figure attempts to show how the sensor has changed.

Figure: Change in Calibration of C0568, Exaggerated by ×10. The blue points are the wire positions for calibration, as measured by the CMM. The vector from each blue point to its nearest red point is ten times the error we obtain when we apply the calibration constants we obtain from Calibration B (after shipping) to the images we obtained in Calibration A (before shipping).

The C0568_B calibration constants applied to the C0568_A images give us a line error of 29 μm. The figure shows that the errors are correlated. The error is greater for positions at which the pin is rotated. When we perform the same comparison for C0565 we obtain a line error of 11 μm, also strongly correlated from one point to the next. These errors are consistent with changes in the positions of the optical components due to physical damage.

The C0562 and C0563 sensors disagree with their past calibration constants by roughly 6.9 μm and 5.3 μm respectively. The following figure shows how C0563 has changed.

Figure: Change in Calibration of C0563, Exaggerated by ×100. Meaning of points as above.

We see that the error in the center of the field of view is negligible, and increases towards a maximum of around 10 μm at the edges of the field of view. The original calibration we performed at 18.5°C. The new calibration we performed at 16.7°C. The same plot of exaggerated errors for C0562 shows a similar error pattern. The original C0562 calibration took place at 18.3°C and the new one at 16.5°C. We note that our CMM is self-compensating for the expansion of steel, which is 13 ppm/°C, while our WPS2 is made out of aluminum with expansion coefficient 25 ppm/°C.

[12-SEP-12] At CERN, the survey group has a motorized x-y stage with a WPS mount. They place a WPS on the stage, keep the wire stationary, and move the WPS so that the wire moves around in its field of view. We receive images for both Vectran and metal wire measurements. We analyze the images and find that there are some with only one wire. We eliminate these. There are some with the wire touching the edge. We eliminate these. We find that our analysis with pre-smoothing introduces a shift in image position with these sharp images, especially when the wire is near the image edges. We resturn to our original derivative analysis with no pre-smoothing and no joining of parallel clusters.

The x and y stages are not perpendicular, nor are they parallel to the WPS mount coordinates. At CERN they measure the rotation of the stage with respect to the WPS mount and obtain −0.8 mrad in x and −1.7 mrad in y. We rotate the stage coordinates and add an offset to move the stage origin to the WPS mount coordinate origin. We subtract the stage measurements from the WPS measurement and so obtain a plot of the disagreement between the WPS and the Stage.

Figure: C0564 Disagreement with X-Y Stage, Exaggerated by ×50. The blue squares mark the stage positions and the orange squares mark the disagreements. The line from the blue square to the nearest orange square is the error vector. One square width is an error of 20 μm. The rms error in x and y are both 3 μm, and the rms error length is 4 μm. For spreadsheet of data see here (Open Office).

We see that the disagreement between C0564 and the X-Y stage is 4 μm rms. If we add a scaling factor to the account for thermal expansion of the stage or WPS, we find that we can reduce the disagreement to 2.8 μm rms. But the scaling factor required to achieve this reduction is 1.0005, or +500 ppm, which is far too large to be explained by thermal expansion of aluminum. A 500 ppm expansion occurs in aluminum with a 20°C change in temperature.

[26-SEP-12] At CERN, our collaborators obtan an almost identical error map from the same images as we did above, as you can see here. We used the same analysis (no smoothing, no merging, analysis_enable = 1) and threshold (analysis_threshold = "20 #").

[19-NOV-12] We place sensor C0582 on our test stand in Boston. We have a short length of black vectran wire held tight by springs. We perform a series of experiments designed to test the relative accuracy of the calibration. We start by taking ten measurements without touching the sensor. We take ten measurements each time removing and replacing the cover. We take ten measurements removing the entire sensor and replacing it on the three balls. We place seven calibrated sensors (Q0129, P0203, P0223, P0225, C0582, C0583, C0584, C0585) on the mount one after the other and took measurements for each. We used the WPS_5.tcl Acquisifier script to translate image measurements to wire position. The calibration of C0584 was off by over 100 μm, and so removed it from our test. The table below summarizes our observations.

Experimentσ(x) (μm)σ(y) (μm)
Repeat Measurement Without Touching0.50.2
Repeat With Cover Replacement0.30.2
Repeat with Re-Mounting of Sensor0.40.3
Replacing One Sensor With Another5.63.2
Table: Resolution, Mounting Accuracy, and Calibration Consistency.

We had to take great care not to touch the wire when replacing the cover or the sensor. If we touched it, it would move by tens of microns. We had to be sure to hold down the sensor with two fingers on either side of the mounting screw to make sure it was seated properly. Having practiced the procedure, we were able to obtain the above results. The mounting accuracy appears to be better than 1 μm. The cover appears to have little effect upon the measured wire position.

Figure: Measurement of the Same Wire By Various WPS Devices. We excluded C0584 because its disagreement was over 100 μm.

We conclude that the calibration resolution for replacement of one sensor with another is of order 6 μm in x and 3 μm in y. We do not have enough WPS2s to estimate the replacement error of WPS2s only.

[10-MAY-13] We rebuild C0584 with an anodized aluminum base supplied by CERN. In place of the flat depression, this base has a flat pin inserted in a hole while cold, so as to make a press fit with the base metal. We expand the calibration process to include more points over a wider range, and obtain the following plot of errors. The standard deviation of the error is 2.0 μm.

Figure: Line Calibration Error of C0584, Measurement B. The errors are exaggerated by ×100. We rebuilt C0584 with a hardened aluminum base and added points to the calibration procedure.

The micrometer attached to the vertical stage of our calibration stand does not give vertical movement directly. When we move the micrometer 10 mm, the stage goes up by only 7 mm. Our new calibration procedure was supposed to span a 10 mm × 10 mm area, but instead spans only 7 mm × 10 mm.

[05-JUN-13] We calibrate again with a 12 mm × 8 mm grid. See the Dynamic Range section for details. Line error is 4.4 μm for C0584 and 3.1 μm for C0585 over the entire range.

[10-JUN-13] We now have two calibrations of C0585 with our 12 mm × 8 mm grid. When we apply the C0585_B calibration constants to the C0585_B pin positions, we get a line error of 3.1 μm rms. Figure C0585_B_Errors.gif is a map of the line errors ×100. When we apply the C0585_C calibration constants to the C0585_C pin positions, we get a line error of 2.9 μm rms. Figure C0585_C_Errors.gif is a map of the line errors ×100. The difference between the two error maps is less than 1 μm rms, which suggests that the calibration errors are a function of the C0584 optics. When we apply the B constants to the C positions we get 4.1 μm line error, and when we do the converse, we also get 4.1 μm.

We have two calibrations of C0584 with our 12 mm × 8 mm grid. When we apply the C0584_C calibration constants to the C0584_C pin positions, we get a line error of 4.4 μm rms. Figure C0584_C_Errors.gif is a map of the line errors ×100. When we apply the C0584_D calibration constants to the C0584_D pin positions, we get a line error of 2.2 μm rms. Figure C0584_D_Errors.gif is a map of the line errors ×100. The difference between the two error maps is more than 5 μm in several places, especially in the lower right points. We suspect that these points were imperfect in C0584_C because when we remove them, the C0584_C calibration error drops to 3.3 μm.

[25-JUL-13] Patrick Bestmann at CERN measures the relative error of C0584 and C0585 with a black vectran wire. The plot below gives the error he measured in a 10 mm × 10 mm field of view. He has zeroed the error on the lower-left corner for the relative test.

Figure: Line Calibration Error of C0584, Measurement B. The errors are exaggerated by ×100. We rebuilt C0584 with a hardened aluminum base and added points to the calibration procedure.

We do not understand why Patrick's errors are so much larger than the ones we measure in the overlap between his measurement range and our calibration range, but we are looking into the question.

[27-OCT-15] We have twelve assembled WPS2-B without covers, awaiting calibration, shown here. Ten of these are to fulfill and order placed by CERN.

[26-APR-16] CERN has 10 of WPS2-B. One of them, Q0224, they send it back to us, saying it is faulty. One of the flex cables is unplugged. When we restore the cable, Q0224 works perfectly. We have two spare WPS2-Bs here at OSI on the shelf. At CERN, they check linearity and replacement error, as they describe in their Short Report oWPS. For their nine sensors, the standard deviation of the difference between their two-dimensional stage and the WPS2-B in x or y is between 1.1 and 3.4 μm. Assuming the x and y errors are independent, the difference in xy appears to be 3-5 μm rms. When CERN mounts the same sensor repeatedly, their standard deviation in position measurement is of order 1 μm, according to an e-mail. When they exchange sensors, the standard deviation is around 3 μm, if we ignore two outliers Q0222 and Q0218, which produce errors of +8 μm and −10 μm in x.

[20-JUN-16] We have Q0224 back from CERN again, returned for re-calibration, following these measurements showing that its measurements were offset by 20 μm. We obtain a new calibration, Q0224_B. The table below shows the original and new calibration constants for the two cameras on Q0224.

                  pivot (mm)              sensor (mm)            rot (mrad)         pivot-  error
Camera       x      y        z       x      y        z         x        y       z   ccd (mm) (um)
Q0224_A_1 -3.1980 88.0950 -5.0056 -11.9307 93.4184 -5.0737 -1571.533 -3.859 -514.367 10.228  2.5
Q0224_B_1 -3.1788 88.0793 -4.7190 -11.9091 93.3991 -4.7437 -1571.332 -3.309 -517.308 10.223  1.5
Q0224_A_2 -3.2454 39.0263 -5.0504 -11.8872 33.8536 -5.1274  1576.393  3.672  510.063 10.072  1.1
Q0224_B_2 -3.2386 39.0490 -4.8937 -11.8836 33.8782 -4.9505  1576.488  1.762  513.098 10.074  1.6

When we use the Q0224_A calibration constants with the Q0224_A wire positions, we get line error 2.8 μm. The Q0224_A calibration constants applied to the Q0224_B measurements produce line error 6.4 μm. The Q0224_B calibration constants applied to the Q0224_B measurements give us a line error of 2.4 μm rms. Figure Q0224_B_Errors_x100 shows the line error across the calibration range. When applied to the Q0224_A measurements, the Q0224_B calibration constants give a line error of 6.9 μm.

The two calibration are inconsistent, which suggests that some movement of the cameras took place between the calibrations. The maximum disagreement between the calibrations is only 10 μm in the calibration range. So we are not confident we have discovered the source of the 20-μm offset observed at CERN.