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.
Stationary Receivers
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.
External links