universidad politÉcnica de madrid …oa.upm.es/33592/1/caracterización de un robot para...

101
UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES Trabajo Fin de Máster “CARACTERIZACIÓN DE UN ROBOT PARA APLICACIONES DE MECANIZADO CON REQUERIMIENTOS DE TOLERANCIAS” Autor: Eugenio Ferreras Higuero Tutor: Javier García de Jalón Junio 2014 Máster de especialización de Ingeniería Mecánica

Upload: dinhcong

Post on 25-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  

  

UNIVERSIDAD POLITÉCNICA DE MADRID 

ESCUELA TÉCNICA SUPERIOR DE INGENIEROS INDUSTRIALES 

Trabajo Fin de Máster 

“CARACTERIZACIÓN DE UN ROBOT PARA 

APLICACIONES DE MECANIZADO CON 

REQUERIMIENTOS DE TOLERANCIAS” 

Autor: Eugenio Ferreras Higuero 

Tutor: Javier García de Jalón  

 

Junio 2014

Máster de especialización de Ingeniería Mecánica 

  

  

 

                    

A Zhenia, por lo que me da. A mis hijos, Rodrigo y Ludwig, por lo que me darán. A mis Padres, Mely y Eugenio, por lo que me dieron. 

   

  

  

                      "... no hay gloria más ilustre para el varón en esta vida, que la de campear por las obras de sus pies 

o de sus manos." Odisea. Canto VIII 

   

  

  

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

5 | P á g i n a   

Resumen 

El  presente  Trabajo  fin  Fin  de  Máster,  versa  sobre  una  caracterización  preliminar  del 

comportamiento de un robot de tipo industrial, configurado por 4 eslabones y 4 grados de libertad, 

y sometido a fuerzas de mecanizado en su extremo. 

 

El entorno de trabajo planteado es el de plantas de fabricación de piezas de aleaciones de aluminio 

para automoción. Este tipo de componentes parte de un primer proceso de fundición que saca  la 

pieza  en  bruto.  Para  series medias  y  altas,  en  función  de  las  propiedades mecánicas  y  plásticas 

requeridas  y  los  costes  de  producción,  la  inyección  a  alta  presión  (HPDC)  y  la  fundición  a  baja 

presión (LPC) son las dos tecnologías más usadas en esta primera fase. 

Para  inyección  a  alta  presión,  las  aleaciones  de  aluminio  más  empleadas  son,  en  designación 

simbólica  según norma EN 1706  (entre paréntesis  su designación numérica); EN AC AlSi9Cu3(Fe) 

(EN AC 46000) , EN AC AlSi9Cu3(Fe)(Zn) (EN AC 46500), y EN AC AlSi12Cu1(Fe) (EN AC 47100). Para 

baja  presión,  EN  AC  AlSi7Mg0,3  (EN  AC  42100).  En  los  3  primeros  casos,  los  límites  de  Silicio 

permitidos pueden superan el 10%. En el cuarto caso, es inferior al 10% por lo que, a los efectos de 

ser sometidas a mecanizados,  las piezas fabricadas en aleaciones con Si superior al 10%, se puede 

considerar que son equivalentes, diferenciándolas de la cuarta. 

Las tolerancias geométricas y dimensionales conseguibles directamente de fundición, recogidas en 

normas como ISO 8062 o DIN 1688‐1, establecen  límites para este proceso. Fuera de esos  límites, 

las garantías en conseguir producciones con los objetivos de ppms aceptados en la actualidad por el 

mercado, obligan a ir a fases posteriores de mecanizado. 

Aquellas geometrías que, funcionalmente, necesitan disponer de unas tolerancias geométricas y/o 

dimensionales definidas acorde a  ISO 1101, y no capaces por este proceso  inicial de moldeado a 

presión, deben ser procesadas en una  fase posterior en células de mecanizado. En este caso,  las 

tolerancias alcanzables para procesos de arranque de viruta se recogen en normas como ISO 2768. 

Las  células de mecanizado  se  componen,  por  lo  general, de  varios  centros  de  control  numérico 

interrelacionados y comunicados entre sí por robots que manipulan las piezas en proceso de uno a 

otro. Dichos  robots, disponen en  su extremo de una pinza utillada para poder  coger y  soltar  las 

piezas en los útiles de mecanizado, las mesas de intercambio para cambiar la pieza de posición o en 

utillajes de equipos de medición y prueba, o en cintas de entrada o salida. La repetibilidad es alta, 

de  centésimas  incluso,  definida  según  norma  ISO  9283.  El  problema  es  que,  estos  rangos  de 

repetibilidad sólo se garantizan si no se hacen esfuerzos o éstos son despreciables (caso de mover 

piezas). Aunque las inercias de mover piezas a altas velocidades hacen que la trayectoria intermedia 

tenga  poca  precisión,  al  inicio  y  al  final  (al  coger  y  dejar  pieza,  p.e.)  se  hacen  a  velocidades 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

6 | P á g i n a   

relativamente bajas que hacen que el efecto de las fuerzas de inercia sean menores y que permiten 

garantizar la repetibilidad anteriormente indicada. 

 

No ocurre así si se quitara la garra y se intercambia con un cabezal motorizado con una herramienta 

como broca, mandrino, plato de cuchillas, fresas frontales o tangenciales… Las fuerzas ejercidas de 

mecanizado generarían unos pares en  las uniones  tan grandes y  tan variables que el  control del 

robot no sería capaz de responder (o no está preparado, en un principio) y generaría una desviación 

en  la  trayectoria,  realizada  a  baja  velocidad,  que  desencadenaría  en  un  error  de  posición  (ver 

norma  ISO  5458)  no  asumible  para  la  funcionalidad  deseada.  Se  podría  llegar  al  caso  de  que  la 

tolerancia alcanzada por un pretendido proceso más exacto diera una dimensión peor que  la que 

daría el proceso de  fundición, en principio con mayor variabilidad dimensional en proceso  (y por 

ende con mayor intervalo de tolerancia garantizable). 

De hecho, en  los CNCs,  la precisión es muy elevada,  (pudiéndose despreciar en  la mayoría de  los 

casos)  y  no  es  la  responsable  de,  por  ejemplo  la  tolerancia  de  posición  al  taladrar  un  agujero. 

Factores como, temperatura de la sala y de la pieza, calidad constructiva de los utillajes y rigidez en 

el amarre, error en el giro de mesas y de colocación de pieza, si  lleva agujeros previos o no, si  la 

herramienta está bien equilibrada y el cono es el adecuado para el tipo de mecanizado…  influyen 

más. 

Es  interesante que, un elemento no específico tan común en una planta  industrial, en el entorno 

anteriormente descrito, como es un robot, el cual no sería necesario añadir por disponer de él ya (y 

por  lo  tanto  la  inversión sería muy pequeña), puede mejorar  la cadena de valor disminuyendo el 

costo de fabricación. Y si se pudiera conjugar que ese robot destinado a tareas de manipulación, en 

los muchos tiempos de espera que va a disfrutar mientras el CNC arranca viruta, pudiese coger un 

cabezal y apoyar ese mecanizado; sería doblemente interesante. 

Por  lo  tanto, se antoja  sugestivo poder conocer su comportamiento e  intentar explicar qué sería 

necesario para llevar esto a cabo, motivo de este trabajo. 

 

La  arquitectura  de  robot  seleccionada  es  de  tipo  SCARA.  La  búsqueda  de  un  robot  cómodo  de 

modelar  y  de  analizar  cinemática  y  dinámicamente,  sin  limitaciones  relevantes  en  la 

multifuncionalidad de trabajos solicitados, ha  llevado a esta elección,  frente a otras arquitecturas 

como  por  ejemplo  los  robots  antropomórficos  de  6  grados  de  libertad, muy  populares  a  nivel 

industrial. 

Este robot dispone de 3 uniones, de las cuales 2 son de tipo par de revolución (1 grado de libertad 

cada una) y la tercera es de tipo corredera o par cilíndrico (2 grados de libertad).  La primera unión, 

de  tipo par de  revolución,  sirve para unir el  suelo  (considerado  como eslabón número 1)  con el 

eslabón número 2. La segunda unión, también de ese tipo, une el eslabón número 2 con el eslabón 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

7 | P á g i n a   

número 3. Estos 2 brazos, pueden describir un movimiento horizontal, en el plano X‐Y.   El  tercer 

eslabón, está unido al eslabón número 4 por la unión de tipo corredera. El movimiento que puede 

describir es paralelo al eje Z. El robot es de 4 grados de libertad (4 motores). 

En  relación  a  los posibles  trabajos que puede  realizar  este  tipo de  robot,  su  versatilidad  abarca 

tanto operaciones típicas de manipulación como operaciones de arranque de viruta. 

Uno de los mecanizados más usuales es el taladrado, por lo cual se elige éste para su modelización 

y análisis. Dentro del taladrado se elegirá para acotar las fuerzas, taladrado en macizo con broca de 

diámetro 9 mm. 

El robot se ha considerado por el momento que tenga comportamiento de sólido rígido, por ser el 

mayor efecto esperado el de los pares en las uniones. 

 

Para modelar el  robot se utiliza el método de  los sistemas multicuerpos. Dentro de este método 

existen diversos  tipos de  formulaciones  (p.e. Denavit‐Hartenberg). D‐H genera una cantidad muy 

grande de ecuaciones e incógnitas. Esas incógnitas son de difícil comprensión y, para cada posición, 

hay que detenerse a pensar qué significado tienen. 

Se ha optado por  la formulación de coordenadas naturales. Este sistema utiliza puntos y vectores 

unitarios para definir la posición de los distintos cuerpos, y permite compartir, cuando es posible y 

se quiere, para definir los pares cinemáticos y reducir al mismo tiempo el número de variables. Las 

incógnitas son intuitivas, las ecuaciones de restricción muy sencillas  y se reduce considerablemente 

el número de ecuaciones e incógnitas. 

Sin embargo,  las coordenadas naturales “puras” tienen 2 problemas. El primero, que 2 elementos 

con un ángulo de 0 o 180 grados, dan lugar a puntos singulares que pueden crear problemas en las 

ecuaciones  de  restricción  y  por  lo  tanto  han  de  evitarse.  El  segundo,  que  tampoco  inciden 

directamente sobre la definición o el origen de los movimientos. 

Por  lo  tanto,  es  muy  conveniente  complementar  esta  formulación  con  ángulos  y  distancias 

(coordenadas  relativas). Esto da  lugar a  las  coordenadas naturales mixtas, que es  la  formulación 

final elegida para este TFM. 

Las coordenadas naturales mixtas no tienen el problema de los puntos singulares. Y la ventaja más 

importante reside en su utilidad a la hora de aplicar fuerzas motrices, momentos o evaluar errores. 

Al incidir sobre la incógnita origen (ángulos o distancias) controla los motores de manera directa. 

El algoritmo, la simulación y la obtención de resultados se ha programado mediante Matlab. 

 

Para realizar el modelo en coordenadas naturales mixtas, es preciso modelar en 2 pasos el robot a 

estudio. El primer modelo  se basa en  coordenadas naturales. Para  su  validación,  se plantea una 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

8 | P á g i n a   

trayectoria  definida  y  se  analiza  cinemáticamente  si  el  robot  satisface  el movimiento  solicitado, 

manteniendo su integridad como sistema multicuerpo. 

Se cuantifican los puntos (en este caso inicial y final) que configuran el robot. Al tratarse de sólidos 

rígidos,  cada  eslabón  queda  definido  por  sus  respectivos  puntos  inicial  y  final  (que  son  los más 

interesantes para la cinemática y la dinámica) y por un vector unitario no colineal a esos 2 puntos. 

Los vectores unitarios se colocan en los lugares en los que se tenga un eje de rotación o cuando se 

desee  obtener  información  de  un  ángulo.  No  son  necesarios  vectores  unitarios  para  medir 

distancias.  Tampoco  tienen  por  qué  coincidir  los  grados  de  libertad  con  el  número  de  vectores 

unitarios. 

Las  longitudes de cada eslabón quedan definidas como constantes geométricas. Se establecen  las 

restricciones que definen la naturaleza del robot y las relaciones entre los diferentes elementos y su 

entorno. 

La  trayectoria  se  genera  por  una  nube  de  puntos  continua,  definidos  en  coordenadas 

independientes.  

Cada  conjunto  de  coordenadas  independientes  define,  en  un  instante  concreto,  una  posición  y 

postura de robot determinada. Para conocerla,  es necesario saber qué coordenadas dependientes 

hay en ese  instante, y se obtienen resolviendo por el método de Newton‐Rhapson  las ecuaciones 

de restricción en función de las coordenadas independientes. El motivo de hacerlo así es porque las 

coordenadas  dependientes  deben  satisfacer  las  restricciones,  cosa  que  no  ocurre  con  las 

coordenadas independientes. 

Cuando la validez del modelo se ha probado (primera validación), se pasa al modelo 2. 

 

El modelo número 2, incorpora a las coordenadas naturales del modelo número 1, las coordenadas 

relativas en forma de ángulos en  los pares de revolución (3 ángulos; ϕ1, ϕ 2 y ϕ3) y distancias en 

los  pares  prismáticos  (1  distancia;  s).  Estas  coordenadas  relativas  pasan  a  ser  las  nuevas 

coordenadas  independientes  (sustituyendo  a  las  coordenadas  independientes  cartesianas  del 

modelo primero, que eran coordenadas naturales). 

Es necesario revisar si el sistema de vectores unitarios del modelo 1 es suficiente o no. Para este 

caso concreto, se han necesitado añadir 1 vector unitario adicional con objeto de que  los ángulos 

queden perfectamente determinados con las correspondientes ecuaciones de producto escalar y/o 

vectorial. 

Las  restricciones  habrán  de  ser  incrementadas  en,  al menos,  4  ecuaciones;  una  por  cada  nueva 

incógnita. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

9 | P á g i n a   

La validación del modelo número 2,  tiene 2  fases.  La primera, al  igual que  se hizo en el modelo 

número  1,  a  través  del  análisis  cinemático  del  comportamiento  con  una  trayectoria  definida. 

Podrían  obtenerse  del  modelo  2  en  este  análisis,  velocidades  y  aceleraciones,  pero  no  son 

necesarios. Tan sólo interesan los movimientos o desplazamientos finitos.  

Comprobada  la  coherencia  de  movimientos  (segunda  validación),  se  pasa  a  analizar 

cinemáticamente el comportamiento con trayectorias interpoladas. 

 

El análisis  cinemático  con  trayectorias  interpoladas,  trabaja  con un número mínimo de 3 puntos 

máster. En este caso se han elegido 3; punto inicial, punto intermedio y punto final. El número de 

interpolaciones con el que se actúa es de 50 interpolaciones en cada tramo (cada 2 puntos máster 

hay un tramo), resultando un total de 100 interpolaciones. 

El método de  interpolación utilizado es el de splines cúbicas con condición de aceleración  inicial y 

final constantes, que genera  las coordenadas  independientes de  los puntos  interpolados de cada 

tramo.  Las  coordenadas  dependientes  se  obtienen  resolviendo  las  ecuaciones  de  restricción  no 

lineales con el método de Newton‐Rhapson. 

El método de las splines cúbicas es muy continuo, por lo que si se desea modelar una trayectoria en 

el que haya al menos 2 movimientos claramente diferenciados, es preciso hacerlo en 2  tramos y 

unirlos posteriormente. Sería el caso en el que alguno de los motores se desee expresamente que 

esté parado durante el primer movimiento y otro distinto lo esté durante el segundo movimiento (y 

así sucesivamente). 

Obtenido el movimiento, se calculan, también mediante  fórmulas de diferenciación numérica,  las 

velocidades  y  aceleraciones  independientes.  El  proceso  es  análogo  al  anteriormente  explicado, 

recordando la condición impuesta de que la aceleración en el instante t= 0 y en instante t= final, se 

ha  tomado  como  0.  Las  velocidades  y  aceleraciones  dependientes  se  calculan  resolviendo  las 

correspondientes derivadas de las ecuaciones de restricción. 

Se  comprueba,  de  nuevo,  en  una  tercera  validación  del modelo,  la  coherencia  del movimiento 

interpolado. 

 

La  dinámica  inversa  calcula,  para  un movimiento  definido  ‐conocidas  la  posición,  velocidad  y  la 

aceleración en cada instante de tiempo‐, y conocidas las fuerzas externas que actúan (por ejemplo 

el peso); qué  fuerzas hay que aplicar en  los motores  (donde hay control) para que se obtenga el 

citado movimiento. En la dinámica inversa, cada instante del tiempo es independiente de los demás 

y tiene una posición, una velocidad y una aceleración y unas fuerzas conocidas. 

En este caso concreto, se desean aplicar, de momento, sólo las fuerzas debidas al peso, aunque se 

podrían haber incorporado fuerzas de otra naturaleza si se hubiese deseado. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

10 | P á g i n a   

Las posiciones, velocidades y aceleraciones, proceden del cálculo cinemático. El efecto  inercial de 

las  fuerzas  tenidas  en  cuenta  (el  peso)  es  calculado.  Como  resultado  final  del  análisis  dinámico 

inverso, se obtienen  los pares que han de ejercer  los cuatro motores para replicar el movimiento 

prescrito con las fuerzas que estaban actuando. 

 

La cuarta validación del modelo consiste en confirmar que el movimiento obtenido por aplicar  los 

pares  obtenidos  en  la  dinámica  inversa,  coinciden  con  el  obtenido  en  el  análisis  cinemático 

(movimiento teórico). Para ello, es necesario acudir a la dinámica directa. 

La  dinámica  directa  se  encarga  de  calcular  el movimiento  del  robot,  resultante  de  aplicar  unos 

pares en motores y unas fuerzas en el robot.  

Por  lo  tanto,  el  movimiento  real  resultante,  al  no  haber  cambiado  ninguna  condición  de  las 

obtenidas  en  la  dinámica  inversa  (pares  de motor  y  fuerzas  inerciales  debidas  al  peso  de  los 

eslabones) ha de  ser el mismo al movimiento  teórico. Siendo así,  se considera que el  robot está 

