universidad politÉcnica de madrid …oa.upm.es/33592/1/caracterización de un robot para...
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.