Manipulacion de Un Robot Humanoide Con Kinect

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 82

Instituto Politcnico Nacional

Escuela Superior de Ingeniera Mecnica y Elctrica

Proyecto de Ingeniera para reducir riesgos en reas


peligrosas (Desactivar Bombas)
Proyecto Terminal
Que para obtener el titulo de
Ingeniero en Robtica Industrial
Presentan
Jorge Luis Castro Rodrguez
Jess Castillo Martnez
Directores
M. en C. Jess Antonio Alvarez Cedillo
M. en C. Ricardo Corts Olivera
Noviembre de 2013

ndice general
Agradecimientos

viii

Resumen

Abstract

xi

Introduccin

Planteamiento del problema

Objetivos

Justicacin

1. Antecedentes Historicos

1.1.

El robot Prometeo

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.

Robot hexpodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.3.

Perro Robot para ciegos

1.4.

Control de Robot ABB con Kinect

. . . . . . . . . . . . . . . . . . .

1.5.

Brazo controlado con actuadores grcos . . . . . . . . . . . . . . . .

1.6.

Uso mdico del Kinect

. . . . . . . . . . . . . . . . . . . . . . . . . .

1.7.

Robot Sally Desactiva Bombas . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . .

2. Estudio del estado del arte


2.1.

Contexto tecnolgico

11

. . . . . . . . . . . . . . . . . . . . . . . . . . .

2.1.1.

Robtica Industrial

2.1.2.

Blender

11

. . . . . . . . . . . . . . . . . . . . . . .

11

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

iii

ndice general

iv

2.2.

2.1.3.

Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.1.4.

Infrarrojo

17

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Contexto Normativo

. . . . . . . . . . . . . . . . . . . . . . . . . . .

18

3. Anlisis del sistema de transmisin de movimientos corporales para


la manipulacin del Robosapien
22
3.1.

Anlisis Funcional del sistema de transmisin KINECT - UIRT- ROBOSAPIEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

3.1.1.

Fortalezas

23

3.1.2.

Oportunidades

3.1.3.

Restricciones

3.1.4.

Debilidades

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .

24

. . . . . . . . . . . . . . . . . . . . . . . . . . .

24

. . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

3.2.

Obtencin y seleccin de la problemtica en base a criterios . . . . . .

24

3.3.

Alternativas de solucin

. . . . . . . . . . . . . . . . . . . . . . . . .

26

3.4.

Seleccin de la solucin . . . . . . . . . . . . . . . . . . . . . . . . . .

28

4. Anlisis de costos y retorno de inversin


4.1.

COSTOS INDIRECTOS

4.2.

COSTOS DIRECTOS O VARIABLES

4.3.

COSTOS Y PRESUPUESTOS
4.3.1.

41

. . . . . . . . . . . . . . . . . . . . . . . .

41

. . . . . . . . . . . . . . . . .

41

. . . . . . . . . . . . . . . . . . . . .

42

. . . . . . . . . . . . . . . . . . .

42

4.4.

Costo de mano de obra e ingeniera . . . . . . . . . . . . . . . . . . .

43

4.5.

Retorno de inversin, punto de equilibrio . . . . . . . . . . . . . . . .

44

4.5.1.

Costos de los componentes

Benecios del nuevo sistema con respecto al anterior en cuestiones monetarias. . . . . . . . . . . . . . . . . . . . . . . . . .

5. Diseo del sistema (MODELADO)


5.1.

46

47

Diseo del sistma grco en BLENDER . . . . . . . . . . . . . . . .

47

5.1.1.

Propuesta de diseo de robot capz de desactivar una bomba.

52

5.1.1.1.

Estrategia de deteccin de bombas

52

5.1.1.2.

Anlisis de partes y modelado del sistema de visin.

53

5.1.1.3.

Inteligencia del Robot. . . . . . . . . . . . . . . . . .

55

5.1.1.4.

Criterio de seleccion de materiales.

. . . . . . . . . .

56

5.1.1.5.

Propuesta del diseo mecnico

. . . . . . . . . . . .

57

. . . . . . . . . .

ndice de guras
1.1.

Robot controlado con Blender . . . . . . . . . . . . . . . . . . . . . .

1.2.

Robo Sally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

2.1.

Brazo soldador.

12

2.2.

Dimensiones del sensor Kinect.

. . . . . . . . . . . . . . . . . . . . .

15

2.3.

Composicin interna del sensor Kinect. . . . . . . . . . . . . . . . . .

17

3.1.

MotionCapture

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.2.

Diseo de la placa UIRT . . . . . . . . . . . . . . . . . . . . . . . . .

30

3.3.

UIRT internamente . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31

3.4.

Modo Super Usuario

32

3.5.

Diagrama de distancia y ngulo de iluminacion de infrarrojo.

3.6.

Respuesta del robot en diferentes estados de iluminacin

3.7.

Pruebas de movimiento en un objeto simple

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .

33

. . . . . . .

34

. . . . . . . . . . . . . .

35

3.8.

Delicode NI-Mate . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

3.9.

Reconocimiento de cuerpo

. . . . . . . . . . . . . . . . . . . . . . . .

36

3.10. Importacin de Big Buck Bunny . . . . . . . . . . . . . . . . . . . . .

37

3.11. Comparacin de propiedades en Kinect y Blender

. . . . . . . . . . .

38

3.12. Movimiento Big Buck Bunny . . . . . . . . . . . . . . . . . . . . . . .

39

3.13. Comparacin de Movimiento . . . . . . . . . . . . . . . . . . . . . . .

40

3.14. Interaccin del sistema Hombre- Diseo grco . . . . . . . . . . . . .

40

4.1.

Graca representativa del punto de equilibrio.

. . . . . . . . . . . . .

45

5.1.

UV image editor

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

5.2.

UV image editor

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

ndice de guras

vi

5.3.

Primeros pasos de elaboracin 3D . . . . . . . . . . . . . . . . . . . .

51

5.4.

Primeros pasos de elaboracin 3D . . . . . . . . . . . . . . . . . . . .

52

5.5.

Diagrama de ujo del modelo de adquisicin de datos con retroalimentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

5.6.

Camara de visin CMUCAM-3

. . . . . . . . . . . . . . . . . . . . .

55

5.7.

UART

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

ndice de tablas
3.1.

Conguracin de hardware UIRT

. . . . . . . . . . . . . . . . . . . .

27

3.2.

Rutas de informacin necesaria para el funcionamiento de UIRT . . .

29

3.3.

Principles movimientos del Robot . . . . . . . . . . . . . . . . . . . .

31

4.1.

Costos de inversin para el desarrollo del proyecto.

. . . . . . . . . .

43

4.2.

Tiempo invertido en la elaboracin del proyecto

. . . . . . . . . . . .

44

4.3.

Datos para calcular el punto de equilibrio . . . . . . . . . . . . . . . .

45

4.4.

Componentes adicionales para el funcionamiento de un robot mas preciso 46

Agradecimientos
Agradecemos enteramente a nuestros padres por brindarnos la oportunidad de
estudiar una carrera de ingeniera en la gloriosa ESIME Azcapotzalco del glorioso
Instituto Politcnico Nacional, a nuestros directores de proyecto por brindarnos su
apoyo.
Muy en especial al Dr. Jess Antonio lvarez Cedillo que nos permiti trabajar
con l en un proyecto de innovacin tecnolgica, brindndonos todo su apoyo y
experiencia en el desarrollo de sistemas computacionales en base a la plataforma
UNIX.
Al M. en C. Ricardo Corts Olivera que siempre estuvo dispuesto a otorgar su
buen juicio y experiencia para darnos asesoras en el diseo de ste trabajo.
Un agradecimiento al Centro de Innovacin y Desarrollo Tecnolgico en Computo
(CIDETEC) del IPN que nos permitieron realizar este proyecto en procesamiento
paralelo dndonos la oportunidad de poner en prctica los conocimientos adquiridos
en la ESIME Azcapotzalco.

viii

ndice de tablas

ix

Castro Rodriguez Jorge Luis


Agradezco y dedico este trabajo a Dios y a mi Madre, por siempre estar apoyandome incondicionalmente a lo largo de mi carrera a Dios por darme la sabidura de
comprender todas las cosas que yo desconoca y que la ciencia no me ayudara a
comprender.
Gracias por entenderme en los momentos de crisis porque sin tu ayuda y tus consejos nunca abra sido capaz de salir adelante talvez no existan las palabras sucientes
para demostrate cuan orgullozo estoy de ti.
A mi padre por darme lecciones en la vida que tendr siempre presentes
A mis hermanos porque su inocencia y sus pequeos detalles hacan que cada vez
que existan situaciones adversas supieron comprender los estados en los que estaba
y lograron soportarme Gracias.
A mis abuelos por sus sabios consejos que sin ellos no habra en mi, principios
y valores como la responsabilidad perseverancia y respeto, que me forjaron y que se
ven reejados en el termino de este proyecto.
A todos ustedes GRACIAS.

Castillo Martnez Jess


A mi madre: Te doy las gracias por haberme impulsado y darme la enorme dicha
de ser tu hijo. Porque gracias a tu apoyo, esfuerzo y comprensin; me has inspirado
conanza impulsndome a obtener uno de mis objetivos. Con cario admiracin y
respeto.
A mi familia: En testimonio de gratitud ilimitada por su apoyo y estmulo; mismos
que posibilitaron la conquista de esta meta: Mi formacin profesional.
A mis amigos: Porque son de esa clase de personas que todo lo comprenden y dan
lo mejor de s mismas sin esperar nada a cambio... porque se han ganado el cario,
admiracin y respeto de este humilde individuo.

Resumen
En este trabajo se plantea el control de un robot humanoide a travs de una
interfaz interactiva en tiempo real y de manipulacin natural. Los sistemas convencionales de manipulacin formados por dispositivos a base de palancas como los
joysticks, los TrackBall (a base de esferas) y programacin repetitiva tipo CNC, son
de uso complicado, grandes dimensiones y difcil conguracin. Se propone el desarrollo de un sistema que permita la deteccin de movimiento basada en el uso de la
visin articial y el controlador Kinect de Microsoft.
Se realiz un prototipo controlado con una interfaz inalmbrica para realizar
el seguimiento de las extremidades de una persona a travs de dispositivos sin cables (WIRELESS) en un humanoide tipo Robosapiens, su implementacin inicial
permitir en un futuro aplicarlo a robots de tipo industrial tales como: Scara, Prismticos, PUMA, Cuca y Humanoides; su control ser a travs de luz infrarroja, bluetooth y Wi-Fi. Se consideran los grados de libertad del robot, como base para realizar
el modelo mecnico en software y su modelado en 3D.
La nalidad de este proyecto es demostrar las bases para otorgar mayor seguridad
a un operario en el proceso para la desactivacin de una bomba, comparado con el
proceso actual que se tiene el cual es un procedimiento bastnte riesgoso.
A su vez tambin se demuestra en el proyecto que los alcances no slo se limitan
a este tipo de eventos sino que tambien su aplicacin industrial sera ms interactiva
y ms segura. Como es de considerarse, la implementacin de este trabajo reduce
costos en considerables en el sector seguridad ya que el riesgo que se tiene al momento
de desactivar una bomba y a su vez el mayor costo es el de una vida humana que
al implementar este sistema podremos reducir los riesgos o en el mejor de los casos
eliminarlos.

Abstract
This paper presents the control of a humanoid robot through a real-time interactive interface handling and naturally. Conventional systems for handling formed
levers based devices such as joysticks, trackballs ( based spheres) and CNC type
repetitive programming , are complicated to use , large dimensions and dicult conguration. It proposes the development of a system for motion detection based on
the use of articial vision and Microsoft 's Kinect controller .

We performed a controlled prototype with a wireless interface to track a person's


limbs through wireless devices ( WIRELESS ) Robosapiens a humanoid type , its
initial implementation in the future will apply to industrial type robots such as :
Scara , Binoculars, PUMA , Cuca and Humanoids , its control is through infrared ,
Bluetooth and Wi - Fi . It considers the degrees of freedom of the robot, as the basis
for the mechanical model in software and 3D modeling.

