Successfully reported this slideshow.
Your SlideShare is downloading. ×

Indoor Positioning System with iBeacons

Indoor Positioning System with iBeacons

Download to read offline

Indoor Positioning System with iBeacons a proof of Concept.

Indoor Positioning System with iBeacons a proof of Concept.

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Indoor Positioning System with iBeacons

  1. 1. Encontremos otro uso práctico a los Beac…. digo..., Terminales de proximidad
  2. 2. Pero que??
  3. 3. A ya se!! Indoor localization!
  4. 4. Creo que todo hemos tenido el problema del supermercado!
  5. 5. Pero como lo solucionamos con Beacons?, si Beacons lo dije!
  6. 6. Necesitamos encontrar una manera de utilizarlos para mapear y crear rutas Para crear rutas las terminales deben de poder estar conectados en un orden específico Estas rutas deben de ser facil de navegar y rápidas de encontrar
  7. 7. Deben de representar “Important Landmarks” La solución debe de ser lo suficientemente general para poder ser usada en el chino de la esquina o en un mall gigante
  8. 8. Pero primero que todo.! Que se un ?
  9. 9. Es simplemente un dispositivo que da una señal de radio !
  10. 10. De esta señal podemos obtener esta información: Broadcasting Power RSSI Measured Power
  11. 11. Broadcasting Power El poder con el que el transmite su senal. Se puede modificar, y entre mas alto el poder mas larga la distancia que la senal recorre
  12. 12. RSSI Es la fuerza de la senal del visto por el dispositivo. Entre mas distancia aya entre el dispositivo y el mas grande el RSSI
  13. 13. RSSI Se utiliza para estimar la distancia que hay entre el dispositivo y la terminal…
  14. 14. Measured Power Viene calibrado de fábrica e indica cual es el RSSI esperado a 1 Metro de distancia. Convinado con el RSSI esto nos deja estimar la distancia entre el dispositivo y el
  15. 15. Ahora que ya sabemos que contiene nuestros Continuemos!
  16. 16. Lo primero es estudiar un super!
  17. 17. Mi version de super! El Christophmark!
  18. 18. Como lo mapeariamos con Terminales?
  19. 19. Con este mapeo podemos crear rutas, rutas de movimiento.
  20. 20. Pero que podemos usar para representar esta relaciones?
  21. 21. Grafos
  22. 22. Grafos Consiste en una serie de nodos(Nodes) Unidos por conexiones llamadas arcos (archs) Actualmente son muy utilizados para muchos tipos de problemas
  23. 23. La internet, redes computacionales! Redes Sociales Mapeo de carreteras Dating sites Sitios de compra(Amazon) Etc, todo utiliza grafos
  24. 24. Son especialmente buenos para encontrar cosas como el camino más corto (Shortest Path) entre N puntos.
  25. 25. Dijkstra Edsger W. Dijkstra Cientifico Holandes En 1972 recibió el premio Turing por sus contribuciones
  26. 26. Dijkstra Desarrolló un algoritmo para encontrar el Shortest Path en grafos con peso
  27. 27. Quien lo quiere explicar??
  28. 28. Encontremos el shortest path de A a Z
  29. 29. Lo primero es poner el costo de todos los vértices que no son el de Origen a infinito y el costo de A a 0
  30. 30. Despues buscamos cual es el siguiente vertice que tiene un costo menor y lo guardamos en nuestro Path.
  31. 31. Despues de que seleccionamos el menor , actualizamos todos los demás vértices.
  32. 32. Y repetimos!
  33. 33. Graphs Podemos representar grafos de muchas maneras -Arboles binarios -Hash Tables -Diccionarios, etc
  34. 34. Que es Neo4j Neo4j is an open-source NoSQL graph database implemented in Java and Scala The source code and issue tracking are available on GitHub Lots of support
  35. 35. Editor
  36. 36. Conceptos básicos del editor Creemos un grafo de amigos en NEO4j
  37. 37. 1.Agreguemos un nodo 2.Pongamos Emil en nombre 3.Y es de Suecia
  38. 38. Podemos agrupar nodos por medio de “Labels” En nuetro ejemplo todos los nodos Persona seran anaranjados
  39. 39. Podemos agregar N nodos
  40. 40. Y relacionarlos entre si
  41. 41. Relaciones Las relaciones tienen una direccion Las relaciones tienen un tipo Las relaciones forman patrones de datos
  42. 42. Propiedades entre relaciones
  43. 43. Cypher
  44. 44. Cypher Cypher es el lenguaje que se utiliza para hacer queries a una base de datos de Neo4j (Como el SQL para Oracle) Similar a SQL en varias cosas Es simple pero bien poderoso Declarativo, describe que encontrar no como encontrarlo
  45. 45. Create CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 }) CREATE clause to create data () parenthesis to indicate a node ee:Person a variable 'ee' and label 'Person' for the new node {} brackets to add properties to the node
  46. 46. Match MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee; MATCH clause to specify a pattern of nodes and relationships (ee:Person) a single node pattern with label 'Person' which will assign matches to the variable 'ee' WHERE clause to constrain the results ee.name = "Emil" compares name property to the value "Emil" RETURN clause used to request particular results
  47. 47. MATCH (ee:Person) WHERE ee.name = "Emil" CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }), (ir:Person { name: "Ian", from: "England", title: "author" }), (rvb:Person { name: "Rik", from: "Belgium", pet: "Orval" }), (ally:Person { name: "Allison", from: "California", hobby: "surfing" }), (ee)-[:KNOWS {since: 2001}]->(js),(ee)-[:KNOWS {rating: 5}]->(ir), (js)-[:KNOWS]->(ir),(js)-[:KNOWS]->(rvb), (ir)-[:KNOWS]->(js),(ir)-[:KNOWS]->(ally), (rvb)-[:KNOWS]->(ally)
  48. 48. Encontremos los amigos de Emile MATCH (ee:Person)-[:KNOWS]-(friends) WHERE ee.name = "Emil" RETURN ee, friends
  49. 49. DEMO
  50. 50. Ahora que tenemos esto, como conectamos todo?
  51. 51. Demo de WS en node http://witt.herokuapp.com/shortestpath/from/22-1/to/22-16
  52. 52. Recapitulemos Podemos crear relaciones entre terminales fácilmente Podemos obtener rutas entre estas terminales Debemos asociar terminales a puntos de interés por ejemplo:
  53. 53. Demo Parse
  54. 54. En conclusion Podemos saber donde se encuentra la persona por medio de el beacon más cercano Podemos saber donde la persona quiere ir por medio de el beacon de destino Podemos saber cual es la ruta que la persona debe de tomar para llegar de la manera mas rapida a su destino
  55. 55. Lo que falta! (No me dio tiempo) El último paso es mostrar esta información
  56. 56. Pros Ataca un problema real de miles de personas Para cualquier comercio esto seria un perk bastante grande Se puede mapear cualquier estructura con esto, malles, supers, estadios, etc La cantidad de beacons necesarios es relativamente menor comparado a otras soluciones
  57. 57. Pros La relación entre los beacons y los puntos de interés puede estar en cualquier lugar(Parse, Mongo, Oracle, Access, etc) Las relaciones y los paths de beacons se encuentran centralizados en otra base de datos El mapeo de los beacons y sus mapas puede estar en otro sistema independiente.
  58. 58. Pros Es algo que esta por explotar!
  59. 59. Cons La tecnología es muy nueva y poco probada Con beacons todo es una estimación, la señal puede fallar, pueden haber paredes, techos, personas que causen interferencia etc Ocupa bluetooth e internet Hay competencias en el mercado
  60. 60. Otras tecnologias
  61. 61. Principal diferencia Estas tecnologías usan triangulación para saber donde se encuentra el dispositivo Para esto debe de tener conexión a mínimo 3 beacons durante todo momento para funcionar
  62. 62. La idea propuesta solo necesita conexión a 1 Beacon para ser mostrado en el mapa. Se mostrará la ruta en el mapa y la persona debe de saber donde esta arriba, abajo derecha izquierda basándose en su propia lógica(duh!) y navegar la ruta mostrada en el mapa.
  63. 63. Con lo propuesto no sabemos facilmente donde exactamente esta el dispositivo y que direccion lleva Comentarios??
  64. 64. Nombre WHERE IS IT? = WITT
  65. 65. Cuando le entramos?

×