I am a student working on a project where one of the goals is to locate a user’s position navigating around a pool table within a provided coordinate system. So far, my attempt was to use BLE and three iBeacons that I purchased and read RSSI values from an ESP32, transmit them via WiFi to a computer and then compute the distance from the computer itself. However, for the following possible reasons the results are quite off:
Either the RSSI values vary way too much to be any way accurate even though I’m doing a bit of smoothing on them
I don’t have the right value for n (the path loss value I believe)
My trilateration algorithm is completely wrong. The distances to beacon I’m getting are fairly consistent, but I’m getting negative values for instance even while being positioned between the three beacons
I can dive deeper into my attempt if needed. My big question would be if there would be any recommendations or alternative to this. I’m not sure I can use the Estimote Indoor Location aid for the project, but if possible, would it work within the 7foot by 3.5foot dimensions of a table (or slightly more than that considering human distance to table), and is there a way to read and use the computed x,y locations on a computer for follow up applications? (referring to this video: Estimote Indoor Location - YouTube)
If not any other solution/recommendation? Thank you!
Because of the relatively small size of a pool table, the only way to do what you’re describing is to use hundreds of of BLE beacons and RSSI measurement which would be really complex OR to use UWB beacons. (Learn more about our UWB beacons here!)
Thank you for the reply. I was looking into getting the UWB Development Kit. My only concern is that I need a way to send the localization to a computer via wifi for instance from the phone. Would I be able to modify the ios SDK or use the API to do that? How flexible is Estimote UWB app to modifications for the sake of a class project? Or is there a way to only get the barebones of it and get the localization easily?
I’m currently trying to work around the UWB SDK. Is there any more documentation on how to use the classes. It seems like a lot of the initialization features for those are hidden, and I can only open EstimoteUWB and not the Swift or Private files for that.
Is there anyone I can reach out to. All my email attempts have not been answered in the last 2 weeks.
there is not a lot of useful doc that matches the sdk… but there are only 4 methods.
CloudCredentials() – connect to estimote cloud (using appid and token from cloud app def)
InitObserver() – create an instance of an observer on those credentials
initProximityZone() – define the zones you want to monitor (tags and range)
startObserving() – enable the engine to process beacons against the zones you defined.
I haven’t found a stopObserving() yet
an example is listed in the readme.md for the sdk on github , see
the example only examines the attachments of the zone detected beacons (for enter and exit), but the zonecontext object also has the tag(s) associated… wish we could assign an arbitrary identifier,
so I could stream all the events to a common handler.
you can create multiple zones, and then pass them all into the startObserving(), which takes an array of zone (I call them handles) , consider setting up the same tags at different distances (range) , so u could know your distance transition… not useful for pool table exercise, but other cases…
i created an interface for my app runtime (Ionic/Vue) in less than a week, working part time. (and using two new tools at once)
have a couple sdk issues (opened on github) …
I use visual Studio as my editor and it sees the SDK methods and types.
Would you mind sharing what you have so far. The best I’ve been able to do is use their sample UWB Class that scans the beacons and prints out the addresses and RSSI. Haven’t been able to use any other part of the code from the image I sent out if that’s what you were referring to.
@altatke
yes, all I am seeing is discover and connect
have the events streaming up to my app now… how to get vector and distance. rssi is worthless.
can start/stop scanning… don’t see anything else in the sdk
but I fixed that… the app needs the nearby permissions added to the Info.plist.
having NO Info.plist the app will prompt for ALL permissions needed,
but having AN Info.plist you will only get what it asked for, nothing more