ROS2 industrial manipulation setup

In deze module leer je hoe je een robotarm kunt besturen met behulp van ROS2. We gebruiken de UFactory xarm6 robotarm in combinatie met een vacuum grijper.

We beginnen met het verkennen van de virtuele omgeving

ros2 launch manipulation view_environment.launch.py

Opdracht 1

In deze opdracht ga je een nieuwe MoveIt configuratie aanmaken voor de robotarm.

Voordat we de robot kunnen besturen, moeten we een aantal configuratie bestanden aanmaken met behulp van de MoveIt Setup Assistant. Deze bestanden bevatten informatie over de robot, de omgeving en de bewegingen die de robot kan maken.

https://moveit.picknik.ai/main/doc/examples/setup_assistant/setup_assistant_tutorial.html

Je kunt een nieuwe configuratie aanmaken met het volgende commando:

ros2 launch moveit_setup_assistant setup_assistant.launch.py

Vervolgen kies je Create New MoveIt Configuration Package en selecteer je het urdf-bestand van de robot:

/home/student/ros2_industrial_ws/src/ROS2_industrial/4_manipulation/manipulation/urdf/environment.urdf.xacro

En kies je Load Files. Nu wordt het urdf-bestand van de robot ingeladen en zie je aan de linkerkant het robot-model.

Rechts staan de verschillende onderdelen van de configuratie die je kunt aanpassen. Voor deze workshop is het voldoende om alleen de volgende onderdelen aan te passen:

  • Self-Collisions:

    • Lees de “Optimize Self-Collision Checking” instructies

    • Klik op “Generate Collision Matrix”

    • Bestudeer de gegenereerde matrix door op de verschillende items te klikken

  • Virtual Joints (optioneel):

    • Voeg een virtual joint toe tussen de “world” en de “base_link” van de robot, gebruik de Add Virtual Joint knop

    • Kies als type “fixed”

  • Planning Groups:

    • Maak een nieuwe planning group aan met de “Add Group” knop

    • Kies als type “Joint Model Group”

    • Geef de groep een naam, bijvoorbeeld “xarm6”

    • Kies voor Kinematic Solver: “kdl_kinematics_plugin/KDLKinematicsPlugin”

    • Kies voor Group Default Planner: “RRTConnect”

    • Voer “Add Kin. Chain” uit

    • Selecteer de “base_link” als Start Link

    • Selecteer de “vacuum_gripper1_suction_cup” als End Link

    • Klik op “Save”

  • Robot Poses:

    • Maak een nieuwe 3 poses aan met de Pose Names “Home”, “Left”, “Right” aan door de “Add Pose” knop

    • Stel de joint waarden in voor elke pose door de sliders te gebruiken

    • Klik op “Save”

  • End Effectors:

    • Dit wordt gebruikt om de grijper te definiëren, maar is voor deze workshop niet strikt noodzakelijk

  • Passive Joints:

    • Doe niets, deze robot heeft geen passive joints

  • ros2_control URDF Modifications:

    • Doe niets, deze robot heeft geen ros2_control componenten

  • ROS 2 Controllers:

    • Kies “Auto Add JointTranjectryController Controllers For Eacch Planning Group”

  • MoveIt Controllers:

    • Kies “Auto Add MoveItSimpleControllerManager For Each ROS2 Controller”

  • Perception;

    • Doe niets, we gebruiken geen perceptie in deze workshop

  • Launch Files:

    • Zorg ervoor dat alle Launch Files zijn geselecteerd

  • Author Information:

    • Vul je naam en e-mailadres in

  • Configuration Files:

    • Selecteer Configuration Save Path:

    /home/student/ros2_industrial_ws/src
* Klik op "Generate Package"
* Sluit de MoveIt Setup Assistant af    

Je hebt nu een nieuwe MoveIt configuratie aangemaakt. Deze bevindt zich in de volgende directory:

/home/student/ros2_industrial_ws/src/workshop_moveit_config

Alvorens de nieuwe configuratie te gebruiken, moet je de de package bouwen met colcon build en velvolgens de omgeving opnieuw sourcen:

cd ~/ros2_industrial_ws
colcon build --symlink-install
source install/setup.bash

Je kunt de configuratie bewerken met het volgende commando:

ros2 launch workshop_moveit_config setup_assistant.launch.py (dit werkt helaas niet altijd)

Voor de volgende opdrachten gebruiken we een al voorbereide MoveIt configuratie.

Je kunt deze configuartie bewerken met het volgende commando:

ros2 launch manipulation_moveit_config setup_assistant.launch.py 

Aandachtspunten:

  • De MoveIt configuratie is gebaseerd op de urdf.xacro file in de manipulation package

  • De MoveIt configuratie is gebaseerd op de planning group “arm” die de kinematic chain van “base_link” tot “link_eef” bevat

  • Pas in de confugratie alleen de volgende onderdelen aan:

    • Self-Collisions

    • Configuration Files, zorg ervoor dat alleen het volgende bestand geselecteerd zijn:

      • config/manipulation_environment.srdf. Let op: De andere bestanden zijn niet correct geconfigureerd en kunnen problemen veroorzaken.

Bestudeer de “Robot Poses” in de setup assistant. Deze poses worden gebruikt in de opdrachten. Voeg eventueel extra “eigen” pose toe. De poses worden opgeslagen in het bestand:

config/manipulation_environment.srdf

van de manipulation package. Bestudeer dit bestand, je kunt hier ook handmatig poses aan toevoegen.