Tuesday, April 26, 2011

Three link Revolute Joint manipulator

Team members:


Madan Sosale (sosale@umich.edu)

Rakesh Jayakumar (rakeshj@umich.edu)

Priyanka Muralidharan (priyamur@umich.edu)


Project Objective:





The objective of the project was to build a three link robotic manipulator with three revolute joints(RRR). The manipulator should be able to reach any point defined in its workspace in terms of X,Y,Z coordinates. When the coordinates are given as input, the Matlab program should calculate the joint space for that position of the end effector using Inverse Kinematics and drive the end effector to the desired position.



The image above shows the actual built model of the three link revolute joint manipulator which was fabricated by laser cutting.





The above images shows the CAD model of the three link manipulator with the origin axis shown and its link specifications.


Robot Specifications:



Link Lengths:

Link 1 L1 = 15 cm

Link 2 L2 = 10 cm
Link 3 L3 = 10.3 cm


Bounds on the angle of rotation provided by the servos are:

theta 1 =: angle of rotation of servo 1 at base: 0 to 180
theta 2 =: angle of rotation of servo 2 on Link 1: 0 to 180

theta 3 =: angle of rotation of servo 3 on Link 2: -90 to 90





Offsets provided

d1: offset provided at servo 2 = 2.5 cm

d2: offset provided at servo 3 = 2.5 cm




End effector is shown in the CAD model at the end of the blue and red line. The base frame resides at the same location as servo 1 as shown in the CAD model. Servo 1 is stationary; the entire manipulator rotates as servo 1 is actuated along the origin of our coordinate system. Please note that the links, Link 2 and Link 3 in the CAD model have been shown to have offset in the front only to help in visualize the robot specifications. In the inverse kinematics and manipulator design, the links are offset towards the back as shown in the robot images above.




Denavit Hartenberg Table for the three link manipulator shown above






The above table was calculated based on the original model fabricated.




Inverse Kinematics




The X,Y,Z values were used to calculated the joint space configuration of theta 1, theta 2 and theta 3 using inverse kinematics: the geometric approach. The entire manipulator can be visualized in two frames in order to evaluate the angles of rotation to obtain the desired end effector position.


The top view can be used to evaluate theta 1 value. 'r' is a vector from the base frame to the end effector. As the end effector must reach the (X,Y,Z) coordinates, the coordinated of the end effector can be assumed as (X,Y,Z) from the beginning.


Hence,


r^2 = x^2 + y^2


Gives,


r^2 = h^2 + (d1+d2)^2


Therefore


h = sqrt(x^2 + y^2 - (d1+d2)^2)


alpha = atan(y/x)


Finally,


theta 1 = alpha - atan((d1+d2)/h)


From the link diagram shown below the angles theta 2 and theta 3 can be calculated.



The angle theta 3 is calculated using the law of Cosines:


theta 3 = acos((h^2 +(Z-L1)^2-L2^2-L3^2)/2*L2*L3)


The angle theta 2 is then evaluated using the value obtained for theta 3 as,


theta 2 = atan2(h,s) - atan2(L2+L3*cos(theta 3),L3*sin(theta 3))

Workspace

Based on the angles of rotation and the DH table shown above, a wireframe image of the workspace was generated as shown below. Although it does not include all the points in the workspace it gives an idea of what the shape of the workspace looks like. The workspace also included the empty white spaces as all the angles of rotation were taken at a 5-10 degree interval. It would be difficult to generate the workspace for all the possible angular positions of the links as it would then generate a huge bank of data points(180*180*180 = 5,832,000 points @ 1deg interval) which would have not been possible to plot using Matlab.





Trajectory Planning and Tracking



It would be easier for the given robot to trace a certain trajectory and at a certain velocity. Since the command servoWrite is used to control the servo movements, there can be given a certain pause in the matlab command which would then directly control the rate at which the end effector reaches its desired position. The end effector can also be made to track a certain path by giving inputs for (X,Y,Z) positions in small increments of dx,dy,dz so that the robot traces the desired trajectory.



Future Work



Further the three link manipulator can be made to have a robust structure which can then be used as a pick and place robot. Also the manipulator can be programmed to then decide on the elbow up or down position which would prove helpful in industrial applications or for household applications.



Applications




  1. Can be used as a pick and place robot with a robust structure



  2. Can be used as a teaching aid, in order to explain a simple three link revolute (RRR) joint manipulator



  3. With a suitable end effector the manipulator can be programmed to trace a certain path once, save the data and then re-trace the exact same path. Such an application can have huge applications in Manufacturing industries.


VIDEOS


Enjoy the videos !!!


http://youtu.be/9uZdNirLMMM


http://youtu.be/m_PVf9ErmY

2 comments:

  1. The video shows the end effector tracing the trajectory to reach a series of desired positions in the 3-D space. For each end effector position the values of theta 1, theta 2 and theta 3 are found using inverse kinematics and suitable commands are given to servos to reach that position.

    Also, we have used Arduino Deumilanove to control the servo motor connected to the links to drive the end effector to the desired position.

    ReplyDelete
  2. Hey guys, sorry the video to the second link is broken, please use the link given below to access the video

    http://www.youtube.com/watch?v=m_PVf9yErmY&feature=mfu_in_order&list=UL

    ReplyDelete