The purpose of this project is to demonstrate the basis for further security to an
operator in the process of disabling a bomb, compared to the current process that
you have which is a pretty risky procedure .
In turn also demonstrated in the project that reaches not only limited to these
events but also industrial application would be more interactive and more secure.
As is seen , the implementation of this work reduces signicant costs in the security
sector as the risk that you have the time to defuse a bomb and in turn the higher cost
is that of a human life that implementing this system we can reduce risks or eliminate
best . Traductor de Google para empresas:Google Translator ToolkitTraductor de
sitios webGlobal Market Finder

xi

Introduccin
En la actualidad se han desarrollado nuevas tendencias tecnolgicas en el rea
de la robtica industrial, tanto de automatizacin como de control, ya sea por entornos virtuales para la manipulacin de robots, que ofrecen una amplia gama de
aplicaciones cientcas y son usadas en experimentacin y aprendizaje.
La deteccin de movimientos con Kinect en conjunto con un software de diseo 3D
ofrecen una herramienta til para el desarrollo de tecnologas de control para diversos
tipos de robot como son: de experimentacin, entretenimiento e industriales.
Primordialmente abarcamos los conceptos necesarios para el entendimiento del
trabajo, brindando as al lector una comprensin de la tecnologa usada, as como
tambin se abarca el desarrollo de la interfaz para controlar un robot humanoide por
medio de tecnologa infrarroja y el desarrollo necesario para la implementacin de
tecnologa Bluetooth y Wi-Fi.
Se usa un diseo en tercera dimensin con un software multiplataforma llamado
Blender el cual nos permite una fcil interaccin con los dispositivos vinculados al
equipo de computo. La tecnologa Kinect nos otorga la captura de movimiento a
travs de las libreras SDK, que son libreras de desarrollo para las nuevas tendencias
como lo son visin e inteligencia articial.
Estas dos tecnologas, Blender y Kinect, juntas, forman una poderosa estructura
fundamental para el desarrollo de todo este trabajo que se mostrar en los captulos
siguientes.

Planteamiento del problema


El procedimiento que actualente se tiene para desactivar una bomba en el pas es
demasiado riesgosa ya que los tcnicos en explosivos deben valorar la situacin a la
cual se van a enfrentar, examinar los elementos de seguridad con los que se cuenta
y utilizarlos de la mejor manera; el sistema de seguridad al operario se encuentra a
mas de 100m a la redonda y en caso de una emergencia tardaran mnimo 5 minutos
en llegar mismos que seran insucientes en dado caso de trabajar con explosivos
altamente peligrosos.
Dados los argumentos anteriores y tomando en cuenta que existen robots con
gran exactitud a la hora de operar y que adems cuentan con un sistema de retroalimentacin a travs de camaras pero que a su vez su programacin es bastnte tardada
y no es exible en sentido de que no todos los casos de amenaza de bomba son iguales,
surge la necesidad de implementar un sistema de control que nos de mayor presicin,
seguridad y un tiempo de programacin casi inmediato y que adems nos permite
tener esa exibilidad para que un slo sistema y un solo robot nos permita utilizarlo
en diversas ocasiones sin tener que cambiar mucho su programacin.

Objetivos
Objetivo General
Controlar un robot tipo humanoide a travs de la relacin de movimiento para
desarrollar una interfaz hombre-mquina que servir como principio de aplicacin
para las nuevas tendencias de control mecnico en robots con ms grados de libertad
y mejor presicin.

Objetivo especico
Desarrollar un sistema de control econmico e interactivo para un robot de tipo
humanoide a travs de la relacin de movimientos mediante el sistema de visin
articial Kinect y software libre Blender, basados en plataforma LINUX.

Justicacin
El sistema mostrado de transmision de datos y control de un robot humanoide es
una iniciativa para optimizar la precision de los robots al momento de querer realizar
actividades peligrosas para el ser humano como lo es la desactivacion de una bomba.
Para ello es necesario transmitir datos a distancia mediante una comunicacin
inalmbrica y as tener mejoras en cuestin de respuesta en el tiempo del sistema,
exibilidad y prescicin con respecto a los robot que ya existen y que llevan una
conguracion bastnte compleja. ste proyecto otorga mayor seguridad para los tcnicos en explosivos y mayor exactitud al momento de estar operandolos que los ya
existentes.
Por otra parte los sistemas de visin pueden acelerar la produccin y reducir
los costos de mano de obra, los robots industriales son comunes en entornos de
produccin de alto volumen que requieren acciones repetitivas y jas como acciones
de CNC y robots de soldadura, en estas aplicaciones los movimientos del robot
no cambian mas hoy en da estn evolucionando a nuevos tipos de aplicaciones de
manejo y colocacin de partes que requieren manejo exiHoja en blancoble, preciso
y delicado.
Estos nuevos tipos de aplicaciones no se pueden manejar con los movimientos jos
y repetitivos de los entornos de produccin a gran escala por las siguientes razones:
Los entornos exibles de manufactura requieren robots para ajustarse a los nuevos
componentes y procedimientos cada vez que la produccin cambie. El ensamble de
precisin requiere robots para ubicar, manejar y colocar los componentes pequeos
en la ubicacin correcta.
En otras palabras estas acciones necesitan robots ms inteligentes que puedan
interactuar con sus entornos a travs de medidas y visin. Es por esto por lo que

ndice de tablas

la nueva interfaz de manipulacin con Kinect nos ser de gran ayuda para estas
diferentes aplicaciones.

Captulo 1
Antecedentes Historicos
1.1. El robot Prometeo
Desarrollado por estudiantes del Programa de Ingeniera Electrnica de la Universidad el Bosque, se diseo para moverse inalmbricamnete con seales producidas
con los movimientos de los musculos. Mencionan que el robot es solo el comienzo
de un gran proyecto venidero, en el cual sus objetivos nales es hacer un robot que
pueda prestar servicios de seguridad como es desarmar bombas.
Aquiles II es un robot diseado enteramente por una empresa catalana, este robot
tiene desarrollos tecnologicos que le permiten desactivar artefactos explosivos, mover
paquetes que supongan un peligro, trabajar con toxicidad en el ambiente. Este robot
es adquirido por un escuadron de seguridad catalana para asegurar a la ciudadana.

1.2. Robot hexpodo


Un robot hexpodo (con forma de hormiga) fue desarrollado por del Centro de
Robtica e Informtica de la Universidad Jorge Tadeo Lozano (2011), es controlado
por un dispositivo de pantalla tctil (puede ser un celular o tablet) por medio de
un programa desarrollado por ellos mismos. El proyecto evoluciono de un simple
monitoreo de cultivos pero decidieron que realizara una actividad mas peligrosa, que
es, asistir a tcnicos del escuadron antibombas. Tienen en desarrollo un guante con
el cual puedan transmitir mejor los movimientos al manipulador del robot y hacer

1.3. Perro Robot para ciegos

mas precisos sus movimientos.

1.3. Perro Robot para ciegos


Un inteligente diseo de perro-robot le saca bastante provecho a la tecnologa
del Kinect, ya que su capacidad de reconocer el espacio y las distancias le convierte
en un preciso gua de ciegos. El uso es bastante sencillo, el usuario toma el mango
del perro y lo presiona, entonces el robot avanza mientras da indicaciones de voz y
describe el entorno para situar mejor y ayudar a su  dueo . Tambin sube y baja
escaleras si es necesario, por lo que es bastante verstil. Est desarrollado por la
Universidad de Electro-comunicaciones (Tokio) [1]. El plan es seguir mejorando el
perro-robot, incluir comandos de voz y agregarle GPS para mejorar la navegacin.

1.4. Control de Robot ABB con Kinect


Control de un Robot ABB con Kinect Estudiantes de Ingeniera Robtica que
en el verano de 2011, en Suecia, usaron el software de seguimiento de esqueleto del
Kinect, para controlar un brazo robtico ABB [1]. En la gura 1.1 se puede ver como
manejan el robot con el Kinect, en donde apilan una serie de bloques de madera para
despus escribir utilizando el robot.

1.5. Brazo controlado con actuadores grcos


Alan Daz, estudiante del CIDETEC (2012), trabajo en el control de un brazo
robotico controlado por un diseo en 3D hecho en blender, el cual envia e interpreta
ordenes de control a travez de un dispositivo de desarrollo de multiples entradas y
salidas arduino. La desventaja sobre este trabajo es la delimitante de movimientos
generada por los cables que hacen posible la comunicacin con la computadora y el
robot.
M. Martnez Zarzuela realizo una monitorizacin de movimientos mediante el
dispositivo Kinect (2011).

Captulo 1. Antecedentes Historicos

Figura 1.1: Robot controlado con Blender

1.6. Uso mdico del Kinect


Estudiantes de la Universidad de Washinton (EE.UU.) han querido ir ms all.
Han adaptado la tecnologa para realizar cirugas robticas asistidas en la vida real. Este mtodo implica el uso de Kinect para ayudar a los cirujanos a utilizar las
herramientas cuando realicen una ciruga. En la actualidad, los cirujanos suelen utilizar la robtica para intervenciones quirrgicas mnimamente invasivas. El principal
problema, con los mtodos actuales, es que los cirujanos no tienen ninguna forma de
palpar lo que estn haciendo. Si se mueve un instrumento quirrgico en algo slido,

1.7. Robot Sally Desactiva Bombas

el instrumento se detendr pero el mando de control sigue en movimiento. El equipo


de ingeniera elctrica de la universidad ha resuelto este problema gracias al cdigo
abierto de Kinect para asignar y reaccionar a los entornos en tres dimensiones y
enviar la informacin sobre el entorno al usuario. Al usar Kinect se establecen "espacios electrnicos" que restringen el movimiento de la herramienta quirrgica, es
decir, si la herramienta toca un hueso se deja de mover. En cambio, si el instrumento
se mueve a lo largo de un hueso, el joystick sigue el mismo camino. Incluso es posible
denir las zonas de acceso restringidas para proteger los rganos vitales. El equipo
espera que esta ciruga robtica sea able y prctica a largo plazo, permitiendo as a
los mdicos llevar a cabo fcilmente en las principales ciudades cirugas en pacientes
en pueblos pequeos y aislados. Chizeck asegura que esta idea se puede extrapolar
en catstrofes o guerras. En un hospital de Canad han mostrado un nuevo ejemplo
del uso de Kinect para mantener la sala de operaciones como un entorno esterilizado.
La idea es que se realicen determinadas tareas sin salir del quirfano, como puede
ser la bsqueda de informacin sobre el estado de un paciente en un ordenador. La
realizacin de un escner por rayos X, ya que podra manejar de forma remota el
ordenador que controla el aparato. Adems de eso, se evitara tener que lavarse y
desinfectarse, como sucede ahora cada vez que utiliza esa mquina.

1.7. Robot Sally Desactiva Bombas


Este robot creado por la Agencia de Proyectos de Investigacin Avanzados de
Defensa (DARPA), es capaz de desactivar bombas con la neza de manos casi humanas. Diseado por expertos en robtica del Laboratorio de Fsica Aplicada de la
Universidad John Hopkins, Robo Sally es parte del programa Revolucionando Prtesis, de la DARPA, el cual busca disear mejores prtesis para los soldados heridos
en el campo.

10

Captulo 1. Antecedentes Historicos

Figura 1.2: Robo Sally

Captulo 2
Estudio del estado del arte
2.1. Contexto tecnolgico
2.1.1. Robtica Industrial

1 2 3

El campo de la robtica industrial puede denirse como el estudio, diseo y uso


de robots para la ejecucin de procesos industriales.

El robot industrial
Se entiende por Robot Industrial a un dispositivo de maniobra destinado a ser
utilizado en la industria y dotado de uno o varios brazos, fcilmente programable para
cumplir operaciones diversas con varios grados de libertad y destinado a sustituir la
actividad fsica del hombre en las tareas repetitivas, montonas, desagradables o
peligrosas.
Si bien no existen reglas acerca de la forma que debe tener un robot industrial, la tecnologa incorporada a l est perfectamente establecida y en algunos casos
esta procede de las aplicadas a las mquinas-herramientas. Los desplazamientos rectilneos y giratorios son neumticos, hidrulicos o elctricos. Como es sabido, los
sistemas neumticos no proveen movimientos precisos debido a la compresibilidad

