Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Encontremos otro uso práctico a los
Beac…. digo..., Terminales de
proximidad
Pero que??
A ya se!!
Indoor localization!
Indoor Positioning System with iBeacons
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?
Indoor Positioning System with iBeacons
Con este mapeo podemos crear rutas, rutas de
movimiento.
Indoor Positioning System with iBeacons
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!
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Indoor Positioning System with iBeacons
Graphs
Podemos representar grafos de muchas
maneras
-Arboles binarios
-Hash Tables
-Diccionarios, etc
Indoor Positioning System with iBeacons
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
Indoor Positioning System with iBeacons
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
Indoor Positioning System with iBeacons
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
Indoor Positioning System with iBeacons
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
Indoor Positioning System with iBeacons
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

PPTX
Unit testing
PPTX
An introduction to Mobile Development (Spanish)
PPTX
DevOps and Chef
PPTX
The Internet own boy
PPTX
iOS 7
PPTX
WWDC 2014
PPTX
Deferred object
PPTX
REST with Eve and Python
Unit testing
An introduction to Mobile Development (Spanish)
DevOps and Chef
The Internet own boy
iOS 7
WWDC 2014
Deferred object
REST with Eve and Python

Similar a Indoor Positioning System with iBeacons (20)

PPTX
Comunicación Externa DIAPOSITIVAS _20230424_135131.pptx
DOCX
Construcción de una red con el Modelo OSI
PPT
Multimedia
DOCX
Informatica. red
PPTX
Modelo OSI - Capas
PDF
Tipos y topologias de Redes
DOCX
Capítulo 8 asignación de direcciones ip
PPTX
Unidad I - Introducción a los Sistemas de Transmisión
PDF
KERAS Y TENSORFLOW
PPTX
Trabajo de informatica
PDF
Investigación ipv4
PPTX
Colegio nacional conocoto
PPTX
Patrones de arquitectura Software(Capa de Datos)
PPSX
01 modelo general de comunicación
PPT
PresentacióN1[2][2]
PPT
PresentacióN1[2][2]
PPT
PresentacióN1[2][2]
PPT
Agente Carro
DOCX
Ti documento grupo_2
DOCX
Ti documento grupo_2
Comunicación Externa DIAPOSITIVAS _20230424_135131.pptx
Construcción de una red con el Modelo OSI
Multimedia
Informatica. red
Modelo OSI - Capas
Tipos y topologias de Redes
Capítulo 8 asignación de direcciones ip
Unidad I - Introducción a los Sistemas de Transmisión
KERAS Y TENSORFLOW
Trabajo de informatica
Investigación ipv4
Colegio nacional conocoto
Patrones de arquitectura Software(Capa de Datos)
01 modelo general de comunicación
PresentacióN1[2][2]
PresentacióN1[2][2]
PresentacióN1[2][2]
Agente Carro
Ti documento grupo_2
Ti documento grupo_2
Publicidad

Más de PiXeL16 (7)

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

Último (9)

PPTX
PROPIEDADES Y METODOS DE PrOO CON PYTHON
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PDF
Presentacion de compiladores e interpretes
PPTX
hojas_de_calculo_aplicado para microsoft office
PDF
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES
PPTX
Implementación equipo monitor12.08.25.pptx
PPTX
Control de seguridad en los sitios web.pptx
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
presentación de introducción a las metodologías agiles .pptx
PROPIEDADES Y METODOS DE PrOO CON PYTHON
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Presentacion de compiladores e interpretes
hojas_de_calculo_aplicado para microsoft office
DNS_SERVIDORES PARA ASER PRACTICAS EN REDES
Implementación equipo monitor12.08.25.pptx
Control de seguridad en los sitios web.pptx
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
presentación de introducción a las metodologías agiles .pptx

Indoor Positioning System with iBeacons

  • 4. Encontremos otro uso práctico a los Beac…. digo..., Terminales de proximidad
  • 6. A ya se!! Indoor localization!
  • 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?
  • 24. Con este mapeo podemos crear rutas, rutas de movimiento.
  • 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.
  • 43. Graphs Podemos representar grafos de muchas maneras -Arboles binarios -Hash Tables -Diccionarios, etc
  • 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
  • 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
  • 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
  • 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
  • 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??