miércoles, 10 de agosto de 2016

Creación del modelo del robot RV-3SB para el toolbox ARTE de MATLAB.

En esta entrada vamos a realizar el modelado del robot Mitsubishi RV-3SB, presente en el laboratorio de Manufactura Integrada por Computadora de la UDB, por medio de una librería para MATLAB llamada ARTE (A Robotics Toolbox for Education). ARTE es una caja de herramientas con un enfoque didáctico en el área de robótica industrial por lo que tiene aplicación en la asignatura de Fundamentos de Robótica que impartimos en la UDB o en cualquier otra área afín.

I. Obtención del modelo CAD.


1. Vamos a la página de Mitsubishi y descargamos los archivos CAD del robot RV-3SB, en el formato STEP, que luego debemos convertir al formato STL. 

2. Para convertir los archivos de cada eslabón al formato STL vamos a usar FreeCAD. Debemos guardar cada eslabón desde la base hasta el último con el nombre link0_base.stl, link1_base.stl, link2_base.stl y así sucesivamente. Ejecutamos el programa FreeCAD y abrimos el archivo del CAD del robot RV-3SB. 
3. Aparecerá el robot completo y a la izquierda el árbol con todos los elementos del ensamble.
    4. Observamos que el robot no está alineado sobre los ejes Z y X, por lo que el siguiente paso es rotarlo para que quede alineado correctamente tal como se sitúa el marco de referencia en la base del robot real. Seleccionamos todos los componentes presentes en el árbol.

    5. Hacemos clic sobre el botón de configuración que aparece en la siguiente imagen resaltado en rojo.


    6. Configuramos inicialmente una rotación alrededor del eje X de 90º y no nos olvidemos de seleccionar la casilla “Aplicar cambios incrementales a la posición de los objetos” para que todos giren de igual manera pero sin cambiar su posición relativa a la base. Presionamos el botón Aplicar y luego el de Aceptar.

    7. A continuación giramos otros 90º alrededor de eje Z
         Presione el botón Aplicar y luego Aceptar.

    8. Al finalizar las rotaciones debemos tener un modelo como el que se muestra a continuación, alineado sobre el eje Z y el X.


    II. Creación de los eslabones


    9. El siguiente paso es crear cada uno de los eslabones que tendrá el robot. Seleccionamos todos los componentes del árbol, a excepción de los primeros 3, vea la siguiente figura.
    Una vez seleccionados, presionamos la barra espaciadora del teclado para conmutar los objetos a invisible, al volver a presionar la barra espaciadora los objetos deben ser visibles de nuevo.

    10. A continuación seleccionamos los primeros tres componentes del árbol del proyecto:
    Vamos al menú Archivo y seleccionamos la opción Exportar archivo, escogemos el tipo de archivo a guardar como STL Mesh y colocamos el nombre “link0_base

    11. Repetimos el paso anterior para cada uno de los demás eslabones del robot, tal como se muestra en las siguientes imágenes y guardamos cada uno con los nombres: link1_base, link2_base, link3_base, link4_base, link5_base y link6_base, respectivamente.


    III. Redimensionamiento del número de caras de las mallas que forman los eslabones.


    Algunos de los eslabones poseen mallas muy densas, que le llevará mucho tiempo a MATLAB para graficarlas, por lo que el siguiente paso es reducir la cantidad de parches que forman las mallas de los eslabones. Para eso se usará el programa MeshLab.

    12. Ejecutamos el programa MeshLab y en el menú File, seleccionamos New Empty Project y a continuación la opción Import Mesh…

    13. Seleccionamos el archivo del primer eslabón que creamos del robot “link0_base”. Al aparecer el cuadro de diálogo de Procesamiento Post Apertura, presionamos el botón OK.

    14. Una vez cargado el primer eslabón le cambiaremos el número de parches que forman su malla, escojemos la opción Quadric Edge Collapse Decimation del menú Filters.

    15. Revisamos que en la casilla Target number of faces el valor sea menor o igual que 1000, si no es así lo cambiamos a 1000 y hacemos clic en el botón Apply y luego sobre Close.

    16. Vamos al menú File y allí escojemos la opción Export Mesh… y deshabilitamos el parámetro Binary encoding para que el archivo se guarde en formato de texto y presionamos el botón OK.

    17. Para redimensionar el número de caras de las mallas de los otros eslabones, primero debemos cerrar el proyecto.

    18. Luego repetimos el procedimiento, desde el numeral 12, para el siguiente eslabón “link1_base” y así sucesivamente hasta terminar con el eslabón “link6_base


    IV. Creación del robot RV-3SB en la caja de herramientas ARTE.




    19. Para crear un nuevo robot, vamos a la carpeta de ARTE y allí copiamos el archivo: robots/MITSUBISHI/rv-6s/parameters.m a la nueva carpeta robots/MITSUBISHI/rv-3sb/ además de los archivos link0_base.stl, link1_base.stl, link2_base.stl, … y link6_base.stl, que ya tenemos del paso anterior.


    20. Abrimos el archivo parameters.m para editar los parámetros adecuados. Cambiamos el nombre del robot:

       robot.name='Mitsubishi RV-3SB 6DOF robotic arm';

    Debemos colocar los parámetros de DH de acuerdo a lo que está en el blog de la Ing. Tania Martínez,  pero cambiando las dimensiones que posee el modelo RV-3SB:
    robot.DH.theta= '[q(1) q(2)-pi/2 q(3) q(4) q(5) q(6)]';
    robot.DH.d='[0.350 0 0 0.270 0 0.085]';
    robot.DH.a='[0.095 0.245 0.135 0 0 0]';
       robot.DH.alpha= '[-pi/2 0 -pi/2 pi/2 -pi/2 0]';

    21. También debemos modificar el nombre de la función para calcular la cinemática inversa:
       robot.inversekinematic_fn = 'inversekinematic_rv_3sb(robot, T)';
    En una entrada posterior realizaremos esta función para que trabaje adecuadamente para el robot RV-3SB.

    22. Debemos colocar los límites de los ángulos de las articulaciones, las máximas velocidades de las articulaciones y la máxima velocidad lineal, según las especificaciones del robot.



    %minimum and maximum rotation angle in rad
    robot.maxangle =[deg2rad(-170) deg2rad(170); %Axis 1, minimum, maximum
                    deg2rad(-90) deg2rad(135); %Axis 2, minimum, maximum
                    deg2rad(-20) deg2rad(171); %Axis 3
                    deg2rad(-160) deg2rad(160); %Axis 4
                    deg2rad(-120) deg2rad(120); %Axis 5
                    deg2rad(-360) deg2rad(360)]; %Axis 6

    %maximum absolute speed of each joint rad/s or m/s
    robot.velmax = [deg2rad(250); %Axis 1, rad/s
                    deg2rad(187); %Axis 2, rad/s
                    deg2rad(250); %Axis 3, rad/s
                    deg2rad(412); %Axis 4, rad/s
                    deg2rad(412); %Axis 5, rad/s
                    deg2rad(660)];%Axis 6, rad/s
    % end effectors maximum velocity
       robot.linear_velmax = 5.5; %m/s

    23. Por último también cambiamos el color del robot:

       robot.graphical.color = [238 232 208]./255;
    Guardamos y cerramos el archivo parameters.m.

    24. Ejecutamos MATLAB y buscamos la carpeta ARTE en donde instalamos la caja de herramientas.

    25. Inicializamos la librería, escribiendo en la línea de comandos:

       >> init_lib

    26. Presentamos en pantalla el directorio de trabajo actual con el comando:

       >> pwd

    27. Luego debemos transformar los sistemas de referencia de los eslabones al sistema de referencia de la base, para ello usaremos la función transform_to_own considerando que las medidas de los modelos están en milímetros y queremos pasarla a metros.

       >> transform_to_own('mitsubishi','rv-3sb',1000)
    Luego de ejecutar la instrucción se deben crear los eslabones link0, link1, link2, link3, link4, link5 y link6.


    28. Después de crear los eslabones se abrirá el modelo del nuevo robot


    29. Vamos a probar la cinemática directa del nuevo robot, para ello cargamos el archivo de parameters.m de la carpeta robots/MITSUBISHI/rv-3sb/ por medio de la función:

      >> robot=load_robot



    30. Aparecerá el modelo tridimensional del robot en MATLAB:


    31. Por último comprobaremos el movimiento del robot usando el teaching box simulado que posee la librería ARTE, escribimos el siguiente comando:

       >> teach
    Al desplazar las barras para el movimiento de las articulaciones q_1, q_2, … y q_6 se debe mover el modelo del robot hasta esas posiciones articulares.


    32. También podemos volver al robot transparente para visualizar los sistema de coordenadas 0, 1, 2, … y 6, para ello escribimos:

       >> robot.graphical.draw_transparent=1

    33. Si movemos el robot este se verá transparente:

    Para quitar la transparencia podemos colocar el valor del parámetro de nuevo en 0.
       >> robot.graphical.draw_transparent=0


    V. Conclusiones.


    A partir del modelo CAD, dado por el fabricante del robot, y la parametrización Denavit-Hartenberg, podemos modelar la cinemática directa de cualquier robot industrial serie, utilizando la caja de herramientas ARTE y el programa MATLAB, de una manera didáctica que fortalezca las competencias de los estudiantes que estén cursando asignaturas tales como Fundamentos de Robótica.







    6 comentarios:

    1. Es muy bueno tu articulo, pero desafortunadamente no he podido replicarlo con el CAD de mi modelo. El CAD aparece a un lado de los ejes de rotacion y no se como ubicarlos.

      ResponderEliminar
    2. Ya encontré el error que resuelve mi anterior inquietud. Al momento de unir las piezas en el programa solidworks se debe montar la base del brazo robotico sobre el eje de coordenadas establecido por el programa, así de simple, solo tuve que volver a unir las piezas del brazo de nuevo. Les dejo el comentario, debido a que no falta algún compañero que presente la misma cuestión al momento de adicionar algún robot diseñado por sus propios medios y no descargados de las paginas de empresas especialistas en el tema.

      ResponderEliminar
    3. le mando a correr y me pide cargar 'robot' que datos van en la palabra robot talvez alguien me puede ayudar le agradezco mucho, excelente aporte.

      ResponderEliminar