1 Kight, A.L. (1989): "Robots y maquinaria de produccin automtica", en OIT

2 Lpez Pelez, A. (2000): "Tendencias en Robtica y Automatizacin Avanzada


3 Weichbrodt, B. (2000): "Industrial Development in Robotics"

11

12

Captulo 2. Estudio del estado del arte

del aire y en ellos deben emplearse topes positivos para el posicionamiento, lo que implica la utilizacin de dispositivos de desaceleracin. Los Robots Neumticos poseen
una alta velocidad de operacin manipulando elementos de reducido peso.
Los accionamientos hidrulicos proporcionan elevadas fuerzas, excelente control
de la velocidad y posicionamiento exacto. En cuanto a los sistemas elctricos se
utilizan motores de corriente contina o motores paso a paso. Estos dos tipos de
Robots quedan reservados a la manipulacin de elementos ms pesados o los procesos
de trayectorias complejas como las tareas de soldadura por punto o continua. Vase
la gura 2.1.

Figura 2.1: Brazo soldador.

Clasicacin de los robots industriales


Una clasicacin del grado de complejidad del Robot puede establecerse de la
siguiente forma:

Primera generacin
Dispositivos que actan como "esclavo" mecnico de un hombre, quien provee
mediante su intervencin directa el control de los rganos de movimiento. Esta
transmisin tiene lugar mediante servomecanismos actuados por las extremidades
superiores del hombre, el caso tpico es la manipulacin de materiales radiactivos,
obtencin de muestras submarinas, etc.

2.1. Contexto tecnolgico

13

Segunda generacin
El dispositivo acta automticamente sin intervencin humana frente a posiciones jas en las que el trabajo ha sido preparado y ubicado de modo adecuado
ejecutando movimientos repetitivos en el tiempo, que obedecen a lgicas combinatorias, secuenciales, programadores paso a paso, neumticos o Controladores Lgicos
Programables. Un aspecto muy importante est constituido por la facilidad de rpida
reprogramacin que convierte a estos Robots en unidades "verstiles" cuyo campo
de aplicacin no slo se encuentra en la manipulacin de materiales sino en todo los
procesos de manufactura, como por ejemplo: en el estampado en fro y en caliente
asistiendo a las mquinas-herramientas para la carga y descarga de piezas. En la inyeccin de termoplsticos y metales no ferrosos, en los procesos de soldadura a punto
y contina, en tareas de pintado y reemplazando con ventaja algunas operaciones de
mquinas convencionales.

Tercera generacin
Son dispositivos que habiendo sido construidos para alcanzar determinados objetivos sern capaces de elegir la mejor forma de hacerlo teniendo en cuenta el ambiente
que los circunda. Para obtener estos resultados es necesario que el robot posea algunas condiciones que posibiliten su interaccin con el ambiente y los objetos. Las
mnimas aptitudes requeridas son: capacidad de reconocer un elemento determinado
en el espacio y la capacidad de adoptar propias trayectorias para conseguir el objetivo deseado. Los mtodos de identicacin empleados hacen referencia a la imagen
ptica por ser esta el lenguaje humano en la observacin de los objetos, sin embargo no puede asegurarse que la que es natural para el hombre, constituye la mejor
solucin para el robot.

Cuarta generacin
Son llamados tambien robots inteligentes. Son similares a las anteriores pero
ademas poseen sensores que envian informacion a la computadora de control sobre el
estado del proceso. La cuarta generacin de robots, ya los calica de inteligentes con
ms y mejores extensiones sensoriales, para comprender sus acciones y el mundo que

14

Captulo 2. Estudio del estado del arte

los rodea. Incorpora un concepto de  modelo del mundo de su propia conducta y


del ambiente en el que operan. Utilizan conocimiento difuso y procesamiento dirigido
por expectativas que mejoran el desempeo del sistema de manera que la tarea de
los sensores se extiende a la supervisin del ambiente global, registrando los efectos
de sus acciones en un modelo del mundo y auxiliar en la determinacin de tareas y
metas.

2.1.2. Blender
Blender es un programa informtico multiplataforma, dedicado especialmente al
modelado, animacin y creacin de grcos tridimensionales.
El programa fue inicialmente distribuido de forma gratuita pero sin el cdigo
fuente, con un manual disponible para la venta, aunque posteriormente pas a ser
software libre. Actualmente es compatible con todas las versiones de Windows, Mac
OS X, GNU/Linux, Solaris, FreeBSD e IRIX.
Tiene una muy peculiar interfaz grca de usuario, que es criticada como poco
intuitiva, pues no se basa en el sistema clsico de ventanas; pero tiene a su vez ventajas importantes sobre stas, como la conguracin personalizada de la distribucin
de los mens y vistas de cmara.

Blender Game Engine


Blender tiene su propio motor de juegos interno que le permitir crear aplicaciones interactivas en 3D. El motor de juegos de Blender (BGE) es una poderosa
herramienta de programacin a alto nivel. Esta enfocada principalmente al desarrollo de juegos pero puede usarse para crear software de tipo interactivo, tales como
recorridos arquitectnicos en 3D o investigacin (Robtica).
Aqui es donde se denen los movimientos de los modelos 3D as como colocar
los sensores, controladores y actuadores que controlan y mamipulan la escena del
programa, con la ayuda de una consola de programacin Python se puede acceder a
ordenes externas al programa.

2.1. Contexto tecnolgico

15

2.1.3. Kinect
Kinect es un dispositivo sensor de movimiento hecho por Microsoft para consola
de videojuegos Xbox 360 y para PCs que utilicen Windows. Basado en u conjunto
de camaras y un sensor de profundidad infrarrojo, permite al usuario controlar e
interactuar con la Xbox 360 sin la necesidad de tocar un joystic, a travs de una
interface natural de usuario que usa comandos de gestos y hablados.
El projecto esta enfocado a incrementar la audiencia ms all de la tipica forma
de jugar videojuegos. Kinect rivaliza con los controles Wii Remote Plus y PlayStation
Move Eye.
El 21 de Febrero de 2011 anunciaron que se lanzara una version no comercial de
Software Development Kit (SDK) para Windows, la cual fue lanzada para compatible
con PCs con Windows 7 el 16 de Junio de 2011. El SDK proporciona capacidades
de Kinect para que los desarrolladores puedan crear aplicaciones con C++, C# o
Visual Basic.

Figura 2.2: Dimensiones del sensor Kinect.

El sensor de Kinect adquiere imgenes de vdeo con un sensor CMOS de colores


a una frecuencia de 30 Hz, en colores RGB de 32-bits y resolucin VGA de 640480
pixeles. El canal de vdeo monocromo CMOS es de 16-bit, resolucin QVGA de
320240 pixeles con hasta 65,536 niveles de sensibilidad.
Para calcular distancias entre un cuerpo y el sensor, el sensor emite un haz lser infrarrojo que proyecta un patrn de puntos sobre los cuerpos cuya distancia se
determina. Una cmara infrarroja capta este patrn y por hardware calcula la profundidad de cada punto. El rango de profundidad del sensor de Kinect est entre 0.4
y 4 m. Existen 2 modos (Default y Near) para determinar distancias. Normalmente

16

Captulo 2. Estudio del estado del arte

se utiliza el modo  Default ya que permite medir hasta 4 metros de distancia con
respecto al sensor.

El ngulo de vista (FOV) es de 58 horizontales y 45 verticales. Por otro lado


el pivote permite orientar en elevacin, hacia arriba o hacia abajo incrementando el
FOV hasta en 27. El array del micrfono tiene cuatro cpsulas, y opera con cada
canal procesando en 16-bit de audio con una frecuencia de 16 kHz.

La cmara tiene dos funciones principales:

Generar un mapa en 3D de la imagen que tiene en su campo visual.

Reconocer humanos en movimiento entre los objetos de la imagen a partir de


diferentes segmentos de las articulaciones del cuerpo y un esquema en escala
de grises.

En comparacin con otros dispositivos de captura de imagen el kinect nos permite


trabajar de una manera ecaz para lo que es el desarrollo del proyecto debido a su
alcance de profundidad y sus controladores mostrados en la siguiente imagen.

2.1. Contexto tecnolgico

17

Figura 2.3: Composicin interna del sensor Kinect.

2.1.4. Infrarrojo
La radiacin infrarroja o radiacin trmica es un tipo de radiacin electromagntica de mayor longitud de onda que la luz visible, pero menor que la de las microondas. Consecuentemente, tiene menor frecuencia que la luz visible y mayor que
las microondas. El infrarrojo es una radiacin de energa con una frecuencia por
debajo de la sensibilidad de nuestros ojos, de modo que no podemos verla. Aunque

18

Captulo 2. Estudio del estado del arte

nosotros no podemos ver frecuencias de sonido, sabemos que existen ya que podemos
escucharlas.
El infrarrojo es muy utilizado en electrnica ya que es fcil de generar y no
sufre interferencias electromagnticas, por ello es que se utiliza en comunicacin y
control. Pero no es perfecto, algunas otras emisiones de luz pueden contener tambin
infrarrojo (un ejemplo claro es el sol) y por ello pueden interferir en la comunicacin.
Hay muchas cosas que pueden generar infrarrojo, como todo lo que emita calor (por
ejemplo, el cuerpo, lmparas, hornos, el motor de un auto, etc.).
Para obtener una buena comunicacin usando infrarrojo y evitar la interferencia
de seales no deseadas, es necesario el uso de un cdigo que le pueda decir al receptor
cual es el dato real transmitido, y cul es el generado por el ambiente que lo rodea.
Los controles remotos utilizan el infrarrojo pulsante en una cierta frecuencia. Los
mdulos receptores de infrarrojo de TV sintonizan en esta frecuencia e ignoran todas
las dems seales infrarrojas que son recibidas.
La luz infrarroja emitida por los diodos IR, est pulsando de 30 a 60 khz cuando
se transmite un nivel lgico "1" y silencio para un "0".

2.2. Contexto Normativo


En esta seccin se plantean las normas bajo las cules se desarrolla el proyecto
siempre teniendo en cuenta las necesidades principales del proyecto y que normas
aplican para cada necesidad.

NORMA ANSI/RIA R15.06-1999


El objetivo de esta norma es mejorar la seguridad de las personas que utilizan
sistemas de robots industriales mediante el establecimiento de requisitos para la fabricacin (Incluyendo remanufactura y renovacin), la instalacin, la proteccin de los
mtodos, mantenimiento y reparacin de la manipulacin de los robots industriales.
Para lograr este objetivo, el Robotic Industries Association Subcomit R15.06
sobre Seguridad considera la variedad de tareas necesarias para la eciente y el uso
productivo de los robots industriales.
El alcance operativo y caractersticas de un robot puede ser signicativamente

2.2. Contexto Normativo

19

diferente de otros equipos y mquinas, y las tareas pueden requerir ciertas personas
a estar en la proximidad de los el robot mientras que la potencia de accionamiento
se encuentra disponible. Un robot industrial no puede ser un independiente de la
mquina, sino que puede interactuar con otras mquinas y equipo.
Para ayudar en la interpretacin de esta norma, el Subcomit para la intencin
de que el fabricante (incluyendo reconstructor y reconstructor,) el instalador, y el
usuario nal tienen responsabilidades especcas. Desde un punto de vista prctico,
la responsabilidad ltima de la proteccin de sus personas asociadas con la industria
robots industriales y sistemas robotizados recae en la persona (s) a s mismos. Seguridad no puede ser regulada por un libro, sino que debe ser un esfuerzo consciente por
parte de todos partes (fabricante, integrador y de usuario.) Componentes necesarios
en cada la salvaguardia del sistema son el mantenimiento y la adhesin al sistema
diseo. Habilidades, capacitacin de personal y la actitud son factores importantes
en un programa de seguridad. Esta norma slo sirve para proporcionar pautas para
una caja fuerte operacin.
Los trminos que se denen en la clusula 3 aparecen en negrita cuando se utiliza
en otro deniciones, y la primera vez que se utilizan en el contexto dentro de cada
clusula. La palabras "shall" y "will" se pretende que sean preceptivas, y deben estar
en el cumplimiento de esta norma. Las palabras "debera" y "puede" estn destinados a ser recomendaciones y buenas prcticas. Notas utilizadas en el documento ,
suelen utilizarse para proporcionar informacin explicativa, pero puede ser normativa cuando la convencin palabra anterior se utiliza. Esta norma es una revisin de
la norma ANSI / RIA R15.06-1992. Los cambios fueron incorporados en base a los
comentarios pblicos recibidos, y una extensa revisin por el Subcomit R15.06.
Algunos de los cambios ms signicativos son:
Requisito para modernizar algunas instalaciones existentes con dispositivos que
permitan y no otros requisitos de salvaguardia cumplir unos criterios mnimos (1.3)