listo para trabajar. 

 

Si  se  introduce  una  fuerza  exterior  de mecanizado  no  contemplada  en  la  dinámica  inversa  y  se 

asigna en los motores los mismos pares resultantes de la resolución del problema dinámico inverso, 

el movimiento real obtenido no es igual al movimiento teórico. 

El control de lazo cerrado se basa en ir comparando el movimiento real con el deseado e introducir 

las correcciones necesarias para minimizar o anular las diferencias. 

Se  aplican  ganancias  en  forma  de  correcciones  en  posición  y/o  velocidad  para  eliminar  esas 

diferencias. Se evalúa el error de posición como la diferencia, en cada punto, entre el movimiento 

teórico  deseado  en  el  análisis  cinemático  y  el movimiento  real  obtenido  para  cada  fuerza  de 

mecanizado y una ganancia concreta.  

Finalmente,  se  mapea  el  error  de  posición  obtenido  para  cada  fuerza  de  mecanizado  y  las 

diferentes  ganancias  previstas,  graficando  la mejor  precisión  que  puede  dar  el  robot  para  cada 

operación que se le requiere, y en qué condiciones. 

 

Palabras  clave:  robot  de  mecanizado,  error  de  posición,  tolerancia,  aleaciones  de  aluminio, 

automoción, multicuerpo.  

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

11 | P á g i n a   

Abstract 

This Master´s  Thesis deals with  a preliminary  characterization of  the behaviour  for  an  industrial 

robot,  configured with 4 elements and 4 degrees of freedoms, and subjected to machining forces 

at its end. 

 

Proposed working conditions are those typical from manufacturing plants with aluminium alloys for 

automotive  industry.  This  type of  components  comes  from  a  first  casting process  that produces 

rough parts. For medium and high volumes, high pressure die casting (HPDC) and low pressure die 

casting (LPC) are the most used technologies in this first phase.  

For high pressure die casting processes, most used aluminium alloys are,  in  simbolic designation 

according EN 1706 standard (between brackets, its numerical designation); EN AC AlSi9Cu3(Fe) (EN 

AC 46000) , EN AC AlSi9Cu3(Fe)(Zn) (EN AC 46500), y EN AC AlSi12Cu1(Fe) (EN AC 47100). For  low 

pressure, EN AC AlSi7Mg0,3 (EN AC 42100). For the 3 first alloys, Si allowed limits can exceed 10% 

content.  Fourth  alloy  has  admisible  limits  under  10%  Si.  That means,  from  the point  of  view  of 

machining,  that  components made  of    alloys with  Si  content  above  10%  can  be  considered  as 

equivalent, and the fourth one must be studied separately. 

Geometrical and dimensional  tolerances directly achievables  from  casting, gathered  in  standards 

such as ISO 8062 or DIN 1688‐1,  establish a limit for this process. Out from those limits, guarantees 

to achieve batches with objetive ppms  currently accepted by market,  force  to go  to  subsequent 

machining process. 

Those  geometries  that  functionally  require  a  geometrical  and/or  dimensional  tolerance  defined 

according  ISO 1101, not capable with  initial moulding process, must be obtained afterwards  in a 

machining phase with machining cells.  In  this case,  tolerances achievables with cutting processes 

are gathered in standards such as ISO 2768. 

In general terms, machining cells contain several CNCs that they are interrelated and connected by 

robots that handle parts in process among them. Those robots have at their end a gripper in order 

to  take/remove  parts  in machining  fixtures,  in  interchange  tables  to modify  position  of  part,  in 

measurement and control tooling devices, or  in entrance/exit conveyors. Repeatibility for robot  is 

tight,  even  few  hundredths  of  mm,  defined  according  ISO  9283.  Problem  is  like  this;  those 

repeatibilty ranks are only guaranteed when there are no stresses or they are not significant (f.e. 

due to only movement of parts). Although inertias due to moving parts at a high speed make that 

intermediate paths have  little accuracy, at the beginning and at the end of trajectories (f.e, when 

picking part or  leaving  it) movement  is made with very slow speeds that make  lower the effect of 

inertias forces and allow to achieve repeatibility before mentioned. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

12 | P á g i n a   

It  does  not  happens  the  same  if  gripper  is  removed  and  it  is  exchanged  by  an  spindle with  a 

machining tool such as a drilling tool, a pcd boring tool, a face or a tangential milling cutter… Forces 

due to machining would create such big and variable torques  in joints that control from the robot 

would not be able  to  react  (or  it  is not prepared  in principle) and would produce a deviation  in 

working  trajectory,  made  at  a  low  speed,  that  would  trigger  a  position  error  (see  ISO  5458 

standard) not assumable for requested function. Then it could be possible that tolerance achieved 

by a more exact expected process would turn out  into a worst dimension than the one that could 

be achieved with casting process,  in principle with a  larger dimensional variability  in process (and 

hence with a larger tolerance range reachable). 

As a matter of fact, accuracy is very tight in CNC, (its influence can be ignored in most cases) and it 

is not the responsible of, for example position tolerance when drilling a hole. Factors as, room and 

part  temperature,  manufacturing  quality  of  machining  fixtures,  stiffness  at  clamping  system, 

rotating error in 4th axis and part positioning error, if there are previous holes, if machining tool is 

properly balanced, if shank is suitable for that machining type… have more influence. 

It  is  interesting to know that, a non specific element as common, at a manufacturing plant  in the 

enviroment  above described,  as  a  robot  (not  needed  to be  added,  therefore with  an  additional 

minimum investment), can improve value chain decreasing manufacturing costs. And when it would 

be possible to combine that the robot dedicated to handling works could support CNCs´ works in its 

many waiting time while CNCs cut, and could take an spindle and help to cut;  it would be double 

interesting. 

So according to all this, it would be interesting to be able to know its behaviour and try to explain 

what would be necessary to make this possible, reason of this work. 

 

Selected  robot  architecture  is  SCARA  type.  The  search  for  a  robot  easy  to  be  modeled  and 

kinematically  and  dinamically  analyzed,  without  significant  limits  in  the  multifunctionality  of 

requested operations, has  lead to this choice. Due to that, other very popular architectures  in the 

industry, f.e. 6 DOFs anthropomorphic robots, have been discarded. 

This  robot  has  3  joints,  2  of  them  are  revolute  joints  (1 DOF  each  one)  and  the  third  one  is  a 

cylindrical joint (2 DOFs). The first  joint, a revolute one,  is used to join floor (body 1) with body 2. 

The  second  one,  a  revolute  joint  too,  joins  body  2  with  body  3.  These  2  bodies  can  move 

horizontally in X‐Y plane. Body 3  is linked to body 4 with a cylindrical joint. Movement that can be 

made is paralell to Z axis. The robt has 4 degrees of freedom (4 motors). 

Regarding  potential works  that  this  type  of  robot  can make,  its  versatility  covers  either  typical 

handling operations or cutting operations. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

13 | P á g i n a   

One of the most common machinings is to drill. That is the reason why it has been chosen for the  

model and analysis. Within drilling, in order to enclose spectrum force, a typical solid drilling with 9 

mm diameter. 

The  robot  is  considered, at  the moment,  to have a behaviour as  rigid body, as biggest expected 

influence is the one due to torques at joints.   

 

In order  to modelize  robot,  it  is used multibodies  system method. There are under  this heading  

different sorts of formulations (f.e. Denavit‐Hartenberg). D‐H creates a great amount of equations 

and unknown quantities. Those unknown quatities are of a difficult understanding and,  for each 

position, one must stop to think about which meaning they have. 

The choice made  is  therefore one of  formulation  in natural coordinates. This  system uses points 

and  unit  vectors  to  define  position  of  each  different  elements,  and  allow  to  share, when  it  is 

possible and wished, to define kinematic torques and reduce number of variables at the same time. 

Unknown  quantities  are  intuitive,  constrain  equations  are  easy  and  number  of  equations  and 

variables are strongly reduced. 

However, “pure” natural coordinates  suffer 2 problems. The  first one  is  that 2 elements with an 

angle of 0° or 180°, give rise to singular positions that can create problems  in constrain equations 

and therefore they must be avoided. The second problem is that they do not work directly over the 

definition or the origin of movements. 

Given  that,  it  is highly  recommended  to  complement  this  formulation with angles and distances 

(relative coordinates). This  leads to mixed natural coordinates, and they are the  final  formulation 

chosen for this MTh. 

Mixed  natural  coordinates  have  not  the  problem  of  singular  positions. And  the most  important 

advantage  lies  in  their usefulness when  applying driving  forces,  torques or evaluating errors. As 

they influence directly over origin variable (angles or distances), they control motors directly. 

The algorithm,  simulation and obtaining of results has been programmed with Matlab. 

 

To design the model in mixed natural coordinates, it is necessary to model the robot to be studied 

in  2  steps.  The  first model  is based  in natural  coordinates.  To  validate  it,    it  is  raised  a defined 

trajectory and it is kinematically analyzed if robot fulfils requested movement, keeping its integrity 

as multibody system. 

The points (in this case starting and ending points) that configure the robot are quantified. As the 

elements are  considered as  rigid bodies, each of  them  is defined by  its  respectively  starting and 

ending point (those points are the most interesting ones from the point of view of kinematics and 

dynamics) and by a non‐colinear unit vector to those points. Unit vectors are placed where there is 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

14 | P á g i n a   

a  rotating  axis  or when  it  is  needed  information  of  an  angle.  Unit  vectors  are  not  needed  to 

measure distances. Neither DOFs must coincide with the number of unit vectors. 

Lengths of each arm are defined as geometrical constants. The constrains that define the nature of 

the robot and  relationships among different elements and its enviroment are set. 

Path is generated by a cloud of continuous points, defined in independent coordinates. 

Each group of independent coordinates define, in an specific instant, a defined position and posture 

for the robot. In order to know  it,  it  is needed to know which dependent coordinates there are  in 

that instant, and they are obtained solving the constraint equations with Newton‐Rhapson method 

according  to  independent  coordinates.  The  reason  to  make  it  like  this  is  because  dependent 

coordinates must meet constraints, and this is not the case with independent coordinates. 

When suitability of model is checked (first approval), it is given next step to model 2. 

 

Model 2 adds to natural coordinates from model 1, the relative coordinates in the shape of angles 

in revoluting torques (3 angles; ϕ1, ϕ 2 and ϕ3) and distances in prismatic torques (1 distance; s). 

These  relative  coordinates  become  the  new  independent  coordinates  (replacing  to  cartesian 

independent coordinates from model 1, that they were natural coordinates). 

It is needed to review if unit vector system from model 1 is enough or not . For this specific case, it 

was necessary to add 1 additional unit vector to define perfectly angles with their related equations 

of dot and/or cross product. 

Constrains must be increased in, at least, 4 equations; one per each new variable. 

The  approval  of model  2  has  two  phases.  The  first  one,  same  as made with model  1,  through 

kinematic analysis of behaviour with a defined path. During this analysis, it could be obtained from 

model  2,  velocities  and  accelerations,  but  they  are  not  needed.  They  are  only  interesting 

movements and finite displacements. 

Once that the consistence of movements has been checked (second approval),  it comes when the 

behaviour with interpolated trajectories must be kinematically analyzed. 

 

Kinematic analysis with interpolated trajectories work with a minimum number of 3 master points. 

In this case, 3 points have been chosen; starting point, middle point and ending point. The number 

of  interpolations has been of 50 ones  in each  strecht  (each 2 master points  there  is an  strecht), 

turning into a total of 100 interpolations. 

The interpolation method used is the cubic splines one with condition of constant acceleration both 

at  the  starting  and  at  the  ending  point.  This method  creates  the  independent  coordinates  of 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

15 | P á g i n a   

interpolated points of each strecht. The dependent coordinates are achieved solving the non‐linear 

constrain equations with Newton‐Rhapson method. 

The method of cubic splines is very continuous, therefore when it is needed to design a trajectory in 

which there are at least 2 movements clearly differents, it is required to make it in 2 steps and join 

them  later. That would be the case when any of the motors would keep stopped during the  first 

movement, and another different motor would remain stopped during the second movement (and 

so on). 

Once that movement is obtained, they are calculated, also with numerical differenciation formulas, 

the  independent  velocities  and  accelerations.  This  process  is  analogous  to  the  one  before 

explained, reminding condition that acceleration when t=0 and t=end are 0. Dependent velocities 

and accelerations are calculated solving related derivatives of constrain equations. 

In a third approval of the model it is checked, again, consistence of interpolated movement. 

 

Inverse dynamics calculates, for a defined movement –knowing position, velocity and acceleration 

in each  instant of time‐, and knowing external forces that act (f.e. weights); which forces must be 

applied  in motors  (where  there  is  control)  in  order  to  obtain  requested movement.  In  inverse 

dynamics, each  instant of  time  is  independent of  the others and  it has a position, a velocity, an 

acceleration and known forces. 

In this specific case, it is intended to apply, at the moment,  only forces due to the weight, though 

forces of another nature could have been added if it would have been preferred. 

The positions, velocities and accelerations, come from kinematic calculation. The  inertial effect of 

forces taken into account (weight) is calculated. As final result of the inverse dynamic analysis, the 

are obtained torques that the 4 motors must apply to repeat requested movement with the forces 

that were acting. 

 

The fourth approval of the model consists on confirming that the achieved movement due to the 

use  of  the  torques  obtained  in  the  inverse  dynamics,  are  in  accordance with movements  from 

kinematic analysis (theoretical movement). For this, it is necessary to work with direct dynamics. 

Direct  dynamic  is  in  charge  of  calculating  the movements  of  robot  that  results  from  applying 

torques at motors and forces at the robot. 

Therefore,  the  resultant  real movement,  as  there was  no  change  in  any  condition  of  the  ones 

obtained at  the  inverse dynamics  (motor  torques and  inertial  forces due  to weight of elements) 

must be  the same  than  theoretical movement. When  these  results are achieved,  it  is considered 

that robot is ready to work. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

16 | P á g i n a   

 

When a machining external force is introduced and it was not taken into account before during the 

inverse dynamics, and torques at motors considered are the ones of the inverse dynamics, the real 

movement obtained is not the same than the theoretical movement. 

Closed  loop  control  is  based  on  comparing  real  movement  with  expected  movement  and 

introducing required corrrections to minimize or cancel differences. 

They  are  applied  gains  in  the way of  corrections  for position  and/or  tolerance  to  remove  those 

differences.  Position  error  is  evaluated  as  the  difference,  in  each  point,  between  theoretical 

movemment  (calculated  in  the  kinematic  analysis)  and  the  real  movement  achieved  for  each 

machining force and for an specific gain. 

Finally, the position error obtained for each machining force and gains are mapped, giving a chart 

with  the best  accuracy  that  the  robot  can  give  for each operation  that has been  requested  and 

which conditions must be provided. 

 

 

Keywords:  machining  robot,    positioning  error,  tolerance,  aluminium  alloys,  automotive, 

multibodies. 

   

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

17 | P á g i n a   

Índice 

1  INTRODUCCIÓN .............................................................................................................................................. 20 

1.1  OBJETIVO ................................................................................................................................................................. 22 

1.2  ESTADO DEL ARTE ...................................................................................................................................................... 22 

2  METODOLOGÍA ............................................................................................................................................... 24 

2.1  ROBOTS VALORADOS .................................................................................................................................................. 24 

2.1.1  Robot R1 ...................................................................................................................................................... 24 

2.1.2  Robot R2 ...................................................................................................................................................... 26 

2.1.3  Robot R3. Robot seleccionado ..................................................................................................................... 27 

2.2  MODELADO Y ANÁLISIS ............................................................................................................................................... 29 

2.2.1  Modelos elegidos ........................................................................................................................................ 30 

2.2.2  Puntos y vectores unitarios ......................................................................................................................... 32 

2.2.3  Longitudes, distancias y ángulos ................................................................................................................. 33 

2.2.4  Grados de libertad....................................................................................................................................... 34 

2.2.5  Coordenadas dependientes e independientes ............................................................................................ 34 

2.2.6  Ecuaciones de restricción ............................................................................................................................ 35 

2.2.7  Análisis cinemático ...................................................................................................................................... 36 2.2.7.1  Movimientos ....................................................................................................................................................... 37 2.2.7.2  Velocidades y aceleraciones ............................................................................................................................... 42 

2.2.8  Análisis dinámico ........................................................................................................................................ 43 2.2.8.1  Análisis dinámico inverso .................................................................................................................................... 43 2.2.8.2  Análisis dinámico directo .................................................................................................................................... 44 2.2.8.3  Fuerza de mecanizado ........................................................................................................................................ 45 2.2.8.4  Control de lazo cerrado ...................................................................................................................................... 47 

3  MODELO M1 EN COORDENADAS NATURALES ................................................................................................. 48 

3.1  DEFINICIÓN DE LA GEOMETRÍA ..................................................................................................................................... 50 

3.2  COORDENADAS INDEPENDIENTES Y DEPENDIENTES ........................................................................................................... 54 

3.3  RESTRICCIONES ......................................................................................................................................................... 56 

3.4  ANÁLISIS CINEMÁTICO CON TRAYECTORIA DEFINIDA .......................................................................................................... 62 

4  MODELO M2 EN COORDENADAS NATURALES MIXTAS .................................................................................... 64 

4.1  COORDENADAS DEPENDIENTES E INDEPENDIENTES ........................................................................................................... 67 

4.2  RESTRICCIONES ......................................................................................................................................................... 70 

4.3  ANÁLISIS CINEMÁTICO CON TRAYECTORIA DEFINIDA .......................................................................................................... 75 

4.4  ANÁLISIS CINEMÁTICO CON TRAYECTORIAS INTERPOLADAS ................................................................................................. 76 

4.5  ANÁLISIS DINÁMICO INVERSO ....................................................................................................................................... 79 

4.6  ANÁLISIS DINÁMICO DIRECTO ....................................................................................................................................... 83 

4.7  ANÁLISIS DINÁMICO DIRECTO DE LAZO CERRADO .............................................................................................................. 84 

5  RESULTADOS .................................................................................................................................................. 95 

