- If I assume that the light emitted from the IR LED is of cone shape in 3D, then the projection on the ground would mostly in our case be an ellipse.
- The long axis of the ellipse that created by the center LED sits on the moving direction of my Robotracer, Beetle.
- It is observed that when I try to move my Robotracer to cross the line and record the sensor readings along the way, there would be a small part of the sensor readings that seems not changed (see Figure 1). The reason for this observation can be illustrated by using Figure 2.
- Therefore, the maximum of the sensor readings when crossing the line would be smaller than that when the robotracer is running. This, I think, makes my line position estimation (weighted average) give error results at some point, not always. I seem to solve this problem by lowering the normalized sensor output range, from [50, 900] to [50, 750], and by purposely making the maximum values of those raw IR sensor readings larger (multiplied by 1.3). This deserves more investigation. I came up with this solution because I thought when the robotracer try to correct the sensor readings with the normalization parameters I got from moving the robotracer to cross the line, may make the reading corrections exceeds the variable type limit (I use unsigned int for sensor readings). A second thought on this problem shows the guess may not be true.
Fig.1 Sensor readings of the Robotracer, Beetle, when crossing the line
Fig. 2. The projections of the IR LEDs on the ground of the Robotracer, Beetle. (left) when the robotracer is running, and (right) when it records the sensor outputs for normalization