Distance calculation between Arduino boards


I am trying to build a small network of devices which can determine the distance between each other. I would appreciate some advice on what’s the best approach.

At first I’ve considered Bluetooth but I’ve come to understand it’s hard or impossible for an Arduino device to scan for multiple bluetooth devices. Please tell me if I’m wrong.
I’ve also considered GPS but this would limit to outdoor use.
I’ve also considered The RF links to send timestamps and calculate the time to receive but with a network of many devices this would get complicated and inaccurate.
RFID tags would have too limited range.
WiFi would turn expensive and a bit too big. I would be willing to invest though If I would know this would work.

I would like to know if there’s any successful cases of achieving my goal. To make it more clear, imagine 4 stationary boards, and a moving one. I would like the fixed one to be able to calculate the distance to the fixed one. A bonus would be if the stationary boards could calculate the distance between each other as well. The accuracy should be between 1m to 20m.

Update: I forgot to mention that obstacles between the devices shouldn't interfere with the calculation.

Thank you,
Andi Stancu

Ultrasonics would be your only hope.
Distances are too short for radio distance measuring.

The accuracy should be between 1m to 20m.

Very, very loud ultrasonics

Thanks for your replies. If not mistaken, ultrasonic would bounce of any object, not a specific object. Is that correct?

Also, this way would mean the the orientation of the devices is very important, isn't it ?

I'm updating the initial post to inform that obstacles might be in the way.

Thank you,
Andi Stancu

You might find this abstract interesting.

This has been asked many times over the years and there is no satisfactory solution, despite some fanciful ideas being mooted.

The closest you can come is to use a mesh network of Zigbee transponders but that is not cheap.
Zigbee distance measurement