6  CONCLUSIONES ............................................................................................................................................... 98 

7  POSIBLES APLICACIONES ................................................................................................................................. 99 

8  ANEXOS ........................................................................................................................................................ 100 

9  REFERENCIAS ................................................................................................................................................ 101

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

18 | P á g i n a   

Acrónimos 

 

CNC:    Del inglés, “Control Numeric Center”. En castellano; centro de control numérico. 

DFMEA:  Del inglés, “Design Failure Mode Analysis and Effects”. 

GDL:     Grados de libertad. En inglés, DOF. 

HPDC:  Del  inglés,  “High  Pressure  Die  Casting”.  En  castellano;  fundición  inyectada  a  alta 

presión. 

LPC:    Del inglés, “Low Pressure Casting”. En castellano; fundición a baja presión. 

PFMEA:  Del inglés, “Process Failure Mode Analysis and Effects”. 

PPMS:    Partes por millón. Índice de calidad. 

SCARA:  Del  inglés,  “Selective  Compliant  Assembly  Robot  Arm”  o  “Selective  Compliant 

Articulated Robot Arm”. 

SMC:     Sistema multicuerpo. En inglés, MBS. 

Definiciones 

Error:  Diferencia entre  la señal de salida y  la señal de entrada en el régimen permanente, 

adaptadas en unidades y escala. 

Precisión:  Ver repetibilidad. 

Repetibilidad:  También  conocido  por  precisión.  Medida  de  reproducibilidad  de  mediciones 

sucesivas. 

 

Normas 

DIN 1688‐1  Rough  castings  of  light  metal  alloys  produced  by  sand  casting  /  General 

tolerances and machining allowances (for replacement purposes only). 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

19 | P á g i n a   

ISO 230‐2  Determination  of  accuracy  and  repeatability  of  positioning  numerically 

controlled machine axes 

ISO 1101  Geometrical  product  specification  (GPS)  ‐  Geometrical  tolerancing  ‐ 

Tolerancing  of  form,  orientation,  location  and  run‐out  ‐  Amendment  1: 

Representation of specifications in the form of a 3D model. 

ISO 2768‐1  General  tolerances.  Tolerances  for  linear  and  angular  dimensions  without 

individual tolerance indications. 

ISO 2768‐2  General  tolerances.  Geometrical  tolerances  for  features without  individual 

tolerance indications. 

ISO 8062    Fundición‐Sistema de Tolerancias Dimensionales y Creces de Mecanizado. 

ISO 9283    Manipulating robots ‐ Performance criteria and related test methods. 

JIS B 6192  Determination  of  accuracy  and  repeatability  of  positioning  numerically 

controlled machine axes. 

UNE EN 1706  Aluminio y aleaciones de aluminio. Piezas moldeadas. Composición química y 

características mecánicas. 

UNE EN ISO 5458  Especificación  Geométrica  de  Productos  (GPS).  Tolerancias  Geométricas. 

Tolerancias de Posición. 

VDI/DGQ 3441  Statistical testing of the operational and positional accuracy of machine tools. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

20 | P á g i n a   

1 Introducción 

Las piezas empleadas en  la  industria  tienen generalmente, para  su  funcionalidad en  los  sistemas 

mecánicos,  2  grupos  de  requerimientos  de  tolerancias  geométricas  y  dimensionales  que 

condicionan,  conforme  a  la  serie  de  fabricación  requerida  y  al  estado  del  arte  de  la  técnica,  su 

método de fabricación: 

‐  GRUPO  1.  Bajas  y  medias  tolerancias.  Que  permiten  su  fabricación  con  sistemas  poco 

precisos y rápidos, como la conformación. Por ejemplo fundición inyectada a alta y baja presión. 

‐  GRUPO 2. Altas  y muy    altas  tolerancias. Que precisan de métodos  como el  arranque de 

viruta para dejar las superficies y geometrías dentro de los requerimientos funcionales exigidos. Por 

ejemplo centros de mecanizado1. 

Para ambos grupos,  la tolerancia de fabricación debe ser, por motivos de capacidad de proceso2  , 

inferior  a  la  solicitada  funcionalmente.  Se  hace  especialmente  crítico  y  con  un  alto  impacto 

económico su obtención de manera estable.  Un ejemplo claro es en el sector de automoción. 

Las células que se encargan de fabricar la pieza suelen estar gestionadas por robots. Al ser pequeña 

la fuerza requerida, la repetibilidad  del robot es suficiente para manipular piezas. Las pieza se coge 

desde un utillaje que la tiene referenciada en los 3 ejes y se deja en diferentes posiciones, también 

en utillajes similares. 

Si  se  quisiera  emplear  ese mismo  robot  para mecanizar  parcialmente  la  pieza,  instalando  en  su 

punta,  por  ejemplo,  un  cabezal  motorizado  con  una  herramienta  y  actuando  sobre  la  pieza 

embridada  en  un  utillaje,  la  fuerza  necesaria  sería  sensiblemente  superior.  Esto  haría  que  la 

repetibilidad  empeorara  hasta  el  punto  que  las  tolerancias  geométricas  y/o  dimensionales 

obtenidas quedarían fuera de los límites admisibles por diseño. La pieza no sería funcional. 

Este es uno de  los motivos por  los que  los baratos robots  industriales de 6 ejes, a día de hoy no 

pueden sustituir el trabajo de los cncs, equipos más costosos. 

 

La  fabricación de  componentes de automoción es uno de  los  segmentos económicos que mayor 

valor añadido pueden conferir al tejido industrial de un país. 

Reúne, entre otros los siguientes elementos que dan valor añadido; 

                                                       1 Conocido como CNC 

2 En inglés, “capability”. No confundir con el término capacidad (en inglés, “capacity”) 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

21 | P á g i n a   

‐  INNOVACIÓN, al tener que ofrecer productos en constante evolución. 

‐  ROBUSTED, para garantizar la repetibilidad del producto final en series significativas. 

‐  COMPETITIVIDAD,  por  la  necesidad  de  ofrecer  un  producto  a  precios  de mercado  en  un 

escenario global con tasas económicas de operario netamente diferenciadas (p.e. 6 €/hr en China, 

vs 60 €/hr en UE para igualdad de condiciones). 

‐  ESTABILIDAD, porque los agentes que intervienen, materiales o humanos, son importantes; 

p.e. una fábrica con fuerte inversión de maquinaria y equipo humano especializado. 

En el ámbito concreto de fabricación de piezas de automoción de aluminio, fundidas en HPDC, es 

necesario aplicar procesos de fabricación adicionales en la mayoría de los casos. El motivo principal 

es el garantizar unas geometrías y/o unas tolerancias que sólo inyectadas, no son factibles. 

En  la  Figura  1,  se muestra  el  impacto  en  un mecanizado  de  2  pasos  entre;  el mecanizado  sin 

automatizar, ese mecanizado automatizado con los tiempos de ciclo descompensados de paso 1 y 

paso 2 (desequilibrados), y ese mecanizado automatizado y habiendo podido equilibrarlo. 

 

Figura 1. Oportunidad de mejora, en términos cualitativos, de un mecanizado manual a un mecanizado automatizado equilibrado 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

22 | P á g i n a   

 

Para el caso de mecanizado manual, la célula está formada por 2 CNCs (1ud CNC paso 1 y 1ud CNC 

paso2), 1 Lavadora, 2 operarios. Para el de mecanizado automatizado, se ha eliminado un operario 

y se ha  añadido 1 robot.  Se han tenido en cuenta las variaciones de utillaje en ambos casos cuando 

era menester. La producción de CNC 1 (paso 1 de 2)  es de 10 p/h, la de CNC 2 (paso 2 de 2) es de 8 

p/h. 

A partir de ciertos lotes, se observa la clara ventaja de automatizar en un escenario de tasa horaria 

típica de país desarrollado.  

Si  se consiguiera equilibrar paso 1 con paso 2, podría conseguirse una productividad de hasta el 

60% para la misma pieza. 

El problema reside en que para pasar mecanizados de un paso a otro, es muy importante tener en 

cuenta  los datums sobre  los que están referenciados cada mecanizado y dónde se mecanizan. Es 

muy posible que, mecanizados que interesan cambiarse de paso, no puedan hacerse por estropear 

las tolerancias alcanzables. 

Es  interesante que, un elemento no específico tan común en una planta  industrial, en el entorno 

anteriormente descrito, como es un robot, el cual no sería necesario añadir por disponer de él ya (y 

por lo tanto la inversión sería muy pequeña), puede incrementar la cadena de valor disminuyendo 

el costo de fabricación. Y si se pudiera conjugar que ese robot destinado a tareas de manipulación, 

en  los muchos  tiempos de espera que  va a disfrutar mientras  los CNCs arrancan  viruta, pudiese 

coger  un  cabezal  y  eliminar/minimizar  ese  desequilibrado  en  mecanizado;  sería  doblemente 

interesante. 

Por  lo  tanto, se antoja  sugestivo poder conocer su comportamiento e  intentar explicar qué sería 

necesario para llevar esto a cabo, motivo de este trabajo. 

1.1 Objetivo 

El presente Trabajo Fin de Máster, versa sobre una caracterización preliminar del comportamiento 

de un  robot de  tipo  industrial, configurado por 4 eslabones y 4 grados de  libertad, y sometido a 

fuerzas de mecanizado en su extremo. 

1.2 Estado del Arte 

En  la actualidad, existen aplicaciones de robots   destinadas al mecanizado, por ejemplo taladrado 

en la industria aeronáutica. Sin embargo, las tolerancias de posición conseguidas son de décimas o 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

23 | P á g i n a   

milímetros, dependiendo de  las distancias entre el agujero realizado y  los datums tomados como 

referencia.  

Muchos son  los esfuerzos realizados por  los fabricantes de robots para poder conseguir ese nivel. 

Hasta la fecha, no se ha tenido conocimiento de ninguna aplicación industrial que consiga un robot 

como el de la  Figura 2 (del que se puede esperar en el rango de los 20 kg de manejo en punta en 

carga máxima, con un alcance de 6 metros y repetibilidad de ± 0´03 mm sin aplicar esfuerzos), que 

mecanice  con  las  tolerancias, prestaciones  y  competitividad  equiparables  al CNC,  y  con Cpks de 

1´33 y Cmk de 1´67. 

 

Figura 2. Robot Antropomórfico 6 GDLs 

En  la Tabla 1.   Retos del robot  industrial para competir con el CNC     se enumeran  los principales 

retos de un robot que se quiere usar en el mecanizado. 

Tabla 1.  Retos del robot industrial para competir con el CNC   

 

Es  cierto  que  existen  aplicaciones más  o menos  novedosas. Algunas  de  ellas  basadas  en    visión 

artificial, pero por lo anteriormente indicado, no lo hace merecedor de ser tenido, de momento, en 

cuenta como competidor del CNC. 

TÓPICO

Falta precisión en las distancias a las que se indica

Programación no es XYZ, es angular

Retaladrados (guiados) sí que los hacen

Falta de fuerza para agarrar y mecanizar

No tienen protección IP67

Aplicación del robot en ambientes agresivos (taladrina…)

Calibración (función del número de pasadas)

Velocidad en movimiento rápido inferior a 50 m/min

Combinación de elementos (robot con enclavamientos + mesa 

desplazable), hoy SÍ que se podría (existen los elementos), pero el 

problema es que esta solución es más cara y menos rápida

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

24 | P á g i n a   

2 Metodología 

2.1 Robots valorados 

Se han valorado varios modelos de robots, algunos  inspirados en  la realidad y otros de naturaleza 

más teórica, para decidir aquél que puede resultar más adecuado para el estudio que se desea. 

A  continuación  se  da  una  breve  descripción  de  cada  uno,  así  como  sus  características  más 

importantes. 

2.1.1 Robot R1 

Esta primera propuesta de robot, intenta simplificar un modelo real (ver Figura 3) de uso común en 

aplicaciones  de  rebarbado.  El  rebarbado  consiste  en  eliminar  la  potencial  rebaba  desprendible 

mediante técnicas de cepillado y/o de arranque de viruta de baja intensidad. Es importante recalcar 

que las tolerancias geométricas y o dimensionales no priman, sino el garantizar que en esa zona no 

se caerá viruta contaminante en el sistema máquina al cuál pertenecerá el componente que se está 

fabricando. Por ejemplo, en un cárter,  la presencia de viruta aguas abajo del filtro, provocará una 

reducción drástica de la vida del motor. 

 

Figura 3. Robot antropomorfo industrial de operaciones de rebarbado 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

25 | P á g i n a   

 

La  versión  “simplificada”  se  muestra  en  la  Figura  4.  El  movimiento  se  limita  al  plano  Y‐Z.  El 

problema de este modelo es, que no responde al robot de partida, y que este diseño tiene infinitas 

combinanciones de movimiento. 

 

 

Figura 4. Simplificación propuesta del robot de rebarbado 

Por lo tanto, se desecha este modelo de 5 eslabones y 4 uniones de tipo par de revolución. 

 

 

 

 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

26 | P á g i n a   

2.1.2 Robot R2 

Esta segunda propuesta de robot, como puede apreciarse en Figura 6 y Figura 5, está formado por 4 

eslabones  y  3  uniones.  Es  un  modelo  más  simplificado  que  el  anterior  y  también  limita  su 

movimiento al plano Y‐Z. 

 

Figura 5: Esquema del robot R2 propuesto 

También este diseño tiene infinitas combinaciones, por lo que se desestima. 

 

Figura 6. Repreentación en Matlab del robot R2 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

27 | P á g i n a   

 

2.1.3 Robot R3. Robot seleccionado 

La tercera propuesta de robot (Figura 7) dispone de 3 uniones, de  las cuales 2 son de típo   par de 

revolución (1 grado de libertad cada una) y la tercera es de tipo corredera o par cilíndrico (2 grados 

de  libertad).    La primera unión, de  tipo per de  revolución,  sirve para unir el  suelo  (considerado 

como eslabón número 0) con el eslabón número 1. La segunda unión, también de ese tipo, une el 

eslabón  número  1  con  el  eslabón  número  2.  Estos  2  brazos,  pueden  describir  un movimiento 

horizontal, en el plano X‐Y.  El tercer eslabón, está unido al eslabón número 2 por la unión de tipo 

corredera.  El movimiento  que  puede  describir  es  paralelo  al  eje  Z.  El  robot  es  de  4  grados  de 

libertad (4 motores). 

 

Figura 7. Modelado 3D del robot a estudio 

Ésta es la arquitectura de robot seleccionada, de tipo SCARA. La búsqueda de un robot cómodo de 

modelar  y  de  analizar  cinemática  y  dinámicamente,  sin  limitaciones  relevantes  en  la 

multifuncionalidad de trabajos solicitados, ha  llevado a esta elección,  frente a otras arquitecturas 

como  por  ejemplo  los  robots  antropomórficos  de  6  grados  de  libertad, muy  populares  a  nivel 

industrial. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

28 | P á g i n a   

 

Figura 8. Versión simplificada del robot a estudio 

El robot se ha considerado, por el momento, que tenga comportamiento de sólido rígido, por ser el 

mayor efecto esperado el de  los pares en  las uniones. En  la Figura 8 está representada  la versión 

simplificada. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

29 | P á g i n a   

2.2 Modelado y análisis 

Para modelar el  robot  se utiliza el método de  los  sistemas multicuerpo. Dentro de este método 

existen diversos  tipos de  formulaciones  (p.e. Denavit‐Hartenberg). D‐H genera una cantidad muy 

grande de ecuaciones e incógnitas. Esas incógnitas son de difícil comprensión y, para cada posición, 

hay que detenerse a pensar qué significado tienen. 

Se  ha  optado  la  formulación  de  coordenadas  naturales.  Este  sistema  utiliza  puntos  y  vectores 

unitarios para definir la posición de los distintos cuerpos, y permite compartirlos cuando es posible 

y se quiere para definir los pares cinemáticos y reducir al mismo tiempo el número de variables. Las 

incógnitas son intuitivas, las ecuaciones de restricción muy sencillas  y se reduce considerablemente 

el número de ecuaciones e incógnitas. 

El  orden  de  operaciones  básicas  a  realizar  durante  todo  el  proceso  se  puede  encontrar  en  el 

Diagrama de Flujo 1.   

 

 

Trayectoria  (definida 

o  interpolada  desde 

puntos máster) 

Movimientos  (Q),  velocidades 

(Qvel)  y  aceleraciones  (Qacel) 

reales sin corregir 

Pares (Tau) que 

cumplen los 

anteriores Q, 

Qvel, Qacel y 

Fuerzas  

Fuerzas reales

Movimientos teóricos (Q)

Velocoidades teóricas (Qvel) 

Aceleraciones (Qacel) 

CINEMÁTICA 

DINÁMICA INVERSA 

DINÁMICA DIRECTA 

Pesos y otras 

fuerzas previstas 

Movimientos  (Q),  velocidades 

(Qvel)  y  aceleraciones  (Qacel) 

reales sin corregir 

Corrección de lazo 

cerrado 

Diagrama de Flujo 1. Operaciones a realizar 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

30 | P á g i n a   

El algoritmo, la simulación y la obtención de resultados se ha programado mediante Matlab. 

2.2.1 Modelos elegidos 

Las coordenadas naturales “puras” tienen 2 problemas. El primero, que 2 elementos con un ángulo 

de 0 o 180 grados, dan lugar a puntos singulares que pueden crear problemas en las ecuaciones de 

restricción y por  lo tanto han de evitarse. El segundo, que tampoco  inciden directamente sobre  la 

definición o el origen de los movimientos. 

Por  lo  tanto,  es  muy  conveniente  complementar  esta  formulación  con  ángulos  y  distancias 

(coordenadas  relativas). Esto da  lugar a  las  coordenadas naturales mixtas, que es  la  formulación 

final elegida para este TFM, partiendo de las coordenadas naturales “puras”. 

Las coordenadas naturales mixtas no tienen el problema de los puntos singulares. Y la ventaja más 

importante reside en su utilidad a la hora de aplicar fuerzas motrices, momentos o evaluar errores. 

Al incidir sobre la incógnita origen (ángulos o distancias) controla los motores de manera directa. 

