Where Am I Project (Alberto Fuentes)

 logo2dominios

 

 


Ya tenemos la primera entrada de Alberto Fuentes, estoy seguro que os va a encantar y sorprender.

¡Comenzamos!.

El proyecto Where Am I (¿Dónde estoy?) se desarrolló para la asignatura de Redes de Sensores del último curso del grado de Telecomunicaciones. Nuestro grupo estaba formado por 5 personas, todos ellos cursando la intensificación de telemática, para este proyecto decidimos agrupar todas las especialidades de nuestra carrera en este proyecto:

  • Señales.
  • Electrónica.
  • Programación.

El proyecto desarrollado tiene como objetivo estimar la posición de un usuario dentro de una determinada zona y que un robot pueda seguirlo (Mindstorms LEGO). Para ello empleamos sensores inalámbricos (motes Telosb de CrossBow) y para resolver parte de la automatización usamos una Raspberry Pi.

La disposición de los “motes” o nodos es muy relevante para el desarrollo del proyecto, cuatro de ellos se situarán formando un rectángulo (en los vértices), donde actuarán como nodos ancla (“anchor”) para el servicio de localización. Un quinto nodo, el que porta el usuario, será el que se pueda mover dentro del rectángulo, y es del que necesitamos conocer su posición. Por último, habrá un nodo más que será el que permita la comunicación entre el robot y el nodo del usuario.

imagen_1Esquema de funcionamiento.

Los nodos ancla, intercambian un mensaje de forma periódica que contiene sus coordenadas y que le permite a los demás extraer el RSSI (Indicador de fuerza de la señal recibida). Cuando cada nodo ancla conoce las coordenadas y la RSSI del resto de los nodos ancla, se puede estimar con facilidad la posición del nodo central a partir de las distancias a los nodos ancla. Es importante señalar que el intercambio de mensajes entre los nodos ancla nunca cesa, por lo que se van recibiendo nuevos valores de RSSI, que permiten que el sistema se adapte a los cambios del medio radioeléctrico.

El nodo central, por su parte, envía de forma periódica un mensaje de saludo (HELLO) a todos los nodos ancla, y cuando éstos lo reciben, responden con la distancia estimada al nodo central desde cada uno de ellos. Una vez que el nodo central ha recibido las estimaciones de los cuatro nodos ancla, ya puede determinar el punto en el que se encuentra (dentro del cuadrilátero).

Para determinar la posición, el código incorpora dos algoritmos de uso libre: el WCL (Weighted Centroid Localization) y un método basado en la trilateración utilizando distancias de Manhattan, desarrollado por Alejandro Braza Barba, componente del grupo, y que cuyo desarrollo se adjunta en el documento TrilateracionManhattan.pdf.

La comunicación entre los nodos centrales y los nodos anclas se basa en el estándar de comunicación inalámbrica ZigBee. En el PC se ejecuta un script de python, que recibe la posición del nodo central a través de comunicación serie y se la comunica al meta sistema Operativo Robótico ROS (en inglés Robot Operating System, ROS) , encargado del control del robot.

Para la comunicación entre ROS y el robot se emplea un enlace inalámbrico entre el PC y una Raspberry Pi donde se ejecutan varios nodos de ROS.

Por último, la comunicación entre la Raspberry Pi y el robot se realiza mediante un interfaz serie, que conecta a la Raspberry por USB con el módulo de control del robot Mindstorms LEGO.

El robot se trata de un Mindstorms NXT de Lego, que posee dos servomotores controlados por el módulo de control. El módulo de control del robot, se alimentó con seis (6) baterías de 1.5 V tipo AA y  para alimentar la Raspberry pi fue necesario integrar un “power bank” en la estructura del robot.

imagen_2

CONTROL DEL ROBOT

Para el control del robot hacemos uso del meta-sistema operativo robótico ROS, el cual está compuesto por una serie de herramientas, funcionalidades y librerías para el desarrollo de aplicaciones robóticas. La filosofía de diseño de ROS permite crear sistemas muy modulares, en los que incluso los programas se pueden estar ejecutando de forma distribuida en una red IP. Para conseguir esta comunicación entre ejecutables (llamados nodos), ROS provee un nodo principal que se encarga de arbitrar las comunicaciones entre todos los demás nodos de la red.

imagen_3

Las comunicaciones pueden ser de dos tipos principalmente:

  1. Basadas en tópicos
  2. Basadas en servicios.

La diferencia fundamental es que en el primero (basadas en tópico) son asíncronas, mientras que las del segundo (basadas en servicios) están compuestas de una petición y una respuesta.

