The only way I could think of is having some transmitter(radio or whatever else you could think of not infrared) as a remote and having 3 recievers placed on different spots of the robot. Then whichever reciever recieves a stronger signal is the direction it's coming from. Now for the object avoidance you could either have a map pre-programmed into the robot or you could have it do active mapping. I dont know much about it but look into maze-solving robots. This would be a very difficult robot and unless you have the map pre-programmed into the memory, it would be pretty slow service because it would keep looking around in a random manner until it found a good path.