Para realizar el modelo en coordenadas naturales mixtas, es preciso modelar en 2 pasos el robot a 

estudio. El primer modelo se basa en coordenadas naturales. Para su validación,   y con ella poder 

pasar  al modelo  2,  se plantea una  trayectoria definida  y  se  analiza  cinemáticamente  si  el  robot 

satisface el movimiento solicitado, manteniendo su integridad como sistema multicuerpo. 

El modelo número 2, incorpora a las coordenadas naturales del modelo número 1, las coordenadas 

relativas, dando  lugar a  las coordenadas naturales mixtas. Tras su validación, se pasa a realizar el 

análisis cinemático y dinámico completo. 

En el Diagrama de Flujo 2 puede verse el mapa de proceso con los pasos que se van a dar con los 2 

modelos;  al  modelo  número  1  (coordenadas  naturales),  análisis  cinemático  con  trayectoria 

definida; al modelo número 2  (coordenadas naturales mixtas), análisis cinemático con trayectoria 

definida,  análisis  cinemático  con  trayectoria  interpolada,  análisis  dinámico  inverso,  análisis 

dinámico directo y control de lazo cerrado. 

 

 

 

 

 

 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

31 | P á g i n a   

 

 

Diagrama de Flujo 2 Modelos y Análisis a realizar 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

32 | P á g i n a   

En la Tabla 2, se representan las entradas y salidas de los modelos y los análisis a los que se les va a 

llevar a a cabo. 

Tabla 2. Declaración de Modelos y Análisis  

 

 

Conocidos el alcance y lo que se espera de los modelos, es momento de ver en detalle los pasos a 

seguir como a continuación se reseñan, y preferentemente en el orden expresado. 

2.2.2 Puntos y vectores unitarios 

Cada sólido sólido rígido contiene la cantidad de puntos y vectores unitarios necesarios que hacen 

que esté definido su movimiento en 3D. Por ejemplo, 3 puntos no alineado o 2 puntos y un vector 

no alineado. 

Análisis

Modelo 1 con 

análisis cinemático 

parcial

Modelo 2 con análisis 

cinemático parcial2

Modelo 2 con análisis cinemático 

y dinámico completo

objetivo

Crear el modelo de 

robot en 

coordenadas 

naturales y validar su 

movimiento

Crear, a partir de lo 

realizado con Modelo 1, 

el modelo de robot en 

coordenadas naturales 

mixtas y validar su 

movimiento

A partir de lo realizado en Modelo 

2A, simular el movimiento y la 

dinámica dando 3 puntos y con la 

condición de aceleración inicial y 

final constante de cada motor

 entradas

Posición y 

orientación del 

ROBOT con las 

coordenadas locales 

(las de la mano)

Posición y orientación 

del ROBOT con las 

coordenadas locales (las 

de la mano)

ángulos y distancias, fuerza de 

mecanizado, ganancias

salidas movimiento movimientomovimiento, velocidades, 

aceleraciones, pares, errores

coordenadas naturales naturales mixtas naturales mixtas

movimiento Trayectoria definida Trayectoria definida3 puntos máster (definidos) y el 

resto de la trayectoria se interpola

interpolación de coord. 

ind. a coord. dep.Newthon Rhapson Newthon Rhapson Newthon Rhapson

interpolación del 

movimiento (entre 

puntos)

N/A N/ASplines cúbicas con  condición de 

aceleración inicial y final 0

representaciones 

gráficas

Movimiento 3D. Movimiento 3D.

Movimiento 3D.

Movimientos, velocidades, 

aceleraciones y pares de los 

motores.

Ganancia.

Mapa de error de posición.

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

33 | P á g i n a   

En  la medida de  lo posible y del  interés que exija  la aplicación,  se  comparten puntos y vectores 

unitarios  entre  sólidos  rígidos  en  las  uniones  para  minimizar  el  número  de  ecuaciones  de 

restricción. 

Se cuantifican los puntos (en este caso inicial y final) que configuran el robot. Al tratarse de sólidos 

rígidos,  cada  eslabón  queda  definido  por  sus  respectivos  puntos  inicial  y  final  (que  son  los más 

interesantes para la cinemática y la dinámica) y por un vector unitario no colineal a esos 2 puntos. 

Los vectores unitarios se colocan en los lugares en los que se tenga un eje de rotación o cuando se 

desee  obtener  información  de  un  ángulo.  No  son  necesarios  vectores  unitarios  para  medir 

distancias.  Tampoco  tienen  por  qué  coincidir  los  grados  de  libertad  con  el  número  de  vectores 

unitarios. 

La  posición  inicial  de  los  puntos  se  alojan  en  la  MATRIZ  P.  La  información  del  valor  de  las 

coordenadas  iniciales de  los vectores unitarios y su  localización en física (en qué puntos del robot 

actúan) se aloja en la MATRIZ U. 

2.2.3 Longitudes, distancias y ángulos 

Las longitudes de cada eslabón quedan definidas como constantes geométricas. 

Las distancias y ángulos, cuando se necesitan, en especial en coordenadas relativas. Las distancias 

iniciales se almacenan en la MATRIZ DIST, y los ángulos iniciales en la MATRIZ ANGLE. 

Los  ángulos pueden definirse mediante el producto escalar o mediante el producto  vectorial.  El 

coseno da problemas si el ángulo es cercano a 0 rad o a ±nπ rad. Al seno le ocurre algo similar, en 

este caso, para ángulos con valores de ±(n+1/2)π rad (ver Figura 9). Como solución, no se utiliza el 

producto escalar cuando el coseno sea < 0´8, empleando el producto vectorial. 

 

Figura 9. Parte superior, zona donde el uso del coseno da problemas. Parte inferior, idem pero con el seno. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

34 | P á g i n a   

2.2.4 Grados de libertad 

Siguiendo el conocido criterio de Grübler‐Kutzbach, el número de grados de libertad está definido, 

para sistemas planos, por: 

GDLs = 3x(N‐1)‐2xP1‐P2 

donde; 

N   = {número de elementos, incluido el fijo} 

P1  = {número de pares o uniones que permiten 1 GDL} 

P2  = {número de pares o uniones que permiten 2 GDL} 

Queda, por tanto:  

GDLs = 3x(4‐1)‐2x2‐1 = 4 GDLs  

 

En  la  práctica,  consiste  en  saber  cuántos  motores  son  necesarios  para  tener  controlado  el 

movimiento del robot: 

GDLs = N° motores necesarios = 4 motores 

2.2.5 Coordenadas dependientes e independientes 

Dentro del total de coordenadas naturales de un sistema, hay 2 coordenadas, las coordenadas fijas 

y las coordenadas libres. Las primeras son aquellas que siempre van a estar sin moverse, debido a 

las condiciones de contorno (aquellas que no se van a mover, por estar p.e. solidarias al origen). Un 

ejemplo típico es el de aquellas coordenadas que están relacionando la parte móvil del robot con la 

parte que está en el suelo. 

∑coordenadas naturales (puras o mixtas) = ∑coordenadas fijas + ∑coordenadas libres 

Las  coordenadas  naturales  que  no  son  fijas,  se  denominan  como  coordenadas  libres.  Su  propio 

nombre da una idea clara del tipo de movimiento al que pueden someterse. Las coordenadas libres 

pueden ser dependientes o independientes. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

35 | P á g i n a   

∑coordenadas libres = ∑coordenadas dependientes + ∑coordenadas independientes 

Las coordenadas independientes son aquellas cuyo número coincide con los grados de libertad del 

sistema  y definen  cuando  se  les da un  valor  concreto,  la posición del  sistema.  Las  coordenadas 

dependientes son aquellas que, al  fijar el valor de  las coordenadas  independientes, y cumpliendo 

las condiciones del sistema multicuerpo (restricciones), toman un valor determinado para explicar 

el resto del movimiento del robot. 

∑coordenadas independientes = GDLs del sistema 

∑coordenadas dependientes = Número de restricciones del sistema (si todas las ecuaciones son 

independientes) 

∑coordenadas dependientes ≤ Restricciones del sistema (si son todas las ecuaciones son 

independientes) 

Para  conocer  el  valor  de  las  variables  dependientes,  es  necesario  establecer  las  ecuaciones  de 

restricción 

2.2.6 Ecuaciones de restricción 

Se  establecen  las  restricciones  que  definen  la  naturaleza  del  robot  y  las  relaciones  entre  los 

diferentes elementos y su entorno, siguiendo las siguientes pautas: 

‐ Todos  los  puntos  y  los  vectores  que  pertenecen  a  un  sólido  rígido  deben moverse  de 

acuerdo con la condición de sólido rígido (manteniendo constantes longitudes y ángulos). 

‐ Algunas  articulaciones,  como  las  esféricas  y  angulares,  también  pueden  ser  definidas 

compartiendo variables y no  introducen ninguna restricción. Otras articulaciones necesitan 

introducir restricciones de proporcionalidad o de ortogonalidad. 

‐ Es  posible  definir  distancias  y  ángulos  como  nuevas  coordenadas  con  las  ecuaciones  de 

restricción que los relaciona con algunos puntos y vectores unitarios. 

Con las coordenadas naturales, las ecuaciones de restricción (ecuaciones no lineales) adquieren su 

máxima sencillez. 

Las    restricciones  inicialmente disponibles se pueden ver en  la Tabla 3. La  forma en  la que están 

definidas las restricciones es muy sencilla. Todas ellas pueden ser clasificadas en unos pocos tipos, 

que  incluyen  un  número  de  referencia,  los  puntos  y  vectores  involucrados  y  aquellos  valores 

constantes que intervengan (distancias, ángulos…). 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

36 | P á g i n a   

La matriz que contendrá las restricciones específicas del robot es MATRIZ CONSTR. 

 

Tabla 3. Catálogo de restricciones disponibles 

 

2.2.7 Análisis cinemático 

El análisis cinemático obtiene el movimiento de los cuerpos sin tener en cuenta fuerzas o pares que 

pueden  estar  actuando.  El  análisis  cinemático  proporciona  movimientos,  velocidades  y 

aceleraciones. Conociendo  las ecuaciones de restricción y  las variables  independientes, es posible 

conocer estos tres términos. 

Restric

ciónEcuación general Notación matricial para matriz CONST Comentarios

1000 (ri'‐rj')*(ri‐rj)‐Lij^2 [1000  i  j  0  0  0  0  0  0  0  0  Lij] existente

1001 ui'*ui‐1  [1001  i  0  0  0  0  0  0  0  0  0   0] existente

1002 uk'*(ri‐rj)‐Lij*cos(fi) [1002  k  i  j  0  0  0  0  0  0 Lij cfi] existente

1003 ui'*uj‐cos(fi) [1003  i  j  0  0  0  0  0  0  0  0  cfi] existente

1004 uiX(rj‐rk)   [1004  i  j  k  0  0  0  0  0  0 Ljk cfi] existente

1005 (rk‐ri)‐[rj‐ri,ul,um]*c [1005  i  j  k  l  m  0  0  0  c1 c2 c3] existente

1006 um‐[rj‐ri,uk,ul]*c [1006  i  j  k  l  m  0  0  0  c1 c2 c3] existente

1007 un‐[rj‐ri,rl‐rk,um]*c [1007  i  j  k  l  m  n  0  0  c1 c2 c3] existente

1010 (rj‐ri)'*(rl‐rk)‐Lij*Lkl*cos(psi) [1010  i  j  k  l  0  0  0  0 Lij Lkl ipos] existente

1011 (rj‐ri)X(rl‐rk)‐um*Lij*Lkl*sin(psi) [1011  i  j  k  l  m  0  0  0 Lij Lkl ipos] existente

1012 (rj‐ri)X(rl‐rk)‐(rm‐rn)*Lij*Lkl*sin(psi)/Lmn [1012  i  j  k  l  m  n  0 Lij Lkl Lmn ipos] existente

1013 ui'*uj‐cos(psi) [1013  i  j  0  0  0  0  0  0   0   0  ipos] existente

1014 uiXuj‐uk*sin(psi) [1014  i  j  k  0  0  0  0  0   0   0  ipos] existente

1015 uiXuj‐(rk‐rl)*sin(psi)/Lkl [1015  i  j  k  l  0  0  0  0   0  Lkl ipos] existente

1016 uk'*(ri‐rj)‐Lij*cos(psi) [1016  k  i  j  0  0  0  0  0   0  Lij ipos] existente

1017 ukX(ri‐rj)‐ul*Lij*sin(psi) [1017  k  l  i  j  0  0  0  0   0  Lij ipos] existente

1018 ukX(ri‐rj)‐(rl‐rm)*Lij*sin(psi)/Lml [1018  k  i  j  l  m  0  0  0  Lij Llm ipos] existente

1020 (ri – rj) x (rk – rl) [1020  i  j  k  l  0  0  0  0   0  0  0] existente

1030 (ri'‐rj')*(ri‐rj)‐dij^2 [1030  i  j  0  0  0  0  0  0  0  0  ipos] existente

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

37 | P á g i n a   

2.2.7.1 Movimientos 

Cada  conjunto  de  coordenadas  independientes  define  en  un  instante  concreto,  una  posición  y 

postura de robot determinada. Para conocerla,  es necesario saber qué coordenadas dependientes 

hay en ese  instante, y se obtienen resolviendo por el método de Newton‐Rhapson  las ecuaciones 

de restricción (ya definidas) en función de las coordenadas independientes. El motivo de hacerlo así 

es porque las coordenadas dependientes deben satisfacer las restricciones, cosa que no ocurre con 

las coordenadas independientes. 

El  problema    de  la  posición  está  basado  en  la  resolución  del  paquete  de  las  ecuaciones  de 

restricción:  

Φ (q, t ) = 0 

donde; 

q  = {vector de coordenadas, dentro de las cuales están las dependientes del sistema} 

Φ (q) ≅ Φ (qi)  + Φq (qi)  Δqi = 0 ⇒ Φq (q)i  Δqi = ‐Φ (q)i    

 

Figura 10. Método de Newton‐Rhapson 

Para el cálculo de una nueva posición del sistema, a partir de unos  incrementos finitos (problema 

de los desplazamientos finitos), además del método de Newton‐Rhapson (Figura 10), existen otros 

métodos  como  Newton‐Rhapson modificado,  o  Newton‐Rhapson modificado  con  aproximación 

inicial basada en velocidades. 

Φ  (q)  es  la  función  formFiPU4  (ecuaciones  de  restricción  del movimiento).  El  resultado  de  la 

función  formFiPU4  al  actuar  con  la matriz  CONSTR,  es  la  de  formar  el  vector  fi,  que  evalua  el 

incumplimiento de las ecuaciones de restricción. Si las distancias y los ángulos no son los que tienen 

que ser, Φ (q) no será 0. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

38 | P á g i n a   

Derivando  las ecuaciones de restricción Φ (q) con respecto a cada uno de sus componentes qi, se 

obtiene  la matriz  Jacobiana  y  está  definida  por  la  función  formFiqPU4.  La  función  formFiqPU4 

contiene las ecuaciones de restricción de velocidad.  

La matriz  Jacobiana de  las  ecuaciones de  restricción  juega un papel muy  importante  en  toda  la 

cinemática y dinámica. Es una función lineal de las coordenadas naturales (al ser las ecuaciones de 

restricción cuadráticas). 

Determina el sistema de ecuaciones lineales a utilizar para encontrar las sucesivas aproximaciones 

con  las que resolver el problema de  la posición  inicial; determinación de  la posición de  todos  los 

elementos, conociendo la posición de los puntos fijos y las coordenadas independientes. 

2.2.7.1.1 Trayectorias definidas 

Si  la  trayectoria  está  definida mediante  una  nube  de  puntos  caracterizada  por  las  coordenadas 

independientes, la forma de resolver, una vez definida la ecuación del movimiento es aplicando el 

método anteriormente descrito. 

2.2.7.1.2 Trayectorias interpoladas desde varios puntos máster 

Cuando no se conoce la trayectoria exacta del robot, pero se sabe un mínimo de puntos por los que 

se quiere que pase, este método resulta muy útil. 

El análisis  cinemático  con  trayectorias  interpoladas,  trabaja  con un número mínimo de 3 puntos 

máster. El número de  interpolaciones mínimo es de 4 por  tramo  (cada 2 puntos máster hay un 

tramo),  pero  no  se  recomienda  porque  los  resultados  obtenidos  son  muy  poco  precisos.  Se 

recomienda trabajar a partir de 50 interpolaciones por tramo. 

Los puntos máster se recogen en la MATRIZ POS. Como se ve en la Figura 11, los puntos y vectores 

están en las primeras columnas (coordenadas fijas y dependientes) y en las últimas las coordenadas 

relativas (que son las coordenadas independientes). Hay tantas filas como puntos máster. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

39 | P á g i n a   

 

Figura 11. Esquema de la matriz POS 

El método de  interpolación utilizado es el de splines cúbicas con condición de aceleración  inicial y 

final  igual  a  0,  que  genera  las  coordenadas  independientes  de  los  puntos  interpolados  de  cada 

tramo.  Las  coordenadas  dependientes  se  obtienen  resolviendo  las  ecuaciones  de  restricción  no 

lineales con el método de Newton‐Rhapson (ya explicado anteriormente cómo funciona). 

 

 

Figura 12. Matriz Q con los puntos máster y los puntos iterados 

En  la Figura 12, aparece  la estructura de  la MATRIZ Q. En ella, además de  los puntos máster de 

MATRIZ P, aparecen intercalados los puntos resultantes de la interpolación. 

El método de las splines cúbicos es muy continuo, por lo que si se desea modelar una trayectoria en 

el que haya al menos 2 movimientos claramente diferenciados, es preciso hacerlo en 2  tramos y 

unirlos posteriormente. Sería el caso en el que alguno de los motores se desee expresamente que 

esté parado durante el primer movimiento y otro distinto lo esté durante el segundo movimiento (y 

así sucesivamente). 

La  función  splines3RobotAnglesInterp  realiza  la  interpolación  de  las  posiciones  completas  del 

robot, llamando a la función splines3b.m que es la que se encarga de aplicar las splines cúbicas. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

