Galileo Sphere Robot (GSR) Kinematics
ROBOT KINEMATICS FOR GALILEO SPHERE ROBOT
Robot definition as a group of axes with a predefined point type
The robot kinematics will be assigned to a new model type (15) with a XYZPR (x,y,z, pitch, roll) point type. The following line defines the GALILEO robot as a new system variable:
Common Shared GALILEO As Group Axnm = A1 Axnm = A2 Axnm = A3 Axnm = A4 Axnm = A5 model = 15 of xyzpr
Kinematics of the robot
Joint Coordinates:
Axis name Joint Type Range Units Theta1 J1 Rotary axis [-180,180] deg Theta2 J2 Rotary axis [-10,90] deg Z1 J3 Linear [Z1min,Z1max] mm Z2 J4 Linear [Z2min,Z2max] mm Theta3 J5 Rotary axis Multi turn deg
There are three rotary axes:
• theta1 – big horizontal rotary (J1 or joint #1) • theta2 – pitch axis (J2 or joint #2) • theta3 – tool rotation (J5 or joint #5)
And two linear axes:
• Z1 (J3 or joint #3) • Z2 (J4 or joint #4) The Z1 is the linear axis without connecting rod. General presentation of the robot joint point in MC-Basic language is (list of numeric expressions inside curly brackets):
{J1, J2, J3, J4, J5}
Cartesian coordinates:
Cartesian coordinates (world) of the robot TCP (Tool Center Point) are (Xw, Yw, Zw). Orientation of the robot tool’s Z axis is always expressed as a rotation needed to rotate the Z world (Zw) axis into Z tool (Zt) axis. It can be expressed with 3 Euler angles (Yaw, Pitch, Roll) of the ZYZ order of rotations.
Yaw angle:
Rotating (Xw, Yw, Zw) system around Zw axis into (X1, Y1, Z1)
Pitch angle:
Rotating (X1, Y1, Z1) system around Y1 axis into (X2, Y2, Z2)
Roll angle:
Rotating (X2, Y2, Z2) system around Z2 axis into (X3, Y3, Z3) which coincides to (Xt, Yt, Zt)
As the given robot has only 5 DOF (Degrees Of Freedom) we are reducing the orientation representation to Pitch & Roll angles only. That corresponds to rotations around Y2 (axis obtained after rotating Yw with θ1) and Z3 tools Z axis (in that order).
General presentation of the robot Cartesian point in MC-Basic language is (list of numeric expressions inside curly brackets preceded with hash sign):
- {X, Y, Z, Pitch, Roll}
Geometry
The important geometrical parameters of the robot are:
List of parameters: Name Units Description MC-BASIC property D1 mm Distance between the axes <robot>.Link[1][1] D2 mm Tool mounting rod <robot>.Link[1][2] D3 mm Extension rod <robot>.Link[1][3] L1 mm Tool Length <robot>.Link[2][1] B1 mm Vertical (Z) offset of the θ2 rotation center (C2) from the center of θ1-circle (C1). <robot>.Link[2][2]
There are two additional parameters that are defined implicitly by defining the zero coordinate of the z axes (z1off and z2off). Both z axes should have zero at same line (see picture). These two will include the offset from the axis encoder zero position to the rotation axis of θ2 - including all fixed additional linkages connected to it (not depicted in the picture as they do not alternate the basic robot kinematics).
The assumption is that the robot has symmetrical setup. The tool flange is in the middle of D2 link and the center of rotation of the theta2 is in the middle of the theta1 circle. It is crucial to have these two requirements fulfilled, if not the kinematics relations will be invalid.
Singularities
Theoretically speaking there are two singularities of these kinematics, let’s call them roll-singularity and linkage-singularity (these names are just arbitrarily given as we need somehow to denote them), but we will handle just one and the other will be not available to the user. Here is the explanation:
Roll-singularity
This type of singularity happens when θ1 and θ3 are collinear. Their sum (θ1+ θ3) builds the Cartesian roll angle and any combination of these two numbers will represent the same roll angle.
Linkage-singularity
It is a typical four-bar mechanism singularity where for the same position of Z1X segment there are two solutions for Z2 point. In order to avoid problems with this type of singularity only solutions with minimal x angle will be taken (x’ angle in the drawing).
Configuration flags
Actually there should be two configuration flags in the system. But, as the one of the configuration is not allowed, only one (ARM) is made available (accessible for reading and writing) to the user.
The Arm configuration flag is defined according to the following reasoning:
In case the tool-tip is on the same side as the θ2 slider it is RIGHTY else it is LEFTY.
Or:
Arm= {■(LEFTY@RIGHTY)■(r>0@r<0)┤
In the MC-BASIC language it is: <robot>.Acmd for the commanded configuration <robo>.Afbk for the current(feedback) configuration
Typical robot poses
Here is a list of some typical poses for a better understanding of the workspace coordinates. They do not necessary represent the feasible positions of the robot (due to some axis position limitations) but they are good examples to finalize and test robot kinematics definitions.
• Horizontal position, pitch angle = 90 degrees: {0,0,Z1,Z2-D3,0} #{Z1+L1,B1,-90,0}
• Same pose rotating theta 3 – directly translated into roll angle. {0,0,Z1,Z2-D3,45} #{Z1+L1,B1,-90,45} {0,0,Z1,Z2-D3,-45} #{Z1+L1,B1,-90,-45}
Horizontal position, pitch angle = ±90 degrees:
{90,0,Z1,Z1-D3,0} #{0,-(Z1+L1),B1,-90,0}
{-90,0,Z1,Z1-D3,0} #{0,+(Z1+L1),B1,-90,0}
• Singular point: {0,90,Z1,Z1-D3,0} #{0,0,B1+(Z1+L1),0,0} {R,90,Z1,Z1-D3,-R} #{0,0, B1+ (Z1+L1),0,0} for any R!
GSR light v2 sezione T2 Z out
-->move {0,90,386+76,386,0} -->?setpoint #{-7.41629e-14 , 0 , 743 , 0 , 0} -->
GSR light v2 sezione T2 Z in
-->move {0,90,232+76,232,0} -->?setpoint #{-2.26485e-14 , 0 , 589 , 0 , 0} -->
GSR light v02 Z.in T3.60
-->moves {0,90,113.3+373,373,0} -->?setpoint #{60.8857 , 0 , 730.64 , -29.986 , 0} -->?113.3+373+95+149 730.3