Frank is a principal engineer in the Android location team, leading high-accuracy location including WiFi and GPS. Previously he was a Fellow and VP of Broadcom, where he pioneered techniques that allow GPS to work in cell phones. He holds over 90 US patents on GPS, and is the author of “A-GPS” the first textbook on Assisted-GPS. Frank has a Ph.D. from Cambridge University, and bachelor’s degree from Witwatersrand University, South Africa. He teaches a GPS class at Stanford University.View the profile
Wei is a software engineer in Android Location and Context team. He works on Fused Location Provider API. His main focus is reducing battery consumption of location, as well increasing location accuracy. Wei received a master's degree in Information Security from Carnegie Mellon University. Prior to that he earned a master’s degree and a bachelor degree from Southeast University in China.View the profile
Roy Want received his doctorate in Computer Science from Cambridge University, England in 1988, and is currently a Research Scientist at Google. His research interests include mobile and ubiquitous computing. He is Secretary for IEEE Task Group 802.11az (Next Generation Positioning). To date, he has authored or co-authored more than 85 publications, with 100+ issued patents in this area; and holds the grades of ACM and IEEE Fellow.View the profile
About the talk
Recent changes in industry standards and practices enable up to 10x location-accuracy improvements. This talk will explain when and how developers can get or create high location-accuracy from Android devices, going over timelines, technology, and API details. This includes outdoor location (based on GPS) and indoor location (based on WiFi). It will also feature a demo where a person navigates around a room using an Android phone with WiFi RTT location.
01:30 Indoor location accuracy now
06:52 Wi-Fi RSSI
12:27 Finding a position
18:41 Wi-Fi RTT APIs in P
21:52 RTT access points
27:12 Dual frequency
32:02 GNSS measurement API
35:05 Requirements and resources
We're going to show you how recent changes in hardware and standards make 1M location accuracy possible in some cases as soon as this year. I'll give you a short overview. Now Ben Roy will introduce Wi-Fi round-trip time technology and standards and show you a live demo Benway will explain the Wi-Fi apis and I'll return and talk about new GPS technology and apis at the end. They'll be loading up for the next session. So we'll take questions right outside that door and will be available at office hours at 1:30 p.m. Today. So it's a great time
for location applications because technology Hardware standards and Android API all evolving simultaneously to enable accuracy that has not been possible previously in phones So eventually this means high accuracy for everyone. But today we want to take you under the hood off location because we want to give you the opportunity to get a head start on the future. We also want to highlight the need to protect and respect the use it the more people who use location the more people the more careful with me and you have to be will
highlights where you must get user permissions and will close with some guidelines for making great location apps. So, where are we today with indoor location accuracy? If you think you've noticed that your phone seems to be more accurate when you're inside shopping malls and office blocks. That was a few years ago. You're not imagining it with each release of the fuse location provider. We have had steady Improvement of the Android algorithms and machine learning for Wi-Fi locations there continues to be an improvement and you'll see in your accuracy of better than 10, but round
trip time is the technology that will take us to the one meter level. Meanwhile, what about UPS? Well sums of GPS accuracy in the Open Sky. There has been no much change in the last few years. If you're out in the open Sky your GPS accuracy from your phone is 5 m and that's been constant but wrong measurements Road gnss measurements from the phones. You can improve on this end with changes in Satellite and receiver Hardware. The improvements can become dramatic. I want familiar with the blue. But to get the blue. You need the location for
of course and to get location. You need measurements specifically range measurements from Wi-Fi access points offer on GPS satellites today will show you how one meter measurement accuracy is available in phones. The key Technologies are Wi-Fi rhymes with time GPS dual frequency and carrier face measurements and we'll show you how to use accurate measurements to create accurate location. This will find its way into the worldwide ecosystem and the fuse location provider, but we want to give you a chance for a one to two-year lead by taking accurate
measurements and turning them into accurate location. We want to work with you to accelerate the future to take it and bring it closer to the present. So you might wonder what why do I need better location accuracy? Anyway, well, let's just look at two instances where existing apps could use much better location accuracy. So it for Angel routing on navigation off of the kind that you used to in your car's you need much better accuracy than you have Outdoors. You need one meter accuracy because indoor features like the distance between cubes or Isles only a few metres and even
for the most loved Auto applications such as directions and specially directions in traffic we could use high accuracy that we have now. For example, when you came here this morning in a car, you're probably had the time estimated by the average traffic speed. What you really want is the traffic speed in the lane that you written so that you could ask how fast would it be if I could take the carpool and many other use cases and I'll mention a few before we finish but the important thing is that we're sure that you will have many more ideas than we have. And that's the beauty of the open
Android ecosystem round trip time. bike prank I'm very excited to be here today to tell you about a new positioning technology in Android P be cool Wi-Fi round-trip time or Ocotillo hear me say that acronym A Lot which is base the measuring the timer flights of RF signals. It has the potential to estimate your indoor position to inaccuracy of Wands at 2 meters. Now we're going to hit the ground running today before I tell you about the details own sake tea and I'm going to show you a video
of indoor navigation. This is not a product but an internal prototype to explore the power of the technology and how I can also be used to support applications this prototype also showcases some of the magic that Google could offer to its employees today. And what you should keep in mind that this is a bit like car GPS except we're working indoors. You see is an application of the mapping application and was searching for a conference for what is the route us the
shortest route and now we're off was touring the route and that's why I make progress you can see the route is turning grey. My position for matcha tea is the great. And I'm deliberately making an hour here. So the system is rerouting and it's rerouting again if I get about 20 feet away, it's not the rerouting process and I'm following the route and you can see the court of flying by there and come in and I've arrived at my destination conference room temperature does that is the Powerball TT think about. Thank you.
The thing to think about here is that if you didn't have one to two then system rerouted it would jump potentially between Isles that was surrounding me and it would be a terrible experience. So that's why it's so important to have this kind of accuracy. Before I get into the details of a Wi-Fi RT, I want to tell me about how we calculate location indoors. Now. We use Wi-Fi RSSI response or received signal strength indication. We can calculate distance as a function of signal strength. Now the figure that you see on the left hand side hear
the access point was in the sensor a map of signal strength. The green is the strongest and the ridge is the week is that the edges and I've placed two phones on this diagram at the transition between the weak and the strong. Noticed that the phone on the right is farther away from the access point than the phone on the left. So say the signal strength different distance and it's this variability in distance to signal strength. Coach life makes it very hard to get accurate readings from our SSI on a regular basis.
Wi-Fi rtt. Comes into place as the time. It takes to send a package a Wi-Fi RF packet from an access point to a phone and back again and become radio signals travel at the same speed as visible light. If we multiply the total time by the speed of light, how do we divide by to we get distance round trip time / 2 and we got the range from the phone to the access point. That's the basic principle. Tell if you want to calculate position we have to use the process called multilateration. I'm more on
that in a minute but a few things to think about here is the more ranges you have the more constraints you gotten the more accurate position you can achieve and if you couldn't use at least for ranges than we think you can get typically an accuracy of wants to meet at the most buildings. So why am I telling you about Wi-Fi Aashiqui today? Why not last year or before? Well what I want you to take that 2018 is the year of Wi-Fi off rtt. In Android, you'll take away is all that we are releasing a public API in Android P based on the IEEE
8211 MC protocol and for the integrating aspects of this protocol into the fuse location provided which is the main location API that people use to put location on a map and anytime on ATT access points of the facility. The accuracy of that position will be greater. Don't believe history the answer to 11. The standard was ratified in 2016 and 2017 the Wi-Fi Alliance budget during interrupt between silicon and just make sure the chips fall of the protocol and that's when we started doing a
lot of work to validate how it could be integrated into Android and by the 4th of this year. I'm going to be released the API so that you can I have access and build your in applications around that technology. So now diving into the principles of how wife I have to keep wax. Through the Raging process starts with a standard Wi-Fi scan the phone discovers the access points which around and faced on some vents which the statue inside the beacons and they proved responses. We can figure out which allows access points. Is HE capable chooses one of those strange 2 and
its thoughts by making a request to the access point and as a result the access point. A ping pong protocol back the pink CM or fine timing measurement packet and the pong with sent back to the access point is an acknowledgement of that packet. The time stamps are recorded at each end the each device record some but full of phone to calculate the total round trip time. It needs to have all of those times them. So they send one more message which contains the missing tooth the phone then simply count flights round trip time
by subtracting the timestamps from the AP and Which are all the times recorded so that leaves the time of flight in X the fate of light to get distance. We divided by 2, and we get the range that we care about. Now it turns out if you do this process multiple times you will in fact get more I can see and so that's what the protocol allows for a loss for us and Android would typically during a person over about eight of these these events and as a consequence the system calculator statistics so the mean and the variance
which allows us to more accurately position on a map and knowing theocracy also allows us to count play the Paw for actually as well. Now you have ranges. How do you get a position? So I just want to give you a feel for how you go about doing? This is lots of different mathematical approach is just picking one because it's relatively easy to explain what this is where the power of development comes in for you to figure out your own own way to do it so we can remove a phone from an access point that tells you that it can be anywhere on iPhone the circumference of a circle at
Radio the radius R of a circle equation for circumference of the right hand side at sends a X1. Y1. Now, if you want to find a position you've got to constrain it. So if you take for ranges for separate access points, like shown on the diagram on the right hand side use in NC that if those ranges were accurate circles intersect at a single point. How do you find that point programmatically? Well, if you write those four equations out on the left on the side, you say they're not the circle equations. It may be difficult. But in fact, it's
actually very straightforward. You take me pick one of them you subtract it from molding at Lowe's and you end up with a set of line equation sleep disappear on this diagram as well to find out where two lines intersect now is one problem with what I just told you on. The problem is that we're assuming the measurements are perfect in reality. No mushrooms, look perfect. Everything has era and the will be no Exact Solutions of an equation. So let me give you a more realistic example, but here we have several access points. I would rearrange too
and I've exaggerated to the problem here. You can see some of those circles that intersect. How do you spell that? Well, if I can you do the same thing as he did before you subtract the circle so you got the lines but this time they don't need the specs in the point. They have to pick Caden up only going at this pace. It's a it's like triangle and your phone lies probably somewhere maximum likelihood in the center of that triangle and then we can apply some college math least for a solution and get a maximum like you if you can find standard packages, which do this. You can
also reply in this position further by repeating this process chickens the phone moves and then you can calculate trajectory needs filtering techniques like, motels than all the things. That's the basic principles. Okay, now like any new technology there are challenges and Slow lyrics. 7 days early on Little Road. Watch what you can see on the right hand side is used by US to measure the range from the phone which is caring for an access point and it validates that range against the max Richter on the floor which would provide us with ground troops. What we find is it sometimes
there is a constant range calibration offset, maybe as much as off of me. So I sometimes also you see multipath effects where the non line-of-sight pause from. The exit point for the phone is actually received rather than the line of sight cough one can be solved by the vendor using Sonic origin of diversity. But all these things are acronyms which the vendor for improving and I'm basically we need to go to restore a teething process of getting rid of these products and Google can help in this process by providing reference platforms and reference applications. The Brenda's can
calibrate the Run platforms before you guys even got through to use on which would be the ideal situation. Now I've assumed that you wants to stop as an only adopt her and start using is API. But as we move into the world to be near future, we expect you to just use the fuse location provider. Because we're going to be putting the rtt capability into amp fuse location provider uses GPS when it's available cell signal strength Wi-Fi RSSI. I know what fuses with the humble senses inertial navigation from accelerometer in gyro. Now we're adding Wi-Fi rtt into
that mix and it will increase the accuracy whenever Oddity cable access points are available. Okay. So the one of the thing to remember is that when you were doing it yourself, you have to know the position of the access points in the foot with a fuse location provided we will know those positions automatically four-year-old crowdsources positions. And so you won't have to worry about that. I know it makes life a lot more easier for you to write applications. Okay, so now we're going to take it up a notch. Am I going to give you a live 18 demo and collaboration summer our colleagues in go.
So what I have over here on the podium. is Is a farm. Bring it back by tail every guy. Which is running a notch ET system in combination with Google mobile Maps. And what we are doing is using a number of access points which are around the room. So you stole the blue boxes which one the slide so these were provided by one of my partners and you can see them around the room was back on the side note to couple in the center over here in mind is that you
would this phone only receive GPS signal so we disable GPS you're only using rtt with this phone. And what am I going to do is I'm going to walk around the islands need to see this, but I've already got a place where I can go to go so I can start moving now and you should see the the flu talk with my little man inside flying me and we expected accuracy of wants to meet us after I'm walking down the aisle the aisle here is about it's about to meet us across
thereabouts. I need to say is very nicely following within fat accuracy. I think that the demo of arm has been very good to us so far. So we're coming along and a little bit look like. Going around the back here, and we're approaching a turnaround point. Where I'm going to walk up the aisle? And for rerouting as I come back to make my pulse a little bit shorter. I need to see we're doing very nicely is still well within the one who said to me and if she has GPS showing here as well. And we typically you would be expecting to see five me about to go about doors an angel is an
acceptable building your own a gun. If you're only going to have indoor location technology such as this but now I'm approaching the corner of the stage. Hines at this point my old hands back over to weigh. I guess you just going to tell you about the details of the API. Sunflower eyes. So now we must be very eager to try and bring yourself through the app to sing how you can a dashiki in your own application. So I'll join my friend aren't so both your mobile phone needs to support Idaho to
you so I can give you my friend location to improve accuracy. So your application need to declare access find location permission. I don't cause both location and Wi-Fi scan need to be on a mobile device. So how do you know whether your mobile phone support OTG a new system feature card feature Wi-Fi rtt. This it's pretend it's true. I am a mobile device running PCP to an above. Where's the Power Authority? So how do you know whether your access point is apartheid Haiti as normal? You'll need to do a Wi-Fi scan and get a list of Wi-Fi scan and
check whether this message is Idaho to a list of artists rtt's down by Wi-Fi are teaching manager Wi-Fi. Okay, now I ready to start. By sending the idea of Christ to our team finishes a list of information including the sectors, which I see you have the most importantly the distance between the mobile phone and an access point. The hell is the list of information you can get from RTD running routes to send the nation, which is a Sunday vacation from March
Avengers number of attempted of the Amendments amendments idea of how good the Wi-Fi environment is farty reindeer. Hey. I mentioned I was very excited to let you know if I will soon depart 11 with a particle. officer I mean, what do I will also be going to send the department of Art Bell on Jenni Rivera? I'm going to head over to Frank to talk about when we touch. Okay. So let's move to The Great Outdoors and speak about GPS. I'm going to show you some basics of GPS just enough to explain what's new to the
satellites and what's new in the phone and how you can exploit these changes to get better location accuracy from GPS when you're Outdoors on the Open Sky. So GPS works like this. It spins a code from the satellite and the code and codes the time at the satellite that travels to you through space and arrives at you and your GPS receiver will compare time with the time and it's clock the difference between those two tells you how far you are away. It's kind of like you have a tape measure where one ends at the satellite.
You're holding the school at any moment. You can look down and read a number which is a difference in these two times. Do you move further away? You mean a bigger number? Do you move a little bit closer? You're in a smaller number? Okay, but not the actual GPS tape measure is kind of special principal really long. Secondly the tick marks occur only every 300M because these bits of the code occur at a rate of 1 microseconds are one microsecond times. The speed of light is about 300 me to wear instead
of having all the essentials on how Yani have a mark every 300M and your GPS receiver essentially interpolates between those marks and there's your 5 meter accuracy. Okay, but there's more to it than that because how does that code get through space in the first place? Well, it's carried on a carrier Wave radio wave which will GPS has a wavelength that is less than 20 cm and your GPS receiver can measure where you are on this wave. I just long as it keeps tracking it can measure relative motion with great precision.
And this is because it's the receiver will measure the face and then as you move that phase will change but now what about getting your absolute location the trouble with the carrier phase ruler if you like is that it's it's kind of like a really was very precise markings on it but no numbers at all because one wavelength looks just like the next so you your receiver can tell you the phase of the way if you're on but it doesn't know. Are you the Green Dot or the red. So, how do you solve that problem will for that you need to introduce A New Concept which is GPS reference stations.
So these are GPS receivers at 6 flights measuring the same thing at the same time. They communicate that data to you with well-known algorithms. You can combine this data and over some. Of time you can work out where you are relative to the reference station with great Precision. What does carrier face position now, you know where the station is. So now you know where you are with great precision. Okay. So this concept is not new. This is being in commercial GPS receivers since the 1980s. A little severe. They holding the GPS antenna on the stick.
What is new is the availability of these carrier face measurements from phones and measurements in phones right. Now all of your smartphone's all smart phones everywhere have GPS or gnss on one frequency band on its known as L one but there's a new frequency in town is called l v and is supported by all these Genesis systems GPS Galileo beige and irnss and the availability of a second frequency means that you get much faster convergence to carry a phased accuracy. If you're doing this
kind of procedure and why we just went through the ambiguity that you have on a single wave will not look what happens if you can choose you. The second wave at a different frequency immediately. You can just I'm biggie weight because you could not have the same phase on that second wave as on both of those wavelengths. You could not be on the red. If you're at the peak of the of the Red Wave and so you can just some biggie weight and get much faster convergence to the very high accuracy that you want. All right. So what about Hardware well in the last few months several companies that
produce consumer GPS chips have announced the availability of Jewel frequency L1 L5 GPS chips for for the automobile market and for the phone market and these chips are now being designed into cars and phones. Now let's talk about the measurements themselves. And the apis phone must support the gnss measurements API and your app is going to need access fine location permission and location needs to be on so these are the basic requirements. So how do you know if a particular phone support these measurements will
at a high level you can just go to a website that we maintain G. Co gnss tools spot of the Android developer site is just a table that lists phones that support the gnss measurements and also which characteristics I support. So it'll tell you which phones support the measurements and which of those supposed to carry a face measurements programmatically, you do this as follows, you need a method on status changed and it will return integer integer that tells you the capability of the phone either with the phone just does not support the measurements at all or if they
supported but location is off or if they supported and location is on in the last case. You're good to go. So now let's get into some details of the apis. Most relevant to what we talkin about you all the following three, there's get constellation type which tells you which of the difference gnss constellations a particular satellite belongs to there's get carrier frequency Hertz, which tells you whether you are in the old one or the L5 band for a particular signal and then most importantly there's get accumulated Delta range meters, which is how far along that waive. The receiver has
tracked you since it began tracking the signal And then there's something else that I need to explain which is Judy cycling. So right now when you navigating with your phone and you see the blue. Moving along, for example, when maybe when you navigated to you this morning, you might think that the GPS is on with continuously and it's actually not what's happening in the phone is that GPS will by default be on for a fraction of a second and then off for the remaining fraction of a second and then repeat and this is the size battery. So you perceive that the GPS is on all the
time cuz the blue. We'll move along continually, but actually it's Duty cycling internally not for the camera face processing you have to continually track the carrier wave because member the carrier waves the ruler with no numbers on it. So if a GPS was on and you'll receive a measured your face and you get the data from the rest station Woodstock processing if the GPS think I was offered a fraction of a second when I asked where you were it'll start again you're real quiet. You'll be a different place on the reactor position you start again while you'll never Solve the problem back,
right? You need the tape measure to stay out and you need to process and to do that. You need to disable Duty cycling and you can do that in Android P with a developer option, which I'll talk about some more in a minute. Okay, so now I'm some details of the API. What I've shown here on the right is a screenshot of an application that we put out. It's called Genesis lager and this is enabled you to log the ruler measurements in the phone. It's a reference I have to be the code is open-sourced and available to you on guitar tab. So when you build your app, please
make use of our code and when you do build an app that needs real measurement, you will need the Android location manager API with the method register gnss measurements fullback and this method requires you deposit a gnss measurements event pull back down here. You construct the school back and then override the method on status changed. And that will give you the image of status that we discussed to tell you. If measurements are supported if they are you then override the method on GSN on gnss measurements received and this allows you to receive a G & S
S measurements event every epic for example every second and this event gives you the values we've been talkin about the constellation type carrier frequency and a few molleta Delta Ranch. La Fortuna cycling that's a developer options. So you access that through the developer page on your phone as you see their own pee and this allows you to disable Judy cycling. Now keep in mind with this introduces a trade-off between getting the continuous measurements and battery life. They will be an impact on battery life. How much will even when GPS is on
continually it'll use less than 20% of the power that screen on uses. So that gives you a feel for the magnitude. Now this is a developer option precisely because it's a trade-off in in battery life and we're very concerned about maximizing battery life. If you and we together can prove that there is value in this option of people want it then it will be upgraded to a fully supported API in the future. Does a block diagram that shows the basic architecture that we expect if you implement an app for high accuracy at the bottom of the block diagram on the left, you got the GPS
gnss chip the Genesis measurements come up through the apis. We just described and then your app lives at the top in the application layer. You're going to need access to a reference Network to get the data that the reference stations are tracking. They are publicly available a reference networks. I've listed one down the bottom of the international gnss service IGS. Org and you can get data from them free when you need to process that data in some kind of position library and that does always carry a ferrous processing and that too is available as open source code. There's another
example down there rtk lib. Org has an open source package for precise positioning. And then you're good to go. Now. I mentioned that you'll frequency gives you much faster convergence to the high accuracy, but you don't have to wait until if you'll frequency phones come out you can start doing this single frequency phones and he has an example of someone who's already done that this is an app created by the French space agency and they they doing exactly what we show on the block diagram on the left and they're achieving sub-meter accuracy after a few
minutes of convergence. Adios Amor external analysis that's been done in a similar way. This is from a paper called positioning with Android gnss. This is using one of those chips that I showed you a chip that goes in cell phones that does dual frequency and what's being shown here is the cumulative result of a many different stocks of the GPS. What you see is that most of the time they accuracy is better than a meter and see that on the vertical axis, which is 021 metres gets to better than a meter in less than one minute and then continues to converge as long as the
phone continues to track that carrier phase continuously. Hillside another similar but different paper. This is using one of the chips that's meant for cars. And so this was tested in a car driving around that track there and what the plot here is showing is the accuracy after the initial convergence while the car was driving. So you see with gnss alone. The accuracy is 122 and with this carrier face processing. It's at a couple of decimeters. So for you to build this, what are you going to need? Well quotes you need the device location to be enabled
and your app has to have location permission. So that's going to come from the user you need the basic gnss measurements that's been available since Android n you also need this continuous carrier face having talking about and that's available in pee with a developer option. It would be nice to have dual frequency for fast convergence. And that's coming soon. You need a reference Network such as the one I already mentioned. They also commercial reference networks out there and commercially available software to do the same thing. But I recommend you start with a free stuff and go
from there. I didn't find me this way app from you. So in summary everything we've been showing you here. We have indoor and outdoor technology that's been evolving kind of in parallel in each case. We have a new technology and Android P gives you something to access. Let's talk about indoors. Again. The new technology is white Wi-Fi round trip time and ronch of time enable access point. We give you a public API to access these measurements, but you need access point infrastructure. So this is where some of you can do this this year because if you
have a customer who owns or controls the venue, they can upgrade their access point. Sometimes it's just a firmware upgrade and then you have the infrastructure Android P comes out later this year and you can Implement something like what Roy just demoed and have indoor navigation or many other apps. For example, someone goes in a store. Where is the milk you can make the world a better place for all of us by saving us from the tyranny of having to Austin directions from stranger. Okay. And
if you if you're not one of those people who has access to this now in a few years, the infrastructure will naturally evolved as access point upgrade to run to the time and this will be available from fuse location provided as Roy said and what do you need? You'll frequently and continuous care. If we give you the API in the developer option to make use of that you will need Reference Station access as I mentioned and then applique what what can you do outdoors with Open Sky while we already mentioned the traffic example, and as many of the examples that readily come to mind where existing GPS
accuracy doesn't cut it for example geocaching with people go look for Treasures would be nice to have wanted me to accuracy precision Sports monitoring imagine us snowboarder who wants to measure her tracks very precisely off to the fact V meat is not good enough one me, that would be great speaking of sports and more and more drone apps where you can follow me in the drone on fly along and I know you will it be nice if the videos you and not the person next door to you. And so and I'm sure there are hundreds of apps and you probably thinking of some right now and that's the whole point
we want you to do that and you and I together Bend The Arc of Technology history closer to the present and I'm really looking forward to next year to see some of you back here and see what you've created until finally I want to leave you with a couple of pointers when you build location apps, please build great location apps you must have used a trust. Please provide the user with transparency and control you're going to have to ask for location permissions for this explain to them. What you doing how it benefits them when things go wrong make your app recover gracefully if these measurements
are unavailable for some moments or something goes wrong, you can pull back to fuse location provider location. So think about that and finally respect the battery life trade-offs that we've discussed. So I must remind you to fill out your surveys please at that site. And as I mentioned will be available outside the door here for any questions or so from all three of us. Thank you.
Buy this talk
Access to all the recordings of the event
Buy this video
With ConferenceCast.tv, you get access to our library of the world's best conference talks.