40 | P á g i n a   

Los  resultados  o  valores  de  retorno  son  txp  y Q.  El  vector  txp  es  un  vector  que  representa  las 

abscisas o los tiempos para los que se realiza la interpolación. Su nº de elementos coincide con el nº 

de filas de Q y sus valores van desde 0 a tpar(end), es decir desde 0 al nº de filas de POS menos 1.  

Es importante pensar que si POS tiene tres filas, los tiempos de txp van a ir desde 0 a 2 segundos. 

Para  cambiar  la  duración  de  la  simulación  y  que  pueda  ser  la  que  el  usuario  desee  existe  una 

variable  llamada  tEsc  (de  escala  de  tiempos)  que multiplicará  al  vector  txp  que  devuelve  esta 

función. Por ejemplo, si POS tiene tres filas, el tiempo de la simulación sería de 0 a 2 segundos. Si se 

desea que dure un  segundo  se deberá hacer  tEsc=0.5 y  si  se desea que dure 4  se debería hacer 

tEsc=2. 

2.2.7.1.3 Trayectorias interpoladas desde varios puntos máster con condición velocidad nula 

En  el  caso  en que  se quiera modelar  el movimiento queriendo que  el  robot parta del  reposo  y 

termine también en reposo (con condición de velocidad inicial y final cero). En ese caso, arrancaría 

y pararía  con aceleración  cero.  Se  tendrían que modificar  las 2 últimas ecuaciones  (recuadro en 

azul) de la Figura 13, sustituyéndolas por estas otras: 

S1’(x1)=0 

Sn’(xn+1)=0 

Este método mejora  el  anterior  al  asemejarse más  fielmente  con  la  realidad.    Los motores  del 

robot, parados en el instante inicial, se aceleran, cogen velocidad máxima y antes de llegar al final, 

se desaceleran y paran. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

41 | P á g i n a   

 

Figura 13. Interpolación mediante splines cúbicas (Interpolación y aproximación de funciones) 

 

 

 

 

 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

42 | P á g i n a   

 

 

2.2.7.2 Velocidades y aceleraciones 

La  función  splines3RobotVelAccInterp  calcula  velocidades  y  aceleraciones.  Aunque  se  llame 

splines, no los aplica, aunque sí utiliza información de lo que se calculó mediante splines cúbicas en 

la función función splines3RobotAnglesInterp. 

Funciona  de  la  siguiente manera;  interpola  las  coordenadas  independientes  en  Q.  Las  filas  de 

MATRIZ Qvel y MATRIZ Qacc se calculan resolviendo sistemas de ecuaciones lineales.  

Las  filas  de  estas matrices  tienen  que  cumplir  respectivamente  las  ecuaciones  de  restricción  de 

velocidad y aceleración, que son: 

 

Por diferenciación numérica se calculan  los valores de velocidad y aceleración de  las coordenadas 

relativas  (coordenadas  independientes) en cada  fila. Se sustituye una derivada por una diferencia 

de valores dividido entre h. Al principio las fórmulas son avanzadas, por no haber valores anteriores 

a  0,  al  final  son  retrasadas  por  no  haber  valores  posteriores  al  último,  y  en  la mayor  parte  del 

intervalo son centradas. 

Recordar que la condición impuesta de que la aceleración en el instante t= 0 y en instante t= final, 

se ha  tomado  como 0.  Las  velocidades  y aceleraciones dependientes  se  calculan  resolviendo  las 

correspondientes derivadas de las ecuaciones de restricción. 

Por Newton‐Rhapson  se calculan  los valores de Qvel y Qacc para  las coordenadas dependientes, 

debiéndose cumplir: 

 

El término c es una parte de las ecuaciones de restricción de aceleración, que se obtiene derivando 

la función formFiqPU4 con respecto a cada uno de sus componentes qi, dando como resultado  la 

función formFiqdqdPU4. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

43 | P á g i n a   

2.2.8 Análisis dinámico 

Dentro  del  análisis  dinámico,  se  encuentra  el  análisis  dinámico  inverso  y  el  análisis  dinámico 

directo. Se desarrollan, a continuación, según el orden de realización. 

2.2.8.1 Análisis dinámico inverso 

La dinámica  inversa  calcula,  a  través de  la  función  invDynamics, para un movimiento definido  ‐

conocidas  la  posición,  velocidad  y  la  aceleración  en  cada  instante  de  tiempo‐,  y  conocidas  las 

fuerzas  externas  que  actúan  (por  ejemplo  el  peso);  qué  fuerzas  hay  que  aplicar  en  los motores 

(donde  hay  control)  para  que  se  obtenga  el  citado movimiento.  En  la  dinámica  inversa,  cada 

instante  del  tiempo  es  independiente  de  los  demás  y  tiene  una  posición,  una  velocidad  y  una 

aceleración y unas fuerzas conocidas. 

Las posiciones, velocidades y aceleraciones, proceden del cálculo cinemático. El efecto  inercial de 

las  fuerzas  tenidas en cuenta es calculado. Como  resultado  final del análisis dinámico  inverso, se 

obtienen los pares que han de ejercer los cuatro motores para replicar el movimiento prescrito con 

las fuerzas que estaban actuando. 

Como consecuencia del proceso de  interpolación cinemática se dispone de  las matrices Q, Qvel y 

Qacc cuyas filas contienen respectivamente las posiciones, velocidades y aceleraciones en cada uno 

de los instantes de tiempo.  

Tras el  cálculo de estas matrices hay que  calcular  las  fuerzas  teniendo en  cuenta  las ecuaciones 

diferenciales  del movimiento  en  coordenadas  independientes,  que  se  sustentan  en  la  siguiente 

notación matemática: 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

44 | P á g i n a   

 

2.2.8.2 Análisis dinámico directo 

La  dinámica  directa  se  encarga  de  calcular  el movimiento  del  robot,  resultante  de  aplicar  unos 

pares en motores y unas fuerzas en el robot. Se  llama a  la función ode113 que utiliza a su vez  la 

función deriv3ARM4DOFrobot. 

La cuarta validación del modelo consiste en confirmar que el movimiento obtenido por aplicar  los 

pares  obtenidos  en  la  dinámica  inversa,  coinciden  con  el  obtenido  en  el  análisis  cinemático 

(movimiento teórico). Para ello, es necesario acudir a la dinámica directa. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

45 | P á g i n a   

Por  lo  tanto,  el  movimiento  real  resultante,  al  no  haber  cambiado  ninguna  condición  de  las 

obtenidas  en  la  dinámica  inversa  (pares  de motor  y  fuerzas  inerciales  debidas  al  peso  de  los 

eslabones) ha de  ser el mismo al movimiento  teórico. Siendo así,  se considera que el  robot está 

listo para trabajar. 

2.2.8.3 Fuerza de mecanizado 

En  relación  a  los posibles  trabajos que puede  realizar  este  tipo de  robot,  su  versatilidad  abarca 

tanto operaciones típicas de manipulación como operaciones de arranque de viruta. 

Uno de los mecanizados más usuales es el taladrado, por lo cual se elige éste para su modelización 

y análisis. Dentro del taladrado se elegirá para acotar las fuerzas, taladrado en macizo con broca de 

diámetro 9 mm. 

 

 

 

Figura 14. Fuerzas que actuan en el mecanizado y localización sobre la punta del robot 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

46 | P á g i n a   

         

Para calcular la fuerza de corte, se ha usado la fórmula fuerza de avance de Figura 15. Los valores 

de kc se han buscado en un catálogo comercial.         

 

 

Figura 15 

magnitud dato unidades comentarios

tipo de broca broca helicoidal

porque es más estable y rompe más la viruta de 

aluminio que las brocas rectas

diámetro broca 9 mm

fn Avance por vuelta 0,2 mm/rev parámetro típico

Longitud de mecanizado 20 mm

revoluciones                          9.000    rpms cono BT40

kc fuerza específicamente 830 N/mm2 780 N/mm2 (%Si<10%)  ‐ 830 N/mm2 (%Si>10%)

z 2 labios

ángulo de la hélice kt 70 °

Material:

Aleación de Aluminio 

AlSi9Cu3Fe (EN AC 

46000) s/EN 1706

Na ( fuerza axial): 0 N Fuerza axial, se considera 0 por tener 2 labios

Nr (fuerza radial) 0N

Fuerza radial (distinta de cero cuando la 

herramienta NO está equilibrada)

Ft (fuerza de corte) 351,0 N fuerza en la dirección de corte

Ft 35,8 kg Se redondea a 35 kg

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

47 | P á g i n a   

2.2.8.4 Control de lazo cerrado 

Si  se  introduce  una  fuerza  exterior  de mecanizado  no  contemplada  en  la  dinámica  inversa  y  se 

asigna en los motores los mismos pares resultantes de la resolución del problema dinámico inverso, 

el movimiento real obtenido no es igual al movimiento teórico. 

El control de lazo cerrado se basa en ir comparando el movimiento real con el deseado e introducir 

las correcciones necesarias para minimizar o anular las diferencias. 

Se pueden introducir 2 ganancias: 

‐ Ganancia en posición.   Hace el mismo efecto que meter un muelle. Al  ir separándose de  la 

trayectoria teórica, se aplica una  fuerza proporcional a  la separación. Corrige desviaciones 

en posición. No corregiría una oscilación de amplitud muy pequena que vibrara alrededor 

de la verdadera posición. 

‐ Ganancia en  velocidad. Hace el efecto de un amortiguador. No permite que  se  separe  la 

velocidad. Evita pequeñas oscilaciones. Dificulta el rendimiento de la integración. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

48 | P á g i n a   

3 Modelo M1 en coordenadas naturales 

Este primer modelo, basado en  cordenadas naturales,  tiene un desarrollo  como el mostrado en 

Diagrama de Flujo 3 y Diagrama de Flujo 4. 

 

 

Diagrama de Flujo 3. Detalle de análisis a realizar con Modelo 1 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

49 | P á g i n a   

 

INICIO 

Coordenadas de los PUNTOS del robot 

matriz P (5 x 4); np = 5 

LONGITUDES ESLABONES (constantes) 

L1, L2, L3 

VECTORES UNITARIOS no repetidos 

matriz U (4 x 4); nv = 4 

COORDENADAS NATURALES (P + U) 

vector q (27 x 1); n = 27 = (np+nv)*3 

Coord. naturales FIJAS 

vector fixed (6 x 1); 6=(1p+1vu)*3 

Coord. naturales LIBRES

vector free (27 x 1); 21=n‐6=27‐21 

GDLs = 4 (se necesitan 4 motores) 

Coord. libres INDEPENDIENTES = GDLs  vector

qind (4 x 1); 4 

Coordenadas libres dependientes = 17 vector 

qdep (17 x 1); 17=21‐4 

RESTRICCIONES (restricciones >= qdep) 

matriz CONSTR (17 x 11);  

Computación de JACOBIANOS y 

RESTRICCIONES 

formFiPU4, formFiqPU4 

ESLABONES para dibujar 

matriz LINES 

VECTORES UNITARIOS para dibujar (los no 

repetidos y los repetidos) 

matriz UVECTOR 

Dibujar el robot en cada instante 

drawMech 

Iteración de posiciones del robot 

NewtonRaphson 

FIN

Diagrama de Flujo 4. Programa del modelo 1 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

50 | P á g i n a   

3.1 Definición de la geometría 

El robot tiene 3 brazos (4 BODIES). El BODY 1 corresponde al suelo. Los 2 brazos iniciales (L1 y L2)  

están unidos por 2 uniones de tipo revolución. El brazo 3 está unido por una corredera. 

Se considera, en una primera aproximación como sólido rígido. Se eligen 5 puntos para conformar 

los 3 brazos o eslabones. 

 

Figura 16. Puntos del robot y sus n° de coordenadas, entre paréntesis, en cada dirección del espacio 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

51 | P á g i n a   

Las  propiedades  geométricas  más  importantes,  se  recogen  en  Tabla  4,  Tabla  5  y  Tabla  6 

(coordenadas de los puntos con respecto a origen X,Y,Z): 

 

Tabla 4. Longitudes de los eslabones del robot 

 

 

Tabla 5. Configuración Robot y posición inicial (ángulos y distancias) 

 

 

Tabla 6. Posición inicial puntos 

 

Cumpliendo  las  configuraciones  arriba  indicadas,  los  puntos  iniciales  tendrían  la  siguiente 

distribución y asignación de número de coordenadas: 

%% DEFINICIÓN GEOMETRÍA: PUNTOS

a [mm] b [mm]

L1                                            700   

Sección 

tubular 

rectangular

8 200 100

L2                                        1.000   

Sección 

tubular 

rectangular

4 160 100

L3                                        1.000   Sección 

cilíndrica5 100

(*) fuente: Tubos Vega

Brazo Longitud [mm] Tipo brazoEspesor 

(*) [mm]

Sección (*)

Brazo pto inicial pto final Angle [rad] [degrees] distancia [m]

L1 1 2 psi1  1,40 80 N/A

L2 2 3 psi2 2,27 130 N/A

L3 4 5 psi3 0,6896 40 s 0,5

pto x [mm] y [mm] z [mm]

1 1000 0 300

2 1689,4 121,6 300

3 2.189 987,6 300

4 2.189 987,6 800

5 2.189 987,6 ‐200

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

52 | P á g i n a   

% P= [m] {Coordinates of POINTS in the initial position} % Rows are POINTS. % Column 1, X coord; Column 2, Y coord; Column 3, Z coord. % Last 3 columns P(i,4:6) are the positions of coordinates of point i in % vector q. P= [1.0000, 0.0000, 0.3, 1:3 1.6894, 0.1216, 0.3, 4:6 2.1894, 0.9876, 0.3, 7:9 2.1894, 0.9876, 0.8, 10:12 2.1894, 0.9876, -0.2, 13:15]; % np= {núm puntos que conforman el robot} np=size(P,1);  

Los  vectores  unitarios,  tendrían  la  siguiente  disposición  en  la  posición  inicial,  y  asignación  de 

número de variable: 

%% DEFINICIÓN GEOMETRÍA: VECTORES UNITARIOS % U= {Components of unit vectors in the initial position} % Rows are number of different UNIT VECTORS (one same unit vector could be % placed in several points, and different unit vectors could have same initial % components between each other). % Column 1, X coord; Column 2, Y coord; Column 3, Z coord. % Last 3column U(i,4:6) are the positions of coordinates of vector i in % vector q U=[ 0, 0, 1, 16:18 0, 0, 1, 19:21 0, 0, 1, 22:24 0, 1, 0, 25:27]; % nv= {núm vectores unitarios} nv=size(U,1);  

A partir de este momento las coordenadas naturales como tal, están definidas. 

%% COORDENADAS NATURALES %q = [P(1,1:3), P(2,1:3), P(3,1:3), P(4,1:3), P(5,1:3)... % U(1,1:3), U(2,1:3), U(3,1:3), U(4,1:3)]';  

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

53 | P á g i n a   

 

Figura 17. Numeración de coordenadas de puntos y vectores unitarios 

Cabe recordar  la diferencia entre  longitudes y distancias. Las  longitudes son constantes, mientras 

que las distancias no. Las longitudes se determinan por: 

%% LONGITUDES, DISTANCIAS y ÁNGULOS % Computation of lengths (constant distances) L(1)=norm(P(2,1:3)-P(1,1:3)); L(2)=norm(P(3,1:3)-P(2,1:3)); L(3)=norm(P(5,1:3)-P(4,1:3));  

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

54 | P á g i n a   

3.2 Coordenadas independientes y dependientes 

En robótica es muy utilizada la terminología de problema cinemático directo y problema cinemático 

inverso.  El  problema  cinemático  directo  consiste  en  encontrar  la  posición  de  la  garra  (el  último 

punto), dadas  las posiciones de  las uniones  intermedias. El problema cinemático  inverso, trata de 

encontrar las posiciones de los puntos intermedios, dada la posición de la garra.  

En el caso de utilizar las coordenadas naturales (tanto “puras” como mixtas), no es de aplicación. Se 

mueven las coordenadas independientes para ver cómo se mueven las dependientes.  

∑coordenadas independientes = GDLs del sistema = 4 

Al haber 4 GDLs, las coordenadas independientes son también 4. Se recogen en el vector qind. 

Las  coordenadas  independientes  elegidas  son,  con  numeración  acorde  a  Figura  17:  qind  =  [13 

(coord x), 14 (coord y), 15 (coord z),  25 (rot z)] 

Las coordenadas 13, 14 y 15, pertenecen al extremo del robot (punto p5) y definen la posición en x, 

y, z, respectivamente. Falta por restringir la rotación del BODY4, que está definida por el vector u5. 

La restricción se consigue con la coordenada 25, perpendicular al vector en el plano X‐Y (en el plano 

z no hace falta por ser solidario al punto p5), como puede apreciarse en Figura 18. 

 

Figura 18. Esquema de restricción de rotación de body 4 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

55 | P á g i n a   

Las coordenadas dependientes se calculan de la siguiente manera: 

∑coordenadas naturales (puras o mixtas) = ∑coordenadas fijas + ∑coordenadas libres 

∑coordenadas libres = ∑coordenadas dependientes + ∑coordenadas independientes 

Así está recogido en Tabla 7 serían aquellas que no son independientes y tampoco fijas, siendo en 

total 17 y teniendo como coordenadas: 

qdep =     4     5     6     7     8     9    10    11    12    19    20    21    22    23    24    26    27 

 

Tabla 7. Coordenadas naturales del modelo 1 

 

coordenadas naturales udsnº variables 

en el espaciomatlab

puntos np = 5 15 matriz P

vectores unitarios 4 12 matriz UVECT

vectores unitarios que NO están repetidos nv = 4 12 matriz Uvectores unitarios que SÍ están repetidos (por ser 

iguales siempre)0 0

Σ coordenadas naturales: 27 vector q

tipos de coordenadas

coordenadas naturales (q = fixed + free) udsnº variables 

en el espaciomatlab

fijas 2 6 vector fixed

puntos 1 3

vectores unitarios 1 3

libres 21 vector free

puntos 4 12

