# Localising a robot swarm non-optically

This question is further to Localizing a swarm of robots.

In summary: I want to create a swarm of robots which can each measure their own position in a 3x2m room with a 25cm high ceiling, to an accuracy of ±5mm.

There were some good answers, but most of them were optical methods. I would be interested to hear some non-optical localisation ideas, so I will impose the following further constraints:

• Localisation method cannot use optical means, either visible or invisible.
• Nothing can be added to the floor or ceiling.
• There's no appreciable gap between the top of the robots and the ceiling.
• There are no walls, and equipment can be added around the perimeter of the room.

I look forward to hearing some creative ideas.

• Two things for clarification: (1) As @zkent also asks, can the robots communicate with each other; (2) How 'densely' is the room filled with the robots? – ThomasH Apr 8 '14 at 10:21
• @ThomasH - There was no plan originally for them to be able to communicate with each other, but if it helps, I don't see why not. The robots could all huddle together, touching, and let's say there were 20 robots each 30cm wide cylinders. – Rocketmagnet Apr 10 '14 at 10:04
• Opticaly means light based sensor like camera, infrared etc. am I right? – acs May 6 '15 at 8:37

I guess after optic (direct-line of sight) solutions, triangulation via sonic/radio frequency seems to be a possible solution.

A factor that needs to be decided is how the triangulation will be achieved. Will your transmitters be stationary, or will your receivers be stationary. In other words, will you synchronize your transmitters or your receivers.

## Stationary transmitters

In other words, your robots will have receivers, while your room has 2 or more stationary transmitters (each synchronized). Each transmitter will continuously broadcast a unique identifier (for instance, each transmitting on their own frequency). The mobile receiver (robot), will then measure the phase shift between each transmission and triangulate.

In other words, your robots will have speakers, while your room has 2 or more microphones (each synchronized). Each mobile transmitter (ie, each robot), will have an unique id (again for example their own frequency), while the stationary receivers (synchronized) will listen for broadcasts. The only problem of course is the stationary receivers will need to communicate the triangulated position back to the robot via a parallel channel (eg Bluetooth).

## Implementation

Since trying to sample time-of-flight for RF waves isn't exactly cheap/easy (299 792 458 m / s at 5 mm : 16.7 ps ~ sampling rate in excess of 50 GHz), I'd recommend going for sonic.

The only problem of course is the desired resolution. Given the speed of sound at sea level 340.29 m/s, a signal pulse will take 14.7 us to travel 5 mm. And since we'd like to take a sample at least twice per our base period, we need to sample at a rate of at least 1/7.35 us = 136 kHz.

While you do get system's that can sample the audible range at that rate (professional audio recording equipment usually goes up to 192 kHz and above), easily accessible recording equipment usually samples at 48 kHz (PC sound cards).

Ultimately I think I'd try and go for stationary (expensive) recorders, and cheap speakers on the robots.