This repository contains a set of prepared packages and files which can be used to integrate a custom end-effector to a TIAGo/TIAGo++ robot. Once the apropriate modifications are made, deploy all three packages to the robot and select custom for the end effector type on the Web Commander.
This repository is comprised of three different packages (3 for each TIAGo model), which conatin a wrapper for the URDF description of the end-effector, configuration files and MoveIt configuration for the new configuration.
TIAGo++
To make your lives easier, we added in each of the following packages some comments inside files in order to let you find faster what to modify. Look for TODO: keyword to localize the tips.
This package contains a simple wrapper to include the URDF description of the custom end-effector, so the system knows its new configuration. This package must contain the following file/s: TIAGo
urdf/end-effector.urdf.xacro- This file must contain a xacro macro named
end_effector, with a paramater namedparent, which contains the name of the previous link in the kinematic chain of the arm; and anorigintag as its content, with the root position of the custom end-effector.
- This file must contain a xacro macro named
TIAGo++
urdf/end-effector-<side>.urdf.xacro- This files must contain a xacro macro named
end_effector_<side>, with a paramater namedparent, which contains the name of the previous link in the kinematic chain of the arm; and anorigintag as its content, with the root position of the custom end-effector.
- This files must contain a xacro macro named
This package contains configuration files need for MoveIt to interact properly with the new end-effector.
TIAGo
-
controllers/controllers_custom.yaml- This file contains a list of controllers known to MoveIt. The default
arm_controller,torso_controllerandhead_controllershould be left on the file, but additional controllers required by the end-effector can be added here.
- This file contains a list of controllers known to MoveIt. The default
-
srdf/tiago_custom.srdf- This file contains the
srdfdefinition for the complete robot, defining move groups and blacklisted collisions. This file can be generated using themoveit_setup_assistantpackage, by loading the filerobots/tiago.urdf.xacroin thetiago_descriptionpackage and adding theend_effector:=customargument.
- This file contains the
TIAGo++
-
controllers/controllers_custom.yaml- This file contains a list of controllers known to MoveIt. The default
left_arm_controller,right_arm_controller,torso_controllerandhead_controllershould be left on the file, but additional controllers required by the end-effector can be added here.
- This file contains a list of controllers known to MoveIt. The default
-
srdf/tiago_dual.srdf.em- This file contains the
srdfdefinition for the complete robot, defining move groups and blacklisted collisions. To create your desired combinations of end effectors you need to modify the file according to your custom end effector as now is using a simple cilinder as an example.
After modifying it, you can generate all possible combinations of end effectors using the script
custom_end_effector/moveit_custom_dual_config/scripts/regen_em_file.pylike thispython regen_em_file.py <path-to-tiago_dual.srdf.em>Alternatively, this file can be generated using the
moveit_setup_assistantpackage, by loading the filerobots/tiago_dual.urdf.xacroin thetiago_dual_descriptionpackage and adding theend_effector_<side>:=customargument for each side. Then you only need to rename to follow properly these format:tiago_dual_<end-effector-left>_<end-effector-right>.srdf. - This file contains the
This package contains other configuration and launch files used by the TIAGo internal architecture.
-
config/approach_planner/approach_planner.yaml- Contains paramters for
play_motion, both planning groups to be used when planning the approach to the starting position via MoveIt, and the joints to be excluded (those not controlled via MoveIt).
- Contains paramters for
-
config/motions/tiago_motions.yaml / config/motions/tiago_dual_custom_motions.yaml**ATTENTION:**By default these motions only check for collisions the first specified waypoint in the motion! This means that if your end effector differs a lot from ours, you should ensure first that it is not going to collide.
TIAGo
- Contains predefined motions for the TIAGo robot. This motions may be modified as needed, but it is strongly recommended to keep at least the original
homemotion included in the file.
TIAGo++
- You should add motions related to your end effector. All combinations for other end effectors and parts of the body are defined inside
$(rospack find tiago_dual_bringup)/config/motions.