La comunicación basada en tópicos consiste en el patrón publicador-suscriptor, en el que se pueden dar los siguientes casos:

  • Un único publicador envía mensajes a varios suscriptores.
  • Varios publicadores envían mensajes a un único suscriptor.
  • Varios publicadores envían mensajes a varios suscriptores.

En todos ellos, todos los suscriptores reciben todos los mensajes de todos los publicadores, mediante conexión punto a punto entre cada uno de ellos. Cada tópico tiene asociado un nombre y un formato de mensaje específico.

Esta arquitectura de comunicaciones permite la fácil integración de nodos desarrollados por terceros con nodos de desarrollo propio, ya que el único requisito es que publiquen o se suscriban al tópico adecuado y con el formato de mensaje correspondiente.

En nuestro caso integraremos los nodos existentes en el paquete nxt-ros, con nodos desarrollados por nosotros en Python. A grandes rasgos, la funcionalidad ofrecida por el primer conjunto de nodos es el envío de mensajes de control al robot, la recepción de las medidas de los sensores del robot, y el procesamiento de éstas últimas. Esto permite obtener, por ejemplo, la posición (traslación y orientación) del sistema de referencia del robot (“base_link”) con respecto a un sistema de referencia denominado “odom”, a través de las medidas de la posición de los motores.

La transformación entre ambos sistemas de referencia es publicada en el tópico /tf con el tipo de mensaje tf/tfMessage que nos es más que una rotación y una traslación de un sistema de coordenadas con respecto a otro.

ENLACES

Video funcionamiento: https://www.youtube.com/watch?v=8oQcoF7vMic

Trilateración Manhattan: https://www.dropbox.com/s/1tjvi45t91wq9wv/Trilateraci%C3%B3nManhattan.pdf?dl=0

PROYECTO REALIZADO POR:

Francisco Becerra Letrán
Alejandro Braza Barba
Miguel Fontanilla Pérez de Tudela      
Ismael Martín Saldaña
Alberto Fuentes Muñoz

Saludos.

favicon

Efímera constancia……

logo2dominios

 

 


Hace unos meses, mantenía una conversación con una persona que estos últimos años, me ha ayudado mucho a mejorar en muchos planos de la vida. Comentábamos sobre la generosidad a la hora de compartir el conocimiento, y como muchas personas se volvían cicateras, en un intento de protegerse de posibles “asaltos” a su castillo de naipes del conocimiento.

“La automatización es efímera y por ello no me preocupa compartir…..” le contesté, quedó sorprendido durante un instante, y cuando reaccionó me solicitó que le explicara que quería decir. Lo intenté con estas palabras:

“Una de las cosas que he aprendido a lo largos de estos años en mi carrera profesional, es que la tecnología y por ende la automatización es efímera, cuando guardas algo en tu zurrón pensando que es tu tesoro, cometes dos errores: uno pensar que nadie llegará a adquirirlos sin tu ayuda y el segundo es que cuando los sacas y lo haces visible, está obsoleto”.

efimero_0

Por ello, creo que una de las virtudes que debe tener un técnico que se dedica a la automatización, es la constancia y la perseverancia, o también me gusta explicarlo con estas frases: “nunca perder la ilusión de querer aprender, ni la ilusión de quedar sorprendido cuando funciona algo, en definitiva ser como un niño….”.

efimero_1

Este verano un gran amigo me regaló el libro de Creatividad, S.A. de Ed Catmull y algo que deja claro este triunfador en muchos capítulos, era precisamente la idea de compartir y eso que se jugaban muchos millones y prestigio. Precisamente mientras lo leía, tuve una serie de catastróficas desdichas con un portátil y varios discos duros, perdiendo información muy valiosa. No es la primera vez que me pasa, aunque en la otra ocasión, yo tuve más la culpa y también Linux (verdad Miguel Tena), con independencia del coste económico, tengo que decir que no me ha dolido tanto, ya que mucha de esa información, la tengo publicada o compartida con muchos colegas y sólo he tenido que hacer unas llamadas para recuperar casi todo.

Tengo un amigo que me “pega mucha caña” con ésto y me dice que se aprovechan de mí en muchas ocasiones, siempre intento explicarle por qué lo hago y por qué me importa poco que de vez en cuando se aprovechen, la verdad que nunca consigo convencerle. Existen varios motivos, no obstante el más importante soy yo mismo, ya que me siento genial con cualquiera de estas acciones: compartir, explicar, ayudar…..

