SlideShare una empresa de Scribd logo
1 de 80
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
estar conectados en un orden específico
Estas rutas deben de ser facil de navegar y
rápidas de encontrar
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
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 distancia que la senal recorre
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
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 esto nos deja estimar la
distancia entre el dispositivo y el
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 para muchos
tipos de problemas
La internet, redes computacionales!
Redes Sociales
Mapeo de carreteras
Dating sites
Sitios de compra(Amazon)
Etc, todo utiliza grafos
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 are
available on GitHub
Lots of support
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)
Similar a SQL en varias cosas
Es simple pero bien poderoso
Declarativo, describe que encontrar no como
encontrarlo
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
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
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)
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 asociar terminales a puntos de
interés por ejemplo:
Demo Parse
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
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 mapear cualquier estructura con
esto, malles, supers, estadios, etc
La cantidad de beacons necesarios es
relativamente menor comparado a otras
soluciones
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.
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 paredes, techos,
personas que causen interferencia etc
Ocupa bluetooth e internet
Hay competencias en el mercado
Otras tecnologias
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
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.
Con lo propuesto no sabemos facilmente donde
exactamente esta el dispositivo y que direccion
lleva
Comentarios??
Nombre
WHERE IS IT?
=
WITT
Cuando le entramos?

Más contenido relacionado

Similar a Indoor localization with Beacons: Mapping locations and finding routes under 40 characters

Comunicación Externa DIAPOSITIVAS _20230424_135131.pptx
Comunicación Externa DIAPOSITIVAS _20230424_135131.pptxComunicación Externa DIAPOSITIVAS _20230424_135131.pptx
Comunicación Externa DIAPOSITIVAS _20230424_135131.pptxElvis239377
 
Multimedia
MultimediaMultimedia
Multimediaciclo2e
 
Informatica. red
Informatica.  redInformatica.  red
Informatica. redcarlos23854
 
Capítulo 8 asignación de direcciones ip
Capítulo 8 asignación de direcciones ipCapítulo 8 asignación de direcciones ip
Capítulo 8 asignación de direcciones ipJherymar19
 
Unidad I - Introducción a los Sistemas de Transmisión
Unidad I - Introducción a los Sistemas de TransmisiónUnidad I - Introducción a los Sistemas de Transmisión
Unidad I - Introducción a los Sistemas de TransmisiónDonald Massiah Moreira
 
KERAS Y TENSORFLOW
KERAS Y TENSORFLOWKERAS Y TENSORFLOW
KERAS Y TENSORFLOWjose vasante
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]cruz_eliana
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]cruz_eliana
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]cruz_eliana
 
Agente Carro
Agente CarroAgente Carro
Agente CarroUTPL
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2ingrisiitha
 
HERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETHERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETsilvia0208
 

Similar a Indoor localization with Beacons: Mapping locations and finding routes under 40 characters (20)

Comunicación Externa DIAPOSITIVAS _20230424_135131.pptx
Comunicación Externa DIAPOSITIVAS _20230424_135131.pptxComunicación Externa DIAPOSITIVAS _20230424_135131.pptx
Comunicación Externa DIAPOSITIVAS _20230424_135131.pptx
 
Construcción de una red con el Modelo OSI
Construcción de una red con el Modelo OSIConstrucción de una red con el Modelo OSI
Construcción de una red con el Modelo OSI
 
Multimedia
MultimediaMultimedia
Multimedia
 
Informatica. red
Informatica.  redInformatica.  red
Informatica. red
 
Modelo OSI - Capas
Modelo OSI - CapasModelo OSI - Capas
Modelo OSI - Capas
 
Tipos y topologias de Redes
Tipos y topologias de RedesTipos y topologias de Redes
Tipos y topologias de Redes
 
Capítulo 8 asignación de direcciones ip
Capítulo 8 asignación de direcciones ipCapítulo 8 asignación de direcciones ip
Capítulo 8 asignación de direcciones ip
 
Unidad I - Introducción a los Sistemas de Transmisión
Unidad I - Introducción a los Sistemas de TransmisiónUnidad I - Introducción a los Sistemas de Transmisión
Unidad I - Introducción a los Sistemas de Transmisión
 
KERAS Y TENSORFLOW
KERAS Y TENSORFLOWKERAS Y TENSORFLOW
KERAS Y TENSORFLOW
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Investigación ipv4
Investigación ipv4Investigación ipv4
Investigación ipv4
 
Colegio nacional conocoto
Colegio nacional conocotoColegio nacional conocoto
Colegio nacional conocoto
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
01 modelo general de comunicación
01 modelo general de comunicación01 modelo general de comunicación
01 modelo general de comunicación
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]
 
PresentacióN1[2][2]
PresentacióN1[2][2]PresentacióN1[2][2]
PresentacióN1[2][2]
 
Agente Carro
Agente CarroAgente Carro
Agente Carro
 
Ti documento grupo_2
Ti documento grupo_2Ti documento grupo_2
Ti documento grupo_2
 
HERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNETHERRAMIENTAS BÀSICAS DEL INTERNET
HERRAMIENTAS BÀSICAS DEL INTERNET
 

Más de PiXeL16

