Distance without line of sight?

Is there any way to track the distance between two moving objects without a line of sight and without a known starting point?

As an example, say I had two robots that I could randomly place in two different rooms and turn on. I would like them to know how far apart they are at all times.

It wouldn’t need to be too accurate, maybe within 6 to 12 inches would probably be fine.

It wouldn't need to be too accurate, maybe within 6 to 12 inches would probably be fine.

I think you better align you expectations here with reality 6 to 12 inches is very accurate for this task.

Ok, if I drop all accuracy concerns, what are my options? GPS would be one, but is there anything else?

Also I realized I left out one piece of info. I am only thinking that the overall distance would be less than 20 feet. Not sure it that would help at all or not.

Imagine if you and another person were in house, in different rooms, and you each had a radio to communicate with each other. Furthermore, suppose you each also had detailed floorplans at hand at all times, and a tape measure. Could you then tell each other how far apart you were?

Once you can figure this out, you will then have a clue as to how you could get two robots to do the same thing. It won't be easy, though!

:)

Ok thinking about this a bit more (and trying to be more realistic) what about this?

What about just detecting when the distance is too great? For example if the two are over 20 feet apart.

Could an RF signal be regulated to be low power enough to just keep a ping/ack going to test that the two are close enough?

only distance - right? Are the intervening walls a constant or could they be in any of several rooms? Could you use some sort of relay in doorways? Can they be making loud-ish noises?

what are the robots actually doing?

only distance - right? Are the intervening walls a constant or could they be in any of several rooms? Could you use some sort of relay in doorways? Can they be making loud-ish noises?

what are the robots actually doing?

Just distance yes.

The walls/rooms was just an example. It could be anywhere (including outside) and have other things blocking line of sight.

Doing? For now just looking at moving. I just want to know when the are too far apart. Or ideally how far apart they are.

So how do the automotive proximity systems work? Where your car unlocks when you walk up to it and as long as they key FOB is in the car you start it with the pushbutton. Maybe my overall goal is science fiction, but on some scale it is possible.

The car thing is rfid. I heard a man who works at a local lab say that he made a radieo beam to reflect off a distant object, and time it so he could tell distance. But ofcorse, with arduino you would need insanley long distances for that to work. And you would have no more than 5 meters of reslution. What might work is to finely controll the output power of the radio, and up the power till you get a response. I use it in my Ham ventures to tell distance form a remote digital station, but that is dealing with 100's of miles and kilowatts of power.

How about using wifi and triangulation?

Each robot transmits a wifi signal, and each has two directional antennas which can rotate and are seperated by some distance.

Once you've found the direction in which the signal is strongest for each antenna, you have two angles and the length of one side of a triangle and with that you can calculate the distance to the object in question.

[edit]

Of course if you are indoors this may not work because it's possible the radio waves will bounce off walls and give you an incorrect direction.

Okay, so the problem is walls block the signal.

So I guess the question is, what sort of signal won't the walls block?

Hm... :/

How about neutrinos? Neutrinos interact very weakly with matter.

All you need to do is fit each robot with a tank holding several tons of heavy water to detect the neutrinos, and place them a couple miles underground to avoid neutrinos from other sources interfering with your readings.

Oh, and you'll need to fit each robot with a nuclear reactor to generate the neutrinos.

Ok what about this idea...

Say I start the two bots from a known relative location (touching). Could I then use accelerometers to determine how much each travels around?

Say I start the two bots from a known relative location (touching). Could I then use accelerometers to determine how much each travels around?

This is called "dead-reckoning", and is ok for short distances and periods of time, but over time wheel slip and other factors contribute to make the resulting readings very error prone in short order. You sometimes see it used in autonomous robots guided by GPS, for when GPS isn't available or unreliable (in a tunnel, or canyon, or under trees). The GPS signal is used to establish an accurate position, and the dead-reckoning is based off of this when the signal is lost.

If you must know exactly where the robots are located, and they don't have any map detailed in their system for the area being worked in, then GPS (or better, DGPS - Differential GPS) is your best bet, provided the signal can found.

If however, the robots either have a map of the area they are in, or can build one up, then you can imagine that each robot could potentially have a distance sensor on a mechanism to scan the area; let's suppose an ultrasonic sensor on a 360 degree panning device. The data from that scan could be used to locate the robot within the room, and with the details of the room (from a map installed or gathered by the robot), it can potentially figure out which room it is in on the map, and where it is located in the room. From this, and knowledge of the map, it can then communicate via radio or another method to the other robot(s) where it is in relation to them.

Such a system, while easy to describe, is not trivial to implement, and is fraught with potentials for error, but it is certainly doable. Also note that while I say "room" above, the methodology can be applied to any area or terrain that can be mapped.

Good info, but I think you are over complicating it for my goal. I don't need to know anything about the relation between the bots (or the outside world) other than the distance between them (at least to start with). So dead-reckoning sounds like a stating point for me. I think I will start investigating how all of this would work and if it would work for my application.

On a related note, can RF signals reliably go through standard walls (again for up to about 20 feet apart), or would just going up to something like the XBee be a better choice?

can RF signals reliably go through standard walls (again for up to about 20 feet apart), or would just going up to something like the XBee be a better choice?

XBee is an RF signal.

It is not the reliability or otherwise of walls it is the reflections and the attenuation as it goes through. The problems with reflections is that they set up standing waves of RF intensity. In effect this means that a measure of signal strength is not dependent on simply the distance but also the local reflection reinforcing or interfering with itself.

Using a Zigbee network with about 20 nodes scattered over the area you talk about could work as there would always be two or three nodes unaffected at any one position. However it is not a cheap solution and resolution would only be to about six feet or so.

XBee is an RF signal.

Not sure why, but I didn't even stop to think about how the XBee works. :)

Just to be clear at this point I am just wanting to use the RF for normal communication between two controllers. I am not considering using it to actually help determine the distance (for now at least). If I go with accelerometers I would just want to keep each controller updated to the other's relative location. I actually might only need one-way communication if one controller is the master.

We think you are over-simplyfing the problem. There is no direct way of getting what you are asking for.

I am, but I really came at this from a simple idea and am trying to build up from there. It might seem like an odd way to approach something, but in a way it is just like learning about electronics. Take a simple element (say a LED) and learn how it works. After doing that with several elements, start combining them together to build something more complex.

In other words, I don't have an exact end goal. But I am learning a lot on my way down the path.

I am, but I really came at this from a simple idea and am trying to build up from there.

The problem is that the simple idea is just not a very practical one. It’s like saying we can find the Lock Ness monster very easy if we drain Lock Ness. Yes it is a simple idea but no it is not practical.
Or saying to walk around the world I only need put one foot in front of the other and repeat.
You might be better off starting over.

"...Say I start the two bots from a known relative location (touching). Could I then use accelerometers to determine how much each travels around? "

Google 'inertial navigation' for some info on this topic :)