# How to create and control a Delta robot?

asked 2020-04-25 10:00:16 -0500

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Hi, I'm working on a project in which I need to simulate a Delta robot in Gazebo and control it through ROS.

At the beginning I started to write the robot model using urdf/xacro file because it seems to be the suggested (or even more, requested!?) filetype by ROS. Ayway, I am now facing 2 "big" problems:

1: Since parallel linkages are not allowed by URDF I have to find a way to connect the"movable plate" of the Delta to the 3 forearms (this implies 3 parent links for a unique link). I've tried using the <gazebo> tag to insert the extra joints but they seem to be non-effective (I can see them in the joint list inside gazebo but they don't connect the desired links, as if they were not physically there..) I've used this sintax:

<gazebo>
<joint name='joint_lower_2' type='ball'>
<child>end_effector</child>
</joint>
</gazebo>


2: I need to specify the "middle" joints (the ones connecting upper links to lower links) and the "lower" joints (the ones connecting forearms to end-effector/movable plate) as ball joints but this type is not allowed in urdf format. So I am forced to declare these joints in some way (for example, continuous). My idea was to, using the gazebo reference tag, overlap their definitions but this seems to be non-effective too (the joints remain of the type "continuous" in the joint list in Gazebo). Like this:

<joint name="joint_middle_2" type="continuous">
<origin xyz="${link_upper_lenght} 0.0 0.0" rpy="0.0 0.0 0.0"/> <axis xyz="0.0 1.0 0.0"/> <dynamics damping="${damping}" friction="\${static_friction}" />