Esta generosidad se debe interiorizar y no se tiene que presumir de ella y por supuesto, nunca esperar nada a cambio, así nadie nunca te defraudará.

¡Ser generosos tiene recompensa!.

Esta entrada está dedicada a JIRC y aprovecho para agradecer todo lo que he aprendido junto a él y lo que me ha ayudado en mi desarrollo.

¡Saludos!.

favicon

European Maker Week Sevilla

logo_dominios_725


El próximo 3 y 4 de junio se hablará de cultura “maker” en Sevilla, en el Espacio CREA, yo ya he reservado entradas para toda la “familia”, ¿te apuntas?.

maker_sevilla

.

https://www.facebook.com/events/553836348123798/

http://events.europeanmakerweek.eu/events/view/341

“European Maker Week es un evento impulsado por la Comisión Europea e implementada por Maker Faire Rome en colaboración con Startup Europe. El evento es una celebración conjunta de makers e innovadores en Europa durante una semana (del 30 de mayo al 5 de junio) en 38 países de la Unión Europea.

En Sevilla tendrá lugar el 3 y el 4 de junio y en él tienen cabida profesionales, empresarios industriales, emprendedores, hackers, fans, estudiantes, para tecnólogos y no tecnólogos, frikis y no frikis, mayores y niños.

Tendremos charlas y talleres para explicar la importancia y aplicaciones de tecnologías relacionadas con el mundo Maker y Hacker como: impresión 3D, plataformas de hardware libres como Arduino / Genuino o Raspberry Pi, huertos urbanos, GIS, wargames, Minecraft, etc”

¡Saludos!.

favicon

S3D VIEWER

logo_dominios_apaisados1

S3D VIEWER

UNA HERRAMIENTA COMPLETA CON LA QUE VISUALIZAR EN 3D TUS INSTALACIONES Y CENTRALIZAR SU DOCUMENTACIÓN.

De manejo sencillo, permite al usuario desplazar, rotar en cualquier dirección y hacer zoom in/out, todo ello con la imposibilidad de editar o realizar cambios que afecten al modelo.

Incorporación de documentación como fichas técnicas, manuales de reparación, instrucciones de uso y mantenimiento, etc.

Composición (1)

Todo ello en una sola herramienta, disponible para Windows y Android. Con una interfaz sencilla y amigable, con paneles en los que encontrar de forma rápida la información y distintos controles de navegación para elegir el que más cómodo le resulte a cada operario.

  • Visualiza modelos de distintos programas de diseño 3D como Autodesk 3DS Max, SketchUp o Solidworks.
  •  Personalizado a cada cliente.
  •  Sin pago de licencias.
  •  Sin necesidad de instalación.
  •  Sin límite de usuarios.
  •  Multiplataforma.
POR QUÉ S3D VIEWER

Centralizar grandes volúmenes de información supone un avance organizativo que permite un seguimiento permanente, la optimización del funcionamiento de las instalaciones al mejorar las labores de mantenimiento y aportar un mayor conocimiento de todos los objetos monitorizados.

Agiliza el tiempo de respuesta ante alertas, al contar con una herramienta en la que tenemos toda la información que podríamos necesitar podemos ofrecer soluciones de forma más rápida ante cualquier incidencia.

Actualmente existen muchos recursos tecnológicos que nos facilitan la forma de trabajar en el sector industrial, nuestro propósito es sacar el máximo provecho de la tecnología existente y, lo más importante, acercarla a todos los operarios.

Puedes descargar la versión DEMO en el siguiente enlace:

SD3ViewerDEMO

Y en el siguiente enlace nos puedes dejar tu opinión de la herramienta:

Encuesta

Scada3d Solutions

Web: http://scada3d.es/
Teléfono: +34 633546153
Email: info@scada3d.es
Dirección: Avda. Innovación Tecnológica, nº 1 Edificio BIC, Oficina 334. 
Parque Tecnológico de la Salud. Granada

   

 

Feria de la Ciencia 2016

logo_dominios_apaisados1


Este año voy a participar en la 14ª Feria de la Ciencia con la empresa que trabajo (EMASESA, Empresa Metropolitana de Abastecimiento y Saneamiento de Aguas de Sevilla), por lo que me podréis encontrar en el stand 67 en el espacio STEM + , la feria se celebrará de nuevo en el Palacio de Exposiciones y Congresos de Sevilla los días 5, 6 y 7 de mayo de 2016. El tema de referencia de esta edición sera el cambio climático, y la conmemoración de los Años Internacionales de las Legumbre y de los Camélidos.

logo-feria-ciencia

