Difference between revisions of "Robotic Arm Deux"

From ENGR005 2008
Jump to: navigation, search
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
==Members==
 
==Members==
  
[[Image:IMG_1569.JPG | thumb| 400px | right]]
+
[[Image:IMG_1569.JPG | thumb| 400px | right | Robot Arm Deux]]
  
 
[[User:Esilver1 | Elan Silverblatt-Buser]]
 
[[User:Esilver1 | Elan Silverblatt-Buser]]
Line 19: Line 19:
  
  
==Original Design==
+
==Original Design (picture)==
[[Image:IMG_1533.JPG | thumb| 400px]]
+
[[Image:IMG_1533.JPG |400px | Original Robotic Arm]]
  
 
==Project Description==
 
==Project Description==
Line 29: Line 29:
 
*Find right coordinates  for presentation.
 
*Find right coordinates  for presentation.
 
*Stabilize and refine the final product.
 
*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==
 
==Difficulties==
Construction:  
+
*Construction:  
 
- Stability. Keeping the arm level.
 
- Stability. Keeping the arm level.
  
Programming:
+
*Programming:
 
- Calibrating five zero values.
 
- Calibrating five zero values.
 
- Coordinating the motors to result in smooth motion.
 
- Coordinating the motors to result in smooth motion.
  
  
==Video Examples==
+
==Video Examples of Finished Arm==
 +
 
 +
Link to Video: [[Media:WikiDemoRobotArm.avi|Robot Arm Demo]]
 +
 
 +
Link to Video: [[Media:Gripper.AVI|Robot Arm Gripper Demo]]
 +
 
 +
Link to Video: [[Media:Joint1.AVI|Robot Arm Joint 1 Demo]]
 +
 
 +
Link to Video: [[Media:Joint2.AVI|Robot Arm Joint 2 Demo]]
 +
 
 +
Link to Video: [[Media:VerticalJoint.AVI|Robot Arm Vertical Joint Demo]]
  
Link to Video: [[Media:Demo2.AVI|Robot Arm Demo]]
+
Link to Video: [[Media:Wrist.AVI|Robot Arm Wrist Demo]]

Latest revision as of 20:36, 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