Currently udacity is offering a free, on-line, course Programming a Robotic Car which teaches you how Google does it for their self-driving cars. Basically they use GPS for gross positioning along with stored maps and vision sensing for localization to a high degree of accuracy. The software uses particle filters.
You could do it with GPS alone if you used the very expensive differential GPS equipment used by surveyors, but that would hardly be cost effective. As you suggest, if you use a couple of low cost (Xbee perhaps?) transceivers you could easily measure distance with an extremely high degree of accuracy by transmitting a pulse and measuring the time it takes to travel from the transmitter on the robot to the remote repeater and back. This is like RADAR except that instead of bouncing the signal off a passive surface it is being sent back by your stationary transponders.
EDIT: Since I got called out by Kevin on this one, perhaps I better explain ;-) (All in good fun, I have the highest respect for Kevin and he is is quite correct that I did not provide sufficient details to show how to implement this).
To measure the propagation delay between two points accurately requires primarily two things: 1) A straight line signal path since reflections will create distortions. 2) Some electronics on both ends using synchronized clocks and the ability to measure time intervals to the precision required.
Synchronized clocks are relatively easy as the receiving station can derive it's clock from the signal being transmitted by the other station. This is standard synchronous data transmission with clock recovery.
Here is a paper Measuring propagation delay over a 1.25 Gbps bidirectional data link where they easily get this kind of accuracy over a 10 km long piece of fiber optics. They state: "It should be able to synchronize ~1000 nodes with subnanosecond accuracy
over lengths of up to 10 km."
In this note a method is described to determine the time offset
between two nodes. These nodes are connected via an 8B/10B coded 1.25
Gbps bidirectional serial point to point communication channel, as for
example is used by 1000BASE-X (Gigabit Ethernet). The time offset is
determined by measuring propagation delay using a marker signal. The
signal is sent from a master to a slave node and back using
serializer/deserializer (SerDes) functionality in (Virtex-5) FPGAs.
The recovered clock at the slave node is used as the transmit clock of
the slave so the complete system is synchronous. For a 1.25 Gbps
serial communication channel the delay is known with a resolution of a
single unit interval (i.e. 800 ps). This resolution can be further
enhanced by measuring the phase relation between the transmit and
receive clock of the master node. The technique has been demonstrated
to work over a single 10 km fibre that is used at two wavelengths, to
facilitate a bidirectional point to point connection between master
and slave node.
A first test setup was built to verify the principle of measuring
propagation delay between a transmitter and a receiver using a coded
serial communication channel operated at
3.125 Gbps. The transmitter and receiver reside in FPGAs on two separate development boards. This first test setup showed that it is
feasible to measure propagation delay over a 100 km fibre with a
resolution of one unit interval (i.e. 320 ps at 3.125 Gbps).
The test setup consists of two ML507 Xilinx development boards . A
Virtex-5 FPGA is mounted on each board. One ML507 development board
is designated as master node, the other as slave node. Master and
slave are connected via small form factor pluggable (SFP) transceivers
and 10 km of fibre, creating a bidirectional link. A single fibre is
used that is operated at dual wavelength.
Now clearly this particular setup is overkill for most hobby robotics projects, but it could easily be reproduced at home since it uses off the shelf development boards and requires no special talents to get working. In the case of the robot the link would be radio rather than a fiber optic cable. Perhaps it could even be an IR link like a TV remote
although I suspect that outside in bright sunshine that might be problematic. At night it could work great!