How to map in real time using indoor beacons on Android? Did tests using the SDK Estimote however, they do not have support for Android in indoor and do not have a method that returns the distance to the beacon.
With that, I'm using Alt SDK that returns me the distance.
But not her how to solve these doubts:
1) create a map (2D or 3D Google Maps type) with the location map of the inside of a room or shop for example.
2) show the location of the user's route to the beacon.
3) how to deal with the route to the beacon avoiding collision enters walls on the map?
4) how to locate the user's position in relation to beacons and know the position x, y or lat, long each beacon?
5) I saw this project trilateration but not your using to address the above questions.
6) need to use the GPS plus Bluetooth or just the Bluetooth solves?
I would recommend using one of the existing solutions, as this is a huge task that you're trying to achieve. I work for Proximi.io, that is a unified positioning platform. We provide beacon trilateration and showing your exact positioning on top of an indoor map based on that info. However, we don't have routing features. For that I would recommend checking out Steerpath, http://www.steerpath.com/. They specialize in beacon-based navigation, and deal with the wall issue.
Building an indoor navigation system is very complex. Beacon toolkits can tell you roughly how far you are from a stationary transmitter, but cannot tell you direction. It is just a tiny building block of a big system. A beacon is to an indoor navigation system as a brick is to a building.
You have brought up several important requirements and there are many others, including:
Building a system to record beacon positions in a known coordinate frame, and send them to your app
Transform beacon coordinate frame estimated positions to map coordinate frame for displaying a blue dot.
How to build such a system is simply beyond the scope of questions that can be answered properly on StackOverflow.
Related
I'm new to ARCore and I'm trying to achieve a GPS-based AR. Basically, the app will render a 3D object and get its GPS coordinates (Lat/Lng)
App basic flow:
OnTapArPlaneListener - render a 3D object -> This is available in
ARCore sample project, so I have no issue doing this
Get Location (Lat/Lng) of the tapped plane -> This probably requires transforming screen x,y,z and I don't know yet how to achieve it
I've tried this library: https://github.com/appoly/ARCore-Location but I believe this won't help because it places the 2D image not the 3D
Is it possible to get the Lat/Lng of a tapped plane?
Thank you in advance for your help!
The issue will be with the distance of the point from the device - depth or distance measurement is not really supported in most devices at this time, or not in a consistent hardware depth sensor based way.
There are some add on HW solutions (e.g. https://structure.io) and software frameworks which have some depth and occlusion capability (e.g. https://www.6d.ai/product) but I'm not sure these will meet your availability or accuracy needs.
On workaround, which is crude but may meet your needs: if you are able to ensure that the point being tapped is a set distance from the device then you can just:
Ask the user to tap at set distance from device
Get location of device from its built in GPS
Add the set distance, in the correct orientation, to the location
Not very sophisticated but may be enough for some use cases.
I'm trying to find a good way to track location of people in a building. I would ultimately like to be able to create a graphic on demand showing where employees are in a building - which floor (elevation), and where on the floor they are located (lat/lon). I have read that elevation is relative to the WGS84 ellipsoid, not sea level necessarily, which is fine. I can define a baseline of where the first floor is, for example, and then calculate the difference of a person's current location from there. If I understand correctly, the general precision lat/lon for a GPS is as fine as 1m, which should be sufficient for me.
Part of my problem is finding a device to use for employees to carry around. The other is finding a device with a supported API (read: "free API") or other programming options. I would like this to be manufacturer-independent.
I would love to do cross-platform development - iOS, Android, PC, web, etc.
Does anyone have experience with something like this, and what recommendations can you offer on where to start? I know this is a little open ended but I'm not sure where to start.
Thanks.
This all does not work (tracking within a building).
GPS Signal is very poor or non existent within a building.
(Next time search here on Stackoverflow. It has been asked some times.)
The only robust and working solution, are BlueTooth beacons.
Such small hardware pieces are mounted within the building.
Such beacons (search for iBeacon) just send out an id.
The phone receives the id, and the approximate distance to it.
You have to administrate and know which id is at which level of the building.
Even when having good reception the GPS signal is not precise enough to determine the floor a person is location.
Some phones have a barometer, like the ipHone, this can track relative heigh changes, and may be used to determine level within a building. (Once calibrated before entering the buulding)
I currently have an app which displays a map fragment and can display navigation to a given point. The indoor maps is enabled and the building I'm trying to use does have indoor maps, but it only navigates to outside the building even when the transport mode is set to walking.
Is there currently any way to do this?
It seems that the Google Maps Android API does not support this feature for now.
Even if you select the correct travel mode, which should be walking, the route is traced on the nearest road and not on the indoor path.
I'm also waiting for this option to be released, since it is currently possible to get this outcome using Google's own Maps web app.
My graduate project is about indoor positioning when GPS is not available in android. The answer is yes, but there is not easy way. Hard way to do this but accuracy not good as good the GPS. There are two main approach to get location.
Approaches
1. Sensor-Fusion: This method for the get relative location. Using built-in sensors (gyroscope, accelerometer, compass) calculate the distance & direction over time. So you get the new location adding this value to old location. It also called dead-reckoning.
2. Wi-fi Signal Strength: If there are two or more a.p. which locations are known before, use the signal strengths to estimate your location. This idea a bit similar to how GPS works.
Weak Sides
1. Sensor-Fusion: Calculating new location error(e0) occur. When calculating next new location new error(e1) occurs again. So you get new location with e0+e1. I mean error groves exponentially over time.
2. Wi-fi Signal Strength: Some items can block the a.p. So you get weak signal strength and calculate wrong location.
Finally
I use first approach for short time(10sec). Second approach to correct location(every 10sec). So you get the best results for long & short time.
Source
Deeper explaination at this pdf.
open source android app using first approach.
I want to create application which will navigate user at the shopping mall. So, I'll create a mall's map and I need somehow to track changes of user's location. Because of navigation in building, GPS is not a solution (low signal). So, I assume there is a way to track location changing (1-2 meters) with another module (maybe accelerometer?). Any ideas?
Thanks
Update: I cannot use any additional devices such as iBeacons or so. I only can use device on which app is running. No access to wi-fi routers or so.
Example: I'm standing near Apple store(point A), and now I'm going to Samsung store(point B). The app should react that I started to move from point A, and know how much meters(accuracy may be not ideal) I walk from point A and in what side I'm going (east, west, south, north).
iBeacons have bean invented for your task, they are low energy blue tooth devices which emits an unique ID, and If I remeber correctly, also the distance to that beacon.
iBeacons have been invented by or for Apple. So you have to search for an alternative which works on Android.
ibeacons are mounted at the walls of the shop.
Update:
Things you can do:
Count foot steps using accelrometer, like apple does in an API.
Theoretically you could use the built in compass, but practically it has to calibrated each time it is used (this is anoying, and useres will not do it).
You can get to decimeter accuracy using magnet field analysis of the shop and the 3-d magnetic sensor of the smartphone. This works in research (indoor navigation using magnetic fields) But you have to create a magnetic map of each shop to make it work.
for WLAN:
You need at least 3 different wlan routers in the shop. Usually they will only have one.
1-2 m accuracy you will not get with wlan.
(On ios it is not possible to read the wlan device ids nearby, hopefully you can do that in android)
iBeacons or similar devices mounted in the shop at strategic placesw,
are the only feasible technology which you will get to work.
There is an open source Android app for tracking location without GPS. It uses TYPE_STEP_DETECTOR sensor available from API level 19.
You can download it from Google Play and source code is available on GitHub.
The app is not very accurate because it uses average step length. It can be improved if we allow user to specify or calculate automatically his personal step length.
I am currently in the research phase of my project on Android. I am interested in developing indoor custom maps application. There are 2 problems I am currently facing in this:
I can't use GPS as it won't work in the indoor settings like a building or a mall
I can't use Google Maps API as I need to show my location on a
indoor custom map(like a floor-plan of a building). I'm assuming here
that I have the custom map of the building or mall.
Now my goal is to find location of the Android phone using some methods and display it on the custom map.To find the location I have following options,
Use of Bluetooth dongles or transmitters, I am assuming that Bluetooth dongles or transmitters are kept at known locations on the custom map and I know the coverage area for all of them. I will use methods like RSSI to get nearest dongle from my Phone.The problem here is I don't know how do I use this information to plot the location of my phone on the map.I have heard of shape files for Windows Mobile which are used for this purpose.Don't know how I can make use of them in Android.
Use of WiFi Access Points - Similar to Bluetooth.But cost is more
than Bluetooth.
Can anyone please suggest some solutions to these problems.
Thanks.
What you are looking to do is create a GIS-type tool, not a map tool. Google Maps is for maps of known places and has data already built in for much of the world. I'm not aware of any GIS-support in Google maps for unknown places. While you can add layers to Google Maps (including your own GIS-type building map layer) I don't know that it will be of much help as you probably want to "zoom in" below the resolution that Google maps supports.
You can use Bluetooth or WiFi to locate the device, provided you have known end-points that you can identify the location of. In this case, I'd think you'd either need to estimate the location of the device (similar to how Google Maps draws a circle around the locator on the map when locating solely from wireless carrier towers). If you can detect the device at multiple doggles or transmitters I suspect you could triangulate to get a better fix.
Again, depending on your scale, you could use the built-in locator service with cell-tower location information, but I'm guessing that resolution is much to high for your application.
I got the workaround for plotting the dongle locations on the custom map using bluetooth.This is not the ideal answer but all I wanted was the approximate location of the device in a indoor setting.We can use the Android Bluetooth API to get RSSI readings from all the dongles and find the nearest dongle from the device.
Now to plot it on the custom map we can get an image of the map and overlay another marker image on the location coordinates(i.e using the pixel value of the dongle locations on the image).We can also add zooming functionality of the image to make it look like Google maps.We can also add ontouchlistener functions to add the functionality of clicking on the markers.
This is just the workaround I found.It wont give you the exact location of the device.If anyone wants the code please email to me.
Thanks,
Ameya