Distance calculation with two robots and two obstacles

I have a problem with two robots and two obstacles in a space. Each robot can communicate its measurements to the other and can measure angles and distances. The two obstacles in the environment are identical to each other.

Each robot can see both obstacles but not each other. Therefore have angle theta 1 and 2 combined with distance 1 and 2. Can the distance between the two robots be calculated? So far I have placed circles with radius of the measured distance over each landmark (triangles in my workings), this provides 4 possible positions for each robot. Red and black circles correspond to robot 1 and blue and green to robot 2. Using the relative size of the angle measurements I can discount two of these positions per robot. This still leaves me with two possible positions for each robot shown with the filled or hashed circles. Is it possible to calculate which side the robot is to the landmarks and the distance between each other?

Robot 1 only has the two measurements of angle and distance and can therefore assign an id to each obstacle, but when information is transmitted to robot 2, robot 2 does not know which obstacle will have been designated an id of 1 or 2.

• @Andrew If the comment is about your question it's better to improve the question than respond in the comments. I adjusted your edit to reflect that. May 29 '16 at 23:06

Is it possible to calculate which side the robot is to the landmarks and the distance between each other?

No, because the whole thing is point symmetric around the point in the middle between both obstacles. Each robot could be on either side, which gives 2 possible values for the distance between them, either for both being on the same side or being on opposite sides.

Some solutions could represent both robots colliding with each other and you could rule those out if they are not colliding, but in general, you don't know which solution is correct.

Each robot can see both obstacles but not each other.

Whatever property of the obstacles is used to identify them could possibly be added to each robot, which could then be detected by the other one.

Each robot can communicate its measurements to the other and can measure angles and distances.

In theory, you could measure the time this communication takes. Either by

1. having synchronized clocks and sending a time stamp or
2. having each robot throw the message received back at the other robot immediately to let the signal travel the distance twice.

From that time and the speed you can calculate the distance. In practice, if the signal speed is very high, you need very precise timers to do this properly.

If you consider the system to be completely static (as you have drawn it), there is no way to know.

However, if the system you are describing is not limited to 2 obstacles and one precise moment in time, then your robots can discover where they are by moving around. It sounds like the full set of data that your robot has access to -- at every timeslice -- is the following:

• Unordered set of (distance, angle) pairs, indicating the obstacles it sees
• Unordered set of (distance, angle) pairs, indicating the obstacles the other robot sees

Distances and angles to landmarks are the raw inputs for the SLAM algorithm. So in the most extreme case, each robot would be able to run SLAM for both itself and the other robot (based on reported positions), merge the two maps, and then calculate the distance between the localized positions of each robot on that map.

There may be a simpler way to do it that I'm completely overlooking. However, based on the assumption that the obstacle IDs are not shared between robots, I'm not sure how that might work.

• How does this break the symmetry of the problem? May 31 '16 at 19:31
• I assumed that the problem was not limited to only two identical obstacles in an infinite space. If that is indeed the problem, then (as the first line says) there's no way to know -- trilateration will give you 2 equally possible solutions. If the problem does include other obstacles or boundaries outside the scope of the diagram, the SLAM approach is one way you might solve the problem.
– Ian
May 31 '16 at 20:04