Se han programado distintas microcharlas de unos 20 minutos de duración, y puedes consultar la programación en este enlace. Me ha tocado exponer el jueves a las 16:00 y viernes a las 17:00, ¡horas perfectas para dejar dormido a los asistentes!, y mi microcharla tratará sobre la automatización en Emasesa, y se llama “Sumergidos en la Automatización”.

Os animo a pasar por la feria y el stand de Emasesa, en él tendremos una demo del sistema de control de una estación de bombeo de agua potable y podréis ver como es el Centro de Control de Operaciones y Planificación de Emasesa, además de otros temas muy interesantes de otras áreas de la empresa.

Será un buen momento para conocernos e intercambiar impresiones.

Saludos!!!.

favicon

Arduino- Genuino day en Sevilla en CREA

logo2dominios

 

 


 

Arduino day (Genuino en Europa) es una celebración a nivel mundial del nacimiento de ésta plataforma, ayer pude asistir en el Espacio CREA del Ayuntamiento de Sevilla, gracias a Kiwibot a esta celebración en Sevilla. Todo esto se realizó para dar a conocer las posibilidades de Arduino y de las tecnologías Open Source.

http://www.kiwibot.es/arduino-genuino-day-en-sevilla/

 

ArduDayPUBLI-300x173

Asistí con mi familia al completo y allí me encontré con caras conocidas, no obstante tengo que decir que por desgracia la asistencia no era muy numerosa, aunque estoy seguro de que gracias a iniciativas como las de Kiwibot, el año que viene la asistencia será el doble o quien sabe si diez veces más que la de este año. Es cierto, que como comenté con los organizadores, no ha habido mucha publicidad de las jornadas, pero tengo que decir que “chapó” por los organizadores y participantes.

IMG_2793Qué es Arduino y el Open Source Hardware- Jose Pujol

IMG_2798Impresión 3D Open Source- Alberto Yúfera/ Miguel Granero

IMG_2815Aunque no estaba previsto en el programa, presentaron su proyecto Inversal

Me alegro mucho de haber asistido, ya que todas las ponencias y los expositores fueron muy interesantes y por ello a lo largo de esta semana iré poniendo los enlaces de las ponencias, una vez las cuelguen en el blog de Kiwibot.

Saludos!!!.

favicon

Video Introducción Autómatas Programables

logo_dominios_apaisados1


En una de las primeras entradas del blog, compartí la presentación que suelo realizar para introducir a los autómatas programables en formato PDF, ahora con esta presentación, he realizado un video con el audio de los comentarios que suelo realizar en los cursos, espero os guste:

En futuras entradas, veremos con más profundidad las diferencias entre los PLC´s y los PAC´s.

Saludos!!!.

favicon

 

Divide et impera

logo_dominios_apaisados1


La semana pasada, leí un artículo en el blog de Sergio Soriano y venía como anillo al dedo, sobre una consulta de una incidencia en el trabajo, Sergio hacía mención en un artículo a una frase histórica  “Divide y Conquista” y siendo justo y honesto, tengo que decir que inspiró este artículo. Os adjunto el enlace al artículo, aconsejando su lectura:

“Divide y conquista

 El titulo suena muy napoleónico, pero define bien la siguiente técnica. El primer paso en la reparación de PLCs es decidir si el problema es interno…..”

Esta frase se le atribuye a Cayo Julio César, no obstante es una frase apócrifa y su primer uso no es del estadista y militar romano. Se ha usado posteriormente en la historia, y como comenta Sergio, uno de los personajes históricos más conocidos que la usó, fue el militar y gobernante francés, Napoleón Bonaparte.

Cayo-Julio-César-Imperio-RomanoCayo Julio César

¿Y que tiene que ver esto con la Automatización?, pues muchísimo, es más, muchos técnicos tenemos interiorizada esta frase más de lo que creemos, somos inconscientemente consciente en su uso a la hora de reparar y diagnosticar averías, o depurar sistemas. A continuación voy a explicaros mi flujo de trabajo, como bien decía un amigo mío, igual de válido que otros, y lo voy a hacer con el siguiente ejemplo:

INCIDENCIA: No se refrescan señales de un proceso en un SCADA.

En una planta o fábrica, de cuyo nombre no me quiero acordar, se pierde la supervisión y monitorización de un proceso crítico (para explotación/producción todo es crítico, jejeje), recibimos el aviso y “nos ponemos manos a la obra”.

