Difference between revisions of "DELTA robot"

From SoftMC-Wiki
Jump to: navigation, search
(BackToTop button)
(Added to Category:Robot Models)
 
Line 1: Line 1:
{{Languages|DELTA_robot}}
+
{{Languages|DELTA_robot}} <div class="noprint" id="BackToTop" style="background-color:; position:fixed; bottom:32px; left:95%; z-index:9999; padding:0; margin:0;">
<div id="BackToTop" class="noprint" style="background-color:; position:fixed; bottom:32px; left:95%; z-index:9999; padding:0; margin:0;">
+
&nbsp;
<span style="color:blue; font-size:8pt; font-face:verdana,sans-serif; border:0.2em outset:#ceebf7; padding:0.1em; font-weight:bolder; -moz-border-radius:8px; ">
+
<span style="color:blue; font-size:8pt; font-face:verdana,sans-serif; border:0.2em outset:#ceebf7; padding:0.1em; font-weight:bolder; -moz-border-radius:8px;">[[File:TOP2.png|50px|TOP2.png|link=#top]]</span></div>  
[[Image:TOP2.png|50px|link=#top]] </span></div>
 
 
= DELTA robot model =
 
= DELTA robot model =
  
 
The DELTA robot is a four – degrees of freedom parallel robot of the following configuration:
 
The DELTA robot is a four – degrees of freedom parallel robot of the following configuration:
  
 
+
&nbsp;
<center>[[Image:AXY;DeltaPatent.png]]</center>
+
<center>[[File:AXY;DeltaPatent.png|RTENOTITLE]]</center>  
 
 
 
 
 
The basic idea behind the Delta parallel robot design is the use of parallelograms. A parallelogram allows an output link to remain at a fixed orientation with respect to an input link. The use of three such parallelograms restrains completely the orientation of the mobile platform which remains only with three purely translational degrees of freedom. The input links of the three parallelograms are mounted on rotating levers via revolute joints. The revolute joints of the rotating levers are actuated in two different ways: with rotational motors or with linear actuators. Finally, a fourth leg is used to transmit rotary motion from the base to an end-effector mounted on the mobile platform.
 
The basic idea behind the Delta parallel robot design is the use of parallelograms. A parallelogram allows an output link to remain at a fixed orientation with respect to an input link. The use of three such parallelograms restrains completely the orientation of the mobile platform which remains only with three purely translational degrees of freedom. The input links of the three parallelograms are mounted on rotating levers via revolute joints. The revolute joints of the rotating levers are actuated in two different ways: with rotational motors or with linear actuators. Finally, a fourth leg is used to transmit rotary motion from the base to an end-effector mounted on the mobile platform.
 
  
 
WIPO patent issued on June 18, 1987 ([http://www.delphion.com/details?&pn10=WO08703528 WO 87/03528]):
 
WIPO patent issued on June 18, 1987 ([http://www.delphion.com/details?&pn10=WO08703528 WO 87/03528]):
 
  
 
''“The device comprises a base element (1) and a movable element (8). Three control arms (4) are rigidly mounted at their first extremity (15) on three shafts (2) which may be rotated. The three assemblies each formed by a shaft (2) and an arm (4) are the movable parts of three actuators (13) of which the fixed parts (3) are integral with the base element. The other extremity (16) of each control arm is made integral with the movable element through two linking bars (5a, 5b) hingedly mounted on the one hand to the second extremity (16) of the control arm and, on the other hand, to the movable element. The inclination and the orientation in the space of the movable element remain unchanged, whatever the motions of the three control arms may be. The movable element supports a working element (9) of which the rotation is controlled by a fixed motor (11) situated on the base element. A telescopic arm (14) connects the motor to the working element.”''
 
''“The device comprises a base element (1) and a movable element (8). Three control arms (4) are rigidly mounted at their first extremity (15) on three shafts (2) which may be rotated. The three assemblies each formed by a shaft (2) and an arm (4) are the movable parts of three actuators (13) of which the fixed parts (3) are integral with the base element. The other extremity (16) of each control arm is made integral with the movable element through two linking bars (5a, 5b) hingedly mounted on the one hand to the second extremity (16) of the control arm and, on the other hand, to the movable element. The inclination and the orientation in the space of the movable element remain unchanged, whatever the motions of the three control arms may be. The movable element supports a working element (9) of which the rotation is controlled by a fixed motor (11) situated on the base element. A telescopic arm (14) connects the motor to the working element.”''
 
  
 
Also: ([http://www.delphion.com/details?&pn10=US04976582 US 4,976,582]), and ([http://www.delphion.com/details?pn=EP00250470B1 EP 0 250 470]).
 
Also: ([http://www.delphion.com/details?&pn10=US04976582 US 4,976,582]), and ([http://www.delphion.com/details?pn=EP00250470B1 EP 0 250 470]).
 
+
<center>[[File:AXY;ABBDelta.png|RTENOTITLE]]</center> <center>ABB Flexible Automation's IRB 340 FlexPicker</center>  
<center>[[Image:AXY;ABBDelta.png]]</center>
 
 
 
<center>ABB Flexible Automation's IRB 340 FlexPicker</center>
 
 
 
 
== DELTA Work-Space ==
 
== DELTA Work-Space ==
  
[[Image:AXY;DeltaWspace.png ]]
+
[[File:AXY;DeltaWspace.png|RTENOTITLE]]
 
+
<center>'''Delta Workspace assessment'''</center>  
<center>'''Delta Workspace assessment'''</center>
 
 
 
 
 
 
The Delta kinematics works with points of the '''XYZR''' robot type(X, Y , Z and Roll) where the first three coordinates are always expressed in millimeters and the roll angle in degrees.
 
The Delta kinematics works with points of the '''XYZR''' robot type(X, Y , Z and Roll) where the first three coordinates are always expressed in millimeters and the roll angle in degrees.
 
  
 
The DELTA WORLD workspace is limited by joint limits and the following auxiliary cartesian boundaries, available for the user:
 
The DELTA WORLD workspace is limited by joint limits and the following auxiliary cartesian boundaries, available for the user:
  
* RMAX – maximum radius of a cartesian point (<math> \sqrt {x^2 + y^2 + z^2} </math>), no points beyond this radius are allowed.
+
*RMAX – maximum radius of a cartesian point (<math>\sqrt {x^2 + y^2 + z^2} </math>), no points beyond this radius are allowed.  
* RMIN - smallest radius of a cartesian point (<math> \sqrt {x^2 + y^2 + z^2} </math>). No points inside this radius are allowed.
+
*RMIN - smallest radius of a cartesian point (<math>\sqrt {x^2 + y^2 + z^2} </math>). No points inside this radius are allowed.  
* ZMIN – '''z''' coordinate of the “lowest” robot position. No points below this plane are allowed.
+
*ZMIN – '''z''' coordinate of the “lowest” robot position. No points below this plane are allowed.  
  
[[Image:AXY;DeltaKinematics1.png]]
+
[[File:AXY;DeltaKinematics1.png|RTENOTITLE]]
  
 
== Robot configurations ==
 
== Robot configurations ==
 +
 
Delta robot has no configuration flags, there is always one unique solution of the inverse kinematics problem. This further means that the configuration arguments in inverse kinematics function '''ToJoint''' have no influence on the result. Also Cartesian movements like MOVES, CIRCLE or PASS THROUGH are not influenced by any of the command configuration flags (acmd, ecmd, wcmd), the motion will be the same independent of the value of any of these flags.
 
Delta robot has no configuration flags, there is always one unique solution of the inverse kinematics problem. This further means that the configuration arguments in inverse kinematics function '''ToJoint''' have no influence on the result. Also Cartesian movements like MOVES, CIRCLE or PASS THROUGH are not influenced by any of the command configuration flags (acmd, ecmd, wcmd), the motion will be the same independent of the value of any of these flags.
  
 +
&nbsp;
  
 
== Singular points ==
 
== Singular points ==
 +
 
Delta robot, contrary to the open-kinematics chain robot has no singular joint positions where the joint velocities tend to infinity but there are so called “direct kinematics singularity” where the stiffness of the robot is significantly reduced.
 
Delta robot, contrary to the open-kinematics chain robot has no singular joint positions where the joint velocities tend to infinity but there are so called “direct kinematics singularity” where the stiffness of the robot is significantly reduced.
  
 
+
[[File:AXY;DeltaKinematics2.png|RTENOTITLE]]
[[Image:AXY;DeltaKinematics2.png]]
 
 
 
  
 
Case when the upper arm linkages are parallel to each other. At this singular configuration manipulator can not resist any force applied in the plane of moving platform.
 
Case when the upper arm linkages are parallel to each other. At this singular configuration manipulator can not resist any force applied in the plane of moving platform.
 
  
 
Another singular position which in is more a '''theoretical''' in our case is the so called direct kinematics singular configuration,in which all the upper arm linkages are in the plane of the moving platform. At such a configuration, the manipulator actuators can not resist any force applied to the moving platform in the z-direction.
 
Another singular position which in is more a '''theoretical''' in our case is the so called direct kinematics singular configuration,in which all the upper arm linkages are in the plane of the moving platform. At such a configuration, the manipulator actuators can not resist any force applied to the moving platform in the z-direction.
  
 
+
'''This case is possible only when <math>L_1 +R_{big} >= L_2 + R_{small} </math> which in our case is not fulfilled!'''
'''This case is possible only when <math>L_1 +R_{big} >= L_2 + R_{small} </math> which in our case is not fulfilled!'''
 
  
 
== Geometric parameters of the DELTA robot ==
 
== Geometric parameters of the DELTA robot ==
[[File:DELTAGEOMETRY.PNG]]
 
  
 +
[[File:DELTAGEOMETRY.PNG|RTENOTITLE]]
  
 
For DELTA family of robots we have:
 
For DELTA family of robots we have:
  
 
+
&nbsp;
  
 
{| style="border-spacing:0;"
 
{| style="border-spacing:0;"
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>parameter</center>
 
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>MC-Basic property name</center>
 
| style="border:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Value in mm</center>
 
 
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Rbig</center>
+
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>parameter</center>
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>'''<nowiki><robot >.link[1][1]</nowiki>'''</center>
+
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>MC-Basic property name</center>
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>370</center>
+
| style="border:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Value in mm</center>
 
+
|-
 +
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Rbig</center>  
 +
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center><nowiki><robot >.link[1][1]</nowiki>
 +
</center>  
 +
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>370</center>  
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>L1</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>L1</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>'''<nowiki>< robot >.link[2][3]</nowiki>'''</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center><nowiki>< robot >.link[2][3]</nowiki>
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>300</center>
+
</center>  
 
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>300</center>  
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>L2</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>L2</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>'''<nowiki>< robot >.link[3][3]</nowiki>'''</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center><nowiki>< robot >.link[3][3]</nowiki>
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>800</center>
+
</center>  
 
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>800</center>  
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Rsmall</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Rsmall</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>'''<nowiki>< robot >.link[4][1]</nowiki>'''</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center><nowiki>< robot >.link[4][1]</nowiki>
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>50</center>
+
</center>  
 
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>50</center>  
 
|}
 
|}
  
[[File:DELTAGEOMETRYSIDE.PNG]]
+
[[File:DELTAGEOMETRYSIDE.PNG|RTENOTITLE]]
  
 +
The above parameters of '''link''' matrix property of the robot must be filled-in in the robot’s setup file. In order that the system accepts the above setup the “'''configgroup'''” command must be executed. The model is assuming that the three base motors are rotated for exactly 120 degrees. Also it has been assumed that all three lags are of the same dimensions. The WORLD coordinate system is based in the center of the motor plane. Note that only the above set of parameters affects the robot geometry, the rest of the
 +
<nowiki>link[][]</nowiki>
 +
and <nowiki>axis[][] </nowiki>
 +
values do not influence the robot geometry in any way and are not affected (changed) by '''configgroup''' command or any other robot command.
 +
== Typical DELTA poses ==
  
The above parameters of '''link''' matrix property of the robot must be filled-in in the robot’s setup file. In order that the system accepts the above setup the “'''configgroup'''” command must be executed. The model is assuming that the three base motors are rotated for exactly 120 degrees. Also it has been assumed that all three lags are of the same dimensions. The WORLD coordinate system is based in the center of the motor plane. Note that only the above set of parameters affects the robot geometry, the rest of the '''''<nowiki>link[][]</nowiki>''''' and '''''<nowiki>axis[][] </nowiki>'''''values do not influence the robot geometry in any way and are not affected (changed) by '''configgroup''' command or any other robot command.
 
 
== Typical DELTA poses ==
 
 
Farthest (highest) reachable Z coordinate and the maximum joint angle.
 
Farthest (highest) reachable Z coordinate and the maximum joint angle.
  
[[File:DELTAPOS1.PNG]]
+
[[File:DELTAPOS1.PNG|RTENOTITLE]]
  
 
<math>Z_{max} = \sqrt {(L_1+L_2)^2 - (R_{big}-R_{small})^2}</math>
 
<math>Z_{max} = \sqrt {(L_1+L_2)^2 - (R_{big}-R_{small})^2}</math>
Line 112: Line 99:
 
<math>\theta_{1max} = \pi - asin(Z_{max} /over {L_1+L_2})</math>
 
<math>\theta_{1max} = \pi - asin(Z_{max} /over {L_1+L_2})</math>
  
 
+
&nbsp;
  
 
Closest (lowest) reachable Z coordinate and the maximum joint angle.
 
Closest (lowest) reachable Z coordinate and the maximum joint angle.
  
[[File:DELTAPOS2.PNG]]
+
[[File:DELTAPOS2.PNG|RTENOTITLE]]
 
 
  
 
If <math>L_1 + R_{big} >= L_2 + R_{small} </math> then the following is true '''(not applicable in our case)''':
 
If <math>L_1 + R_{big} >= L_2 + R_{small} </math> then the following is true '''(not applicable in our case)''':
Line 125: Line 111:
 
<math>\theta_{1min} = \pi - (asin(Z_{max} /over {L_2}) + \pi /over 2)</math>
 
<math>\theta_{1min} = \pi - (asin(Z_{max} /over {L_2}) + \pi /over 2)</math>
  
 +
&nbsp;
  
 +
&nbsp;
  
 +
“Zero” position, for <math>\theta = 0 </math>
  
 
+
[[File:DELTAPOS3.PNG|RTENOTITLE]]
“Zero” position, for <math> \theta = 0 </math>
 
 
 
 
 
[[File:DELTAPOS3.PNG]]
 
 
 
  
 
<math>Z_{min} = \sqrt {L_2^2 - (L_1 + R_{big}-R_{small})^2}</math>
 
<math>Z_{min} = \sqrt {L_2^2 - (L_1 + R_{big}-R_{small})^2}</math>
 
  
 
Having a robot with following geometry:
 
Having a robot with following geometry:
  
 
+
&nbsp;
  
 
{| style="border-spacing:0;"
 
{| style="border-spacing:0;"
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Parameter</center>
 
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Value in mm</center>
 
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"|
 
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"|
 
| style="border:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"|
 
 
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Rbig</center>
+
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Parameter</center>
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>370</center>
+
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Value in mm</center>
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"|  
+
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | &nbsp;
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Z<sub>0</sub></center>
+
| style="border-top:0.0069in solid #000000;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | &nbsp;
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>505.56899</center>
+
| style="border:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | &nbsp;
 
+
|-
 +
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Rbig</center>  
 +
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>370</center>  
 +
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | &nbsp;
 +
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Z<sub>0</sub></center>  
 +
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>505.56899</center>  
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>L1</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>L1</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>300</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>300</center>  
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"|  
+
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | &nbsp;
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Zmax</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Zmax</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>1052.4258</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>1052.4258</center>  
 
 
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>L2</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>L2</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>800</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>800</center>  
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"|  
+
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | &nbsp;
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Zmin</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Zmin</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>N/A</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>N/A</center>  
 
 
 
|-
 
|-
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>Rsmall</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>Rsmall</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>50</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>50</center>  
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"|  
+
| style="border-top:none;border-bottom:none;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | &nbsp;
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>θmax</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:none;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>θmax</center>  
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;"| <center>106.87532°</center>
+
| style="border-top:none;border-bottom:0.0069in solid #000000;border-left:0.0069in solid #000000;border-right:0.0069in solid #000000;padding-top:0in;padding-bottom:0in;padding-left:0.075in;padding-right:0.075in;" | <center>106.87532°</center>  
 +
|}
  
|}
 
 
Test:
 
Test:
 
  
 
-->?ToCart({0,0,0,0})
 
-->?ToCart({0,0,0,0})
  
 +
&nbsp;
 
<nowiki>#{-5.68434e-14 , 0 , 505.569 , 0}</nowiki>
 
<nowiki>#{-5.68434e-14 , 0 , 505.569 , 0}</nowiki>
  
 
-->?toCart({106.87,106.87,106.87,0})
 
-->?toCart({106.87,106.87,106.87,0})
  
 +
&nbsp;
 
<nowiki>#{-7.10543e-15 , 0 , 1052.43 , 0}</nowiki>
 
<nowiki>#{-7.10543e-15 , 0 , 1052.43 , 0}</nowiki>
  
Line 192: Line 173:
  
 
== Orientation Angle ==
 
== Orientation Angle ==
The DELTA kinematics has only one orientation angle (roll) it is directly (one-to-one) driven by the fourth motor. The value of the WORLD roll angle equals always to the fourth joint position limited (wrapped) <nowiki>to angle values between [-180, 180]. Orientation interpolation is determined by the OrientationFollwing flag. In the case of DELTA robots joint and world angles are directly related and therefore we have only two options of the OrientationFollowing flag:</nowiki>
 
  
 +
The DELTA kinematics has only one orientation angle (roll) it is directly (one-to-one) driven by the fourth motor. The value of the WORLD roll angle equals always to the fourth joint position limited (wrapped)
 +
<nowiki>to angle values between [-180, 180]. Orientation interpolation is determined by the OrientationFollwing flag. In the case of DELTA robots joint and world angles are directly related and therefore we have only two options of the OrientationFollowing flag:</nowiki>
 +
 +
&nbsp;
 +
 +
*Take the longer path between initial and final roll angle: '''OrientationFollowing flag equals 2 or 3'''
 +
*Take the shorter path between initial and final roll angle: '''OrientationFollowing flag equals 0 or 1'''
  
* Take the longer path between initial and final roll angle: '''OrientationFollowing flag equals 2 or 3'''
+
[[Category:Robot Models]]
* Take the shorter path between initial and final roll angle: '''OrientationFollowing flag equals 0 or 1'''
 

Latest revision as of 05:33, 8 April 2022

Language: English  • 中文(简体)‎

 

TOP2.png

DELTA robot model

The DELTA robot is a four – degrees of freedom parallel robot of the following configuration:

 

RTENOTITLE

The basic idea behind the Delta parallel robot design is the use of parallelograms. A parallelogram allows an output link to remain at a fixed orientation with respect to an input link. The use of three such parallelograms restrains completely the orientation of the mobile platform which remains only with three purely translational degrees of freedom. The input links of the three parallelograms are mounted on rotating levers via revolute joints. The revolute joints of the rotating levers are actuated in two different ways: with rotational motors or with linear actuators. Finally, a fourth leg is used to transmit rotary motion from the base to an end-effector mounted on the mobile platform.

WIPO patent issued on June 18, 1987 (WO 87/03528):

“The device comprises a base element (1) and a movable element (8). Three control arms (4) are rigidly mounted at their first extremity (15) on three shafts (2) which may be rotated. The three assemblies each formed by a shaft (2) and an arm (4) are the movable parts of three actuators (13) of which the fixed parts (3) are integral with the base element. The other extremity (16) of each control arm is made integral with the movable element through two linking bars (5a, 5b) hingedly mounted on the one hand to the second extremity (16) of the control arm and, on the other hand, to the movable element. The inclination and the orientation in the space of the movable element remain unchanged, whatever the motions of the three control arms may be. The movable element supports a working element (9) of which the rotation is controlled by a fixed motor (11) situated on the base element. A telescopic arm (14) connects the motor to the working element.”

Also: (US 4,976,582), and (EP 0 250 470).

RTENOTITLE
ABB Flexible Automation's IRB 340 FlexPicker

DELTA Work-Space

RTENOTITLE

Delta Workspace assessment

The Delta kinematics works with points of the XYZR robot type(X, Y , Z and Roll) where the first three coordinates are always expressed in millimeters and the roll angle in degrees.

The DELTA WORLD workspace is limited by joint limits and the following auxiliary cartesian boundaries, available for the user:

  • RMAX – maximum radius of a cartesian point (), no points beyond this radius are allowed.
  • RMIN - smallest radius of a cartesian point (). No points inside this radius are allowed.
  • ZMIN – z coordinate of the “lowest” robot position. No points below this plane are allowed.

RTENOTITLE

Robot configurations

Delta robot has no configuration flags, there is always one unique solution of the inverse kinematics problem. This further means that the configuration arguments in inverse kinematics function ToJoint have no influence on the result. Also Cartesian movements like MOVES, CIRCLE or PASS THROUGH are not influenced by any of the command configuration flags (acmd, ecmd, wcmd), the motion will be the same independent of the value of any of these flags.

 

Singular points

Delta robot, contrary to the open-kinematics chain robot has no singular joint positions where the joint velocities tend to infinity but there are so called “direct kinematics singularity” where the stiffness of the robot is significantly reduced.

RTENOTITLE

Case when the upper arm linkages are parallel to each other. At this singular configuration manipulator can not resist any force applied in the plane of moving platform.

Another singular position which in is more a theoretical in our case is the so called direct kinematics singular configuration,in which all the upper arm linkages are in the plane of the moving platform. At such a configuration, the manipulator actuators can not resist any force applied to the moving platform in the z-direction.

This case is possible only when which in our case is not fulfilled!

Geometric parameters of the DELTA robot

RTENOTITLE

For DELTA family of robots we have:

 

parameter
MC-Basic property name
Value in mm
Rbig
<robot >.link[1][1]
370
L1
< robot >.link[2][3]
300
L2
< robot >.link[3][3]
800
Rsmall
< robot >.link[4][1]
50

RTENOTITLE

The above parameters of link matrix property of the robot must be filled-in in the robot’s setup file. In order that the system accepts the above setup the “configgroup” command must be executed. The model is assuming that the three base motors are rotated for exactly 120 degrees. Also it has been assumed that all three lags are of the same dimensions. The WORLD coordinate system is based in the center of the motor plane. Note that only the above set of parameters affects the robot geometry, the rest of the link[][] and axis[][] values do not influence the robot geometry in any way and are not affected (changed) by configgroup command or any other robot command.

Typical DELTA poses

Farthest (highest) reachable Z coordinate and the maximum joint angle.

RTENOTITLE

 

Closest (lowest) reachable Z coordinate and the maximum joint angle.

RTENOTITLE

If then the following is true (not applicable in our case):

 

 

“Zero” position, for

RTENOTITLE

Having a robot with following geometry:

 

Parameter
Value in mm
     
Rbig
370
 
Z0
505.56899
L1
300
 
Zmax
1052.4258
L2
800
 
Zmin
N/A
Rsmall
50
 
θmax
106.87532°

Test:

-->?ToCart({0,0,0,0})

  #{-5.68434e-14 , 0 , 505.569 , 0}

-->?toCart({106.87,106.87,106.87,0})

  #{-7.10543e-15 , 0 , 1052.43 , 0}

-->

Orientation Angle

The DELTA kinematics has only one orientation angle (roll) it is directly (one-to-one) driven by the fourth motor. The value of the WORLD roll angle equals always to the fourth joint position limited (wrapped) to angle values between [-180, 180]. Orientation interpolation is determined by the OrientationFollwing flag. In the case of DELTA robots joint and world angles are directly related and therefore we have only two options of the OrientationFollowing flag:

 

  • Take the longer path between initial and final roll angle: OrientationFollowing flag equals 2 or 3
  • Take the shorter path between initial and final roll angle: OrientationFollowing flag equals 0 or 1