Calculate distance between 2 access points - gps

I have 2 portable access points (mobile hotspots). I want to know the exact distance between them by using wifi strength (db). Is it possible to get accuracy in centimetres?

This method is usually called RSSI-based WIFI indoor positioning. Recently, AI is used to improve the accuracy, meanwhile, it's still hard to get accuracy in centimeters in this way.
Last year, Google Android tried to achieve 1 meter accuracy, and Wifi RTT (round time trip) (or called FTM (fine time measurement) or 802.11mc) is used for this.
https://www.gpsworld.com/how-to-achieve-1-meter-accuracy-in-android/
https://www.youtube.com/watch?v=vywGgSrGODU
https://source.android.google.cn/devices/tech/connect/wifi-rtt
FYI.

Related

Determining GPS accuracy in Firemonkey

I'm busy with an app for rapid recording of gps positions. I've integrated the records with Google Maps, and it is clear that a few records, though not all of them, are quite far off - up to 200m out measured using Google Earth. This is probably due to the GPS accuracy (maybe the GPS wasn't on for long enough, enough satellites, etc). I can work with this, but I would like to report on the accuracy.
My question is, is there a property that returns the GPS accuracy (perhaps as HDOP / EPE in meters) in the Delphi Firemonkey location sensor for Android, or can one access it in another way? From what I can see this may only be possible on iOS, but then I would like to know where many of the GPS apps (GPS Essentials, Locus Maps) do it? Is it a Firemonkey limitation? The locationsensor.accuracy looks like the value I'm after, but that is an input?
Any advice will be appreciated! All I want to do is set a threshold to warn the user of possible inaccurate readings so he/she can wait a few seconds for better accuracy.
I have tried changing the LocationSensor.accuracy property, but as stated, I want an output from the GPS, not an input.

Calibration of magnetometer attached to a vehicle as Figure 8 calibration isn't possible in such scrnaroo

I was trying to find a way to calibrate a magnetometer attached to a vehicle as Figure 8 method of calibration is not really posible on vehicle.
Also removing magnetomer calibrating and fixing won't give exact results as fixing it back to vehicle introduces more hard iron distortion as it was calibrated without the vehicle environment.
My device also has a accelerometer and gps. Can I use accelerometer or gps data (this are calibrated) to automatically calibrate the magnetometer
Given that you are not happy with the results of off-vehicle calibration, I doubt that accelerometer and GPS data will help you a lot unless measured many times to average the noise (although technically it really depends on the precision of the sensors, so if you have 0.001% accelerometer you might get a very good data out of it and compensate inaccuracy of the GPS data).
From the question, I assume you want just a 2D data and you'll be using the Earth's magnetic field as a source (as otherwise, GPS wouldn't help). You might be better off renting a vehicle rotation stand for a day - it will have a steady well known angular velocity and you can record the magnetometer data for a long period of time (say for an hour, over 500 rotations or so) and then process it by averaging out any noise. Your vehicle will produce a different magnetic field while the engine is off, idle and running, so you might want to do three different experiments (or more, to deduce the engine RPM effect to the magnetic field it produces). Also, if the magnetometer is located close to the passengers, you will have additional influences from them and their devices. If rotation stand is not available (or not affordable), you can make a calibration experiment with the GPS (to use the accelerometers or not, will depend on their precision) as following:
find a large flat empty paved surface with no underground magnetic sources (walk around with your magnetometer to check) then put the
vehicle into a turn on this surface and fix the steering wheel use the cruise control to fix the speed
wait for couple of circles to ensure they are equal make a recording of 100 circles (or 500 to get better precision)
and then average the GPS noise out
You can do this on a different speed to get the engine magnetic field influence from it's RPM
I had performed a similar procedure to calibrate the optical sensor on the steering wheel to build the model of vehicle angular rotation from the steering wheel angle and current speed and that does not produce very accurate results due to the tire slipping differently on a different surface, but it should work okay for your problem.

Using GPS, How can i detect if user on road or inside a building

I am currently developing technique to help users find a spot to park.
But i face a little problem:
if a user indicates that he is parking right now in a free spot but he is lying and he is at home right now.
How can i detect from GPS if he is inside a building or along side the road?
Thanks
You'll need map data (OpenStreetMap is free), and figure out whether the user is somewhere on that map or not. You do that by comparing GPS data to the map data.
What I do in such situations is measure the distance between the lat/lon and each road, and compare the GPS angle to that of each line. The more context information you use the more accurate you can get your results:
If the speed is 60km/h, you're probably not in a building. You're probably not on a 30km/h road either.
If you're standing still for more than 2 minutes, you're probably not in a car.
If you know the buildings, and there are only a few of them, you could check if you see a certain wifi router or not.
Basically you'll calculate a score for each road, and then pick the road with the highest score to know where you are.
Score = DistScore*DistWeight + AngleScore+AngleWeight etc.
Also, from iOS and Android you get an accuracy in meters. You can also calculate that yourself if you can access raw GPS data. Using that, you set the area that you need to scan. For example, for a high accuracy (3m), you probably don't have many roads to scan. If the accuracy is 50m, you should probably match roads that are farther away.
If accuracy is important, you should look at series of GPS data, and test if the followed route is a logical path or not.

What is the accuracy of an iBeacon

I can't really understand what accuracy means, I know that proxymity is a range of the iBeacon (immediate, near, far, unknown) based on the strenght of the signal, but what about accuracy?
The doc says
The accuracy of the proximity value, measured in meters from the
beacon
So does it mean that it's a value that says how much meters you're away from the iBeacon or it's just a value that tells you if you're close to one of the proximity zones?
Accuracy is an estimate of the distance in meters to the beacon. This is only a very rough estimate based on Bluetooth signal strength (RSSI) and varies quite a bit due to radio noise.
Due to the error, Apple recommends it be used only to determine the relative positions of beacons when multiple are visible.
You can read more about how this works here: http://developer.radiusnetworks.com/2014/12/04/fundamentals-of-beacon-ranging.html

GPS reported accuracy, error function

Most GPS systems report "accuracy" in units of meters, with the figure varying over orders of magnitude. What does this figure mean? How can it be translated to an error function for estimation, i.e. the probability of an actual position given the GPS reading and its reported accuracy?
According to the Wikipedia article on GPS accuracy, a reading down to 3 meters can be achieved by precisely timing the radio signals arriving at the receiver. This seems to correspond with the tightest error margin reported by e.g. an iPhone. But that wouldn't account for external signal distortion.
It sounds like an error function should have two domains, with a gentle linear slope out to the reported accuracy and then a polynomial or exponential increase further out.
Is there a better approach than to tinker with it? Do different GPS chipset vendors conform to any kind of standard meaning, or do they all provide only some kind of number for the sake of feature parity?
The number reported is usually called HEPE, Horizontal Estimated Position Error. In theory, 67% of the time the measurement should be within HEPE of the true position, and 33% of the time the measurement should be in horizontal error by more than the HEPE.
In practice, no one checks HEPE's very carefully, and in my experience, HEPE's reported for 3 or 4 satellite fixes are much larger than they need to be. That is, in my experience 3 satellite fixes are accurate to within a HEPE distance much more than 67% of the time.
The "assumed" error distribution is circular gaussian. So in principle you could find the right ratios for a circular gaussian and derive the 95% probability radius and so on. But to have these numbers be meaningful, you would need to do extensive statistical testing to verify that indeed you are getting around 95%.
The above are my impressions from working in the less accuracy sensitive parts of GPS over the years. Concievably, people who work on using GPS for aircraft landing may have a better sense of how to predict errors and error rates, but the techniques and methods they use are likely not available in consumer GPS devices.