Fuentes de energa. Un medio para aislar cualquier elctrica, mecnica, hidrulica, neumtica, qumica, trmica, fuente potencial, energa cintica peligrosos o
de otro tipo para el robot debe ser proporcionada. Esto signica debern estar
provistos de bloqueo / etiquetado capacidad de acuerdo con las leyes federales
OSHA 1910.147 o equivalente local de OSHA.

20

Captulo 2. Estudio del estado del arte


Interferencias electromagnticas, la interferencia de radio frecuencia y descargas electrostticas. El diseo y construccin del robot deber incorporar las
buenas prcticas de ingeniera de blindaje, el ltrado, la supresin y la conexin
a tierra para evitar el movimiento peligroso debido a los efectos de interferencia
electromagntica (EMI) y la interferencia de radiofrecuencia (RFI), y Descarga
electrosttica (ESD).

Movimiento sin potencia de accionamiento El robot debe estar diseado de


manera que los ejes son capaces de moverse sin utilizar la unidad potencia.

Controles de accionamiento.

Proteccin contra el funcionamiento accidental Controles de accionamiento que


inician la potencia o de movimiento deber ser construido o situado a n de
evitar activacin involuntaria. Por ejemplo, una vigilancia pulsador, selector de
llave o dos manos control puede ser utilizado.

Indicacin de estado.

Accionar los controles debern incluir una indicacin del estado de funcionamiento.

Normativa legal ISO 1018: 1992


Esta norma data del ao 1992 y fue realizada por el Organismo Internacional de
Estandarizacin (ISO-92).

Normativa Europea EN 775 y espaola UNE-EN 775


El Comit Europeo de Normalizacin (CEN) aprob en 1992 la normativa EN
775, adaptacin de la norma internacional ISO 10218:1992.

ISO 10218-1
Standart para los robots.

2.2. Contexto Normativo

ISO 10218-2
Standart para los sistemas robticos y su integracin.

21

Captulo 3
Anlisis del sistema de transmisin
de movimientos corporales para la
manipulacin del Robosapien
3.1. Anlisis Funcional del sistema de transmisin
KINECT - UIRT- ROBOSAPIEN
Se utiliza la teora de propagacin de las ondas establecida por Heinrich Rudolf
Hertz, que trata acerca de las ondas electromagnticas y su clasicacin segn su
frecuencia de oscilacin. En las cules observamos que las frecuencias se dividen en
luz visible, ondas de rayo, rayos ultravioletas, rayos infrarrojos y rayos X; adems
que al aumentar la frecuencia disminuye la longitud de onda. La longitud de onda
que se utiliza en este trabajo es de

= 7.653x106 .

As mismo se muestra la frmula

para conocer la longitud de onda existente en nuestra propuesta de solucin del envo
de seales infrarroja.

3x108
c
=

93.2

Donde

= Longitud. de. onda


c = Constante. de. velocidad. de. la. luz

22

(3.1)

3.1. Anlisis Funcional del sistema de transmisin KINECT - UIRTROBOSAPIEN

23

= F recuencia. de. onda


Dentro del problema general de la manipulacin de eventos peligrosos, lograr
un control no de las actividades que puede realizar el robot, relacionadas con las
actividades y precisin con las que lo puede realizar el ser humano, representa un
abismo de tecnologa en estos momentos. Por lo que se copian los movimientos del
ser humano con una precisin casi instantnea, es decir que el retardo de envo de
informacin es casi nula; se coloca al ser humano como un actor virtual y por medio
de un sensor especializado remoto se transmiten los movimientos corporales a un
diseo en 3D y posteriormente a travs de un Script de programacin se envan las
seales codicadas va infrarrjas para que slo el Robosapiens pueda interpretarlas
y actuar similar a los movimientos hechos breves instantes antes que el hombre.

3.1.1. Fortalezas
Contamos con la opcin de que los sistemas de transmisin de datos inalmbricos,
comparados con los almbricos, son en gran medida mejores debido a que la transmisin cableada nos puede delimitar algunos movimientos del robot, adems para el
sistema del cul se esta hablando se requiere que sea una interface completamente
inalambrica por los riesgos que conyeva el hecho de que sea almbrica; pues al ser
almbrica puede que aya perturbaciones externas como el dao de algn cable o el
costo que ste se llevara en metros de cobre.
Se han hecho trabajos de control de robosapien por medio de comandos y un
sistema cableado, comparado con el sistema inalmbrico y mas an con nuestro
sistema de infrarrojos, nuestra propuesta de solucin es un tnto mas factible debido
al movimiento en el robot, en lo cul el sistema cableado delimita los grados de
libertad del robot y se puede ver un tanto torpe a la hora de ejercer allgun movimiento
de manipulacin. Por otra parte los sistemas wi y bluetooth hacen que el robot
pierda algunas de sus caracteristicas principales y debido a que se trata de mejorar
un sistema sin que ste pierda su diseo original se pretende que el robot mantenga
estas mismas caracteristicas originales.

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


24
manipulacin del Robosapien

3.1.2. Oportunidades
Este tipo se sistema se puede integrar a dispositivos que existen en el mercado
como son el integrarlo a un sistema de juegos mas completo y mas atractivo.
En el campo de la Investigacin-Exploracin ya que un robot presenta la ventaja
de resistir mejor un medio ambiente hostil para los seres humanos.
En el campo de entretenimiento, ya que es una forma llamativa e interactiva de
controlar un dispositivo mecnico.

3.1.3. Restricciones
La tecnologa de la robtica es avanzada y en constante desarrollo, por los tanto
los costos asociados a ella son muy altos, igualmente no pueden emular los movimientos del cuerpo humano de una forma natural. Un ejemplo claro es el robot humanoide
de Honda ASIMO que pese a que lleva mucho tiempo de desarrollo su comportamiento sigue siendo muy limitado en cuanto a grados de libertad se reere.

3.1.4. Debilidades
La integracin del sistema es diferente en cada robot, por lo tanto pueden
ofrecer nuevas amenazas.
El sistema de mando de seales infrarrojas tiene alcance limitado.
Al ser una idea nueva se corre el riesgo de que no sea creible por la sociedad.

3.2. Obtencin y seleccin de la problemtica en


base a criterios
Nuestra propuesta de solucin al problema general de la manipulacin de eventos
peligrosos, nos di un panorama de cmo es que se puede controlar un robot de tipo
industrial y teniendo en cuenta las restricciones mencionadas arriba, optamos por
realizar procesos complejos del anlisis y procesamiento de imgenes para denir
la posicin de los marcadores en la imagen del video que permitirn determinar

3.2. Obtencin y seleccin de la problemtica en base a criterios

25

Figura 3.1: MotionCapture

los marcadores grcos que conectados a un esqueleto de huesos virtual muestran la


posicin de cada hueso humano y por medio de un sensor UIRT enviar la informacin
de cmo es que se debe mover el robot, haciendo as el sistema de transmisin de
datos y control del mismo robot; se empleo como sensor de movimientos un esqueleto
diseado en blender que se muestra en la siguiente gura 3.1.
El funcionamiento del dispositivo UIRT debe ser analizado con base a la velocidad
de transferencia de las frecuencias que opera y el tipo de frecuencia admitida por el
robot.
1. Para esto se buscaron las caractersticas de funcionamiento del Robosapiens,
en la cual se observa que es un robot de uso didctico con 6 grados de libertad
operado con 4 servo motores, la frecuencia a la que trabaja es de 39.2 Mhz por
lo cual se program el dispositivo en sus parmetros de frecuencia mostrados
en la tabla 1. sto para lograr una vinculacin correcta entre el software y
el hardware y evitar ruido y la intercepcin de otras frecuencias que pudiesen
afectar a la hora de su ejecucin.
2. Al hacer la interaccin del transmisor de infrarrojos, nos encontramos con
diferentes problemticas que fueron:

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


26
manipulacin del Robosapien
a)

Implementacin del dispositivo UIRT en base al teorema de velocidad


de transferencia de frecuencias y la decodicacin del algoritmo que se
encuentra en la tarjeta madre propia del ordenador. En sta se encuentra que, a cada dispositivo conectado se le asigna una direccin en fsica
ubicada en la raz del sistema donde se puede manipular cada una de
las propiedades del dispositivo. La ruta del dispositivo UIRT es: /dev/ttyUSB0/ y desde sta direccin se controlan los parmetros que se
muestran en la tabla 1.

b)

Reconocimiento e instalacin de drivers para la correcta utilizacin del


dispositivo, lo cual se resuelve al instalar el software Lirc y editar los
documentos de hardware y software, propios del programa.3.1
1) Hacer las modicaciones mencionadas en la tabla 1 y guardar, con sto
quedar reconocido el dispositivo UIRT para posteriormente hacer la
programacin

c)

Programacin estructurada en python; la cul se resolvi a travs de la


consola integrada en BLENDER debido a que, como ya se mencion, la
programacin orientada a objetos es sencilla de manipular tanto en el
sistema como en la mquina virtual integrada al software.

3. Para controlar los diferentes tipos de movimientos que permite el robot, fue
necesario hacer un modelo en 3D en el que se especican las articulaciones
de acuerdo con la anatoma del cuerpo humano en el cual utilizamos puntos
especcos donde se encuentran localizados los servo motores y as mover a
travs de comandos en python y la consola en blender, los grados de libertad
que ofrece el robot.

3.3. Alternativas de solucin


Se puede hacer el control de robot mediante sistemas cableados y convencionales
como son cnc o joystic y tambien se pueden hacer sistemas inalambricos como son por
medio de bluetooth, wi- o rayos infrarrojos. Al hacer la adaptacin nos dimos cuenta

3.3. Alternativas de solucin

27

Tabla 3.1: Conguracin de hardware UIRT


Descripcin

Conguracion realizada

Dispositivo Remoto

/dev/ttyUSB0

Dispositivo emisor

usb_uirt_raw

Transmisor a UIRT USB

Robosapien

Frecuencia

39200 hz.

Header

6666 3333

bits

uno

833 333

Zero

833 833

que para usar los sistemas con bluetooth y Wi-Fi se debera hacer la intervencin
del robosapiens, asi que decidimos usar el que el robot tena por defecto que es el
infrarrojo.
Abarcamos la teora de como utilizar los otros sistemas por lo cal se hizo una
investigacin de cmo es que dichos sistemas son aplicados y utilizados en el control
de robot tanto mviles como industriales. Adelante se muestra cmo es que se utilizaron en diversos trabajos y cmo es que nosotros lo aplicaramos a nuestro sistema
y a un sistema industrial con un robot Scara KUKA.

Bluetooth
El sistema consiste en intervenir los cables de los servos y conectarlos a una placa
de Arduino

y hacer una programacin de reconocimiento de hardware en el propio

software de la placa, hacer las conexiones y adaptaciones del dispositivo bluetooth


para as poder controlar cualquier robot, el proceso es relativamente complejo pero es
muy ecz a la hora de ser utilizado aunque como se menciona en las debilidades, la
transmisin se puede ver afectada por la adaptacin de los componentes y el alcance
que tienen; en comparacin con el sistema seleccionado de infrarrojos, este sistema
nos da mayores alcances debido a la frecuencia que trabaja y su transmisin no se
ve interrumpida por la intensidad luminosa como es el caso de los rayos infrarrojos.
.

Wi-Fi
1 Placa Arduino one con mdulo bluetooth integrado, implementado en la parte trasera del robot

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


28
manipulacin del Robosapien
Funciona de la misma manera que el sistema de Bluetooth, con el criterio de intervenir los servomotores a travez de una placa que puede ser de Arduino* una
diseada propiamente usando diversos dirvers como Pic's y hacer su programacin
para la deteccin de el hardware propio del robot. Se han hecho trabajos de robots
controlados con tarjetas wi en los que se han logrado buenos alcances de seal, lo
nico que se necesita es una tarjeta wi compatible y que pueda ser manipulado
su software para que se adapte a una red WLAN. Viendolo del lado tecnolgico
ste sistema tiene mayor alcance, menos perturbaciones y comparado con el sistema
infrarrojos tiene mayor abilidad a la hora de hacer la transmisin de datos.

3.4. Seleccin de la solucin


Se selecciona el sistema de dispositivos infrarrojos debido a que el propio robot
de muestra as lo requiere para tener el alcance y abilidad que el sistema requiere.
El robot a utilizar es un poco austero en cuanto a grados de libertad, mecanismos
y material se reere pero sirve de muestra para hacer demostrativa la idea que se
pretende alcanzar.
La transmision de datos por medio de Kinect fue empleada de la siguiente manera:
Hacer una programacion en Python con una lgica de programacin que fue la
siguiente

1. Importar la librera del motor de juegos BGE para poder utilizar los paquetes
de simulacin como son actuadores sensores y controladores.

a)

Importar las libreras tanto de python como BLENDER que nos permitan
hacer la ejecucin de llamada en tiempo real.

b)

Establecer el parmetro que nos indique la secuencia que llevar a cabo


la ejecucin de scripts, en sta se indica el origen de la accin, si es un
controlador, un actuador o un sensor.

c)

Debido a que python maneja una estructura de memoria llamada pila


de llamadas a funcin, en la que solamente se puede aadir o eliminar elementos por uno de sus extremos llamado cima; se establecen en

3.4. Seleccin de la solucin

29

Tabla 3.2: Rutas de informacin necesaria para el funcionamiento de UIRT


Ruta

Descripcin

/dev/tty0

Localizacin del dispositivo fsicamente

/etc/lirc/

Localizacion de archivos de conguracin

/etc/lirc/Robosapiens

Archivo de conguracion de frecuencias

/etc/init/

conguracin de los scripts de ejecucin

/etc/init.d/

Albergue de los scripts de ejecucin

la cabecera del programa las variables que ejecutarn, en este caso, los
movimientos que realizar el diseo en 3D.

d)

Es necesario un bloque de decisin if  por cada seal de infrarrojos enviada debido a los grados de libertad que tiene el robot, ya que el algoritmo
de programacin va de la mano con el motor de juegos BGE de blender y
en ste se utilizan diferentes sensores, actuadores y controladores.

2. Hacer la vinculacin entre el dispositivo UIRT y el programa realizado en


BLENDER desde su consola PYTHON.

a)

Para ello se utilizaron los datos de la conguracin propia del sistema


en la que se muestra la accin que debe hacer el comando de llamada
de scripts de la computadora y la ruta que stos tienen, de lo contrario
el programa no encontrara de donde tomar los datos hexadecimales en
donde se encuentran los valores de la frecuencia para mover al robot.

b)

En la Tabla 3.2 se muestran las rutas donde se encuentra albergada la


informacin necesaria para el funcionamiento del dispositivo UIRT.

UIRT
A continuacin se muestra el diseo del receptor y emisor de infrarrojos UIRT por
sus siglas en ingls (Universal Infrarred Recept Transmiter) que para ello se requiri
de los materiales mencionados en el capitulo siguiente y se sigu un manual de
elaboracin mencionado en [2]
En la cul se estuvo trabajando al rededos de 3 meses en su elaboracin dedicandole un da a la semana. obteniendo este diseo hecho con el software Eagle

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


30
manipulacin del Robosapien
para diseo de placas y circuitos impresos PCB, al fnal nos da como resultado un
dispositivo internamente conformado de la siguiente manera:

Figura 3.2: Diseo de la placa UIRT

Para utilizar completamente y manipular el hardware de UIRT se utiliza un software diseado para la plataforma en la cual estamos trabajando llamado LIRC dicho
programa es un software que permite la comunicacin de dispositivos transmisores
y receptores de luz IR, con los cuales se pueden observar las caracteristicas de los
haces de luz tales como: la frecuencia, longitud de onda, longitud de 0 y 1, etc,
es decir, que obteniendo estas caracteristicas se pueden duplicar con un simple, pero
efectivo, lenguaje semjante al ensamblador que ya esta incluido en las librerias DLL.
En las tablas mencionadas arriba se tiene la ubicacin y las conguraciones que
se necesitan para el rmware (interaccin entre hardware y software) gracias a los
cules podemos enviar seales con informacin codicada mencionada en el anexo 1.
A continuacin se mencionan los principales movimientos en exadecimal que se
utilizan con el robot:

3.4. Seleccin de la solucin

31

Figura 3.3: UIRT internamente

Tabla 3.3: Principles movimientos del Robot


Movimiento

Cdigo en exadecimal

Levanta Brazo Derecho

0x02

Baja brazo Derecho

0x08

Levanta brazo Izquierdo

0x12

Baja brazo Izquierdo

0x18

Levanta ambos brazos

0x9C

Camina Adelante

0x0C

Camina Atras

0x0E

Vuelta a la Derecha

0X64

Vuelta a la izquierda

0X66

Mueve brazo izquierdo

0X14

Mueve brazo derecho

0X04

Consola
Para lograr un perfecto desempeo es necesario que los porgramas se ejecuten desde
la consola de Ubuntu en modo de super usuario su. Ya que slamente as el sistema
nos permite manipular los archivos mencionados en la tabla, sto porque el modo
super usuario otorga todos los permisos de control del sistema operativo, gran ventaja

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


32
manipulacin del Robosapien
de trabajar con Linux, adems que es necesario hacer la ejecucin de script en shell
para el programa lirc para reiniciar el reconocimiento del dispositivo en caso de ser
necesario. Adems que nos ayuda a monitorear los resultados que se van obteniendo
a la hora de ejecutar la animacin de blender, si algn dato no coincide con lo
esperado signica que hay un error ya sea de programacin o de hardware y se tiene
que corregir de inmediato.

Figura 3.4: Modo Super Usuario

Funcionamiento del sistema


Se vinculan los sistemas que se usan en el proceso de manipulacin, los cuales
son:
1. Dispositivo UIRT
2. Blender
3. Python
4. Delicode NI Mate

3.4. Seleccin de la solucin

33

5. Kinect

La Precisin de movimientos con la cul trabaja un robot, depende directamente de


la resolucin espacial, la exactitud y la repetibilidad que ste pose; la resolucin
espacial a su vez depende de las inexactitudes o presiciones mecnicas del robot y
del control del sistema, la repetibilidad se dene como la precision con la que un
mecanismo realiza cualquier accin durante ciertas repeticiones.
Realizamos una prueba que nos permite vericar la precisin del sistema infrarrojo al transmitir los datos, observe en la Figura3.5 que a mas distancia de
funcionamiento de propagacin de luz unfrarroja el ngulo disminuye.

Figura 3.5: Diagrama de distancia y ngulo de iluminacion de infrarrojo.

Esta comparacin se realiza a una distancia mxima de 4.80 m. y un ngulo


mximo de 30.
As mismo la respuesta del robot depende del tipo de iluminacin que se tenga
en el lugar de trabajo, se hicieron diversas pruebas en diferentes condiciones:

Bajo la luz del sol

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


34
manipulacin del Robosapien
Con lmpara incandecente

Con lmpara de luz blanca

Bajo condiciones ptimas de trabajo (Sombra durante da)

En la que pudimos observar que a mayor iluminacin menor respuesta,

Figura 3.6: Respuesta del robot en diferentes estados de iluminacin

En la gura 3.6 se muestran las pruebas realizadas de la metodologa usada,


comprobando que se haya hecho una correcta interaccin entre el motor de juegos,
el script de programacin de python, la vinculacin con el dispositivo UIRT y que
los movimientos de la interfz grca correspodan a los movimientos que realiza el
robot. Para ello se ejecuta el programa BLENDER desde la consola de ubuntu en
modo SU ya que as nos muestra la consola si en efcto se est llevando a cabo la
ejecucin de las llamadas al dispositivo infrarrojo.

3.4. Seleccin de la solucin

35

Figura 3.7: Pruebas de movimiento en un objeto simple

Con base en la pregunta: Que tan preciso puede ser el proceso de transmisin
de los movimientos corporales a un robot humanoide de un ser humano desde la
interpretacion de posturas por una cmara de video? se hicieron pruebas de transferencia al momento de ejecutar los scripts y nos dimos cuenta que son milesimas de
segundo lo que tarda en recibir la orden el robot, es casi instantnea la recepcin de
informacin debido a la conguracin de frecuencias que se realiz de cualquier otro
modo pudiesen haber existido otras frecuencias que bien pudieron hacer interferencia
en el envo de seales.
A continuacion se muestran capturas de pantalla, resultado de hacer intervencion
con el sensor Kinect y reconocer el esqueleto grco en el software de diseo en
Blender.

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


36
manipulacin del Robosapien

Figura 3.8: Delicode NI-Mate

En la Figura anterior se muestra la conguracin del software con Delicode NiMate, dicha conguracion debe ser igual a la conguracin que tendr el esqueleto
y el modelo diseado en blender, de cualquier otro modo no se mover el diseo y la
aplicacin marcar error.

Figura 3.9: Reconocimiento de cuerpo

3.4. Seleccin de la solucin

37

Como se observa en la anterior gura el sensor kinect detecta al elemento ms cercano para poder extraer la informacin de las articulaciones y posiciones del cuerpo
humano, as podemos enviar los datos al diseo en blender que como ya se mencion debe tener la misma conguracin que se hizo en la plataforma de Open NI; a
continuacin se muestra la imagen seleccionada del diseo 3D.

Figura 3.10: Importacin de Big Buck Bunny

Comparado con los nombres aplicados en la plataforma open NI observamos la


siguiente gura:

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


38
manipulacin del Robosapien

Figura 3.11: Comparacin de propiedades en Kinect y Blender

En la cual observamos que son los mismos nombres tanto para la plataforma
Delicode como para la plataforma en Blender. Haciendo la comparativa con colores.
Posteriormente de vericar que las opciones son las mismas en ambas plataformas
procedemos a instalar las librerias para que el sistema pueda correr correctamente.
Esto es:
En el men de opciones de blender seleccionamos las caracteristicas que permiten la interaccion con la plataforma Delicode.
Importar la conguracin con un algoritmo echo en python[1]
Elaborar el diseo en blender, para ello se requiere conocimientos previos en el
software, lo cual se menciona en el capitulo 5.
Al momento de tener el kinect conectado podemos abrir la plataforma Delicode
y ejecutar la aplicacin en blender. Se mostrar algo parecido a las siguientes
imgenes.

3.4. Seleccin de la solucin

39

Figura 3.12: Movimiento Big Buck Bunny

A continuacin se muestran los primeros resultados que se obtuvieron al hacer la


implementacin del software de diseo con el sensor kinect con lo cul podemos ver
que al moverse el cuerpo humano se mueve el diseo 3D.
En las cules se observa que al momento de que se mueve una persona en frente del
kinect, este movimiento genera una serie de componentes llamado esqueleto que nos
permite extraer las posiciones de dichos huesos y transmitirlas al sistema modelado
en blender.
Como es de esperarse, existe un cdigo de programacin previo para que se pueda
hacer esta interaccin. Misma que se muestra en el anexo 1.

Captulo 3. Anlisis del sistema de transmisin de movimientos corporales para la


40
manipulacin del Robosapien

Figura 3.13: Comparacin de Movimiento

Figura 3.14: Interaccin del sistema Hombre- Diseo grco

Captulo 4
Anlisis de costos y retorno de
inversin
En el presente captulo se muestra informacin relacionada con los costos, tanto
de la implementacin de esta tendencia tecnolgica en el sector de seguridad como
tambin los costos de produccin que se llevaron a cabo en la realizacin de este
proyecto.Los costos fueron estimados de acuerdo a las consideraciones provenientes
de captulos anteriores e incluyen IVA.

4.1. COSTOS INDIRECTOS


Los costos indirectos de fabricacin tal y como lo indica su nombre son todos
aquellos que no se relacionan directamente con la manufactura, pero contribuyen y
forman parte del costo de produccin: mano de obra indirecta y materiales indirectos,
calefaccin, luz y energa para la fabrica, del edicio y equipo de fabrica, seguro,
prestaciones sociales, incentivos, tiempo muerto, son ejemplos de costos indirectos
de fabricacin.

4.2. COSTOS DIRECTOS O VARIABLES


Los costos directos o variables los denimos como los costos que se relacionan directamente con la produccin de unidades especcas o lneas de productos; en este

41

42

Captulo 4. Anlisis de costos y retorno de inversin

caso que se produce un robot demostrativo se considera un costo de produccin para


un un sistem, adems como costo variable se le anexa los salarios del personal que
estar operando de manera remota al robot, el costo de los insumos para un robot
mas especco, empleados para la manufactura.

Algunas de las caractersticas que presentan los costos directos son:

1. No existe costo variable si no hay produccin de artculos o servicios.

2. La cantidad de costo variable.

3. La cantidad de costo variable tender a ser proporcional a la cantidad de produccin.

4. El costo variable no est en funcin del tiempo, el simple transcurso del tiempo
no signica que se incurra en un costo variable.

4.3. COSTOS Y PRESUPUESTOS


4.3.1. Costos de los componentes
En la siguiente tabla destacaremos los costos que se han invertido en el proyecto
en cuestin monetaria costos que se aplicarn al nal como costo total de produccin
para posteriormente poder compararlos con los gastos que se generan al completar la
implementacin con respecto a los gastos que se generan actualmente con el sistema
de desactivacin de bombas en la actualidad.

4.4. Costo de mano de obra e ingeniera

43

Tabla 4.1: Costos de inversin para el desarrollo del proyecto.


Componente

Costo

Sensor Kinect

$1500

Adaptador de sensor kinect USB

$450

Licencia Software

$ 0

Robosapiens

$950

Cable USB

$10

Plantillas de impresin

$2

Micro controlador 18F2550

$80

1 Capacitor de .1uf

$10

3 Capacitores de .22 uf

$10

1 Cristal de 20 MHz

$20

2 Capacitores de 27 pf

$5

3 Diodos BAS16J

$105

1 LED ROJO

$.50

1 Jack USB

$15

Resistencia 10K

$2

Resistencia 2.7k

$2

Resistencia 390R

$1

Resistencia 680R @ .25Watt

$5

38KHz IR demodulator (5volts)

$40

NPN transistor 800mA

$18

Mini-Drill

$700

Total

$3,925.50

4.4. Costo de mano de obra e ingeniera


Inversin de tiempo en el proyecto:
Se trabaj en el proyecto por etapas; la primer etapa concisti en trabajar
como tcnico en electrnica ya que slamente se necesitan conocimientos bsicos
de electrnica, por 8 horas un da a la semana durante tres meses, por lo tanto

44

Captulo 4. Anlisis de costos y retorno de inversin

(8 4 3) = 96horas;

la segunda etapa que fue la implementacin de kinect, para

ello se requirieron conocimientos en programacin e informtica, en esta etapa se


trabajaron 5 horas por dos das a la semana (lunes y martes) durante 4 meses, por
lo tanto

((5 2) 4 4 = 160) horas, la tercer etapa fue la programacin de Scripts en

python y para esta actividad se requirieron conocimientos de diseo programacin y


robtica con un tiempo de labores de 5 horas al da dos das por 3 meses, lo que nos
da un total de

5 2 4 3 = 120horas. Se tiene en cuenta que tambin se laboraron 10

das no contemplados anteriormente con 5 horas C/u mismas que se tomaron como
horas extras;
A continuacin se muestra una tabla con el costo de mano de obra en cada una
de las etapas, para la elaboracin de la tabla se multiplican las horas trabajadas por
el salario promedio.

Tabla 4.2: Tiempo invertido en la elaboracin del proyecto


ETAPA

Salario

Costo de mano de obra

1a. Elaboracin de UIRT

Tcnico en electrnica

96 $25 = $2400

2da. Implementacin de Kinect

Ingeniero

160*40 = $6400

3a. Programacin de Scripts

Ingeniero

120*40 = $4800

Horas Extras

50

50*80 = $4000

Total Horas trabajadas

(96+160+120+50)=426

Total

$17,600

Teniendo presentes lor resultados de las tablas anteriores nos da un total de

$17, 600 + $3, 925 = $21, 525.50

que es el costo de inversin en el proyecto.

4.5. Retorno de inversin, punto de equilibrio


Teniendo en cuenta los alcances del proyecto y los benecios que traeria al sistema
de seguridad de gobernacin, sabemos que lo que se vende en dicho proyecto son las
horas de trabajo, estas como gastos variables y los precios de los componentes se
toman como gastos jos obteniendo as la siguiente tabla.

4.5. Retorno de inversin, punto de equilibrio

45

Tabla 4.3: Datos para calcular el punto de equilibrio


Concepto

Valor

Precio de Venta

30000

Costo Unitario

14000

Gastos Fijos Mes

$3,926

Gastos variables

$17,600

Cantidad de Ventas

Figura 4.1: Graca representativa del punto de equilibrio.

De los datos anteriores obtenemos la siguiente grca en la que podemos ver el


punto de equilibrio para demostrar que el proyecto es econmicamente aceptado. En
la que observamos que con vender un mdulo de seguridad para la desactivacin de
bomba se regresa el costo de inversin, esto porque se vende el proyecto en el costo
total de la investigacin, no se pretende poner la idea del proyecto en produccin
masiva puesto que su mercado se limita a los sectores encargados de la seguridad
publica, aunque si alguna empresa privada hace la propuesta se trabajara por aparte.

46

Captulo 4. Anlisis de costos y retorno de inversin

4.5.1. Benecios del nuevo sistema con respecto al anterior


en cuestiones monetarias.
Considerando los gastos que se tienen al pagar salarios pensiones y gastos para
un tcnico en explosivos contamos con que el salario de un tcnico es de $12,000
mensuales mas prestaciones seguros de vida que hacienden a los 1.5 millones de
pesos que se reduciran drsticamente al momento de implementar el sistema de
control y visin por kinect debido a que los seguros reduciran por la cuestin de
riesgo aunque al sistema de visin para un robot ma especializado se le tendran que
agregar los siguientes componentes:

Tabla 4.4: Componentes adicionales para el funcionamiento de un robot mas preciso


Componente

Precio

Camara de retroalimentacin

$700

Cables

$100

Servomotores especiales para robot

$1750

Articulaciones de elastmero de

Alta Gama

Mueca de manipulacion

$1931

Sistema de desarticulacion de mueca

$245

Brazo

$2200

Codo

$1550

Estructura endoesqueltica de antebrazo

$2000

Estructura endoesqueltica de cuerpo

$5000

TOTAL

$10376

Aqui mencionamos las partes que se necesitaran para elaborar un robot con
estructuras de prtesis que en el siguiente capitulo las mencionamos asi mismo se
menciona el precio de los servomotores para las articulaciones de un robot tipo 1.2.
Los precios se elevan considerablemente por lo que el precio de venta para el sistema
sera de $37,400 y para recuperar la inversin se necesitaran vender tan slo dos
sistemas pues as se nota que a un plazo de 2 aos a los sistemas de seguridad les
sera mas factible adquirir el sistema que pagar pensiones que se exceden en costos.

Captulo 5
Diseo del sistema (MODELADO)
5.1. Diseo del sistma grco en BLENDER
Para hacer el diseo en la plataforma blender se mostrar con un mtodo llamado
extraccin de Solido a partir de una imgen en 2D. Que se desarroll de la siguiente
manera:
En primer instancia como ya se mencion en los apartados de arriba, Blender es
un potente software de diseo que nos sirve al igual que SolidWorks para disear
sistemas con animaciones y que adems puede leer diferentes extenciones de archivos
como lo son 3ds para 3D-max, el mismo stl que es una extencion de SW, .obj y
vectores escalables que son de gran ayuda pues si se trabaja con el programa mas
usado, se pueden exportar los diseos y de igual manera trabajar con ellos con la
ventaja de que este software es Libre, es decir, que no se tiene que pagar por su
licencia.
Al inicio del programa se aparece el mensaj de bienvenida, se oprime un Click en
la parte de diseo y se puede empezar a trabajar, al igual que en autocad se usan
los comandos convencionales para trazar una linea un cubo o simplemente extruir
un cuadro conociendo esos casos slamente nos queda por empezar a trabajar en el
modelo del robot.
Posteriormente de abrir Blender hacer click en Editor Type - UV image editor
tal como se muestra en la siguiente gura y as mismo en la opcin imagen click en
Open.

47

48

Captulo 5. Diseo del sistema (MODELADO)

Figura 5.1: UV image editor

El siguiente paso es seleccionar la imagen que deseamos usar como plataforma


para poder trabajar y as tener una plantilla para empezar a dar forma a la imagen
en 3D tal com se muestra en la siguiente gura.

5.1. Diseo del sistma grco en BLENDER

Figura 5.2: UV image editor

49

50

Captulo 5. Diseo del sistema (MODELADO)


El siguiente paso es hacer click en la opcin de vista para poner el diseo en modo

edicion 3D, posteriormente lo que hacemos es incluir una linea, misma que extruimos
para hacer lo que es el cuerpo del robot, lo primero es insertar una malla de circulo
para hacer el cuerpo del robot a continuacin se muestra como.

5.1. Diseo del sistma grco en BLENDER

Figura 5.3: Primeros pasos de elaboracin 3D

51

52

Captulo 5. Diseo del sistema (MODELADO)


Asi posteriormente seguimos con el diseo del cuerpo algo similar a como se

trabaja en AutoCad, hasta tener un modelo como el que se muestra a continuacin:

Figura 5.4: Primeros pasos de elaboracin 3D

5.1.1. Propuesta de diseo de robot capz de desactivar una


bomba.
5.1.1.1. Estrategia de deteccin de bombas
Se plantea una deteccin por colorimetra, basandose en un diseo anterior, es
decir que a ese diseo se le implementar el sistema de retroalimentacin y control

va remota con una cmara llamada CMUCAM-3 la cual es un sistema embebido

formado por un mdulo sensor de video, un procesador y puerto de entrada y salida,

as como comunicacin UART , la cmara tiene las siguientes caractersticas:

1. Resolucin CIF (352 x 288) con un sensor de color RGB.

2. Software de programacin compatible con Linux y Windows.

1 Un sistema embebido o empotrado es un sistema de computacin diseado para realizar una o


algunas pocas funciones dedicadas frecuentemente en un sistema de computacin en tiempo real.

2 Universal Asynchronous Receiver/Transmitter

5.1. Diseo del sistma grco en BLENDER

53

3. Cuenta con una ranura para insertarle una tarjeta MMC ash.

4. Cuenta con 4 puertos para controlar Servos.

5. Carga imgenes en la memoria a una velocidad de 26 cuadros por segundo.

6. Tiene un software para comprimir en formato JPEG.

7. Tiene salida de analgica de video.

Por las carcteristicas que tiene la camara podemos observar que es muy factible
y de completa interaccin con el sistema de control a utilizar por lo tanto no hay
mayor inconveniente en usarla.

5.1.1.2. Anlisis de partes y modelado del sistema de visin.


Una vez investigadas las posibilidades de Kinect como sensor de distan- cias,
se puede proceder al diseo de un modelo simplicado del cono de la cmara que
funcione en el contexto de un mapeado basado en celdillas de ocupacin. Debido
al lmite inferior de la distancia, es posible establecer una reso- lucin de matriz de
0.4x0.4 metros. En este modelo, al igual que como se anaizo en el capitulo 3 la
exactitud que tiene el kinect en los diferentes cambios de luz, se analiza que tan
preciso puede una cmara convencional regresarnos la informacin que el operario
necesita para controlar el robot en timempo real. Por lo cual se disea un ltro que
cumpla dos objetivos: realizar correctamente una segmentacin con nube de puntos
generada por la camara de retroalimentacin y reducir la cantidad de datos que son
procesados, optimizando los parmetros espaciales y temporales del programa para
que as sea menos el tiempo de respuesta del sistema y se pueda trabajar conforme
al siguiente diagrama de ujo.

54

Captulo 5. Diseo del sistema (MODELADO)

Figura 5.5: Diagrama de ujo del modelo de adquisicin de datos con retroalimentacin

El primer ltrado de la nube de puntos elimina todos los puntos que se encuentran por encima del nivel de la cmara CMUCAM-3, punto ms elevado del robot
empleado con lo cual podemos observar que aplicando el sistema actual de control
por kinect slamente se necesita incluir al sistema la parte faltante de sistema de
retroalimentacin.

As, cuando se alcanza la orientacin correcta de la cmara y es necesaria una


captura de datos nueva, se activa la variable que impide al ltro ejecutarse en cada

5.1. Diseo del sistma grco en BLENDER

55

iteracin del algoritmo hasta que el operador as lo requiera y el ltro obtendra el


acceso de forma inmediata y podra continuar su ejecucin.

Figura 5.6: Camara de visin CMUCAM-3

5.1.1.3. Inteligencia del Robot.


La inteligencia del robot se basa en un microprocesador (PIC-18F452), montado
en un sistema embebido que posee pines de entrada y salida.
Puerto UART de alta velocidad el cual sirve para que se pueda comunicar con
la cmara.
Puerto de salida PWM(modulacin por ancho de pulso), el cual nos permite
generar la diferentes velocidades con las que se mueve el robot.
Pines para la conexin de un display de LCD el cual nos muestra cual es el
estado del robot mientras realiza la tarea de bsqueda y desactivacin de las
bombas.
Pines para conectar sensores de tacto, reexin orientacin y odometra.

56

Captulo 5. Diseo del sistema (MODELADO)


Pines de salida digital que proporcionan la direccin del robot, y el manejo de
diferentes mecanismos como el brazo mecnicos y los servomotores para activar
el gripper y para poder mover la cmara.
Para alimentar el robot se usan pilas reciclables de laptop de Ion-Litio

Figura 5.7: UART

5.1.1.4. Criterio de seleccion de materiales.


Los materiales se seleccionaron en base a los robots ya existentes que son aptos para hacer una operacin riesgosa y peligrosa, todo esto en base a las normas
mencionadas en el capitulo de contexto normativo ANSI/RIA R15.06-1999. Cabe
mencionar que la seleccin de materiales electronicos que fueron necesarios para la
elaboracin del UIRT fueron considerados en base a la frecuencia de transmisin a
la cual trabaja el robot. as pudimos observar que era suciente un cristal de 20MHz
y que se tendra que utilizar un PIC 18F2550 debido a que de a cuerdo a las normas
es el microcontrolador que hace una correcta interaccin con el USB que se requiere,
en el mercado existen diversos Micro pero considerando el precio y los conocimientos
empleados se decidi trabajar con el controlador ya mencionado.

5.1. Diseo del sistma grco en BLENDER

57

Para la seleccin del sistema operativo se decide trabajar bajo licencia libre usando Linux en su version de Ubuntu debido a que en la actualidad muchas empresas
estn desarrollando sus aplicaciones en esta plataforma ya que es libre de licencia,
de fcil programacin y de cdigo abierto, lo que les genera muchas ventajas para
hacer sus sistemas mas personalizados y ms detallados.
En la seleccin del uso del sensor kinect se opta por usar este sensor y no otra
camara debido a su gran desarrollo en el mercado y su gran demanda, pues como se
menciona en el capitulo 2 sus librerias de desarrollo estan abiertas a los colaboradores
y podemos contar con 3 diferentes sensores conectados a un solo controlador que enva
los datos a un solo USB en comparacin si se hiciera por separado al usar un sensor
de profundidad una camara RGB y una sensor de sonido.

5.1.1.5. Propuesta del diseo mecnico


Se plantea que a futuro se monte el sistema sobre un robot humanoide con articulaciones fabricadas con elastmero que es el material que usualmente se usa en
protesis de manos, esto porque este material nos proporciona mayor movilidad en
las extremidades del robot apoyado con sus articulaciones conformadas con el mismo
material y controlarlo a travs de nuestro sistema arriba mencionado, sin duda este
tipo de robots ya existentes en la industria ayudados con el sistema de control aqui
planteado.

Conclusiones y Discusin
La razon por la cual desarrollamos un proyecto de ingeniera es porque se necesitan cubrir necesidades que surgen en la actualidad, innovar los sistemas ya establecidos para incrementar el confort ya sean en procesos industriales o en los distintos
sectores como la medicina, el hogar, entretenimiento como el cine, Diversin como lo
son los videojuegos; hacer que las tareas que ya se realizan en los sectores ya mencionados, adems sean mas seguras, ayudar a que los operarios de alguna maquina
tengan la certeza de que el proceso que va a realizar no ponga en riezgo su integridad
tanto fsica como mental.
Se hace mencin a esto debido a que se procura en el desarrollo de este trabajo
por cubrir todas las necesidades mencionadas y porque si separamos el sistema aqui
mencionado podemos optimizar por ejemplo el sector de entretenimiento, ya que los
actores virtuales que es la primer etapa del proyecto, ayuda a que las animaciones
sean cada vez mas novedosas y atractivas al ojo humano. Implementando todo el
sistema podemos observar que en la industria de ensamble este sistema nos permite
trazar las rutas de desplazamiento de un robot industrial.
En conclusin, este trabajo realizado durante todo un ao nos sirve de estrategia para seguir innovando en el campo de la robtica y el rea de automatizacin
y control. Este es un gran paso para poder realizar emprendimiento a proyectos
ms ambiciosos, ya que contando con los conocimientos bsicos para poder hacerlo:
implementacin de dispositivos inalmbricos, manejo de software 3D, programacin
Python y lenguaje ensamblador, Kinect para desarrolladores de software; se hace
ms fcil el desarrollo de los mismos.
El proyecto que realizamos ha contribuido de manera muy importante para identicar y resaltar los puntos que hay que cubrir y considerar para llevar a cabo una

58

5.1. Diseo del sistma grco en BLENDER

59

implementacin exitosa. Nos deja muchas cosas importantes que reexionar y muchas
otras las ha reforzado como puntos angulares para llevar a cabo una buena implementacin.
Conforme fuimos realizando este proyecto nos fuimos percatando de muchas cosas
que antes no habamos considerado, que ignorbamos. Pudimos percatarnos de la
importancia de saber las necesidades de la gente, pero tambin pudimos detectar
algunos puntos clave para aanzar muchos procesos, detectar reas de oportunidad
para mejorar el servicio, tener una visin ms clara de la funcionalidad de los dispositivos y sistemas. Muchas veces el encontrar una dicultad no signica que no
se pueda, simplemente hay que perseverar para lograr los objetivos planteados al
principio.

ANEXOS

60

5.1. Diseo del sistma grco en BLENDER

61

Cdigo de programacin del kinect


1
2
3
4
5

from m a t h u t i l s import V e c t o r
import math import s t r u c t
try :
import b g e

6
7

GE = True

except

GE = F a l s e

import bpy
from bpy . p r o p s import *

9
10
11
12

ImportError :

import s o c k e t
def set_GE_data ( o b j e c t s

ob_name ,

13

ob = o b j e c t s . g e t ( ob_name )

14

if

ob

!=

None :

15

ob . l o c a l P o s i t i o n

16

( [ vec [ 0 ] * 1 0 ,

17

def

vec ) :

set_data ( o b j e c t s ,

= Vector

v e c [ 2 ] * 1 0

ob_name ,

vec [ 1 ] * 1 0 ] )

vec ) :

18

if

19

ob_name

in

o b j e c t s . keys ( ) :

20

o b j e c t s [ ob_name ] . l o c a t i o n=V e c t o r

21

( [ vec [0]*10 ,

vec [ 2 ] * 1 0

, vec [ 1 ] * 1 0 ] )

22
23

i f ( bpy . c o n t e x t . s c e n e . t o o l _ s e t t i n g s . u s e _ k e y f r a m e _ i n s e r t _ a u t o ) :

24

o b j e c t s [ ob_name ] . k e y f r a m e _ i n s e r t ( d a t a _ p a t h=" l o c a t i o n " )

25
26

class

OSC ( ) :

27
28

def

readByte ( data ) :

29

l e n g t h = d a t a . f i n d ( b ' \ x00 ' )

30

n e x t D a t a = i n t ( math . c e i l ( ( l e n g t h +1)

31

return

32

def

( data [ 0 : l e n g t h ] ,

34

n e x t D a t a = i n t ( math . c e i l ( ( l e n g t h +1)

return

37

def

4)

4)

r e a d S t r i n g ( data ) :
length =

36

4.0)

data [ nextData : ] )

33

35

s t r ( d a t a ) . f i n d ( " \0 " )

( data [ 0 : l e n g t h ] ,

4.0)

data [ nextData : ] )

readBlob ( data ) :
l e n g t h = s t r u c t . unpack ( "> i " ,

data [ 0 : 4 ] ) [ 0 ]

62

Captulo 5. Diseo del sistema (MODELADO)

38

n e x t D a t a = i n t ( math . c e i l ( ( l e n g t h )

return

39
40

def

( data [ 4 : l e n g t h +4] ,

42

4.0)

43

data , l e n ( data ) )

44

rest

45

integer = 0

data [ nextData : ] )

few

bytes

for

int " ,

= data

47

i n t e g e r = s t r u c t . unpack ( "> i " ,

48

rest

return

49

def

( integer ,

rest )

readLong ( data ) :

53
54

high ,

55

b i g = ( l o n g ( h i g h ) << 3 2 ) + l o w

52

l o w = s t r u c t . unpack ( "> l l " ,

return

56

def

data [ 0 : 4 ] ) [ 0 ]

= data [ 4 : ]

""" T r i e s t o i n t e r p r e t t h e
n e x t 8 b y t e s o f t h e d a t a as a
64 b i t s i g n e d i n t e g e r . """

51

57

( big ,

data [ 0 : 8 ] )

rest

= data [ 8 : ]

rest )

readDouble ( data ) :

59

""" T r i e s t o i n t e r p r e t t h e n e x t 8 b y t e s
o f t h e d a t a as a 64 b i t d o u b l e f l o a t . """

60

floater

61

big =

62

rest

58

def

= s t r u c t . unpack ( ">d " ,

= data [ 8 : ]
( big ,

rest )

r e a dF l o a t ( data ) :

66

i f ( l e n ( data ) <4):
print ( " E r r o r :

67

data ,

68

rest

65

too

few

bytes

for

float" ,

l e n ( data ) )
= data

float

= 0

else :

69
70

float

71

rest

72

return

73

data [ 0 : 8 ] )

float ( floater [0])

return

63
64

4) + 4

else :

46

50

r e a d I n t ( data ) :

