Este repositorio tiene como objetivo hacer uso de ROS para manipular un brazo Robótico Dobot CR5. Este movimiento se ve implementa visión computacional para la detección de arucos y hacer que el brazo se mueva a la ubicación detectada.
cd catwkin_ws
git clone https://github.com/Dobot-CR-Tec-CEM/TecCEM_DobotCR5
catkin_make
Es importante que se defina desde el bash el tipo de modelo de brazo que se va a utilizar. En el repositorio se pueden lanzar en simulación sin gripper, los modelos CR3, CR5 y CR10.
Ejecutar una única vez. El tipo se puede cambiar con los otros modelos disponibles: cr3, cr5, cr10. Para los fines de este proyecto y por la automatización del repositorio original, se definió a cr5_gripper.
echo "export DOBOT_TYPE=cr5_gripper" >> ~/.bashrc
source ~/.bashrc
Se hace un source del workspace
source devel/setup.bash
Para lanzar la simulación de Gazebo con los controladores de Moviet y Rviz es el siguiente:
Mundo de gazebo diseñado. Es importante señalar que este mundo Lanza un tópico de una cámara Kinect v1 que se encuentra montada en la parte superior del área de trabajo. El gripper no se mueve
roslaunch arm_manipulator gazebo_world.launch
Para levantar moveit con los controladores definidos.
roslaunch cr5_gripper_moveit cr5_gripper_moveit_planning_execution.launch sim:=True
Para abrir Rviz en la configuración previamente definido.
roslaunch cr5_gripper_moveit moveit_rviz.launch config:=true
Para lanzar el nodo que realiza el movimiento del brazo
rosrun arm_manipulator interaction.py
Para ejecutar los nodos que cuentan
Nodo que se conecta via TCP al controlador del Brazo CR5.
roslaunch dobot_bringup bringup.launch
Para lanzar moveit con la configuración del brazo fsico y lanzar RVIZ con la configuración previamente diseñada.
roslaunch dobot_moveit moveit.launch config:=true
Es importante asegurarse que la computadora esté conectada al robot y pueda enviar instrucciones por lo que es necesario que en Rviz se agrege un panel para habilitar y deshabilitar el brazo.
En caso de no escuchar un click del brazo, volver a ejecutar las primeras dos líneas.
Para lanzar el nodo que lee los frames de la cámara montada en la parte superior del área de tareas del robot.
roslaunch usb_cam usb_cam-test.launch
Para lanzar el nodo que identifica los arucos y manda sus coordenadas en en /pose_aruco
rosrun arm_manipulator aruco_coords.py
Nodo principal que realiza la trayectoria del robot y que ejecuta varios servicios para abrir y cerrar el gripper, así como para definir la carga mínima en el gripper.
rosrun arm_manipulator interaction.py
Cambios de controladores en gripper para simulación en gazebo. La versión para melodic es Gazebo 9, el gripper originalmente está hecho para Kinetic, gazebo 7.