Está en la página 1de 276

Autorizada la entrega del proyecto al alumno:

Ignacio Rodrguez de la Rosa

EL DIRECTOR DEL PROYECTO


lvaro Snchez Miralles

Fdo:

Fecha:

V B del Coordinador de Proyectos


lvaro Snchez Miralles

Fdo:

Fecha:

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO INDUSTRIAL

PROYECTO FIN DE CARRERA

DESARROLLO DE UN BRAZO
MANIPULADOR PARA ROBOTS
MVILES

AUTOR:

IGNACIO RODRGUEZ DE LA ROSA


MADRID, junio 2009

RESUMEN

DESARROLLO DE UN BRAZO MANIPULADOR PARA ROBOTS


MVILES
Autor: Rodrguez de la Rosa, Ignacio.
Director: Snchez Miralles, lvaro.
Entidad Colaboradora: ICAI Universidad Pontificia Comillas.

RESUMEN DEL PROYECTO


Este proyecto se basa en el objetivo fundamental de desarrollar un brazo robtico
ligero, de alta capacidad de carga y de gran alcance.
De estas caractersticas probablemente la fundamental sea la ligereza ya que el fin
para el que est pensado este brazo robtico es ser instalado en robots mviles.
Hoy en da ya existen multitud de brazos robticos, pero la prctica totalidad de
estos est orientada a la industria y en general a situaciones estticas, es decir, el
brazo est anclado a un punto fijo en el espacio y desde ah realiza sus
movimientos. Esa es la gran diferencia de este brazo, ya que estar unido a otro
robot mvil, por tanto sus caractersticas deben de disearse en consecuencia.
Ah es donde radica la gran dificultad del proyecto, en conseguir gran alcance y
capacidad de carga sin que se dispare el peso del brazo (cosa que no logra ningn
diseo actual), ya que de ser as ser imposible su instalacin en robots mviles.
Una vez logrado esto se conseguir dotar a cualquier robot mvil de una gran
capacidad manipuladora que multiplicar sus posibilidades de uso.
Especficamente, los objetivos perseguidos en el proyecto son:

Peso mximo del brazo (sin carga) de 8 Kg.

1,5 m de alcance.

2 Kg de capacidad de carga mxima.

5 grados de libertad.

La forma de lograr estas novedosas caractersticas ser basando el sistema en


materiales ligeros como el aluminio y el titanio y hacer uso de servomotores de
alto rendimiento. De esta forma, el principal sacrificio que se har para alcanzar
los objetivos ser la velocidad de movimientos, siendo sta menor a la de los
brazos industriales actuales. Pero eso en este caso no es un gran problema ya que
el brazo no est orientado al uso industrial, donde los tiempos de ciclo de
-1-

RESUMEN
produccin son clave, sino que est orientado a manipulacin de objetos por parte
de robots mviles, con lo que la velocidad de movimiento no es crtica.
El proceso seguido para completar el proyecto es el siguiente. Se parte de una
etapa de documentacin previa para pasar a una primera fase de diseo. Este
diseo es clave para obtener el mximo ahorro de peso. El diseo se realiza con la
ayuda de software de diseo 3D. Una vez hecho esto se pasa a una fase de
fabricacin de componentes. La mayora de las piezas son de diseo exclusivo
para este mecanismo, con lo que deben ser fabricadas en taller mediante mquinas
herramienta convencionales.

Figura 1: Comparativa del diseo 3D inicial y el prototipo finalmente desarrollado

A partir de este punto se inicia la integracin de componentes electrnicos en el


diseo mecnico. Primero los actuadores (servos de alto rendimiento) los cuales
deben ser modificados para poder controlar el movimiento de la reductora,
requerida para lograr un aumento de par en el eje de giro. Adems se aade la
tarjeta de control. sta ser la TCS-2, desarrollada previamente por el
departamento de electrnica de ICAI. El siguiente paso es el desarrollo del
software de gestin del brazo. Se desarrolla un driver que se encarga del clculo
de posiciones, ngulos de giro, etc. de tal forma que el usuario solamente debe
introducir las coordenadas de la mano, y la aplicacin se encarga del resto. Una
vez completada esta etapa comienza el proceso de experimentos. sta es una etapa

-2-

RESUMEN
clave, ya que se deben hacer los rediseos necesarios para cumplir con las
caractersticas buscadas.
Concluido todo este proceso se obtiene un prototipo con unas caractersticas
bastante buenas. Los resultados son los siguientes:
Alcance [m]

Peso
[Kg]

1,4

2,75

Payload [Kg]
0.5

Relacin

Relacin

Payload/Peso

Alcance/Peso

0,18

0,51

Tabla 1: Caractersticas generales del brazo robtico desarrollado

Como se aprecia en la Tabla 1 se alcanzan todos los objetivos excepto el de


capacidad de carga. El alcance es algo inferior a los 1,5 m porque en este proyecto
no se integra la mano. Una vez hecho esto se alcanzar el metro y medio. A pesar
de no lograr los 2 Kg de payload, el diseo se puede considerar satisfactorio si se
compara con otros brazos robticos.

Relacin
Payload/Peso
Relacin
Alcance/Peso

Brazo Desarrollado

Media otros brazos

Mejora

0,18

0,09

X 2

0,51

0,02

X 25,5

Tabla 2: Comparativa de caractersticas del brazo desarrollado con otros modelos existentes

En la Tabla 2 se comprueba como, efectivamente, la relacin capacidad de carga


(payload) /Peso del brazo, es el doble que la de la media de modelos del mercado.
Adems la relacin alcance/peso es tremendamente superior.
Esto permite concluir que el brazo desarrollado posee unas propiedades idneas
para el uso para el cual est diseado (integracin en robots mviles). Adems el
driver desarrollado permite un uso simple pero muy avanzado del brazo robtico,
convirtindolo en un sistema muy verstil. A pesar de que no se alcancen los 2 Kg
de payload, el resultado es suficientemente bueno como para que se pueda usar
como sistema manipulador, y de todas formas, se proponen interesantes mtodos
de mejora de las propiedades que permitirn alcanzar y sobrepasar los objetivos
iniciales.
-3-

SUMMARY

DEVELOPMENT OF A MANIPULATOR ARM FOR MOBILE


ROBOTS

This project is based on the fundamental objective of developing a lightweight


robotic arm, with high payload and high reach.
The most important feature is the lightness due to the purpose for which the
robotic arm is designed is to be installed on mobile robots.
At present there are already lots of robotic arms, but almost all of these are geared
to industry, and in general in static situations (the arm is anchored to a fixed point
in space and from there made its movements). This is the big difference in this
arm, as it will be linked to another mobile robot, thus the features should be
designed accordingly.
That is where lies the great difficulty of the project, in achieving long range and
high payload without increasing the arms weight, because if this happens it will
be impossible to install it in mobile robots. Once this is achieved it will be
possible to provide with manipulative ability to any mobile robot, and this will
multiply their potential use.
Specifically, the objectives of the project are:

Maximum weight of the arm (without load) of 8Kg.

1.5 m range.

2 kg maximum payload.

5 degrees of freedom.

The way to achieve these objectives will be basing the design on light materials
such as aluminum and titanium and make use of high performance servomotors.
In this way, the main sacrifice that will be done to achieve the goals will be the
speed of movement, which will be lower than other arms speed. But in this case
it is not a big problem because the arm is not geared to industrial use, where
production cycle times are key, but it is oriented to manipulation of objects by
mobile robots, so speed movement is not critical.
The process followed to complete the project is the next one. It starts with a phase
of researching followed by a design phase. This design is key for maximizing
-4-

SUMMARY
weight saving. The design is done with the help of 3D design software. Once this
stage is complete, begins the manufacture of components. Most of the pieces are
exclusively designed for this mechanism, so there must be manufactured in
conventional workshop machine tool.

Figure 1: Comparison of 3D design and final prototype developed

From here begins the integration of electronic components in the mechanical


design. First actuators (high-performance servos) which must be modified to be
possible to control the gear mechanism movements, required for achieving torque
increase. It is also add the control card. This is the TCS-2, developed previously
by ICAIs department of electronics. The next step is the software development. It
is a driver responsible for calculating positions and rotation angles so that the user
must enter only the hands coordinates, and the application takes care of the rest.
When this stage is completed, the experiments begin. This is a milestone in the
process, as some redesigns should be done to achieve the desired.
Once this process is completed there will be a prototype with quite good
characteristics. The results are as follows:
Reach [m]
1,4

Weight

Payload

Payload/Weight

Reach/Weight

[Kg]

[Kg]

Ratio

Ratio

2,75

0.5

0,18

0,51

Table 1: General features of the robotic arm developed

-5-

SUMMARY
As shown in Table 1 all the goals except for the payload are achieved. The scope
is less than 1,5 m because this project does not integrate the hand. Once this is
done, 1,5m will be reached. Despite not achieving 2 Kg payload, the design can
be considered satisfactory when compared with other robotic arms.

Payload / Weight
Ratio
Reach/ Weight
Ratio

Developed arm

Other arms

Improvement

0,18

0,09

X 2

0,51

0,02

X 25,5

Table 2: Comparative between the developed arm and other existing models

In Table 2 can be seen how the Payload / Weight ratio, is twice of the average.
Besides, the Reach / Weight ratio is much higher.
This suggests that the developed arm is suitable for mobile robots. In addition, the
driver allows a simple but highly advanced use of the robotic arm, making it a
very versatile system. Despite not reaching 2 kg payload, the results are good
enough to use the arm as a manipulator system, and anyway, there are proposed
some methods for improving the properties and surpass the original objectives.

-6-

Documento n 1
Memoria

NDICE

ndice
Parte I

Memoria ................................................................. - 1 -

Captulo 1

Introduccin.............................................................. - 4 -

1.1 Estado del arte .................................................................................... - 4 1.2 Motivacin del proyecto ................................................................... - 8 1.3 Objetivos ........................................................................................... - 10 1.4 Metodologa ...................................................................................... - 11 1.5 Recursos ............................................................................................ - 12 -

Captulo 2

Mecnica del Brazo Robtico .............................. - 15 -

2.1 Diseo del brazo robtico ............................................................... - 15 2.1.1 Conceptos generales ................................................................................ - 15 2.1.2 Barras ...................................................................................................... - 21 2.1.3 Reductora ................................................................................................ - 26 2.1.4 Eje articulaciones .................................................................................... - 35 2.1.5 Distribucin general de pesos ................................................................. - 40 -

2.2 Construccin del brazo robtico .................................................... - 44 2.2.1 Barras ...................................................................................................... - 45 2.2.2 Soporte Servos......................................................................................... - 47 2.2.3 Pieza en L ............................................................................................ - 50 2.2.4 Estructura de sustentacin del eje de la articulacin.............................. - 51 2.2.5 Placa de Apoyo ....................................................................................... - 53 2.2.6 Pieza en C ........................................................................................... - 54 2.2.7 Buje ......................................................................................................... - 55 2.2.8 Rodamientos............................................................................................ - 56 2.2.9 Estructura apoyo barras ......................................................................... - 58 2.2.10 Enlace servo-barra ................................................................................ - 59 2.2.11 Pieza acoplamiento barras..................................................................... - 60 2.2.12 Amarre pin-servo .............................................................................. - 61 2.2.13 Engranajes ............................................................................................ - 62 2.2.14 Sistema de unin corona-eje ................................................................. - 64 2.2.15 Eje articulaciones .................................................................................. - 64 2.2.16 Base brazo ............................................................................................. - 66 I

NDICE

Captulo 3

Electrnica del Brazo Robtico ........................... - 68 -

3.1 Actuadores. Servos .......................................................................... - 68 3.1.1 Nociones bsicas ..................................................................................... - 68 3.1.2 Modificaciones al servo ........................................................................... - 73 3.1.3 Problemas con las modificaciones ........................................................... - 77 -

3.2 Tarjeta de control TCS-2 ................................................................. - 81 3.2.1 Diseo TCS-2 ......................................................................................... - 81 3.2.2 Posibles configuraciones TCS-2.............................................................. - 83 -

Captulo 4

Software del Brazo Robtico ............................... - 88 -

4.1 Microsoft Visual Studio C++ 6/2008 ............................................ - 88 4.2 Driver de control de la TCS-2......................................................... - 94 4.2.1 Variables y funciones del driver.............................................................. - 96 -

4.3 Driver de control del brazo ............................................................ - 97 4.3.1 Variables y funciones del driver.............................................................. - 99 4.3.1.1 Funciones Clave del driver ................................................................... - 102 -

4.3.2 Clculo global de posiciones .................................................................. - 108 4.3.2.1 Seleccin de posicin especfica ........................................................... - 109 4.3.2.2 Clculo de ngulos ................................................................................. - 111 4.3.2.3 ngulo primer servo () ...................................................................... - 112 4.3.2.4 ngulo segundo servo () ..................................................................... - 113 4.3.2.5 ngulo tercer servo () ......................................................................... - 114 4.3.2.6 ngulo cuarto servo () ........................................................................ - 115 4.3.2.7 Seleccin posicin final ......................................................................... - 115 -

4.4 Aplicacin de control del brazo ................................................... - 117 4.4.1 Pantalla de usuario ............................................................................... - 118 4.4.1.1 Start .......................................................................................................... - 120 4.4.1.2 Stop .......................................................................................................... - 122 4.4.1.3 Enviar ....................................................................................................... - 122 4.4.1.4 Ok. Mover ............................................................................................... - 123 -

4.4.2 Sistema de gestin del brazo ................................................................. - 123 -

Captulo 5

Resultados y experimentos ................................ - 127 -

5.1 Evolucin ........................................................................................ - 127 5.2 Pruebas realizadas ......................................................................... - 129 5.3 Resultados ....................................................................................... - 134 II

NDICE

Captulo 6

Conclusiones ........................................................ - 142 -

6.1 Conclusiones ................................................................................... - 142 -

Captulo 7

Futuros desarrollos .............................................. - 150 -

7.1 Posibilidades de desarrollo .......................................................... - 150 7.1.1 Mejoras ................................................................................................. - 150 7.1.2 Ampliaciones......................................................................................... - 152 -

Captulo 8

Bibliografa ........................................................... - 160 -

Parte II Estudio econmico ........................................... - 162 Captulo 1

Estudio econmico .............................................. - 163 -

1.1 Concepto ......................................................................................... - 163 1.2 Anlisis ............................................................................................ - 163 -

Parte III Manual de usuario del brazo robtico ......... - 165 Captulo 1

Introduccin.......................................................... - 166 -

Captulo 2

Instrucciones de uso y seguridad ..................... - 167 -

2.1 Instrucciones generales ................................................................. - 167 2.2 Antes del uso .................................................................................. - 168 2.3 Durante el uso ................................................................................ - 169 2.4 Despus del uso ............................................................................. - 169 -

Captulo 3

Descripcin del producto ................................... - 172 -

Captulo 4

Puesta en marcha, parada y pausa .................... - 175 -

4.1 Puesta en marcha ........................................................................... - 175 4.2 Pausa ................................................................................................ - 177 4.3 Parada .............................................................................................. - 177 -

Captulo 5

Especificaciones ................................................... - 179 -

Captulo 6

Problemas y soluciones ...................................... - 180 -

Parte IV Manual de usuario Driver TCS-2 .................. - 183 Captulo 1

Introduccin.......................................................... - 184 III

NDICE

Captulo 2

Conocimientos bsicos ....................................... - 185 -

Captulo 3

Variables del driver ............................................. - 186 -

Captulo 4

Funciones del driver ........................................... - 188 -

Captulo 5

Uso del objeto de la clase comm ....................... - 192 -

5.1 Creacin del objeto ........................................................................ - 192 5.2 Inicio comunicacin ....................................................................... - 193 5.3 Introduccin de las rdenes a enviar .......................................... - 193 5.4 Envo y recepcin ........................................................................... - 194 5.5 Lectura de las medidas ................................................................. - 194 -

Parte V Manual de usuario Driver Brazo ................... - 196 Captulo 1

Introduccin.......................................................... - 197 -

Captulo 2

Conocimientos bsicos ....................................... - 198 -

Captulo 3

Variables y funciones del driver ...................... - 199 -

3.1 Funciones del driver ...................................................................... - 199 3.2 Variables del driver ....................................................................... - 200 -

Captulo 4

Uso del objeto de la clase arm ........................... - 203 -

4.1 Creacin del objeto ........................................................................ - 203 4.2 Peticin de clculo ......................................................................... - 204 4.3 Giro del brazo ................................................................................. - 204 4.4 Consulta de datos .......................................................................... - 206 4.5 Precauciones ................................................................................... - 206 4.6 Ejemplo de uso ............................................................................... - 207 -

Parte VI Cdigo fuente .................................................... - 211 Captulo 1

Cdigo clase arm .................................................. - 212 -

1.1 Archivo arm.h ................................................................................ - 212 1.2 Archivo arm.cpp ............................................................................ - 214 -

Captulo 2

Cdigo aplicacin ................................................ - 221 IV

NDICE
2.1 Archivo DriverDlg.cpp ................................................................. - 221 -

Parte VII

Datasheets .................................................... - 227 -

NDICE

ndice de Figuras
Figura 1: Brazo robtico implantado a una mujer ....................................................................... - 6 Figura 2: Esquema control brazo robtico mediante sistema nervioso ......................................... - 6 Figura 3: Mars Rover .................................................................................................................. - 7 Figura 4: Robot humanoide Asimo .............................................................................................. - 7 Figura 5: Clasificacin articulaciones ........................................................................................ - 16 Figura 6: Clasificacin brazos robticos ..................................................................................... - 17 Figura 7: Esquema articulaciones brazo .................................................................................... - 19 Figura 8: Ejes de giro sobre modelo del brazo robtico en 3D .................................................... - 19 Figura 9: Rotacin 1er Eje ......................................................................................................... - 20 Figura 10: Rotacin 2 Eje ......................................................................................................... - 20 Figura 11: Par necesario hombro ............................................................................................... - 21 Figura 12: Perfil barra ............................................................................................................... - 22 Figura 13: Momento flector segn longitud .............................................................................. - 23 Figura 14: Momento flector por seccin barra ........................................................................... - 23 Figura 15: Reparto de tensiones internas por seccin de barra .................................................. - 23 Figura 16: Modelo 3D brazo ...................................................................................................... - 27 Figura 17: Par mximo 1er eje hombro ....................................................................................... - 28 Figura 18: Par mximo 2 eje hombro ........................................................................................ - 28 Figura 19: Par mximo 1er eje codo ............................................................................................ - 29 Figura 20: Corona y pin acoplados ........................................................................................ - 29 Figura 21: Fuerzas sobre diente engranaje ................................................................................ - 32 Figura 22: Representacin en 3D del eje de las dos primeras articulaciones ............................. - 35 Figura 23: Esquema esfuerzos que genera el par sobre el eje ..................................................... - 36 Figura 24: Diagrama de cuerpo libre del eje (total de esfuerzos a los que est sometido) .......... - 37 Figura 25: Esfuerzos internos en eje en la zona entre rodamientos ........................................... - 37 Figura 26: Esfuerzos internos sobre el eje .................................................................................. - 38 Figura 27: Esfuerzos internos sobre la zona entre rodamiento y carga ..................................... - 39 Figura 28: Puntos con tensin interna mxima en la seccin del eje ......................................... - 39 Figura 29: Distribucin de pesos en el brazo ............................................................................. - 42 Figura 30: Brazo robtico completo ........................................................................................... - 45 Figura 31: Diseo 3D barra ....................................................................................................... - 47 Figura 32: Brazo real con soporte multifuncional ..................................................................... - 48 VI

NDICE
Figura 33: Diseo 3D del soporte multifuncional para servos con detalle pestaa ................... - 48 Figura 34: Diseo 3D soporte final para servos......................................................................... - 49 Figura 35: Pieza en "L" inicial .................................................................................................. - 50 Figura 36: Diseo 3D de pieza en "L" finalmente utilizada ...................................................... - 50 Figura 37: Comparacin bloque Soporte-L inicial y final .......................................................... - 51 Figura 38: Estructura de soporte de los rodamientos del eje de las articulaciones ..................... - 51 Figura 39: Soporte de sujecin rodamientos. Ejes 1 y 2 (izda. y dcha.) ..................................... - 53 Figura 40: Diseo 3D Placa Apoyo ........................................................................................... - 54 Figura 41: Diseo 3D Pieza "C" ............................................................................................... - 55 Figura 42: Pareja de bujes uniendo eje y "C" ............................................................................ - 56 Figura 43: Rodamiento acoplado al soporte del eje..................................................................... - 56 Figura 44: Esquema rodamientos............................................................................................... - 58 Figura 45: Estructura de apoyo de la barra ............................................................................... - 59 Figura 46: Pieza de unin servo-barra ....................................................................................... - 60 Figura 47: Diseo 3D de la pieza de unin plato servo-barra .................................................... - 60 Figura 48: Ensamblaje de la barra ............................................................................................. - 61 Figura 49: Sistema de agarre del pin al servo ........................................................................ - 62 Figura 50: Plano con notacin de los dos modelos de engranajes .............................................. - 63 Figura 51: Montaje definitivo del hombro ................................................................................. - 63 Figura 52: Diseo 3D del agarre de la corona grande al eje ...................................................... - 64 Figura 53: Electrodo de cobre y eje de acero con el orificio ........................................................ - 65 Figura 54: Base del brazo robtico ............................................................................................. - 66 Figura 55: Componentes del servo utilizado en el brazo ............................................................ - 69 Figura 56: Diagrama del circuito de control implementado en un servo ................................... - 70 Figura 57: Transformacin de par en el hombro ........................................................................ - 73 Figura 58: Instalacin potencimetro en perfil y planta (izquierda y derecha) .......................... - 75 Figura 59: Traslado del potencimetro ...................................................................................... - 75 Figura 60: Eliminacin tope mecnico ....................................................................................... - 76 Figura 61: Cable a tierra rodeando los cables del potencimetro ................................................ - 78 Figura 62: Esquema elctrico de la conexin de los condensadores de filtrado de seal ............. - 78 Figura 63: Interior del potencimetro ........................................................................................ - 79 Figura 64: Control de los mdulos mediante los micros ............................................................ - 82 Figura 65: Tarjeta de Control TCS-2 ......................................................................................... - 83 VII

NDICE
Figura 66: Seales de tierra y alimentacin de la tarjeta. .......................................................... - 84 Figura 67: Conexiones TCS-2 .................................................................................................... - 84 Figura 68: Configuracin utilizada de la TCS-2 ....................................................................... - 85 Figura 69: Serigrafa TCS-2. Error (izquierda) Correcto (derecha) ........................................... - 86 Figura 70: Cuadro de dilogo Visual Studio 2008 New Project ................................................ - 90 Figura 71: Cuadro de dilogo Application Type ........................................................................ - 90 Figura 72: Ventana de trabajo Visual Studio 2008 ................................................................... - 91 Figura 73: Pantalla configuracin ventana de dilogo .............................................................. - 92 Figura 74: Seleccin de funciones y variables de la clase arm .................................................... - 99 Figura 75: Diagrama de flujo de la funcin calcular ( ) ........................................................... - 103 Figura 76: Diagrama de flujo de la funcin girar ( )................................................................ - 105 Figura 77: Diagrama de flujo de la funcin giro_servo ( ) ....................................................... - 106 Figura 78: Vistas 3D del brazo con hombro, codo y mano en lnea ......................................... - 109 Figura 79: Momento generado por las fuerzas respecto eje 3 ................................................... - 110 Figura 80: ngulos de giro ...................................................................................................... - 111 Figura 81: Giro respecto eje primer servo ................................................................................ - 112 Figura 82: Giro respecto eje segundo servo .............................................................................. - 113 Figura 83: Clculo pares respecto eje 3 en situacin lmite ..................................................... - 116 Figura 84: Pantalla de usuario ................................................................................................ - 118 Figura 85: Pantalla de usuario en fallo de comunicacin ........................................................ - 121 Figura 86: Diagrama de flujo del algoritmo de control del brazo robtico ............................... - 125 Figura 87: Diseo 3D inicial del brazo .................................................................................... - 127 Figura 88: Verificaciones en prueba eje aislado ....................................................................... - 130 Figura 89: Prueba del brazo robtico completo ........................................................................ - 133 Figura 90: Pantalla de usuario del driver para pruebas ........................................................... - 134 Figura 91: Zonas de alcance del brazo robtico........................................................................ - 138 Figura 92: Modificacin sistema de aislamiento del potencimetro ......................................... - 151 Figura 93: Sujecin eje servo ................................................................................................... - 155 Figura 94: Mano elctrica ........................................................................................................ - 156 Figura 95: Descripcin general del brazo ................................................................................ - 172 Figura 96: Perfil y planta del hombro indicando elementos bsicos ........................................ - 173 Figura 97: Alzado y planta del codo indicando elementos bsicos ........................................... - 174 Figura 98: Conexiones bsicas TCS-2 ..................................................................................... - 175 VIII

NDICE
Figura 99: Pantalla de usuario con botones indicados ............................................................. - 176 -

IX

NDICE

ndice de Tablas
Tabla 1: Muestra brazos robticos actuales ............................................................................... - 10 Tabla 2: Posibles valores para radios barra ................................................................................ - 24 Tabla 3: Valores requeridos e instalados de las barras ............................................................... - 26 Tabla 4: Valores de par de los servos .......................................................................................... - 26 Tabla 5: Valores requeridos e instalados para los engranajes .................................................... - 35 Tabla 6: Valores requerido e instalado para el eje de las articulaciones ................................. - 40 Tabla 7: Resumen de caractersticas requeridas e instaladas en el brazo ................................... - 44 Tabla 8: Caractersticas barras brazo ......................................................................................... - 47 Tabla 9: Dimensiones de ajuste de Eje y Orificio rodamiento .................................................... - 52 Tabla 10: Caractersticas rodamientos ejes articulaciones ......................................................... - 57 Tabla 11: Caractersticas rodamientos ejes servos ..................................................................... - 58 Tabla 12: Caractersticas engranajes (unidades en mm) ............................................................ - 62 Tabla 13: Caractersticas bsicas Servo HSR-5990 TG ............................................................. - 71 Tabla 14: Servos de alto par ....................................................................................................... - 72 Tabla 15: Explicacin elementos de pantalla de usuario .......................................................... - 120 Tabla 16: Caractersticas finales del brazo .............................................................................. - 134 Tabla 17: Pruebas de funcionamiento ...................................................................................... - 135 Tabla 18: Caractersticas del brazo buscadas, estimadas y conseguidas .................................. - 139 Tabla 19: Distribucin final de pesos en el brazo ..................................................................... - 140 Tabla 20: Planificacin del proyecto ........................................................................................ - 143 Tabla 21: Caractersticas de carga del brazo robtico............................................................... - 145 Tabla 22: Caractersticas de carga de otros brazos robticos .................................................... - 145 Tabla 23: Comparativa brazo desarrollado Vs otros modelos ................................................... - 146 Tabla 24: Especificaciones Brazo robtico ................................................................................ - 179 Tabla 25: Gua de problemas y soluciones ............................................................................... - 181 -

Memoria - Introduccin

Parte I MEMORIA

-1-

Memoria - Introduccin

PRLOGO
El objetivo del proyecto es el desarrollo de un brazo robtico ligero, de
gran alcance y alta capacidad de carga.
Esta memoria comienza, en el Captulo 1, analizando la situacin actual
del mercado y las propiedades de los sistemas actuales, para pasar
despus a fijar los objetivos del proyecto e identificar los mtodos para
lograrlos.
Se contina con una exposicin, en el Captulo 2, del diseo mecnico
realizado y de los distintos sistemas de manufacturacin empleados para
fabricar todo el conjunto de componentes mecnicos.
El siguiente paso es el estudio de los sistemas electrnicos utilizados,
fundamentalmente los servomotores y la tarjeta electrnica de control,
TCS-2. Esto se lleva a cabo en el Captulo 3.
El Captulo 4 se centra en el software del sistema. Tanto en los entornos de
programacin empleados como en los programas y driver desarrollados.
Llegados a este punto ya se habr expuesto todo el proceso de diseo,
fabricacin, montaje y control del brazo. As, en el Captulo 5 se resumen
los resultados obtenidos en las distintas pruebas y las caractersticas
finales alcanzadas para el brazo robtico.
Las conclusiones del proyecto se exponen en el Captulo 6, indicando los
objetivos cumplidos, lo que falta por hacer y las aportaciones que se han
realizado.
Por ltimo, el Captulo 7 est destinado al estudio de las diferentes
mejoras aplicables al mecanismo, as como las posibles ampliaciones que
se puedan llevar a cabo con el objetivo de lograr alcanzar o mejorar todo el
conjunto de objetivos.

-2-

Memoria - Introduccin

1
Introduccin

-3-

Memoria - Introduccin

Captulo 1

INTRODUCCIN

En este captulo se van a tratar los aspectos generales del proyecto. Se


mostrar lo que ya se ha desarrollado en este campo y las motivaciones de
este proyecto.

1.1 Estado del arte


El desarrollo de la robtica es una pieza fundamental en la evolucin
tecnolgica actual y futura.
El trmino robot fue acuado por primera vez en 1920 por el escritor
checo Karel Capek [1] a partir de la palabra checa robota, que significa
servidumbre o trabajo forzado. As pues la historia de la robtica ha
estado dirigida a la fabricacin de elementos que ayudasen y descargasen
al ser humano de sus tareas. Hoy en da se considera un robot a
cualquier dispositivo mecnico que realiza tareas automatizadas con o sin
la ayuda de seres humanos. El desarrollo robtico es debido a la gran
cantidad de ventajas y soluciones que ste nos aporta:

Sustitucin del ser humano en tareas peligrosas, rutinarias y


cansadas.

Ahorro econmico en cuestin de operarios, horas de trabajo,


recursos requeridos.

Realizacin de procesos imposibles para el ser humano.

Comodidad y bienestar de las personas en su hogar y trabajo.

Todas estas ventajas han provocado un acelerado desarrollo que ha


llevado a la robtica a ser una parte real de la sociedad, lo cual hace que
aparezcan una serie de problemas morales relacionados con el desarrollo
tecnolgico sostenible [2]. Fundamentalmente se requiere que la
tecnologa permita satisfacer las necesidades humanas actuales sin
-4-

Memoria - Introduccin
comprometer a las prximas generaciones. Los robots pueden convertirse
en una valiosa herramienta para lograr esto.
Inicialmente el enfoque de los robots se centr ms en la lnea de la
robtica industrial [3], sin embargo en la actualidad una nueva lnea, la de
los robots de servicio, se encuentra tambin en auge.
Dentro del primer grupo se podran incluir los robots utilizados en
manufacturacin, en ambientes peligrosos, en aplicaciones espaciales,
agrcolas, militares, en la construccin En el segundo grupo entraran
los robots destinados a cuidados mdicos, educacin, uso en oficinas, uso
domstico
Los brazos robticos son un elemento indispensable en la mayora de los
robots de ambos grupos.
Desde hace unos aos, el uso de brazos robticos ya se encuentra
totalmente extendido en la industria, sobre todo en automocin, embalado
y en determinados sistemas de fabricacin. Hoy en da estos dispositivos
estn comenzando su andadura fuera de este mbito manufacturero. As,
se estn desarrollando brazos para aplicaciones mdicas quirrgicas, que
requieren de gran precisin y repetibilidad, brazos para ambientes no
industriales como laboratorios u oficinas y los que ms interesan para este
proyecto, brazos destinados a su uso en robots mviles.
Existe una gran diferencia entre los requerimientos de ste ltimo tipo de
brazos y todos los anteriores. La clave se encuentra en que los primeros
son brazos fijos, es decir, estn anclados a un determinado punto que no
se mueve, mientras que los segundos estn unidos a dispositivos robticos
mviles. Esto hace que estos brazos deban ser extraordinariamente ligeros
y de bajo consumo para que sea viable su implantacin en el
correspondiente robot mvil.
En la Tabla 3 se pueden ver algunos ejemplos de brazos robticos
industriales. Como se comentar ms adelante estos estn altamente

-5-

Memoria - Introduccin
optimizados, pero para alcanzar caractersticas distintas a las que aqu se
buscan, las cuales estn indicadas en 1.3 Objetivos.
En el campo de la ingeniera biomdica s se estn produciendo avances
de brazos robticos con unas caractersticas relativamente similares a las
deseadas en este proyecto, ya que son brazos (o extremidades) destinados
a ser instalados en seres humanos, por tanto mviles. Un ejemplo de ello
se puede ver en la Figura 2.

Figura 2: Brazo robtico implantado a una mujer

A pesar de ello estos brazos tampoco llegan a ser exactamente lo que se


pretende alcanzar con este trabajo, pues son brazos con bastante menos
alcance y sobre todo por su diferente sistema de control. Los ingenieros
binicos estn tratando de conseguir que el control del brazo sea a travs
del propio cerebro humano mediante las conexiones nerviosas, siguiendo
un esquema similar al apreciado en la Figura 3.

Figura 3: Esquema control brazo robtico mediante sistema nervioso

Eso es algo absolutamente distinto (y ms complejo) del sistema de control


de los brazos para robots mviles, cuyo movimiento es gestionado por
sistemas electrnicos.
-6-

Memoria - Introduccin
Los brazos ms parecidos resultan ser los integrados en los robots de
exploracin espacial as como en los robots humanoides, ya que requieren
bajo consumo y bajo peso para no volcar al robot, aunque su alcance o
payload son claramente inferiores a los valores aqu propuestos.
Los ejemplos ms caractersticos son el Mars Rover visto en la Figura 4 y el
robot humanoide Asimo de Honda mostrado en la Figura 5.

Figura 4: Mars Rover

Figura 5: Robot humanoide Asimo

En ambos casos integran brazos robticos altamente avanzados pero con


unos alcances relativamente escasos (inferiores a 1 metro). Las
especificaciones de este robot se encuentran en [4].
-7-

Memoria - Introduccin

1.2 Motivacin del proyecto


Hasta hace unos 20 aos se pensaba que el camino para conseguir
dispositivos autnomos era nicamente el desarrollo de inteligencia
artificial. Se estimaba que la base mecnica sobre la que aplicar esta
inteligencia sera algo claramente ms simple. Tal cosa finalmente no ha
sido as.
La gran complejidad de las bases mecatrnicas de los robots ha hecho que
la mentalidad se invierta, como expuso R. A. Brooks [5], quien indic que
primero se deban conseguir agentes fsicos reales que pudieran actuar en
entornos reales y una vez logrado eso se podra aspirar a ir aumentando
las habilidades del robot, su inteligencia.
Este proyecto por tanto colabora en esa direccin, al tratar de aportar una
mejorada capacidad manipuladora a los robots mviles.
Lo que se pretende desarrollar es un brazo robtico extremadamente
ligero, con una capacidad de carga (payload) alta y de gran alcance, que
permita ser instalado en distintos robots mviles dotndolos de capacidad
manipuladora.
Como ya se ha comentado en el Estado del arte, hoy en da existen
multitud de brazos robticos desarrollados pero todos ellos buscan
caractersticas distintas a stas.
Existen, por ejemplo, brazos con altsimo payload (hasta varios centenares
de kilos) pero que lgicamente resultan tremendamente pesados y por
tanto no son instalables en robots mviles. Tambin existen brazos mucho
ms ligeros que, dadas sus caractersticas, s son susceptibles de ser
montados en robots mviles, pero todos ellos resultan tener valores de
payload y/o alcances muy bajos en relacin a lo que se pretende alcanzar
aqu.
Todo esto se puede apreciar en la Tabla 3, que muestra una representacin
del mercado actual de brazos robticos semejantes, en alguna

-8-

Memoria - Introduccin
caracterstica a este proyecto, pero que como se puede comprobar no
logran reunir todas las propiedades.
MODELOS

Alcance[m]

Peso [kg]

Payload (nominal) [kg]

Staubli TX 60 L

0,9

50

2,5

Staubli TX 90 L

1,2

90

Denso VM 6083g

80

10

Denso VS 6577G-B

0,8

36

Adept Viper S650

0,65

28

2,5

Adept Viper S850

0,85

29

2,5

Kawasaki FS003N

0,62

20

ABB irb 140

0,8

96

Mitsubishi RV-3SB

0,72

37

3,5

Mitsubishi RV-2AJ

0,5

17

Motoman HP3 XF

0,7

47

Fanuc LR Mate 200


iB/5c

0,7

45

Epson ProSix PS3

0,75

40

Imagen

-9-

Memoria - Introduccin

AL5D

0,25

0,9

0,35

Tabla 3: Muestra brazos robticos actuales

Por tanto la motivacin fundamental de este proyecto es la de intentar


cubrir esa clase de brazos robticos indicados, pues actualmente no se
encuentra

prcticamente

ningn

dispositivo

que

cumpla

las

caractersticas. Esto se observa claramente en la Tabla 3, donde se


comprueba que todos estos brazos, teniendo un payload similar al
buscado, tienen unos alcances bastante bajos y unos pesos muy superiores
a nuestros Objetivos. Se ha introducido tambin un modelo usado en
robots ligeros (AL5D) que como se observa tiene unas propiedades
interesantes de ligereza, pero el alcance es extremadamente bajo.
Con este proyecto se conseguir dotar a cualquier robot mvil de una
capacidad manipuladora de alto poder de carga y largo alcance.

1.3 Objetivos
Las caractersticas que se han marcado para el brazo robtico son las
siguientes:

2 Kg de capacidad de carga (Payload) mximos.

1,5 metros de alcance.

Peso mximo del brazo sin carga inferior a 8 Kg.

5 grados de libertad.

El principal sacrificio que se har para lograr estos objetivos ser la


velocidad de movimiento, como se explicar ms adelante.
Por tanto el proyecto abarcar las siguientes fases principales:

Diseo del brazo robtico.

Fabricacin y construccin del brazo robtico.


- 10 -

Memoria - Introduccin

Programacin del driver del movimiento del brazo.

Desarrollo de una aplicacin demostrativa.

Redaccin del proyecto.

1.4 Metodologa
En esta seccin se proceder a explicar de forma breve y genrica cul es el
camino seguido para alcanzar los objetivos.
Inicialmente se realiza un proceso de documentacin sobre los aspectos
abarcados en el proyecto, tratando as de apoyarse en aquello que ya
existe y de no repetir lo que ya se ha hecho.
Una vez hecho esto se realiza un diseo inicial del brazo basndose en las
caractersticas deseadas, que dar una idea de la estructura genrica del
brazo. A partir de aqu se proceder a buscar en el mercado los elementos
constructivos ms adecuados. Se debern seleccionar los materiales
ptimos para la estructura, para los elementos de soporte, las
articulaciones y dems. Los movimientos del brazo se consiguen mediante
servomotores, por tanto tambin se buscan los ms adecuados en cuanto a
peso, par y velocidad.
Una vez obtenidos todos los materiales fundamentales se inicia la
construccin del brazo. Muchas piezas son diseadas especficamente para
este brazo por lo que se deben fabricar. Esto se hace en un taller, usando
maquinas-herramienta convencionales.
Una vez construido un primer modelo del brazo se procede a probarlo.
Para ello se empieza con la programacin. Es en este punto donde aparece
otro elemento importante del brazo, la tarjeta electrnica de control. sta
es la denominada TCS-2. Inicialmente se programa una serie de funciones
de movimiento bsicas para probar la construccin del brazo y verificar
que es capaz de alcanzar las especificaciones fijadas. La aparicin de
- 11 -

Memoria - Introduccin
problemas lleva a realizar un repaso del diseo y a reconstruir lo
necesario.
Despus de realizar todas las pruebas pertinentes, se tiene el brazo ya
construido y capaz de satisfacer las especificaciones. Es entonces cuando
se procede a la programacin del driver C++ para el movimiento del
brazo, que permita a cualquier usuario sin conocimientos especficos
manejarlo.
Por ltimo, se desarrolla algn tipo de aplicacin demostrativa que
permita mostrar las capacidades del brazo robtico y se procede a la
redaccin de la documentacin.

1.5 Recursos
El diseo del brazo robtico se realiz con la ayuda de la herramienta de
diseo 3D asistido por ordenador Solid Edge V19.
La fabricacin de todos aquellos componentes del brazo, diseados
nicamente para ste y que por tanto no se pudieron encontrar en el
mercado, se hizo en un taller de matricera utilizando fundamentalmente
fresa vertical, torno y electroerosin.
El resto de componentes estndar, del tipo servos, barras, rodamientos
se adquirieron en tiendas especializadas.
Para el control del brazo se utiliza la tarjeta de control TCS-2, desarrollada
previamente en el IIT - Instituto de Investigacin Tecnolgica. Se trata de
una plataforma electrnica para el control de robots mviles que es capaz
de mantener una comunicacin con PDA u ordenador a travs de puerto
serie (protocolo RS-232)
sensores

analgicos,

o por radiofrecuencia. Permite el control de

ultrasonidos,

digitales,

encoders,

motores

servomecanismos.

- 12 -

Memoria - Introduccin
El desarrollo del driver C++ del movimiento del brazo se realiz
utilizando Microsoft Visual Studio 6 y tambin, su actualizacin Microsoft
Visual Studio 2008.
La bsqueda de informacin acerca de otros brazos robticos similares a
ste, ya desarrollados, se realiz a travs de internet y contactando con
fabricantes. Esta bsqueda aport una idea de cmo orientar el diseo del
brazo.

- 13 -

Memoria - Mecnica del brazo robtico

2
Mecnica del brazo robtico

- 14 -

Memoria - Mecnica del brazo robtico

Captulo 2

MECNICA DEL BRAZO


ROBTICO

Este captulo pretende explicar todos los elementos mecnicos de los


cuales se compone el brazo. Se estudiarn profundamente el diseo y las
etapas de construccin del brazo robtico, la evolucin que se ha seguido,
los cambios de diseo y todo aquello que guarde relacin con la
componente mecnica del proyecto.

2.1 Diseo del brazo robtico


2.1.1 Conceptos generales
Un brazo robtico est compuesto por una serie de eslabones unidos
mediante articulaciones. Estas articulaciones permiten el movimiento
relativo entre los distintos tramos del brazo [6].
A cada tipo de articulacin le corresponden unos determinados grados de
libertad. En robtica se denomina grado de libertad a cada uno de los
movimientos independientes que puede realizar una articulacin respecto
a la anterior.
Las articulaciones se clasifican en los seis grupos siguientes:

Rotacin

1 GDL

Prismtica

1 GDL

Tornillo

1 GDL

Cilndrica

2 GDL

Planar

2 GDL

Esfrica o rtula

3 GDL

En la Figura 6 se pueden ver los seis tipos de articulaciones existentes y los


grados de libertad que corresponden a cada una de ellas.
- 15 -

Memoria - Mecnica del brazo robtico

Figura 6: Clasificacin articulaciones

Una vez vistos los tipos de articulaciones que se pueden seleccionar, se


deben analizar los posibles diseos genricos del brazo. Existen
fundamentalmente 5 clases de brazos robticos, en funcin del tipo y
reparto de articulaciones que tengan. Estos pueden ser vistos en la Figura
7.

Entre estos posibles diseos de brazo se decidi elegir el de tipo angular o


antropomrfico. Esto fue as debido, fundamentalmente, a que en los otros
modelos, como puede verse en la Figura 7, abundan los movimientos
lineales, que, en principio se previeron bastante ms complicados de
desarrollar que los movimientos de giro. La razn de ello es que los
movimientos de giro, como se ver ms adelante en el apartado 3.1, son
ms fciles de conseguir mediante el uso de servos (es sencillo controlar el
ngulo en que se encuentra situado). En cambio, los movimientos lineales
se tendran que haber conseguido con motores elctricos y cremalleras (o
algn sistema parecido) y mediante encoders y finales de carrera controlar
su posicin.
- 16 -

Memoria - Mecnica del brazo robtico


Pues bien, adems de que esto ltimo resulta ms complicado de
construir, tambin se previ que dara peores resultados, principalmente
en cuanto a la precisin de movimientos, ya que los encoders
mencionados ofrecen menor precisin que los potencimetros que
controlan el giro de los servos.

Figura 7: Clasificacin brazos robticos

Adems, como se puede observar en la Figura 7, los tres primeros modelos


de brazo (cartesiano, cilndrico y polar) ofrecen grandes limitaciones en
cuanto a alcance dentro del rango de accin, lo que se refiere a que si
atendemos a las especificaciones fijadas para el brazo, vistas en Objetivos,
esos tres modelos realmente no podran acceder con la mano a cualquier
punto dentro de una esfera de radio 1,5 m. Esto es fundamentalmente
debido a su falta de articulacin intermedia, es decir, a la ausencia de
codo.
Por otra parte, el hecho de que logren su alcance a base de movimientos
lineales, es decir que el brazo sea telescpico, hace que realmente sea
- 17 -

Memoria - Mecnica del brazo robtico


imposible que la mano pueda llegar al lmite de alcance y tambin al
origen de coordenadas.
Esos modelos de brazo robtico s pueden ser tiles para determinados
mbitos industriales donde los movimientos buscados puedan ser ms
limitados, pero no para un brazo de uso genrico como el que se pretende
desarrollar.
Esto nos deja con los dos ltimos tipos (SCARA y angular o
antropomrfico). El modelo SCARA resulta bastante interesante, pero de
nuevo la presencia de movimientos lineales adems del hecho de que el
espacio que ocupa estando recogido es mayor, hizo que el diseo final se
decantara por el estilo angular o antropomrfico.
La confirmacin de que la eleccin es buena se puede encontrar en el
hecho de que todos los modelos de brazo robtico de uso genrico siguen
este tipo de arquitectura (ver por ejemplo la Tabla 3).

Una vez confirmado el tipo de brazo, se debe seleccionar el tipo de


articulacin. Las articulaciones que se han usado en este proyecto son
todas de tipo rotacin (ver Figura 6). La razn de la eleccin de esta
articulacin y no otra es que se ajusta adecuadamente a nuestra
arquitectura de brazo y que se puede implementar sin demasiadas
complicaciones mediante el uso de servomotores (se ver ms adelante en
el apartado 3.1).
Dentro del diseo del brazo se pueden distinguir dos partes
fundamentales: hombro y codo, que acumulan todos los grados de
libertad. En este punto es donde se debe ajustar otro parmetro
importante que es el de grados totales de libertad del brazo.
Despus de haber sido realizado un pequeo estudio se decidi que 5
grados de libertad resultaran suficientes. Esta decisin se basa en que con
esa cantidad de GDL, usndolos en una arquitectura de tipo angular o
antropomrfica, se pueden alcanzar todos los puntos del interior de una
- 18 -

Memoria - Mecnica del brazo robtico


esfera de 1,5 m de radio (ms adelante se ver cmo debido a limitaciones
de los servos, el brazo realmente no puede alcanzar todos los puntos).
Estos 5 GDL estarn repartidos de la siguiente forma:

Hombro:

3 GDL

Codo:

2 GDL

Figura 8: Esquema articulaciones brazo

Adems, al aadir la mano al brazo, se obtendrn uno o dos grados de


libertad ms (en funcin del diseo), aunque esto no entrar dentro de los
lmites de este proyecto.
En la Figura 8 se puede apreciar un esquema con las cinco articulaciones
presentes en el brazo.

Figura 9: Ejes de giro sobre modelo del brazo robtico en 3D

- 19 -

Memoria - Mecnica del brazo robtico


En la Figura 9 se muestra un diseo del brazo en 3D realizado con Solid
Edge (ms adelante se vern estos diseos en mayor profundidad), en el
que se han sealado los ejes de giro, lo que permite hacerse una idea clara
de la distribucin de las articulaciones.

Se explicar brevemente lo que aporta cada uno de estos ejes:

1er Eje: Giro del brazo respecto eje i.

Figura 10: Rotacin 1er Eje

2 Eje: Giro del brazo respecto eje k.

Figura 11: Rotacin 2 Eje

- 20 -

Memoria - Mecnica del brazo robtico

3er Eje: Rotacin 1 barra sobre s misma.

4 Eje: Rotacin codo respecto su eje k. La figura es equivalente a la


Figura 11.

5 Eje: Rotacin 2 barra sobre s misma.

2.1.2 Barras
Se comentarn aqu las caractersticas bsicas de las barras del brazo,
elementos fundamentales pues sostendrn el aparato y le proporcionarn
rigidez.
Para poder realizar un diseo de las dimensiones requeridas por las barras
es necesario conocer los pares y esfuerzos mximos a los que stas sern
sometidas.

Figura 12: Par necesario hombro

En la Figura 12 se observa un esquema muy bsico que permitir calcular


el par de pico necesario. Se dice de pico porque sta es la situacin ms
exigente para el brazo ya que est totalmente estirado y soportando su
carga mxima. As:

= = 2 9.81 1.5 = 29.43 ~ 30


E 1: Clculo par de pico

La E 1 muestra este clculo. Se debe indicar que ms tarde en 2.1.5


(Distribucin general de pesos) se utilizar un valor algo mayor de par de
pico ya que en este esquema slo se representan las fuerzas bsicas, pero
- 21 -

Memoria - Mecnica del brazo robtico


se debe tener en cuenta que aparecern muchas otras componentes como
peso de las barras, del codo, prdidas de par en articulaciones, etc.
Teniendo esto en cuenta se calculan las dimensiones necesarias de barra.
El tipo de barra a utilizar ser barra cilndrica hueca como la de la Figura
13. La razn por la que se usa barra hueca es por ahorro de peso. Se
obtienen radios de barra mayor, pero el peso de la barra necesaria resulta
muy inferior al peso de barra necesario si esta se calcula maciza. Ello es as
porque las zonas de la seccin que realmente soportan los esfuerzos son
las ms alejadas del eje, es decir, tener masa cerca del eje prcticamente no
aporta resistencia, lo que se puede comprobar en la E 2 y la E 3.

Figura 13: Perfil barra

Para el clculo de la distribucin de pares se estudiar el brazo cuando


est totalmente estirado y con la carga mxima, como si de una viga en
voladizo se tratara. (Para el clculo se considerar como una nica barra,
sin la articulacin intermedia). En la Figura 14 se muestra el reparto del
momento flector en funcin de la posicin. Lgicamente la zona que ms
sufre de la barra es el apoyo (soporta el par de pico).

- 22 -

Memoria - Mecnica del brazo robtico

Figura 14: Momento flector segn longitud

Por otra parte, dentro de cada seccin, los puntos que ms sufrirn son los
que se encuentran ms alejados de la lnea de accin del momento flector.

Figura 15: Momento flector por seccin barra

Se comprueba en la Figura 15 y en la Figura 16 que efectivamente los


puntos extremos de la seccin en el eje y soportan las mximas tensiones
internas, estando toda la zona de y positiva sometida a traccin y la de y
negativa a compresin.

Figura 16: Reparto de tensiones internas por seccin de barra

- 23 -

Memoria - Mecnica del brazo robtico


La E 2 muestra la expresin a partir de la cual se calcularn las
dimensiones de la barra.
=

E 2: Expresin Tensin mxima

Como momento de inercia respecto del eje z se pondr el valor mostrado


en la E 3, que se halla por superposicin de los momentos de inercia de las
dos secciones circulares.
=

1
1
1
4 4 = ( 4 4 )
4
4
4
E 3: Momento de Inercia respecto eje Z

Se tomar como valor mximo de tensin (tensin admisible) la tensin de


lmite elstico del aluminio, material del que estarn compuestas las
barras. Por ltimo, tomaremos como valor de Mf mx. un dato superior al
calculado anteriormente, en la seccin 2.1.3 Reductora se ver la razn.
= = 150 106 =

45
=

4
4
( )
4

E 4: Clculo dimensiones barra

Esta ecuacin tiene infinitas soluciones, segn se fijen un valor de radio


exterior se obtendr el correspondiente valor de radio interior necesario.
En la Tabla 4 se muestran algunos valores apropiados teniendo en cuenta
las dimensiones del brazo.
R [mm]

10

r[mm]

5.67

7.47

8.86

Tabla 4: Posibles valores para radios barra

Hay que tener en cuenta que stos son valores lmites, ya que en las
condiciones de carga mxima llevaran a la barra, en la zona del apoyo del
hombro, a su lmite elstico. Dado que eso no es algo recomendable, a
- 24 -

Memoria - Mecnica del brazo robtico


partir de estos valores se deber introducir un coeficiente de seguridad en
lo que al espesor de la barra se refiere, para tener la seguridad de que la
barra nunca se encontrar cerca de su lmite elstico.
Un parmetro muy importante en la resistencia de materiales es el
llamado momento resistente (W).
=


45 []
=
= 0.33
lim .elast . 150 106 []

E 5: Expresin momento resistente

En E 5 se muestra el valor del momento resistente mnimo. Cualquier


barra que se decida utilizar deber tener un momento resistente superior
para as asegurar que en la peor condicin nunca superar el lmite
elstico.
La barra finalmente adquirida tiene las siguientes caractersticas:
= 25.4 ; =10 swg=3.25
Es decir:
1
( 4 4 )
4
= 12.7 ; = 9.45 =
= 1.113

Por tanto posee un momento resistente suficientemente elevado.


Lo ltimo que se comprob fue la flecha mxima producida. Para su
clculo, de nuevo se hizo la simplificacin de viga en voladizo de 1,5
metros.
=

3
30 1.53
=
= 3.4
3 3 70 109 1.416 108
E 6: Clculo de flecha

En E 6 se obtiene una flecha en 1,5 metros de 3.4 cm, un valor que se


decidi admisible. En el clculo, como ya se hizo anteriormente, se
introdujo un valor de carga (P=fuerza aplicada en el extremo) superior al
mximo para tener en cuenta el peso de las barras, codo etc. Adems E
representa el mdulo de elasticidad (o Young) del aluminio (70 GPa).
Estas expresiones de flechas y momentos flectores se encuentran en [7].
- 25 -

Memoria - Mecnica del brazo robtico


Mnimo

Barras

requerido

instaladas

ext.

20 mm

25,4 mm

Espesor

1,2 mm

3.25 mm

Barra

Tabla 5: Valores requeridos e instalados de las barras

En la Tabla 5 se indica, a modo de resumen, los valores requeridos e


instalados para las barras. La diferencia de valores se debe a que, como ya
se ha indicado, los valores que aparecen como requeridos, son los valores
lmite, es decir, con esos valores, en condiciones extremas se llegara al
lmite de elasticidad. Dado que eso no es algo que se desee, los valores
utilizados dejan un margen de seguridad importante, y como se ve en la
pgina anterior, ofrecen un momento resistente claramente superior al
lmite inferior. De todos modos con estos valores de barra instalados, el
peso de estas (como se ve en Parte I2.2.1 Barras) no es excesivo.

2.1.3 Reductora
Como se ha comentado anteriormente, los servomotores que se usan en
este dispositivo son de alto rendimiento, esto es, servos que dan un alto
par si se relaciona con su tamao y peso. Todas las caractersticas exactas
se encuentran en la Parte VII, pero los valores que interesan en este
momento son:
Tensin Alimentacin [V]

6.0

7.4

Par nominal [Nm]

2.35

2.94

Par pico [Nm]

3.06

3.82

Tabla 6: Valores de par de los servos

Teniendo en cuenta los datos de la Tabla 6 y comparando con el valor de


par de pico obtenido en E 1 se hace evidente el tener que usar una
reductora a travs de la cual conseguir un aumento de par en el eje de
- 26 -

Memoria - Mecnica del brazo robtico


giro, con la correspondiente prdida de velocidad angular. Cabe
preguntarse por qu no usar servos que proporcionen valor de par
suficiente. La respuesta se ver en el apartado 3.1, pero bsicamente la
razn es el peso. Aquellos servos que generan pares que estn cerca de los
30 o 40 Nm, tienen un peso superior a varios Kg. Lgicamente no se puede
usar servos tan pesados ya que si se instalase una masa as en el codo, por
ejemplo, el mero movimiento de este sin ninguna carga ya exigira
tremendos pares. Y adems, el peso global del brazo se disparara.
Una vez decidida la necesidad de implantacin de una reductora, se
procede a disear sus caractersticas.
Se usa una nica pareja de engranajes (corona y pin). Podran haberse
usado sistema de reduccin ms complejos con varios engranajes que
quizs ocupasen menos espacio, pero su complejidad constructiva es
mucho mayor y se decidi que no mereca la pena pues el tamao del
brazo no est especialmente restringido.
Primero hay que obtener los pares necesarios en cada una de las
articulaciones. De los cinco ejes de giro que posee el brazo, slo tres de
ellos requieren un aumento de par.

Figura 17: Modelo 3D brazo

- 27 -

Memoria - Mecnica del brazo robtico


Los ejes de giro en los que se requiere reductora son, como se aprecia en la
Figura 17, el 1er eje del hombro, el 2 del hombro y el 1 del codo. Los otros
dos ejes no la necesitan porque sobre ellos, tericamente, no aparece
ningn par. Esto es as porque la lnea de accin del peso de la carga, y del
resto del brazo, cortar a esos dos ejes y por tanto no generar momento
sobre ellos. Esto siempre ocurre con el ltimo eje (2 servo del codo), pero
con el 3er eje del hombro en realidad no tiene porqu ocurrir. Lo que se
har es exigir en la programacin que esa condicin se cumpla y de esta
forma se evita la necesidad de usar engranajes en ese eje.

Los valores de par requeridos en cada uno de los tres ejes cargados (en
las peores condiciones) son:

= 2 9.81 1.5 = 29.43


Figura 18: Par mximo 1er eje hombro

= 2 9.81 0.75 = 14.71


Figura 19: Par mximo 2 eje hombro

- 28 -

Memoria - Mecnica del brazo robtico

= 2 9.81 0.75 = 14.71


Figura 20: Par mximo 1er eje codo

Con estos valores ya se podrn calcular las reducciones que se necesitan.

Figura 21: Corona y pin acoplados

Para el 1er Servo:


1 1 = 2 2
2 2 2
30
=

=
= 7.8
1 1 1 3.82
E 7: Clculo relacin transformacin 1er eje hombro

Donde N representa el nmero de dientes de cada engranaje. Para el


clculo se ha utilizado el par de pico, porque se supone que esa posicin
(ver Figura 18) se tratar de evitar (mediante la programacin) y por tanto
- 29 -

Memoria - Mecnica del brazo robtico


el brazo estar en ella durante muy poco tiempo. As el par de pico podra
mantenerse durante ese corto perodo.
El pin que se utiliza en el brazo posee 17 dientes. Se escogi este valor
porque es el valor ms bajo encontrado en piones de mdulo 1. El
mdulo viene definido de la siguiente forma:
=

Para que dos engranajes puedan acoplarse es preciso que ambos posean el
mismo mdulo. Por otra parte los mdulos recomendados en la norma
ISO 54-77 son: 1; 1.25; 2; 2.5; 3; 4; 5; 6; 8; 10; 12; 16; 20 y 25mm.
Aqu se usar el valor ms bajo posible, 1, para as conseguir el pin de
menor nmero de dientes.
Sabiendo ese valor el tamao de la corona para el 1er eje ser:
2 = 7.8 17
E 8: Tamao corona 1er eje

Para el 2 Servo:
2 2 2
15
=

=
= 3.92
1 1 1 3.82
2 = 3.92 17
E 9: Relacin de transformacin y tamao corona 2 eje

Para el 4 Servo:
2 2 2
15
=

=
= 3.92
1 1 1 3.82
2 = 3.92 17
E 10: Relacin de transformacin y tamao corona 4 eje

Una recomendacin que aparece en gran cantidad de literatura


relacionada con el tema es evitar usar piones y coronas cuyos nmeros
de dientes sean mltiplo. Se indica esto porque est comprobado que si
eso ocurre el sistema resulta ms ruidoso y los engranajes se desgastan
ms rpidamente.
- 30 -

Memoria - Mecnica del brazo robtico

Una vez calculados los tamaos requeridos para los engranajes se procede
a estudiar de qu materiales pueden estar compuestos. Para ello se realiza
un estudio de los esfuerzos que aparecen sobre los dientes de los
engranajes, tanto en situacin esttica como en movimiento. Estos clculos
proporcionan valores de tensin que el material que componga los
engranajes deber soportar. El desarrollo completo del procedimiento de
clculo se puede encontrar en [8].

Corona grande:

Esfuerzos estticos:
Ft = Fuerza tangencial sobre el diente

Y = Coeficiente de Lewis
b = Ancho del engranaje
m = Mdulo

E 11: Ecuacin esfuerzos estticos sobre engranaje

En la Figura 22 se pueden ver las fuerzas que aparecen sobre un diente del
engranaje.
Para estos clculos se supondr un engranaje de 132 dientes, ancho 15mm
y adems se usarn valores de par mximo transmitido superiores a los
que en principio aparecern. Esto ltimo se hace por una cuestin de
seguridad y porque en el clculo de esos pares se ignoraron bastantes
componentes de peso que en realidad s aparecern.

- 31 -

Memoria - Mecnica del brazo robtico

Figura 22: Fuerzas sobre diente engranaje

= 15; = = 132 ; = 1
=

45
= 681.81
132
3

10
2

E 12: Fuerza tangencial sobre diente corona

Como se aprecia en la E 12 el valor del dimetro de paso coincide con el


nmero de dientes. El valor de la fuerza tangencial se halla de forma
directa a partir del par sobre la corona. Por otro lado el valor de coeficiente
de Lewis (Y) que se utilizar se obtiene a partir de tablas en funcin del
nmero de dientes, del ancho del engranaje, etc. Estas tablas se pueden
encontrar en [9]. Para esta corona 0.5
Con todo esto:
=

1
681.81 1
=

= 90.9
0.015 1 0.5

E 13: Tensin sobre corona grande por esfuerzos estticos

Esfuerzos dinmicos:

La expresin es muy parecida pero se introduce un coeficiente adicional.


=

50

=
;

50 +
E 14: Ecuacin esfuerzos dinmicos sobre engranaje

- 32 -

Memoria - Mecnica del brazo robtico


2
1
= 7.8 =
1
2
El servo, como se ve en la Parte VII tiene la siguiente w:
1 2

2 =
0.23
= 6.9

7.8

= = 66 0.2
= = 1.38
=

50
50 +

= 0.977

E 15: Clculo del coeficiente Kv

De esta forma se obtiene:


=

681.81
=
= 93.05
0.015 1 0.5 0.977
E 16: Tensin sobre corona grande por esfuerzos dinmicos

Para los otros engranajes (mediano y pequeo) los clculos se mostrarn


de forma reducida.

Corona mediana (67dientes, ancho 15mm, Y=0.5)

Esfuerzos estticos:
=

25
= 746.26
67
3
2 10

1
746.26 1
=

= 99.5
0.015 1 0.5

E 17: Tensin sobre corona mediana por esfuerzos estticos

Esfuerzos dinmicos:
=
=

50
50 + 1.614

= 0.975

746.26
=
= 102.05
0.015 1 0.5 0.975
E 18: Tensin sobre corona mediana por esfuerzos dinmicos

- 33 -

Memoria - Mecnica del brazo robtico

Pin (17 dientes, ancho 10mm , Y=0.3)

Esfuerzos estticos:
=

5
17
3
2 10

= 588.23

1 588.23 1
=

= 196.07
0.01 1 0.3

E 19: Tensin sobre pin por esfuerzos estticos

Esfuerzos dinmicos:
=
=

50
50 + 1.606

= 0.975

588.23
=
= 201.1
0.01 1 0.3 0.975
E 20: Tensin sobre pin por esfuerzos dinmicos

De esta forma estn completos los clculos de la resistencia necesaria para


los engranajes. Conociendo esos valores hay que decidir que material se
utiliza. Se barajaron varias posibilidades entre distintos metales y
compuestos plsticos. Finalmente la decisin fue el Nylon 6,6. Este tiene
las siguientes caractersticas de resistencia:
= 130 200
= 100 160
Si se comparan estas propiedades con los valores obtenidos en los clculos
E 13 a E 20 se comprueba que los engranajes en Nylon 6,6 sern
sobradamente resistentes. Adems, usando este material se consigue un
gran ahorro de peso comparado con materiales metlicos, como se
comprueba en E 21.

6,6

1.4

2.7
;

7.8

3
3
3

E 21: Comparacin densidades Nylon 6,6 , Aluminio y Acero

- 34 -

Memoria - Mecnica del brazo robtico


Una vez completado el estudio, los engranajes que finalmente se
montaron en el brazo robtico fueron los mostrados en la Tabla 7, todos
ellos fabricados en Nylon 6,6.

Corona Grande

Corona Mediana

Pin

Requerido

132

67

17

Instalado

130

84

17

Tabla 7: Valores requeridos e instalados para los engranajes

2.1.4 Eje articulaciones


En este apartado se van a estudiar las caractersticas que debe tener el eje
de las articulaciones. Es decir el eje sobre el que van instaladas las coronas
mencionadas en el anterior apartado y que soportar la carga del brazo.
En el mecanismo aparecern tres ejes como ste. Uno en cada una de las
articulaciones en las que se realiza transformacin de movimiento.
En la Figura 23 se observan los dos primeros ejes en el diseo 3D
realizado.

Figura 23: Representacin en 3D del eje de las dos primeras articulaciones

- 35 -

Memoria - Mecnica del brazo robtico


A continuacin se proceder a mostrar los clculos realizados para el
diseo de esos ejes.
En la Figura 24 se dibuja un esquema de la estructura sobre la que se
monta el eje. Si se compara con la Figura 23 se comprenden cuales son
cada uno de los componentes.
Eje
F
C

d= 5 cm

45 Nm

Rodamiento
Figura 24: Esquema esfuerzos que genera el par sobre el eje

Como se aprecia en la Figura 24 se va a utilizar, como ya se comento


anteriormente, un valor de par de pico superior al terico inicial. La razn
de esto se ver en 2.1.5 (Distribucin general de pesos). Este par genera
sobre el eje dos fuerzas, una en cada uno de los puntos en los que la
estructura (pieza en forma de C) se cuelga del eje. El valor de estas
fuerzas se obtiene en E 22.
=

45
=
= 1800

2.5
2

E 22: Fuerza aplicada sobre eje

Estas fuerzas darn lugar a la aparicin de reacciones de los rodamientos


sobre el eje. As se puede desarrollar la Figura 25 que es un grfico con
todos los esfuerzos aplicados sobre el eje.

- 36 -

Memoria - Mecnica del brazo robtico

d1
R= F
M=F*d1
M=F*d1
R= F

Figura 25: Diagrama de cuerpo libre del eje (total de esfuerzos a los que est sometido)

De este diagrama se pueden extraer varias conclusiones. La primera es


que en la zona entre rodamientos el eje no sufre solicitacin alguna, es
decir, no est sometido ni a esfuerzo cortante ni a ningn tipo de
momento. Esto se comprueba en la Figura 26 donde se ha realizado un
corte en esa zona, dejando que aparezcan los esfuerzos internos del eje.
Como se comprueba en E 23 estos son nulos.

F
d1
R= F

M=F*d1
x

Q
M=F*d1

R= F

M=F*d1
R= F

x
d1

Figura 26: Esfuerzos internos en eje en la zona entre rodamientos

= =0
- 37 -

Memoria - Mecnica del brazo robtico


= 1 + 1 = 0
E 23: Clculo esfuerzos internos en el eje en la zona entre rodamientos

La segunda conclusin que se extrae de la Figura 25 es que la nica zona


en la que el eje est sometido a carga es entre el rodamiento y el punto de
aplicacin de la fuerza por parte de la estructura (Pieza en C).
As el diagrama de esfuerzos internos para el eje ser el mostrado en la
Figura 27.

Mf

Mf

Figura 27: Esfuerzos internos sobre el eje

La Figura 28 muestra las solicitaciones en la zona cargada.

- 38 -

Memoria - Mecnica del brazo robtico

d1

R= F

M=F*d1
M=F*d1
R= F
F

Figura 28: Esfuerzos internos sobre la zona entre rodamiento y carga

=
= = 1 = 1800 0.7 = 12.6
E 24: Esfuerzos internos mximos en la zona entre rodamiento y carga

En E 24 se calculan los valores mximos de estos esfuerzos internos.


Se ha utilizado un valor mximo de d1 (distancia entre rodamiento y
punto de unin eje-Pieza en C) de 0.7 cm. El valor de momento flector
mximo que se obtiene en E 24 ser el que se utilizar para dimensionar el
eje.

Mf mx

Y
Z
X

Figura 29: Puntos con tensin interna mxima en la seccin del eje

- 39 -

Memoria - Mecnica del brazo robtico


=

=
=

4
260 106 =

12.6
1
3
4

= 3.951

E 25: Clculo radio del eje de acero

En la Figura 29 se muestra la seccin del eje que est sufriendo el mximo


momento flector. Como ya ocurra con las barras, los puntos de la seccin
que estn ms cargados son los que se encuentran ms lejos de la lnea de
accin del momento. En E 25 se calcula finalmente el radio del eje de las
articulaciones. ste se ha calculado en acero. Esto es as porque al tener el
acero una tensin mxima admisible (lmite elstico) bastante mayor que
la del aluminio (casi el doble) el radio del eje queda bastante ms pequeo.
Adems como el mdulo de elasticidad E (o mdulo de Young) del acero
tambin es mucho mayor (en este caso el triple) la deformacin que sufrir
el eje ser mucho menor que si se montase en aluminio.
El eje finalmente montado en el brazo se indica en la Tabla 8.

Eje Acero

Requerido

Instalado

3,95 mm

4 mm

Tabla 8: Valores requerido e instalado para el eje de las articulaciones

2.1.5 Distribucin general de pesos


Como ltimo apartado en esta seccin de diseo, se va a incluir un breve
estudio, realizado antes de la construccin, sobre el reparto de pesos en el
brazo. De esta forma se consiguen obtener valores ms reales de pares y
esfuerzos sobre los distintos elementos del brazo.

- 40 -

Memoria - Mecnica del brazo robtico

Barras:
= 12.7 ; = 9.45 ; = 0.6 ; = 2.7

= = 2 2 = 1.272 0.9452 55 = 124.38 3


= = 2.7 124.38 = 335.84
E 26: Clculo masa barra

Para el clculo del peso en E 26 se ha utilizado una longitud de barras de


55 cm, no de 75 cm. Esto es debido a que efectivamente no se usan dos
barras de 75 cm para alcanzar los 1,5 metros de especificacin, ya que el
propio hombro y codo tambin aportan longitud. El peso de las barras no
es demasiado alto, pero finalmente se conseguir que sea an menor,
como se ver en 2.2.1, ajustando la longitud y forma de la barra.

Servos:
= 70

Soportes:
50
40
50
40
30
30
90

Algunas de estas piezas comentadas no han sido explicadas todava, pero


en el apartado 2.2 se vern sus funciones.
Con estos datos se calcula el peso aproximado del brazo en E 27.

- 41 -

Memoria - Mecnica del brazo robtico


= 2 + 5 +
= 2 335.84 + 5 70 + 5 50 + 3 40 + 3 50 + 3 40 + 3 30
+ 2 30 + 90 = 1901.7
E 27: Masa total aproximada de diseo del brazo

El peso real ser lgicamente algo superior ya que en esta aproximacin


no se han introducido muchas pequeas piezas y detalles que se aadirn
durante la construccin. Pero sabiendo que todas las grandes piezas estn
aqu introducidas y que las que faltan son pequeas y de materiales
ligeros, se puede hacer la aproximacin de que el peso final del brazo no
superar los 3 Kg.
A continuacin se estudia cmo se distribuyen estos pesos en el brazo. En
la Figura 30 se representa un esquema de los distintos pesos presentes y
sus posiciones.
(Barra)

(Barra)

6 N/m

6 N/m

55 cm

55 cm

M
10 cm

6N

4N

(Hombro)

(Codo)

2N

20 N

(Mano)

(Carga)

Figura 30: Distribucin de pesos en el brazo

La carga por unidad de longitud de la barra se calcula en E 28.


= 335.84 55 = 610.6 1
= 610.6 9.81 6 1 6 /
E 28: Peso barra por unidad de longitud

El peso del codo se halla en E 29. Se obtiene como suma de los distintos
componentes (servos, soportes y unos extras de unos 100 g por todas las
pequeas piezas adicionales).

- 42 -

Memoria - Mecnica del brazo robtico


70 + 40 + 40 + 50 + 30 + 30 + 40 + "" 400 4
E 29: Peso del codo

Se podra pensar en no introducir el peso del hombro. Se est hallando el


par mximo respecto de la articulacin 1 del hombro, por lo que se podra
suponer que el peso del propio hombro no genera par respecto a ese punto
de giro. Pero eso supondra despreciar la longitud del hombro, y sta no es
despreciable (son unos 20 cm) as que se considerar el peso del hombro
concentrado a 10 cm del punto de giro. El clculo se presenta en E 30.
2 70 + 2 40 + 40 + 2 50 + 2 30 + 30 + 2 40 + ""
600 6
E 30: Peso del hombro

Por ltimo se halla el peso aproximado de la mano. Aunque el desarrollo


de esta es algo que no entrar dentro de los lmites de este proyecto, hay
que tener en cuenta su futura presencia a la hora de dimensionar los
distintos elementos del brazo.
70 + 40 + 50 + 50 200 2
E 31: Peso de la mano

Usando todos estos valores y el sistema de esfuerzos representado en la


Figura 30, en E 32 se obtiene el par mximo sobre el giro en el hombro en
la peor situacin.
= 20 1.5 + 6 0.55

0.55
0.55
+ 6 0.55 0.75 +
+ 4 0.7 + 6 0.1
2
2

+ 2 1.5 41
E 32: Par mximo sobre hombro

Para dimensionar los elementos finalmente se tomar como dato


M=45Nm, ya que durante la construccin se irn aadiendo piezas
adicionales, refuerzos y dems que incrementarn los distintos pesos.
Adems as se logra un cierto margen de seguridad.

- 43 -

Memoria - Mecnica del brazo robtico


En la Tabla 9 se indica, a modo de resumen, los valores de los elementos
bsicos del brazo requeridos e instalados finalmente. Las diferencias que
se encuentran en algunos de los valores ya se han explicado en los
apartados anteriores de esta seccin de diseo.

Mnimo requerido

Instalado

Barras

20 mm

25,4 mm

Espesor Barras

1,2 mm

3.25 mm

Corona Grande

132

130

Corona Mediana

67

84

Pin

17

17

Eje Acero

3,95 mm

4 mm

Masa Brazo

1,9 Kg

3 Kg

Tabla 9: Resumen de caractersticas requeridas e instaladas en el brazo

2.2 Construccin del brazo robtico

Habiendo comentado todo el proceso de diseo se proceder a la


explicacin del proceso constructivo del brazo robtico.

La Figura 31 es una imagen del brazo robtico completado sealando los


bloques bsicos. A partir de aqu se irn explicando los diferentes
elementos constructivos, su diseo y su proceso de fabricacin.

- 44 -

Memoria - Mecnica del brazo robtico

Figura 31: Brazo robtico completo

Los planos detallados de cada una de las piezas descritas a continuacin se


pueden encontrar en el Documento n 2, Planos.

2.2.1 Barras
En la seccin 2.1.2 ya se ha comentado con detalle las caractersticas de la
barra en cuanto a material, forma y tamao para soportar la carga.
Una vez que se inicio la construccin del brazo se decidi, a partir de los
datos de diseo realizar una serie de retoques a la barra con el fin de
optimizarla en lo que al peso se refiere.
Estos retoques sern dos: primero se limitar la longitud de la barra. sta
no ser los 75 cm que corresponderan para alcanzar los 1,5 m con dos
barras. La razn es que el hombro, el codo y la mano tambin aportan
longitud, y de hecho aportan mucha.
30
20
10
- 45 -

Memoria - Mecnica del brazo robtico


Con esto la distancia total que tienen que sumar las dos barras es de unos
90 100 cm. En principio se fabricaron de medio metro cada una, pero una
vez realizadas las primeras pruebas, comprobando la dificultad que tena
el brazo para moverse, se redujo su tamao optimizndolo al mximo.
Adems la longitud de ambas barras no debe ser la misma debido a la
influencia de hombro, codo y mano. La primera barra debe ser ms corta
para que as el centro de giro del codo est realmente en el punto medio
entre giro en el hombro y carga. De esta forma ser ms sencilla la
geometra de clculo de posiciones, como se ver en 4.3.2.

Por otra parte, ya se dijo en 2.1.2 y como se observaba en la Figura 14, el


punto ms cargado de la barra es la zona del apoyo. Es decir segn se va
avanzando en longitud desde dicho apoyo, la barra cada vez sufre
menores esfuerzos. Teniendo adems en cuenta que la barra se
dimension (en E 4) para esos valores mximos (que realmente slo sufre
el apoyo), se puede ir reduciendo el espesor de la barra segn se avanza
hacia el extremo final. De esta forma se le da a la barra cierta conicidad
con el objetivo de reducir su peso, sin correr ningn peligro en lo que a su
resistencia se refiere. De hecho, si se dejase la barra con forma cilndrica se
estara sobredimensionando, pues el tramo final tendra la misma seccin
que el inicial cuando apenas est sufriendo ningn esfuerzo (como se ve
claramente en la Figura 14).
Esta conicidad es generada en el taller de matricera mediante el uso de un
torno convencional, ayudndose del punto giratorio, eliminando material
por el exterior.
En el Documento n 2 Planos, se puede estudiar el plano de tallado de la
pieza.
Las caractersticas bsicas de las dos barras se encuentran en la Tabla 10.

- 46 -

Memoria - Mecnica del brazo robtico


Espesor

Espesor

Conicidad

Apoyo

Extremo

Exterior

36 cm

3.1 mm

2.25 mm

~0.1

45 cm

3.1 mm

2 mm

~0.11

Barra

Longitud

B1
B2

Tabla 10: Caractersticas barras brazo

Figura 32: Diseo 3D barra

En la Figura 32 se presenta el diseo en 3D de una de las barras.

2.2.2 Soporte Servos


Este elemento es el encargado de fijar el servo a la estructura del brazo,
dejando que su eje gire libremente, pero anclando totalmente su cuerpo.
Durante el desarrollo del brazo se probaron dos soportes distintos
buscando que estos aportaran la mayor estabilidad al servo.
El primer soporte probado fue un soporte estndar (llamado soporte
multifuncional), fabricado y vendido en tiendas especializadas, para este
tipo de servo.

- 47 -

Memoria - Mecnica del brazo robtico


Este soporte se llego a montar y se prob el funcionamiento del brazo
completo con l. En la Figura 33 se ve ese montaje. Los soportes son las
piezas negras que sostienen a los servos.

Figura 33: Brazo real con soporte multifuncional

El problema que ofrece este soporte es su baja rigidez. En la Figura 34 se


encuentra el diseo en 3D realizado para la simulacin del brazo
completo, detallando la zona de la pestaa en la que se ancla en servo.

Figura 34: Diseo 3D del soporte multifuncional para servos con detalle pestaa

Como se aprecia en esta Figura 34, esa pestaa tiene muy poco espesor y
slo tiene un apoyo. Esto hace que con esfuerzos no demasiado grandes se
- 48 -

Memoria - Mecnica del brazo robtico


doble y provoque inestabilidad en el movimiento del servo y
consecuentemente en todo el brazo. Es decir el gran problema es la flexin
de dicha pestaa, que es la que sostiene al servomotor.
Es por esto que se decide modificar el soporte. Se necesita algn tipo de
sistema que sujete totalmente al servo, es decir, que el soporte sea
absolutamente rgido. Al no encontrarse nada en el mercado que cumpla
lo requerido se decide fabricar el soporte.

Figura 35: Diseo 3D soporte final para servos

La Figura 35 muestra el diseo elegido. Como se ve es totalmente cerrado


por lo que el punto de apoyo de los servos no flexionar. El servo se
introduce por el orificio de la parte superior y se ancla con tornillos en los
agujeros. Los orificios que se aprecian en la pared lateral son para sujetar
este soporte al resto de la estructura, como se ver ms adelante. Esta
pieza est construida en aluminio y para su fabricacin se utiliz
fundamentalmente la fresa vertical, con la que se realizaron todos los
vaciados.
El soporte multifuncional, sin embargo, s se dej en el montaje final para
dos servos (los ltimos de hombro y codo) en los cuales, gracias a la
estructura en que se montan, no se producir flexin, como se ve ms
adelante en la Figura 46 y en 2.2.9.

- 49 -

Memoria - Mecnica del brazo robtico

2.2.3 Pieza en L
Es una pieza que se usa para sujetar el soporte de los servos. Se une a este
soporte a travs de los orificios vistos en la Figura 35. En este caso tambin
se utilizaron dos modelos distintos.

Figura 36: Pieza en "L" inicial

En la Figura 36 se encuentra el primer modelo que se us. El problema que


tiene esta pieza y que llev a su sustitucin es bsicamente el mismo que
tena el soporte multifuncional: su baja rigidez. Esta pieza es de aluminio y
tiene 2 mm de espesor, lo cual es insuficiente y hace que ante grandes
esfuerzos, se doble un poco por su esquina y provoque desplazamientos
en el brazo.
La pieza fue sustituida por otra de la misma forma (ver Figura 37), pero
ms grande y de mayor espesor, concretamente de 3,1 mm (es decir un
55% ms de grosor).

Figura 37: Diseo 3D de pieza en "L" finalmente utilizada

- 50 -

Memoria - Mecnica del brazo robtico


Esta pieza tambin es de aluminio y se fabric con la fresa vertical. Este
componente se ancla al soporte fabricado, formando un conjunto mucho
ms robusto y rgido que con los elementos originales, como se aprecia en
la Figura 38.

Figura 38: Comparacin bloque Soporte-L inicial y final

2.2.4 Estructura

de

sustentacin

del

eje

de

la

articulacin
Este nuevo elemento es el encargado de sustentar los rodamientos sobre
los que girar el eje de la articulacin y sobre los cuales liberar todo su
esfuerzo. Se trata de un bloque de aluminio, fabricado expresamente para
este fin mediante la fresa vertical. Su diseo se muestra en la Figura 39.

Figura 39: Estructura de soporte de los rodamientos del eje de las articulaciones

- 51 -

Memoria - Mecnica del brazo robtico


Una parte concreta de la fabricacin tiene una cierta complejidad, los
orificios para los rodamientos. La dificultad proviene del hecho de que
tienen que ser orificios de una extrema precisin para poder ajustar en
ellos los rodamientos. El ajuste debe ser el adecuado. Si es muy suave los
rodamientos se tendern a caer y a moverse. Si es demasiado fuerte se
bloquear parcialmente el giro de los rodamientos, introduciendo una
resistencia al giro, es decir, un par adicional que se deber vencer, para lo
cual se consumir potencia de giro del servo, restndosela al brazo.
El valor de ajuste para el rodamiento se obtendr en [10]. Segn la
clasificacin de esta referencia, esta situacin se considera de cargas
dbiles, y el ajuste (teniendo en cuenta que el rbol o eje es giratorio) debe
ser:

- h5 para el eje donde va alojado el aro interior.


- H6 para el agujero donde se aloja el aro exterior

Con este ajuste, a partir de las tablas de tolerancias, se obtienen las


dimensiones necesarias para eje y agujero que se muestran en la Tabla 11.

Mximo

Mnimo

Eje

8+0

86

Agujero soporte

22+13

22+0

Tabla 11: Dimensiones de ajuste de Eje y Orificio rodamiento

- 52 -

Memoria - Mecnica del brazo robtico

Figura 40: Soporte de sujecin rodamientos. Ejes 1 y 2 (izda. y dcha.)

El mtodo de fabricacin de esos orificios de ese tamao tan especfico fue


mediante el uso del mandrino en la fresa vertical. Este aparato permite
hacer agujeros de grandes dimensiones con precisin de micras.
En la Figura 40 se puede observar esta pieza de sujecin de los
rodamientos de los ejes. En este caso se aprecia el 1er eje a la izquierda y el
2 a la derecha de la imagen. A partir de ah, se debe unir esta pieza a la
estructura a travs de los dos taladros que se aprecian en el lateral.

2.2.5 Placa de Apoyo


Se trata de una placa que, en cada articulacin, sirve de enlace entre el
soporte del servo y el soporte del eje de la corona (pieza anteriormente
comentada).
Es una pieza en aluminio de unos 5 mm de espesor. Su gran grosor
comparado con el de otras piezas se debe a que esta pieza aporta buena
parte de la estabilidad del conjunto al ser uno de los elementos de apoyo
ms importantes.

- 53 -

Memoria - Mecnica del brazo robtico

Figura 41: Diseo 3D Placa Apoyo

La Figura 41 muestra el modelo en 3D de la placa de apoyo. En ella se


indica dnde se unen cada uno de los elementos que se conectan a la
placa. Como se observa en este elemento tambin se conecta el apoyo para
el potencimetro. De esto se hablar ms adelante en el apartado 3.1.
Adems se ve como los taladros usados para la sujecin del soporte del eje
no son circulares. Esto se hace as para poder desplazar esa pieza a
derecha e izquierda pudiendo as ajustar perfectamente la corona
(solidaria al soporte del eje) y el pin (solidario al soporte del servo). En
la Figura 44 se ve la placa real ensamblada en el conjunto. Esta pieza es
fabricada con la ayuda de la fresa vertical.

2.2.6 Pieza en C
Es una pieza que, en cada articulacin, enlaza el eje con la continuacin de
la estructura, trasladando as el giro del eje.
Est construida tambin en aluminio, y su espesor es escaso, pero eso no
es un problema ya que al estar unida al eje forma una estructura cerrada
de tal forma que los esfuerzos los soporta adecuadamente sin deformarse.

- 54 -

Memoria - Mecnica del brazo robtico

Figura 42: Diseo 3D Pieza "C"

En la Figura 42 se encuentra este elemento. A travs de los dos taladros


alineados se introduce el eje de la articulacin correspondiente y se fija a
travs de unas piezas que se vern ms adelante en 2.2.7. La continuacin
de la estructura se une en el tercer juego de orificios que se aprecia en el
lateral.

2.2.7 Buje
Este elemento es el que fija el eje a la pieza en C. De esta forma se
transmite el movimiento que le llega al eje, a travs de la corona, al resto
de la estructura. El buje por tanto es un elemento imprescindible. Su
fabricacin debe ser cuidada puesto que el orificio central debe ser
absolutamente recto, ya que de no ser as el giro se transmitir
descentrado, introduciendo un efecto de cabeceo. La fabricacin se realiza
con torno convencional.
El ajuste con el eje en un primer momento se hizo mediante tornillo, pero
debido a los altos pares que se transmiten, el tornillo resbala sobre el eje, y
por esto se paso a hacer mediante pasador. En cada articulacin habr dos
bujes, uno en cada una de las alas de la pieza en C.
- 55 -

Memoria - Mecnica del brazo robtico

Figura 43: Pareja de bujes uniendo eje y "C"

Como se aprecia en la imagen, finalmente se acoplaron pasadores pero se


dejaron adems los tornillos como refuerzo.

2.2.8 Rodamientos
Los rodamientos son elementos que reducen hasta casi eliminar la friccin
entre un eje y las piezas conectadas a ste y sirven de apoyo al eje
facilitando su desplazamiento. De esta forma el eje transmitir los
esfuerzos sobre l aplicados a la estructura.

Figura 44: Rodamiento acoplado al soporte del eje

- 56 -

Memoria - Mecnica del brazo robtico


En la Figura 44 se puede ver uno de los rodamientos utilizados en el
mecanismo. Se trata de rodamientos rgidos de bolas. El aro interior har
contacto con el eje o rbol, el aro exterior con la pieza de soporte.
Van acoplados en dicha pieza (expuesta en 2.2.4). La unin es
simplemente por ajuste porque como ya se coment en la definicin de esa
pieza, el orificio est hecho con unas tolerancias de dimetro muy
ajustadas. A pesar de ello se utiliza un pegamento industrial para fijarlo a
la pieza con ms seguridad.

Las caractersticas bsicas de estos rodamientos aparecen en la Tabla 12.

Dimetro interior d

8 mm

Dimetro de carrera exterior D

22 mm

Anchura de carrera W

7 mm

Carga esttica nominal

1368 N

Carga esttica dinmica

3297 N

Velocidad mxima

25000 rpm

Tabla 12: Caractersticas rodamientos ejes articulaciones

En el brazo se utilizan rodamientos tambin en otro punto. Concretamente


en el eje del ltimo servo de hombro y codo. Esto se hace para pasarle, a
travs del rodamiento, la carga a la estructura, y que as esta no cuelgue
del propio eje del servo. Esto se explica ms adelante y se puede ver en la
Figura 46. Las caractersticas de estos otros rodamientos son las expuestas
en la Tabla 13.

- 57 -

Memoria - Mecnica del brazo robtico


Dimetro interior d

12 mm

Dimetro de carrera exterior D

28 mm

Anchura de carrera W

8 mm

Carga esttica nominal

2370 N

Carga esttica dinmica

5100 N

Velocidad mxima

28000 rpm

Tabla 13: Caractersticas rodamientos ejes servos

Las notaciones utilizadas en las tablas anteriores se pueden comprender


con el siguiente esquema de los rodamientos.

Figura 45: Esquema rodamientos

2.2.9 Estructura apoyo barras


Es una pieza que se coloca en torno al ltimo servo, tanto del hombro,
como del codo. Su misin es soportar la carga que transmite la barra
consiguiendo as que el brazo no est colgando del eje del servo
correspondiente. En la Figura 46 se puede apreciar esto de forma ms
clara.
- 58 -

Memoria - Mecnica del brazo robtico

Figura 46: Estructura de apoyo de la barra

En la Figura 46 se puede ver la pieza mencionada. En el soporte


multifuncional (negro) va montado el servo, que en la imagen no aparece.
El plato del servo se hace solidario a la pieza de aluminio cilndrica
(explicada en la siguiente seccin) y sta a su vez a la barra (que entrara
en la direccin de la flecha azul). As se traslada el giro desde el servo a la
barra, pero el peso de la barra y el resto del brazo no cuelgan del eje del
servo sino que se apoyan, a travs del rodamiento, en esta estructura.
Esta pieza se fabric a partir de un perfil de aluminio cuadrado, utilizando
la fresa vertical. Al igual que ocurre con la pieza de soporte del eje de las
articulaciones (expuesta en 2.2.4), la fabricacin debe ser bastante cuidada
para que el ajuste de los rodamientos sea el adecuado.

2.2.10 Enlace servo-barra


Se trata de una pieza de revolucin, fabricada en aluminio mediante el
torno convencional. Su objetivo es trasladar el giro del servo a la barra
apoyndose sobre el rodamiento de la estructura vista en la seccin
anterior, de tal forma que descarga sobre ella todo el esfuerzo. El espesor
de esta pieza es alto (casi 4 mm) ya que debe aguantar importantes
- 59 -

Memoria - Mecnica del brazo robtico


esfuerzos. Se hace solidaria al servo atornillndola al plato de ste, y se
relaciona con la barra mediante una pieza de nylon (que se estudiar en la
prxima seccin) y un tornillo. Esto se puede ver en la Figura 47.

Figura 47: Pieza de unin servo-barra

En la Figura 48 se muestra el diseo 3D de la pieza.

Figura 48: Diseo 3D de la pieza de unin plato servo-barra

2.2.11 Pieza acoplamiento barras


Es un elemento usado para el ensamblaje de las barras. Ajusta la pieza
comentada en la seccin anterior con el orificio interno de la barra.
Est producido en nylon. Las razones para el uso de este material son dos:
el componente no tiene que soportar esfuerzos prcticamente, y adems la
- 60 -

Memoria - Mecnica del brazo robtico


superficie del nylon es muy buena para el ajuste con el interior de la barra
de aluminio.
La pieza es fabricada mediante torno convencional, buscando una gran
precisin, ya que su dimetro externo debe estar muy ajustado a la
medida interior de la barra, puesto que si no habr juego entre ellos
haciendo perder precisin al movimiento del brazo. Finalmente todo el
conjunto se enlaza mediante un tornillo.
Como se puede ver en el plano correspondiente de la pieza, el dimetro
interior de sta es algo menor que el tamao del elemento de unin al
plato del servo (el elemento que se introduce en esta pieza). Esto se hace
para que el ajuste sea bastante alto, teniendo que introducir la pieza con
suaves golpes de mazo.

Figura 49: Ensamblaje de la barra

En la Figura 49 se muestra como es el ensamblaje de estas tres piezas.


Como se indica, el elemento de la izquierda ser el que a su vez se una con
el plato del servo, como se vea en la Figura 47.

2.2.12 Amarre pin-servo


ste es un componente del mecanismo cuyo fin es hacer solidarios al
pin y al plato del servo, trasladando as el giro producido en el servo al
mencionado pin.

- 61 -

Memoria - Mecnica del brazo robtico


La pieza se hace en aluminio en el torno, y de la misma forma que ocurre
con otras piezas, su taladro central (en el que se introduce el engranaje)
debe estar totalmente centrado para evitar que el pin cabecee.

Figura 50: Sistema de agarre del pin al servo

Como se aprecia en la Figura 50, esta pieza se une al plato del servo
mediante tornillos. La unin del componente con el pin, en principio se
hizo con tornillo tambin, pero apareca cierto juego y el pin poda girar
levemente respecto a esta pieza, as que se decidi utilizar pasador.

2.2.13 Engranajes
El clculo de los engranajes necesarios se desarrollo en 2.1.3. Las
caractersticas de los engranajes finalmente adquiridos se encuentran en la
Tabla 14. La notacin usada en sta se indica en la Figura 51. Entre los
engranajes utilizados hay dos modelos distintos, segn si tienen el
ensanchamiento central o no. Las coronas no lo tienen, el pin s.
Dientes

Md.

Corona Grande

130

132

128

10

Corona Pequea

84

90

86

11

Pin

17

20

16

15

12

Tabla 14: Caractersticas engranajes (unidades en mm)

- 62 -

Memoria - Mecnica del brazo robtico

Figura 51: Plano con notacin de los dos modelos de engranajes

En la Figura 52 se ven algunos de estos engranajes. Concretamente, la


corona grande acoplada con uno de los piones, y una de las coronas
medianas acoplada tambin con su pin.

Figura 52: Montaje definitivo del hombro

Como se puede comprobar, la corona grande tiene practicados una serie


de taladros. Esto es fundamentalmente para la reduccin de peso ya que
aunque el nylon es relativamente ligero, la corona tiene un gran dimetro.
Por otra parte esas zonas del engranaje son las que menos sufren (las
zonas realmente ms cargadas son los dientes) as que esos orificios no
introducen problemas de resistencia.

- 63 -

Memoria - Mecnica del brazo robtico

2.2.14 Sistema de unin corona-eje


El mecanismo lgicamente requiere que el eje de la articulacin y la corona
de sta sean solidarios para que de esta manera el giro que le ha llegado a
la corona desde el pin, sea a su vez transmitido al resto de la estructura.
Para hacer esto se utilizan unas piezas de tipo buje, fabricadas en aluminio
en el torno convencional. Este sistema se poda ver en la Figura 52.

Figura 53: Diseo 3D del agarre de la corona grande al eje

En la Figura 53 se encuentra el diseo de la fijacin de la corona grande a


su eje (el 1 del hombro). La fijacin al eje se har mediante pasador para
asegurar un buen ajuste. El amarre de la pieza con la corona se consigue
mediante tornillos.

2.2.15 Eje articulaciones


Estos ejes ya fueron dimensionados en 2.1.4. El eje calculado fue un eje de
acero inoxidable de 4 mm de radio.
A este eje se le deben practicar una serie de agujeros para fijarle, mediante
pasadores, la corona que le corresponda y la pieza en C, ambas a travs
de los bujes explicados anteriormente.
Adems de esto al eje se le deber realizar tambin otra operacin
imprescindible. Como se ver en el apartado 3.1.2, el potencimetro de
aquellos servos en los que se est realizando aumento de par mediante
engranajes, se debe extraer del interior de dicho servo. Esto se hace para
- 64 -

Memoria - Mecnica del brazo robtico


engaar al aparato, y es que el giro que interesa controlar ahora no es el
del eje del propio servo, si no el del eje de acero que va a ser el centro de
giro de la articulacin. As, el plano del potencimetro habr que
introducirlo en el eje de tal manera que vaya detectando el ngulo en que
ste se encuentra. Para poder hacer esto se debe realizar sobre el eje central
del rbol un orificio de tipo rectangular en el cual encajar el
potencimetro.
Esa perforacin no se puede hacer con fresa ni con torno ya que su forma
no es cilndrica. Por esto se recurre a la electroerosin (se puede usar
gracias a que el eje es de acero, si fuese de aluminio no se podra). Se
desarrolla un electrodo de cobre con la forma negativa (opuesta) del
orificio que se desea realizar, y mediante un programa inicial de desbaste
y uno final de acabado se consigue generar este orificio. A la hora de
realizar ese electrodo se debe prestar atencin a sus dimensiones ya que
hay que tener en cuenta el llamado gap del proceso de erosin, que es una
cantidad adicional de material que se elimina y cuyo valor adems
depende del programa de erosin usado (desbaste, acabado etc).

En la Figura 54 se muestran unos modelos en 3D del electrodo utilizado


(izquierda) y del extremo del eje de acero con el orificio practicado
(derecha).

Figura 54: Electrodo de cobre y eje de acero con el orificio

- 65 -

Memoria - Mecnica del brazo robtico

2.2.16 Base brazo


Este ltimo elemento es el que se usa para amarrar el conjunto del brazo a
la superficie correspondiente.
A esta base se une la placa de apoyo del 1er servo.
Este asiento ser usado adems para guardar en l la placa electrnica de
control del brazo (TCS-2).

Figura 55: Base del brazo robtico

La tarjeta se apoyar sobre unas pletinas de plstico que se unirn a la


base a travs de los pequeos orificios laterales. La alimentacin, que es el
nico cable que le llega a la TCS-2 lateralmente, se podr introducir por el
hueco que se aprecia en el lateral.

- 66 -

Memoria - Electrnica del brazo robtico

3
Electrnica del brazo robtico

- 67 -

Memoria - Electrnica del brazo robtico

Captulo 3

ELECTRNICA DEL BRAZO


ROBTICO

En este captulo se va a estudiar toda la parte electrnica del hardware del


brazo robtico. Esto incluir fundamentalmente a los actuadores y a la
tarjeta electrnica de control. Se analizarn las modificaciones hecha a los
actuadores, las posibilidades de la tarjeta, sus conexiones etc.

3.1 Actuadores. Servos


3.1.1 Nociones bsicas
Los accionamientos que se usan habitualmente en la robtica se pueden
clasificar en funcin del origen de su energa. Los tres grupos bsicos son
neumticos, hidrulicos y elctricos. En este proyecto se usarn
nicamente los ltimos. Concretamente se emplean servomotores. La
razn de la eleccin es su simplicidad, precisin y sobretodo su facilidad
de control mediante software.
Un servomotor es un dispositivo que tiene la capacidad de ubicarse en
cualquier posicin dentro de su rango de movimiento y mantener estable
dicha posicin.
Los servos estn constituidos por tres elementos fundamentales: motor de
corriente continua, sistema reductor y circuito de control. Estos se pueden
ver en la Figura 56.

Motor corriente continua:

Aporta el giro. Al aplicarle una diferencia de potencial entre las bornas


gira en un determinado sentido. Si la tensin se invierte tambin lo hace el

- 68 -

Memoria - Electrnica del brazo robtico


giro. Dentro de los valores de tensin aceptados por el motor, segn se
vara el valor absoluto de esta, la velocidad de giro vara.
El motor girar a altas velocidades pero transmitiendo bajos pares.

Figura 56: Componentes del servo utilizado en el brazo

Sistema reductor:

Conjunto de engranajes que consiguen un gran aumento de par. De toda


la potencia generada por el motor, transforman buena parte del giro en
par. Segn la potencia que se maneje en el servo, estos engranajes sern
metlicos o polimricos. En el caso de los servomotores del brazo, al ser de
alto par, el conjunto reductor est fabricado en titanio.

Circuito de control:

Es el que se encarga de controlar la posicin del eje. En funcin de los


pulsos recibidos ordena o no girar al motor.
El sistema consiste en un control proporcional.
El punto de referencia, que es el valor de posicin deseada para el motor
se indica mediante una seal de control cuadrada. El ancho de pulso de la
seal indica el ngulo de posicin. Una seal con pulsos ms anchos (es
decir, de mayor duracin) ubicar al motor en un ngulo mayor, y
- 69 -

Memoria - Electrnica del brazo robtico


viceversa. Cada servo, dependiendo de la marca y modelo, tiene sus
propios mrgenes de operacin en lo que a la seal de pulsos se refiere.
Inicialmente, un amplificador de error calcula el valor del error de
posicin, que es la diferencia entre la referencia y la posicin en que se
encuentra el motor. Si el servo se encuentra en la posicin deseada, el error
ser cero, y no habr movimiento.
Para bloquear el servomotor en una posicin es necesario enviarle
continuamente la seal con la posicin deseada. De esta forma, el sistema
de control seguir operando, y el servo mantendr su posicin y resistir
frente a fuerzas externas que intenten cambiarlo de posicin. Si los pulsos
no se envan, el servomotor quedar liberado, y cualquier fuerza externa
puede cambiarlo de posicin fcilmente.
Para que el amplificador de error pueda calcular el error de posicin, debe
restar dos valores de voltaje analgicos. Por tanto, la seal de control
PWM se debe convertir a un valor analgico de voltaje, mediante un
convertidor de ancho de pulso a voltaje. El valor de la posicin del motor
se

obtiene

usando un

potencimetro

de

realimentacin

acoplado

mecnicamente a la caja reductora del eje del motor. Cuando el motor rote,
el potencimetro tambin lo har, variando el voltaje que se introduce al
amplificador de error.
Una vez que se ha obtenido el error de posicin, ste se amplifica con una
ganancia, y posteriormente se aplica a los terminales del motor.

Figura 57: Diagrama del circuito de control implementado en un servo

- 70 -

Memoria - Electrnica del brazo robtico


En la Figura 57 se muestra un diagrama de este circuito de control. En l
las lneas continuas son conexiones elctricas y la lnea a trazos representa
una conexin mecnica.

En cuanto a la conexin del servo, sta se realiza a travs de sus tres


terminales. Dos de ellos son para la alimentacin elctrica y el otro para el
envo de la seal de control (envo de la posicin deseada). La
alimentacin tpica es de unos 6V. El servo aqu utilizado soporta entre 6 y
7,4 V como se puede ver en las especificaciones en la Parte VII.
Como se puede comprobar en estas caractersticas, la velocidad de giro y
par aportado por el motor (la potencia por tanto) aumentan con el
crecimiento de la tensin de alimentacin. Es por esto que se trabajar a
7,4 V para exprimir al mximo al servo.
Los motores DC de los servos realmente suelen aguantar ms tensin, con
lo que se obtendra ms potencia, pero es el circuito de control el que
tpicamente suele poner el lmite de tensin.
De los tres terminales, en el caso del modelo de servo utilizado, los negros
son la alimentacin (tensin-tierra) y el gris la seal de control.
Las caractersticas ms importantes de los servos utilizados se pueden
encontrar en la Tabla 15. El resto de especificaciones se encuentran en la
datasheet del servo.
Tensin de trabajo

6V

7.4 V

Velocidad de Giro

0.17 seg. / 60

0.14 seg. / 60

Par Nominal

2.35 Nm

2.94 Nm

Par de Pico

3.06 Nm

3.82 Nm

Corriente Giro sin carga

300 mA

380 mA

Tabla 15: Caractersticas bsicas Servo HSR-5990 TG

- 71 -

Memoria - Electrnica del brazo robtico


El modelo de servo elegido fue el HSR-5990 TG de Hitec. La razn de su
eleccin fue la relacin par peso que ofrece. Es un servo de alto
rendimiento y aporta un par de un valor tremendamente alto si lo
relacionamos con el espacio que ocupa y el peso que tiene. Todo esto ya se
comento en el apartado 2.1.3. En esta seccin ya se comento el porqu usar
servos pequeos que requieran una reductora adicional. La razn es el
peso. Como se puede comprobar en la Tabla 16, aquellos servos que
ofrecen pares altos, que podran evitar la complicacin de montar un
sistema adicional de transformacin de potencia, son tremendamente
pesados, tanto que algunos de ellos pesan incluso ms que todo el brazo
que se est desarrollando. Los productos mostrados en la tabla son los
servomotores de alto par pero de menor peso encontrados en el mercado.

SERVO

Par [Nm]

Par mx. [Nm]

Potencia [W]

Peso [Kg]

Danaher F5716A

29,3

52

766

7,8

CMC mdm5000 T1-101

12

1500

4,9

CMC mdm5000 P-1054

15,3

37

4700

6,8

CMC mdm5000 P-1276

11

48

4000

3,5

Servo Dynamics IG 42 BS 32

5,8

17,4

3644

9,2

Tabla 16: Servos de alto par

Por tanto queda claro que lo adecuado ser montar un servo pequeo y
ligero aunque de un par relativamente bajo y luego aumentar este.
Lgicamente se realiz una bsqueda y se instal aquel dispositivo que
ofreca mximo par dentro de los pesos bajos.

El servo utilizado es de tipo digital. Cabra la posibilidad de usar uno


analgico, pero analizando ventajas e inconvenientes se comprueba que
no ofrece mejora alguna. El servo digital supera al analgico en par
producido tanto dinmica como estticamente (importantsimo aqu),
- 72 -

Memoria - Electrnica del brazo robtico


precisin, tiempo y suavidad de respuesta, mayor resolucin en el
posicionamiento etc. La nica desventaja que muestra es un consumo algo
mayor, pero estudiando las especificaciones del servo digital usado se
comprueba que la potencia consumida es aceptable.

3.1.2 Modificaciones al servo


Se ha visto por tanto que en algunas de las articulaciones es necesario
introducir un sistema de aumento de par, para alcanzar los valores
requeridos en dichos puntos de giro.
Las articulaciones que necesitan esto son las dos primeras del hombro y la
primera del codo. En el apartado 2.1.3 Reductora se calcularon los
engranajes necesarios para lograr esto. Pero la transformacin requerir
algo ms que simplemente asociarle un pin al servo y una corona al eje
de la articulacin. La razn es que se necesita controlar el giro del eje (al
hablar aqu de eje siempre se estar apuntando al eje de la articulacin no
al del servo), puesto que el giro del brazo ser ahora respecto a este.

Figura 58: Transformacin de par en el hombro

Esto ltimo se ve claro en la Figura 58. El brazo gira respecto el eje


solidario a la corona, no respecto el eje del servo.
El problema es que en principio, el servo lo que permite es controlar el
giro de su eje. Se piensa entonces en una solucin rpida como sera
- 73 -

Memoria - Electrnica del brazo robtico


introducir en la programacin del servo un coeficiente en funcin de la
diferencia de radios de los engranajes y as calcular cunto debe girar el
servo para que la corona gire lo que se necesita y seguir controlando
nicamente el servo. La idea sera buena de no ser por un gran
inconveniente, el servo slo puede girar 180. En realidad lo que slo
puede girar media vuelta es el potencimetro que controla el giro. Por
tanto de implantar la solucin anterior se limitara el giro de la corona a
aproximadamente 20 (pues su radio es unas 10 veces mayor al del pin)
y es esto es inaceptable para el brazo.

Estudiando el servo se llega a la solucin adecuada. Como se ha


comentado, lo que est limitado a 180 es el potencimetro. El eje del servo
simplemente est limitado mecnicamente a ese ngulo para proteger al
potencimetro, pero realmente podra girar todas las vueltas que se
deseen, ya que el motor puede girar de forma continuada. Lo que se debe
hacer por tanto es extraer el potencimetro del interior del servo e
implantrselo al eje de la corona de tal forma que ahora el sistema de
control regule el giro de sta y no del servo directamente. Por otro lado
habr que eliminar el tope mecnico de giro del servo.
Lo que se est haciendo en definitiva es engaar al servo. Su sistema de
control cree que su propio eje est en una determinada posicin, pero esa
posicin en realidad es la del eje de la corona. As, cuando se desee que esa
articulacin se coloque en un determinado ngulo, el servo empezar a
girar hasta que la corona est en ese ngulo, no su propio eje, pues la
medida de posicin mediante el potencimetro la toma del eje de la
articulacin.

En la Figura 59 se ve el montaje final. Efectivamente el plano del


potencimetro se introduce en el orificio del eje de la articulacin creado
para ello (apartado 2.2.15).
- 74 -

Memoria - Electrnica del brazo robtico

Figura 59: Instalacin potencimetro en perfil y planta (izquierda y derecha)

El modo de traspasar el potencimetro del eje del servo al de la corona se


indica en la Figura 60. Se debe hacer un corte por el punto indicado con la
marca blanca, extraer el potencimetro del acoplamiento con el eje del
servo y mediante un empalme del cable y a travs de un taladro
practicado en la carcasa del servo, llevarlo hasta el eje de la articulacin.

Figura 60: Traslado del potencimetro

Por otra parte hay que eliminar el tope mecnico de proteccin del servo.
En la Figura 61 se muestra dnde se encuentra este elemento y cmo
eliminarlo. Como se puede observar, el tope est en el engranaje final de la
caja reductora interior del servo. Se coloca en ese engranaje porque
lgicamente es el nico que gira a la misma w que el eje del servo.
- 75 -

Memoria - Electrnica del brazo robtico

Figura 61: Eliminacin tope mecnico

La forma de eliminarlo es extrayendo este engranaje del servo, y mediante


la fresa vertical eliminar esa pestaa saliente que es la que choca con la
carcasa para restringir el movimiento. El paso de antes a despus se ve en
la Figura 61 en el lado derecho. Se monta de nuevo y debe quedar como se
aprecia en el lado izquierdo de la figura.

Una vez hecho todo esto, la modificacin estara terminada. Faltara ahora
crear una pequea estructura sobre la cual amarrar el cable de empalme y
el potencimetro. sta tiene que ser solidaria a la parte fija, a la que no va
a girar con el eje, para que as el potencimetro, cuya parte mvil est
metida en el eje, pueda girar.
Una cuestin importante que se debe tener en cuenta es que el
potencimetro debe introducirse en el eje, pero por su parte superior, no
por la inferior. La razn es que cuando estaba instalado en el servo, estaba
atacando al eje del mismo desde la parte inferior. Como entre los dos ejes
tenemos ahora esa pareja de engranajes (pin-corona) se est
produciendo un cambio en el sentido de giro. Si introdujsemos el
potencimetro por la parte inferior, el servo se equivocara y al girar
cada vez se alejara ms de la posicin buscada puesto que el
potencimetro estara girando en el sentido contrario.

- 76 -

Memoria - Electrnica del brazo robtico


La estructura de apoyo del potencimetro se poda ver en la Figura 59. Se
trata de una pletina de aluminio que como se ve en esa figura, es solidaria
a la parte anterior al giro, no a la posterior.
Una vez hecho todo esto, a la hora de controlar el servo mediante software
no habr que preocuparse por nada. Se le enviar una determinada
posicin, y quien acabar en esa posicin ser el eje que interesa, el de la
articulacin. Lo nico que habr que regular es la colocacin del
potencimetro, situando su posicin inicial de giro donde interese.

3.1.3 Problemas con las modificaciones


Una vez desarrollado todo lo indicado anteriormente se prueba el
funcionamiento e inicialmente surgen bastantes problemas. Bsicamente
lo que ocurre es que el brazo se comporta de forma totalmente
impredecible, gira hacia donde no debe, consume repentinamente grandes
corrientes sin tener apenas carga etc.
La causa de todo esto es esencialmente la aparicin de interferencias en la
seal de los potencimetros extrados. Esto quedo claro ya que los dos
servos que no han sido modificados (3 y 5) funcionan sin problema, y los
modificados funcionan por separado, es decir cuando slo est conectado
uno de ellos.
Lo primero que se comprueba es que la seal de control enviada desde la
tarjeta de control TCS-2 al servo es correcta. Es decir, que los pulsos son
totalmente estables. As es.

Sabiendo esto se plantea la posibilidad de que haya interferencias por


radiacin. Se piensa as porque los servos que realmente funcionan peor
son los dos primeros (1 y 2 articulacin del hombro) que estn muy
cercanos, mientras que el otro servo modificado (1 del codo) no da
demasiados problemas. La idea es que la seal de uno de los
potencimetros (al ir el cable ahora por el exterior, no dentro del servo), se
- 77 -

Memoria - Electrnica del brazo robtico


est radiando con tal potencia que afecte a la seal del otro y viceversa. La
solucin desarrollada para esto es rodear a cada uno de los empalmes de
los potencimetros con una seal de tierra que los proteja de esa radiacin.

Figura 62: Cable a tierra rodeando los cables del potencimetro

En la Figura 62 se muestra esta solucin. El cable blanco est puesto a


tierra. Realmente es mejor rodearlo totalmente con una malla puesta a
tierra o algo ms simple como papel de aluminio tambin puesto a tierra,
de forma que se consiga una proteccin an mayor ante la radiacin, pero
esto tiene un problema y es que pone toda la estructura a tierra (al estar en
contacto con ella) y ocasiona complicaciones como se ver ms adelante.

Por otro lado tambin se plantea la posibilidad de que la seal del


potencimetro tenga demasiado ruido por s misma. Para tratar de
corregir esto se usa un filtrado por condensadores, de la seal.

Figura 63: Esquema elctrico de la conexin de los condensadores de filtrado de seal

- 78 -

Memoria - Electrnica del brazo robtico


En la Figura 63 se encuentra el esquema elctrico de conexin de los
condensadores de filtrado. En esta figura se han mantenido los colores del
cableado (los cables de conexin del potencimetro con la tarjeta interna
de control del servo, los que se empalmaron previamente). Es importante
poner el punto de unin de los condensadores a los cables lo ms cerca
posible de la tarjeta del servo ya que sino el filtrado no ser excesivamente
bueno, puesto que el ruido que aparece despus de los condensadores
no lo elimina.
Una vez hecho esto, cada uno de los servos modificados funciona
perfectamente por separado, pero al utilizarse al mismo tiempo los
problemas continan. Es entonces cuando se encuentra el problema. Las
seales de posicin de los potencimetros (cable amarillo) tienen que estar
conectadas de algn modo. La idea se obtiene al percibir que cuando est
funcionando uno slo de los potencimetros, el sistema funciona bien,
pero si se toca la estructura se causan interferencias. Por tanto se debe
estar produciendo contacto elctrico entre la estructura y alguna de las
seales del potencimetro. Se procede a abrir el potencimetro para
averiguarlo.

Figura 64: Interior del potencimetro

En la Figura 64 se muestra el potencimetro desmontado. Se comprueba


que la suposicin era correcta.
- 79 -

Memoria - Electrnica del brazo robtico


El plano del potencimetro es de bronce (Cu+Sn), es decir es conductor.
Como se aprecia en la imagen, est directamente unido mediante
elementos metlicos conductores a las pestaas que toman el valor
intermedio de resistencia. Estas pestaas conectan la resistencia de 5K con
el punto intermedio de salida del potencimetro (cable amarillo, que es el
importante ya que indica la posicin actual). As es como se enva una
seal proporcional (en tensin) a la posicin del plano del potencimetro.
El problema es que como se ha indicado, hay continuidad entre el plano
del potencimetro y esa seal de posicin. Como el plano est introducido
en el eje de acero de la articulacin, y ste est unido a la estructura de
aluminio, lo que finalmente ocurre es que hay contacto elctrico entre la
seal de posicin (amarilla) y toda la estructura. Por esto cuando estn
conectados los dos servos al mismo tiempo, se interfieren entre s, porque
sus seales de posicin estn en contacto elctrico.
Esta tambin es la razn por la cual se indico anteriormente que haba
problemas al usar una malla a tierra para rodear los cables porque pona
toda la estructura a tierra. Al hacer esto, la seal de posicin tambin se
pone a tierra (posicin errnea) y si el potencimetro est en su posicin
inicial, estarn cayendo unos 3,5 V en muy poca resistencia, por eso la
corriente se dispara.
Las soluciones posibles son dos. Introducir un aislamiento elctrico en un
punto intermedio de la estructura para que as no haya contacto entre los
potencimetros, o directamente aislar los planos de los potencimetros del
eje. La primera solucin no es demasiado buena ya que s evita el contacto
entre las seales de los distintos potencimetros, pero no evita la entrada
de interferencias en la seal debido a su contacto con una parte de la
estructura. Adems es complicada de llevar a cabo.
La segunda solucin ser la adecuada. Dado que la tensin que hay que
aislar es baja (~5 V), bastar con proteger el plano del potencimetro con
cinta aislante, para as eliminar el contacto elctrico entre ste y el eje de

- 80 -

Memoria - Electrnica del brazo robtico


acero. Esto se puede ver en la Figura 59 o en la Figura 62, donde se
observa la proteccin con cinta del plano.

3.2 Tarjeta de control TCS-2


Se trata de una tarjeta desarrollada en el departamento de Electrnica y
Automtica del ICAI. Es una plataforma para el control de robots mviles
que es capaz de mantener una comunicacin con PDA o PC por puerto
serie (protocolo RS-232), por infrarrojos con PDA (protocolo IRDA) y por
radiofrecuencia (cdigo Manchester). Tiene capacidad para controlar
sensores analgicos, ultrasonidos, encoders, motores y servomotores
(PWM). Adems presenta una interesante flexibilidad que le permite
variar la combinacin de sensores que controla en funcin del robot en
que se vaya a integrar.
Para el control del brazo robtico se emplear la comunicacin TCS2 PC
a travs de puerto serie. Se podra haber trabajado con PDA, pero como en
este proyecto no se llega a integrar el brazo en otro robot que sea mvil, la
base del brazo permanecer fija y no habr problema en tener conectada la
tarjeta a un ordenador.

3.2.1 Diseo TCS-2


La tarjeta se basa en dos microcontroladores que controlan los distintos
mdulos de la tarjeta. El modelo que se emplea es PIC16F876 de
MICROCHIP. Los mdulos se controlan entre ambos micros como indica
la Figura 65. Ninguno de los dos microcontroladores gobierna al otro. Es el
ordenador el que se comunica con uno y otro por separado. Es decir,
funcionan de forma totalmente independiente.

- 81 -

Memoria - Electrnica del brazo robtico

Figura 65: Control de los mdulos mediante los micros

A continuacin se procede a resumir el funcionamiento de los mdulos


fundamentales de que consta la tarjeta.

Modulo de Radiofrecuencia

Es controlado por el PIC 1. Recibe rdenes y responde a las mismas.


Si se desactiva el bus I2C solamente podr comunicarse con los mdulos
controlados por este micro.

PC

Los micros reciben las rdenes a travs del puerto serie desde el PC. Se
comunican a golpe de reloj recibiendo y enviando informacin. Como ya
se ha indicado primero se comunica con el PIC 1 y cuando recibe su
respuesta se comunica con el PIC 2.

Encoders

Cada uno de los encoders lo controla un microcontrolador. La


actualizacin de medidas se realiza de forma continua.

Motores

Son controlados por el PIC 1. La configuracin de estos se fija en el


programa de control.

Servos

Son controlados por el PIC 2. No devuelven ninguna informacin.


- 82 -

Memoria - Electrnica del brazo robtico

Sensores digitales

Los controlan los dos PICs. Si hay un cambio en el valor, ste se enva al
programa. Pueden ser configurados como entradas o como salidas.

Sensores analgicos

Son controlados por el PIC 1. Las medidas se actualizan de forma continua


as como la conversin analgica digital.

Sensores de ultrasonidos

Los controla el PIC 2. Cuando el microcontrolador recibe la orden de


medir, realiza las medidas, las almacena, y las devuelve en otra
comunicacin, pero no necesariamente en la siguiente (depende de lo que
tarden en llevarse a cabo las medidas).

Como se ver en el prximo apartado, muchas de las conexiones pueden


ser utilizadas para un tipo de elemento u otro.

3.2.2 Posibles configuraciones TCS-2


Como ya se ha comentado, los distintos pines de la tarjeta son
configurables de tal modo que a ellos se puedan conectar distintos
mdulos. Esto le da a la tarjeta una gran versatilidad.

Figura 66: Tarjeta de Control TCS-2

- 83 -

Memoria - Electrnica del brazo robtico


En la Figura 66 se muestra una imagen real de la tarjeta. En la Figura 67 se
pueden ver los pines en los que se encuentra tierra (negro) o tensin de
alimentacin (rojo) en nuestro caso +9V.

Figura 67: Seales de tierra y alimentacin de la tarjeta.

En la Figura 68 se muestran las posibilidades de conexin de los distintos


pines de la tarjeta, as como los puntos de conexin con el PC y de
alimentacin.

Figura 68: Conexiones TCS-2

- 84 -

Memoria - Electrnica del brazo robtico


El modo en que funcione la tarjeta se definir mediante un sistema de
configuracin que ms adelante se comentar.
En la Figura 69 se muestra la configuracin usada en este proyecto.
Realmente aqu lo que interesa es que estn disponibles los 6 servos como
se puede apreciar, el resto de sensores no importan ya que no se
utilizarn.

Figura 69: Configuracin utilizada de la TCS-2

Se debe prestar especial atencin en la conexin de los servos 2 a 5. La


serigrafa de la tarjeta est equivocada (los nombres en esa zona estn
desplazados hacia la derecha). La conexin correcta es como se muestra en
esta la figura anterior, no como indica la numeracin de la propia tarjeta.
En la Figura 70 se indica cul debera ser el etiquetado correcto. A la
izquierda aparece lo actual, con marcas en lo incorrecto. A la derecha se
muestra como debera ser en realidad y como se debe conectar.

- 85 -

Memoria - Electrnica del brazo robtico

Figura 70: Serigrafa TCS-2. Error (izquierda) Correcto (derecha)

En [11] se pueden encontrar el resto de posibles configuraciones de la


tarjeta TCS-2. Aqu no se han incluido al no considerarse oportuno, ya que
no se van a utilizar.

- 86 -

Memoria - Software del brazo robtico

4
Software del brazo robtico

- 87 -

Memoria - Software del brazo robtico

Captulo 4

SOFTWARE DEL BRAZO


ROBTICO

Este captulo se va a dedicar al estudio del software que controla el brazo


robtico.

Inicialmente

se

darn

unos

pocos

detalles

sobre

el

funcionamiento de Microsoft Visual Studio C++ 6/2008, el entorno de


trabajo que se ha utilizado para desarrollar la programacin. Para despus
pasar a explicar el software en s mismo. Sobre este ltimo se explican los
aspectos generales ya que la definicin en detalle se deja para los distintos
manuales de usuario.

4.1 Microsoft Visual Studio C++ 6/2008


El programa se puede descargar de la web de Microsoft [12].
La versin libre para descarga es una edicin express (es decir capada). De
esta misma web se puede descargar el programa completo en modo
prueba o comprarlo. De todos modos la versin express ser suficiente
para lo desarrollado aqu. Son importantes tambin las libreras MSDN.
En el anterior enlace tambin se pueden descargar versiones limitadas por
separado.
Las versiones mencionadas en el ttulo, 6 y 2008, son versiones distintas
del programa. La ms actualizada es la 2008, que incluye ms
herramientas y aplicaciones as como una interfaz renovada. Su uso es
necesario en caso de desarrollar el software en S.O. Windows Vista. En el
caso de XP se recomienda el uso de Visual Studio 6.
Este entorno de desarrollo permite entre otras muchas cosas crear
aplicaciones bastante complejas con ventanas, que es lo que interesa en
este proyecto.
- 88 -

Memoria - Software del brazo robtico


La programacin consiste en ir aadiendo controles en una ventana de
dilogo a los cuales irn asociadas determinadas funciones, que sern las
que se debern programar y donde irn los algoritmos de control del
brazo.
A continuacin se procede a mostrar cmo se crea un nuevo proyecto
basado en ventana de dilogo. Se va a explicar el modo de hacerlo para
Visual Studio 2008, pues la versin 6 no se puede utilizar en los nuevos
sistemas operativos Windows por lo que no tiene demasiado sentido
explicarla.
Una cosa importante a tener en cuenta es que esta aplicacin de control
tambin se podra desarrollar de tal manera que fuese una PDA la que la
ejecutase y mandase las rdenes a la TCS-2. En caso de desear esto el
programa a utilizar para programar es Microsoft eMbedded Visual C++
4.0 adems de otros dos programas para establecer el enlace PDA-PC.
Dado que aqu todo eso no se va a usar, no se explicar, pero si se desea
informacin al respecto se puede encontrar en [11].

El procedimiento para crear un nuevo proyecto es el siguiente:

Ir al men File

En el siguiente cuadro de dilogo (Figura 71), en Project types

New

Project.

(derecha) seleccionar Visual C++, y en Templates seleccionar MFC


Application.
Introducir nombre del proyecto, en este caso Driver, y seleccionar la
ubicacin para el proyecto.
Pulsar OK.

- 89 -

Memoria - Software del brazo robtico

Figura 71: Cuadro de dilogo Visual Studio 2008 New Project

En el siguiente cuadro (Welcome to MFC Application Wizard)


seleccionar Next.

En el cuadro Application Type, seleccionar Dialog Based y el resto


de opciones por defecto como en la Figura 72. Pulsar Finish.

Figura 72: Cuadro de dilogo Application Type

- 90 -

Memoria - Software del brazo robtico


Para empezar se describirn los elementos fundamentales del proyecto.
En la Figura 73 se muestra el entorno de trabajo habitual de Visual Studio
2008. Se indican las tres ventanas fundamentales.

Workspace

Est dividido en dos ventanas. Por un lado la ventana Resource View


desde donde se puede acceder a la ventana de dilogo, y por otro lado
otra ventana en la que se pueden ver o bien los archivos del proyecto (File
view), las clases (Class view) o las propiedades (Properties).

Figura 73: Ventana de trabajo Visual Studio 2008

Ventana de Cdigo

Es el lugar en el que se introducir el cdigo que ejecutar la aplicacin.

Ventana de mensajes

Aqu aparecern mensajes referentes a errores y avisos al compilar.

Nada ms crear el programa aparecen cuatro ficheros (ver File view).


Driver.cpp/.h: Es el fichero donde se encuentra el cdigo de la aplicacin
principal (equivale al main). Este fichero no requiere ser modificado.
- 91 -

Memoria - Software del brazo robtico


Driver.rc/.rc2: Aqu se encuentran almacenados los recursos que usa la
aplicacin (ventanas, botones etc.). No se puede tocar
DriverDlg.cpp/.h: Es el cdigo de la ventana de dilogo creada. ste es el
fichero que se modifica para desarrollar el programa que controla el brazo.
Stdafx.cpp/.h: Es un fichero que existe en cualquier proyecto. No es
necesario tocarlo pero se necesita para que la aplicacin funcione.

Lgicamente donde aqu se lee driver el programa pondr el nombre que


se le haya dado a la aplicacin al crearla.

Para empezar a crear la aplicacin se deber ir modificando el aspecto de


la ventana de dilogo a base de introducirle controles. Son estos controles
los que se programarn y as se introducir el algoritmo de control del
brazo.
Para

poder

ver

la

ventana

de

dilogo

se

pulsa

sobre

IDD_DRIVER_DIALOG en la ventana Resource view. Aparece una ventana


como la que se muestra en la Figura 74.

Figura 74: Pantalla configuracin ventana de dilogo

- 92 -

Memoria - Software del brazo robtico


En esta pantalla es en la que se deben ir introduciendo los elementos que
aparecern en la ventana de dilogo. Si se desplaza el ratn sobre Toolbox
(izquierda), se despliega una pestaa en la que se encuentran todos los
posibles elementos a introducir en la ventana de dilogo tipo botn,
etiqueta etc.
Los controles bsicos son:
Static text: Permite aadir una etiqueta fija a la ventana. Si se selecciona y
se va a la ventana properties, en caption se puede introducir el texto.
Edit Control: Aade un cuadro de texto en el que el usuario podr o bien
recibir o bien introducir valores.
Button: Aade un botn a la ventana de dilogo. En properties se puede
modificar su nombre (caption) y su identificador (ID). Si se pulsa doble
click sobre el botn el programa vuelve a la ventana de cdigo donde ha
creado una funcin con el nombre del botn. En sta se introduce el
cdigo a ejecutar cuando el usuario pulse el botn durante el
funcionamiento de la aplicacin.

Adems de estos tres controles existen multitud de controles ms como


Check box, Group box etc.

Un elemento imprescindible al programar controles para robots es el


timer. Se trata de un reloj cuyo periodo es programable de tal forma que
cada vez que termina la cuenta ejecuta un determinado fragmento de
cdigo. De esta forma se controla al robot peridicamente. La forma de
aadir un timer es la siguiente. Estando en la vista de la ventana de
dilogo, en la ventana properties aparecen una serie de botones en la parte
superior. Pinchar sobre el quinto botn, messages. En la ventana que
aparece seleccionar WM_TIMER y pinchar sobre add OnTimer. Se crear en
el fichero DriverDlg.cpp una funcin denominada OnTimer. sta es la
funcin que se ejecutar cada vez que el timer termine su cuenta.
- 93 -

Memoria - Software del brazo robtico


Para ejecutar un programa se deber hacer lo siguiente. Se pulsa sobre
build

rebuild driver. De esta forma se compila el cdigo y se construye

la aplicacin. Si hay errores de programacin estos aparecern en la


ventana de mensajes. Cuando no haya errores, se pulsa sobre Debug,
Start Debugging (F5) y la aplicacin empieza a ejecutarse.
Para parar el programa Debug

Stop Debugging.

Para depurar un programa se debe proceder as. Se introducen Breakpoints


en aquellas zonas de cdigo donde se sospeche que puede encontrarse el
problema. De esta forma la ejecucin de la aplicacin se detendr al llegar
a esa lnea de cdigo. As se puede comprobar el estado de las variables en
ese momento y si procede seguir ejecutando lnea a lnea para continuar
con las verificaciones. A la hora de realizar esa ejecucin lnea a lnea hay
dos opciones, usar F10 (Step Over) de tal forma que no se entra en las
funciones, o usar F11 (Step Into) con lo que al llegar a una funcin se
introduce en ella. En la ventana watch es donde aparecen los valores de las
distintas variables durante este proceso.

4.2 Driver de control de la TCS-2


Un driver es un objeto que permite controlar un elemento sin conocer los
detalles del mismo. Tiene una serie de variables que permiten conocer su
estado y una serie de funciones que permiten interactuar con el elemento.
Este driver por tanto contar con una serie de funciones y variables que
permiten, de forma sencilla, comunicarse con la tarjeta e indicarle lo que se
desea que sta haga con los elementos conectados a ella.

La clase que maneja la TCS-2 se llama Comm y est definida en los


ficheros Comm_sr.cpp y declarada en Comm_sr.h. Adems esta clase
- 94 -

Memoria - Software del brazo robtico


requiere del driver del puerto serie para poder funcionar. ste se
encuentra declarado y definido en serial.h/.cpp.
En este contexto una comunicacin consiste en una peticin de ejecucin
de comandos a la TCS-2 y una respuesta por parte de sta a esa peticin.
Durante este proceso el PC acta como maestro y la TCS-2 como esclavo,
es decir, la tarjeta responde al PC slo cuando ste se lo pide.
Para poder utilizar este driver se deben aadir los archivos que lo
constituyen al correspondiente proyecto. Esto se hace de la siguiente
forma:

Copiar los archivos del driver en el directorio del proyecto.

Aadir los archivos .cpp del driver al proyecto. Para ello pulsar con
el botn derecho sobre Source Files en la ventana Solution explorer.
Seleccionar Add y despus Existing Item. En el cuadro seleccionar
los archivos.

Aadir los archivos .h del driver al proyecto. Para ello pulsar con el
botn derecho sobre Header Files en la ventana Solution explorer.
Seleccionar Add y despus Existing Item. En el cuadro seleccionar
los archivos.

Aadir en el fichero DriverDlg.cpp despus de la cuarta lnea


#include "Comm_sr.h".

Crear una variable de tipo Comm (Comm


cdigo BOOL

c;)

encima de la lnea de

CDriverDlg::OnInitDialog().

De esta forma ya se pueden utilizar en la aplicacin las funciones y


variables del driver. El uso de estas se har a travs del objeto tipo Comm
que se ha creado.
Cada comunicacin se limitar mediante un inicio (c.inicio) y un final
(c.comunicacion), esta ltima funcin devolver un 1 o un 0 en funcin de si
la comunicacin resulto correcta o no. Entre estas dos funciones se
incluirn todas las que se quieran enviar en la presente comunicacin.

- 95 -

Memoria - Software del brazo robtico

4.2.1 Variables y funciones del driver


Las Funciones y variables que se pueden emplear con este driver son:

Funciones de configuracin
c.configuracion(4,2,0)

//4ADs,

USs

motores

auxiliares
c.periodoMotores(80)
c.configuraIO(0)

//D0,D1,D2,D3

son

salidas

digitales
c.desactivaI2C()

//Desactiva el bus I2C

Funciones control de motores y servos


c.DcMotores(80,22)

//Se configura el duty cicle de


los motores. Si es mayor que 35
gira hacia delante, si es menor
hacia atrs.

c.DcMotoresAuxiliares(60,14)

//La

configuracin

es

igual

que

para los motores normales.


c.DcServos(8,12,14,20,24,12)

//El valor debe estar entre 7 y 43


que

corresponden

-90

+90

respectivamente.
c.activarMotores(2)

//3 activa los motores normales.


y

los

auxiliares.

slo

los

auxiliares. 1 slo los normales. 0


ninguno.

Funciones de control de las salidas digitales


c.escribeDigital(0)

//Se ponen todas las salidas a 0V.

Funciones de control de los sensores AD


c.leerADs()

//Se solicita leer todos los ADs


que

se

han

configurado

anteriormente.
vectorAD=c.valorADs()

//vectorAD es una variable de tipo


const

BYTE*.

En

vectorAD[0]

se

almacena la medida del sensor AD0


y en las siguientes posiciones, y
por orden, el resto de las medidas
tomadas por los sensores ADs. Las
medidas de estos sensores tendrn
un valor entre 0 y 255.

Funciones y variables de control de los sensores USs

- 96 -

Memoria - Software del brazo robtico


c.pedirUSs

//Funcin que solicita leer todos


los

USs

que

se

han

configurado

previamente.

Una vez concluida esta comunicacin se debe esperar a que la variable


interrupcin (la segunda) indique que la medida ha sido tomada.
Entonces, y durante el siguiente ciclo de reloj, los valores de los sensores
USs se pueden almacenar en una variable de tipo BYTE* de la siguiente
forma.
if (interrupcion[2]) vectorUSs=c.valorUSs

//En vectorUSs[0] se

almacena la medida del sensor US0 y en las siguientes posiciones,


por

orden,

el

resto

de

las

medidas

tomadas

por

los

USs.

Las

medidas de estos sensores tendrn un valor entre 0 y 255.

Funciones y variables de control de los sensores digitales

Durante cada comunicacin se deber mirar en la variable interrupcin (el


tercer elemento) si el valor de los sensores digitales ha cambiado. Si es as
se guardan los nuevos valores en una variable de tipo const BYTE*.
if (interrupcion[3]) Digitales=c.valorDig()

//En Digitales[0] se

almacena el estado de todos los sensores digitales. El bit ms


bajo corresponde a D0 y el ms alto a D7. Si vale 0 es que est
pulsado y si vale 1 es que no.

stas son slo las funciones y variables fundamentales del driver. Si se


desea informacin ms completa consultar la Parte IV, Manual de usuario
Driver TCS-2 del documento.

4.3 Driver de control del brazo


Este objeto tiene una funcin similar al driver anteriormente presentado
en el sentido de que permite controlar un elemento sin conocer los detalles
del mismo. Tiene una serie de variables que permiten conocer su estado y
una serie de funciones que permiten interactuar con el elemento.
El driver por tanto cuenta con una serie de funciones y variables que
permiten, de forma sencilla, controlar los movimientos del brazo,
indicndole hacia dnde moverse o cmo hacerlo.
- 97 -

Memoria - Software del brazo robtico


El control del brazo se hace a travs de la TCS-2 por lo que este driver
necesita al driver de la TCS-2, el cual, como ya se vio, necesita a su vez al
driver del puerto serie para poder realizar las comunicaciones. Se podra
entender como distintas capas de software que se utilizan las unas a las
otras con el objetivo de facilitar al usuario final el control del brazo.
La clase que maneja al brazo se denomina arm y se encuentra declarada en
arm.h y definida en arm.cpp. Al necesitar del driver de la TCS-2 para
funcionar, se requieren tambin los archivos Comm_sr.h/.cpp los cuales
utilizan tambin a los archivos serial.h/.cpp.
Esta clase ser la que controle el proceso de clculo de posiciones y
movimientos del brazo en el PC, para despus, mediante la clase Comm y
serial, comunicarse con la TCS-2 para que sta traslade las rdenes a los
servomotores

Para poder utilizar este driver se deben aadir los archivos al proyecto del
siguiente modo:

Copiar los archivos del driver en el directorio del proyecto.

Aadir los archivos .cpp del driver al proyecto. Para ello pulsar con
el botn derecho sobre Source Files en la ventana Solution explorer.
Seleccionar Add y despus Existing Item. En el cuadro seleccionar
los archivos arm.cpp, Comm_sr.cpp, serial.cpp.

Aadir los archivos de cabecera .h del driver al proyecto. Para ello


pulsar con el botn derecho sobre Header Files en la ventana Solution
explorer. Seleccionar Add y despus Existing Item. En el cuadro
seleccionar los archivos arm.h, Comm_sr.h, serial.h.

Aadir en el fichero DriverDlg.cpp despus de la cuarta lnea


#include "Comm_sr.h"
#include "arm.h"

- 98 -

Memoria - Software del brazo robtico

Crear una variable de tipo arm y otra de tipo Comm encima de la


lnea de cdigo

BOOL

CDriverDlg::OnInitDialog()

del siguiente

modo:
//Creacin objetos de las clases comm y arm, que se usaran en la
aplicacin:
Comm c;
Arm a;
BOOL CDriverDlg::OnInitDialog()
{
CDialog::OnInitDialog();

De esta forma ya se pueden utilizar en la aplicacin las funciones y


variables del driver del brazo. El uso de stas se har a travs del objeto
tipo arm que se ha creado.
De esta forma si en cualquier funcin, por ejemplo las de los eventos, se
escribe el nombre del objeto seguido de un punto se puede acceder a las
funciones y variables de la clase, apareciendo una ventana como la de la
Figura 75.

Figura 75: Seleccin de funciones y variables de la clase arm

Esto mismo ocurre con el objeto c de la clase Comm.

4.3.1 Variables y funciones del driver


Las funciones y variables bsicas (mencionadas brevemente) del driver
son las siguientes. Ms adelante (4.3.1.1) se explican las fundamentales.
- 99 -

Memoria - Software del brazo robtico

Funciones y variables de clculo


a.calcular(82,45,64)//Funcin para el clculo de la posicin del
codo.

Devuelve

un

si

el

clculo

ha

sido

correcto y un 1 si la posicin enviada para la


mano es inalcanzable. Deja almacenados en unas
variables de la clase la posicin y ngulos
calculados.
a.coord_x_codo

//Variable que almacena la ltima coordenada X


calculada para el codo.

a.coord_y_codo

//Variable que almacena la ltima coordenada Y


calculada para el codo.

a.coordz_codo

//Variable que almacena la ltima coordenada Z


calculada para el codo.

a.phi

//Variable

que

almacena

el

angulo

que

debe

girar la primera articulacin del hombro.


a.theta

//Variable

que

almacena

el

angulo

que

debe

girar la segunda articulacin del hombro.


a.chi

//Variable

que

almacena

el

angulo

que

debe

girar la tercera articulacin del hombro.


a.alfa

//Variable

que

almacena

el

angulo

que

debe

girar la primera articulacin del codo.

Las siete variables anteriores son aquellas en las que quedan


almacenados los datos de posicin calculados con la funcin
calcular.
En la Figura 81 se indican claramente a que ejes corresponden cada
uno de los ngulos aqu indicados.

Funciones y variables de movimiento


a.girar()

//Funcin

usada

para

el

giro

de

los

servos

hacia la ltima posicin mano/codo conocida.


Actualiza
Devuelve

el
un

valor

del

si

todos

DC

de

los

cada

servos

servo.
ya

han

llegado a su posicin y un 0 si no es as. La


funcin realiza una modificacin de los ngulos
a

girar

para

ajustarse

las

limitaciones

mecnicas reales del brazo.


a.servos[]

//Vector que guarda la posicin actual de cada


servo (su DC).

a.servos_final[]

//Vector que guarda la posicin a la que debe


ir cada servo para alcanzar la ltima posicin
calculada.

- 100 -

Memoria - Software del brazo robtico


a.giro_servo(2,32)

//Funcin

privada

utilizada

por

la

funcin

girar para girar un poquito el servo indicado


hacia la posicin indicada. Si el servo ya est
en la posicin indicada devuelve un 1 sino un
0.

Funciones y variables de informacin


a.datos_posicin()

//Funcin

que

informacin

actualiza

un

carcterstica

de

vector
la

con

posicin

mano/codo actual.
a.datos[]

//Vector

con

datos

caractersticos

de

la

posicin mano/codo actual.

Estas son las funciones y variables fundamentales del driver del brazo. Si
se desea informacin ms completa consultar la Parte V, Manual de
usuario Driver Brazo, del documento.

Defines del driver

Son elementos de tipo define que se encuentran en el archivo arm.h. Los


ms interesantes son:
o radio: Define el valor del radio de las esferas que se utilizan
para el clculo de posiciones. Es la mitad del alcance. Si se
modifica el alcance del brazo, no hay ms que cambiar este
valor y el algoritmo seguir siendo vlido.
o ORIGEN y LIMITE: Dos constantes que marcan el valor
lmite que se puede poner en los DC de los servos. Estos
valores viene fijados por el driver de la TCS-2.
o LIMITE_DESVIACION: Fija el mximo valor de ngulo
permitido como desviacin entre los ngulos de las rectas
hombro-mano y hombro-codo. Se explicar esto en 4.3.2.7.
o MARGEN: Establece el valor de error que se permite a la
hora de calcular posibles posiciones codo. Es decir, que se

- 101 -

Memoria - Software del brazo robtico


admitan puntos que no estn exactamente en las dos esferas
al mismo tiempo, pero s muy prximos a la interseccin.
o NUM_PTOS_CODO: Fija el nmero de filas de la matriz de
almacenamiento de posibles posiciones codo. Este valor y el
anterior estn muy ligados. Cuando el anterior valor se
aumenta, se permite que ms puntos sean posibles
posiciones codo (con lo que se aumenta la probabilidad de
encontrar un codo definitivamente vlido), pero lgicamente
se deber aumentar tambin el valor de esta constante
porque va a haber ms puntos codo por lo que de no
aumentar este valor la matriz podra rebosar.
o Ajustes de los ngulos: Son una serie de constantes que se
pueden reajustar para precisar el posicionamiento de
algunos ngulos.

4.3.1.1 Funciones Clave del driver


Se procede a una explicacin ms detallada de las funciones ms
importantes del driver.

calcular(coord_x_mano,

coord_y_mano,

coord_z_mano):

Funcin

destinada al clculo de la posicin del codo. Devuelve un 0 si el


clculo ha ido bien, y un 1 si el punto indicado para la mano resulta
inalcanzable. Recibe las coordenadas deseadas para la mano
(previamente

indicadas

coord_x_codo, coord_y_codo

por
y

el

usuario).

coord_z_codo

En

las

variables

quedan guardados

los

valores de las coordenadas del codo que se van a usar. Y en las


variables

phi, theta, chi

alfa

los ngulos que debe girar cada

uno de los ejes. El sistema de clculo de posiciones y ngulos se


describe en el siguiente apartado 4.3.2. En la Parte VI se puede
encontrar todo el cdigo de esta funcin. A continuacin se muestra
un diagrama de flujo de la funcin para as comprenderla mejor.
- 102 -

Memoria - Software del brazo robtico


Inicio
Clculo de todas
las posibles
posiciones codo

SI

Revisados todos
los posibles
puntos

NO

Elige nuevo punto


de entre los
posibles

Ang.Desvo <
Ang.Desvo.ant

NO

SI
Punto ya
probado?

SI

NO
Guarda este punto

NO

Reinicio de Revisin
puntos

Clculo ngulos

ngulos
vlidos?

NO

SI

Probados
todos los
puntos?

Posicin para
codo coherente
habiendo revisado
todos los puntos?

SI
Guarda posicin y
Devuelve 0

NO

SI

NO

Devuelve 1 (No ha
encontrado
posicin)

Fin

Figura 76: Diagrama de flujo de la funcin calcular ( )

- 103 -

Memoria - Software del brazo robtico

girar():

Funcin que se encarga de girar los servos hacia la posicin

que les corresponde para llegar a la ltima posicin mano/codo


conocida. Es decir, realiza el desplazamiento de los servos hacia la
posicin que les corresponde a cada uno de ellos para alcanzar la
ltima posicin mano/codo calculada. En esta funcin es donde se
realizan los reajustes de ngulos, es decir, con la funcin anterior
(calcular) se han calculado los ngulos ideales a girar y aqu se
reajustan los valores en funcin del sentido de giro de cada servo,
de sus limitaciones mecnicas, etc. Actualiza el valor del DC de
cada servo (en el vector servos

[]).

Este nuevo valor de DC despus

ser enviado a la TCS-2 haciendo uso del driver de sta. El


movimiento lo hace de forma gradual, es decir, cada vez que se
llama a esta funcin, en ella se varan un poquito los DC de cada
servo. Esto se hace as para controlar el giro y que ste no sea tan
brusco como son los giros directos de los servos. De esta forma la
velocidad de giro del brazo viene controlada por la frecuencia que
se fije en el reloj de la aplicacin de control. Por ltimo, esta funcin
devuelve un 1 si todos los servos ya han llegado (su DC) a su
posicin y un 0 si alguno/s todava no.
Nuevamente, en la Parte VI se puede encontrar el cdigo de la
funcin completa. En la Figura 77 se muestra un diagrama de flujo
de esta funcin, que simplifica su comprensin.
Esta funcin hace uso de otra funcin privada de la clase,
giro_servo(servo,posicion),

la cual desplaza en una unidad el valor

del DC del servo indicado para llegar a la posicin indicada. Si ese


servo llega a esa posicin devuelve un 1 si no un 0.
En la Figura 78 se encuentra un diagrama de flujo de esta funcin
privada.

- 104 -

Memoria - Software del brazo robtico

Inicio
NO

Punto
alcanzable

SI
Reajuste ngulos

Toma un servo
nuevo
Indica el Error

Verifica lmites

Llama giro_servo ()

Enviadas
posiciones de
todos los servos

NO

SI
NO

Todos los servos


en su posicin
final

SI
Devuelve 0

Devuelve 1
(Movimiento
concluido)

Fin
Figura 77: Diagrama de flujo de la funcin girar ( )

- 105 -

Memoria - Software del brazo robtico

Inicio

SI

Est en
posicin
mandada

NO
Est en
posicin
inferior

NO

SI
Est en
posicin
superior

Incrementa el DC
en 1

SI
Decrementa el DC
en 1

Devuelve 1
(Posicin servo
alcanzada)

Devuelve 0

Fin
Figura 78: Diagrama de flujo de la funcin giro_servo ( )

- 106 -

Memoria - Software del brazo robtico

datos_posicion():

Funcin que actualiza un vector con los datos

caractersticos de la posicin mano/codo actual. De esta forma se


pueden conocer datos importantes como distintas coordenadas,
ngulos, posibles puntos codo calculados etc.

Como resumen indicar cul ser el proceso a seguir con las llamadas a
funciones.
Una vez que el usuario haya introducido las coordenadas para la mano, se
debe llamar a

calcular().

Esta funcin hace los clculos de posiciones y

ngulos para el movimiento solicitado por el usuario. Si el movimiento es


imposible lo indicar. Pero esta funcin slo hace los clculos, no los
movimientos en s mismos.
Despus se llama a girar(), la cual ser la que cargar en el vector servos[]
los valores de DC correspondientes para llevar a cabo el movimiento
anteriormente calculado en calcular().
Finalmente desde la aplicacin se hace uso del driver de la TCS-2 para
enviar esos datos de DC a los servos.
En cualquier momento que se desee informacin se llama a la funcin
datos_posicion(),

que actualiza el vector

datos[]

con la informacin de la

situacin actual.

En el Captulo 4 de la Parte V (Manual de usuario Driver Brazo) se detalla


nuevamente cules son los pasos para realizar las llamadas a funciones de
forma correcta.

En cuanto a las variables, algunas son privadas y otras son pblicas. Las
pblicas son:

coord_x_codo, coord_y_codo, coord_z_codo, phi, theta, chi,

alfa, gamma, *datos

servos[].

El resto de variables son privadas.

- 107 -

Memoria - Software del brazo robtico


En la Parte V Manual de usuario Driver Brazo, se describen nuevamente
algunas de estas variables y funciones.

4.3.2 Clculo global de posiciones


En la funcin

calcular()

de este driver se lleva a cabo el clculo de

posiciones, ngulos etc. El modo de llevar este acabo es el siguiente.

Se calculan todas las posibles posiciones para el codo. Para esto se


plantean dos esferas imaginarias de radio 0.75 m (la mitad del alcance).
Una en torno al origen (hombro) y otra en torno a la mano (posicin dada
por el usuario). Los puntos de interseccin de las dos esferas son puntos
posibles para el codo. El sistema completo para hacer este clculo se puede
ver en la Parte VI, pero bsicamente consiste en un bloque de tres for
anidados para ir probando puntos del espacio y comprobar que el punto
est en ambas esferas. La idea en forma de pseudocdigo sera:

for(coord_x_codo desde radio hasta +radio)


for(coord_x_codo desde radio hasta +radio)
for(coord_x_codo desde radio hasta +radio)
if(punto pertenece a ambas esferas)
Aado punto a la matriz de posibles codos

Con estos puntos se rellena una matriz que contiene todos los posibles
puntos codo.
A continuacin se procede a seleccionar una posicin definitiva para el
codo. Para ello el criterio de seleccin ser el siguiente.

- 108 -

Memoria - Software del brazo robtico


4.3.2.1 Seleccin de posicin especfica
Una vez se tiene todas las posibles posiciones para el codo se debe elegir
slo una de ellas como posicin definitiva en la que realmente se situar el
codo.
Se busca la posicin que genere mnimo par sobre el servo 3 (eje 3). Este
servo no est provisto de reductora con lo que se debe evitar que aparezca
demasiado par respecto a su eje o el motor se quemar. La forma de
conseguir esto es haciendo que el hombro, el codo y la mano estn
situados sobre una misma lnea. Esta situacin sera la que se puede
apreciar en la Figura 79.

Figura 79: Vistas 3D del brazo con hombro, codo y mano en lnea

De esta forma no habr ninguna fuerza generando par respecto el eje 3 ya


que como se puede apreciar en la Figura 80, las lneas de accin de todas
las fuerzas cortarn el eje de giro de ese servo con lo que no producirn
momento sobre l. En dicha figura las lneas rojas finas representan el peso
de la segunda barra y la flecha roja ms gruesa representa el peso de la
carga y de la mano.

- 109 -

Memoria - Software del brazo robtico

Figura 80: Momento generado por las fuerzas respecto eje 3

El modo de bsqueda de aquella posicin del codo que tiene estas


caractersticas se basa en calcular el ngulo que forma la recta hombromano con el eje i y el ngulo que forma la recta hombro-codo con el eje i
para un determinado codo. El codo para el cual la diferencia de esos dos
ngulos resulto 0 o 180 ser el ptimo ya que ser aquel en el que
hombro, codo y mano estn sobre la misma lnea.

De esta forma se habr seleccionado una posicin para el codo. Ahora


habr que ver si es realmente alcanzable dadas las limitaciones mecnicas
de giro. Para ello se procede a calcular los ngulos que se necesitara girar
cada eje para llegar a esa posicin codo-mano. Si los ngulos son vlidos
est ser la posicin definitivamente escogida para el codo si no lo son se
vuelve a elegir una nueva posicin codo segn el criterio de los dos
- 110 -

Memoria - Software del brazo robtico


ngulos y se prueba de nuevo. Para evitar que se est probando una y otra
vez con la misma posicin codo (y siempre te de que no es alcanzable
entrando as en un bucle), cuando se selecciona una posicin para probarla
se guarda un identificador de ella en un vector. Si la posicin no vale, a la
hora de seleccionar una nueva con el proceso anteriormente mencionado,
se comprueba que la posicin que se seleccione no haya sido probada
antes, buscndola en ese vector.

4.3.2.2 Clculo de ngulos


En cada una de las pruebas de las posiciones codo se calculan los ngulos
requeridos de giro en cada eje para alcanzar esa posicin mano/codo. Si
esos ngulos son vlidos (teniendo en cuenta las limitaciones mecnicas
de los ejes), esa posicin codo ser la definitiva.
Los ngulos de giro se definen en la Figura 81.

Figura 81: ngulos de giro

El proceso que se sigue para calcular los ngulos es el siguiente.


- 111 -

Memoria - Software del brazo robtico


4.3.2.3 ngulo primer servo ()
Es el giro respecto el eje i. Se basa en la posicin del codo en el plano jk.

Figura 82: Giro respecto eje primer servo

As este primer ngulo de giro ser:

= atan
( )

E 33: ngulo de giro primer servo

Donde Zc e Yc son las coordenadas X e Y del codo.


Como se observa en la Figura 82, al realizar este giro se pasa del sistema
de coordenadas (i, j, k) al (i1, j1, k1). La relacin entre ambos es la
siguiente:
1
1
0
=
1
0
1

0
cos
()
sen
()

sen
()
cos
()

E 34: Matriz de relacin de sistemas de coordenadas 0 y 1

A partir de esto se obtienen las coordenadas del codo en el sistema de


coordenadas 1.
1 =
1 = cos
() + ()
1
= + cos
()
E 35: Coordenadas del codo en sistema 1

- 112 -

Memoria - Software del brazo robtico


4.3.2.4 ngulo segundo servo ()
Giro respecto el eje k1. Utiliza las coordenadas 1 del codo, halladas
anteriormente.

Figura 83: Giro respecto eje segundo servo

As este segundo ngulo de giro ser:


1
= atan
( 1)

E 36: ngulo de giro segundo servo

Como se observa en laFigura 83, al realizar este giro se pasa del sistema de
coordenadas (i1, j1, k1) al (i2, j2, k2). La relacin entre ambos es la
siguiente:
cos
() sen
()
2
2 = sen
() cos
()
2
0
0

0
1
0 1
1
1

E 37: Matriz de relacin de sistemas de coordenadas 1 y 2

A partir de esto se obtienen las coordenadas del codo en el sistema de


coordenadas 2.
2 = cos
() 1 + () 1
2 = () 1 + cos
() 1
2 = 1
E 38: Coordenadas del codo en sistema 2

- 113 -

Memoria - Software del brazo robtico


4.3.2.5 ngulo tercer servo ()
Este tercer giro es el que lleva al codo, que ya est en su posicin, a estar
situado con el ngulo correcto para luego poder desplazar de forma
adecuada la segunda barra.
Lo que se necesita es que la coordenada j de la mano en el sistema de
coordenadas 3 sea cero, es decir, que la mano est en el plano i3, k3. Esta
condicin se debe a que despus de este giro ya slo queda uno ms para
colocar la mano y es un giro respecto a j3, es decir que la barra 2 con ese
giro se mueve por el plano i3, k3, por eso se requiere que la mano est en
ese plano.
De la misma forma que con los anteriores giros, con ste tambin se realiza
un cambio de sistema de coordenadas, desde (12, j2, k2) hasta (i3, j3, k3).
1
0
0
3
2
() sen
() 2
3 = 0 cos
0 sen
() cos
()
3
2
E 39: Matriz de relacin de sistemas de coordenadas 2 y 3

Si Xm, Ym y Zm son las coordenadas de la mano en el sistema absoluto


(fijo al espacio), operando de una forma equivalente a como se ha hecho
con la coordenadas del codo se obtienen las coordenadas de la mano en el
sistema 3.
3
2

=
2
3 = cos
() 2 + ()
3
2

= () 2 + cos
()

E 40: Coordenadas de la mano en el sistema 3

Desarrollando estas expresiones y utilizando la condicin expuesta al


inicio se obtiene el ngulo en que debe colocarse el tercer servo.
cos (cos
() + () )
3 = 0 = atan
(
)
cos ()
E 41: ngulo de giro tercer servo

- 114 -

Memoria - Software del brazo robtico


4.3.2.6 ngulo cuarto servo ()
El producto de las matrices E 34, E 37 y E 39 genera una matriz que
transforma directamente de las coordenadas en el sistema absoluto a las
coordenadas en el sistema 3. Mediante esa matriz se obtienen las
coordenadas de la mano en el sistema 3 a partir de las coordenadas en el
sistema absoluto que son las que introduce el usuario. (Estas coordenadas
no se haban calculado todava, en el apartado anterior se usan las del
sistema absoluto).
Con esto se calcula el ngulo en el que se debe colocar el cuarto servo.
3

= atan
(
)
3
(
)

E 42: ngulo de giro cuarto servo

4.3.2.7 Seleccin posicin final


Una vez calculados todos estos ngulos se comprueba si los valores
obtenidos son vlidos, es decir, si el brazo real puede generar esos giros.

Todo el sistema de clculo anterior se habr introducido en un bucle do


while de tal forma que mientras que no se encuentre una posicin vlida
se repiten una y otra vez los clculos de posicin y ngulos, cada vez para
una posicin codo distinta.

Como ya se coment, si se han llegado a probar todas las posibles


posiciones codo y ninguna ha sido realmente vlida, se cierra el clculo y
se indica que la posicin es inalcanzable.

Respecto a la diferencia de ngulos mencionada anteriormente, se permite


un cierto error, es decir, no se exige que los dos ngulos sean exactamente
iguales (que hombro, codo y mano estn exactamente sobre la misma
- 115 -

Memoria - Software del brazo robtico


lnea). Un pequeo margen es admisible ya que aunque el servo 3 no tiene
reductora y por tanto da poco par, algo s que da y se puede aprovechar.
El hecho de permitir ese margen de ngulos abre la posibilidad de ser
seleccionadas a muchas ms posiciones codo, lo cual hace que haya ms
probabilidades de que finalmente se encuentre una posicin para el codo y
que por tanto la posicin se considere alcanzable.
El margen de ngulos que se permite es 15. La razn por la que se
escoge ese valor se expone a continuacin.
Suponiendo que se da esa desviacin de 15 en una situacin con carga
mxima, el par que aparece sobre el eje 3 y que por tanto debe generar el
servo 3 ser:

15

0,75 m

15

170 g

0,75 m
15

500 g
Figura 84: Clculo pares respecto eje 3 en situacin lmite

= 30 0.75 = 0.37 ;

= 170 9.81 = 1.66 ;

= 30

0.75
= 0.19
2

= 500 9.81 = 4.905

3 = 1.66 0.19 + 4.905 0.37 = 2.13


E 43: Par respecto eje 3 en situacin lmite

Como se comprueba en E 43, el par que aparece sobre el eje 3 es ya


bastante alto. Si se tiene en cuenta que el ngulo real, debido a los errores
de potencimetros y dems puede ser algo mayor, al igual que la carga, el
valor de par estar cerca del valor mximo de los servos, 3Nm (Tabla 15).

- 116 -

Memoria - Software del brazo robtico

4.4 Aplicacin de control del brazo


Como se coment en el apartado 4.1, una aplicacin basada en ventana de
dilogo se desarrolla a base de ir aadiendo controles en la ventana y
escribiendo los correspondientes algoritmos en las funciones asociadas a
dichos controles. Estos controles o eventos se aaden en una pantalla
como la mostrada en la Figura 74, desde el desplegable Toolbox. En el
archivo DriverDlg.cpp (Driver es simplemente el nombre que se le ha dado
a la aplicacin en este caso) se escribe, en las funciones que aparecen
asociadas a los eventos al hacer por primera vez doble click sobre ellos, el
cdigo que se desea que se ejecute cuando el usuario haga click en dichos
eventos. Con el evento timer ocurre algo equivalente. La nica diferencia
es que no es el usuario el que lo activa sino el reloj cada vez que termina
su cuenta.
A partir de este punto se llama a la ventana de dilogo pantalla de
usuario, ya que es el elemento que este utiliza para interaccionar con el
brazo robtico.

- 117 -

Memoria - Software del brazo robtico

4.4.1 Pantalla de usuario

Figura 85: Pantalla de usuario

La Figura 85 muestra la mencionada pantalla de usuario. A travs de ella


el usuario podr mandar y recibir informacin del brazo.

La Tabla 17 explica qu indica cada uno de los elementos que aparecen en


la interfaz.

Nombre

Tipo Elemento

Estado Comunicacin

Indicador

Contador Ciclos

Start

Referencia
Indica si la comunicacin con la TCS-2 es
correcta (verde) o no (rojo)

Cuadro de texto

Muestra el nmero de ciclos de reloj hasta el

de Salida

momento.

Botn

Al pulsarlo se inicia el programa. La


aplicacin ya gobierna el brazo.

- 118 -

Memoria - Software del brazo robtico

Stop

Coord. X Mano

Coord. Y Mano

Coord. Z Mano

Botn

Al pulsarlo se pausa la aplicacin. Esta deja


de gobernar el brazo

Cuadro de texto

Recoge el valor que introduce el usuario

de Entrada

para la coordenada X de la mano

Cuadro de texto

Recoge el valor que introduce el usuario

de Entrada

para la coordenada Y de la mano

Cuadro de texto

Recoge el valor que introduce el usuario

de Entrada

para la coordenada Z de la mano


Al pulsarlo es cuando el programa

Enviar

Botn

realmente toma la posicin mano y calcula


la pos. Codo y los ngulos.

Coord. X Codo

Coord. Y Codo

Coord. Z Codo

Phi

Theta

Chi

Alfa

Cuadro de texto
de Salida

Cuadro de texto
de Salida

Cuadro de texto
de Salida

Cuadro de texto
de Salida

Cuadro de texto
de Salida

Cuadro de texto
de Salida

Cuadro de texto
de Salida

Muestra el valor que calcula el programa


para la coordenada X del codo (para
alcanzar la posicin mano)
Muestra el valor que calcula el programa
para la coordenada Y del codo (para
alcanzar la posicin mano)
Muestra el valor que calcula el programa
para la coordenada Z del codo (para
alcanzar la posicin mano)
Muestra el ngulo que calcula el programa
para la 1 articulacin del hombro. (para
alcanzar la pos. mano)
Muestra el ngulo que calcula el programa
para la 2 articulacin del hombro. (para
alcanzar la pos. mano)
Muestra el ngulo que calcula el programa
para la 3 articulacin del hombro. (para
alcanzar la pos. mano)
Muestra el ngulo que calcula el programa
para la 1 articulacin del codo. (para
alcanzar la pos. mano)

- 119 -

Memoria - Software del brazo robtico

OK. Mover

Botn

Servo 0 a 5

Al pulsarlo se acepta el clculo realizado de


pos. codo y ngulos y se procede a mover.

Cuadros de

Muestran las posiciones actuales de los

texto de Salida

servos (sus DC)

Nmero posibles

Cuadro de texto

posiciones codo

de Salida

N Pos. realmente

Cuadro de texto

vlidas codo

de Salida

ngulo hombro-mano

Cuadro de texto

hombro-codo

de Salida

Ok / Exit

Botn

Muestra las posiciones que tericamente


valen como pos. codo, para alcanzar la pos.
Mano introducida
Muestra las posiciones que en la prctica
(limitaciones mecnicas) valen como pos.
codo, para alcanzar la pos. Mano
Muestra el ngulo que forman la recta
hombro-codo y la recta hombro-mano. Es
un parmetro importante de diseo.
Se sale de la aplicacin

Tabla 17: Explicacin elementos de pantalla de usuario

A partir de aqu se explican con algo ms de detalle el funcionamiento de


cada uno de los botones (eventos fundamentales en la aplicacin).

4.4.1.1 Start
Al pulsar el botn de Start se manda a la TCS-2 los valores de
configuracin deseados para el funcionamiento del brazo.
La configuracin que se utiliza es la siguiente:
SetTimer(1,clk,NULL);
c.inicio();
c.configuracion(4,2,0);
c.desactiva_I2C();

Con esto se indica a la tarjeta la configuracin de las conexiones. As se


est configurando para cuatro ADs, 2 ultrasonidos y 0 motores auxiliares.
Realmente el nmero de los diferentes sensores no importa demasiado ya
- 120 -

Memoria - Software del brazo robtico


que no se usan, lo que importa es que la tarjeta permita utilizar 6 servos, y
con esta configuracin lo permite. Adems se est desactivando el bus I2C,
esto es algo que se debe hacer en la primera comunicacin con la tarjeta.
En esta primera configuracin no se le manda ningn dato a los servos
referente a su DC (Duty cycle) porque no interesa que ahora se muevan.
As se quedaran en la posicin en la que estn antes de arrancar.
Por otro lado tambin se arranca la cuenta del timer para que a partir de
aqu se ejecute su funcin cada vez que termine de contar.
Adems al hacer esta primera comunicacin, debido a su importancia, se
realiza una verificacin de que el proceso ha ido bien. Para ello se verifica
lo que devuelve c.comunica y se usa la funcin c.compruebaPing. En
funcin del resultado de esto se pinta en la pantalla de usuario un punto
verde o rojo indicando que la comunicacin ha sido satisfactoria o no
respectivamente. En la Figura 86 se muestra un ejemplo de esto tras un
fallo en la comunicacin.

Figura 86: Pantalla de usuario en fallo de comunicacin

- 121 -

Memoria - Software del brazo robtico


4.4.1.2 Stop
Cuando se pulsa este botn el brazo robtico deja de ser controlado, es
decir la TCS-2 deja de gobernarlo. Esto es as porque se para la cuenta del
timer por lo que ste ya nunca rebosa y por tanto nunca se ejecuta su
funcin que es donde verdaderamente se controla al brazo. El brazo de
todos modos no se caer, es decir mantiene su posicin, ya que pulsar el
botn stop no corta la alimentacin y adems la tarjeta mantiene en los
puertos de los servos las seales PWM que estaba enviando, y con el
mismo perodo. Pero si ahora se introduce una posicin para la mano y se
pulsa enviar etc. el programa no har nada y el brazo no se mover en
absoluto. La razn se acaba de exponer. La funcin asociada al timer ya no
se ejecuta, y desde sta se controla el movimiento, se ordenan los clculos
etc.

4.4.1.3 Enviar
Al pulsar este botn se le indica al programa que tome las coordenadas de
la mano que se acaban de introducir en los correspondientes cuadros de
texto. Una vez tomadas, el programa se encargar de comprobar si
realmente la posicin es distinta a la anteriormente introducida y si es as
ordenar el clculo de posiciones y ngulos para poder alcanzar esa
posicin de la mano. Si el clculo ha resultado correcto, es decir, esa
posicin de la mano es realmente alcanzable por el brazo teniendo en
cuenta sus limitaciones mecnicas por longitud y posibles giros, los
resultados se muestran por la pantalla de usuario. Si el programa
comprueba la imposibilidad de alcanzar esa posicin muestra un mensaje
por pantalla.

- 122 -

Memoria - Software del brazo robtico


4.4.1.4 Ok. Mover
Cuando se pulsa este botn se estn aceptando los clculos que se acaban
de realizar. Es decir, el programa asume que el usuario ha decidido que la
posicin calculada para el codo y los ngulos de giro son aceptables, y por
tanto, procede a realizar el movimiento. El programa tiene una proteccin
para verificar que la posicin es alcanzable, para prevenirse de casos en
los que el usuario pulse mover a pesar de que el programa le haya
indicado que no se puede llegar a ese punto.
El movimiento est diseado para hacerse paso a paso, es decir con
pequeos giros de los servos, de tal forma que el desplazamiento no
resulte muy brusco. La velocidad no obstante se puede controlar sin ms
que regular el perodo del timer. Cuanto ms pequeo sea ste, ms
rpidos sern los movimientos, hasta llegar al lmite de la velocidad
mxima de los servos.
En todo momento se va actualizando la informacin de posicin actual en
pantalla.

4.4.2 Sistema de gestin del brazo


Dos pginas ms adelante se puede encontrar, en la Figura 87, el diagrama
de flujo del algoritmo de control del brazo robtico. Este algoritmo de
control, como ya se ha dicho, es el que hay dentro de la funcin asociada
al timer, es decir, la funcin de ste es la que controla el funcionamiento
del brazo y va utilizando las funciones del driver.
El diagrama de flujo por tanto es el correspondiente a la funcin

void

CDriverDlg::OnTimer(UINT_PTR nIDEvent).

Se ejecutar cada vez que el timer termine la cuenta.


Para empezar se para la cuenta del timer (as aunque la funcin tarde
tiempo en completarse no se reinicia sola). Despus se pasa a verificar si el
botn enviar ha sido pulsado. Si es as se toma la posicin para la mano
- 123 -

Memoria - Software del brazo robtico


introducida por el usuario. Se verifica que la posicin sea distinta a la
anterior y que est dentro de una esfera de radio 1,5 metros (alcance). Se
hacen los clculos de posicin para el codo y ngulos, y si estos clculos
son correctos, se verifica si el botn mover est pulsado y si es as se
mueve un poco el brazo en direccin a la posicin calculada. En caso de
que el clculo haya sido incorrecto o el botn mover no haya sido pulsado,
se acaba la funcin.
En la comprobacin inicial del botn enviar, si no ha sido pulsado se pasa
a verificar si la ltima posicin calculada ya ha sido alcanzada. Si es as no
se hace nada y se acaba la funcin. Si esa posicin no ha sido alcanzada, se
mueven otro poco los servos, se verifica si se ha alcanzado ahora la
posicin y se acaba la funcin.
De esta forma cuando se entra a la funcin y el usuario no ha enviado una
nueva posicin de la mano (pulsando enviar) lo que se hace es seguir
moviendo el brazo hacia la ltima posicin y en caso de que ese
movimiento ya est completado no se hace nada. Si se da la circunstancia
de que un movimiento hacia una posicin calculada no se ha completado
pero el usuario enva otra posicin, el anterior movimiento se anula y se
procede al clculo y movimiento del nuevo (siempre que sea posible dicho
movimiento). Esto en realidad, es bastante improbable que ocurra debido
a la velocidad de movimiento del brazo.

Justo antes de salir de la funcin siempre se reinicia el timer para que as


este empiece otra vez a contar y vuelva a ejecutar la funcin al rebosar.

Todo este algoritmo se puede encontrar completamente desarrollado en


forma de cdigo en la Parte VI, Cdigo fuente.
A continuacin se encuentra el mencionado diagrama de flujo.

- 124 -

Memoria - Software del brazo robtico


Inicio

Rebose
cuenta
SI
Parar Timer

Enviar
Pulsado

NO

SI

Posicin
Alcanzada=1

SI
Tomar Posicin
Mano
NO

NO

Posicin
Distinta Y
Vlida
SI
Clculo de Posicin
Codo y ngulos

NO

Clculo
correcto
SI

NO

Mover = 1
SI
Mover un poco el
brazo hacia la ltima
posicin calculada
Posicin
Alcanzada

NO

SI
Posicin Alcanzada = 1

Reiniciar Timer

Fin
Figura 87: Diagrama de flujo del algoritmo de control del brazo robtico

- 125 -

Memoria - Resultados y experimentos

5
Resultados y experimentos

- 126 -

Memoria - Resultados y experimentos

Captulo 5

RESULTADOS Y EXPERIMENTOS

En este captulo se comentarn los resultados y pruebas realizadas con el


brazo. Se expondr la evolucin seguida en el diseo y estructura del
brazo, as como del control de ste. Tambin se comentarn los principales
problemas encontrados, sus soluciones y aquellas cuestiones que han
quedado inconclusas.

5.1 Evolucin
Inicialmente se plante un diseo para el brazo robtico como se ha
expuesto en 2.1. El diseo inicial en realidad era bastante acertado, pero
mostr algunos problemas relacionados fundamentalmente con la
estabilidad y rigidez de la estructura.

Figura 88: Diseo 3D inicial del brazo

El primer diseo fue el mostrado en la Figura 88. A partir de l se


construy y se hicieron las primeras pruebas que dejaron entrever los
- 127 -

Memoria - Resultados y experimentos


principales problemas. El ms importante de ellos era el hecho de que con
esta construccin el peso del brazo colgaba de los ejes de los servos 3 y 5,
como se aprecia en la Figura 88. Para solucionar esto se introdujo la pieza
comentada en 2.2.9. Su resultado fue bueno y se mantuvo en el
mecanismo. Otro de los problemas que se detect rpidamente fue el
hecho de que los ejes resbalaban sobre los bujes, pues estaban unidos
mediante un tornillo que haca presin sobre la superficie del eje. La
decisin fue introducir pasadores. Gracias al apriete que aportan estos se
gano bastante precisin en los giros al eliminar holguras.
Una vez hecho esto el brazo funcionaba relativamente bien pero segua
teniendo un importante problema de estabilidad y es que en determinados
giros se producan vibraciones muy fuertes. Estudindolo se comprob
que la principal razn era la debilidad de los soportes multifuncionales de
los servos. Se realiz un nuevo diseo para sujetarlos como se expone en
2.2.2.
Por ltimo apareci el problema de las interferencias entre las seales de
los potencimetros de los distintos servos. La razn por la que este
problema surgi aqu y no antes fue porque los anteriores soportes de
servos eran de una aleacin que tiene muy mala conductividad con lo que
las seales estaban prcticamente aisladas, en cambio los nuevos soportes
eran de aluminio, un buen conductor. Se introdujo el asilamiento de los
potencimetros y los condensadores de filtrado comentados en 3.1.3.
Esta fue la ltima gran modificacin introducida. Con esto el brazo se
comportaba de una forma aceptable.
A pesar de ello el brazo contina teniendo un cierto problema de
estabilidad. El origen de ste es el movimiento que realizan los servos. Su
giro se puede decir que es demasiado brusco. Aunque se les ordenen
desplazamientos de pocos grados, el servo los hace de una forma muy
veloz lo que implica que al parar se produce un frenazo brusco cuyo efecto
se ve magnificado debido a la gran longitud del brazo.

- 128 -

Memoria - Resultados y experimentos

5.2 Pruebas realizadas


El proceso seguido en el desarrollo de las pruebas fue el siguiente:

Pruebas ejes aislados

Consisten en verificar el funcionamiento de cada uno de los servos por


separado.

Los

que

interesan

fundamentalmente

son

los

servos

modificados, es decir, aquellos ejes de giro en los que se introduce


transformacin de par velocidad con engranajes. En estos experimentos lo
que se debe comprobar es:
Correcto funcionamiento de los rodamientos. Deben tener el
apriete adecuado, ya que poco apriete implica que tengan un
cierto cabeceo y se tiendan a salir de su sujecin y mucho apriete
conlleva que tengan problemas para girar e introduzcan un par
adicional en el giro que se debe vencer.
Paralelismo entre el eje de acero exterior y el eje de giro del
propio servo. Esto es muy importante ya que de no darse esta
condicin el giro ser descentrado con lo que se producirn
errores en los movimientos adems de problemas en la
transmisin del movimiento entre los engranajes.
Buen acople entre los engranajes. Deben estar totalmente
ajustados puesto que si queda holgura entre los dientes de uno y
otro, habr un cierto juego en el giro que teniendo en cuenta la
longitud del brazo provocar grandes oscilaciones en la mano.
Correcta colocacin del potencimetro. ste debe estar unido a
la pletina de aluminio de soporte en el ngulo adecuado para
aprovechar al mximo el ngulo de giro. Adems se debe
verificar que el origen de giro est exactamente donde se ha
supuesto para la programacin ya que si no se producir un
error en el movimiento, al creer el programa que el eje est en
una posicin pero ste est realmente en otra.

- 129 -

Memoria - Resultados y experimentos


Por ltimo, se debe comprobar que en el potencimetro no
entran interferencias. Es decir, que no le entra ruido desde la
estructura. En caso de estar mal aislado, si se toca la estructura
se notaran las interferencias. La prueba adecuada ser poner a
tierra la estructura. El movimiento debe funcionar sin problemas
si el aislamiento es bueno.
En la Figura 89 se indican los puntos de la articulacin a revisar.

Figura 89: Verificaciones en prueba eje aislado

Pruebas articulaciones (hombro y codo)

Una vez comprobado el correcto funcionamiento en los giros en cada eje


aislado, se procede a ultimar el conjunto completo del hombro y
comprobar su funcionamiento, y por otra parte la articulacin del codo.
Las verificaciones importantes en este caso son:

- 130 -

Memoria - Resultados y experimentos


Correcto funcionamiento cuando se estn produciendo varios
giros simultneos. Verificar que el consumo de energa no sea
excesivo y que unos desplazamientos no influyan en otros
debido a razones de vibraciones u oscilaciones.
Comprobar que las seales de los potencimetros no se
interfieren entre ellas. Es decir verificar la validez del
aislamiento.
Verificar que el cableado no sufre. Se encuentran por una parte
los cables de alimentacin y seal del servo a la TCS-2 y por otro
lado los cables de los potencimetros. Asegurarse de que el giro
en un eje no hace que los cables de otros servos queden
estrangulados etc.
Analizar las oscilaciones que aparezcan buscando su origen. Ver
hasta qu punto son peligrosas para la propia estructura.
Comprobar la estabilidad de los servos, es decir, que sus
soportes no se flexionen.
Estudiar mximos ngulos de movimiento para integrar los
valores exactos en la programacin.

Pruebas articulacin + barra

Se monta una barra a la articulacin y se prueba el movimiento. En el


nombro se monta slo la primera barra y se hacen pruebas. Por otra parte
en el codo se monta la segunda barra y se ensaya. Los puntos a estudiar
son:
Oscilaciones. Comprobar hasta qu punto se ven magnificadas
por el aumento de longitud.
Controlar consumos. El par a generar por parte de los servos se
ha visto claramente aumentado respecto los experimentos
anteriores por lo que el consumo subir claramente.

- 131 -

Memoria - Resultados y experimentos


Buscar holguras. Las pequeas holguras en la articulacin se
mostrarn ahora ms claramente ya que el aumento de longitud
multiplica su efecto.
Hacer las primeras pruebas con cargas adicionales. Comprobar
cmo se comporta el brazo.

Pruebas sistema completo

Se acopla la primera barra al hombro, en el extremo de sta se conecta el


codo y a ste se le ensambla la segunda barra. Las verificaciones
fundamentales en estos experimentos sern:
Estabilidad general del brazo. Verificar en distintos tipos de
giros cmo se comporta. Muy importante el momento de la
parada. Como ya se ha comentado, los frenazos de los servos
son momentos crticos. Estudiar dnde afectan ms las
oscilaciones y buscar las zonas que introducen flexibilidad al
conjunto para tratar de eliminarla. Se intenta que el bloque
quede rgido.
Controlar de nuevo el consumo. Ahora ya se est en las
condiciones finales y el consumo ser alto. Es importante
analizar los valores de corriente consumida para poder hacer
una estimacin del par que estn teniendo que entregar los
servos. Evitar llegar a altas corrientes que sobrecalienten a los
servos.
Medidas de velocidad. Calcular los valores mximos. En el
proyecto no se ha prestado especial atencin a la velocidad de
movimiento pero ser interesante tener informacin sobre esto.
Estudio del comportamiento del brazo en las condiciones
extremas de encontrarse totalmente estirado. Comprobar cmo
aguanta la estructura.

- 132 -

Memoria - Resultados y experimentos


Por

ltimo,

si

relativamente

todas

las

pruebas

exitosas,

es

decir,

anteriores
el

brazo

resultan
funciona

aceptablemente, introducir carga. Hacer pruebas con distintos


valores de carga. Empezando por cargas bajas y el brazo
recogido y evolucionando hacia situaciones ms exigentes.
Recoger

datos

del

comportamiento.

Se

deben

tomar

precauciones durante este proceso. El brazo se est llevando al


lmite y podran producirse importantes desperfectos si se
sobrepasan sus posibilidades.

Figura 90: Prueba del brazo robtico completo

Para los tres primeros tipos de pruebas (es decir para todas excepto las
pruebas del brazo completo) se utiliz un programa (driver) simplificado
que permite mover de forma independiente cada eje a una determinada
posicin. La pantalla de usuario de este programa se muestra en la Figura
91. Su funcionamiento simplemente se basa en introducir en los cuadros
de texto el nmero del servo que se desea mover y la posicin a la que se
desea mover. Pulsando enviar se enva el dato y se realiza el movimiento.
- 133 -

Memoria - Resultados y experimentos

Figura 91: Pantalla de usuario del driver para pruebas

Las pruebas con el brazo completo se llevaron a cabo utilizando el driver


completo expuesto en 4.3 y 4.4.

5.3 Resultados
Se realizan las pruebas comentadas en el apartado anterior. Con ellas se
detectan los problemas bsicos comentados en 5.1 y se resuelven en la
medida

de

lo

posible.

Finalmente

el

brazo

queda

construido

completamente.

Las pruebas realizadas arrojaron los siguientes datos:


Peso Brazo

Alcance

Velocidad Eje 1

Velocidad Eje 2

2,75 Kg

1,4 m

2,8 seg/90

1,3 seg/90

Tabla 18: Caractersticas finales del brazo

- 134 -

Memoria - Resultados y experimentos


En la Tabla 18 se comprueba como los objetivos fundamentales se han
cumplido. A continuacin se muestran los resultados de las pruebas de
carga.

Consumo

Consumo

Validez

mximo

nominal

comportamiento

OK

1,3 A

0,45A

OK

50 g

OK

1,6A

0,65A

OK

100 g

OK

2,1A

0,95A

OK

250 g

OK

2,5A

1,2A

OK

500g

Media

3,1A

1,8A

OK

Carga

Estabilidad

Nula

Tabla 19: Pruebas de funcionamiento

Se decidi no subir ms el valor de la carga dado que el brazo se


encontraba ya en una situacin lmite y se corra el riesgo de producir
desperfectos. Como se puede apreciar en la Tabla 19 los valores de
corriente ya eran muy elevados y el calentamiento de los servos bastante
alto. Por lo que se prefiri no subir ms el peso para evitar quemar los
motores. Cuando se habla de estabilidad media en la tabla se quiere
indicar que las oscilaciones ya eran importantes pero sin llegar a hacer
temer por la estructura. En principio el comportamiento del brazo en
todas estas condiciones se considera vlido.
Se debe indicar que los servos integrados en el brazo poseen una
proteccin trmica que desactiva la alimentacin del dispositivo a partir
de determinados valores de corriente. Para ms de 500 gramos y el brazo
bastante estirado la proteccin saltaba rpidamente lo que indica que no se
puede pasar de esos valores.

- 135 -

Memoria - Resultados y experimentos


Se puede concluir que en cuanto a la carga, el brazo es capaz de
transportar en cualquier circunstancia hasta 500 gramos. Y en zonas de
radio ms reducido (con lo que los pares son ms bajos) se puede trabajar
con pesos bastante mayores.
Se estima que si el brazo se mueve dentro de un cilindro (centrado en el
eje Z del hombro) de radio 60cm el brazo puede mover los 2 Kg de las
especificaciones. Si se excede esa distancia el par requerido crece
demasiado y por tanto tambin el consumo y las protecciones trmicas se
disparan.
Los datos de la Tabla 18 acerca de velocidad se refieren a la velocidad en el
eje en el que se transforma con la corona grande (eje 1) y los dos ejes en los
que se usa la corona pequea (eje 2). Los datos de velocidad varan muy
ligeramente al introducir carga reducindose apenas 1 o 2 decimas de
segundo.
Los valores indicados en la Tabla 19 sobre consumo mximo y nominal se
refieren al consumo cuando el brazo est totalmente estirado (mximo) y
cuando se estn realizando movimientos normales sin estirar demasiado
el brazo (nominal). Ciertamente el consumo casi siempre ronda los valores
nominales ya que en la mayora de las posiciones aunque un servo est
relativamente forzado, los dems no y as se compensa. Slo en el caso del
brazo totalmente estirado, donde al menos dos servos estn muy forzados,
el consumo se dispara.

Analizando los datos de la Tabla 18 y Tabla 19 se puede decir que se ha


conseguido desarrollar un brazo robtico de altas prestaciones, ligero y
veloz. Todo esto le aporta una gran versatilidad permitiendo su utilizacin
en muchos entornos desde robots mviles a posiciones fijas.

El peso total del brazo ha quedado realmente bajo, estando muy por
debajo del lmite mximo de 8 Kg. El alcance es de 1,4 metros. Pero
- 136 -

Memoria - Resultados y experimentos


todava hay que aadirle la mano con lo que se ganarn esos 10 cm que
faltan y se alcanzar el metro y medio. La velocidad de movimiento es
bastante alta dadas sus caractersticas. De hecho, como se comentar en el
Captulo 7, es incluso demasiado veloz y sta es la causa del
comportamiento inestable en determinadas circunstancias. En cuanto al
payload o capacidad de carga, se ha quedado por debajo de lo esperado
inicialmente. Las razones son dos. La primera es que los servos han
resultado algo cortos de potencia aunque como se ver esto tiene una
posible futura solucin. La segunda es la relativa fragilidad de algunos
puntos de la estructura. Los esfuerzos que se estn manejando aqu son
bastante altos y algunos elementos de la estructura han demostrado
encontrarse en una condiciones lmite. En el Captulo 7 se desarrollan las
posibles mejoras que se podran realizar en este aspecto para resolver este
problema del payload. Estas son fundamentalmente, sustituir los
elementos ms forzados y aumentar la relacin de transformacin en la
reductora.
Los clculos realizados en el diseo eran correctos pero la razn por la que
finalmente la realidad no corresponde con el modelo es una simplificacin
realizada. En principio, se previ que se podan obviar las ecuaciones
dinmicas porque se consider que dada la baja velocidad de
movimientos, las ecuaciones estticas se aproximaran suficientemente a la
realidad. Finalmente la velocidad no ha sido tan baja y esto hace aparecer
determinados esfuerzos que no fueron contemplados en el diseo. Si a
esto se aade lo ya comentado respecto a la falta de potencia de los servos
y a las piezas que se tuvieron que aadir con el rediseo, se explica la
razn de la relativa escasez de payload.

En cuanto al aspecto de la precisin de movimientos, durante todo el


diseo no se ha prestado demasiada atencin, pero esto es porque este
brazo no tiene objetivo de precisin, por ello se admite en el diseo una
flecha de 3.4 cm (ver 2.1.2). La razn de ignorar la precisin es porque,
- 137 -

Memoria - Resultados y experimentos


como se ver en el Captulo 7, en el futuro el control de movimientos se
har mediante una cmara de video, la cual vigilar la posicin de la
mano, con lo que si se produce una mayor o menor deformacin, la
cmara lo ve y realiza la correspondiente correccin de posicin.

Por otra parte el driver desarrollado ha funcionado correctamente


permitiendo una fcil programacin del control del brazo a cualquier
usuario.

Analizando las posibilidades de alcance se descubre que en realidad el


brazo no alcanza cualquier punto dentro de la semiesfera de radio 1,5
metros. La causa son los servos. Estos (sus potencimetros) estn limitados
a 180 con lo que los posibles movimientos del brazo estn limitados.
En la Figura 92 se muestra una imagen en 3D en la que se aprecian los
puntos inaccesibles para el brazo dentro de la mencionada semiesfera.
Como se observa, el primer cuadrante es el ms problemtico.
Fundamentalmente en las zonas bajas. Adems los puntos muy prximos
al origen de coordenadas absoluto tambin son inaccesibles. El 2 y 3 er
cuadrante apenas tienen limitaciones (nicamente muy cerca del origen).

Figura 92: Zonas de alcance del brazo robtico

- 138 -

Memoria - Resultados y experimentos


Es decir, todo el volumen rojo de la Figura 92 representa las zonas
inaccesibles. Como se comprueba, actualmente se puede trabajar sin casi
ninguna restriccin en todo el 2 y 3er cuadrante.
Como se ver en el prximo captulo este problema de alcance se puede
solucionar fcilmente instalando unos servos de 360, es decir unos servos
cuyos potencimetros puedan girar 360. Se podra pensar en simplemente
sustituir los potencimetros actuales no todo el servo, pero esto se debera
hacer con mucha precaucin debido a que la seal de control cambiara y
la tarjeta interna del servo podra no aceptarlo.

Con todo esto los resultados finales obtenidos, relacionados con los
buscados se muestran en la Tabla 20.

Valores

Valores

Valores

objetivo

Estimados

Obtenidos

Peso

< 8 Kg

2 Kg

2,75 Kg

Alcance

1,5 m

1,4 m

1,4 m

Payload

2 Kg

2 Kg

0,5 Kg

Consumo en vacio

0,45 A

Consumo en carga

1,8 A

Velocidad Eje 1

2,8 seg/ 90

Velocidad Eje 2

1,3 seg/ 90

Tabla 20: Caractersticas del brazo buscadas, estimadas y conseguidas

Los ltimos cuatro datos se refieren a magnitudes que en principio no


eran demasiado relevantes para el diseo y por eso su valor no se fij
inicialmente ni se estim. El alcance estimado y obtenido es de 1,4 metros
porque todava se debe aadir la mano y esta aportar la longitud
necesaria para llegar a los 1,5 m.
- 139 -

Memoria - Resultados y experimentos


En la Tabla 21 se indican los pesos de cada una de las partes bsicas del
brazo, al ser esta una de las caractersticas crticas del diseo.
Peso Hombro

1600 g

Peso Codo

850 g

Peso Barra 1

140 g

Peso Barra 2

170 g

Peso Total

2760 g

Tabla 21: Distribucin final de pesos en el brazo

As el brazo robtico final resulta:


o Muy ligero, en torno a los 3 Kg.
o Alcance de 1,4 metros.
o Alta velocidad de movimiento 2 seg/90
o Mximo payload de 500 g.
o Fcilmente controlable mediante el driver diseado.
o Instalable en robots mviles.
o De uso muy verstil.

- 140 -

Memoria - Conclusiones

6
Conclusiones

- 141 -

Memoria - Conclusiones

Captulo 6

CONCLUSIONES

En este captulo se analizar el proyecto realizado. Se comentarn los


objetivos que se han cumplido, las razones por las que no se han
alcanzado otros y las aportaciones realizadas.

6.1 Conclusiones
Realizando un estudio de todo lo planteado en el Captulo 1 acerca de
objetivos y metodologa del proyecto se puede concluir que el desarrollo
del trabajo ha sido exitoso. Se han podido cumplimentar los objetivos
fundamentales siguiendo los tiempos de planificacin y nicamente uno
de los aspectos, el de la carga, ha quedado sin concluir por razones
expuestas anteriormente. A pesar de ello, el brazo se ha dejado en una
situacin tal que, como se comentar en el prximo captulo, se podr
lograr este objetivo sin demasiadas modificaciones.
Las fases genricas fundamentales del proyecto han sido:

Diseo

El diseo requiso un tiempo importante debido a la gran cantidad de


posibilidades de que se disponen a la hora de desarrollar la arquitectura
del brazo, as como para elegir los materiales ms adecuados. El modelo
propuesto inicialmente en general ha ido bien aunque se debieron hacer
modificaciones

Fabricacin y construccin

En la fase de construccin, se necesitaron muchas horas de taller para


poder fabricar todas las piezas del brazo, ya que como se comenta en el
Captulo 2, hay una gran cantidad de componentes originales para este
diseo que se debieron fabricar expresamente. Una vez elaborados, la
construccin tampoco fue tarea fcil debido a la complejidad del montaje.
- 142 -

Memoria - Conclusiones
Los principales escollos surgieron a la hora de introducir los actuadores
(servos) con sus modificaciones.

Prueba y rediseo

Ha sido probablemente la etapa ms importante y la que ha permitido


llevar

a buen puerto

el proyecto. Se

ha requerido

introducir

modificaciones de muchos elementos para mejorar el funcionamiento. En


unos casos por cuestin de rigidez del conjunto, en otros para lograr ms
precisin de movimientos etc.

Programacin

El desarrollo del driver tambin constituy una tarea ardua. El clculo de


posicionamientos y ngulos es relativamente complejo y el desarrollo de
una clase que permita el uso sencillo de todo el algoritmo resulta costoso.
Por ltimo se desarrollaron una serie de aplicaciones usando dicha clase
para poder controlar el movimiento del brazo.

Oct.

Nov.

Dic.

Enero

Marzo

Abril

Mayo

Junio

Desarrollo de
brazo robtico
Integracin del
brazo con la
TCS2
Pruebas del
brazo y mejoras
Diseo driver
C++ para mov.
brazo
Programacin
driver mov.
brazo
Desarrollo
aplicacin que
maneje el driver
Desarrollo
aplicacin
demostrativa

Escritura de
memoria

Tabla 22: Planificacin del proyecto

- 143 -

Memoria - Conclusiones
En la Tabla 22 se muestra una planificacin aproximada del proyecto. Se
debe indicar que los plazos se fueron cumpliendo razonablemente bien.
Las marcas amarillas se corresponden con los hitos bsicos del proyecto.

Analizando especficamente los objetivos se observan los resultados


siguientes.
El objetivo general del proyecto se ha alcanzado: Desarrollar un brazo
robtico ligero, verstil, con capacidad para ser instalado en robots
mviles (por su peso y su sistema de control, este brazo tiene esa
posibilidad), con largo alcance, buena capacidad de carga y velocidad de
movimientos.
Analizando especficamente cada uno de los objetivos:

1,5 metros de alcance

OK

El sistema desarrollado tiene exactamente esa cota de alcance si se tiene en


cuenta que se le tiene que aadir en una futura ampliacin el conjunto de
la mano. En este momento el alcance es de 1,4 metros. Sin duda el
mecanismo de la mano permitir alcanzar los 1,5 metros.

Peso del brazo inferior a 8 Kg

OK

Este objetivo se ha logrado holgadamente. El peso total del brazo (sin


carga) ha quedado por debajo de la mitad de esta restriccin. Se podra
pensar que si se hubiese aumentado el peso del brazo se podra haber
mejorado alguna de las caractersticas del brazo, pero como se ha visto y
se ver los materiales se han optimizado de tal forma que se consigue la
mejor relacin peso total, capacidad de movimiento. Es decir, el aadir
ms peso a la estructura, apenas habra aportado estabilidad y en cambio
habra limitado enormemente la capacidad de desplazamientos del brazo.

- 144 -

Memoria - Conclusiones

2 Kg de Payload mximos

Parcialmente

Este es el nico objetivo que no se ha logrado cumplir plenamente. A


pesar de no haber alcanzado los 2 Kg, el brazo si tiene buena capacidad de
carga. Esta afirmacin se basa en el estudio de otros brazos existentes.
Nuestro brazo ofrece las siguientes caractersticas de carga destacando la
relacin Payload / Peso:
Alcance [m]
1,4

Peso
[Kg]

Payload [Kg]

2,75

Relacin

Relacin

Payload/Peso

Alcance/Peso

0,18

0,51

0.5

Tabla 23: Caractersticas de carga del brazo robtico

Mientras que estas mismas caractersticas de los brazos robticos de los


principales fabricantes son:
Peso
[kg]

Payload
[kg]

Relacin

Relacin

MODELOS

Alcance
[m]

Payload/Peso

Alcance/Peso

Staubli TX 60 L

0,9

50

2,5

0,05

0,02

Staubli TX 90 L

1,2

90

0,07

0,01

Denso VM 6083g

80

10

0,13

0,01

Denso VS 6577G-B

0,8

36

0,14

0,02

Adept Viper S650

0,65

28

2,5

0,09

0,02

Adept Viper S850

0,85

29

2,5

0,09

0,03

Kawasaki FS003N

0,62

20

0,14

0,03

ABB irb 140

0,8

96

0,05

0,01

Mitsubishi RV-3SB

0,72

37

3,5

0,09

0,02

Mitsubishi RV-2AJ

0,5

17

0,12

0,03

Motoman HP3 XF

0,7

47

0,06

0,01

Fanuc LR Mate 200


iB/5c

0,7

45

0,11

0,02

Epson ProSix PS3

0,75

40

0,08

0,02

Tabla 24: Caractersticas de carga de otros brazos robticos

- 145 -

Memoria - Conclusiones
Como se puede comprobar en la Tabla 23 y Tabla 24, el brazo robtico
desarrollado tiene una mejor relacin Payload (capacidad de carga)/Peso
(del brazo) que los modelos de los principales fabricantes. Y no slo eso
sino que adems si se analiza el dato de alcance, se observa como el brazo
supera claramente a los dems modelos.

El modelo desarrollado presenta importantes mejoras en capacidades


respecto a los modelos desarrollados por los principales fabricantes. Los
datos se encuentran en la Tabla 25.

Relacin
Payload/Peso
Relacin
Alcance/Peso

Brazo

Media otros

Desarrollado

modelos

0,18

0,09

X 2

0,51

0,02

X 25,5

Mejora

Tabla 25: Comparativa brazo desarrollado Vs otros modelos

Se comprueba definitivamente como el brazo robtico construido en este


proyecto supera sin duda en los aspectos de peso del brazo, payload y
alcance a los modelos de otros fabricantes.
La desventaja se encuentra en la velocidad. Este brazo ser algo ms lento,
aproximadamente la mitad que los modelos analizados. Pero esto
realmente no supone ningn problema. La razn es que este dispositivo
no est pensado para ser utilizado en la industria, donde los tiempos de
actuacin si son crticos para reducir tiempos de ciclo y as ahorrar costes.
El objetivo de este brazo es ser ensamblado en robots mviles, y la
velocidad de manipulacin de estos no es realmente tan importante. De
hecho el anlisis de las caractersticas de este brazo muestran como es
- 146 -

Memoria - Conclusiones
idneo para su objetivo de uso en robots mviles, fundamentalmente
gracias a su tremenda ligereza y largo alcance.
Como ltimo comentario en cuanto al objetivo del payload se debe indicar
que aunque no se alcancen los 2Kg (la capacidad actual son 0.5 Kg) se han
planteado una serie de modificaciones que permitiran sin demasiado
problema alcanzar ese objetivo. Estas ideas se exponen en el siguiente
captulo.

5 Grados de Libertad

OK

Este objetivo tambin est cumplido. El brazo presenta 5 grados de


libertad. Adems, estos sern ampliables fcilmente en funcin del diseo
de mano (o mueca) que se pueda hacer en el futuro.

Desarrollo Driver de Control

OK

Este punto no se introdujo como objetivo fundamental en la presentacin


inicial del proyecto, pero sin duda es una parte bsica del conjunto. Se ha
desarrollado un driver completo de muy fcil manejo para el usuario (no
tiene ms que introducir las coordenadas en las que desea que se
posicione la mano). La precisin de movimientos que consigue el driver es
alta. Adems gracias al desarrollo de la clase que controla el brazo, la
generacin de distintas aplicaciones para regular el funcionamiento del
brazo es realmente sencilla.

- 147 -

Memoria - Conclusiones
Como conclusin se puede decir que el proyecto ha resultado satisfactorio,
permitiendo el desarrollo de un brazo robtico de alto rendimiento con las
siguientes propiedades:
o Peso tremendamente optimizado, 2,75 Kg
o Alcance de 1,4 metros.
o Alta velocidad de movimiento. ~1,5 seg/ 90
o Mximo payload de 500 g.
o Fcilmente controlable mediante el driver diseado.
o Instalable en robots mviles
o Versatilidad de uso.

Adems de todo esto, como se ver en el siguiente captulo (Futuros


desarrollos), se puede decir que el trabajo realizado ofrece una enorme
posibilidad de desarrollo, ya que una vez completo el brazo, (a partir de
las ampliaciones expuestas en el prximo captulo) se podr fusionar el
producto con otras aplicaciones en desarrollo actualmente para crear un
conjunto muy innovador.
Concretamente, una de las posibilidades sera la siguiente:

Brazo robtico + Plataforma mvil + Tarjeta electrnica capaz de controlar


todo + sistema de visin artificial.

Se obtendra as un dispositivo final con unas posibilidades de uso


tremendamente amplias en todo tipo de sectores como industria, servicios,
construccin, ocio, ambientes domsticos, de oficina, etc.

- 148 -

Memoria - Futuros desarrollos

7
Futuros desarrollos

- 149 -

Memoria - Futuros desarrollos

Captulo 7

FUTUROS DESARROLLOS

Este captulo est destinado a la exposicin de las mejoras y ampliaciones


que se pueden aplicar al proyecto. No todas ellas tienen que ver con los
objetivos especficos del proyecto, pero estn todas orientadas hacia tratar
de mejorar el funcionamiento del mecanismo y dotarle de mejores
caractersticas.

7.1 Posibilidades de desarrollo


Las posibilidades de evolucin para el brazo desarrollado en este proyecto
son numerosas. Se van a clasificar en dos grandes grupos: mejoras al
diseo actual y ampliaciones de ste.

7.1.1 Mejoras

Aislamiento de los potencimetros

Ya se coment en 3.1.3 como es imprescindible lograr el aislamiento del


plano de los potencimetros para as lograr que la seal de posicin del eje
no se vea sometida a interferencias de los otros potencimetros y de
ruidos que entren por la estructura. En el diseo actual, este aislamiento,
por cuestiones de tiempo y simplicidad, se llev a cabo reduciendo las
dimensiones del plano y aplicndole cinta aislante. La solucin es vlida,
es decir, el sistema funciona as. Pero probablemente sea ms elegante y
preciso hacerlo de otro modo. La solucin pensada consiste en utilizar un
fragmento de plstico entre el eje de acero y el potencimetro. El plano del
potencimetro se introduce en un orificio con forma rectangular en la
pieza de plstico, y esta pieza gira concntricamente con el eje de la
articulacin correspondiente. De esta forma se obtiene la medida de
- 150 -

Memoria - Futuros desarrollos


posicin y el sistema quedara mejor instalado. El montaje resultara como
el de la Figura 93.

Figura 93: Modificacin sistema de aislamiento del potencimetro

Topes de giro

Los servos utilizados en el proyecto tienen un ngulo mximo de giro de


180. Esto quiere decir que los potencimetros tiene un ngulo mximo de
180. Por tanto el eje de los servos no modificados slo podr girar media
vuelta, lo mismo que los ejes de las articulaciones en las que se han
modificado los servos. En el caso de los servos no modificados no hay
ningn problema ya que el servo tiene internamente sus propios topes
mecnicos de proteccin. En cambio en el caso de los servos modificados,
esos topes lgicamente se eliminaron para que el eje del servo pudiera
girar ms de media vuelta (es solidario al pin que gira muchas ms
vueltas que la corona). Es por esto que como no se ha introducido ningn
tope mecnico en los ejes de las articulaciones (los que tienen asociados los
potencimetros que slo giran 180) se corre el riesgo de que en un
determinado movimiento se produzca un error, se gire ms de 180 y el
potencimetro correspondiente se rompa.
- 151 -

Memoria - Futuros desarrollos


La solucin es introducir topes en las articulaciones. Existen dos opciones:

Topes mecnicos simplemente contra los que choque el


brazo si se pasa de ngulo.

Finales de carrera colocados adecuadamente.

La primera solucin es sin duda ms simple. Con poner unas pletinas de


aluminio de suficiente grosor amarradas a puntos adecuados de la
estructura sera suficiente. Pero esta solucin no es totalmente satisfactoria
ya que si se produce el fallo el brazo chocara contra el tope, pero seguir
intentando girar, el par proporcionado por los servos se disparar, estos se
calentarn y podran llegar a quemarse si no se corta rpido la
alimentacin.
Es por esto que la segunda solucin es mejor, aunque es ms laboriosa.
Consistira en colocar adecuadamente unos finales de carrera en cada uno
de los extremos de giro de cada articulacin modificada (3 articulaciones,
6 finales de carrera). De esta forma si el brazo se pasa pulsar el final de
carrera correspondiente y la tarjeta a travs de una de sus entradas
digitales detectar esto actuando en consecuencia. Lo nico que se debe
aadir es que la estructura de estos finales de carrera debe ser rgida para
que si el sobrepaso de ngulo se produce por mala manipulacin del brazo
encontrndose ste desconectado, el apoyo aguante y evite la rotura del
potencimetro.

7.1.2 Ampliaciones

Reductora

Ampliar la relacin de transformacin sera buena idea. Consiste en


aumentar la diferencia de dientes entre corona y pin en las
articulaciones en las que se est llevando a cabo transformacin de par
velocidad. Actualmente estn montados un pin de 17 dientes y una
- 152 -

Memoria - Futuros desarrollos


corona de 130 (la corona grande) formando un sistema reductor como el
expuesto en 2.1.3 y 2.2.13. Aumentar la relacin de transformacin puede
que no sea tan simple como parece. El problema surge del hecho de que
para que dos engranajes engranen deben ser del mismo mdulo, y por
cuestiones de geometra no es posible encontrar un engranaje de mdulo 1
inferior a 12 dientes ni muy superior a 130 dientes. (Lgicamente si se baja
el mdulo para lograr piones menores o se sube para encontrar coronas
mayores, el otro engranaje se ve afectado en el sentido contrario).Por tanto
la solucin de simplemente aumentar la corona y/o reducir el pin no
vale ya que por las limitaciones del mdulo apenas se va a conseguir
aumentar la relacin de transformacin.
En resumen, utilizando un mecanismo de una nica reduccin apenas se
puede aumentar la transformacin actual. Lo que se debe hacer por tanto,
ser disear un sistema con mltiples reducciones que resultar ms
complejo. Esta es la razn por la que en este proyecto no se ha llevado a
cabo est ampliacin, la alta complejidad requiere un cambio importante
en la estructura y bastante tiempo.
En principio, con tres engranajes (siendo el de en medio doble) podra ser
suficiente. Lgicamente el sistema de control de posicin con el
potencimetro se deber colocar en el ltimo engranaje, el del eje de la
articulacin.

Una vez visto cmo se desarrollara la ampliacin se ver el porqu de


esta. La motivacin que lleva a hacer esto es doble:

Se obtiene un mayor par en el eje final, con lo que se logra un


aumento importante en la capacidad de carga del brazo. En
la

siguiente

ampliacin

mencionada

se

indican

los

consiguientes refuerzos a realizar en componentes.

Se reduce la velocidad angular en los ejes. Esto puede


parecer negativo, pero en realidad no lo es. Como se ha
- 153 -

Memoria - Futuros desarrollos


venido

comentando

anteriormente,

el

origen

de

la

inestabilidad del brazo es la alta velocidad de giro de ste.


En realidad la razn es exactamente el brusco frenazo que se
produce al acabar un movimiento. Esto es algo que no se
puede controlar fcilmente por software, ya que este tipo de
servos no permite regulacin de velocidad. Su velocidad es
directamente proporcional a la tensin de alimentacin, y si
se reduce sta, tambin cae el par generado. En cambio, si se
consigue reducir la velocidad de giro con ms relacin de
transformacin, se aumenta el par y el frenazo que se
produzca ser menor al haber menos diferencia entre la
velocidad de funcionamiento y el paro. De esta forma
bajando la velocidad de giro se podr mejorar la estabilidad,
reduciendo las oscilaciones de parada del brazo. Adems,
teniendo en cuenta las tareas que se le van a dar al brazo
(manipulacin desde robots mviles, es decir, no industria)
ste no requiere altas velocidades de movimiento.

Refuerzo componentes

Al pasar a trabajar con mayores pares y cargas, los esfuerzos que tendrn
que soportar los componentes sern mayores. La mayora de estas piezas
podrn soportar, pero existen algunos elementos que ser mejor
modificarlos.

Piones. Se deberan sustituir por otros de un ancho mayor.


Un valor adecuado sera 10, para que as tuvieran el mismo
ancho que las coronas, con lo que habra ms superficie de
contacto y de resistencia.

Pieza amarre pin-servo. Se deber adaptar al nuevo pin,


aunque en principio retocando las actuales ser suficiente.

- 154 -

Memoria - Futuros desarrollos

Pieza en C, expuesta en 2.2.6. En las condiciones actuales


del proyecto aguanta, pero al subir la carga se debera
sustituir. La nueva pieza tendr las mismas dimensiones que
la actual, pero un espesor mayor. 3 mm de espesor ser
suficiente. ste es un cambio equivalente al que ya se ha
hecho con la pieza en L, comentado en 2.2.3.

Por ltimo, sera buena idea, aunque no es estrictamente


necesario mejorar los soportes de los servos. La idea es que
estos agarren mejor al eje del servo. En la Figura 94 se
muestra esto. Se debera prolongar la altura de la pieza y
usar un rodamiento para darle un buen apoyo al eje del
servo. En la situacin actual, en determinados movimientos,
se producen aqu oscilaciones que se extienden por todo el
brazo.

Figura 94: Sujecin eje servo

- 155 -

Memoria - Futuros desarrollos

Sistema manipulador

Se le debe aadir al brazo robtico algn tipo de mano que le permita


agarrar objetos.
Los dos modelos de mano que existen en el mercado para esta clase de
robots (pocos Kg que agarrar) son neumticas o elctricas. Realmente
ambos tipos de mecanismos son inadecuados para este brazo. La mano
neumtica porque requiere de un sistema de aire comprimido que habra
que integrar en el robot mvil. Esto hace que se descarte totalmente esta
opcin. Los dispositivos elctricos existentes tampoco son demasiado
buenos. La razn es que tienen unas tensiones de alimentacin
relativamente altas (24 V) para las bateras que pueda llevar un robot
mvil. Pero el problema principal es que se controlan con un software
propio, lo cual complicara el integrar el control de la mano en el driver
del brazo desarrollado. Uno de estos modelos de mano se ve en la Figura
95.

Figura 95: Mano elctrica

La opcin que probablemente resulte ms adecuada es desarrollar un


mecanismo propio de agarre. El diseo mecnico no es muy complejo.
Electrnicamente, se debera controlar mediante una seal digital
indicando apertura y cierre.

Servos de 360 grados

Resultara positivo para el brazo sustituir los servos actuales por otros de
similares o iguales caractersticas de rendimiento pero con una posibilidad
- 156 -

Memoria - Futuros desarrollos


de giro de 360, es decir, que el potencimetro pueda girar una vuelta
entera en vez de media. Las modificaciones a hacer en estos servos seran
exactamente las mismas a las hechas en los servos actuales (3.1.2). Estos
servos permitiran eliminar las limitaciones de alcance del brazo vistas en
el captulo anterior. Est modificacin no es algo estrictamente necesario.
Si slo se quiere trabajar en 2 cuadrantes (y algo ms), la situacin actual
es totalmente vlida. Pero si se desarrolla una aplicacin en la que se exija
movimiento en los cuatro cuadrantes, se requerira esto. Se debe indicar,
que de integrar esta ampliacin sera necesario retocar el driver, ya que los
ngulos de giro y dems se veran modificados.

Ampliacin aplicaciones

Teniendo en cuenta las facilidades para el control que aporta el driver


(con la clase arm) desarrollado, se podran implementar numerosas
aplicaciones para el uso del brazo. Por ejemplo aplicaciones en las que el
brazo est continuamente repitiendo un ciclo de movimientos. Tampoco
sera complicado desarrollar aplicaciones en las que el usuario introduzca
una serie de posiciones y tiempos y el brazo las memorice y las recorra.
Otra opcin es integrar en la aplicacin de control de movimientos el
conocimiento de la carga. El usuario debera introducir ese valor y en
funcin de eso el programa permitira alcanzar unas determinadas
posiciones o no. De esta forma, el brazo en las condiciones actuales podra
usarse para mover cargas de 2 Kg sin peligro, ya que el programa limitara
el movimiento a las zonas en las que el par requerido no sea excesivo.

Sistema de visin artificial

Por ltimo, otra ampliacin muy interesante sera la integracin de un


sistema de visin artificial. Esto le permitira al brazo conocer el entorno y
no actuar a ciegas. Se podra por ejemplo, desarrollar un sistema en el cual
el software reconozca los objetos y en funcin de lo que sean decida si
- 157 -

Memoria - Futuros desarrollos


agarrarlos o no y dnde llevarlos. Adems el control mediante visin
artificial aportara un extra de precisin ya que la cmara ira siguiendo la
punta del brazo, y aunque se produjera deformacin en ste por la carga,
la cmara lo vera y corregira la posicin.

Como se ha podido comprobar las posibilidades de desarrollo son


grandes, de hecho tanto que incluso hara falta ms de un proyecto para
seguir haciendo evolucionar al brazo. Se puede concluir por tanto que el
proyecto realizado abre un camino interesante en el que se pude continuar
trabajando con la posibilidad de obtener un producto final (como se
coment en el Captulo 6 Conclusiones) muy til.

- 158 -

Memoria - Bibliografa

8
Bibliografa

- 159 -

Memoria - Bibliografa

Captulo 8
[1]

BIBLIOGRAFA

Capek, Karel. R.U.R. Robots Universales Rossum: obra en tres actos y un


eplogo. Crculo de Lectores S.A. 2004. Pgs. 144. ISBN 84-672-0808-2.

[2]

Snchez Miralles, A.; Alvar Mir, M.; Arranz Domingo, A. Cp. 39 La


robtica y el desarrollo sostenible. El ingeniero del ICAI y el desarrollo sostenible.
Ed. Universidad Pontificia Comillas. 2008. pp. 381-383. ISBN 978-84935950-7-4.

[3]

Rentera, A.; Rivas, M. Robtica industrial. Fundamentos y aplicaciones. Ed.


Mc Graw Hill. 2000. Pgs. 336. ISBN 84-481-2819-2.

[4]

http://world.honda.com/ASIMO/technology/spec.html
http://world.honda.com/ASIMO/P3/spec/index.html

[5]

Brooks, R.A.; Intelligence without reason. International Joint Conference on


artificial intelligence. Sydney, Australia. 1991. pp. 569-595.

[6]

Barrientos, A.; Pen, L.F.; Balaguer, C.; Aracil, R. Fundamentos de robtica.


Ed. Mc Graw Hill. 2007. Pgs. 512. ISBN 84-481-5636-6.

[7]

Universidad Pontificia Comillas, ETSI ICAI. Prontuario y formulario de


vigas. Elasticidad y resistencia de materiales. Ingenieros Industriales 3er
curso.

[8]

Trier, H. Trazado y clculo de las ruedas dentadas. Ed. Labor Barcelona. 1945.
Pgs. 220.

- 160 -

Memoria - Bibliografa
[9]

Mitchiner R.G.; Mabie H.H. the determination of the Lewis form factor and the
AGMA geometry factor J for external spur gear teeth. ASME Journal of
mechanical design. Vol. 104. No 1. Enero 1982. Pp. 148-158

[10]

Jimnez Calzado M.; Fernndez Villamarin, S.; Monja Snchez, R.


Tecnologas de fabricacin y tecnologa de mquinas. Ed. Universidad
Pontificia Comillas. Dpto. Ingeniera mecnica. 2008. pp. 21-79.

[11]

Gutirrez Barqun, JM. Aspiradora inteligente para limpieza automtica de


suelos. PFC Universidad Pontificia Comillas. ICAI. Ingeniera Industrial.
Junio 2007.

[12]

http://www.microsoft.com/exPress/download/

- 161 -

Estudio econmico

Parte II ESTUDIO ECONMICO

- 162 -

Estudio econmico

Captulo 1

ESTUDIO ECONMICO

1.1 Concepto

En esta parte se analizar la viabilidad del proyecto, su rentabilidad,


fiabilidad, inters econmico etc. Es decir se tratar de demostrar por qu
es interesante el proyecto, por qu invertir en l y qu futuro tiene.

1.2 Anlisis
El proyecto es extremadamente interesante desde el punto de vista tcnico
y econmico.
El propsito del proyecto es llevar a cabo el diseo y construccin de un
brazo robtico de alta capacidad de carga, gran alcance y extra ligero. Este
objetivo general se ha cumplido. Se ha logrado desarrollar un dispositivo
verstil, prctico y que dadas sus caractersticas se puede usar tanto en
situaciones fijas como dinmicas (unido a un robot mvil).
El coste econmico del proyecto es relativamente bajo gracias a la cuidada
seleccin de materiales en la que se ha buscado primero buena relacin
resistencia/peso pero siempre dentro del marco de los materiales
econmicamente atractivos, es decir, sin entrar en aquellos materiales de
ltima generacin que pudiendo aportar algo ms de resistencia o ligereza
habran disparado el precio del prototipo.
La viabilidad del proyecto ha quedado demostrada a lo largo de esta
memoria. Si bien algunos de los conceptos aplicados para el diseo de
hardware o software son complejos, la fabricacin y montaje del mismo
siguiendo las lneas marcadas en el documento son sencillas, suponiendo

- 163 -

Estudio econmico
esto que los costes de una fabricacin masiva son bajos en relacin al
producto tan til que se obtiene.
El futuro del proyecto ha quedado probado en la Parte I Captulo 7. El
trabajo ha sido exitoso y se ha conseguido desarrollar un prototipo muy
avanzado. Siguiendo este proyecto segn los caminos marcados en ese
captulo, se podr obtener un dispositivo tremendamente interesante y
que realmente no tiene apenas competidores en el mercado. Este ltimo
aspecto es el que hace a este brazo robtico ms atractivo. Su originalidad
en cuanto a caractersticas hace que los brazos robticos ya desarrollados
no puedan eclipsarle ya que no son capaces de lograr las cualidades de
este brazo, siendo imposible por ejemplo, instalar cualquiera de esos
mecanismos en un robot mvil.

Por tanto una inversin de trabajo y dinero en este proyecto aportar


seguro grandes resultados. Se trata de un proyecto que trata de cubrir un
nicho del segmento de los brazos robticos en el que apenas hay
presencia, con lo que se tienen

todas las posibilidades de obtener el

modelo dominador. Una vez introducidas en el proyecto las mejoras y


ampliaciones expuestas, se lograr un producto tan fiable y prctico para
la industria robtica que su inters econmico es innegable. Ms si cabe
cuando en pocos aos se produzca el llamado boom de la robtica que
permitir a aquellos diseos que estn bien colocados en ese momento
hacerse con unas cuotas de mercado importantes en una situacin en la
que la cantidad de unidades vendidas ser altsima. Es por esto que al ser
este brazo tan verstil y poderse adaptar a casi todas las circunstancias,
podr integrarse en gran cantidad de productos diferentes, multiplicando
as el nmero de ventas.

- 164 -

Manual de usuario del brazo robtico

Parte III MANUAL DE USUARIO DEL


BRAZO ROBTICO

- 165 -

Manual de usuario del brazo robtico

Captulo 1

INTRODUCCIN

Este manual tiene como objetivo la descripcin del producto, la exposicin


de las instrucciones de manejo, de las precauciones a la hora del uso, de
las especificaciones y el estudio de los posibles problemas y soluciones
durante el funcionamiento.

- 166 -

Manual de usuario del brazo robtico

Captulo 2

INSTRUCCIONES DE USO Y
SEGURIDAD

En este captulo se exponen las principales explicaciones acerca del uso del
producto de un modo eficiente y seguro.

2.1 Instrucciones generales

Utilizacin

Utilice el producto con precaucin. Se debe tener en cuenta que la


velocidad de movimiento y la fuerza del brazo son altas y puede causar
dao a los usuarios y desperfectos en las instalaciones a causa de una mala
utilizacin.

El producto se puede utilizar de forma independiente o vinculada a otro


dispositivo mvil.

Uso independiente

Si el dispositivo se ancla a una superficie y se usa de forma aislada, se


debe asegurar que el entorno est libre, es decir que en el campo de
actuacin del brazo no hay obstculos con los que el mecanismo pueda
chocar.

Uso conjunto con otros dispositivos

En caso de asociar el brazo con otros robots mviles se debe prestar


especial atencin al control del brazo. Se debe integrar el sistema de
control del brazo en el del robot portador, fijando unas frecuencias de
ejecucin de la aplicacin de control suficientemente altas como para
asegurar que el brazo no est actuando de forma descontrolada.

- 167 -

Manual de usuario del brazo robtico

Nios

Este producto no es un juguete. Mantenga el dispositivo fuera del alcance


de los nios. Una manipulacin inadecuada puede provocar lesiones.

2.2 Antes del uso


Actualmente el brazo no dispone de sistema de posicionamiento ni
deteccin del entorno, es decir es ciego. Usted debe asegurarse de que el
entorno est despejado. De lo contrario el brazo puede chocar contra
cualquier elemento dandose l mismo y al elemento.
Esta consideracin se debe tener en cuenta tanto si el uso es esttico
(anclado a superficie fija) como dinmico (unido a dispositivo mvil). En
este ltimo caso no permita que el robot mvil se introduzca en espacios
pequeos a no ser que ste pueda reconocer el entorno y ordenar al brazo
que se retraiga.
Antes de utilizar el producto asegrese de que el producto est en
buenas condiciones. Est seco y limpio, no tenga ningn
componente fuera de lugar y que no haya nada sobre el brazo que
lo bloquee.
Asegrese de que los potencimetros estn introducidos en las
respectivas cavidades de los ejes. De no ser as el brazo no tendr
control en sus movimientos y el funcionamiento ser defectuoso.
Alimente la tarjeta de control a 9V DC con el transformador
suministrado.
Alimente los servomotores a 7,2V DC mediante la fuente
suministrada. Asegrese de no tener activada la proteccin de
intensidad, de ser as el brazo podra no recibir toda la corriente
necesaria en determinadas circunstancias.

- 168 -

Manual de usuario del brazo robtico


En caso de estar utilizando el producto de forma conjunta con un
robot mvil. Verifique que las bateras del robot se encuentran
totalmente cargadas.
No utilice el dispositivo en entornos hmedos y no lo manipule con
las manos mojadas.

2.3 Durante el uso


Para evitar posibles accidentes asegrese de que todas las personas del
entorno sepan que el robot est funcionando e instryales sobre las
principales medidas de seguridad.
No permita que el brazo agarre elementos demasiado pesados. NO
ms de 0,5 Kg. Esto podra conllevar importantes desperfectos en el
dispositivo.
No permita que el brazo transporte elementos que contengan
lquidos. De ser derramados el dispositivo sufrir averas.
No permita que el robot agarre elementos fijados al entorno.
Podran deteriorarse dichos elementos o el propio brazo.
No cuelgue ni apoye cosas sobre el brazo que puedan entorpecer su
movimiento.
No tape los soportes de la tarjeta y de los servos. Podra conllevar
sobrecalentamientos peligrosos.

2.4 Despus del uso


Asegrese de haber desconectado la alimentacin durante la
manipulacin del brazo robtico.
Despus de cada uso extraiga los potencimetros de las cavidades
de los ejes para evitar que un mal almacenaje del dispositivo los
dae.
- 169 -

Manual de usuario del brazo robtico


Limpie el producto peridicamente. Evite que la suciedad o
cualquier elemento obstruya las cavidades de los soportes de los
servos. Si esto ocurre durante el funcionamiento la refrigeracin se
ver limitada conllevando el sobrecalentamiento de los motores.
Para la limpieza utilice un pao suave y seco.
Verifique peridicamente el buen estado de los engranajes.
Asegrese de que los dientes se encuentran en buenas condiciones.
El sistema no requiere de engrase. A pesar de ello, cada 100 horas
de funcionamiento verifique la correcta capacidad de giro de los
servos y de los rodamientos.

Almacenaje

Es importante tener cuidado durante este proceso para evitar daos en el


mecanismo.
Asegrese de haber desconectado la alimentacin.
Asegrese de que los potencimetros quedan extrados de sus
cavidades en los ejes.
Una vez verificado lo anterior (es muy importante), proceda del siguiente
modo.
Desconecte todo el cableado. Esto incluye los cables de
alimentacin (son tres; alimentacin tarjeta, alimentacin servos 0 y
1, alimentacin servos 2 a 5), la conexin de la TCS-2 con el PC o
PDA, y la conexin a todos los servos.
Estire totalmente el brazo hacia arriba. Separe la segunda barra del
codo. Para ello retire su tornillo de sujecin.
Extraiga el codo. Para ello retire el tornillo de sujecin a la primera
barra.
Retire la primera barra, separndola del hombro. Para ello retire el
tornillo de sujecin.
- 170 -

Manual de usuario del brazo robtico


Se tienen los cuatro elementos independientes: hombro, codo, barra
1 y barra 2.
Proceda a replegar el hombro. Gire primero la 2 articulacin hasta
uno de sus extremos. Despus lleve la 1 articulacin hasta hacer
contacto con el soporte del primer servo.
Proceda a replegar el codo. Gire su 1 articulacin hasta hacer
contacto con el soporte del servo.
Introduzca en la caja suministrada manteniendo las protecciones
que est inclua, el hombro y el codo replegados como se ha
indicado. Despus introduzca las dos barras.
Cierre la caja y gurdela en un lugar limpio y seco.

- 171 -

Manual de usuario del brazo robtico

Captulo 3

DESCRIPCIN DEL PRODUCTO

En la Figura 96, Figura 97 y Figura 98 se muestran imgenes de los


componentes del brazo robtico indicando en ellas los elementos bsicos
que el usuario debe ser capaz de distinguir.

Conjunto completo:

Figura 96: Descripcin general del brazo

- 172 -

Manual de usuario del brazo robtico

Hombro:

Figura 97: Perfil y planta del hombro indicando elementos bsicos

- 173 -

Manual de usuario del brazo robtico

Codo:

Figura 98: Alzado y planta del codo indicando elementos bsicos

- 174 -

Manual de usuario del brazo robtico

Captulo 4

PUESTA EN MARCHA, PARADA Y


PAUSA

4.1 Puesta en marcha


Importante, asegrese de haber ledo y comprendido todas las
instrucciones de funcionamiento (Captulo 2) antes de utilizar el producto.
Siga los pasos estrictamente en el siguiente orden.
Coloque el brazo en posicin estirada verticalmente.
Conecte nicamente la alimentacin de la tarjeta. Se debe encender
el LED rojo. Pulse el botn reset de sta (ver Figura 99).
Conecte la alimentacin de los servos. El brazo ya se mantendr de
forma autnoma en esa posicin vertical.

Figura 99: Conexiones bsicas TCS-2

Ejecute la aplicacin driver en su PC. Verifique que los cables de


conexin PC-TCS2 estn conectados adecuadamente.
- 175 -

Manual de usuario del brazo robtico


En la pantalla de usuario (Figura 100) pulse el botn Start. Se
debe encender una luz verde en estado comunicacin. Si no es as
no contine y consulte el Captulo 6.
A partir de aqu las instrucciones se repiten para cada ciclo de
movimientos.
Introduzca en los correspondientes cuadros de texto la
posicin deseada para la mano.
Pulse el botn Enviar.
Verifique en el grupo de datos resultados que la posicin
para el codo es coherente. Si es as pulse Ok.Mover. Se
producir el movimiento del brazo.
Repita el ciclo de nuevo para realizar un nuevo movimiento.
En caso de que una posicin no sea alcanzable, aparecer un
aviso por pantalla. Deber introducir una posicin distinta.

Figura 100: Pantalla de usuario con botones indicados

- 176 -

Manual de usuario del brazo robtico

4.2 Pausa
Para realizar una pausa en el funcionamiento del robot.
Para pausar el funcionamiento pulse el botn Stop de la pantalla
de usuario (ver Figura 100). El contador de ciclos se detendr
indicando que el control del brazo ha cesado. El brazo mantendr
su posicin incluso si tiene carga, es decir, sigue dando par. El
brazo no realizar movimiento alguno por mucho que se manden
posiciones o clculos. En caso de pulsar el botn Stop justo en
medio de un movimiento el brazo se detendr en el punto en el que
se encuentre en el instante de pulsar el botn y mantendr esa
posicin
Para reiniciar el funcionamiento de la aplicacin de control y as
poder enviar nuevas posiciones al brazo, pulse el botn Start. El
contador de ciclos comenzar de nuevo a avanzar y ya se podrn
introducir nuevas posiciones.
Importante: Si el brazo se paus en medio de un movimiento, al
pulsar de nuevo Start, continuar ese movimiento. Si al pulsar Start
se enciende una luz roja en estado comunicacin consultar
Captulo 6.

4.3 Parada
Para parar definitivamente el funcionamiento del brazo robtico procede
en el siguiente orden. NO pare el brazo cuando ste transporta una carga.
Pulse el botn Stop de la pantalla de usuario (ver Figura 100). El
brazo se mantendr en su posicin.
Agarre el brazo y desconecte la fuente de alimentacin de los
servos. Al hacer esto el brazo perder su posicin y tender a caer
(los motores ya no estn alimentados). Sujtelo para evitar golpes.

- 177 -

Manual de usuario del brazo robtico


Coloque el brazo en una posicin adecuada. Preste atencin a no
forzar los potencimetros con giros superiores a 180.
Pulse el botn Exit de la pantalla de usuario.
Desconecte la alimentacin de la tarjeta.
Proceda a almacenar el brazo siguiendo las instrucciones de 2.4
(almacenaje).

- 178 -

Manual de usuario del brazo robtico

Captulo 5

ESPECIFICACIONES

Modelo

BMR 1.0

Peso (sin carga)

2,75 Kg

Alcance mximo

1,4 m

Carga mxima

500 g

Velocidad Eje 1

2,8 s/90

Velocidad Eje 2

1,3 s/90

Tensin alimentacin servos

6,4 7.2 V (7V) DC

Tensin alimentacin TCS-2

9 V DC

Consumo nominal en vacio

0,45 A

Consumo pico en vacio

1,3 A

Consumo nominal en carga

1,8 A

Consumo pico en carga

3,1 A

Plataforma de control

TCS-2

Servomotores

Hitec HSR-5990 TG

Temperatura de uso

0 - 50

Longitud Barra 1

36 cm

Longitud Barra 2

45 cm

Estructura

Aluminio

Rodamientos

De bolas auto engrasados

Tiempo mximo funcionamiento

Indeterminado

Tiempo mximo consumo mx.

1 min.

Tabla 26: Especificaciones Brazo robtico

- 179 -

Manual de usuario del brazo robtico

Captulo 6

PROBLEMAS Y SOLUCIONES

Consulte aqu las soluciones a sus problemas de funcionamiento.

SOLUCIN

PROBLEMA
No se enciende el LED de

la tarjeta al conectar la
alimentacin.

Cuando se pulsa Start


se enciende la luz roja en
estado comunicacin.

Asegrese de que el transformador de


alimentacin est a 9V y enchufado.

Pngase en contacto con el fabricante.

Verifique que la tarjeta est alimentada


(LED rojo encendido).

Asegrese que la conexin PC-TCS2 es


correcta. Apriete las conexiones.

Reinicie la aplicacin Driver.

Resete la TCS-2.

Asegrese de que los servos estn


alimentados a 7V DC.

La TCS2 est encendida,

la aplicacin tambin

conectados en los pines correctos de la

pero el brazo no
funciona.

Compruebe que los servos estn

tarjeta.

Verifique que no hay ningn cable


cortado o deteriorado.

Contacte con el fabricante.

Si est utilizando bateras, compruebe

El brazo no logra
moverse sin carga o con
cargas bajas.

que estas estn cargadas.

Si est utilizando fuente de


alimentacin, asegrese que la tensin
es 7V.
- 180 -

Manual de usuario del brazo robtico


El consumo de corriente

Asegrese de que el asilamiento de los


potencimetros es correcto.

se dispara.

Compruebe la cinta aislante.

El brazo se equivoca en

Asegrese que ha montado el brazo


correctamente. Que el codo no est al

los movimientos

revs etc.

habiendo hecho los

clculos correctamente.

Asegrese que los potencimetros


estn completamente introducidos en
sus cavidades en los ejes.

Asegrese de que el peso de la carga


no es superior al mximo. Compruebe
la temperatura de los servos. Si estn

El brazo estando en una

muy calientes habr saltado la

determinada posicin se

proteccin trmica por exceso de par


requerido. Baje el nivel de carga.

viene abajo.

Verifique la tensin de alimentacin de


los servos (7V DC).

La aplicacin no realiza
los clculos

Verifique el cableado de los servos.

Reinicie la aplicacin e introduzca de


nuevo la posicin.

correctamente
La aplicacin indica que

el punto no es alcanzable
La aplicacin produce un

alcance. Introduzca otro punto.

error relacionado con

error indicando Falta de


memoria

La aplicacin ha tenido un error de


ejecucin. Pulse break. Cierre la

Access violation
La aplicacin produce un

El punto introducido est fuera del

aplicacin y reinciela.

Hay un problema con la asignacin de


memoria. Reinicie el PC o PDA y
ejecute de nuevo la aplicacin.

Tabla 27: Gua de problemas y soluciones

- 181 -

Manual de usuario del brazo robtico


En caso de que su problema no aparezca en la Tabla 27 pngase en
contacto con su proveedor.

- 182 -

Manual de usuario Driver TCS-2

Parte IV MANUAL DE USUARIO


DRIVER TCS-2

- 183 -

Manual de usuario Driver TCS-2

Captulo 1

INTRODUCCIN

El siguiente manual de usuario tiene como objetivo la descripcin del


driver de control de la tarjeta electrnica TCS-2. A partir de este driver se
podrn realizar programas fcilmente en un PC o PDA que controlarn el
funcionamiento de la TCS-2.

- 184 -

Manual de usuario Driver TCS-2

Captulo 2

CONOCIMIENTOS BSICOS

La TCS-2 es controlada travs de una clase denominada Comm_sr. Como


ya se comento en anteriores captulos, esta clase se encuentra declarada en
el fichero Comm_sr.h y definida en el fichero Comm_sr.cpp. Esta clase
necesita a su vez del driver del puerto serie para poder entablar las
comunicaciones con la tarjeta. Este driver se encuentra en los ficheros
serial.h/.cpp.

Una comunicacin consistir en una peticin de ejecucin de comandos


desde el PC a la TCS-2 y en una respuesta por parte de sta a esa peticin.
En esta situacin es el PC el que acta como maestro, es decir, es el que
toma la iniciativa en la comunicacin y la TCS-2 acta como esclavo, es
decir, responde al PC nicamente cuando ste se lo pide.

- 185 -

Manual de usuario Driver TCS-2

Captulo 3

VARIABLES DEL DRIVER

En este captulo se van a describir las variables del driver.

Interrupcion:

Se trata de un vector de cuatro elementos que informa

sobre los datos no esperados que se reciben en una comunicacin


con la tarjeta. Es decir permite tener conocimiento de aquella
informacin que la TCS-2 manda pero que no se le ha pedido. Se
llama interrupcin porque estos eventos ocurren de forma
inesperada de la misma forma que el concepto de interrupcin en
programacin, aunque se debe tener claro que estas no son
exactamente interrupciones de aquel tipo. Los elementos del vector
tienen dos estados: 1 si hay interrupcin y 0 en caso contrario. Los
elementos del vector son:

interrrupcion [1]:

Informacin recibida por radiofrecuencia.

Cuando la tarjeta recibe informacin por radio se lo


comunica al PC.

interrrupcion [2]:

Medidas de ultrasonidos. El sensor de

ultrasonidos puede tardar hasta 20 ms en hacer una medida


por lo que no es posible que la TCS-2 est esperando a que se
obtenga el dato dado que se estara perdiendo un tiempo til
para realizar otras tareas. De esta forma el PC solicita la
realizacin de las medidas en una comunicacin, y cuando la
TCS-2 ha terminado de realizar las medidas introduce los
resultados en una comunicacin con el PC. Dado que el PC
no sabe cuando le van a enviar las medidas, estar
consultando en cada ciclo el estado de este elemento del
vector interrupcin para cerciorarse del momento en que
llegan.

- 186 -

Manual de usuario Driver TCS-2

interrupcion[3]:

medidas

de

sensores

digitales.

Estos

sensores miden 0 1. Dado que slo existen esos dos estados


de medida, esta cambiar poco. Para evitar el continuo envo
de informacin poco til, la TCS-2 enva al PC la medida de
los sensores digitales slo cuando alguno de ellos cambie de
estado.

compruebaPing:

variable de dos estados que indica si al mandar el

comando ping la tarjeta ha respondido (valdr 1) o no (valdr 0).


Bsicamente es un modo de saber si la TCS-2 funciona
correctamente. A veces se usa simplemente para establecer una
comunicacin en la que no se manda ninguna orden, simplemente
se espera que la TCS-2 devuelva alguna respuesta a peticiones
previamente realizadas.

RFrespuesta:

variable de dos estados que indica si el ltimo mensaje

de radiofrecuencia espera una respuesta (1 = si, 0 = no).

- 187 -

Manual de usuario Driver TCS-2

Captulo 4

FUNCIONES DEL DRIVER

Se describen a continuacin las funciones del driver que permiten


mantener una comunicacin con la tarjeta y ordenarle llevar a cabo tareas.

inicio():

Funcin que se debe llamar al principio de cualquier

comunicacin entre el PC y la tarjeta.

comunica():

Establece la comunicacin entre PC y TCS-2 enviando

todas las rdenes situadas entre la ltima llamada a la funcin


inicio y la llamada a esta funcin. Se recibir la respuesta de la
tarjeta. Si surge algn problema durante la comunicacin la funcin
devolver un 0 y si no un 1.

configuracion(n de ADs, n de USs, n de motores auxiliares):

Funcin que indica a la tarjeta como se configuran los pines de


conexin con el exterior en funcin del nmero de sensores de cada
tipo. Tambin se le indica el nmero de motores auxiliares. Si en
total hay 3 motores, es decir un motor auxiliar, se mandar un 1, si
hay 4 motores se mandar un 2. Los motores auxiliares, en caso de
haberlos, se conectarn en los pines del servo0 (motor 3) y servo1
(motor 4).

desactiva_I2C():

Funcin que se debe llamar al inicio del programa

para evitar problemas con las interrupciones.

leerAD(sensor):

Funcin que pide la medida de un nico sensor

analgico. El parmetro sensor va desde 1 hasta el nmero de


sensores analgicos que se hayan configurado.

leerADs():

Funcin que pide todas las medidas de los sensores

analgicos configurados.

- 188 -

Manual de usuario Driver TCS-2

pedirUS(sensor):

Funcin que pide la medida de un nico sensor de

ultrasonidos. El parmetro sensor va desde 1 hasta el nmero de


sensores de ultrasonidos que se hayan configurado.

pedirUSs():

Funcin que pide todas las medidas de los sensores de

ultrasonidos configurados.

activarMotores(Byte de configuracion):

Activa los motores. Si el byte

de configuracin es un 1 se activan los motores 0 y 1. Si es un 2 se


activan el motor 2 y 3. Si es un 3 se activan todos los motores. Si es
un 0 se desactivan todos.

periodoMotores(Periodo):

Indica a la TCS-2 el perodo de la seal

PWM que va a utilizar para controlar los motores 0 y 1. El motor 2 y


el 3 tienen el perodo definido a 70. El parmetro debe estar
comprendido entre 70 y 255. A ms valor mayor perodo.

DcMotores(Dc motor0, Dc motor1):

Fija el valor de los anchos de pulso

(Duty Cicle) de las seales PWM que controlan los motores 0 y 1.


Variando el ancho de pulso del PWM se vara la velocidad de los
motores. El parmetro debe estar comprendido entre 0 y el valor
del perodo de control de los motores (indicado con la funcin
anterior). Cuando el valor del DC es justo la mitad del periodo el
motor se encuentra parado. El valor con el que el motor gira a
mxima velocidad en sentido negativo es 0 y el valor con el que el
motor gira a mxima velocidad positiva es el que coincide con el
periodo. Valores intermedios generan velocidades intermedias.

DcMotoreAuxiliares(Dc motor2, Dcmotor3):

El objetivo de la funcin es

el mismo que el de la anterior funcin pero para los motores extra.


El periodo de estos est fijo a 70, asique un DC de 35 para los
motores. Si slo hay un motor auxiliar, el valor introducido en Dc
motor3 se ignorar.

DcServos(Dcservo0,
Dcservo5):

Dcservo1,

Dcservo2,

Dcservo3,

Dcservo4,

Fija el valor de los anchos de pulso de las seales PWM


- 189 -

Manual de usuario Driver TCS-2


que controlan los servos. Variando el ancho de pulso se vara el
ngulo de giro de cada servo. El valor del ancho de pulso puede
variar entre 7 y 43. Un valor de 7 hace que el servo se encuentre
posicionado en -90, y un 43 lo coloca en +90. Valores intermedios
posicionan al servo en posiciones intermedios. El servo 4 tiene un
problema de seal y en principio no se puede utilizar.

Ping():

Funcin que sirve para determinar si la TCS-2 se encuentra

en funcionamiento y que la comunicacin es correcta.

escribeRadio(long_mensaje,mensaje,espera_respuesta):

Funcin que

indica a la TCS-2 que debe enviar un mensaje por radio. El primer


parmetro indica el nmero de Bytes a enviar, el segundo
representa el mensaje a enviar y el tercer parmetro indica si el PC
espera respuesta de aquel a quien enva el mensaje.

configuraIO(config_dig):

Funcin que indica ala TCS-2 como se

configuran los pines digitales. Slo se pueden configurar como


salidas los digitales D0, D1, D2 y D3. Por tanto slo valen los 4 bits
ms bajos de config_dig. Si el bit correspondiente a un pin se pone a
1 ser una entrada digital, si es 0 ser una salida. Por defecto son
todos entradas.

escribeDigital(valor):

Funcin que indica a la TCS-2 el valor que

tienen las salidas digitales. Como slo se pueden configurar como


salidas los digitales D0, D1, D2 y D3, slo valen los 4 bits ms bajos
de valor. Si el bit correspondiente a un pin se pone a 1 su salida
tendr 5V, si es 0 tendr 0V.

valorADs():

Devuelve un vector de 10 elementos (10 Bytes) con todas

las medidas analgicas que ha devuelto la TCS-2.

valorEncoders():

Devuelve un vector de 4 elementos (4 Bytes) con

las medidas de los encoders. El primer byte es la parte menos


significativa de la medida del encoder 0, el segundo byte es la parte
ms significativa del encoder 0, el tercer byte es la parte menos
- 190 -

Manual de usuario Driver TCS-2


significativa de la medida del encoder 1 y el cuarto byte es la parte
ms significativa del encoder 1.

valorUSs():

Devuelve un vector de 8 elementos (8 Bytes) con todas

las medidas de ultrasonido que se han pedido a la tarjeta.

valorDig():

Devuelve un vector de 1 elemento (1 Byte) con la

medida de los ocho sensores digitales. Cada bit del elemento se


corresponde con la medida de un sensor.

valorRF(nElementos):

Devuelve un vector de nElementos con el

mensaje que la TCS-2 ha recibido por radio.

leerEncoders()

debug()

- 191 -

Manual de usuario Driver TCS-2

Captulo 5

USO DEL OBJETO DE LA CLASE


COMM

Se indican aqu las claves para el manejo de este driver desde una
aplicacin programada en C++, que ser lo que luego ejecute el PC.

5.1 Creacin del objeto


Como ya se indico en la Parte I4.2, lo primero ser aadir los siguientes
archivos al proyecto:

Copiar los archivos del driver en el directorio del proyecto.

Aadir los archivos .cpp del driver al proyecto. Para ello pulsar con
el botn derecho sobre Source Files en la ventana Solution explorer.
Seleccionar Add y despus Existing Item. En el cuadro seleccionar
los archivos.

Aadir los archivos .h del driver al proyecto. Para ello pulsar con el
botn derecho sobre Header Files en la ventana Solution explorer.
Seleccionar Add y despus Existing Item. En el cuadro seleccionar
los archivos.

Aadir en el fichero DriverDlg.cpp despus de la cuarta lnea


#include "Comm_sr.h".

Crear una variable de tipo Comm (Comm


cdigo BOOL

c;)

encima de la lnea de

CDriverDlg::OnInitDialog().

De esta forma ya se pueden utilizar en la aplicacin las funciones y


variables del driver. El uso de stas se har a travs del objeto tipo Comm
que se ha creado.

- 192 -

Manual de usuario Driver TCS-2

5.2 Inicio comunicacin


Lo primero que se debe hacer antes de establecer una comunicacin es
llamar a la funcin inicio() a travs del objeto de tipo Comm.
c.inicio();

Con esto lo que se hace es vaciar el buffer de datos de envo. Si no se


introdujese sta funcin, las rdenes mandadas posteriormente se
colocaran tras las rdenes solicitadas en la comunicacin anterior.

5.3 Introduccin de las rdenes a enviar


Una vez inicializada la comunicacin es necesario introducir las rdenes
que se quieren mandar al microcontrolador. Para esto se tiene que llamar a
las funciones expuestas anteriormente. Es importante prestar atencin a lo
siguiente:
En la primera comunicacin con la tarjeta, sta debe ser configurada
enviando la orden configuracin que le indica el nmero de
sensores de cada tipo y el nmero de motores auxiliares. Si en sta
primera configuracin se enva alguna orden ms adems de la de
configuracin, siempre se deber introducir primero la orden de
configuracin, ya que de otra forma la TCS-2 no estar configurada
para las primeras rdenes.
En las funciones

leerAD

pedirUS

se debe tener en cuenta que el

primer sensor se pide con un 1 no con un 0.


Si se solicita una medida de ultrasonidos antes de haber recibido la
respuesta con medidas de una peticin anterior, sta se sobrescribe
y no sigue esperando.
Si no se han activado nunca los motores es aconsejable que no se
enve solamente la orden

activarMotores()

en una comunicacin,

sino que se acompae con las rdenes que configuran el periodo de

- 193 -

Manual de usuario Driver TCS-2


control y la velocidad (duty cicle). As se evita que al activar los
motores, stos se pongan en funcionamiento descontroladamente.
Cuando se enven los parmetros de actuacin a los servos se deben
tener en cuenta los lmites de stos para no daarlos (DC mnimo 7,
DC mximo 43).
Al enviar un mensaje por radiofrecuencia se debe tener en cuenta
que mensajes de excesiva longitud (ms de 30

Bytes) pueden

presentar problemas a la hora de ser enviados

5.4 Envo y recepcin


Para enviar el vector con las rdenes para la TCS-2 se utiliza la funcin
comunica. sta enva las rdenes y no devuelve el control hasta que no
recibe la respuesta y la procesa. En caso de que se produzcan errores
durante la comunicacin devolver un 0. Es por esto que resulta
recomendable que a esta funcin se la llame dentro de un if para
comprobar que devuelve un 1 y en caso contrario detener la ejecucin.
if(!c.comunica())
MessageBox(_T("Fallo en comunicacin"),_T("Error"),MB_OK);

La comunicacin slo se produce cuando realmente hay rdenes que


enviar.

5.5 Lectura de las medidas


Segn el tipo de medida la respuesta se recibe en distintos momentos. Las
medidas de analgicos y digitales son aquellas que se reciben en la
respuesta de la comunicacin en la que se ha solicitado. La respuesta de
los ultrasonidos se recibe varias comunicaciones despus de aquella
comunicacin en la que se solicita la medida. Y algunas medidas digitales
y las seales de radiofrecuencia se reciben en una determinada
comunicacin pero no han sido solicitadas anteriormente.
- 194 -

Manual de usuario Driver TCS-2


El primer tipo de medidas no genera ningn problema ya que la
aplicacin leer las medidas slo cuando las ha solicitado. Para los otros
dos tipos de medidas se debe utilizar el vector

interrupcion

ya comentado

anteriormente. De esta forma si alguno de los elementos se pone a 1 quiere


decir que en la ltima comunicacin se ha recibido algn tipo de medida
no esperada, es decir no asociada a esa ltima comunicacin.
Lo normal ser que cada vez que se realice una comunicacin se revise el
vector para comprobar si ha habido recepciones inesperadas, y en caso
afirmativo actuar en consecuencia. Se debe tener en cuenta que el vector
interrupcion

pone a 1 un elemento slo en el ciclo en el que recibe una

respuesta inesperada y lo volver a poner a 0 al iniciarse la siguiente


comunicacin.
Una vez que se sabe las medidas que se deben leer, el modo de hacerlo
ser creando un puntero constante de tipo BYTE e igualarlo a la funcin
de peticin de la medida correspondiente.
En caso de que lo que se recibe proceda de la radio se debe tener en cuenta
que los envos recibidos por radiofrecuencia pueden esperar una respuesta
del PC. La forma de saber esto es a travs de la variable

RFrespuesta,

que

tendr valor 1 si espera respuesta y 0 en caso contrario.

Para ms informacin acerca del funcionamiento de la TCS-2 y su driver


de control consltese [11].

- 195 -

Manual de usuario Driver Brazo

Parte V MANUAL DE USUARIO


DRIVER BRAZO

- 196 -

Manual de usuario Driver Brazo

Captulo 1

INTRODUCCIN

El siguiente manual tiene como objetivo fundamental la explicacin del


modo de uso de las funciones y variables del driver de control del brazo,
que permiten crear fcilmente una aplicacin que gobierna los
movimientos del brazo.

- 197 -

Manual de usuario Driver Brazo

Captulo 2

CONOCIMIENTOS BSICOS

El brazo es controlado travs de una clase denominada arm. Como ya se


coment en anteriores captulos, esta clase se encuentra declarada en el
fichero arm.h y definida en el fichero arm.cpp. Esta clase necesita del
driver de la TCS-2, clase Comm_sr (ficheros comm_sr.h/.cpp) el cual a su
vez utiliza el driver del puerto serie para poder entablar las
comunicaciones con la tarjeta (ficheros serial.h/.cpp).

Este driver ser el encargado de realizar todo el clculo de posiciones,


ngulos a girar, movimientos ms eficientes etc. y de finalmente proceder
a desplazar el brazo. De esta forma el usuario nicamente tendr que
introducir las coordenadas en las que desee que se coloque la mano y el
driver se encargar del resto.

En la aplicacin general se utilizarn conjuntamente este driver del brazo


(clase arm) y el driver de la TCS-2 (clase comm_sr) para poder, fcilmente,
controlar el brazo a travs de la tarjeta.

- 198 -

Manual de usuario Driver Brazo

Captulo 3

VARIABLES Y FUNCIONES DEL


DRIVER

A continuacin se describirn en profundidad las distintas variables y


funciones que componen el driver.

3.1 Funciones del driver

calcular(coord_x_mano,

coord_y_mano,

coord_z_mano):

Funcin

destinada al clculo de la posicin del codo. Devuelve un 0 si el


clculo ha ido bien, y un 1 si el punto indicado para la mano resulta
inalcanzable. Recibe las coordenadas deseadas para la mano
(previamente

indicada

por

el

usuario).

En

las

variables

coord_x_codo, coord_y_codo y coord_z_codo quedan guardados


los valores de las coordenadas del codo que se van a usar. Y en las
variables phi, theta, chi y alfa los ngulos que debe girar cada uno
de los ejes. El sistema de clculo de posiciones y ngulos se describe
en 4.3.2, en la Parte I.

girar():

Funcin que se encarga de girar los servos hacia la posicin

que les corresponde para llegar a la ltima posicin mano/codo


conocida. Es decir, realiza el desplazamiento de los servos hacia la
posicin que les corresponde a cada uno de ellos para alcanzar la
ltima posicin mano/codo calculada. En esta funcin es donde se
realizan los reajustes de ngulos, es decir, con la funcin anterior se
han calculado los ngulos ideales a girar y aqu se reajustan los
valores en funcin del sentido de giro de cada servo, de sus
limitaciones mecnicas etc. Actualiza el valor del DC de cada servo
(en el vector

servos []).

Este nuevo valor de DC despus ser

enviado a la TCS-2 haciendo uso del driver de sta. El movimiento


- 199 -

Manual de usuario Driver Brazo


lo hace de forma gradual, es decir, cada vez que se llama a esta
funcin, en ella se varan un poquito los DC de cada servo. Esto
se hace as para controlar el giro y que ste no sea tan brusco como
son los giros directos de los servos. De esta forma la velocidad de
giro del brazo viene controlada por la frecuencia que se fije en el
reloj de la aplicacin de control. Por ltimo, esta funcin devuelve
un 1 si todos los servos ya han llegado (su DC) a su posicin y un 0
si alguno/s todava no.
Esta funcin hace uso de otra funcin privada de la clase,
giro_servo(servo,posicion),

la cual desplaza en una unidad el valor

del DC del servo indicado para llegar a la posicin indicada. Si ese


servo llega a esa posicin devuelve un 1 si no un 0.

datos_posicion():

Funcin que actualiza un vector con los datos

caractersticos de la posicin mano/codo actual. De esta forma se


pueden conocer datos importantes como distintas coordenadas,
ngulos, posibles puntos codo calculados etc.

3.2 Variables del driver

coord_x_codo:

Variable en la que se almacena la coordenada X de la

ltima posicin calculada para el codo. Esta variable es actualizada


nicamente por la funcin

calcular()

cuando calcula una nueva

posicin codo para la posicin mano que le enven.

coord_y_codo:

Variable en la que se almacena la coordenada Y de la

ltima posicin calculada para el codo. Esta variable es actualizada


nicamente por la funcin

calcular()

cuando calcula una nueva

posicin codo para la posicin mano que le enven.

coord_z_codo:

Variable en la que se almacena la coordenada Z de la

ltima posicin calculada para el codo. Esta variable es actualizada


nicamente por la funcin

calcular()

cuando calcula una nueva

posicin codo para la posicin mano que le enven.


- 200 -

Manual de usuario Driver Brazo

phi:

Variable que almacena el ngulo ideal a girar en el primer

servo para llegar a la ltima posicin mano/codo.

theta:

Variable que almacena el ngulo ideal a girar en el

segundo servo para llegar a la ltima posicin mano/codo.

chi:

Variable que almacena el ngulo ideal a girar en el tercer

servo para llegar a la ltima posicin mano/codo.

alfa:

Variable que almacena el ngulo ideal a girar en el cuarto

servo para llegar a la ltima posicin mano/codo.

gamma:

Variable que almacena el ngulo que forma la recta hombro-

mano actual con el eje i (en el plano ij).

*datos:

Puntero a vector en el que se almacenan datos de la posicin

mano/codo actual.

servos[]:

Vector en el que se guarda la posicin actual (DC actual)

de cada servo. Es decir este es el valor que se enva a la TCS-2 a


travs del driver de sta.
Estas son las variables pblicas del driver. Las variables privadas ms
importantes que utiliza este son:
servos_final[],

que guarda la posicin final de cada servo para situar el

brazo en la posicin mano/codo calculada, es decir, guarda la posicin


en la que deben acabar los servos.
puntos_codo[][]:

Matriz en la que se almacenan todas las posibles

posiciones para el codo para una determinada posicin mano.


posiciones_usadas[]:

Vector en el que se guarda un indicador de

aquellas posiciones codo (de entre las posibles de la matriz anterior)


que ya se han probado como posiciones codo definitivas, pero que el
clculo se ha demostrado que no son alcanzables.
cont_puntos:

Variable que almacena el nmero de posibles posiciones

codo para una posicin mano determinada.

- 201 -

Manual de usuario Driver Brazo


puntos_validos:

Variable que almacena el nmero de posiciones codo

que son realmente vlidas como tal. Slo sern unas pocas de todas las
anteriores.
pruebas:

Variable que almacena el nmero de posiciones codo que han

sido probadas. Se usa para percibir que una posicin mano es


inalcanzable. Si se han hecho tantas pruebas de clculo como posibles
posiciones codo hay, quiere decir que ninguna es vlida como posicin
codo y que por tanto esa posicin mano no se puede alcanzar.

- 202 -

Manual de usuario Driver Brazo

Captulo 4

USO DEL OBJETO DE LA CLASE


ARM

En este captulo se exponen las cuestiones ms importantes para el uso de


este driver en una aplicacin.

4.1 Creacin del objeto


Como ya se expuso en la Parte I4.3, para poder utilizar el conjunto de
funciones y variables de este driver es necesario aadir los siguientes
archivos al proyecto:

Copiar los archivos del driver en el directorio del proyecto.

Aadir los archivos .cpp del driver al proyecto. Para ello pulsar con
el botn derecho sobre Source Files en la ventana Solution explorer.
Seleccionar Add y despus Existing Item. En el cuadro seleccionar
los archivos arm.cpp, Comm_sr.cpp, serial.cpp.

Aadir los archivos de cabecera .h del driver al proyecto. Para ello


pulsar con el botn derecho sobre Header Files en la ventana Solution
explorer. Seleccionar Add y despus Existing Item. En el cuadro
seleccionar los archivos arm.h, Comm_sr.h, serial.h.

Aadir en el fichero DriverDlg.cpp despus de la cuarta lnea


#include

"Comm_sr.h"

#include "arm.h"

Crear una variable de tipo arm y otra de tipo Comm encima de la


lnea de cdigo BOOL

CDriverDlg::OnInitDialog()

Comm c;
arm a;
BOOL CDriverDlg::OnInitDialog()
{
CDialog::OnInitDialog();

- 203 -

Manual de usuario Driver Brazo


El uso de las variables y funciones del driver se har a travs del objeto
tipo arm que se ha creado.

4.2 Peticin de clculo


Una vez que se conocen las coordenadas en que se desea que se site la
mano (las habr introducido el usuario) se hace uso de la funcin
calcular()

para ejecutar el algoritmo de clculo de posiciones y ngulos.

As al hacer por ejemplo:

peticion_calculo=a.calcular(coord_x_mano,coord_y_mano,coord_z_mano);

Se est llamando a la funcin calcular envindole como parmetros las


coordenadas de la mano. La funcin realizar el clculo y devolver un 1
si el clculo ha resultado satisfactorio, o un 0 si no es posible alcanzar la
posicin. Por tanto, despus de esta lnea de cdigo, se deber verificar el
valor de la variable

peticion_calculo

para averiguar cmo ha ido el

proceso de clculo.
Ntese que en caso de que el clculo haya sido correcto la funcin no
devuelve los resultados de ese clculo, es decir, la posicin del codo y los
ngulos. Estos valores van a quedar almacenados en una serie de variables
del driver, ya mencionadas anteriormente.

4.3 Giro del brazo


Despus de que se haya realizado el proceso anterior ya se tendr, para la
posicin mano introducida por el usuario, la posicin codo y los ngulos
correspondientes. Lo que procede ahora es llevar a cabo el giro. Para ello
se utiliza la funcin

girar().

Esta funcin no tiene argumentos ya que

como se ha dicho, los valores de posicin codo y los ngulos a girar han

- 204 -

Manual de usuario Driver Brazo


quedado almacenados en variables del driver y por tanto la funcin podr
acceder a ellos.
Como ya se expuso en 3.1 (Funciones del driver), esta funcin realmente
slo modifica el valor del DC de cada servo, el cual se encuentra
almacenado en una variable del driver de tipo vector llamada

servos[],

por tanto, una vez hecha la llamada a esta funcin dicho valor ya estar
modificado, pero entonces se deber enviar el valor a la TCS-2 por medio
del driver de sta.

movimiento_realizado=a.girar();
c.inicio();
c.DcServos(a.servos[0],a.servos[1],a.servos[2],a.servos[3],a.servos[4],a.
servos[5]);
c.comunica();

Como se observa, se utiliza la funcin

DcServos()

del driver de la TCS-2

para enviar los valores de DC a la tarjeta. Esos valores se encuentran en los


elementos de la variable del driver del brazo servos[]. Ya se explic que la
funcin

girar()

lleva a cabo el giro de los servos de forma gradual, es

decir, que una vez calculada la nueva posicin de los servos, no ordena a
estos ir a esa posicin en un solo ciclo, si no que lo hace gradualmente
durante varios ciclos de reloj de la aplicacin. Es por esto que se iguala la
funcin a una variable, ya que cuando el proceso de giro haya culminado,
la funcin devolver un 1 y as en la aplicacin principal se sabr que se ha
completado el giro.
Despus de lo dicho se comprende que la llamada a

girar()

debe estar

integrada dentro de la funcin peridica (OnTimer) de la aplicacin, para


llamarla una y otra vez (cuando hay posicin nueva).

- 205 -

Manual de usuario Driver Brazo

4.4 Consulta de datos


En cualquier momento se puede consultar, desde la aplicacin, el valor de
los datos caractersticos de la posicin mano/codo actual. Para ello se debe
hacer una llamada a la funcin

datos_posicion()

para que esta actualice el

valor de los elementos del vector datos, y una vez hecho eso se accede a
cualquiera de esos valores, por ejemplo del siguiente modo:

a.datos_posicion();
SetDlgItemInt(IDC_EDIT5, a.datos[0], true);
SetDlgItemInt(IDC_EDIT6, a.datos[1], true);

Se est obteniendo el valor de esos dos datos para mostrarlos por pantalla
al usuario.

4.5 Precauciones

Resulta interesante evitar la llamada a

girar()

si la ltima posicin

introducida era inalcanzable. Realmente no se producir ningn


problema ya que el driver tiene una proteccin para, antes de
mover nada, verificar que la ltima posicin calculada (que es a la
que se va a mover) era correcta. Pero si se protege esto tambin en
la aplicacin se evitar que aparezca de nuevo una ventana de error
indicando la imposibilidad del movimiento. Debe quedar claro que,
de todos modos, si la posicin era inalcanzable y se llama a girar(),
esta funcin no va a permitir el movimiento.

Resulta interesante evitar las llamadas a la funcin

calcular()

si la

posicin mano se sabe seguro que no se va a alcanzar porque est


fuera de la esfera de radio 1,5 m. Es bueno evitarlo simplemente por
ahorro del tiempo de clculo (pueden ser uno o dos segundos, y si
el brazo est asociado a un robot mvil que necesita realizar
clculos muy frecuentes le vendr bien ese ahorro). A pesar de ello,
- 206 -

Manual de usuario Driver Brazo


si el clculo se lleva a cabo no habr ningn problema ya que el
algoritmo detectar que el punto es inalcanzable. El modo de evitar
la llamada sera simplemente hacer una comprobacin en la
aplicacin, una vez introducida la posicin de la mano, verificando
si est dentro de la esfera de radio 1,5 m.

Tambin es bueno evitar las llamadas a

girar()

si no hay una

posicin nueva a la que desplazarse (porque el brazo ya est en la


ltima posicin indicada). De esta forma se evita un consumo intil
de recursos. El modo de evitarlo es consultando el valor devuelto
por

girar().

Si en un determinado ciclo devuelve un 1 querr decir

que ya se ha alcanzado la posicin final. A partir de ese ciclo se


evitarn las llamadas a esa funcin hasta que no haya una nueva
posicin mano alcanzable.

4.6 Ejemplo de uso


Como ejemplo de uso se expondr el cdigo de la funcin

OnTimer,

asociada al evento Timer (un reloj que cada vez que culmina su cuenta
ejecuta el cdigo que hay en su funcin).
En una primera funcin inicial, asociada al botn Start, se debern enviar a
la tarjeta los parmetros de configuracin de esta.

void CDriverDlg::OnBnClickedStart()
{
SetTimer(1,clk,NULL);

//Inicializa el timer

c.inicio();
c.configuracion(4,2,0);

//Configuramos pines tcs2

c.desactiva_I2C();
if(!c.comunica()){//Comunicacion con la tarjeta
//comprobacion de que la TCS responde
MessageBox(_T("Error en la comunicacin"),_T("Fallo"),MB_OK);
}

- 207 -

Manual de usuario Driver Brazo


}

Se configuran 4 ADs, 2 USs y 0 motores auxiliares. En realidad da igual el


nmero de USs o ADs, lo que importa es que se puedan usar los 6 servos.
Despus de esto, en la funcin real de la aplicacin se encuentra el cdigo
para pintar el punto verde o rojo en funcin del estado de la
comunicacin, pero aqu no se considera oportuno mostrarlo. Todo el
cdigo se puede encontrar en la Parte VI.
La funcin OnTimer, eliminando lo innecesario aqu, ser la siguiente:

void CDriverDlg::OnTimer(UINT_PTR nIDEvent)


{
int punto_mano_valido=0;

//Punto mano valido (1) o no (0)

int cambio_mano=0;

//Cambio posicon mano (1) o no (0)

KillTimer(1);
if(enviar)

//Se para timer 1 y se borra la cuenta


//Se toma del usuario la posicin mano

{
coord_x_mano=int(GetDlgItemInt(IDC_EDIT2,NULL,true));
coord_y_mano=int(GetDlgItemInt(IDC_EDIT3,NULL,true));
coord_z_mano=int(GetDlgItemInt(IDC_EDIT4,NULL,true));
enviar=0;

//Para

no

coger

posicion

mano

hasta

que

el

usuario lo indique. Al pulsar Enviar,la varialbe se pone a 1


}
if((coord_x_mano_ant!=coord_x_mano)||(coord_y_mano_ant!=coord_y_ma
no)||(coord_z_mano_ant!=coord_z_mano)) //Cambio posicin mano
{
cambio_mano=1;
peticion_calculo=1;

//Habr que hacer nuevo clculo.

}
if(pow(coord_x_mano,2)+pow(coord_y_mano,2)+pow(coord_z_mano,2)<=
(radio_total*radio_total)) //Posicin dentro esfera 1,5 m.
{

//Esta comprobacin tambin se hace


punto_mano_valido=1;//dentro del driver, pero si se aade

//aqu tambin, se evita el proceso de

else{

//calculos inutiles en el driver.


if(cambio_mano)
{
MessageBox(_T("El punto solicitado est Fuera de Alcance.
Introduzca una posicin distinta"),_T("Error"),MB_OK);

- 208 -

Manual de usuario Driver Brazo


}
}
if(cambio_mano==1 && punto_mano_valido==1)
{
peticion_calculo=a.calcular(coord_x_mano,coord_y_mano,coord_z_mano
);

//Devuelve

un

si

clculo

bien,

un

si

inalcanzable
}
if(peticion_calculo==0 && mover==1)

//Si ltimo clculo ha sido

correcto y el usuario ha aceptado la posicin dando al botn mover


{
movim_realizado=a.girar();

//Se actualizan los valores

de DC de cada servo, para llegar hacia la posicin deseada


c.inicio();
c.DcServos(a.servos[0],a.servos[1],a.servos[2],a.servos[3],
a.servos[4],a.servos[5]);
c.comunica();

//Envio nueva posicin servos a tarjeta

if(movim_realizado)

//Si se ha completado movimiento

mover=0;
}
//Actualizaciones Pantalla:
SetDlgItemInt(IDC_EDIT1, i++,false);
if(peticion_calculo==0)

//contador de ciclos

//Si el ltimo clculo ha sido correcto

{
a.datos_posicion();

//Actualiza vector de datos

SetDlgItemInt(IDC_EDIT5, a.datos[0], true);

//Coord_x_codo

SetDlgItemInt(IDC_EDIT6, a.datos[1], true);

//Coord_y_codo

SetDlgItemInt(IDC_EDIT7, a.datos[2], true);

//Coord_z_codo

SetDlgItemInt(IDC_EDIT8,(180/PI)*(a.datos[3]),true);
SetDlgItemInt(IDC_EDIT9, (180/PI)*(a.datos[4]),true);
SetDlgItemInt(IDC_EDIT10, (180/PI)*(a.datos[5]),true);
SetDlgItemInt(IDC_EDIT11, (180/PI)*(a.datos[6]),true);
SetDlgItemInt(IDC_EDIT12, a.datos[7], false);
SetDlgItemInt(IDC_EDIT13, a.datos[8], false);
SetDlgItemInt(IDC_EDIT14, a.datos[9], true);
SetDlgItemInt(IDC_EDIT15, a.servos[0], true);
SetDlgItemInt(IDC_EDIT16, a.servos[1], true);
SetDlgItemInt(IDC_EDIT17, a.servos[2], true);
SetDlgItemInt(IDC_EDIT18, a.servos[3], true);
SetDlgItemInt(IDC_EDIT19, a.servos[4], true);

- 209 -

Manual de usuario Driver Brazo


SetDlgItemInt(IDC_EDIT20, a.servos[5], true);
}
UpdateData(false);

//Actualizacin datos en pantalla

//Se almacenan las coordenadas de la mano para el siguiente ciclo


coord_x_mano_ant=coord_x_mano;
coord_y_mano_ant=coord_y_mano;
coord_z_mano_ant=coord_z_mano;
SetTimer(1,clk,NULL);

//Se inicializa el timer

CDialog::OnTimer(nIDEvent);
}

Este ejemplo corresponde a la funcin

OnTimer

de la aplicacin de control

del brazo desarrollada aqu. Se pueden crear multitud de aplicaciones de


control del brazo basndose en el driver (clase arm) de una forma similar a
esta.

- 210 -

Cdigo fuente

Parte VI CDIGO FUENTE

- 211 -

Cdigo fuente

Captulo 1

CDIGO CLASE ARM

A continuacin se muestra el cdigo principal de la clase arm. Que


constituye el driver del brazo.

1.1 Archivo arm.h


#ifndef ARM_H
#define ARM_H
#include "serial.h"
#include "Comm_sr.h"
#define radio 75
#define ORIGEN 8
#define LIMITE 43
#define radio_total 150
#define NUM_PTOS_CODO 800
#define LIMITE_DESVIACION 20

//Limite de desviacin

#define ANGULO_MINIMO_1SERVO 1.012

//ngulo mn primer servo

#define ANGULO_MINIMO_4SERVO 0.872

//ngulo mn cuarto servo

#define AJUSTE_THETA 10

//Ajuste del angulo theta

#define AJUSTE_ALFA 15

//Ajuste del angulo alfa

#define PI 3.141592
#define MARGEN 0.45

//Margen de las dos esferas para aceptar

un punto.
class Arm{
private:
//Variables privadas
int cont_puntos;
int puntos_validos;
int pruebas;
int punto_inalcanzable;

//Se pone a 1 en caso de que la

posicin de la mano no se pueda alcanzar


double puntos_codo[NUM_PTOS_CODO][3];
double ang_bueno_ant;

//ngulo

en

posicin

definitiva

entre recta hombro-codo y recta hombro-mano.


int posiciones_usadas[NUM_PTOS_CODO];

//Matriz

de

alamcenamiento de posiciones ya probadas


int servos_final[6];

//Vector

con

posicion

la

que

debe ir cada servo


//Funciones privadas

- 212 -

Cdigo fuente
int giro_servo(int servo, int posicion);
//Funcin que "gira un poquito" el servo indicado para ir
hacia la posicin indicada. Devuelve un 0 si el servo todava no est en
su posicin final y un 1 si ya ha llegado a su posicin final.
public:
//Variables pblicas
int servos[6];

//Vector con DC actual de cada servo

double coord_x_codo;

//Coordenada X del codo

double coord_y_codo;

//Coordenada Y del codo

double coord_z_codo;

//Coordenada Z del codo

double gamma;

//Angulo

al

que

se

encuentra

la

mano

respecto eje i (plano ij)


double phi;

//Angulo que debe girar el primer servo

double theta;

//Angulo que debe girar el segundo servo

double chi;

//Angulo que debe girar el tercer servo

double alfa;

//Angulo que debe girar el cuarto servo

double *datos;

//Puntero

vector

en

el

que

se

almacenarn datos caractersticos de la posicin para luego


enviarlos al usuario
//Funciones pblicas
//constructor
Arm();
//destructor
~Arm();
//Funcion clculo posicin codo. Devuelve un 0 si clculo ha
bien, y un 1 si inalcanzable. En coord_x_codo, coord_y_codo
y coord_z_codo han quedado los valores de las coordenadas
del codo que se van a usar

y en phi, theta, chi y alfa los

angulos a girar.
int

calcular(double

coord_x_mano,

double

coord_y_mano,

double coord_z_mano);
//Funcin para girar los servos hacia la posicin que les
corresponde

para

llegar

la

ultima

posin

mano/codo

conocida.
Actualiza el DC de cada servo (vector servos[])
Devuelve un 1 si todos los servos ya han llegado (su DC) a
su posicin y un 0 si alguno/s todava no.
int girar();

- 213 -

Cdigo fuente
//Funcin que actualiza un vector (datos)

con los datos

caractersticos de la posicin mano/codo actual


void datos_posicion();
};
#endif

1.2 Archivo arm.cpp


#include "stdafx.h"
#include "serial.h"
#include "Comm_sr.h"
#include "arm.h"
#include "math.h"
Arm::Arm()

//CONSTRUCTOR

{
//Inicializacin de variables
punto_inalcanzable=0;
datos=(double*)calloc(10,sizeof(double));
if(datos==NULL)

//comprobacin calloc ok

{
MessageBox(NULL,_T("No

se

dispone

de

memoria

suficiente"),_T("ERROR"),MB_OK);
}
for(int d=0;d<=9;d++)
{
datos[d]=0;
}
for(int f=0;f<=5;f++)
{
servos[f]=ORIGEN;
servos_final[f]=ORIGEN;
}
}
Arm::~Arm()

//DESTRUCTOR

{
//Se libera la memoria reservada para los vectores utilizados
free(datos);
}

//FUNCIN CALCULAR
int

Arm::calcular(double

coord_x_mano,

double

coord_y_mano,

double

coord_z_mano)
{

- 214 -

Cdigo fuente
int l=0;
int j=0;
int p=0;
double beta=0;

//Angulo entre una posicion codo y el eje i, en

el plano ij
double ang_bueno=0; //Variable

que

almecena

la

diferencia

de

angulos entre gamma y beta actuales. (ngulo entre recta hombro-mano y


recta hombro-codo. Lo ideal es que sea cero)
int punto_usado=0;
double coord_x_codo_prima=0;
double coord_y_codo_prima=0;
double coord_z_codo_prima=0;
double coord_x_mano_tresprima=0;
double coord_z_mano_tresprima=0;
//Inicializacin variables propias de cada clculo de "paquetes de
posiciones del codo" para una posicin de la mano. Se inicializan
slo aqu, cuando hay una nueva posicion mano, para que, mientras
que no la haya mantengan sus valores.
cont_puntos=0;

//Contador de puntos posibles del codo

puntos_validos=0;

//Contador de posiciones codo realmente validas

pruebas=0;

//Numero de posiciones probadas

punto_inalcanzable=0;

//Indica si el punto es alcanzable o no

for(l=0;l<NUM_PTOS_CODO;l++) //inicializo el vector que almacena


los puntos codo ya probados
{
posiciones_usadas[l]=800;
}
for(coord_x_codo=-radio; coord_x_codo<=radio; coord_x_codo++)
{
for(coord_y_codo=-radio;

coord_y_codo<=radio;

coord_y_codo++)
{
for(coord_z_codo=0;

coord_z_codo<=radio;

coord_z_codo++)
{
if((pow(coord_x_codo,2)+pow(coord_y_codo,2)+pow(coord_z_codo,2)>=(
(radio-MARGEN)*(radio-MARGEN)))&&
(pow(coord_x_codo,2)+pow(coord_y_codo,2)+pow(coord_z_codo,2)<=((ra
dio+MARGEN)*(radio+MARGEN)))) //Esta en una esfera
{
if((pow((coord_x_codo-coord_x_mano),2)+pow((coord_y_codocoord_y_mano),2)+pow((coord_z_codocoord_z_mano),2)>=((radio-MARGEN)*(radioMARGEN)))&&(pow((coord_x_codocoord_x_mano),2)+pow((coord_y_codo-

- 215 -

Cdigo fuente
coord_y_mano),2)+pow((coord_z_codocoord_z_mano),2)<=((radio+MARGEN)*(radio+MARGEN))))

//Esta

en la otra esfera
{ //Punto vlido para el codo
puntos_codo[cont_puntos][0]=coord_x_codo;
puntos_codo[cont_puntos][1]=coord_y_codo;
puntos_codo[cont_puntos][2]=coord_z_codo;
cont_puntos++;
}
}
}
}
}
}
if(cont_puntos>=NUM_PTOS_CODO)

//Comprobacin

tamao

matriz

de

almacenamiento de posibles posiciones codo


{
MessageBox(NULL,_T("Se

ha

superado

el

lmite

de

memoria.

Amplielo"),_T("Problema"),MB_OK);
}
//Seleccin Posicin Codo Definitiva:
gamma=(180/PI)*atan(coord_y_mano/coord_x_mano);
if(coord_y_mano==0 && coord_x_mano==0)
{
gamma=0; //Correcin error de calculo tangente
}
do{
ang_bueno_ant=100;

//inicializo

la

variable

que

guarda el mejor ang_bueno encontrado hasta el momento


puntos_validos=0;
for(j=0;j<cont_puntos;j++) //Recorro

la

matriz

de

puntos

posibles para el codo


{
beta=(180/PI)*atan(puntos_codo[j][1]/puntos_codo[j][0]);
ang_bueno=gamma-beta;
if(abs(ang_bueno)<abs(ang_bueno_ant))
{
for(p=0;p<=pruebas;p++)

//se ha probado ya?

{
if(posiciones_usadas[p]==j)
punto_usado=1;
}
if(punto_usado==0)

//no se ha probado antes

- 216 -

Cdigo fuente
coord_x_codo=puntos_codo[j][0];
coord_y_codo=puntos_codo[j][1];
coord_z_codo=puntos_codo[j][2];
ang_bueno_ant=ang_bueno;
posiciones_usadas[pruebas]=j;
}
punto_usado=0;
}
if(abs(ang_bueno)<=2)
puntos_validos++;
}
pruebas++;

//incremento pruebas ya que se acabo de elegir

un nuevo pto y ahora se ve si vale


if(pruebas>cont_puntos)

//Ya has probado mas puntos que

los posibles ptos codo que hay


{
break;

//Sale del do-while

}
//Clculo posiciones servos:
//*******1er ngulo:*********
phi=atan(coord_z_codo/coord_y_codo);
if(coord_y_codo<0)

//Por el fallo de la atan

phi=atan(coord_z_codo/coord_y_codo)+PI;
//*******2 ngulo:*********
coord_x_codo_prima=coord_x_codo;
coord_y_codo_prima=(cos(phi)*coord_y_codo)+(sin(phi)*
coord_z_codo);
coord_z_codo_prima=(cos(phi)*coord_z_codo)(sin(phi)*coord_y_codo);
theta=atan(coord_y_codo_prima/coord_x_codo_prima);
if(theta<0)
theta=theta+PI;
//*******3er ngulo:*********
chi=atan(((sin(theta)*coord_x_mano)(cos(theta)*((cos(phi)*coord_y_mano)+(sin(phi)*coord_z_mano)
)))/((cos(phi)*coord_z_mano)-(sin(phi)*coord_y_mano)));
if(chi<0)
chi=chi+PI;
coord_x_mano_tresprima=(cos(theta)*coord_x_mano)+(sin(theta)
*cos(phi)*coord_y_mano)+(sin(theta)*sin(phi)*coord_z_mano);
coord_z_mano_tresprima=(sin(theta)*sin(chi)*coord_x_mano)(((cos(theta)*cos(phi)*sin(chi))+(sin(phi)*cos(chi)))*coord_
y_mano)+(((cos(phi)*cos(chi))(cos(theta)*sin(phi)*sin(chi)))*coord_z_mano);
//*******4 ngulo:*********

- 217 -

Cdigo fuente
alfa=atan((-coord_z_mano_tresprima)/((coord_x_mano_tresprima-radio)));
if(coord_x_mano_tresprima>radio) //2 y 3er cuadrante
{
alfa=atan((-coord_z_mano_tresprima)/((coord_x_mano_tresprima-radio)))+PI;
}
}while(alfa>(PI+ANGULO_MINIMO_4SERVO) || alfa<ANGULO_MINIMO_4SERVO
|| phi<ANGULO_MINIMO_1SERVO ||phi>(PI+ANGULO_MINIMO_1SERVO)); //Se
recalcula

un

nuevo

punto

si

se

superan

las

restricciones

por

limitaciones mecnicas de giro


//En

coord_x_codo,

coord_y_codo

coord_z_codo

han

quedado

los

valores de las coordenadas del codo que vas a usar. Y en phi,


theta, chi y alfa los angulos a girar.
if(coord_x_codo>=(radio+1)

||

coord_z_codo>=(radio+1)

||

coord_y_codo>=(radio+1)

||

posiciones_usadas[0]==800

||

pruebas>cont_puntos || abs(ang_bueno_ant)>LIMITE_DESVIACION)
{

//Si entra aqu es porque este punto es inalcanzable


punto_inalcanzable=1;
MessageBox(NULL,_T("Esta posicin no se puede alcanzar.

Por

favor, intente con otra"),_T("Problema"),MB_OK);


}
return punto_inalcanzable;
}

//Fin funcin calcular

//FUNCIN GIRO_SERVO
int Arm::giro_servo(int servo, int posicion)
{
int finalizado=0;
int i=servos[servo];
if(i-1<=posicion && i+1>=posicion)
{
finalizado=1;

//Ya est en la posicion

}
else //Aun no est en la posicion
{
if(i<posicion-1)

//Por debajo de la posicion

i+=1;
else if(i>posicion+1)//Por encima de la posicion
i-=1;
servos[servo]=i;
}

- 218 -

Cdigo fuente
return finalizado;
}

//FUNCIN GIRAR()
int Arm::girar()
{
int j=0;
int cont_servos=0;
int movimiento_acabado=0;
double phi_modificado=0;
double alfa_modificado=0;
double chi_modificado=0;
double theta_modificado=0;
if(punto_inalcanzable==0) //Si la ltima posicin mano solicitada
era alcanzable, punto_inalcanzable valdr cero.
{
//"Proteccin" ngulos
if(phi>(PI+ANGULO_MINIMO_1SERVO) || phi<ANGULO_MINIMO_1SERVO
||

theta>PI

||

theta<0

||

chi>PI

||

chi<0

||

alfa>(PI+ANGULO_MINIMO_4SERVO) || alfa<ANGULO_MINIMO_4SERVO)
{
MessageBox(NULL,_T("Inalcanzable"),_T("Fallo"),MB_OK);
}
//Pasa de radianes a los valores usados por los servos
phi_modificado=phi-ANGULO_MINIMO_1SERVO;//Reajuste

phi

por

limitaciones mecnicas (el origen no est en 0 sino en 50)


servos_final[0]=(phi_modificado*((LIMITEORIGEN)/PI))+ORIGEN;
theta_modificado=PI-theta-(AJUSTE_THETA*(PI/180));//Reajuste
del ngulo, el potenciometro mide en el sentido contrario.
servos_final[1]=((theta_modificado)*((LIMITEORIGEN)/PI))+ORIGEN;
chi_modificado=PI-chi;
servos_final[2]=((chi_modificado)*((LIMITEORIGEN)/PI))+ORIGEN;
alfa_modificado=((PI-(alfaANGULO_MINIMO_4SERVO))+(AJUSTE_ALFA*(PI/180)));
//Reajuste ngulo alfa por limitaciones mecnicas de giro
(el origen de giro no est en 0 sino en el tope(50)).
Adems el giro es en el sentido contrario.

- 219 -

Cdigo fuente
servos_final[3]=(alfa_modificado*((LIMITEORIGEN)/PI))+ORIGEN;
for(j=0;j<=3;j++)
{
//Comprobaciones lmites movimiento servos
if(servos_final[j]<ORIGEN)
servos_final[j]=ORIGEN;
if(servos_final[j]>LIMITE)
servos_final[j]=LIMITE;
cont_servos+=giro_servo(j,servos_final[j]);
}
if(cont_servos==4)
movimiento_acabado=1;
}
else{
MessageBox(NULL,_T("Punto

inalcanzable

")

,_T("Problema")

,MB_OK);
}
return movimiento_acabado;
}

//FUNCIN DATOS_POSICION
void Arm::datos_posicion()
{
datos[0]=coord_x_codo;

//Coordenada x del codo

datos[1]=coord_y_codo;

//Coordenada y del codo

datos[2]=coord_z_codo;

//Coordenada z del codo

datos[3]=phi;

//ngulo primer servo en rad

datos[4]=theta;

//ngulo segundo servo en rad

datos[5]=chi;

//ngulo terder servo en rad

datos[6]=alfa;

//ngulo cuarto servo en rad

datos[7]=cont_puntos;

//Nmero de posibles posiciones halladas

para el codo
datos[8]=puntos_validos;

//Nmero de posiciones realmente vlidas

para el codo
datos[9]=ang_bueno_ant;

//ngulo entre recta hombro-codo y recta

hombro-mano. Lo ideal es que sea cero


}

- 220 -

Cdigo fuente

Captulo 2

CDIGO APLICACIN

2.1 Archivo DriverDlg.cpp


#include "stdafx.h"
#include "Driver.h"
#include "DriverDlg.h"
#include "Comm_sr.h"
#include "arm.h"
#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
//DEFINICIONES:
#define clk 20
#define PI 3.141592
//DECLARACIN DE VARIABLES GLOBALES:
int i=0;

//Contador ciclos de reloj

int enviar=0;

//Variable usada para el control del botn enviar

int mover=0;

//Variable usada para el control del botn mover

double coord_x_mano=0;

//Coordenada x de la mano dada por el usuario

double coord_y_mano=0;

//Coordenada y de la mano dada por el usuario

double coord_z_mano=0;

//Coordenada z de la mano dada por el usuario

double coord_x_mano_ant=0;

//Coordenada x de la mano ciclo anterior

double coord_y_mano_ant=0;

//Coordenada y de la mano ciclo anterior

double coord_z_mano_ant=0;

//Coordenada z de la mano ciclo anterior

int

//Variable

peticion_calculo=1;

que

almacena

el

resultado

devuelto al calcular la posicin para el codo y los giros. Un 1 es que ha


habido error (inalcanzable), un 0 es resultado correcto.
int movim_realizado=0;

//Si 0 el movimiento no ha acabado si es 1 s

unsigned long rojo=RGB(255,0,0);

//Color rojo

unsigned long verde=RGB(0,255,0);

//Color verde

unsigned long azul=RGB(0,0,255);

//Color azul

- 221 -

Cdigo fuente

//Creacin de objetos de las clases comm y arm, que se usarn en la


aplicacin:
Comm c;
Arm a;
BOOL CDriverDlg::OnInitDialog()
{
CDialog::OnInitDialog();

//FUNCIN BOTN START


void CDriverDlg::OnBnClickedStart()
{
int com_corr=0;

//Var. que indica comunicacion correcta o no.

SetTimer(1,clk,NULL);

//Inicializa el timer

c.inicio();
c.configuracion(4,2,0);

//Configura TCS2 (ADs, USs, nMOT AUX)

c.desactiva_I2C();
c.Ping();
if(c.comunica()){

//Comunica con la tarjeta

if(c.compruebaPing) //comprobacion de que la TCS responde


com_corr=1;
else{
MessageBox(_T("Fallo

en

la

Comunicacin

")

_T

("error"),MB_OK);
}
}
else{
MessageBox(_T("No hace el comunica"),_T("Fallo"),MB_OK);
}
//Cdigo pintar punto verde/rojo segun comunicacion ok/fallo:
CDC *pDC=GetDC();
unsigned long color;

//define colores:

if(com_corr)
color=verde;
else
color=rojo;

- 222 -

Cdigo fuente
CPen pen;

//elige la pluma a usar en el dibujo

pen.CreatePen(PS_SOLID,3,color); //pluma trazo continuo anchura 3


pDC->SelectObject(&pen);
CBrush brush(color); //elige la brocha con que se pinta el relleno
pDC->SelectObject(&brush);
pDC->Ellipse(140,30,155,45);

//dibuja un circulo

UpdateData(false); //Actualiza pantalla


}

//FUNCIN BOTN STOP


void CDriverDlg::OnBnClickedStop()
{
c.inicio();
KillTimer(1);
c.comunica();
}

//Aqu el c.inicio y c.comunicacion no son necesarios en realidad

//FUNCIN TIMER
void CDriverDlg::OnTimer(UINT_PTR nIDEvent)
{
int punto_mano_valido=0;

//Punto mano valido (1) o no (0)

int cambio_mano=0;

//Cambio posicon mano (1) o no (0)

KillTimer(1);
if(enviar)

//Se para timer 1 y se borra la cuenta


//Se toma del usuario la posicin mano

{
coord_x_mano=int(GetDlgItemInt(IDC_EDIT2,NULL,true));
coord_y_mano=int(GetDlgItemInt(IDC_EDIT3,NULL,true));
coord_z_mano=int(GetDlgItemInt(IDC_EDIT4,NULL,true));
enviar=0;

//Para

no

coger

posicion

mano

hasta

que

el

usuario lo indique. Al pulsar Enviar,la varialbe se pone a 1


}
if((coord_x_mano_ant!=coord_x_mano)||(coord_y_mano_ant!=coord_y_ma
no)||(coord_z_mano_ant!=coord_z_mano)) //Cambio posicin mano
{
cambio_mano=1;
peticion_calculo=1;

//Habr que hacer nuevo clculo.

- 223 -

Cdigo fuente
if(pow(coord_x_mano,2)+pow(coord_y_mano,2)+pow(coord_z_mano,2)<=
(radio_total*radio_total))

//Posicin dentro esfera 1,5 m

{
punto_mano_valido=1;
}
else{
if(cambio_mano)
{
MessageBox(_T("El punto solicitado est Fuera de Alcance.
Introduzca una posicin distinta"),_T("Error"),MB_OK);
}
}
if(cambio_mano==1 && punto_mano_valido==1)
{
peticion_calculo=a.calcular(coord_x_mano,coord_y_mano,coord_z_mano
);

//Devuelve

un

si

clculo

bien,

un

si

inalcanzable
}
if(peticion_calculo==0 && mover==1)

//Si ltimo clculo ha sido

correcto y el usuario ha aceptado la posicin dando al botn mover


{
movim_realizado=a.girar();

//Se actualizan los valores

de DC de cada servo, para llegar hacia la posicin deseada


c.inicio();
c.DcServos(a.servos[0],a.servos[1],a.servos[2],a.servos[3],
a.servos[4],a.servos[5]);
c.comunica();

//Envio nueva posicin servos a tarjeta

if(movim_realizado)

//Si se ha completado movimiento

mover=0;
}
//Actualizaciones Pantalla:
SetDlgItemInt(IDC_EDIT1, i++,false);
if(peticion_calculo==0)

//contador de ciclos

//Si el ltimo clculo ha sido correcto

{
a.datos_posicion();

//Actualiza vector de datos

SetDlgItemInt(IDC_EDIT5, a.datos[0], true);

//Coord_x_codo

SetDlgItemInt(IDC_EDIT6, a.datos[1], true);

//Coord_y_codo

SetDlgItemInt(IDC_EDIT7, a.datos[2], true);

//Coord_z_codo

SetDlgItemInt(IDC_EDIT8,(180/PI)*(a.datos[3]),true);
SetDlgItemInt(IDC_EDIT9, (180/PI)*(a.datos[4]),true);
SetDlgItemInt(IDC_EDIT10, (180/PI)*(a.datos[5]),true);

- 224 -

Cdigo fuente
SetDlgItemInt(IDC_EDIT11, (180/PI)*(a.datos[6]),true);
SetDlgItemInt(IDC_EDIT12, a.datos[7], false);
SetDlgItemInt(IDC_EDIT13, a.datos[8], false);
SetDlgItemInt(IDC_EDIT14, a.datos[9], true);
SetDlgItemInt(IDC_EDIT15, a.servos[0], true);
SetDlgItemInt(IDC_EDIT16, a.servos[1], true);
SetDlgItemInt(IDC_EDIT17, a.servos[2], true);
SetDlgItemInt(IDC_EDIT18, a.servos[3], true);
SetDlgItemInt(IDC_EDIT19, a.servos[4], true);
SetDlgItemInt(IDC_EDIT20, a.servos[5], true);
}
UpdateData(false);

//Actualizacin datos en pantalla

//Se almacenan las coordenadas de la mano para el siguiente ciclo


coord_x_mano_ant=coord_x_mano;
coord_y_mano_ant=coord_y_mano;
coord_z_mano_ant=coord_z_mano;
SetTimer(1,clk,NULL);

//Se inicializa el timer

CDialog::OnTimer(nIDEvent);
}

//FUNCIN BOTN ENVIAR


void CDriverDlg::OnBnClickedEnviar()
{
enviar=1;
}

//FUNCIN BOTN OK.MOVER


void CDriverDlg::OnBnClickedMover()
{
if(peticion_calculo==0)
mover=1;
}

- 225 -

Cdigo fuente

El cdigo de la clase Comm_sr que constituye el driver de la TCS-2 as


como el cdigo de la clase serial, que constituye el driver del puerto serie,
se pueden encontrar en [11].

- 226 -

Datasheets

Parte VII

DATASHEETS

- 227 -

Datasheets

- 228 -

Documento n 2
Planos

ndice de Planos

ndice de Planos

Barra 1..Plano n1
Barra 2..Plano n2
Soporte servos 1er eje..Plano n3
Soporte servos ejes 2 y 3....Plano n4
Pieza L......Plano n5
Soporte rodamientos..Plano n6
Placa apoyo..Plano n7
Pieza C.....Plano n8
Buje...........Plano n9
Estructura apoyo barras......Plano n10
Unin barra - servo...............Plano n11
Acople salida barras.........Plano n12
Acople barras entrada......Plano n13
Amarre pin - servo.......Plano n14
Amarre corona grande.........Plano n15
Amarre corona mediana..........Plano n16
Eje 1 articulacin hombro...Plano n17
Eje 2 articulacin hombro...Plano n18
Eje 1 articulacin codo....Plano n19
Electrodo orificio ejes...Plano n20
Base.....Plano n21

Documento n 3
Pliego de
condiciones

Pliego de condiciones

ndice
Parte I

Pliego de condiciones .......................................... - 2 -

Captulo 1

Pliego de condiciones generales y econmicas. - 3 -

1.1 Condiciones generales....................................................................... - 3 1.1 Condiciones econmicas. .................................................................. - 5 -

Captulo 2

Pliego de condiciones tcnicas y particulares .... - 6 -

2.1 Equipo informtico. ........................................................................... - 6 2.2 Placas de circuito impreso. ............................................................... - 6 2.2.1 Soporte. ..................................................................................................... - 6 2.2.2 Diseo de las pistas. .................................................................................. - 7 -

2.3 Sistema de radiofrecuencia. .............................................................. - 7 2.4 Normas de calidad. ............................................................................ - 8 2.5 Normas de Seguridad e Higiene. .................................................... - 8 2.6 Vida til del producto. ...................................................................... - 8 2.7 Otros criterios de diseo. .................................................................. - 8 -

-1-

Pliego de condiciones

Parte I PLIEGO DE CONDICIONES

-2-

Pliego de condiciones

Captulo 1 PLIEGO DE CONDICIONES


GENERALES Y ECONMICAS.

1.1 Condiciones generales.


Las condiciones y clusulas que se establecen en este documento son de
obligado cumplimiento por las partes contratantes.
I. Tanto el administrador como el cliente se comprometen desde
la fecha de la firma del contrato a llevar a cabo lo que se
estipule.
II. Ante cualquier reclamacin o discrepancia en lo concerniente al
cumplimiento de lo pactado por cualquiera de las partes, una
vez agotada toda va de entendimiento, se tramitar el asunto
por la va de lo legal. El dictamen o sentencia que se dicte ser
de obligado cumplimiento para las dos partes.
III. Al firmarse el contrato, el suministrador se compromete a
facilitar toda la informacin necesaria para la instalacin y buen
funcionamiento del sistema, siempre que sea requerido para
ello.
IV. Asimismo, el cliente entregar al suministrador todas las
caractersticas distintivas del equipo comprado y aquellas otras
que considere oportunas para el necesario conocimiento de la
misma a efectos del diseo del presente equipo.
V. El plazo de entrega ser de tres meses, a partir de la fecha de la
firma del contrato, pudiendo ampliarse en un mes. Cualquier
modificacin de los plazos deber contar con el acuerdo de las
dos partes.
-3-

Pliego de condiciones
VI. En caso de retrasos imputables al suministrador, se considerar
una indemnizacin del 1 % del valor estipulado por semana de
retraso.
VII. Existir un plazo de garanta de un ao a partir de la entrega del
sistema. Dicha garanta quedar sin efecto si se demostrase que
el sistema ha estado sometido a manipulacin o uso indebido.
VIII. Cumplido dicho plazo de garanta, el suministrador queda
obligado a la reparacin del sistema durante un plazo de cinco
aos, fuera del cual quedar a su propio criterio atender la
peticin del cliente.
IX. En ningn momento tendr el suministrador obligacin alguna
frente a desperfectos o averas por uso indebido por personas
no autorizadas por el suministrador.

-4-

Pliego de condiciones

Condiciones econmicas.
I. Los precios indicados en este proyecto son firmes y sin
revisin por ningn concepto, siempre y cuando se acepten
dentro del periodo de validez del presupuesto que se fija
hasta Diciembre de 2009.
II. El pago se realizar como sigue:

75% a la firma del contrato.

25% en el momento de entrega.

III. La forma de pago ser al contado mediante cheque


nominativo o mediante transferencia bancaria. En ningn caso
se aceptarn letras de cambio.
IV. El suministrador se har cargo de los gastos de embalaje y del
transporte, dentro de la ciudad donde se encuentre la
instalacin. En caso de ser necesario transporte interurbano, el
gasto correr por cuenta del cliente. En todo caso, el
responsable de los posibles desperfectos ocasionados por el
transporte ser el suministrador.
V. Durante el plazo de garanta, la totalidad de los gastos
originados por las reparaciones corrern por cuenta del
suministrador.
VI. Fuera de dicho plazo y durante los siguientes cinco aos, los
costes sern fijados mediante acuerdo por ambas partes.
Pasados

aos,

stos

los

fijar

exclusivamente

el

suministrador.

-5-

Pliego de condiciones

Captulo 2 PLIEGO DE CONDICIONES


TCNICAS Y PARTICULARES

2.1 Equipo informtico.

El equipo informtico debe estar homologado conforme a la


normativa Europea y Espaola a fecha de Junio de 2009.

El equipo informtico debe instalarse conforme a las


indicaciones del fabricante, manteniendo las condiciones de
humedad y temperatura entre los lmites marcados.

Los programas informticos empleados han de contar con la


licencia preceptiva y cumplir con las condiciones de la misma.
En caso de usar programas de licencia GNU, se debern
respetar las condiciones de la misma.

2.2 Placas de circuito impreso.


2.2.1 Soporte.
El tipo de soporte aislante utilizado en las placas de circuito impreso ser
de fibra de vidrio, con las caractersticas siguientes (recomendadas):

Resistencia superficial en M

105

Resistencia volumtrica en M

107

Constante dielctrica (a f=1 MHz)

0,25

Temperatura mxima de trabajo

125C

Temperatura mxima de soldadura (mx. 20 seg.)

260C

-6-

Pliego de condiciones
El espesor de las placas ser de 1,6 mm (valor normalizado). Las placas
sern de una o dos caras, fabricadas por el mtodo sustractivo basado en
mscaras. Debern acompaarse de un esquema que contenga los taladros
a realizar, as como la colocacin exacta de los componentes.

2.2.2 Diseo de las pistas.


El diseo se realizar teniendo en cuenta las recomendaciones para
equipos de alta frecuencia y de telecomunicaciones que dicta la normativa
Europea en cuanto a:

Compatibilidad electromagntica (89/36/EEC).

Niveles de tensin (73/23/EEC).

Asimismo, se realizarn las pistas con el siguiente grosor recomendado


(suponiendo un espesor tpico):
Grosor(pulgadas)

Corriente Mxima

0.010"
0.015"
0.020"
0.025"
0.05"
0.1"
0.15"

0.3 A
0.4 A
0.7 A
1A
2A
4A
6A

2.3 Sistema de radiofrecuencia.


El sistema de radio frecuencia cumplir con los requisitos establecidos en
la normativa Europea (R&TTE Directive 1999-5-EC).
El sistema de radiofrecuencia se atendr a la normativa vigente de
proteccin del espacio radioelctrico y proteccin de la salud: LEY

GENERAL DE TELECOMUNICACIONES 11/1998, DE 24 DE


ABRIL DE 1998.

-7-

Pliego de condiciones

2.4 Normas de calidad.


Los sistemas se disearn de forma que cumplan las normas UNE, CEI y
EN aplicables a este tipo de productos, as como las normas ETSI
(European Telecommunications Standards Institute) para sistemas de
radiofrecuencia.

2.5 Normas de Seguridad e Higiene.


El proyecto cumplir con la Ley 31/95 de Prevencin de Riesgos
Laborales.

2.6 Vida til del producto.


Los sistemas se disearn para una vida til no inferior a 10 aos en
funcionamiento continuo.

2.7 Otros criterios de diseo.


Se emplearn componentes normalizados para los circuitos electrnicos.

-8-

Documento n 4
Mediciones y
presupuestos

Mediciones y presupuestos

ndice
Parte I

Mediciones y presupuestos ................................ - 3 -

Captulo 1

Introduccin..- 4 -

Captulo 2

Mediciones- 5 -

2.1 Brazo robtico. Componentes mecnicos....................................... - 5 2.2 Brazo robtico. Hardware ................................................................ - 6 2.3 Equipo y Herramientas ..................................................................... - 6 2.4 Mano de Obra Directa ....................................................................... - 7 2.5 Otros Costes Indirectos ..................................................................... - 7 -

Captulo 3

Precios unitarios y Sumas parciales.- 8 -

3.1 Brazo robtico. Componentes mecnicos....................................... - 8 3.2 Brazo robtico. Hardware ................................................................ - 9 3.3 Equipos y Herramientas ................................................................... - 9 3.4 Mano de Obra Directa ..................................................................... - 11 3.5 Otros Costes Indirectos ................................................................... - 11 -

Captulo 4

Presupuesto General.- 12 -

4.1 Coste Total del Proyecto ................................................................. - 12 -

Captulo 5

Presupuesto para Produccin en Serie...- 13 -

5.1 Brazo robtico. Componentes mecnicos..................................... - 13 5.2 Brazo robtico. Hardware .............................................................. - 14 5.3 Equipos y herramientas .................................................................. - 15 5.4 Mano de Obra Directa ..................................................................... - 16 5.5 Otros Costes Indirectos ................................................................... - 17 5.6 Presupuesto General ....................................................................... - 17 -

-1-

Mediciones y presupuestos

ndice de Tablas
Tabla 1: Mediciones de Componentes mecnicos ......................................................................... - 5 Tabla 2: Mediciones Hardware brazo robtico ............................................................................. - 6 Tabla 3: Mediciones de Equipos y herramientas .......................................................................... - 6 Tabla 4: Mediciones Mano de obra directa................................................................................... - 7 Tabla 5: Mediciones costes indirectos .......................................................................................... - 7 Tabla 6: Suma parcial componentes mecnicos............................................................................ - 9 Tabla 7: Suma parcial Hardware ................................................................................................. - 9 Tabla 8: Amortizaciones de Equipos y Herramientas ................................................................ - 10 Tabla 9: Sumas parciales Equipos y Herramientas .................................................................... - 11 Tabla 10: Suma parcial Mano de Obra Directa ......................................................................... - 11 Tabla 11: Suma parcial Costes Indirectos .................................................................................. - 11 Tabla 12: Presupuesto General del proyecto .............................................................................. - 12 Tabla 13: Suma parcial componentes mecnicos en fabricacin en Serie ................................... - 14 Tabla 14: Suma parcial Hardware en fabricacin en Serie ........................................................ - 14 Tabla 15: Amortizaciones de equipos y herramientas en produccin en Serie ........................... - 15 Tabla 16: Suma parcial equipos y herramientas en produccin en Serie ................................... - 16 Tabla 17: Suma parcial mano de obra directa en produccin en serie ........................................ - 16 Tabla 18: Suma parcial costes indirectos en produccin en Serie .............................................. - 17 Tabla 19: Presupuesto general del brazo robtico para produccin en Serie .............................. - 17 -

-2-

Mediciones y presupuestos

Parte II MEDICIONES Y
PRESUPUESTOS

-3-

Mediciones y presupuestos

Captulo 1 INTRODUCCIN
En este documento se desarrolla el presupuesto necesario para llevar a
cabo un prototipo como el fabricado en este proyecto.
Para el clculo de este presupuesto se ha tenido en cuenta que:

No se incluyen los costes completos correspondientes al equipo


informtico utilizado en el proyecto por no entenderse que formen
parte directa del mismo, siendo estos propiedad del desarrollador y
de la entidad colaboradora antes del inicio del desarrollo del
proyecto. El coste imputado ser el referente a la amortizacin de
los equipos.

No se incluye el coste del software ya que ha sido aportado


gratuitamente por Microsoft (a travs de su pgina web),
propietario del mismo.

Los precios de los componentes detallados corresponden al precio


pagado en su fecha de compra y pueden no coincidir con el precio
de compra en caso de requerirse una reproduccin del proyecto,
situacin en la cual este presupuesto podr ser revisado.

Se incluyen los costes de los equipos de medida utilizados durante


el desarrollo y prueba del prototipo, aunque finalmente no formen
parte de ste.

La mano de obra corresponden exclusivamente a la realizada por


este proyectista, no habiendo intervenido otras personas en el
proyecto.

-4-

Mediciones y presupuestos

Captulo 2 MEDICIONES
En este captulo se indicarn las diferentes partes que integran el proyecto
agrupadas de forma homognea en distintas partidas.

2.1 Brazo robtico. Componentes mecnicos


Elemento

Cantidad

Barra aluminio cuadrada 37x37 e 3,2 L 1m


Barra aluminio cuadrada 76x76 e 3,2 L 1m
Eje acero D 8mm L 1,5m
Rodamientos 8x22x7mm
Rodamientos 28x12x8mm
Barra aluminio D 1 inch. e 3,2mm L 1m
Corona 84 dientes Nylon
Corona 130 dientes Nylon
Pin 17 Dientes 7mm
Pin 17 Dientes 15mm (eje acero)
Soporte multifuncional
Pieza en "C" aluminio
Pieza en "L" aluminio
Barra aluminio D 25mm L 60cm (maciza)
Barra aluminio D80mm L 20cm (maciza)
Pletina aluminio 50mmx6mm L 60cm
Placa aluminio 500x300x2mm
Buje aluminio d 8mm
Barra Nylon66 D 25mm L1m
Tornillo M2x10mm
Tornillo M2x20mm
Tornillo M4x10mm
Tornillo M4x16mm
Tuerca M4
Tuerca M2
Arandela 8x6mm
Arandela 6x4mm
Pasador D2,7mm L15mm

1
1
2
6
2
2
2
1
3
3
6
6
6
1
1
2
5
8
1
20
20
40
40
80
40
40
40
15

Tabla 28: Mediciones de Componentes mecnicos

-5-

Mediciones y presupuestos

2.2 Brazo robtico. Hardware


Elemento

Cantidad

Servo Hitec HSR-5990TG


TCS-2
Cable Serie L 1,5 m
Cable conversor USB-Serie
Cable serie-RS232
Cable Alimentacin tarjeta, Servos L 1m
Cable tres hilos Alimentacin-seal Servos L 1m
Cable tres hilos Alimentacin-seal Servos L 20cm
Cable empalmes D2mm L3m
Condensador 100nF Papel
Condensador 470uF Electroltico

5
1
1
1
1
2
3
2
3
2
2

Tabla 29: Mediciones Hardware brazo robtico

2.3 Equipo y Herramientas


Elemento

Cantidad

Ordenador Compaq
Fuente de alimentacin 30V DC 10 A
Polmetro
Osciloscopio
Soldador
Bobina Estao 3m
Llaves Allen
Llaves planas
Destornillador
Sierra
Alicates
Cinta aislante
Limas
Gato
Fresa Vertical
Electroerosin
Torno Horizontal
Utillaje Fresa
Utillaje Electroerosin
Utillaje Torno

1
1
1
1
1
1
4
4
2
1
2
1
3
1
1
1
1
1
1
1

Tabla 30: Mediciones de Equipos y herramientas

-6-

Mediciones y presupuestos

2.4 Mano de Obra Directa


Descripcin

Horas

Documentacin Previa
Diseo Mecnico
Fabricacin Componentes
Construccin Mecnica
Implementacin Hardware
Desarrollo de Software
Pruebas y mejoras
Documentacin proyecto

25
95
140
115
105
105
150
70

Tabla 31: Mediciones Mano de obra directa

2.5 Otros Costes Indirectos

Elemento
Servicios Generales
Transporte
Tabla 32: Mediciones costes indirectos

-7-

Mediciones y presupuestos

Captulo 3 PRECIOS UNITARIOS Y SUMAS


PARCIALES

En este captulo se indicar el coste unitario de cada uno de los


componentes del captulo anterior y se indicarn los importes parciales de
cada una de las partes.

3.1 Brazo robtico. Componentes mecnicos

Elemento

Cantidad

Barra aluminio cuadrada 37x37 e 3,2 L 1m


Barra aluminio cuadrada 76x76 e 3,2 L 1m
Eje acero D 8mm L 1,5m
Rodamientos 8x22x7mm
Rodamientos 28x12x8mm
Barra aluminio D 1 inch. e 3,2mm L 1m
Corona 84 dientes Nylon
Corona 130 dientes Nylon
Pin 17 Dientes 7mm
Pin 17 Dientes 15mm eje acero
Soporte multifuncional
Pieza en "C" aluminio
Pieza en "L" aluminio
Barra aluminio D 25mm L 60cm maciza
Barra aluminio D80mm L 20cm maciza
Pletina aluminio 50mmx6mm L60cm
Placa aluminio 500x300x2mm
Buje aluminio
Barra Nylon66 D 25mm L1m
Tornillo M2x10mm
Tornillo M2x20mm
Tornillo M4x10mm
Tornillo M4x16mm
Tuerca M4

1
1
2
6
2
2
2
1
3
3
6
6
6
1
1
2
5
8
1
20
20
40
40
80

Precio
Unit. []
19,4
38,18
5,4
8,6
7,8
20,95
5
10,5
3,9
11
5,25
3,5
2,35
13,36
30,2
21,6
8,3
11,75
28,1
0,13
0,24
0,2
0,32
0,16

Precio
Total []
19,4
38,18
10,8
51,6
15,6
41,9
10
10,5
11,7
33
31,5
21
14,1
13,36
30,2
43,2
41,5
94
28,1
2,6
4,8
8
12,8
12,8

-8-

Mediciones y presupuestos
Tuerca M2
Arandela 8x6mm
Arandela 6x4mm
Pasador D2,7mm L15mm

40
40
40
15

0,12
0,19
0,16
0,35

TOTAL

4,8
7,6
6,4
5,25
624,69

Tabla 33: Suma parcial componentes mecnicos

3.2 Brazo robtico. Hardware

Elemento

Cantidad

Servo Hitec HSR-5990TG


TCS-2
Cable Serie L 1,5 m
Cable conversor USB-Serie
Cable serie-RS232
Cable Alimentacin tarjeta, Servos L 1m
Cable tres hilos Aliment.-seal Servos L 1m
Cable tres hilos Aliment.-seal Servos L 20cm
Cable empalmes D2mm L3m
Condensador 100nF Papel
Condensador 470uF Electroltico

5
1
1
1
1
2
3
2
3
2
2

TOTAL

Precio
Precio
Unit.[] Total []
120
600
85
85
12,5
12,5
18,25
18,25
3,25
3,25
1,25
2,5
0,75
2,25
0,5
1
1,05
3,15
0,08
0,16
0,1
0,2
728,26

Tabla 34: Suma parcial Hardware

3.3 Equipos y Herramientas


En este apartado se incluye el coste imputable al proyecto de los equipos y
herramientas utilizados. Muchos de estos no se compran directamente
para la realizacin del proyecto por tanto lo que se incluir ser la
amortizacin que le corresponden a las horas consumidas en esos equipos
para el desarrollo del proyecto.

-9-

Mediciones y presupuestos
Primero se muestra el clculo de esas amortizaciones, despus las sumas
parciales.
Elemento

Coste []

Fresa Vertical
Torno Horizontal
Electroerosin
Utillaje Fresa
Utillaje Torno
Utillaje Electroerosin
Osciloscopio
Ordenador Compaq
Fuente de
alimentacin 30V DC
10 A
Polmetro
Soldador
Llaves, alicates y otras
herramientas
TOTAL

34257,69
5409,11
76629,04
2208,72
1126,90
1307,20
950
1000

%
Amort.
Anual
3425,77
540,91
7662,90
220,87
112,69
130,72
237,50
250,00

160

Horas
Horas Amortizacin
Uso Ao Proyecto
[]
1200
1300
950
1200
1300
950
300
1600

55
60
25
55
60
25
35
185

157,01
24,97
201,66
10,12
5,20
3,44
27,71
28,91

40,00

400

45

4,50

45
35

11,25
8,75

450
500

45
35

1,13
0,61

80

20,00

1250

80

1,28
466,53

Tabla 35: Amortizaciones de Equipos y Herramientas

En la Tabla 35 se muestran los costes por amortizaciones imputables al


proyecto (ltima columna). Para el clculo de las amortizaciones se parte
del precio inicial del producto. Se supone una determinada amortizacin
anual del producto. En el caso de fresa, torno, electroerosin y sus
respectivos utillajes se supone amortizacin a 10 aos, para osciloscopio,
ordenador, fuente, polmetro, soldador y el resto de herramientas se
supone amortizacin del equipo a cuatro aos.
Una vez se tiene el valor de la amortizacin anual, se calcula la parte que
le corresponde a este proyecto en funcin de las horas que se ha utilizado
el equipo respecto de las horas de uso anual habitual de ste. Se aprecia
como las horas de fabricacin de componentes estn repartidas entre las
tres mquinas herramienta (fresa, torno y electroerosin).

- 10 -

Mediciones y presupuestos
En la Tabla 36 se muestra la suma parcial del coste de los equipos y
herramientas teniendo en cuenta las amortizaciones.
Elemento

Precio Total []

Ordenador Compaq
Fuente de alimentacin 30V DC 10 A
Polmetro
Osciloscopio
Soldador
Bobina Estao 3m
otras herramientas
Fresa Vertical
Electroerosin
Torno Horizontal
Utillaje Torno
Utillaje Fresa
Utillaje Electroerosin

28,91
4,5
1,13
27,71
0,61
2
1,28
157,01
201,66
24,97
5,2
10,12
3,44

TOTAL

468,54

Tabla 36: Sumas parciales Equipos y Herramientas

3.4 Mano de Obra Directa


Descripcin

Horas

Precio[] / h

Total []

Documentacin Previa
Diseo Mecnico
Fabricacin Componentes
Construccin Mecnica
Implementacin Hardware
Desarrollo de Software
Pruebas y mejoras
Documentacin proyecto

25
95
140
115
105
105
150
70

60
60
60
60
60
60
60
60

1500
5700
8400
6900
6300
6300
9000
4200

TOTAL

805 h

48300

Tabla 37: Suma parcial Mano de Obra Directa

3.5 Otros Costes Indirectos


Elemento

Precio []

Servicios Generales
Transporte

35
110

TOTAL

145

Tabla 38: Suma parcial Costes Indirectos

- 11 -

Mediciones y presupuestos

Captulo 4 PRESUPUESTO GENERAL


En este captulo se indican cada una de las sumas parciales y la suma de
todas ellas constituyendo el costo total del proyecto.

4.1 Coste Total del Proyecto

Descripcin

Precio []

Brazo robtico componentes mecnicos


Brazo Robtico Hardware
Equipos y Herramientas
Mano de Obra Directa
Otros Costes Indirectos

624,69
728,26
468,54
48300
145

TOTAL antes impuestos


I.V.A. (16%)

50266,49
8042,64

TOTAL

58309,13

Tabla 39: Presupuesto General del proyecto

- 12 -

Mediciones y presupuestos

Captulo 5 PRESUPUESTO PARA PRODUCCIN


EN

SERIE

En este captulo se analizar el coste que tendra el producto en caso de ser


fabricado de forma masiva. Los anteriores captulos, como se indica, hacen
referencia al coste de este proyecto y de la fabricacin del prototipo.
Lgicamente una vez que el producto pasase a ser fabricado en serie, los
costes se veran altamente reducidos ofreciendo unos precios por unidad
mucho ms atractivos.

5.1 Brazo robtico. Componentes mecnicos


En este grupo de componentes el ahorro es importante en la fabricacin en
serie respecto al prototipo ya que se ajustan las medidas de los materiales
comprados a lo exactamente necesario, se eliminan componentes que se
compraron para el prototipo pero que finalmente no se utilizaron y en
general los precios bajan al comprar los elementos en grandes cantidades.

Elemento
Barra aluminio cuadrada 37x37 e 3,2 L 80
cm
Barra aluminio cuadrada 76x76 e 3,2 L 20
cm
Eje acero D 8mm L 1m
Rodamientos 8x22x7mm
Rodamientos 28x12x8mm
Barra aluminio D 1 inch e 3,2mm L 60 cm
Corona 84 dientes Nylon
Corona 130 dientes Nylon
Pin 17 Dientes 7mm

Cantidad

Precio
Unit. []

Precio
Total []

8,4

8,4

15,25

15,25

2
6
2
2
2
1
3

2,1
4,5
5,2
10,25
3
6,5
2,2

4,2
27
10,4
20,5
6
6,5
6,6

- 13 -

Mediciones y presupuestos
3
1
1
2
1
6
1
20
10
26
8
34
30
34
30
9

Pieza en "C" aluminio


Barra aluminio D 25mm L 25cm maciza
Barra aluminio D80mm L 10cm maciza
Pletina aluminio 40mmx5mm L40cm
Placa aluminio 500x300x2mm
Buje aluminio
Barra Nylon66 D 25mm L 30cm
Tornillo M2x10mm
Tornillo M2x20mm
Tornillo M4x10mm
Tornillo M4x16mm
Tuerca M4
Tuerca M2
Arandela 8x6mm
Arandela 6x4mm
Pasador D2,7mm L15mm

2,8
7,8
18,4
12,4
7,8
8,5
12,8
0,1
0,18
0,16
0,24
0,12
0,08
0,14
0,14
0,3

8,4
7,8
18,4
24,8
7,8
51
12,8
2
1,8
4,16
1,92
4,08
2,4
4,76
4,2
2,7
263,87

TOTAL

Tabla 40: Suma parcial componentes mecnicos en fabricacin en Serie

5.2 Brazo robtico. Hardware

5
1
1
1
1

Precio
Unit. []
105
70
8,5
12,25
2,4

Precio
Total []
525
70
8,5
12,25
2,4

0,95

1,9

0,55

1,65

0,4

0,8

3
2
2

0,85
0,06
0,08

2,55
0,12
0,16

Elemento

Cantidad

Servo Hitec HSR-5990TG


TCS-2
Cable Serie L 1,5 m
Cable conversor USB-Serie
Cable serie-RS232
Cable Alimentacin tarjeta, Servos L
1m
Cable tres hilos Aliment.-seal Servos
L 1m
Cable tres hilos Aliment.-seal Servos
L 20cm
Cable empalmes D2mm L3m
Condensador 100nF Papel
Condensador 470uF Electroltico
TOTAL

625,33

Tabla 41: Suma parcial Hardware en fabricacin en Serie

- 14 -

Mediciones y presupuestos

5.3 Equipos y herramientas


El ahorro tambin es importante en esta parte gracias a que las horas de
uso de los distintos equipos se vern muy reducidas. Por un lado las horas
necesarias para fabricar bajaran porque la produccin en serie ser mucho
ms eficiente en ese sentido. En estos clculos la estimacin se ha basado
en fabricacin de los componentes mediante mquinas CNC. A pesar de
que las mquinas son bastante ms caras, las horas necesarias por
producto son mucho menores, con lo que el ahorro es importante. Por otro
lado las horas necesarias en equipos utilizados para pruebas disminuirn
muchsimo ya que el diseo ya estar refinado y apenas se necesitarn
pruebas. Todo esto se ve claramente en la siguiente tabla con las
amortizaciones imputables por cada equipo.
Elemento

Coste []

Fresa CNC
108182,18
Torno CNC
81136,63
Electroerosin
162273,27
CNC
Utillaje Fresa
3155,31
Utillaje Torno
1938,26
Utillaje
1667,81
Electroerosin
Osciloscopio
950
Ordenador
1000
Fuente de
alimentacin 30V
160
DC 10 A
Polmetro
45
Soldador
35
Llaves, alicates y
80
otras herramientas
TOTAL

% Amort.
Anual
10818,22
8113,66

Horas
Uso Ao
1200
1300

Horas
Proyecto
2
2,5

Amortizacin
[]
18,03
15,60

16227,33

950

17,08

315,53
193,83

1200
1300

2
2,5

0,53
0,37

166,78

950

0,18

237,50
250,00

300
1600

3
15

2,38
2,34

40,00

400

0,30

11,25
8,75

450
500

2
2

0,05
0,04

20,00

1250

0,06
56,96

Tabla 42: Amortizaciones de equipos y herramientas en produccin en Serie

Elemento

Precio Total

Ordenador Compaq
Fuente de alimentacin 30V DC 10 A

2,34
0,3

- 15 -

Mediciones y presupuestos
Polmetro
Osciloscopio
Soldador
Bobina Estao 3m
otras herramientas
Fresa CNC
Electroerosin CNC
Torno CNC
Utillaje Torno
Utillaje Fresa
Utillaje Electroerosin

0,05
2,38
0,04
2
0,06
18,03
17,08
15,6
0,37
0,53
0,18

TOTAL

58,96

Tabla 43: Suma parcial equipos y herramientas en produccin en Serie

5.4 Mano de Obra Directa


La mano de obra directa es la que ve ms disminuida su valor. La razn es
doble. Por un lado el diseo, prueba y desarrollo de software estar
prcticamente cerrado con lo que las horas totales en estos conceptos se
repartirn sobre el total de unidades, tocndole muy poco a cada una. Por
otra parte, la fabricacin, montaje y dems requerir menos horas y
adems podr ser realizada por personal de baja cualificacin cuyo coste
por hora sea bastante ms bajo.

Descripcin

Cantidad

Precio [] /h

Total []

Documentacin Previa
Diseo Mecnico
Fabricacin Componentes
Construccin Mecnica
Implementacin Hardware
Desarrollo de Software
Pruebas y mejoras
Documentacin proyecto

1
5
5,5
35
25
5
5
1

60
60
20
20
20
60
60
60

60
300
110
700
500
300
300
60

TOTAL

82,5 h

2330

Tabla 44: Suma parcial mano de obra directa en produccin en serie

- 16 -

Mediciones y presupuestos

5.5 Otros Costes Indirectos


Elemento

Precio []

Servicios Generales
Transporte

20
10

TOTAL

30

Tabla 45: Suma parcial costes indirectos en produccin en Serie

5.6 Presupuesto General


Finalmente se comprueba como el presupuesto definitivo del producto en
caso de fabricacin en serie es realmente atractivo si se compara con otros
brazos robticos similares del mercado, cuyos precios oscilan entre los
10000 y los 25000 , segn sus caractersticas.

Descripcin

Precio

Brazo robtico componentes mecnicos


Brazo Robtico Hardware
Equipos y Herramientas
Mano de Obra Directa
Otros Costes Indirectos

263,87
625,33
58,96
2330
30

TOTAL antes impuestos


I.V.A. (16%)

3308,16
529,31

TOTAL

3837,47

Tabla 46: Presupuesto general del brazo robtico para produccin en Serie

- 17 -

También podría gustarte