i f ( l e n ( data ) <4):
print ( " E r r o r : t o o

41

def

= s t r u c t . unpack ( "> f " ,


= data [ 4 : ]
( float ,

rest )

decodeOSC ( d a t a ) :

74

table = {

75

"i"

76

OSC . r e a d F l o a t ,

OSC . r e a d I n t ,
"s"

"f"
:

data [ 0 : 4 ] ) [ 0 ]

5.1. Diseo del sistma grco en BLENDER

77

OSC . r e a d S t r i n g ,

78

OSC . r e a d B l o b ,

79

OSC . r e a d D o u b l e

80

decoded =

81

address ,

82

typetags = ""

83

if

"b"

"d"

63

[]
rest

= OSC . r e a d B y t e ( d a t a )

a d d r e s s == "#b u n d l e " :

84

time ,

rest

= readLong ( r e s t )

85

d e c o d e d . append ( a d d r e s s )

86

d e c o d e d . append ( t i m e )

87

while

88

l e n ( r e s t ) >0:

89

length ,

90

d e c o d e d . append

91

(OSC . decodeOSC ( r e s t [ : l e n g t h ] ) )

92

rest

elif

93

len ( rest ) >

rest

= OSC . r e a d I n t ( r e s t )

rest [ length : ]

0:

94

typetags ,

rest

= OSC . r e a d B y t e ( r e s t )

95

d e c o d e d . append ( a d d r e s s )

96

d e c o d e d . append ( t y p e t a g s )

97

if

len ( typetags ) >

if

98

0:

typetags [ 0 ]

for

99

== o r d ( ' , ' ) :

tag

in

typetags [ 1 : ] :

100

value ,

rest

= t a b l e [ chr ( tag ) ] ( r e s t )

101

d e c o d e d . append ( v a l u e )

else :

102

print ( " Oops ,

103

return

104

typetag

decoded

105
106
107
108

class

NImateReceiver ( ) :

def

run ( s e l f ,

objects ,

109

d i c t = {}

110

try :

111
112
113

set_data_func ) :

data =

s e l f . sock . recv (

return

{ 'PASS_THROUGH ' }

except :

114

t r a s h = data

115

while ( True ) :

1024

lacks

the

magic " )

64

Captulo 5. Diseo del sistema (MODELADO)

116

data = t r a s h

117

d e c o d e d = OSC . decodeOSC ( d a t a )

118

i f ( l e n ( decoded )

== 5 ) :

d i c t [ s t r ( d e c o d e d [ 0 ] , " u t f 8" ) ]

119
120

( [ decoded [ 2 ] ,

decoded [ 3 ] ,

decoded [ 4 ] ] )

121

try :

122
123

trash =

s e l f . sock . recv (1024)

except :

124

break
in d i c t . i t e m s ( ) :

125

for

126

key ,

127

value

set_data_func ( o b j e c t s ,

def

128

key ,

value )

__init__ ( s e l f , UDP_PORT) :

129

s e l f . s o c k=s o c k e t . s o c k e t ( s o c k e t . AF_INET, s o c k e t .SOCK_DGRAM)

130

s e l f . s o c k . s e t s o c k o p t ( s o c k e t . SOL_SOCKET, s o c k e t .SO_REUSEADDR, 1 )

131

s e l f . sock . s e t b l o c k i n g (0)

132

s e l f . sock . bind (

( " l o c a l h o s t " , UDP_PORT)

print ( " D e l i c o d e

NI

133
134
135

Addon

136

def

137

139

print ( " D e l i c o d e

141

t o OSC on

port

"

__del__ ( s e l f ) :
s e l f . sock . c l o s e ( )

i f not

listening

s t r (UDP_PORT) )

138

140

mate

started

NI

mate Addon

stopped

listening

t o OSC" )

GE :

class

D e l i c o d e N I m a t e ( bpy . t y p e s . O p e r a t o r ) :

142

bl_idname = "wm. d e l i c o d e _ n i _ m a t e _ s t a r t "

143

bl_label = " Delicode

144

b l _ o p t i o n s = { 'REGISTER ' }

NI

mate

Start "

145
146

enabled = False

147

receiver

148

t i m e r = None

149
150
151
152

= None

def modal ( s e l f , c o n t e x t , e v e n t ) :
i f e v e n t . t y p e == ' ESC ' or not __class__ . e n a b l e d :
return s e l f . c a n c e l ( c o n t e x t )
i f e v e n t . t y p e == 'TIMER ' :

153

s e l f . r e c e i v e r . r u n ( bpy . d a t a . o b j e c t s ,

154

return

{ 'PASS_THROUGH ' }

set_data )

5.1. Diseo del sistma grco en BLENDER

65

155
156

def

157

__class__ . e n a b l e d = True

158

s e l f . r e c e i v e r =N I m a t e R e c e i v e r

159

( c o n t e x t . s c e n e . delicode_ni_mate_port )

160

c o n t e x t . window_manager . modal_handler_add ( s e l f )

161

s e l f . t i m e r=c o n t e x t . window_manager . e v e n t _ t i m e r _ a d d

execute ( s e l f ,

context ) :

162
163

(1/ context . scene . render . fps ,

164

return

c o n t e x t . window )

{ 'RUNNING_MODAL ' }

165

def

166

cancel ( self ,

context ) :

167

__class__ . e n a b l e d = F a l s e

168

c o n t e x t . window_manager . e v e n t _ t i m e r _ r e m o v e ( s e l f . t i m e r )

del s e l f . r e c e i v e r
return { 'CANCELLED ' }

169
170
171
172

@classmethod

173

def

174

disable ( cls ):

if

175

c l s . enabled :

176
177

c l s . enabled = False

class

D e l i c o d e N I m a t e S t o p ( bpy . t y p e s . O p e r a t o r ) :

178

bl_idname = "wm. d e l i c o d e _ n i _ m a t e _ s t o p "

179

bl_label = " Delicode

180

b l _ o p t i o n s = { 'REGISTER ' }

def

181

return

182

NI

mate

execute ( s e l f ,

Stop "

context ) :

DelicodeNImate . d i s a b l e ( )

{ ' FINISHED ' }

183
184

class

VIEW3D_PT_DelicodeNImatePanel ( bpy . t y p e s . P a n e l ) :

185

b l _ s p a c e _ t y p e = "VIEW_3D"

186

b l _ r e g i o n _ t y p e = "TOOLS"

187

bl_label = " Delicode

188

def

draw ( s e l f ,

NI

mate "

context ) :

189

layout =

s e l f . layout

190

scene = context . scene

191

c o l = l a y o u t . column ( )

192

c o l . enabled =

193

c o l . prop ( sc ene ,

not

DelicodeNImate . enabled

" delicode_ni_mate_port " )

66

Captulo 5. Diseo del sistema (MODELADO)

194

i f ( DelicodeNImate . enabled ) :

195
196

l a y o u t . o p e r a t o r ( "wm. d e l i c o d e _ n i _ m a t e _ s t o p " ,

197

t e x t=" S t o p " )

198

else :

199

l a y o u t . o p e r a t o r ( "wm. d e l i c o d e _ n i _ m a t e _ s t a r t " ,

200

t e x t=" S t a r t " )

201

def

init_properties ():

if

202

GE :

return

203
204

s c e n e = bpy . t y p e s . S c e n e

205

s c e n e . d e l i c o d e _ n i _ m a t e _ p o r t = bpy . p r o p s . I n t P r o p e r t y (

206

name=" P o r t " ,

207

d e s c r i p t i o n=" R e c e i v e OSC on

208

d e f a u l t = 7000 ,

209

min = 0 ,

210

max = 6 5 5 3 5 )

211

def

if

GE :

return

213
214

s c e n e = bpy . t y p e s . S c e n e

del

215

def

s c e n e . delicode_ni_mate_port

register ():

if

217

GE :

return

218
219
220

init_properties ()

def

bpy . u t i l s . r e g i s t e r _ m o d u l e (__name__)

unregister ():

if

221

GE :

return

222
223

bpy . u t i l s . u n r e g i s t e r _ m o d u l e (__name__)

224

clear_properties ()

225
226

port " ,

clear_properties ( ) :

212

216

this

if

GE :

if

h a s a t t r ( bge . l o g i c ,

' D e l i c o d e N I m a t e ' ) == F a l s e :

227

o b j = b g e . l o g i c . g e t C u r r e n t C o n t r o l l e r ( ) . owner

228

p o r t = o b j . g e t ( ' NImatePort ' ,

229

if

230
231
232

"" )

b o o l ) or not i s i n s t a n c e ( p o r t
print """Add an i n t e g e r game p r o p e r t y

i s i n s t a n c e ( port ,

' NImatePort ' t o t h e o b j e c t '" +


o b j . name + " '

int ):

5.1. Diseo del sistma grco en BLENDER

67

t o change t h e D e l i c o d e NI mate Addon p o r t . """

233
234
235

p o r t = 7000

236

b g e . l o g i c . D e l i c o d e N I m a t e=N I m a t e R e c e i v e r ( p o r t )

237 b g e . l o g i c . D e l i c o d e N I m a t e . r u n
238 b g e . l o g i c . g e t C u r r e n t S c e n e ( ) . o b j e c t s ,

set_GE_data

239
240

elif

__name__ == "__main__" :

241

register ()

Codigo de programacin en blender


1
2
3
4
5

import b g e
from s u b p r o c e s s
import c a l l
import bpy

6 c o n t = bge . l o g i c . g e t C u r r e n t C o n t r o l l e r ( )
7 own = c o n t . owner
8
9
10

#import time
#bpy . d a t a . s c e n e s [ 0 ] . u p d a t e ( )
#""" tomamos un v a l o r i n i c i a l para I1 """

11 I 1 =

f l o a t ( bpy . d a t a . o b j e c t s [ ' S h o u l d e r _ L ' ] . l o c a t i o n . z )

12

print ( I 1 )

13

c a l l ( [ " i r s e n d " , "SEND_ONCE" ,

14
15

f l o a t ( bpy . d a t a . o b j e c t s [ ' Shoulder_R ' ] . l o c a t i o n . z )

17

print ( D1 )

18

c a l l ( [ " i r s e n d " , "SEND_ONCE" ,

20

23
24

" Robosapien " ,

f l o a t ( bpy . d a t a . o b j e c t s [ ' Foot_L ' ] . l o c a t i o n . y )

print ( PI )

c a l l ( [ " i r s e n d " , "SEND_ONCE" ,

" Robosapien " ,

#time . s l e e p ( 2 )
#""" tomamos un v a l o r i n i c i a l para I1 """

25 S=0
26

print ( S )

27

c a l l ( [ " i r s e n d " , "SEND_ONCE" ,

28

"right_ARM_UP" ] )

#time . s l e e p ( 2 )
#""" tomamos un v a l o r i n i c i a l para I1 """

21 PI =
22

"LEFT_ARM_UP" ] )

#time . s l e e p ( 2 )
#""" tomamos un v a l o r i n i c i a l para I1 """

16 D1 =

19

" Robosapien " ,

#time . s l e e p ( 1 )

" Robosapien " ,

" stop " ] )

"WALK_FORWARD" ] )

68

29

Captulo 5. Diseo del sistema (MODELADO)

#""" tomamos un v a l o r i n i c i a l para I1 """

30 r o a r = ( bpy . d a t a . o b j e c t s [ ' S h o u l d e r _ L ' ] . l o c a t i o n . z )


31
32
33
34
35
36
37
38

+(bpy . d a t a . o b j e c t s [ ' Shoulder_R ' ] . l o c a t i o n . z )

print ( r o a r )
c a l l ( [ " i r s e n d " , "SEND_ONCE" ,

" Robosapien " ,

" roar " ] )

#time . s l e e p ( 1 )
#i f I2>I1 :
#bpy . ops . r e n d e r . r e n d e r ( )
#bpy . ops .wm. redraw_timer ( t y p e ='DRAW_WIN_SWAP' , i t e r a t i o n s =1)
#bpy . ops .wm. redraw_timer ( )

Manual Robosapiens

69

Datasheet

70

Bibliografa
[1] Marcelo Alonso, Edward J. FINN  Fsica Mecnica , Addison Wesley. Wilmington Delaware, 1986.
[2] K. ASADA.  Robot Analysis and control2, Wiley-Interscience 1992. 3.
[3]

Jorge

Sanz

Miguel,

 Tesis:

Diseo

implementacin

construccin

de

extremidades para robots caminantes , Universidad Politcnica de Madrid


[4] Robot de bsqueda y desactivacin de bombas TDP (Team Description paper).
LARC 2008. IEEE
[5] Localizacin y generacin de mapas del entorno (SLAM) de un robot por
medio de una Kinect. Joaqun Vials Pons septiembre de 2012
[11]http://capitaldemexico.com.mx/index.php/detalle-contrapesos/28618pensiones-desactivar-la-bomba
[12] http://www.blender.org 13. [13]http://www.lirc.org
[14] http://www.ubuntu.org
[15] http://www.robotikka.com/751/androide-contra-los-explosivos/
[16] http://www.blenderartists.org/forum/archive/index.php/t-202995.html
[17] http://wiki.blender.org/index.php/Doc:2.6/Manual/Game_Engine/Logic/Sensors
[18] http://www.mundogeek.net/archivos/2008/01/29/python-control-de-ujo/

[19] http://www.ingesa.msc.es/organizacion/ceutaMelilla/ceuta/dirTerritorial/pdf/catalogo.pdf
[20]

http://cosasdeingenieria.com/esp/index/item/297/59/servo-motor-digital-

para-robot-hsr-5498sg
[21] http://www.astm.org/Standards/E32.htm [22] Robotic Arm Control With
Blender, A. Daz-Andrade, CIDETEC, Departamento de Procesamiento Paralelo
ISSN 2079-8407 [23]

71

También podría gustarte