ITA730 - Rob - Exp - 4
ITA730 - Rob - Exp - 4
Grade: Sign:
Theory:
Inverse Kinamatics:
Kinematics is the study of motion without considering the cause of the motion, such as forces
and torques. Inverse kinematics is the use of kinematic equations to determine the motion of a
robot to reach a desired position. For example, to perform automated bin picking, a robotic arm
used in a manufacturing line needs precise motion from an initial position to a desired position
between bins and manufacturing machines. The grasping end of a robot arm is designated as the
end-effector. The robot configuration is a list of joint positions that are within the position limits
of the robot model and do not violate any constraints the robot has.
Given the desired robot’s end-effector positions, inverse kinematics (IK) can determine an
appropriate joint configuration for which the end-effectors move to the target pose.
Once the robot’s joint angles are calculated using the inverse kinematics, a motion profile can be
generated using the Jacobian matrix to move the end-effector from the initial to the target pose.
The Jacobian matrix helps define a relationship between the robot’s joint parameters and the end-
effector velocities.
In contrast to forward kinematics (FK), robots with multiple revolute joints generally have
multiple solutions to inverse kinematics, and various methods have been proposed according to
the purpose. In general, they are classified into two methods, one that is analytically obtained
(i.e., analytic solution) and the other that uses numerical calculation.
Program:
a1=1; a2=0.75;
px=1.2;py=1;
c2=(px*px+py*py-a1*a1-a2*a2)/(2*a1*a2);
if c2<=1
s2_1=sqrt(1-c2*c2)
s2_2=-sqrt(1-c2*c2)
theta2_1=atan2(s2_1,c2)
theta2_2=atan2(s2_2,c2)
denom1=a1*a1+a2*a2+2*a1*a2*cos(theta2_1)
denom2=a1*a1+a2*a2+2*a1*a2*cos(theta2_2)
s1_1=py*(a1+a2*cos(theta2_1))-px*a2*sin(theta2_1)
s1_2=py*(a1+a2*cos(theta2_2))-px*a2*sin(theta2_2)
c1_1=px*(a1+a2*cos(theta2_1))-py*a2*sin(theta2_1)
c1_2=px*(a1+a2*cos(theta2_2))-py*a2*sin(theta2_2)
theta1_1=atan2(s1_1,c1_1)
theta1_2=atan2(s1_2,c1_2)
end
theta1deg=45
theta2deg=-45
theta1=theta1deg*pi/180
theta2=theta2deg*pi/180
ax_1=a1*cos(theta1_1)
ay_1=a1*sin(theta1_1)
ax_2=a1*cos(theta1_2)
ay_2=a1*sin(theta1_2)
bx=px
by=py
xaxisarrayxcoords=[-2 2]
xaxisarrayycoords=[0 0]
yaxisarrayxcoords=[0 0]
yaxisarrayycoords=[-2 2]
link1x_1= [0 ax_1]
link1y_1= [0 ay_1]
link1x_2=[0 ax_2]
link1y_2=[0 ay_2]
link2x_1=[ax_1 bx]
link2y_1=[ay_1 by]
link2x_2=[ax_2 bx]
link2y_2=[ay_2 by]
hold on
Output:
Conclusion: