Difference between revisions of "Robotic Arm Deux"

From ENGR005 2008
Jump to: navigation, search
Line 49: Line 49:
  
 
% T is time for move (in mS);
 
% T is time for move (in mS);
 +
  
 
pw1=round(Theta1); %Put in calibrarion.
 
pw1=round(Theta1); %Put in calibrarion.
 +
 
pw2=round(Theta2); %Put in calibrarion.
 
pw2=round(Theta2); %Put in calibrarion.
 +
 
pw3=round(Theta3); %Put in calibrarion.
 
pw3=round(Theta3); %Put in calibrarion.
 +
 
pw4=round(Theta4); %Put in calibrarion.
 
pw4=round(Theta4); %Put in calibrarion.
 +
 
pw5=round(Theta5); %Put in calibrarion.
 
pw5=round(Theta5); %Put in calibrarion.
  
Line 66: Line 71:
  
 
pause(T/1000); %Wait for command to finish.
 
pause(T/1000); %Wait for command to finish.
 +
 +
  
 
FinalProgram
 
FinalProgram
 +
 
% Robot Part Deux!
 
% Robot Part Deux!
 +
 
% Members: David D'Annunzio
 
% Members: David D'Annunzio
 +
 
%          Matt Bowers
 
%          Matt Bowers
 +
 
%          Elan Silverblatt-Buser
 
%          Elan Silverblatt-Buser
 +
 +
  
 
gotoAngles5(s,1530,1550,2350,570,600,3000)
 
gotoAngles5(s,1530,1550,2350,570,600,3000)
 +
 
gotoAngles5(s,1530,1550,1270,1660,600,3000)
 
gotoAngles5(s,1530,1550,1270,1660,600,3000)
 +
 +
  
 
% Grab cup
 
% Grab cup
 +
 
gotoAngles5(s,1530,1550,1270,1660,1400,3000)
 
gotoAngles5(s,1530,1550,1270,1660,1400,3000)
 +
 
gotoAngles5(s,1530,1550,2350,570,1400,3000)
 
gotoAngles5(s,1530,1550,2350,570,1400,3000)
 +
 
gotoAngles5(s,1930,1950,2350,570,1400,3000)
 
gotoAngles5(s,1930,1950,2350,570,1400,3000)
 +
 +
  
 
% Lower cup to the bowl
 
% Lower cup to the bowl
 +
 
gotoAngles5(s,1930,1950,1650,1300,1400,3000)
 
gotoAngles5(s,1930,1950,1650,1300,1400,3000)
 +
 +
  
 
% Pour the cup
 
% Pour the cup
 +
 
gotoAngles5(s,1930,1950,1650,2400,1400,3000)
 
gotoAngles5(s,1930,1950,1650,2400,1400,3000)
 +
 
gotoAngles5(s,1930,1950,1650,2400,1400,200)
 
gotoAngles5(s,1930,1950,1650,2400,1400,200)
 +
 +
  
 
% Shake excess water
 
% Shake excess water
 +
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 +
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 +
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 +
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 +
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 +
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 +
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 
gotoAngles5(s,1930,1950,1750,2400,1400,50)
 +
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 
gotoAngles5(s,1930,1950,1650,2400,1400,100)
 +
 +
  
 
% Bring cup to final platform
 
% Bring cup to final platform
 +
 
gotoAngles5(s,1930,1950,1650,1300,1400,3000)
 
gotoAngles5(s,1930,1950,1650,1300,1400,3000)
 +
 
gotoAngles5(s,1930,1950,2350,570,1400,3000)
 
gotoAngles5(s,1930,1950,2350,570,1400,3000)
 +
 
gotoAngles5(s,1330,1250,2350,570,1400,3000)
 
gotoAngles5(s,1330,1250,2350,570,1400,3000)
 +
 +
  
 
% Lower cup to final platform
 
% Lower cup to final platform
 +
 
gotoAngles5(s,1330,1250,1550,1390,1400,3000)
 
gotoAngles5(s,1330,1250,1550,1390,1400,3000)
 +
 
gotoAngles5(s,1330,1250,1550,1390,600,3000)
 
gotoAngles5(s,1330,1250,1550,1390,600,3000)
 +
 +
  
 
% Bring arm back up
 
% Bring arm back up
 +
 
gotoAngles5(s,1330,1250,2330,1390,600,3000)
 
gotoAngles5(s,1330,1250,2330,1390,600,3000)
 +
 
gotoAngles5(s,1330,1250,2330,570,600,3000)
 
gotoAngles5(s,1330,1250,2330,570,600,3000)
 +
 +
 +
  
 
% Clapping
 
% Clapping
 +
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 
gotoAngles5(s,1330,1250,2330,570,1850,300)
 +
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 
gotoAngles5(s,1330,1250,2330,570,600,300)
 +
  
 
==Difficulties==
 
==Difficulties==

Revision as of 20:35, 9 December 2008

Members

Robot Arm Deux

Elan Silverblatt-Buser