Hooked - How to build habit forming products
Hooked - How to build habit forming products Hooked - How to build habit forming products
Hooked - How to build habit forming products PiXeL16
 
WWDC 2016
WWDC 2016WWDC 2016
WWDC 2016PiXeL16
 
Mobile architecture problems and solutions.
Mobile architecture problems and solutions.Mobile architecture problems and solutions.
Mobile architecture problems and solutions.PiXeL16
 
Resposive design (Esli David)
Resposive design (Esli David)Resposive design (Esli David)
Resposive design (Esli David)PiXeL16
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)PiXeL16
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)PiXeL16
 
Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)PiXeL16
 

Más de PiXeL16 (7)

Hooked - How to build habit forming products
Hooked - How to build habit forming products Hooked - How to build habit forming products
Hooked - How to build habit forming products
 
WWDC 2016
WWDC 2016WWDC 2016
WWDC 2016
 
Mobile architecture problems and solutions.
Mobile architecture problems and solutions.Mobile architecture problems and solutions.
Mobile architecture problems and solutions.
 
Resposive design (Esli David)
Resposive design (Esli David)Resposive design (Esli David)
Resposive design (Esli David)
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)
 
Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)
 

Indoor localization with Beacons: Mapping locations and finding routes under 40 characters

  • 1.
  • 2.
  • 3.
  • 4. Encontremos otro uso práctico a los Beac…. digo..., Terminales de proximidad
  • 6. A ya se!! Indoor localization!
  • 7.
  • 8. Creo que todo hemos tenido el problema del supermercado!
  • 9. Pero como lo solucionamos con Beacons?, si Beacons lo dije!
  • 10. 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
  • 11. 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
  • 12. Pero primero que todo.! Que se un ?
  • 13. Es simplemente un dispositivo que da una señal de radio !
  • 14. De esta señal podemos obtener esta información: Broadcasting Power RSSI Measured Power
  • 15. 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
  • 16. 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
  • 17. RSSI Se utiliza para estimar la distancia que hay entre el dispositivo y la terminal…
  • 18. 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
  • 19. Ahora que ya sabemos que contiene nuestros Continuemos!
  • 20. Lo primero es estudiar un super!
  • 21. Mi version de super! El Christophmark!
  • 22. Como lo mapeariamos con Terminales?
  • 23.
  • 24. Con este mapeo podemos crear rutas, rutas de movimiento.
  • 25.
  • 26. Pero que podemos usar para representar esta relaciones?
  • 28. Grafos Consiste en una serie de nodos(Nodes) Unidos por conexiones llamadas arcos (archs) Actualmente son muy utilizados para muchos tipos de problemas
  • 29. La internet, redes computacionales! Redes Sociales Mapeo de carreteras Dating sites Sitios de compra(Amazon) Etc, todo utiliza grafos
  • 30. Son especialmente buenos para encontrar cosas como el camino más corto (Shortest Path) entre N puntos.
  • 31. Dijkstra Edsger W. Dijkstra Cientifico Holandes En 1972 recibió el premio Turing por sus contribuciones
  • 32. Dijkstra Desarrolló un algoritmo para encontrar el Shortest Path en grafos con peso
  • 33. Quien lo quiere explicar??
  • 34. Encontremos el shortest path de A a Z
  • 35. 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
  • 36. Despues buscamos cual es el siguiente vertice que tiene un costo menor y lo guardamos en nuestro Path.
  • 37. Despues de que seleccionamos el menor , actualizamos todos los demás vértices.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. Graphs Podemos representar grafos de muchas maneras -Arboles binarios -Hash Tables -Diccionarios, etc
  • 44.
  • 45. 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
  • 46.
  • 48. Conceptos básicos del editor Creemos un grafo de amigos en NEO4j
  • 49. 1.Agreguemos un nodo 2.Pongamos Emil en nombre 3.Y es de Suecia
  • 50. Podemos agrupar nodos por medio de “Labels” En nuetro ejemplo todos los nodos Persona seran anaranjados
  • 53. Relaciones Las relaciones tienen una direccion Las relaciones tienen un tipo Las relaciones forman patrones de datos
  • 56. 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
  • 57. 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
  • 58. 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
  • 59. 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)
  • 60. Encontremos los amigos de Emile MATCH (ee:Person)-[:KNOWS]-(friends) WHERE ee.name = "Emil" RETURN ee, friends
  • 61. DEMO
  • 62.
  • 63. Ahora que tenemos esto, como conectamos todo?
  • 64. Demo de WS en node http://witt.herokuapp.com/shortestpath/from/22-1/to/22-16
  • 65. Recapitulemos Podemos crear relaciones entre terminales fácilmente Podemos obtener rutas entre estas terminales Debemos asociar terminales a puntos de interés por ejemplo:
  • 67. 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
  • 68. Lo que falta! (No me dio tiempo) El último paso es mostrar esta información
  • 69.
  • 70. 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
  • 71. 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.
  • 72. Pros Es algo que esta por explotar!
  • 73. 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
  • 75.
  • 76. 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
  • 77. 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.
  • 78. Con lo propuesto no sabemos facilmente donde exactamente esta el dispositivo y que direccion lleva Comentarios??