Project

FORWARD KINEMATICS OF 3R ROBOTIC ARM MANIPULATOR USED FOR THE TASK SPECIFIC PICK AND PLACE BOT IN THE FIRST TECH CHALLENGE 2019 USING MATLAB.

This ptoject was built as a part of the simulation of the complete bot, which took part in the First Tech Challenge, in the year 2019, and reached the Semi finals, representing Team CEG. The arm controller was used to combine the autonomous control of detection with the task specific pick and place of the minerals provided by the organizers in a specific battle field. The 3R robotic arm simulation and its work volume are calculated in the code. There are three links, which makes angles of :

Theta1, Theta2, and Theta3. So, if the values of theta1, and theta 2 are set, the third angle, can move over the work region. The link consisting of starting points of (0,0), and the end points which are found using the cosine and sine values of the length. Therefore, we get four points, the origin, end point of the first, second and third links respectively.

The length of the first and second links are about 288 mm (18 inches) which are precision machined with micron level accuracy, in Aliminum. The values of the angles made by the links are also provided as ranges between 0 and any given value by the user, so that the program is a tad easier and flexible. The third link is about 14 inches. Now, the angles are converted from an array to a variable, and stored in THETA1 , THETA2, and THETA3 respectively. Now, the practical issue, while constructing the links in serial manner, is the clearance to provide the movement of attached linkages. This is prevented by provision of sufficient clearance in the end angle that is actuated by the servos. The lines are plotted on the graph, and each frame is captured effectively in order to combine them. This is achieved through nested for loops.

The idea here is to make a plot, get each frame, and finally stitch them all to make an animation.

clear all
close all
clc

%getting the input angle from the user, till which the manipulator has to move.
given_angle=input('enter the angle = ')

%forward kinematics of the 3R Robotic arm, used in the First tech Challenge 2019, by Team CEG.
printf('the links consisted of TETRIX Aluminum Precision Machined Channels, attached to servos')
sprintf('n')
theta1=linspace(0,given_angle,12);
theta2=linspace(0,given_angle,12);
theta3=linspace(0,given_angle,12);
printf('The length of each link is provided below')
sprintf('n')
l1=18
l2=18
l3=14
ct=1;
for i=1:length(theta1)
THETA1=theta1(i);
for j=1:length(theta2)
THETA2=theta2(j);
for k=1:length(theta3)
THETA3=theta3(k);
if THETA2>52
theta3=linspace(-80,given_angle,12);
if THETA2>91
theta3=linspace(-30,given_angle,12);
end
end
%the coordinates are mentioned as shown below
x0=0;
y0=0;
x1=l1*cosd(THETA1);
y1=l1*sind(THETA1);
x2=x1+l2*cosd(THETA2);
y2=y1+l2*sind(THETA2);
x3=x2+l3*cosd(THETA3);
y3=y2+l3*sind(THETA3);

plot([x0,x1],[y0,y1],'linewidth',3, [x1,x2],[y1,y2],'linewidth', 3, [x2,x3],[y2,y3], 'linewidth', 3)
axis([-50 50 0 50])
pause(0.0000001)

M(ct)=getframe(gcf);
ct=ct+1;

end
end
end

% to calculate the workspace made by the robotic arms.

work_volume = 524000*given_angle/360
strcat(num2str(work_volume), ' m^3')

%creating a avi file
movie(M)
videofile=VideoWriter('forward_kinematics_of_3R_arm.avi', 'Uncompressed AVI')
open(videofile)
writeVideo(videofile,M)
close(videofile)

%the program ends

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.