point in space

I have a question: With arduino could determine the position in space of a sensor? Let me explain. Arduino should be the coordinate x = 0, y = 0, z = 0 and would like to make an object move around so that arduino receives the exact coordinates of this object. It should be a wireless sensor ... do you think it is possible?

to certain accuracy it is possible.
Give all the objects a GPS and you can determine postition in x,y,z (some gonio needed)

I did not want the gps. Truly one can not do without? I'm trying to determine the position of an object relative to the position of arduino. Arduino should be 0,0,0 and the point coordinates instead of variables with respect to the origin. But I do not think the gps. I would be enough distance and an angle alpha with trigonometry.

what is the accuracy you want to achieve?

how big is your "point"?
how big is the distance in cm between (0,0,0) and (1,0,0)?
how big is the distance in cm between (0,0,0) and (0,1,0)?
how big is the distance in cm between (0,0,0) and (0,0,1)?

must it be wireless measurement?

Please describe the goal of your project in far more detail...

did start with a radar library once (never finished) - Arduino/libraries/Radar at master · RobTillaart/Arduino · GitHub -
to be used with a ping sensor

for the moment I would like to do a study ... it is still a project. I'd like to find a point with respect to the Arduino with wireless technology ... I do not know if the radar allows me this ... maybe. Absolutely I would not find a mechanically.
The more specific, the better. As a minimum, however, I'm interested in at least 1 mm accuracy. The space that I would consider for now might be 2 cubic meters, but being wireless, I am referring to a momentary limit. I would be interested to locate a point in space relative where the initial coordinate is the Arduino, I'm not interested in absolute coordinates. The point to be found should also be very small.
Perhaps a combination of technologies? I do not know ... radar, GPS and bluetooth?
Maybe by combining reach more remarkable accuracy and maybe an extended range.

I'm interested in at least 1 mm accuracy.

you know taht approx. the price * accuracy = constant :wink:

1 mm means you need laser scanning modules I guess

Some small analysis
wireless means speed of light OR speed of sound.

Beacon: (pulse)
speed of light 3E11 mm / second.
That means you need a clock accuracy of 1/3e11 ~ 1E-12 second ==> 1000GHz to measure 1mm differences (forget it)

speed of sound 3.4E5 mm / second
That means a clock of 1/ 3.4E5 ~1E-6 ==> 1MHz sort of doable
Ping sensor and SW based upon hardware timer to measure time in clock-pulses.

Radar: (scan from 2++ positions)
If you detect reflection from point A (0,0,0) in direction alpha and reflection from point B (10,10,0) in direction beta,
you can calculate where those lines cross giving the position of the object.
Accuracy of 1 mm implies laser and very accurate servo's to determine direction.
Problems arise when there are more objects = more reflections = more math.

Your turn to do a deep analysis.

For now, just the way I try to find a point in a small space with a lot of precision. With one or more combined technologies. There should be no doubt about the point to spot: it could, for example, emit a signal that makes it unique. This is only the first problem, then I would give back to the point coordinates x, y, z relative to the origin (arduino) and then I'd find a way to realize such a device with arduino.

what kind of signal does it emit?
or an EM wave? (wifi bluetooth light IR etc)

For now, just the way I try to find a point in a small space with a lot of precision.

This is a very difficult challenge and it is extremely unlikely that you will find an Arduino very useful for this purpose.

I do not know. I have in mind only one problem: I would like to locate a point with respect to a relative coordinate where the origin is arduino and point instead is floating. I do not care technology. But if it were possible I would try to locate the point that moves in a small space.

for jremington: I think you're right, but if I used more emitters, you could increase the accuracy?

The technology is the central issue. You first need to figure out how it is possible to locate an object in 3D to the precision that you need. I doubt that anyone on the forum can help you until you have done the research and decided on a method. I certainly can't!

The general topic of 3D localization comes up every few days on the Arduino forum. Other than GPS, I don't recall seeing posts reporting much success.

To get this accuracy you would have to an accurate timebase that both systems use, think about it as zero'ing your watch with very high precision the precision can be determined based on the spatial limits and allowed error. The easiest way for you to implement the timebase is with GPS receivers on each object and the arduino base.

Assume there is an accurate time base set up, the time base provides you with a way to get the distance between an object and the Arduino base. You send a signal acoustic or light from the object at a known time and the receiver on the base receives the signal and reads off the time, after the signal is sent the object sends the time the signal was sent. What can we get with the measurement of time? Only the distance between the object and the base, that is one variable and you need to find three X, Y, and Z.

I can see a way to get the coordinates of the object if you could tell it to accurately move to a new location relative to its last position, for example have it move 10 cm West. Sending a signal at the new location and getting the distance as developed earlier.

That is the best that I can come up, but there are many people sharper than I am on this site so someone may come up with a solution for you but I think it is too difficult.

You might be able to try the method used by Ascension (http://www.ascension-tech.com/) and Polhemus (http://polhemus.com/) - two of the largest companies that have developed 3D magnetic trackers; they’ve been doing this kind of work since the 1980s.

Basically - each used virtually the same technology (one uses DC pulses, the other used AC pulses, and they’ve each patented the hell out of the tech).

More or less, the transmitter consists of somewhat large tri-coil transformer, where each coil is wrapped orthogonally to the other two coils. Each sensor is similarly designed (just smaller and lighter). The original sensors were about the size of a cube 1 inch on a side or so - today the sensors are much smaller.

There are still wires involved from the sensors, but with some imagination (whether it would work in a real implementation is anyone’s guess) you could eliminate those.

So - the system basically pulses each coil in turn, and “listens” for the arrival of that signal at the corresponding coil on the sensor. Likely using a combination of timers and voltage level checking, the three distance values (X/Y/Z) can be determined; the orientation of the sensor can also be determined via a phase difference between the outgoing signal and the received signal (this is what I have been able to gather).

All of this information is passed into a custom DSP system - there is a huge amount of noise inherent in the system, and a ton of calculations and correlations that need to be distilled before a result is arrived at. Needless to say, I doubt that an Arduino is up to the task. In fact, I doubt that any low-cost microcontroller could do it. Even once you found a suitable device, you would still need to implement the code and algorithms - no small task by itself.

I only know of one individual who actually tried to build such a system, a guy by the name of “Juan F. Herrera”. He wrote an article about the system for the August 2001 issue (#133) of Circuit Cellar magazine (“Magnetic Position Tracker by Juan Herrera” on page 22). His transmitter coil system was designed a bit differently from the commercial versions - whereas the commercial units have relatively smaller “all-in-one” coil transmitters, Herrera’s version utilized an “outboard” coil system, where the coils existed outside the cubical tracking volume.

The issue of the magazine can be found on the internet with a bit of searching - the accompanying code for the article can be found here (“herrera 133.zip”):


If the sensor had a decent reflective surface to return a distance from say a ping sensor -

or a laser based version -
then position is easy with a 2-motor system.
One motor rotates in azimuth to give an angle, one motor gives an angle of elevation.
With angle from 0 reference (nose of vehicle for example), elevation up from the surface, and distance away, you can tell right where something is.

I would prefer without engines, however, if it was the cheapest solution I find interesting ping sensor. Suppose that on arduino is equipped with two engines to follow the target point. The motors should move the sensor. The rotations should be read with respect to a Cartesian coordinate system that has its origin in the pivot rotations with a calculation for the parallax. The sensor should always aim for the same object and rotations should be made to point it. At this point would calculate the distance to the sensor and the rotations of the motors should be calculated and return angles for the position. Trigonometry I should return relative coordinates. Maybe it's cumbersome, but it could give a result.

cr0sh told me about the two sensors that are highly specific applications and I'm afraid they are very expensive and then tells me that hardly arduino would support the necessary calculations. I did not find the article by Herrera: the link I gave back an error. However, I would like to do this research in the cheapest way possible. I would not like engines, but they cost a lot of other systems ... I'll go look for two engines and use the ping.

cr0sh told me about the two sensors that are highly specific applications and I'm afraid they are very expensive and then tells me that hardly arduino would support the necessary calculations.

For the accuracy (and potentially speed) you require, just about any solution will be too much for the Arduino.

I did not find the article by Herrera: the link I gave back an error.

The link should be "fixed" now (this forum's auto-link generator doesn't work properly with ftp links, apparently - neither does the "insert hyperlink" tag - it forgets to put in a colon!); you'll have to cut-n-paste the link into your browser...

Again, realize that the link is only for the code - you'll have to google for the article itself (it isn't difficult to find, but due to potential copyright restrictions on re-publishing, I won't give you any further information on how to find it).

but what do you say to ping with the two engines that follow the target? But I do not know how they will follow him ...

Tracking a moving target is very difficult. Need some good processing power for that. Have to realize that you losing signal from the target, and in which direction, and move the motors slightly in that direction. You could take a college engineering class on how to do that.