Resumen
The present invention relates to a force control system and method for robotic manipulators. The method comprises: initializing (102) the position (u) of a virtual guide (6) on a predetermined spline (5); obtaining (104) a position and orientation of an end effector (4); updating (108) the position (u) and speed (I) of the virtual guide (6) on the spline (5) based on the projection of the vector in the direction tangent (d t ) to the spline (5) from the virtual guide (6) to the end effector (4); obtaining (110) a reference system centered on the virtual guide (6) with one tangential axis (eT) and two normal axes (eN1, eN2) to the spline (5); calculating (112) a distance in rotation (DR) from the orientation of the end effector (4) to the orientation of the virtual guide (6); calculating (114) a distance in translation (d N 1, d N 2) on the normal axes from the end effector (4) to the virtual guide (6); calculating (116) a Cartesian impedance force in rotation (II) and a Cartesian impedance force in translation (III) on the normal axes (eN1, eN2) using the distance in rotation (DR) and the distance in translation (d N 1 d N 2); and applying (118) the forces to the robotic manipulator (1).
Reivindicaciones
REIVINDICACIONES 1 . Un método de control de fuerza de manipuladores robóticos con al menos seis grados de libertad, caracterizado por que comprende inicializar (102) la posición (u) de una guía virtual (6) a un punto inicial de un spline (5) predeterminado asociado a puntos de un grupo euclidiano especial SE(3) incluyendo una posición de traslación y una posición de rotación, e iterativamente: obtener (104) una posición de traslación (P¡) y una posición de rotación (R¡) de un efector final (4) de un manipulador robótico (1); obtener (106) un vector desde la posición de traslación del spline (5) en la guía virtual (6) hasta la posición de traslación (P¡) del efector final (4), y proyectar dicho vector en la dirección tangente (d<f>) al spline (5) en la posición de la guía virtual (6); actualizar (108) la posición (u) y la velocidad (ú) de la guía virtual (6) en el spline (5) en función del vector proyectado; obtener (110) un sistema de referencia centrado en la posición (u) de la guía virtual (6) con un eje tangente (e-r) al spline (5) y dos ejes normales (6NI, e<N>2) al spline (5); calcular (112) una distancia en rotación (DR) desde la posición de rotación (<e>/) del efector final (4) hasta la posición de rotación (R<t>) del spline (5) en la guía virtual (6); calcular (114) una distancia en traslación (d<N1>, d<Nz>) en los ejes normales desde la posición de traslación del efector final (4) hasta la posición de traslación del spline (5) en la guía virtual (6); calcular (116), utilizando la distancia en rotación (DR) y la distancia en traslación (d<N1>, d<Nz>) en los ejes normales (6NI , eN2), una fuerza de impedancia cartesiana en rotación (f ) y una fuerza de impedancia cartesiana en traslación (f<N1>, f<N2l>) en los ejes normales (6NI , 6N2) con los ejes del sistema de referencia como ejes principales de la impedancia; y aplicar (118) las fuerzas de impedancia cartesiana en rotación y en traslación al manipulador robótico (1). 2. El método de la reivindicación 1 , caracterizado por que el spline (5) es obtenido en una etapa de configuración (130) que comprende: registrar (132) como puntos SE(3) una pluralidad de posiciones de traslación (Pi; P2; ... ; PN) y de rotación (R1; R2; ... ; RN) del efector final (4) durante la realización de un movimiento; y generar (134) el spline (5) a partir de dichas puntos SE(3). 3. El método según cualquiera de las reivindicaciones anteriores, caracterizado por que comprende calcular una fuerza de impedancia cartesiana en traslación (f<dt>) en el eje tangente (e-r) al spline (5). 4. El método según la reivindicación 3, donde calcular una fuerza de impedancia cartesiana en traslación (f<dt>) en el eje tangente (e-r) comprende: obtener una posición objetivo (u<obj>) de la guía virtual (6) para el instante actual (t); calcular (142) una distancia (d) a lo largo del spline (5) desde la posición (u) de la guía virtual (6) hasta la posición objetivo (u<obJ>); y calcular (144) la fuerza de impedancia cartesiana en traslación (f<dt>) en el eje tangente (e-r) utilizando dicha distancia (d). 5. El método según la reivindicación 3, donde calcular una fuerza de impedancia cartesiana en traslación (f<dt>) en el eje tangente (e-r) comprende: obtener la velocidad (v<dt>) del efector final 4 en el eje tangente (e-r); y calcular (146) la fuerza de impedancia cartesiana en traslación (f<dt>) en el eje tangente (e-r) como una fuerza opuesta a dicha velocidad (v<dt>) multiplicada por un parámetro de fricción W- 6. Un sistema de control de fuerza de manipuladores robóticos con al menos seis grados de libertad, caracterizado por que comprende: una unidad de control (62) configurada para: inicializar la posición (u) de una guía virtual (6) a un punto inicial de un spline (5) predeterminado asociado a puntos de un grupo euclidiano especial SE(3) incluyendo una posición de traslación y una posición de rotación, e iterativamente: obtener una posición de traslación (P¡) y una posición de rotación (R¡) de un efector final (4) de un manipulador robótico (1); obtener un vector desde la posición de traslación del spline (5) en la guía virtual (6) hasta la posición de traslación (P¡) del efector final (4), y proyectar dicho vector en la dirección tangente (d<f>) al spline (5) en la posición de la guía virtual (6); actualizar la posición (u) y la velocidad (ú) de la guía virtual (6) en el spline (5) en función del vector proyectado; obtener un sistema de referencia centrado en la posición (u) de la guía virtual (6) con un eje tangente (e-r) al spline (5) y dos ejes normales (6NI , e<N>2) al spline (5); calcular una distancia en rotación (DR) desde la posición de rotación (Ref) del efector final (4) hasta la posición de rotación (R<t>) del spline (5) en la guía virtual (6); calcular una distancia en traslación (d<N1>, d<Nz>) en los ejes normales desde la posición de traslación del efector final (4) hasta la posición de traslación del spline (5) en la guía virtual (6); calcular, utilizando la distancia en rotación (DR) y la distancia en traslación (d<N1>, d<Nz>) en los ejes normales (6NI , eN2), una fuerza de impedancia cartesiana en rotación (f^) y una fuerza de impedancia cartesiana en traslación ( vi. v2>)<en>l°<s>ejes normales (6NI , e<N>2) con los ejes del sistema de referencia como ejes principales de la impedancia; y un actuador (68) configurado para aplicar las fuerzas de impedancia cartesiana en rotación y en traslación al manipulador robótico (1). 7. El sistema de la reivindicación 6, donde la unidad de control (62) está configurada para: registrar como puntos SE(3) una pluralidad de posiciones de traslación (Pi; P2; ; PN) y de rotación (R1; R2; ... ; RN) del efector final (4) durante la realización de un movimiento en una etapa de configuración (130); generar el spline (5) a partir de dichas puntos SE(3); y almacenar el spline (5) en una memoria (66). 8. El sistema según cualquiera de las reivindicaciones 6 a 7, caracterizado por que la unidad de control (62) está configurada para calcular una fuerza de impedancia cartesiana en traslación (f<dt>) en el eje tangente (e-r) al spline (5). 9. El sistema según la reivindicación 8, donde la unidad de control (62) está configurada para: obtener una posición objetivo (u<obj>) de la guía virtual (6) para el instante actual (t); calcular una distancia (d) a lo largo del spline (5) desde la posición (u) de la guía virtual (6) hasta la posición objetivo (u<obJ>); y calcular la fuerza de impedancia cartesiana en traslación (/<dt>) en el eje tangente (e-r) utilizando dicha distancia (d). 10. El sistema según la reivindicación 8, donde la unidad de control (62) está configurada para: obtener la velocidad (v<dt>) del efector final 4 en el eje tangente (e-r); y calcular la fuerza de impedancia cartesiana en traslación (/<dt>) en el eje tangente (e-r) como una fuerza opuesta a dicha velocidad (v<dt>) multiplicada por un parámetro de fricción (/z). 11. Un manipulador robótico con al menos seis grados de libertad, que incorpora el sistema de control de fuerza (60) de cualquiera de las reivindicaciones 6 a 10. 12. Un producto de programa que comprende medios de instrucciones de programa para llevar a cabo el método de cualquiera de las reivindicaciones 1 a 5 cuando el programa se ejecuta en un procesador. 13. Un medio de soporte de programas, que almacena el producto de programa según la reivindicación 12.