¿Por dónde empezar?……………es como cuando compramos un jamón o una paletilla y nos preguntamos, ¿pezuña para abajo o para arriba?, siempre dudamos, en cambio el profesional del jamón, tiene interiorizado como hacerlo, la experiencia y el conocimiento que atesora le ayuda tomar decisiones para resolver “este problema” (bendito problema) de manera rápida y efectiva.

Por donde empezar“Peaso” de publicidad, espero que me dejen usar la foto y se dejen caer con uno.

Lo primero, analizar el mensaje de la incidencia y realizar encuesta al peticionario.

Aunque parezca una tontería, este paso es fundamental, la experiencia me ha enseñado que muchas de las interpretaciones de las averías no son correctas y nos pueden llevar a confusión la información que nos transmiten desde explotación o producción, también tengo que decir que son grandes conocedores de los sistemas y nos pueden ayudar mucho, saben si son fallos remitentes-recurrentes o no y por ello su información puede ser de gran utilidad. No obstante, una vez hayamos analizado el mensaje de la incidencia y hayamos realizado las preguntas pertinentes al peticionario, debemos abstraernos de esta información, para no estar influenciados y cometer errores en el diagnóstico y resolución de la incidencia.

“……cuando cierro la puerta del armario deja de funcionar……..es problema de la puerta……..no es problema de la caja de faraday que hace el armario……..”

Del mensaje “No se refrescan señales de un proceso en un SCADA”, existe un dato que no pasa desapercibido, y aunque parezca una tontería, debemos subrayar:

“No existen comunicaciones del PLC/PAC con el SCADA”

Es decir, no es un problema de una señal o un grupo de señales, si fuera una señal la afectada o un grupo de señales, el análisis sería diferente.

Lo segundo, usar la documentación.

Para esta avería, es fundamental conocer la arquitectura de comunicación y control de la planta, es decir, como comunica el SCADA con el PLC/PAC y que equipo tenemos en campo. Para ello, debemos consultar la documentación y esquemas, posiblemente con el tiempo y la experiencia este paso no tendremos que realizarlo, también es muy importante para ésto que los sistemas estén estandarizados. Ahora debemos leer el “código” y saber interpretarlo, como en la pelicula Matrix, jejejeje :

  • Tipo de comunicación SCADA con PLC/PAC……OPC, comunicaciones directas.
  • Tipos de señales que se intercambian.
  • Comunicaciones que se utilizan, directas mediante cable o F.O., a través de un proveedor de comunicaciones, 3G, 2G, ADSL, VSAT….
  • Contexto del PLC/PAC, alimentación e instalaciones auxiliares, existencias de pasarelas, servidores de terminales, switches, hub, latiguillos.
  • Modelo de PLC/PAC y comunicaciones de éste.

maxresdefault

En nuestro ejemplo, disponemos:

  • SCADA con comunicaciones OPC.
  • Red de comunicaciones entre PLC/PAC y SCADA, con Ethernet/IP sobre una red física de F.O.

Por lo comentado anteriormente, es muy probable, que dispongamos de un switch en el lado del SCADA y otro en el lado del PLC/PAC y por supuesto de una F.O. entre las dos localizaciones de los equipos, al ser F.O. podemos tener switches con puertos de fibra o en su defecto dispongamos de convertidores de cobre-fibra en ambos extremos o en sólo uno de ellos, todo esto debemos confirmarlo con la documentación.

Que debemos hacer a la hora de afrontar esta incidencia:

Divide et impera

Debemos comernos el pastel por porciones, es decir, debemos acotar la incidencia, por ello yo empezaría por revisar el PLC/PAC y su entorno, ya que si sólo está afectado un proceso es probable que el problema esté en el lado del PLC/PAC y no en el SCADA. No obstante teniendo en cuenta que son comunicaciones ethernet, empezaría realizando un “ping” o “tracert” a la dirección IP del PLC/PAC o del switch más cercano al PLC/PAC.

Si no tenemos respuesta en los comandos antes comentados, procederíamos a la revisión del armario del PLC/PAC:

  • Tensiones correctas.
  • Switch en buen estado.
  • Latiguillos de cobre y F.O. en buen estado.
  • PLC/PAC está correctamente, encendido y sin ningún fallo.

Si fuera todo correcto, realizaríamos un “ping” al PLC/PAC conectados desde el switch local, por supuesto debemos estar en el rango correcto, y así procederíamos desde este punto hasta volver al SCADA.

IMG_2628

Variantes existen muchas, pero lo que tenemos que tener claro es la idea de ir sectorizando y comprobando el estado, para poder “acorralar” el problema.

Divide et impera

Saludos!!!!.
Esta entrada se la dedico al Colaborador Miguel Tena.
favicon