David D'Annunzio

Matt Bowers


Goals

  • Improve original robotic arm:
  • We will add three more motors.
  • Claw to replace pencil holder.
  • This will allow the robot arm to pick objects up (perhaps glasses of water) and pour them.
  • Waiters will become obsolete!


Original Design (picture)

Original Robotic Arm

Project Description

  • Disassemble original arm.
  • Attach three extra motors; five total.
  • Zero-Out each.
  • Test out the movements.
  • Find right coordinates for presentation.
  • Stabilize and refine the final product.

Matlab Code

gotoAngles5() function gotoAngles5(s,Theta1,Theta2,Theta3,Theta4,Theta5,T)

% Turn servos to specified angles (in degrees).

% s is serial connection.

% ThetaA motor is attached to channel 1 (angle from -90 to +90).

% ThetaB motor is attached to channel 2 (angle from -90 to +90).

% ThetaC motor is attached to channel 3 (angle from -90 to +90).

% ThetaD motor is attached to channel 4 (angle from -90 to +90).

% ThetaE motor is attached to channel 5 (angle from -90 to +90).

% T is time for move (in mS);


pw1=round(Theta1); %Put in calibrarion.

pw2=round(Theta2); %Put in calibrarion.

pw3=round(Theta3); %Put in calibrarion.

pw4=round(Theta4); %Put in calibrarion.

pw5=round(Theta5); %Put in calibrarion.

cmd=['#1P' num2str(pw1)...

    '#2P' num2str(pw2)...
    '#3P' num2str(pw3)...
    '#4P' num2str(pw4)...
    '#5P' num2str(pw5)...
    'T' num2str(T)];

fprintf(s,cmd);

pause(T/1000); %Wait for command to finish.


FinalProgram

% Robot Part Deux!

% Members: David D'Annunzio

% Matt Bowers

% Elan Silverblatt-Buser


gotoAngles5(s,1530,1550,2350,570,600,3000)

gotoAngles5(s,1530,1550,1270,1660,600,3000)


% Grab cup

gotoAngles5(s,1530,1550,1270,1660,1400,3000)

gotoAngles5(s,1530,1550,2350,570,1400,3000)

gotoAngles5(s,1930,1950,2350,570,1400,3000)


% Lower cup to the bowl

gotoAngles5(s,1930,1950,1650,1300,1400,3000)


% Pour the cup

gotoAngles5(s,1930,1950,1650,2400,1400,3000)

gotoAngles5(s,1930,1950,1650,2400,1400,200)


% Shake excess water

gotoAngles5(s,1930,1950,1750,2400,1400,50)

gotoAngles5(s,1930,1950,1650,2400,1400,100)

gotoAngles5(s,1930,1950,1750,2400,1400,50)

gotoAngles5(s,1930,1950,1650,2400,1400,100)

gotoAngles5(s,1930,1950,1750,2400,1400,50)

gotoAngles5(s,1930,1950,1650,2400,1400,100)

gotoAngles5(s,1930,1950,1750,2400,1400,50)

gotoAngles5(s,1930,1950,1650,2400,1400,100)


% Bring cup to final platform

gotoAngles5(s,1930,1950,1650,1300,1400,3000)

gotoAngles5(s,1930,1950,2350,570,1400,3000)

gotoAngles5(s,1330,1250,2350,570,1400,3000)


% Lower cup to final platform

gotoAngles5(s,1330,1250,1550,1390,1400,3000)

gotoAngles5(s,1330,1250,1550,1390,600,3000)


% Bring arm back up

gotoAngles5(s,1330,1250,2330,1390,600,3000)

gotoAngles5(s,1330,1250,2330,570,600,3000)



% Clapping

gotoAngles5(s,1330,1250,2330,570,1850,300)

gotoAngles5(s,1330,1250,2330,570,600,300)

gotoAngles5(s,1330,1250,2330,570,1850,300)

gotoAngles5(s,1330,1250,2330,570,600,300)

gotoAngles5(s,1330,1250,2330,570,1850,300)

gotoAngles5(s,1330,1250,2330,570,600,300)

gotoAngles5(s,1330,1250,2330,570,1850,300)

gotoAngles5(s,1330,1250,2330,570,600,300)

gotoAngles5(s,1330,1250,2330,570,1850,300)

gotoAngles5(s,1330,1250,2330,570,600,300)

gotoAngles5(s,1330,1250,2330,570,1850,300)

gotoAngles5(s,1330,1250,2330,570,600,300)


Difficulties

  • Construction:

- Stability. Keeping the arm level.

  • Programming:

- Calibrating five zero values. - Coordinating the motors to result in smooth motion.


Video Examples of Finished Arm

Link to Video: Robot Arm Demo

Link to Video: Robot Arm Gripper Demo

Link to Video: Robot Arm Joint 1 Demo

Link to Video: Robot Arm Joint 2 Demo

Link to Video: Robot Arm Vertical Joint Demo

Link to Video: Robot Arm Wrist Demo