vectores unitarios 3 9

libres (free = qind + qdep) 21

coordenadas independientes (qind= gdls) 4 vector qind

coordenadas dependientes = restricciones (qdep= 

CONST)17

vector qdep

matriz CONSTR

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

56 | P á g i n a   

3.3 Restricciones 

Al haber 17 coordenadas dependientes  se necesitan, al menos, 17 ecuaciones de  restricción que 

sean independientes entre sí. 

∑coordenadas  dependientes  = Número  de  restricciones  del  sistema  (si  todas  las  ecuaciones  son 

independientes) 

∑coordenadas  dependientes  ≤  Restricciones  del  sistema  (si  son  todas  las  ecuaciones  son 

independientes) 

Se plantean 18 ecuaciones de restricción, 1 de ellas dependiente, según se muestra en Tabla 8. 

Se  necesitan  2  restricciones  nuevas  (ver  Tabla  9);  1040  y  1050  que  no  están  en  el  catálogo  de 

restricciones inicial (Tabla 3). 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

57 | P á g i n a   

Tabla 8. Ecuaciones de restricción para el robot en coordenadas naturales 

 

BodyCoorden

adasBarra Condición Descripción

ecuación 

particular

Tipo de 

ecuación

nº de 

ecuació

n

Nº 

restricci

ón

Body 2 Naturales L1 L1 = cteEl body 2 tiene longitud 

constante (L1)

(r2 – r1)^T ∙ (r2 – 

r1)  ‐ d12^2 = 0Escalar N1 1000

Body 2 Naturales L1 u1∙L1 = 0 

El vector unitario u1 y la barra 

L1 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u1^T ∙ (r2 – r1) = 

0  Escalar N2 1002

Body 2 Naturales L1 u2 = u1Los vectores unitarios u1 y u2 

siempre son igualesu2 – u1 = 0  Vectorial

N3, N4, 

N51040

Body 3 Naturales L2 L2 = cteEl body 3 tiene longitud 

constante (L2)

(r3 – r2)^T ∙ (r3 – 

r2)  ‐ d23^2 = 0Escalar N6 1000

Body 3 Naturales L2 u2∙L2= 0

El vector unitario u2 y la barra 

L2 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u2^T ∙ (r3 – r2) = 

0  Escalar N7 1002

Body 3 Naturales L2 u3 = u2Los vectores unitarios u2 y u3 

siempre son igualesu3 – u2 = 0  Vectorial

N8, N9 , 

N101040

Body 4 Naturales L3 L3=k∙u3Cuando se tienen  2 vectores 

alineados, es lo más sencillo.

(r4 – r5) – alpha * 

u3 = 0Vectorial

N11, 

N12, 

N13

1050

Body 4 Naturales L3 u4=1

El vector unitario u4 es 

constante en módulo pero 

puede moverse (no es un 

vector fijo, por lo tanto, puede 

ponerse como incógnita)

u4^T ∙ u4 – 1 = 0 Escalar N14 1001

Body 4 Naturales L3 u4∙L3=0

El vector unitario u4 y la barra 

L3 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u4^T ∙ (r5 – r4) = 

0  Escalar N15 1002

Body 4 Naturales L3‐L3 x L4 = 

0

Par C. Ecuación vectorial,  3 

ecuaciones, pero sólo 2 de 

ellas son independientes. En 

este caso se pone ‐L3 para 

adecuar a  la fórmula.

(r3‐r4) x (r5 – r4) 

= 0 Vectorial

N16, 

N171020

Body 4 Naturales L3 L3 = cteEl body 4 tiene longitud 

constante (L3)

(r5 – r4)^T ∙ (r5 – 

r4)  ‐ d45^2 = 0Escalar N18 1000

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

58 | P á g i n a   

Tabla 9. Catálogo de Restricciones ed01 

 

Restric

ciónEcuación general

Notación matricial para matriz 

CONSTComentarios

1000 (ri'‐rj')*(ri‐rj)‐Lij^2 [1000  i  j  0  0  0  0  0  0  0  0  Lij] existente

1001 ui'*ui‐1  [1001  i  0  0  0  0  0  0  0  0  0   0] existente

1002 uk'*(ri‐rj)‐Lij*cos(fi) [1002  k  i  j  0  0  0  0  0  0 Lij cfi] existente

1003 ui'*uj‐cos(fi) [1003  i  j  0  0  0  0  0  0  0  0  cfi] existente

1004 uiX(rj‐rk)   [1004  i  j  k  0  0  0  0  0  0 Ljk cfi] existente

1005 (rk‐ri)‐[rj‐ri,ul,um]*c [1005  i  j  k  l  m  0  0  0  c1 c2 c3] existente

1006 um‐[rj‐ri,uk,ul]*c [1006  i  j  k  l  m  0  0  0  c1 c2 c3] existente

1007 un‐[rj‐ri,rl‐rk,um]*c [1007  i  j  k  l  m  n  0  0  c1 c2 c3] existente

1020 (ri – rj) x (rk – rl) [1020  i  j  k  l  0  0  0  0   0  0  0] existente

1030 (ri'‐rj')*(ri‐rj)‐dij^2[1030  i  j  0  0  0  0  0  0  0  0  

ipos]existente

1040 ui – uj  [1040  i  j  0  0  0  0  0  0   0  0  0] NUEVA

1050 (ri – rj) – alpha*uk  [1050  k  i  j  0  0  0  0  0   0  0  0] NUEVA

1010(rj‐ri)'*(rl‐rk)‐

Lij*Lkl*cos(psi)

[1010  i  j  k  l  0  0  0  0 Lij Lkl 

ipos]existente

1011(rj‐ri)X(rl‐rk)‐

um*Lij*Lkl*sin(psi)

[1011  i  j  k  l  m  0  0  0 Lij Lkl 

ipos]existente

1012(rj‐ri)X(rl‐rk)‐(rm‐

rn)*Lij*Lkl*sin(psi)/Lmn

[1012  i  j  k  l  m  n  0 Lij Lkl Lmn 

ipos]existente

1013 ui'*uj‐cos(psi)[1013  i  j  0  0  0  0  0  0   0   0  

ipos]existente

1014 uiXuj‐uk*sin(psi)[1014  i  j  k  0  0  0  0  0   0   0  

ipos]existente

1015 uiXuj‐(rk‐rl)*sin(psi)/Lkl[1015  i  j  k  l  0  0  0  0   0  Lkl 

ipos]existente

1016 uk'*(ri‐rj)‐Lij*cos(psi)[1016  k  i  j  0  0  0  0  0   0  Lij 

ipos]existente

1017 ukX(ri‐rj)‐ul*Lij*sin(psi)[1017  k  l  i  j  0  0  0  0   0  Lij 

ipos]existente

1018ukX(ri‐rj)‐(rl‐

rm)*Lij*sin(psi)/Lml

[1018  k  i  j  l  m  0  0  0  Lij Llm 

ipos]existente

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

59 | P á g i n a   

 

El desarrollo de las nuevas restricciones 1040 y 1050 en MATRIZ CONSTR: 

% 1040 ui – uj % [1040 i j 0 0 0 0 0 0 0 0 0]  

% 1050 (ri – rj) – alpha*uk % [1050 k i j 0 0 0 0 0 0 0 0]   

En función formFIPU4: 

case 1040 % 1040 ui-uj % [1040 i j 0 0 0 0 0 0 0 0 0] vi=CONSTR(i,2); inui=U(vi,4:6); ui=q(inui); vj=CONSTR(i,3); inuj=U(vj,4:6); uj=q(inuj); fi(ii:ii+2)=ui-uj; ii=ii+3; case 1050 % 1050 (rj – ri) – alpha*uk % [1050 k i j 0 0 0 0 0 0 0 0] vk= CONSTR(i,2); inuk=U(vk,4:6); uk=q(inuk); pi= CONSTR(i,3); pj= CONSTR(i,4); inpi=P(pi,4:6); inpj=P(pj,4:6); rij=q(inpj)-q(inpi); alpha= uk'*rij; fi(ii:ii+2)= rij-alpha*uk; ii=ii+3;  

En función formFiqPU4: 

case 1040 % 1040 ui-uj % [1040 i j 0 0 0 0 0 0 0 0 0] vi=CONSTR(i,2); inui=U(vi,4:6); ui=q(inui); vj=CONSTR(i,3); inuj=U(vj,4:6); uj=q(inuj); %fi(ii:ii+2)=ui-uj; Fiq(ii:ii+2,[inui,inuj])=[eye(3),-eye(3)]; ii=ii+3; case 1050 % 1050 (rj – ri) – alpha*uk % [1050 k i j 0 0 0 0 0 0 0 0]

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

60 | P á g i n a   

vk= CONSTR(i,2); inuk=U(vk,4:6); uk=q(inuk); pi= CONSTR(i,3); pj= CONSTR(i,4); inpi=P(pi,4:6); inpj=P(pj,4:6); rij=q(inpj)-q(inpi); alpha= uk'*rij; %fi(ii:ii+2)= rij-alpha*uk; Fiq(ii:ii+2,[inuk,inpi,inpj])=[-eye(3)*alpha, -eye(3), eye(3)]; ii=ii+3;  

Y finalmente en función formFiqdqdPU4: 

case 1040 % 1040 ui-uj % [1040 i j 0 0 0 0 0 0 0 0 0] % c(ii:ii+2)=zeros(3,1); c(ii:ii+2)=zeros(3,1); ii=ii+3; case 1050 % 1050 (ri – rj) – alpha*uk % [1050 k i j 0 0 0 0 0 0 0 0] % c(ii:ii+2)=zeros(3,1); c(ii:ii+2)=zeros(3,1); ii=ii+3;  

La parametrización en Matlab queda de forma simplificada: 

% Constraints for the robot CONSTR=[... 1000, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, L(1) 1002, 1, 2, 1, 0, 0, 0, 0, 0, 0, L(1), 0 1040, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 1000, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, L(2) 1002, 2, 3, 2, 0, 0, 0, 0, 0, 0, L(2), 0 1040, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 1000, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, L(3) 1001, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1002, 4, 5, 4, 0, 0, 0, 0, 0, 0, L(3), 0 1020, 4, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0 1050, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0 ];  

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

61 | P á g i n a   

Tabla 10. Parametrización de restricciones 

 

 

Barra Condición Descripciónecuación 

particular

Nº 

restricci

ón

restricción expresión matricial

L1 L1 = cteEl body 2 tiene longitud 

constante (L1)

(r2 – r1)^T ∙ (r2 – 

r1)  ‐ d12^2 = 01000 (ri'‐rj')*(ri‐rj)‐Lij^2 1000, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,   L(1)

L1 u1∙L1 = 0 

El vector unitario u1 y la barra 

L1 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u1^T ∙ (r2 – r1) = 

0  1002 uk'*(ri‐rj)‐Lij*cos(fi) 1002, 1, 2, 1, 0, 0, 0, 0, 0, 0, L(1), 0

L1 u2 = u1Los vectores unitarios u1 y u2 

siempre son igualesu2 – u1 = 0  1040 ui – uj  1040, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,    0  

L2 L2 = cteEl body 3 tiene longitud 

constante (L2)

(r3 – r2)^T ∙ (r3 – 

r2)  ‐ d23^2 = 01000 (ri'‐rj')*(ri‐rj)‐Lij^2 1000, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0,   L(2)

L2 u2∙L2= 0

El vector unitario u2 y la barra 

L2 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u2^T ∙ (r3 – r2) = 

0  1002 uk'*(ri‐rj)‐Lij*cos(fi) 1002, 2, 3, 2, 0, 0, 0, 0, 0, 0, L(2), 0

L2 u3 = u2Los vectores unitarios u2 y u3 

siempre son igualesu3 – u2 = 0  1040 ui – uj  1040, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 

L3 L3=k∙u3Cuando se tienen  2 vectores 

alineados, es lo más sencillo.

(r4 – r5) – alpha * 

u3 = 01050 (ri – rj) – alpha*uk 1050, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0

L3 u4=1

El vector unitario u4 es 

constante en módulo pero 

puede moverse (no es un 

vector fijo, por lo tanto, puede 

ponerse como incógnita)

u4^T ∙ u4 – 1 = 0 1001 ui'*ui‐1 1001, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,    0

L3 u4∙L3=0

El vector unitario u4 y la barra 

L3 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u4^T ∙ (r5 – r4) = 

0  1002 uk'*(ri‐rj)‐Lij*cos(fi) 1002, 4, 5, 4, 0, 0, 0, 0, 0, 0, L(3), 0

L3‐L3 x L4 = 

0

Par C. Ecuación vectorial,  3 

ecuaciones, pero sólo 2 de 

ellas son independientes. En 

este caso se pone ‐L3 para 

adecuar a  la fórmula.

(r3‐r4) x (r5 – r4) 

= 0 1020 (rj‐ri)x(rk‐ri) = 0 1020, 4, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0

L3 L3 = cteEl body 4 tiene longitud 

constante (L3)

(r5 – r4)^T ∙ (r5 – 

r4)  ‐ d45^2 = 01000 (ri'‐rj')*(ri‐rj)‐Lij^2 1000, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0,   L(3)

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

62 | P á g i n a   

 

 

3.4 Análisis cinemático con trayectoria definida 

La  trayectoria  se  genera  por  una  nube  de  puntos  continua  definidos  en  coordenadas 

independientes. 

Se describe una trayectoria elíptica, de la siguiente forma; 

% Animation by the finite displacement problem % The end effector is displaced on an ellipse in z=constant plane with an % elevation of body 4 in z. % Ellipse radious rx=1.5; ry=1; % Ellipse center xc=1; yc=0.41; zc=0.3; % The ellipse points are parametrized by an angle alfa alfa=[0:pi/72:3*pi]; for ang=alfa % The end-effector position is computed from tha alfa value x=xc+rx*sin(ang); y=yc+ry*cos(ang+pi); z=-0.3+ang/30; % The guided coordinates are defined and introcuced in q qindval=[x, y, z, 0]; q(qind)=qindval'; q0=q; % The constraint equations are enforced by the Newton-Raphson method [q,nit]=NewtonRaphson(func,Jac,q0,qdep,CONSTR,P,U,tol,nitmax); % The new robot position is drawn and then a short pause is introduced drawMech(q,'b','r',P,U,LINES,UVECT,0.5,axes,TITLE) % F = getframe(gca); % mov = addframe(mov,F); pause(0.01) end  

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

63 | P á g i n a   

 

Figura 19. Movimiento del robot 

En  la  Figura 19 puede  verse para un  instante de  tiempo  la  trayectoria del  robot. No  se detecta 

ningún conflicto, por lo que se valida el modelo (primera validación), y se pasa al modelo 2. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

64 | P á g i n a   

4 Modelo M2 en coordenadas naturales mixtas 

El modelo número 2, incorpora a las coordenadas naturales del modelo número 1, las coordenadas 

relativas en forma de ángulos en  los pares de revolución (3 ángulos; ϕ1, ϕ 2 y ϕ3) y distancias en 

los pares prismáticos (1 distancia; s). Se añaden a este modelo 4 coordenas relativas (ver Figura 21). 

El desarrollo es mucho más elaborado como puede apreciarse en Diagrama de Flujo 5 y Diagrama 

de Flujo 6. En éste último diagrama de flujo, en rojo aparecen los elementos que se han anadido, en 

azul los que se han modificado, y en verde las instrucciones que no varian. Así se puede ver el bajo 

impacto de alterar las coordenadas comparando con la gran ventaja que va a suponer. 

 

Diagrama de Flujo 5. Detalle de análisis a realizar con Modelo 2 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

65 | P á g i n a   

 

 

INICIO 

Coordenadas de los PUNTOS del robot 

matriz P (5 x 4); np = 5 

LONGITUDES ESLABONES (constantes) 

L1, L2, L3 

VECTORES UNITARIOS no repetidos 

matriz U (5 x 4); nv = 5 

COORDENADAS MIXTAS (naturales y 

relativas) 

vector q (34 x 1); n = 34 = (np+nv)*3+na+nd

DISTANCIA (variables) L4 

vector DIST (1 x 2); nd = 1

Coord. mixtas FIJAS 

vector fixed (9 x 1); 9=(1p+2vu)*3 

Coord. mixtas LIBRES 

vector free (25 x 1); 25=n‐6=34‐9 

GDLs = 4 (se necesitan 4 motores) 

Coord. libres INDEPENDIENTES = GDLs  vector 

qind (4 x 1); 4 

Coordenadas libres DEPENDIENTES  

vector qdep (21 x 1); 21=25‐4=free‐gdls 

RESTRICCIONES (restricciones >= qdep) 

matriz CONSTR (25 x 11);  

Computación de JACOBIANOS y 

RESTRICCIONES 

formFiPU4, formFiqPU4

ESLABONES para dibujar 

matriz LINES 

VECTORES UNITARIOS para dibujar (los no 

repetidos y los repetidos) 

matriz UVECTOR

Dibujar el robot en cada instante 

drawMech 

Iteración de posiciones del robot 

NewtonRaphson 

FIN 

ÁNGULOS psi1, psi2, psi3 

vector ANGLE (3 x 2); na = 3 

Diagrama de Flujo 6. Secuencia del programa del modelo 2 para validar coordenadas

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

66 | P á g i n a   

Los vectores unitarios deben complementarse para poder definir correctamente el ángulo con: 

U=[ 0, 0, 1, 16:18 0, 0, 1, 19:21 0, 0, 1, 22:24 1, 0, 0, 25:27; % FOR MIXED COORDINATES, added unit vector u5 to define psi1 1, 0, 0, 28:30]; % nv= {núm vectores unitarios} nv=size(U,1);  

En cuanto a los ángulos y la distancia, implican incluir en el programa las siguientes líneas: 

 

