Download presentation
Presentation is loading. Please wait.
Published byBartholomew Ray Modified over 9 years ago
1
The Cricket Compass for Context-Aware Mobile Applications
Hari Balakrishnan The Cricket Compass for Context-Aware Mobile Applications Nissanka Priyantha, Allen Miu, Hari Balakrishnan, Seth Teller MIT Laboratory for Computer Science Good morning everyone. Thank you for coming.
2
Cricket Location System
Hari Balakrishnan Cricket Location System Original Version [mobicom00] Location information: room, floor, building, etc. New extensions – The Cricket Compass Position information (x, y, z) coordinates within a space Orientation information direction at which device faces A group of us at MIT Lab for Computer Science have been working on the Cricket location system as part of an ubiquitous computing project called Oxygen. We’ve been working on Cricket for about two years now. At Mobicom last year, we have presented the first version of our system, which is capable of determining the user’s location information. Today, I am going to describe how we extended the system into the Cricket Compass, which provides position information, that is the coordinate at which the device is located, and orientation information [animation] the direction at which the mobile device is currently facing. In today’s talk, I will mainly concentrate on the orientation part of the system and I will begin by motivating why orientation is interesting for mobile applications. Mobile device (x, y, z)
3
You Are Here… Great, now what?!
Hari Balakrishnan You Are Here… Great, now what?! You are here I’m sure many of us here have shared the same experience of looking up a map directory such as the one shown here and [animate] see the dot marked “You are here”. You know you are at the dot, but when you look up around you, you aren’t sure which way you’re facing. Now suppose this is a navigation application. In this case, it would be much better to see an arrow to show the exact direction you need to go rather than requiring you to find and follow a list of landmarks to go where you want to go. Frequently, you may have trouble finding the landmarks in the surrounding. An arrow will show the exact direction where you need to go and orientation information will provide you with such an arrow.
4
Point-and-Use Application
Hari Balakrishnan Point-and-Use Application Besides navigation applications, we can use orientation information to support a new class of what we call “point-and-use” applications. Basically, we want to implement a user interface that allows to access services in the user’s surrounding. For example, suppose there is a printer standing right in front of me and I want to print from that printer, I should be able to point my handheld at the printer and click on a button to have my document printed, rather than having to go through layers and layers of menus to find that printer. Having orientation will help my handheld figure out which printer it is currently facing. As another example is a “People finder” application. Suppose I walked into this crowded conference room and I need to find my session chair. I can’t see him; I don’t have a line of sight to him, yet I want to pan my handheld and find out which direction I should head towards to find him in the room. Having orientation will provide the handheld with an arrow pointing towards the person I want to find in the crowded room. Finally, we can enable a type of service discovery application. I walk into my hotel bathroom and I begin to wonder what the thing is that is sitting right next to the toilet. I point my handheld at it and it pulls up the word “biday”.
5
Orientation is important!
Hari Balakrishnan Orientation is important! Orientation is a building block that supports a wide variety of mobile applications The main point I want to drive home so far is that orientation information is important. It is the basic building block that supports a variety of context-aware mobile applications!
6
Design Goals Compact, integrated, self-contained
Hari Balakrishnan Design Goals Compact, integrated, self-contained Should not rely on motion to determine heading (as in GPS navigation systems) Robust under a variety of indoor conditions Low infrastructure cost; easy to deploy Enough accuracy for mobile applications (5o accuracy) By now, we understand that orientation information is important, but what are the criteria for a good orientation system that supports indoor mobile apps? In particular, what are the requirements for indoor applications? This presents a number of interesting challenges. For example, the system needs to be compact, integrated, and self-contained. It should have a compact form factor so that we can mount any necessary sensors onto the mobile device itself. [[The system should integrate the functionality for finding location and position to reduce the amount of required hardware. It can’t rely on existing technologies like the GPS because the GPS satellite signals don’t penetrate the walls of buildings. ]] Second, it should not rely on motion to determine device heading. Some GPS sensors use accelerometers and gyroscopes keeps track of user’s movement to determine its heading. This is undesirable for some mobile applications. The next requirement is due to the fact that there are indoor interference from computers and monitors, metal objects commonly found indoors. The system should be robust against any magnetic or electromagnetic interference generated by these devices. This also implies that the most obvious sensor, the magnetic compass won’t work all that well indoors. We want to implement a solution that minimizes costs of infrastructure such as wiring and calibration. Less than ±5 error (1m 4.35 m radius)
7
The Cricket Compass Architecture
Hari Balakrishnan (x1,y1,z1) (x0,y0,z0) (x2,y2,z2) Beacons on ceiling Y vt0 vt1 vt2 (x3,y3,z3) vt3 X RF + Ultrasonic Pulse Z Cricket listener with RF and ultrasonic sensors Mobile device We built the Cricket System meeting all the design goals mentioned in the previous slide. The first version of the system is presented at Mobicom last year where we describe how we can use a combination of radio and ultrasonic signals to measure its time of flight between the beacon and the sensor. Today, we’ve extended the system to give coordinate position and orientation information. Because our system already measures the time of flight between the beacon and the sensor, finding out the sensor’s coordinates becomes pretty easy. [animate]Basically, we deploy several beacons on the ceiling and pre-configure them to broadcast a set of known coordinates on the RF signal. [animate]Since we know the time of flight between each of the beacons and the sensor, we can just solve a system of equations to determine the device’s current position. [animate]The only catch here is that the speed of sound varies with temperature and humidity so it is an unknown. [animate]To solve this, we simply install an extra beacon on the ceiling. Now we have an extra equation in the system to solve for the unknown speed of sound as well as the mobile devices’ coordinate. ( x, y, z) vt3 to solve for unknown speed of sound
8
Definition of Orientation
Hari Balakrishnan (x1,y1,z1) (x0,y0,z0) (x2,y2,z2) B Beacons on ceiling Beacons on ceiling Y (x3,y3,z3) X Z Orientation relative to B (on horizontal plane) Mobile device We just learned that solving for the device coordinates is not too difficult, but solving for orientation is much harder. Before going into the details of the Cricket Compass, let’s ask the first question: how do we describe orientation? One of the ways to describe a device orientation is by finding its unit vector defined by the beacon’s coordinate system. We can find this unit vector by measuring the relative angles with respect to a beacon. [animate] For simplicity, we will assume that the device rests on the horizontal plane and we will describe a technique for finding the angle on the horizontal plane relative to one of the beacons on the ceiling. We can then easily generalize this technique to find the other angles relative to the other orthogonal planes to calculate the unit vector in 3D space. Before I go on, I want to reiterate that for orientation, we pick one of the beacons as an anchor for measuring the the relative angle. For measuring the coordinate, we use all four beacons as shown in the previous slide.
9
Approach: Use Differential Distance to Determine Orientation
Hari Balakrishnan Approach: Use Differential Distance to Determine Orientation Beacon Assume: Device rests on horizontal plane Method: Use multiple ultrasonic sensors; calculate rotation using measured distances d1, d2, z sin = (d2 - d1) / sqrt (1 - z2/d2) where d = (d1+d2)/2 d d1 z d2 Need to measure: a) (d2 - d1) z/d The general technique we use to determine the relative angle on the horizontal plane is to measure differential distances. More specifically, we use two ultrasonic sensors S1 and S2 separated by L distance apart. We then measure d1 and d2, which are the distances between the beacon and the sensors S1 and S2. The difference between d1 and d2 then gives us a differential value that allows us to compute theta. The differential distance method works by the following intuition. Imagine that the device is pointing directly at the beacon. In this case, we would expect d1 and d2 to be of equal value. Now suppose I rotate my device at an angle theta counterclockwise as shown. Then in this case, we’d expect d2 to be smaller than d1. Thus there is a direct relationship between the differential distance and theta. Through trigonometry, we derive the relationship between the horizontal angle and the differential distance. In addition to the differential distance, we also need to find out the z over d value, which is the ratio between the height of the beacon wrt the horizontal plane and the average distance between the beacon and the device. This ratio essentially acts as a scaling factor for the differential distance. The intuition behind this is a bit subtle. Notice the z/d value essentially depends on the coordinate or the position of where the device is relative to the beacon. For example, if I move physically further away d would become larger, etc. Now imagine that we’re standing directly underneath the beacon. Because we’re directly underneath the beacon, we would expect the d2 and d1 values to be exactly the same no matter how I rotate my device. So this is the case when z/d is 1 in the formula and as you can see if we plug in a one here, the formula blows up. Likewise, if I keep the device at a fixed angle and move further and further away from the beacon, the difference between d2 and d1 becomes larger and larger. In this case, z/d provides the appropriate scaling value to compute theta. To summarize, we need to find the values d2 and d1 and z over d. We can calculate z/d pretty easily once we know the position of the device and the coordinate of the beacon. But the technique used for measuring d2 – d1 is a bit involved. This is counter intuitive because it seems like we can just measure d1 and d2 directly and then we can simply calculate its difference. It turns out that we can’t do that. S1 L S2
10
Problem: Measuring (d2 – d1) directly requires very high precision!
Hari Balakrishnan Problem: Measuring (d2 – d1) directly requires very high precision! Beacon Consider a typical situation Let L = 5cm, d = 2m, z = 1m, = 10º (d2 – d1) = 0.6cm d Impossible to measure d1, d2 with such precision Comparable with the wavelength of ultrasound ( = 0.87cm) d1 z d2 Here’s why. In practice, the difference between d2 and d1 is very small. The precision required is about an order of magnitude smaller than any known technique. In particular, because we’re using ultrasound, it is practically impossible to measure distances that accurately because the required accuracy is smaller than the wavelength of ultrasound. S1 L S2
11
Solution: Differential Distance (d2-d1) from Phase Difference ()
Hari Balakrishnan Solution: Differential Distance (d2-d1) from Phase Difference () Observation: The differential distance (d2-d1) is reflected as a phase difference between the signals received at two sensors Estimate phase difference between ultrasonic waveforms to find (d2-d1)! Beacon f = 2p (d2 – d1)/l d1 d2 But fortunately, there’s another way to find out the differential distance. We basically take advantage of the fact that the ultrasonic signal is a sinusoidal wave. When the device is oriented at an angle to the beacon, the same wave front will hit the two sensors at different times. This time difference is directly proportional to the differential distance d2 – d1. So by measuring the phase difference between the ultrasonic waveforms, we can calculate d2-d1. S1 t S2 t
12
Problem: Two Sensors Are Inadequate
Hari Balakrishnan Problem: Two Sensors Are Inadequate Phase difference is periodic ambiguous solutions We don’t know the sign of the phase difference to differentiate between positive and negative angles Cannot place two sensors less than 0.5 apart Sensors are not tiny enough!!! Placing sensors close together produces inaccurate measurements So the phase difference measurement seems like a promising approach except for a couple of problems…. We can overcome these problems by placing the sensors at half a lambda apart but it’s impractical for many reasons. The sensors are tiny enough and placing sensors closer together tend to produce more inaccurate results.
13
Solution: Use Three Sensors!
Hari Balakrishnan Solution: Use Three Sensors! Estimate 2 phase differences to find unique solution for (d2-d1) Can do this when L12 and L23 are relatively-prime multiples of l/2 Accuracy increases! Beacon d1 d2 d3 The way we resolve ambiguous solution is to use TWO pairs of sensors to estimate two phase differences. From the two phase differences, we can derive d2-d1 uniquely. The result of our mathematical proof presented in our paper shows this can be done when the distance between each sensor are relatively prime multiples of lambda/2 of each other. Also as a bonus of using sensors that are further separated, we increase the accuracy of our measurements. S1 S2 S3 t L12 = 3l/2 L23 = 4l/2
14
Cricket Compass v1 Prototype Ultrasound Sensor Bank
Hari Balakrishnan Cricket Compass v1 Prototype Ultrasound Sensor Bank 1.25 cm x 4.5 cm RF module (xmit) Ultrasonic transmitter RF antenna To test our theory and find out how well it works, we’ve implemented a Cricket Compass prototype. On the right hand side, we have the Cricket beacon consisting of the RF and Ultrasonic transmitters. On the left hand side, we have the sensor module with the three sensors mounted as shown. We’ve also conducted an experiment to find out the accuracy of our system. In our experiment, we mounted the sensor module on a prism table as shown. The prism table allows us to adjust the angle of the horizontal plane. So we obtain a number of angle measurements from the Cricket Compass by setting the prism table at 10 degree angle increments between degrees. Sensor Module Beacon
15
Angle Estimation Measurements
Hari Balakrishnan Angle Estimation Measurements We ran an experiment consisting of three trials. Here are the results of comparing the measured versus the actual angle from the prism table. The diagonal shows the ideal case where the measured values is equal to the true angle value. The points are the angles measured by our Cricket Compass at each of the 10 degree interval. The error bar at each point shows the range between the three trials. As you can see, the results closely resembles to the ideal case for the range of plus and minus 40 degrees. In fact we were able to get better than 5 degree accuracy within this range, and 3 degree accuracy between plus and minus degree. We note that the error increases at larger angles. This is an artifact of trying to calculate the inverse of a sin function, which becomes very sensitive to differential distance errors at large angles. In summary, we know that the accuracy is good whenever the beacon is smaller than 40 degrees from the device direction. Can we take advantage of this fact? Accurate to 3 for 30, 5 for 40 Error increases at larger angles
16
Cricket Compass Hardware
Hari Balakrishnan Cricket Compass Hardware Improves accuracy Disambiguates in [ -, ] Amplifiers, Wave shaping, and Selection Circuits Yes, we can! We can arrange two banks of the ultrasonic sensors in an L-shape. This guarantees that one of the banks will see the beacon at less than 45 degrees angle relative to its heading. Also, the L-shape is placed at 90 degrees from each other. This also helps us disambiguate the positive and negative solutions to sin theta. In summary, the set up improves the accuracy of the system and allows us to determine whether the device’s relative heading is to the left or the right of the beacon. There are a lot more about details this in the paper. Microcontroller RS 232 Driver RF RX
17
Orientation accurate to within 3-5 degrees
Hari Balakrishnan Conclusion The Cricket Compass provides accurate position and orientation information for indoor mobile applications Orientation information is useful Novel techniques for precise position and phase difference estimation to obtain orientation information Prototype implementation with multiple ultrasonic sensors In conclusion, we have presented the Cricket Compass system… Orientation accurate to within 3-5 degrees
18
Considerations Beacon placement Ultrasonic reflections
Hari Balakrishnan Considerations Beacon placement At least one beacon within range Avoid degenerate configuration (not in a circle) Ultrasonic reflections Use filtering algorithms to discard bad samples Configuring beacon coordinates Auto-configuration, auto-calibration Our experiments show that the Cricket compass can achieve reasonable accuracy for mobile applications. Now, let’s consider some issues we need to address for deploying the compass system. First, there are a couple of beacon placement rules we need to follow. First, we must make sure that there at least one beacon within range and there are enough beacons to cover the entire floor area. The beacons must not be placed in a circle as this will form a degenerate solution when we attempt to solve for the coordinates using the system of equations. Secondly, ultrasound reflects off walls and objects. However, we notice that this is always a one-sided error, meaning that any bad sample will always have a distance estimate that is longer than the true distance. So using this property, we can design a filtering algorithm to discard these bad samples. Finally, there’s an issue about configuring the beacon coordinates. Right now, we assume that this can be done manually but eventually, we would like to automate this process. We are in the middle of developing some algorithms for auto configuring and auto calibrating the beacon coordinates as well.
19
Current Orientation Systems Are Not Adequate for Indoor Use
Hari Balakrishnan Current Orientation Systems Are Not Adequate for Indoor Use Magnetic based sensors (magnetic compass, magnetic motion trackers) suffers from ferromagnetic interference commonly found indoors Inertial sensors (accelerometers, gyroscopes) used in sensor fusion to achieve high accuracy require motion to determine heading suffer from cumulative errors Other systems require: Extensive wiring: expensive & hard to deploy Multiple active transmitters worn by the user: obtrusive, inconvenient, not scalable Great, but how do we get orientation? To answer this, we’ve examined several existing technologies but we concluded that none of them is really adequate for indoor use. We are particularly interested in the indoor environment because we believe a combination of GPS and the magnetic compass is adequate for outdoor applications. For example, we can use an ordinary compass with an electronic interface to read out the heading information or use some other magnetic motion trackers that are commonly used in virtual reality systems. Unfortunately, these systems are sensitive to magnetic fields that can be generated by metal objects, computers, etc commonly found indoors, they’re not going to work. Alternatively, there are inertial sensors such as accelerometers and gyroscopes. These sensors work by tracking the cumulative motion of a device to determine its heading, which are not suitable for some applications. Other more involved systems generally require extensive wiring, which drives up deployment cost and makes them difficult to deploy in existing buildings. Or they require multiple active sensors be worn by the user. Wear sensors are kind of obtrusive and inconvenient for the user. The use of active transmitters may create scalability problems. For example, the system have to deal with increasing processing load and contention as more and more users carrying these active transmitters enter into the same room.
20
Point in the direction of the Service… Not at the Service
Hari Balakrishnan Point in the direction of the Service… Not at the Service Orientation information provides a geometric primitive that is general and useful among a variety of “direction-aware” applications, e.g. In-building navigation Point and Shoot User Interfaces Line-of-sight systems are limited awkward to use, not robust do not support navigation Notice in the previous example, there is a distinction between pointing *in the direction of* the printer versus pointing *directly at* the printer: our model here is to inform the handheld about its position and orientation and also the coordinates of the services so that the handheld can figure out geometrically which services are in front of it. This is different from the TV remote control model, where the line-of-sight between the infrared transmitters and receivers indirectly establishes the direction of the remote control. The advantage of using orientation is that orientation is a geometric primitive. It is general and useful among a variety of applications such as those I showed earlier. In contrast, line of sight systems are limited. They typically require the user to aim carefully at the sensors and as such, they’re not very robust. Furthermore, line of sight simply don’t work for some apps like in-building navigation, where the user needs to know which direction to head towards, etc. In short, we find that orientation information is useful for context-aware mobile applications! Orientation information is useful for context-aware mobile applications!
21
Is orientation necessary?
Hari Balakrishnan Is orientation necessary? Direction-aware applications could be implemented using “TV remotes!” But orientation information is useful Application-specific semantics are possible Convenient for navigation applications Eliminates the need for a line of sight to target Now, it is not absolutely necessary to use orientation information to implement the point and click applications. For example, we can install … But we argue that By using orientation information, applications can define their own semantics. For example, the TV remotes can only provide two pieces of information…. Orientation you know the specific direction that the device is pointing at. This makes it convenient to implement…. And because the device the exact heading, it eliminates the need for line of sight. The application can now define … **** But the knowledge of orientation buys you a lot of flexibility! For example, each application can apply its own set of geometric functions or transformations to define its own viewing angle or defining the pie-shaped wedge that defines which service is in range and which ones are out of range. Also, because we can solve directions geometrically, we can support a lot of applications. We are not limited to support only point-and-click applications. We can support the map navigation application like the first example I showed earlier. For point and click applications, we can eliminate the line-of-sight requirement: I can now control the light switch even when someone is standing in front of it! ***** Notice in the previous example, there is a distinction between pointing *in the direction of* the printer versus pointing *directly at* the printer: our model here is to inform the handheld about its position and orientation and also the coordinates of the services so that the handheld can figure out geometrically which services are in front of it. This is different from the TV remote control model, where the line-of-sight between the infrared transmitters and receivers indirectly establishes the direction of the remote control. The advantage of using orientation is that orientation is a geometric primitive. It is general and useful among a variety of applications such as those I showed earlier. In contrast, line of sight systems are limited. They typically require the user to aim carefully at the sensors and as such, they’re not very robust. Furthermore, line of sight simply don’t work for some apps like in-building navigation, where the user needs to know which direction to head towards, etc. In short, we find that orientation information is useful for context-aware mobile applications!
22
System Model Cricket (x, y, z, )… Service Discovery Database
Hari Balakrishnan System Model Cricket (x, y, z, )… Service Discovery Database Services, Other users
23
System Model Cricket (x, y, z, )… Service Discovery Database Services
Hari Balakrishnan System Model Cricket (x, y, z, )… ) ) Service Discovery Database Services y, z, )…
24
Differential Distance From Phase Difference
Hari Balakrishnan Differential Distance From Phase Difference Observation: The differential distance (d2-d1) is reflected as a phase difference between the signals received at two sensors Ultrasound signal first hits sensor S1 Beacon d1 d2 But fortunately, there’s another way to find out the differential distance. We basically take advantage of the fact that the ultrasonic signal is a sinusoidal wave and the same wave front hits the two sensor at different times. we use the phase difference of the ultrasonic wave forms between the two sensors to find the d2-d1. First, we have a beacon emitting an ultrasound signal. Because the device is at an angle with respect to the beacon, the signal hits the sensor R1 first. S1 S2 t
25
Differential Distance From Phase Difference
Hari Balakrishnan Differential Distance From Phase Difference Observation: The differential distance (d2-d1) is reflected as a phase difference between the signals received at two sensors The same signal then hits sensor S2 Beacon d2 d1 Then eventually, the same signal wave front hits the second sensor R2. S1 S2 t
26
Hari Balakrishnan Where am I? (Active map)
27
Deployment
28
Comparisons Active Badge Bat RADAR Cricket Tracking? Yes Depends No
Deployment Central controller + wired IR sensors Central controller + wired RF /USsensors RF signal map; great radios Beacon placement; wireless Spatial resolution Room ? (linear = few cm) 30cm (linear 5cm) Orientation Yes; 3-5 degree prec. Scalability All devices transmit periodically All devices must use same RF net Devices passive; distributed scheduling
29
Differential Distance From Phase Difference
Observation: The differential distance is reflected as a phase difference between the signals received at two receivers Estimate phase difference between ultrasonic waveforms to find (d2-d1)! Beacon f = 2p vt/ l = 2p (d2 – d1)/l d1 d2 t R1 t R2 t <= L/v, where v is velocity of sound
30
Ambiguous Solutions: Example
We know: t, t’ <= L/v Let L = Observed time difference is t Possible time differences are t and t’ Beacon L/v t t t t’
31
Requirements Navigational information Low cost, low power
Hari Balakrishnan Requirements Navigational information Space address, room number Position coordinate, with respect to a given origin in a space Orientation angle, with respect to a given fixed point in a space Low cost, low power Completely wireless Deployable in existing buildings Scalable Autonomous Mobile device determines its own location So in order to support location aware applications such as the Viewfinder, the Cricket Compass has to provide the essential location information such as the current space—that may be the building address, and room number, etc. the current position—the x,y,z coordinate with respect to a predefined origin of the current space the current orientation—the horizontal, vertical, and lateral angles The Cricket Compass should bear low infrastructure cost. The Cricket Compass is the first completely wireless location system. This eliminates the need for costly wiring, which makes it easy to deploy in existing buildings. The system should scale, regardless the number of users in the system. The Cricket Compass should determine its own location autonomously. This helps the system scale and avoids centralized point of failure. Autonomy also preserves the user’s privacy because it does not need to query a server to determine its location.
32
Ambiguous Solutions: Example
We know: t <= L/v Let L = /2 t In this case, we can find a unique solution Beacon L/v t
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.