Hello all,
I’ve been working with the Estimote Unity Plugin for a project and it seems that the documentation is a bit limited. I’ve also looked through various discussions, posts, the Android Estimote SDK docs, etc. Thus I’m hoping others can confirm what I’ve found.
Mapping in Unity:
-
When building out the scene in Unity, the orientation of the map should match the orientation of the map in Estimote cloud.
-
0,0 is the bottom leftmost corner of the map as depicted in the Location map in Estimote Cloud.
-
The x,y coordinates gotten from the IndoorLocationManager is equivalent to the Unity x,z distance from 0,0 in meters.
-
If the Unity scene is setup where 1 unit = 1 meter then moving the user is done by setting the User’s location x and location z to the IndoorLocationManager x,y.
Can anyone confirm these things?
With those things in mind, I’m having serious issues with any consistency. Even when seated at my desk, the IndoorLocationManager x,y values are bouncing all over the place. I also can’t seem to get any consistent movement in any direction. I can walk one direction and see the avatar in my app move then I can walk directly back to where I started and the avatar walks in an entirely different direction. Sometimes I’ll walk several meters and the IndoorLocationManager x,y reflect only minimal change.
I’m also wondering how the algorithms work because I can be standing directly in front a beacon (i.e. <.5m) and the indoorLocationManager doesn’t recognize that and places me at an x,y somewhere else.
Perhaps there is something I’m doing incorrectly but some of these things shouldn’t be due to user error (such as if I walk 3 meters in one direction and then return to my original position, the IndoorLocationManager should reflect that regardless of scale, unity scene orientation, etc.). I’ve tried looking online, in forums, etc. but I can’t find a whole lot.
Thanks in advance for any sage advice you might have for me.
What size is your space and how many beacons did you use? Did you build the floor plan/map yourself, or via the Estimote Indoor Location app? Also, is this on iOS or Android? (you mentioned Android docs, so I assume Android?)
Hi there.
I got it to work with a bit more consistency.
I used the Estimote Indoor Location App to map it out.
I actually had to go in to Estimote cloud and adjust the length and width of my location so that it matched that of the actual space. I also moved the placement of the beacons in physical space to match their locations on the map in the Estimote cloud (because even though you can adjust the map, it won’t let you move the beacons). It would be nice to have that feature though. It would be very helpful.
I’m on Android and I used 6 beacons. I wish there was a way to add more beacons but I don’t think it’s possible with the Estimote Indoor Location app.
Is there a way to turn on the Experiential with Inertia? I think that may help as well.
I’m assuming its possible to make calls to some of the functions in the Android docs via the Unity Plugin? Or are we limited to just getting the X and Y?
Thank you in advance for the response.
Anyone have any clues on this?
Better self-service tooling for building and editing floor plans, adding more beacons, etc., is something that’s on our radar, although it’s not on the immediate roadmap. We have some internal tools that we’re using when working with our business customers, helping them plan the quantity and placement of beacons, create the floor plans, etc. Those are paid contracts though, so I’m not sure if you’re interested in something like that—if you do, and want to learn more, email our team at contact@estimote.com.
The example Unity plugin from our GitHub can be expanded to use anything and everything from our native SDKs—it just requires some spare engineering time (: Any particular function/API that you’re missing?
Experimental modes are not available in the Android Indoor SDK, they’re iOS-only. It’s just easier for us to experiment on one platform first, and if the experiments prove promising/successful, start expanding then. So far though, I believe that all of our successful commercial deployments use the “standard” mode.
That makes sense. As far as functions from the Android API, I was just curious as currently the only functions available for the Unity Plugin are the Get X and Get Y functions, which work but severely limit fine tuning. In order to do any custom programming we’d have to use another ibeacon plugin along side with the estimote plugin which seems a bit unnecessary and somewhat doubles the work.
Thank you for the response.