%% LONGITUDES, DISTANCIAS y ÁNGULOS % Computation of distances L(4)=norm(P(4,1:3)-P(3,1:3)); % Computation of angles p1=P(1,1:3); p2=P(2,1:3); p3=P(3,1:3); u1=U(1,1:3); u2=U(2,1:3); u3=U(3,1:3); u4=U(4,1:3); u5=U(5,1:3); % % psi1, from u5(paralell to x-axis) to L1(p2-p1) on u1 % fi(ii:ii+2)=cross(uk,rji)-ul*Lji*sin(psi); cpsi1=dot (u5,(p2-p1)/L(1)); [vmax,imax]=max(abs(u1)); u=cross(u5,(p2-p1)/L(1)); spsi1=u(imax)/u1(imax); psi1=atan2(spsi1,cpsi1); % psi2, from L2(p3-p2) to L1(p2-p1) on u2 cpsi2=(p3-p2)*(p1-p2)'/(L(1)*L(2)); [maxv,imax]=max(abs(u2)); u=cross((p3-p2),(p1-p2)); spsi2=u(imax)/(u2(imax)*L(1)*L(2)); psi2=atan2(spsi2,cpsi2); % psi3, from u4 to L2(p3-p2) on u3 cpsi3=dot(u4,(p3-p2)/L(2)); [maxv,imax]=max(abs(u3)); u=cross(u4,(p3-p2)/L(2)); spsi3=u(imax)/(u3(imax)); psi3=atan2(spsi3,cpsi3);

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

67 | P á g i n a   

ANGLE=[psi1, 31 psi2, 32 psi3, 33]; na=size(ANGLE,1); % definition of distances as relative coordinates % value, position in q DIST=[L(4), 34]; nd=size(DIST,1);  

La definición de los ángulos, puede encontrarse gráficamente en la Figura 22. 

 

Las coordenadas naturales mixtas se definen como: 

%% MIXED NATURAL COORDINATES % for NATURAL COORDINATES q=zeros(3*(np+nv)+na+nd,1); for i=1:np q(P(i,4:6))=P(i,1:3); end for i=1:nv q(U(i,4:6))=U(i,1:3); end qini = q; % for MIXED COORD; for i=1:na apos=ANGLE(i,2); q(apos)=ANGLE(i,1); end for i=1:nd dpos=DIST(i,2); q(dpos)=DIST(i,1); end n=length(q);  

4.1 Coordenadas dependientes e independientes 

Es necesario  revisar  si el  sistema de  vectores unitarios del modelo 1 es  suficiente o no para  los 

ángulos y distancias anadidos. Para este caso concreto, se ha necesitado añadir 1 vector unitario 

adicional  con  objeto  de  que  los  ángulos  queden  perfectamente  determinados  con  las 

correspondientes ecuaciones de producto escalar y/o vectorial (ver Figura 20). 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

68 | P á g i n a   

 

Figura 20. Puntos y vectores unitarios para coordenadas naturales mixtas 

Las  coordenadas  relativas  añadidas  pasan  a  ser  las  nuevas  coordenadas  independientes 

(sustituyendo  a  las  coordenadas  independientes  cartesianas  del  modelo  primero,  que  eran 

coordenadas naturales). 

% FOR MIXED COORD; qind = [31, 32, 33, 34];  

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

69 | P á g i n a   

 

Figura 21. Representación de las coordenadas relativas y su signo 

A modo  de  resumen,  en  la  Tabla  11,  puede  verse  del  nuevo modelo  cómo  queda  en  cuanto  a 

composición de número de coordenadas, así como sus diferentes tipos y orígenes. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

70 | P á g i n a   

Tabla 11. Coordenadas naturales mixtas del modelo 2 

 

4.2 Restricciones 

Las  restricciones  habrán  de  ser  incrementadas  en,  al menos,  4  ecuaciones,  una  por  cada  nueva 

incógnita. 

La validación del modelo número 2,  tiene 2  fases.  La primera, al  igual que  se hizo en el modelo 

número  1,  a  través  del  análisis  cinemático  del  comportamiento  con  una  trayectoria  definida. 

coordenadas naturales udsnº variables en el 

espaciomatlab

puntos 5 15 matriz P

vectores unitarios 5 15 matriz UVECT

vectores unitarios que NO están repetidos 5 15 matriz Uvectores unitarios que SÍ están repetidos (por ser 

iguales siempre)0 0

Σ coordenadas naturales: 30

coordenadas relativas udsnº variables en el 

espaciomatlab

ángulos 3 3

distancias 1 1

Σ coordenadas relativas: 4

34 vector q

tipos de coordenadas

coordenadas naturales (q = fixed + free) udsnº variables en el 

espaciomatlab

fijas 3 9 vector fixed

puntos 1 0

vectores unitarios 2 0

libres 25 vector free

puntos

vectores unitarios

libres (free = qind + qdep) 25

coordenadas independientes (qind= gdls) 4 vector qind

coordenadas dependientes = restricciones (qdep= 

CONST)21

vector qdep

matriz CONSTR

Σ coordenadas mixtas (naturales + relativas):

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

71 | P á g i n a   

Podrían  obtenerse  del  modelo  2  en  este  análisis,  velocidades  y  aceleraciones,  pero  no  son 

necesarios. Tan sólo interesan los movimientos o desplazamientos finitos.  

Comprobada  la  coherencia  de  movimientos  (segunda  validación),  se  pasa  a  analizar 

cinemáticamente el comportamiento con trayectorias interpoladas. 

Como mínimo  son necesarias 21  restricciones para  coordenadas naturales mixtas  (ver Tabla 12). 

Por  lo  tanto,  han  de  anadirse,  al menos,  4  nuevas  ecuaciones  de  restricción  (4  de  ellas  serán 

independientes, una por cada nueva incógnita). 

 

 

Figura 22. Definición de los ángulos 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

72 | P á g i n a   

Tabla 12. Ecuaciones de restricción para el robot en coordenadas naturales mixtas 

 

BodyCoorden

adasBarra Condición Descripción

ecuación 

particular

Tipo de 

ecuación

nº de 

ecuació

n

Nº 

restricci

ón

Body 2 Naturales L1 L1 = cteEl body 2 tiene longitud 

constante (L1)

(r2 – r1)^T ∙ (r2 – 

r1)  ‐ d12^2 = 0Escalar N1 1000

Body 2 Naturales L1 u1∙L1 = 0 

El vector unitario u1 y la barra 

L1 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u1^T ∙ (r2 – r1) = 

0  Escalar N2 1002

Body 2 Naturales L1 u2 = u1Los vectores unitarios u1 y u2 

siempre son igualesu2 – u1 = 0  Vectorial

N3, N4, 

N51040

Body 3 Naturales L2 L2 = cteEl body 3 tiene longitud 

constante (L2)

(r3 – r2)^T ∙ (r3 – 

r2)  ‐ d23^2 = 0Escalar N6 1000

Body 3 Naturales L2 u2∙L2= 0

El vector unitario u2 y la barra 

L2 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u2^T ∙ (r3 – r2) = 

0  Escalar N7 1002

Body 3 Naturales L2 u3 = u2Los vectores unitarios u2 y u3 

siempre son igualesu3 – u2 = 0  Vectorial

N8, N9 , 

N101040

Body 4 Naturales L3 L3=k∙u3Cuando se tienen  2 vectores 

alineados, es lo más sencillo.

(r4 – r5) – alpha * 

u3 = 0Vectorial

N11, 

N12, 

N13

1050

Body 4 Naturales L3 u4=1

El vector unitario u4 es 

constante en módulo pero 

puede moverse (no es un 

vector fijo, por lo tanto, puede 

ponerse como incógnita)

u4^T ∙ u4 – 1 = 0 Escalar N14 1001

Body 4 Naturales L3 u4∙L3=0

El vector unitario u4 y la barra 

L3 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u4^T ∙ (r5 – r4) = 

0  Escalar N15 1002

Body 4 Naturales L3‐L3 x L4 = 

0

Par C. Ecuación vectorial,  3 

ecuaciones, pero sólo 2 de 

ellas son independientes. En 

este caso se pone ‐L3 para 

adecuar a  la fórmula.

(r3‐r4) x (r5 – r4) 

= 0 Vectorial

N16, 

N171020

Body 4 Naturales L3 L3 = cteEl body 4 tiene longitud 

constante (L3)

(r5 – r4)^T ∙ (r5 – 

r4)  ‐ d45^2 = 0Escalar N18 1000

Body 2Naturales 

MixtasL1

L1 x u5 = 

k ∙u1

φ1, va de L1 a L0, entre L1 (p2 

– p1) y u5  (L0)

 u5 x (r2 ‐ r1) = 

k∙u1Vectorial N19 1017

Body 3Naturales 

MixtasL2

L2 x L1 = k 

∙u2

φ2, va de L2 a L1, entre L2 (p3 

– p2) y L1 (p2 – p1)

(r3 ‐ r2 ) x (r1 – 

r2) = k ∙ u2Vectorial N20 1011

Body 4Naturales 

MixtasL3

u4 x L2 = 

k ∙u3

φ3, va de u5 a L2, φ3es el 

ángulo entre u4 y L2 (p3 – p2)

u4 x (r3 – r2) = k ∙ 

u3Vectorial N21 1017

Body 4Naturales 

MixtasL3 s (L4), va de p3 a p4

(r4 – r3)^T ∙ (r4 – 

r3) – s^2 = 0Escalar N22 1030

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

73 | P á g i n a   

La parametrización en Matlab queda ahora, de forma simplificada: 

% Constraints for the robot (with relative coordinates) CONSTR=[... 1000, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, L(1) 1002, 1, 2, 1, 0, 0, 0, 0, 0, 0, L(1), 0 1040, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 % FOR MIXED COORD; psi1, from L1(p2-p1) to u5 (paralell to y-axis) on u1 %(la última componente, indica en qué línea de ANGLE está definido este ángulo) %No es necesario poner 1016 porque en formFiPU4 (en esa versión) lo %selecciona automáticamente 1017, 5, 2, 1, 1, 0, 0, 0, 0, 0, L(1), 1 1000, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, L(2) 1002, 2, 3, 2, 0, 0, 0, 0, 0, 0, L(2), 0 1040, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 % FOR MIXED COORD; psi2, from L2(p3-p2) to L1(p1-p2) on u2 %(la última componente, indica en qué línea de ANGLE está definido %este ángulo) 1011, 2 3 2 1 2 0 0 0 L(2) L(1) 2 1000, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, L(3) 1001, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 1002, 4, 5, 4, 0, 0, 0, 0, 0, 0, L(3), 0 1020, 4, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0 1050, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0 % FOR MIXED COORD; psi3, from u4 to L2(p3-p2) on u3 %(la última componente, indica en qué línea de ANGLE está definido %este ángulo) 1017, 4, 3, 2, 3, 0, 0, 0, 0, 0, L(2), 3 % FOR MIXED COORD; s (dij) on u3 (la última componente, indica en que línea de DIST está definida % esta distancia) 1030, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1 ];  

 

Y de forma más detallada, puede apreciarse en la Tabla 13. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

74 | P á g i n a   

Tabla 13.  Parametrización de restricciones en coordenadas naturales mixtas 

 

Barra Condición Descripciónecuación 

particular

Nº 

restricci

ón

restricción expresión matricial

L1 L1 = cteEl body 2 tiene longitud 

constante (L1)

(r2 – r1)^T ∙ (r2 – 

r1)  ‐ d12^2 = 01000 (ri'‐rj')*(ri‐rj)‐Lij^2 1000, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,   L(1)

L1 u1∙L1 = 0 

El vector unitario u1 y la barra 

L1 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u1^T ∙ (r2 – r1) = 

0  1002 uk'*(ri‐rj)‐Lij*cos(fi) 1002, 1, 2, 1, 0, 0, 0, 0, 0, 0, L(1), 0

L1 u2 = u1Los vectores unitarios u1 y u2 

siempre son igualesu2 – u1 = 0  1040 ui – uj  1040, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,    0  

L2 L2 = cteEl body 3 tiene longitud 

constante (L2)

(r3 – r2)^T ∙ (r3 – 

r2)  ‐ d23^2 = 01000 (ri'‐rj')*(ri‐rj)‐Lij^2 1000, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0,   L(2)

L2 u2∙L2= 0

El vector unitario u2 y la barra 

L2 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u2^T ∙ (r3 – r2) = 

0  1002 uk'*(ri‐rj)‐Lij*cos(fi) 1002, 2, 3, 2, 0, 0, 0, 0, 0, 0, L(2), 0

L2 u3 = u2Los vectores unitarios u2 y u3 

siempre son igualesu3 – u2 = 0  1040 ui – uj  1040, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 

L3 L3=k∙u3Cuando se tienen  2 vectores 

alineados, es lo más sencillo.

(r4 – r5) – alpha * 

u3 = 01050 (ri – rj) – alpha*uk 1050, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0

L3 u4=1

El vector unitario u4 es 

constante en módulo pero 

puede moverse (no es un 

vector fijo, por lo tanto, puede 

ponerse como incógnita)

u4^T ∙ u4 – 1 = 0 1001 ui'*ui‐1 1001, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,    0

L3 u4∙L3=0

El vector unitario u4 y la barra 

L3 son solidarios y con ángulo 

90º. Producto escalar, 

áng=cte=90º

u4^T ∙ (r5 – r4) = 

0  1002 uk'*(ri‐rj)‐Lij*cos(fi) 1002, 4, 5, 4, 0, 0, 0, 0, 0, 0, L(3), 0

L3‐L3 x L4 = 

0

Par C. Ecuación vectorial,  3 

ecuaciones, pero sólo 2 de 

ellas son independientes. En 

este caso se pone ‐L3 para 

adecuar a  la fórmula.

(r3‐r4) x (r5 – r4) 

= 0 1020 (rj‐ri)x(rk‐ri) = 0 1020, 4, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0

L3 L3 = cteEl body 4 tiene longitud 

constante (L3)

(r5 – r4)^T ∙ (r5 – 

r4)  ‐ d45^2 = 01000 (ri'‐rj')*(ri‐rj)‐Lij^2 1000, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0,   L(3)

L1L1 x u5 = 

k ∙u1

φ1, va de L1 a L0, entre L1 (p2 

– p1) y u5  (L0)

 u5 x (r2 ‐ r1) = 

k∙u11017

ukX(ri‐rj)‐

ul*Lij*sin(psi)1017, 5, 2, 1, 1, 0, 0, 0, 0, 0, L(1), 1

L2L2 x L1 = k 

∙u2

φ2, va de L2 a L1, entre L2 (p3 

– p2) y L1 (p2 – p1)

(r3 ‐ r2 ) x (r1 – 

r2) = k ∙ u21011

(rj‐ri)X(rl‐rk)‐

um*Lij*Lkl*sin(psi)1011, 2  3  2  1  2  0  0  0 L(2) L(1) 2

L3u4 x L2 = 

k ∙u3

φ3, va de u5 a L2, φ3es el 

ángulo entre u4 y L2 (p3 – p2)

u4 x (r3 – r2) = k ∙ 

u31017

ukX(ri‐rj)‐

ul*Lij*sin(psi)1017, 4, 3, 2, 3, 0, 0, 0, 0, 0, L(2), 3

L3 s (L4), va de p3 a p4(r4 – r3)^T ∙ (r4 – 

r3) – s^2 = 01030 (ri'‐rj')*(ri‐rj)‐s^2 1030, 4, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

75 | P á g i n a   

4.3 Análisis cinemático con trayectoria definida 

La  trayectoria  se  genera  por  una  nube  de  puntos  continua  definidos  en  coordenadas 

independientes. El código es; 

inc=[ANGLE(1):pi/72:ANGLE(1)+2*pi]; tstart=tic; for delta=inc ANGLE(1)=delta; ANGLE(2)=delta/2; ANGLE(3)=delta; dij=L(4)+delta/4; % The guided coordinates are defined and introduced in q qindval=[ANGLE(1),ANGLE(2),ANGLE(3),dij]; q(qind)=qindval'; q0=q; % The constraint equations are enforced by the Newton-Raphson method [q,nit]=NewtonRaphson(func,Jac,q0,qdep,CONSTR,P,U,tol,nitmax,ANGLE, DIST); telapsed=toc(tstart); % The new robot position is drawn and then a short pause is introduced TITLE=['3ARM 4DOF ROBOT; time = ', num2str(telapsed,'%06.2f'), ' s']; drawMech(q,'b','r',P,U,LINES,UVECT,0.5,axes,TITLE) pause(0.01); end  

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

76 | P á g i n a   

 

Figura 23. Posición inicial del robot 

 

4.4 Análisis cinemático con trayectorias interpoladas 

En este caso se han elegido 3 puntos máster; punto inicial (Figura 23), punto intermedio (Figura 24) 

y punto final (Figura 25). El número de interpolaciones con el que se actúa es de 50 interpolaciones 

en cada tramo (cada 2 puntos máster hay un tramo), resultando un total de 100 interpolaciones. 

El método de  interpolación utilizado es el de splines cúbicas con condición de aceleración  inicial y 

final igual a 0. 

Los 3 puntos máster y la función de interpolación son: 

