View
90
Download
2
Category
Preview:
Citation preview
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 PowerRSSI Measured Power
Broadcasting PowerEl 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
RSSIEs la fuerza de la senal del visto por el dispositivo.
Entre mas distancia aya entre el dispositivo y el mas grande el RSSI
RSSISe utiliza para estimar la distancia que hay entre el dispositivo y la terminal…
Measured PowerViene 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
GrafosConsiste 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 SocialesMapeo de carreterasDating sitesSitios de compra(Amazon)Etc, todo utiliza grafos
Son especialmente buenos para encontrar cosas como el camino más corto (Shortest Path) entre N puntos.
DijkstraEdsger W. DijkstraCientifico Holandes En 1972 recibió el premio Turing por sus contribuciones
DijkstraDesarrolló 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!
GraphsPodemos representar grafos de muchas maneras
-Arboles binarios-Hash Tables-Diccionarios, etc
Que es Neo4jNeo4j 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 editorCreemos un grafo de amigos en NEO4j
1.Agreguemos un nodo2.Pongamos Emil en nombre3.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
RelacionesLas relaciones tienen una direccionLas relaciones tienen un tipoLas relaciones forman patrones de datos
Propiedades entre relaciones
Cypher
CypherCypher 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 cosasEs simple pero bien poderosoDeclarativo, describe que encontrar no como encontrarlo
CreateCREATE (ee:Person { name: "Emil", from: "Sweden", klout: 99 })
CREATE clause to create data() parenthesis to indicate a nodeee:Person a variable 'ee' and label 'Person' for the
new node{} brackets to add properties to the node
MatchMATCH (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 resultsee.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
RecapitulemosPodemos 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 conclusionPodemos 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
ProsAtaca 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
ProsLa 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.
ProsEs algo que esta por explotar!
ConsLa 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
Principal diferenciaEstas 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?
Recommended