Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Encontremos otro uso práctico a los
Beac…. digo..., Terminales de
proximidad
Pero que??
A ya se!!
Indoor localization!
Creo que todo hemos tenido el problema del
supermercado!
Pero como lo solucionamos
con Beacons?, si Beacons lo dije!
Necesitamos encontrar una manera de
utilizarlos para mapear y crear rutas
Para crear rutas las terminales deben de poder
e...
Deben de representar “Important Landmarks”
La solución debe de ser lo suficientemente
general para poder ser usada en el c...
Pero primero que todo.!
Que se un ?
Es simplemente un dispositivo que da
una señal de radio !
De esta señal podemos obtener esta
información:
Broadcasting Power
RSSI
Measured Power
Broadcasting Power
El poder con el que el transmite su
senal.
Se puede modificar, y entre mas alto el poder
mas larga la d...
RSSI
Es la fuerza de la senal del visto por
el dispositivo.
Entre mas distancia aya entre el dispositivo y el
mas grande e...
RSSI
Se utiliza para estimar la distancia que hay
entre el dispositivo y la terminal…
Measured Power
Viene calibrado de fábrica e indica cual es el
RSSI esperado a 1 Metro de distancia.
Convinado con el RSSI ...
Ahora que ya sabemos que contiene nuestros
Continuemos!
Lo primero es estudiar un super!
Mi version de super! El Christophmark!
Como lo mapeariamos con Terminales?
Con este mapeo podemos crear rutas, rutas de
movimiento.
Pero que podemos usar para
representar esta relaciones?
Grafos
Grafos
Consiste en una serie de nodos(Nodes)
Unidos por conexiones llamadas arcos (archs)
Actualmente son muy utilizados p...
La internet, redes computacionales!
Redes Sociales
Mapeo de carreteras
Dating sites
Sitios de compra(Amazon)
Etc, todo uti...
Son especialmente buenos para encontrar cosas
como el camino más corto (Shortest Path) entre
N puntos.
Dijkstra
Edsger W. Dijkstra
Cientifico Holandes
En 1972 recibió el premio
Turing por sus contribuciones
Dijkstra
Desarrolló un algoritmo para encontrar el
Shortest Path en grafos con peso
Quien lo quiere explicar??
Encontremos el shortest path de A a Z
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
Despues buscamos cual es el siguiente vertice que tiene un
costo menor y lo guardamos en nuestro Path.
Despues de que seleccionamos el menor , actualizamos
todos los demás vértices.
Y repetimos!
Graphs
Podemos representar grafos de muchas
maneras
-Arboles binarios
-Hash Tables
-Diccionarios, etc
Que es Neo4j
Neo4j is an open-source NoSQL graph
database implemented in Java and Scala
The source code and issue tracking...
Editor
Conceptos básicos del editor
Creemos un grafo de amigos en NEO4j
1.Agreguemos un nodo
2.Pongamos Emil en nombre
3.Y es de Suecia
Podemos agrupar nodos por medio de “Labels”
En nuetro ejemplo todos los nodos Persona
seran anaranjados
Podemos agregar N nodos
Y relacionarlos entre si
Relaciones
Las relaciones tienen una direccion
Las relaciones tienen un tipo
Las relaciones forman patrones de datos
Propiedades entre relaciones
Cypher
Cypher
Cypher es el lenguaje que se utiliza para hacer
queries a una base de datos de Neo4j (Como
el SQL para Oracle)
Simi...
Create
CREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })
CREATE clause to create data
() parenthesis to indic...
Match
MATCH (ee:Person) WHERE ee.name = "Emil" RETURN ee;
MATCH clause to specify a pattern of nodes and relationships
(ee...
MATCH (ee:Person) WHERE ee.name = "Emil"
CREATE (js:Person { name: "Johan", from: "Sweden", learn: "surfing" }),
(ir:Perso...
Encontremos los amigos de Emile
MATCH (ee:Person)-[:KNOWS]-(friends)
WHERE ee.name = "Emil" RETURN ee, friends
DEMO
Ahora que tenemos esto, como conectamos
todo?
Demo de WS en node
http://witt.herokuapp.com/shortestpath/from/22-1/to/22-16
Recapitulemos
Podemos crear relaciones entre terminales
fácilmente
Podemos obtener rutas entre estas terminales
Debemos as...
Demo Parse
En conclusion
Podemos saber donde se encuentra la persona
por medio de el beacon más cercano
Podemos saber donde la person...
Lo que falta! (No me dio tiempo)
El último paso es mostrar esta información
Pros
Ataca un problema real de miles de personas
Para cualquier comercio esto seria un perk
bastante grande
Se puede mapea...
Pros
La relación entre los beacons y los puntos de
interés puede estar en cualquier lugar(Parse,
Mongo, Oracle, Access, et...
Pros
Es algo que esta por explotar!
Cons
La tecnología es muy nueva y poco probada
Con beacons todo es una estimación, la señal
puede fallar, pueden haber par...
Otras tecnologias
Principal diferencia
Estas tecnologías usan triangulación para saber
donde se encuentra el dispositivo
Para esto debe de t...
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 pers...
Con lo propuesto no sabemos facilmente donde
exactamente esta el dispositivo y que direccion
lleva
Comentarios??
Nombre
WHERE IS IT?
=
WITT
Cuando le entramos?
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Upcoming SlideShare
Loading in …5
×

Indoor Positioning System with iBeacons

188 views

Published on

Indoor Positioning System with iBeacons a proof of Concept.

Published in: Software
  • Be the first to comment

  • Be the first to like this

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?

×