%% PUNTO MÁSTER n1 %número de puntos máster numpos=3; POS=zeros(numpos,size(q',2)); POS(1,:) = q'; [q,nit]=NewtonRaphson(func,Jac,q0,qdep,CONSTR,P,U,tol,nitmax, ANGLE, DIST); % ROBOT is drawn in the initial position axes=[-2 2 -1 3 -1 3]; TITLE='3ARM 4DOF ROBOT; POS1 [m]'; drawMech(q,'b','r',P,U,LINES,UVECT,0.5,axes,TITLE)

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

77 | P á g i n a   

view(68,21); pause(1) %% PUNTOS MÁSTER 2 y siguientes (mínimo 3) % POS2 a1=-0.2*pi; a2=0.85*pi;a3=0.9*pi;s=DIST(1) qindval=[a1,a2,a3,s]; q(qind)=qindval'; q0=q; [q,nit]=NewtonRaphson(func,Jac,q0,qdep,CONSTR,P,U,tol,nitmax, ANGLE, DIST); POS(2,:) = q'; TITLE=['3ARM 4DOF ROBOT; POS2 [m]']; drawMech(q,'b','r',P,U,LINES,UVECT,0.5,axes,TITLE) pause(1); % POS3 a1=-0.5*pi; a2=1.2*pi;a3=pi/8;s=DIST(1); qindval=[a1,a2,a3,s]; q(qind)=qindval'; q0=q; [q,nit]=NewtonRaphson(func,Jac,q0,qdep,CONSTR,P,U,tol,nitmax, ANGLE, DIST); POS(3,:) = q'; TITLE=['3ARM 4DOF ROBOT; POS3 [m]']; drawMech(q,'b','r',P,U,LINES,UVECT,0.5,axes,TITLE) pause(1); %% INTERPOLACIÓN DE PUNTOS INTERMEDIOS A PARTIR DE PUNTOS MÁSTER % npint = {el número de interpolaciones entre 2 puntos máster} npint=51; tol=1e-12; nitmax=100; tpar=[0:size(POS,1)-1]'; % Método de Splines cúbicos con aceleración inicial y final constante [txp,Q]= splines3RobotAnglesInterp(POS,npint,qdep,... CONSTR,P,U,ANGLE,DIST,tpar,tol,nitmax);  

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

78 | P á g i n a   

 

Figura 24. Posición Máster número 2; posición intermedia 

 

Figura 25. Posición Máster número 3; posición final 

Obtenido  el  movimiento,  se  calculan,  mediante  fórmulas  de  diferenciación  numérica,  las 

velocidades  y  aceleraciones  independientes.  El  proceso  es  análogo  al  anteriormente  explicado, 

recordando la condición impuesta de que la aceleración en el instante t= 0 y en instante t= final, se 

ha  tomado  como  0.  Las  velocidades  y  aceleraciones  dependientes  se  calculan  resolviendo  las 

correspondientes derivadas de las ecuaciones de restricción. 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

79 | P á g i n a   

Se  comprueba,  de  nuevo,  en  una  tercera  validación  del modelo,  la  coherencia  del movimiento 

interpolado. 

La velocidad y aceleración salen de: 

% VELOCIDAD Y ACELERACIÓN %Velocidades y aceleraciones debidos a la interpolación realizada [Qvel,Qacc] = splines3RobotVelAccInterp(txp,Q,qdep,CONSTR,P,U,ANGLE,DIST)

4.5 Análisis dinámico inverso 

se desean aplicar  sólo las fuerzas debidas al peso, aunque se podrían haber incorporado fuerzas de 

otra naturaleza si se hubiese deseado. 

Las posiciones, velocidades y aceleraciones, proceden del cálculo cinemático. El efecto  inercial de 

las  fuerzas  tenidas  en  cuenta  (el  peso)  es  calculado.  Como  resultado  final  del  análisis  dinámico 

inverso, se obtienen  los pares que han de ejercer  los cuatro motores para replicar el movimiento 

prescrito con las fuerzas que estaban actuando. 

Para  proceder  con  el  análisis  dinámico  inverso,  hay  que  conocer  las  propiedades  físicas  de  los 

elementos que componen el robot. En las siguientes figuras, se muestran los resultados de pesos e 

inercias, a aplicar a la función inertia3ARM4DOFrobot. 

%% DINÁMICA INVERSA % cálculo de los pares generados por la trayectoria % Initial velocities are set to zero % velini = zeros(size(q)); qini=Q(1,:)'; velini=Qvel(1,:)'; %velini = zeros(size(q)); n=size(Q,2); % Inertia properties Inertia = inertia3ARM4DOFrobot(P); % Mass matrix, velocity dependent inertia forces and structure Inertia are computed %[M,Qw,Inertia]=massNew4(Inertia, q, velini, P, U); [M,Qw,Inertia]=massNew(Inertia, qini, velini, P, U); % Gravity forces are added %Qw(1:end-handles.qIND(1,1))=weigth(Inertia, P, U); Qw(1:end-4)=weight(Inertia, P, U); % The torques applied by the actuators are computed Tau = invDynamics(Q,Qvel,Qacc,CONSTR,... P,U,ANGLE,DIST,free,qdep,qind,Inertia,Qw); tau1=Tau(:,end-3); tau2=Tau(:,end-2); tau3=Tau(:,end-1); tau4=Tau(:,end);

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

80 | P á g i n a   

 

 

Figura 26. Propiedades físicas de la base del robot (body 1 o eslabón L0) 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

81 | P á g i n a   

 

Figura 27. Propiedades físicas del eslabón L1 (Body 2) 

 

 

Figura 28. Propiedades físicas del eslabón L2 (Body 3) 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

82 | P á g i n a   

 

Figura 29. Propiedades físicas del eslabón L3 (Body 4) 

 

 

Figura 30. Movimientos, velocidades, aceleraciones y pares de las coordenadas relativas, si Qmec_din_inv = Qmec_din_dir = 0 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

83 | P á g i n a   

4.6 Análisis dinámico directo 

Se  realiza  el  análisis  dinámico  directo,  utilizando  los  pares  procedentes  del  análisis  dinámico 

inverso,  sin  introducir  ninguna  fuerza  adicional.  Se  comparan  los  resultados  de  movimientos 

obtenidos con este método con  los  teóricos  (procedentes del análisis cinemático). Los  resultados 

obtenidos se muestran en Figura 31. 

 

 

Figura 31. Errores en ϕ1, ϕ2,   ϕ3 y s, entre posición  teórica  (calculada según  la cinemática) y posición  real  (según  la dinámica directa), si Qmec_din_inv = Qmec_din_dir = 0 

Como comprobación,  se ha  realizado  también  la prueba de comparar  resultados  si a  la dinámica 

inversa se le aplica una fuerza de mecanizado, adicional a las fuerzas inerciales debidas al peso del 

robot,  y  se ha  comparado  con  los  resultados  de  la  dinámica  directa  si  se  le  aplica  esas mismas 

fuerzas que en la dinámica inversa. El resultado es, como cabía esperar, el mismo (ver Figura 32). 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

84 | P á g i n a   

 

Figura 32. Errores en ϕ1, ϕ2,   ϕ3 y s, entre posición  teórica  (calculada según  la cinemática) y posición  real  (según  la dinámica directa), si Qmec_din_inv = Qmec_din_dir 

Por  lo  tanto,  el  movimiento  real  resultante,  al  no  haber  cambiado  ninguna  condición  de  las 

obtenidas  en  la  dinámica  inversa  (pares  de motor  y  fuerzas  inerciales  debidas  al  peso  de  los 

eslabones) ha de  ser el mismo al movimiento  teórico. Siendo así,  se considera que el  robot está 

listo para trabajar. 

4.7 Análisis dinámico directo de lazo cerrado 

Se  aplican  ganancias  en  forma  de  correcciones  en  posición  y/o  velocidad  para  eliminar  esas 

diferencias. Se evalúa el error de posición como la diferencia, en cada punto, entre el movimiento 

teórico  deseado  en  el modelo  cinemático  y  el movimiento  real  obtenido  para  cada  fuerza  de 

mecanizado y una ganancia concreta.  

La  fuerza  de mecanizado  elegida  es  de  35kg,  en  dirección  contraria  a  u4.  Dicha  fuerza  se  ha 

valorado que actúe desde el instante de tiempo t>1´8s hasta el final. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

85 | P á g i n a   

 

Figura 33. Esquema del robot con husillo de mecanizado 

El código del análisis directo, incluyendo el lazo cerrado es: 

%% DIRECT DYNAMIC % The dynamic simulation is carried out % It is necessary to have interpolated valid results: Q, Qvel and Qacc Kpos=10; Kvel=0; n=size(Q,2); % The dynamics is always computed out with angles qini = Q(1,:)'; velini=Qvel(1,:)'; y0=[Qvel(1,qind)'; Q(1,free)']; % control gains KPOS=Kpos; KVEL=Kvel; t1=clock; options=odeset('RelTol', 1e-06, 'AbsTol', 1e-06, 'Stats', 'on');

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

86 | P á g i n a   

[TT,YY]=ode113(@deriv3ARM4DOFrobot, txp, y0, options, CONSTR,P,U,ANGLE,DIST,Inertia,Qw,... n,free,fixed,qini,qind,qdep,Q,Qvel,Qacc,Tau,txp, KPOS,KVEL); t2=clock; disp(['cpu integration time: ',num2str(etime(t2,t1)),' s'])  

De la Figura 34 a la Figura 49 se produce se mapean los resultados de las diferentes tomas de datos, 

según sus condiciones. 

 

 

Figura 34. Qmec = ‐35kg (t>1´8s), Kpos=0, Kvel=0 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

87 | P á g i n a   

 

Figura 35. Qmec = ‐35kg (t>1´8s), Kpos=0, Kvel=0 

 

Figura 36. Qmec = ‐35kg (t>1´8s), Kpos=10, Kvel=0 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

88 | P á g i n a   

 

Figura 37. Qmec = ‐35kg (t>1´8s), Kpos=100, Kvel=0 

 

Figura 38. Qmec = ‐35kg (t>1´8s), Kpos=1000, Kvel=0 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

89 | P á g i n a   

 

Figura 39. Qmec = ‐35kg (t>1´8s), Kpos=10000, Kvel=0. tintegración= 68´045s 

 

Figura 40. Qmec = ‐35kg (t>1´8s), Kpos=0, Kvel=10 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

90 | P á g i n a   

 

Figura 41. Qmec = ‐35kg (t>1´8s), Kpos=0, Kvel=100, tintegración= 126´127s 

 

 

Figura 42. Qmec = ‐35kg (t>1´8s), Kpos=0, Kvel=1000, tintegración= 1287’115s 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

91 | P á g i n a   

 

Figura 43. Qmec= ‐35kg (t>1´8s), Kpos=100, Kvel=100, tintegración =129´022s 

 

Figura 44. Qmec= ‐70kg (t>1´8s), Kpos=0, Kvel=0 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

92 | P á g i n a   

 

Figura 45. Qmec= ‐70kg (t>1´8s), Kpos=10, Kvel=0 

 

Figura 46. Qmec= ‐70kg (t>1´8s), Kpos=100, Kvel=0 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

93 | P á g i n a   

 

Figura 47. Qmec= ‐70kg (t>1´8s), Kpos=1000, Kvel=0 

 

Figura 48. Qmec= ‐70kg (t>1´8s), Kpos=10000, Kvel=0, tintegración= 74´125s 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

94 | P á g i n a   

 

Figura 49. Qmec= ‐70kg (t>1´8s), Kpos=100, Kvel=100, tintegración= 127´95s 

 

 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

95 | P á g i n a   

5 Resultados 

Se mapea el error de posición obtenido para cada fuerza de mecanizado y las diferentes ganancias 

previstas,  graficando  la mejor  precisión  que  puede  dar  el  robot  para  cada  operación  que  se  le 

requiere, y en qué condiciones. 

 

 

Las gráficas que se consideran interesantes son: 

psi1 teórico: ‐0´5*pi rad

psi2 teórico: 1´2*pi rad

psi3 teórico: pi/8 rad

s teórica: 400 mm

Qmec (en valor 

absoluto) [kg]Kpos Kvel εpsi1 [rad] εpsi2 [rad] εpsi3 [rad] εs [mm]

tintegración 

[s]

0 0 0 0,000347 0,000425 0,001974 6E‐11

35 0 0 0,000347 0,000425 0,807000 6E‐11

35 100 0 0,005065 0,014077 0,192450 4E‐12

35 1000 0 0,002424 0,009785 0,015584 3E‐12

35 10000 0 0,001297 0,001895 0,002725 2E‐13                 68   

35 0 10 0,005072 0,014488 0,217160 1E‐12

35 0 100 0,001463 0,007973 0,027999 0E+00               126   

35 0 1000 0,000983 0,001752 0,002882 0E+00           1.287   

35 100 100 0,001309 0,007665 0,025773 0E+00               129   

70 0 0 0,000347 0,000425 0,745490 6E‐11

70 10 0 0,002099 0,005342 0,716360 4E‐12

70 100 0 0,007951 0,022442 0,307140 4E‐12

70 1000 0 0,004661 0,018805 0,037316 3E‐12

70 10000 0 0,002578 0,003766 0,005311 4E‐13                 74   

70 100 100 0,002447 0,014938 0,049741 0E+00               128   

Qmec (valor 

absoluto) [kg]Kpos Kvel εpsi1 [rad] εpsi2 [rad] εpsi3 [rad] εs [mm]

tintegración 

[s]

35 0 10 0,005072 0,014488 0,217160 1E‐12

35 0 100 0,001463 0,007973 0,027999 0E+00               126   

35 0 1000 0,000983 0,001752 0,002882 0E+00           1.287   

35 100 100 0,001309 0,007665 0,025773 0E+00               129   

70 100 100 0,002447 0,014938 0,049741 0E+00               128   

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

96 | P á g i n a   

 

 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

97 | P á g i n a   

 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

98 | P á g i n a   

6 Conclusiones 

Con los resultados obtenidos, se desprenden las siguientes conclusiones: 

‐ Cuanto mayor es la fuerza de mecanizado que se precisa, el error es mayor para una misma 

ganancia; la ganancia tiene que ser aumentada para minimizar el error. 

‐ Si se aplica una ganancia, la mejora se produce en todas las coordenadas. 

‐ Es necesario aplicar valores altos de ganancia de posición, en torno a 10.000 para reducir de 

forma importante los errores. 

‐ La ganancia de velocidad aplicada con valores de ganancia de posición 0,  no tiene un efecto 

significativo y penaliza gravemente el tiempo de respuesta si toma valores altos. 

‐ La  ganancia  de  velocidad  en  valores  bajos,  combinada  con  ganancia  alta  de  posición,  da 

buenos resultados. 

‐ Si  el  control de  lazo  cerrado  fuese  lo  suficientemente  rápido  en dar  la  respuesta, podría 

llegarse a tolerancias de posición equiparables a los CNCs. 

 

  

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

99 | P á g i n a   

7 Posibles aplicaciones 

Se está interesado en estudiar las posibilidades de apoyo en el mecanizado mediante robots. Tiene 

sus dificultades, porque son mucho más flexibles, pero presentan ventajas en cuanto a la economía, 

equilibrado  de  ciclos  de  mecanizado,  e  incluso  incorporación  directamente  a  las  células  de 

fundición. 

Como futuras líneas de investigación en ese sentido, a la vista de los resultados obenidos, sería; el 

estudio  del  comportamiento  con movimiento  en  2  etapas  (en  cada  etapa,  algún motor  estaría 

inactivo);  aplicación  de  otros mecanizados  ;  análisis  del  robot  con  trayectorias  interpoladas  con 

condición de velocidad inicial y final 0; modelización como sólido no rígido; y diseño del modelo de 

robot estándar antropomórfico de 6 grados de libertad. 

 

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

100 | P á g i n a   

8 Anexos 

Las funciones utilizadas para la modelización en Matlab están recogidas en Tabla 14 

Tabla 14. Funciones utilizadas en el algoritmo 

 

 

 

FUNCIÓN definición

formFiPU4 fi=formFiPU4(q, CONSTR, P, U, ANGLE, DIST)

formFiqPU4 Fiq=formFiqPU4(q, CONSTR, P, U, ANGLE, DIST, qdep)

formFiqdqdPU4 c=formFiqdqdPU4(q, v, CONSTR, P, U, ANGLE, DIST)

NewtonRaphson [q,nit]=NewtonRaphson(func,Jac,q0,qdep,CONSTR,P,U,tol,nitmax, ANGLE, DIST)

drawMech drawMech(q,'b','r',P,U,LINES,UVECT,0.5,axes,TITLE)

splines3RobotAnglesInte

rp

[txp,Q]= splines3RobotAnglesInterp(POS,np,qdep, 

CONSTR,P,U,ANGLE,DIST,tpar,tol,nitmax)

splines3b [txp,psi1]=splines3b(tpar,POS(:,nq‐3),npint);

splines3RobotVelAccInter

p[Qvel,Qacc] = splines3RobotVelAccInterp(txp,Q,qdep,CONSTR,P,U,ANGLE,DIST);

inertia3ARM4DOFrobot inertia3ARM4DOFrobot(P);

massNew [M,Qw,Inertia]=massNew4(Inertia, q, velini, P, U);

weight Q=weight(Inertia, P,  U)

invDynamics Tau = invDynamics(Q,Qvel,Qacc,CONSTR,P,U,ANGLE,DIST,free,qdep,qind,Inertia,Qw)

ode113[TT,YY]=ode113(@deriv3ARM4DOFrobot, txp, y0, options, 

CONSTR,P,U,Inertia,Qw,n,free,fixed,qini,qind,qdep,Q,Qvel,Qacc,Tau,txp, KPOS,KVEL)

deriv3ARM4DOFrobotyp=deriv3ARM4DOFrobot(t,y, CONSTR,P,U,ANGLE, 

DIST,Inertia,Qw,N,free,fixed,qini,qind,qdep,Q,Qvel,Qacc,Tau,txp, KPOS,KVEL)

Caracterización de un robot para aplicaciones de mecanizado con requerimientos de tolerancias  

101 | P á g i n a   

9 Referencias 

 

GARCÍA DE  JALÓN DE LA FUENTE,  J. Análisis cinemático y dinámico de sistemas multicuerpo 3‐D: 

aplicación a la dinámica vehicular. Mecánica Computacional, Máster de Ingeniería Mecánica. ETSII‐

INSIA, 2009.  

GARCÍA  DE  JALÓN  DE  LA  FUENTE;  J:  Interpolación  y  aproximación  de  funciones.  ETSII‐UPM 

Departamento de Matemática Aplicada a la Ingeniería Industrial; 2014. 

GARCÍA DE  JALÓN DE  LA  FUENTE,  J.,  BAYO,  E.  Kinematic  and Dynamic  Simulation  of Multibody 

Systems. Springer‐Verlag, New York, 2011. 

GARCÍA DE  JALÓN DE  LA  FUENTE,  J.,  SHIMIZU, N. Matlab  programs  for  kinematic  and  dynamic 

multibody simulation. ETSII  ‐UPM and Motion Labo Inc, 2007. 

GARCÍA DE JALÓN DE LA FUENTE, J., SHIMIZU, N. Numerical Methods for Kinematic and Dynamic of 

3D Multibody Systems. ETSII‐UPM and Motion Labo Inc, 2007.