I want to build a 1-D (azimuth), bidirectional optical tracker. The idea is to have two identical transceiver, mounted on DC servo-motor. The user can move the two servos on rails (reasonably fast), while the servos have to automatically adjust their angular position to face the other transceiver. The distance between the two transceiver should be at least 20 cm. The drawing below will certainly explains better what I mean:
So far, I have thought about using 1-D PSDs (Position Sensitive Detectors like this one) and LASER diode. PSDs are basically sensitive surfaces that have a direct relationship between the LASER dot position on the surface and the output current:
To estimate the angle that the servo motor must rotate, we need two distances: the position of the LASER dot on the PSD (x, given by the above equation), and the distance between the LASER and the PSD (y). With that, we can apply some basic trigonometric formula to find the needed angle:
The problem with this solution is that it is needed to have the distance y. I found two solution to estimate this distance: RSSI (Received Signal Strength Indicator) and ToF (Time of Flight). I read somewhere here that RSSI is not reliable enough to estimate distances. ToF would be much more reliable here. I found this chip which is an all-in-one ToF module that has a range accuracy of around 5 % (depending on several factors). The problem with this is that it increase the complexity of the system and since both sensors (PSD and ToF) work in the IR range, they might be reached by the other sensor's source and it would increase the error in the x and y direction.
Is there another way to reliably estimate the distance between the LASER and the PSD? Has anyone any idea on how the system can be simplified while allowing for angular tracking between the two transceiver?