To check the approach, I wrote a small program that performs the calculations and detected a serious problem with my approach.

While the IR sensor scans the area, the program cannot differentiate between the three transmitters. This means that Transmitter 1, 2 and 3 might be found in that sequence, but also in the sequence 2, 3, 1 or 3, 1, 2 as can be seen in the picture below.

Luckily not all angles result in valid robotpositions; the angle between transmitter 1 and 2 cannot be smaller than 45 degrees and it cannot be larger than 180 degrees. The same for the angle between transmitter 2 and 3, and the angle between transmitter 3 and 1 must be 360 - Angle1 - Angle2, and can never be smaller than 90 or larger than 270 degrees.

Alas, quite a lot of combinations prove to result in valid robot positions..

As an example, suppose the first angle the module finds is 108 degrees, the second angle is 135 and the third angle is 117. This would result in a robot position at (15,23).

If the angles were found in the sequence Angle2, Angle3, Angle1 however, the sequence would become 135, 117 and 108, which would result in a position of (15,12). The same holds for the sequence 117, 108 and 135 which would position the robot at (30,27).

A couple of solutions for this problem can be used, but I still have to decide what would be the most promising.....

I am thinking of using a magnetometer to find the orientation of the robot, or any trick that ensures the scanning always starts at IR transmitter 1.

Not sure yet....

## Discussions

## Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.