You are on page 1of 7

KJSCE/IT/LY/SEMVIII/ROB/2019-20

(Autonomous College Affiliated to University of Mumbai)


KJSCE/IT/LY/SEMVIII/ROB/2019-20

Batch: B4 Roll No.: 1614109 Experiment No.:3


___________________________________________________________________________

Aim: To study & implement IK analysis of SCARA robot


___________________________________________________________________________

Resources Used: C/C++/JAVA/MATLAB


___________________________________________________________________________

Theory:
Inverse Kinematics:

Inverse Kinematics analysis aims at mapping the position & orientation of the tool into joint
vector which so as to find the values of the joint vector which would lead to the given
position & configuration of the tool tip.

IK is robot specific.
Arm equation of Adept-1 SCARA robot is given as,

S1- a1C1+a2C
C1-2-4 2-4 0 1-2

C1- a1S1+
4 S1-2-4 2-4 0 a2S1-2
T = 0 0 -1 d1-q3-d4
0
0 0 0 1

Using the arm equation, we get TCV as


a1C1+a2C1-
2

W1
a1S1+
W2 a2S1-2
W3 = d1-q3-d4
W4 0
W5 0
W6 -exp (q4 / π)

Using TCV we extracted vector of joint variables as follows:

1. Extract q2

(Autonomous College Affiliated to University of Mumbai)


KJSCE/IT/LY/SEMVIII/ROB/2019-20

2. Extract base angle q1

(Autonomous College Affiliated to University of Mumbai)


KJSCE/IT/LY/SEMVIII/ROB/2019-20

3. Extract q3=d3

4. Tool Roll q4= θ4

(Autonomous College Affiliated to University of Mumbai)


KJSCE/IT/LY/SEMVIII/ROB/2019-20

Algorithm FOR Inverse Kinematics:

Step 1: Take input as tool configuration vector


Step 2: Take the following steps to find vector of
1) Compute shoulder angle q2
2) Compute base angle q1
3) Compute vertical extension d3
4) Compute tool roll angle q4
Step 3: Display set of vector of joint variables.

----------------------------------------------------------------------------------------------------------------
Results: (Program printout with output / Document printout as per the format)

import numpy as np
import math as math

d=np.zeros((4))
theta=np.zeros((4))
a=np.zeros((4))
w=np.zeros((6))
q=np.zeros((4))
qAlternate=np.zeros((4))
incorrectInput=False

#collect input here


#d:
for i in range(4):
d[i]=int(input(f"Enter the value of d[{i+1}]\t"))
#theta:
for i in range(4):
theta[i]=int(input(f"Enter the value of theta[{i+1}]\t"))
#a:
for i in range(4):
a[i]=int(input(f"Enter the value of a[{i+1}]\t"))

#fill q:
q[2]=d[2]
q[3]=math.radians(int(input("Enter the value of roll in degrees")))
#convert values in theta into radians
theta=np.radians(theta)

(Autonomous College Affiliated to University of Mumbai)


KJSCE/IT/LY/SEMVIII/ROB/2019-20

#filling the w column matrix


w[0]=a[0]*math.cos(theta[0])+a[1]*math.cos(theta[0]-theta[1])
w[1]=a[0]*math.sin(theta[0])+a[1]*math.sin(theta[0]-theta[1])
w[2]=d[0]-q[2]-d[3]
w[3]=0#property of SCARA
w[4]=0#property of SCARA
w[5]=-math.exp(q[3]/math.pi)
print(f"The final w column matrix is:\n{np.transpose(w)}")

#now calculate answer


#start with q2:
q[0]=math.acos((w[0]**2+w[1]**2-a[0]**2-a[1]**2)/2*a[0]*a[1])
y=a[1]*math.sin(q[1])*w[0]+(a[0]+a[1]*math.cos(q[1]))*w[1]
x=((a[0]+a[1]*math.cos(q[1]))*w[0])-(a[1]*math.sin(q[1])*w[1])
q[1]=math.atan2(y,x)
q[2]=d[0]-d[3]-w[2]
q[3]=math.pi*math.log(abs(w[5]))
qAlternate=np.copy(q)
qAlternate[0]*=-1
print(f"Final possible configurations of Joints are: \n{np.transpose(q)} \tand\n{np.transpose(qAlternate)}")

__________________________________________________________________________
Questions:
 From DK and IK, which analysis is practically used and why?

(Autonomous College Affiliated to University of Mumbai)


KJSCE/IT/LY/SEMVIII/ROB/2019-20

IK is practically more common. Generally, the position objects are calculated based on the
position relative to a sensor such as a camera or IR sensor, which is placed on the tool. Thus
there is a need to convert these coordinates into the joint configuration, which is performed
by IK. Furthermore, there are instances where a straight line or a certain shape is needed to be
drawn by the path of the tool. These points to follow in the path of motion are calculated at
the effector itself which make IK necessary to calculate the positions of robot joints to move
as per the requirement.

_______________________________________________________________________
Outcomes:
Solve basic robot forward and inverse kinematics problems

_______________________________________________________________________

Conclusion:

In this experiment we have learnt about Inverse Kinematics and its importance in robotics.
___________________________________________________________________________

Grade: AA / AB / BB / BC / CC / CD /DD

Signature of faculty in-charge with date


_______________________________________________________________________
References:

Books/ Journals/ Websites:


 Robert Shilling, Fundamentals of Robotics-Analysis and control, Prentice Hall of India
 Fu, Gonzales and Lee, Robotics, McGraw Hill

(Autonomous College Affiliated to University of Mumbai)

You might also like