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

Thursday, April 21, 2011



Team One

Title: Three link manipulator

Members:

Madan Sosale(sosale@umich.edu)
Rakesh Jayakumar(rakeshj@umich.edu)
Priyanka Muralidharan(priyamur@umich.edu)

Project description:

The robot built in this project is a three link manipulator which achieves desired position via inverse kinematics. The three joints in the robot are revolute. The required position is commanded to the robot and realization of such a position is obtained by Matlab based computation of a set of angles required at each joint to attain the required position coordinated servomotor rotation(controlled by Arduino microcontrollers). Such a robot finds application in pick and place operations and in path tracking.

Objectives:

To design and build a three link manipulator which attains a desired position input into the system in terms of X,Y and Z coordinates and thus understand the kinematics involved and the fundamental principles of robotics.


Model:



1. Link 3

2. Servo 3

3. Link 2

4. Link 1

5. Servo 2

6. Balancing load

7. Servo 1

8. Base

9. Workspace

Construction:

The robot consists of three servomotors, base, three links and balancing load. The three links are of the following dimensions:

Link1=150mm

Link2=100mm

Link3=103mm

Offsets=both 23mm

Arduino microcontrollers were used to control servomotor rotation and Matlab was used in tandem for the kinematics of the robot.

Denavit Hartenberg parameters:

Link # a(mm) alpha(deg) theta d(mm)

1 0 90 theta1 150

2 100 0 theta2 23

3 103 0 theta3+90 23

Jacobian:

[10.3sin(theta1)sin(theta2+theta3)-10cos(theta2)sin(theta1)+4.6cos(theta1) 10.3sin(theta1)sin(theta2+theta3)-10cos(theta2)sin(theta1)+4.6cos(theta1) 10.3sin(theta1)sin(theta2+theta3)+2.3cos(theta1) ;]
[-10.3cos(theta1)sin(theta2+theta3)+10cos(theta2)cos(theta1)+4.6sin(theta1) -10.3cos(theta1)sin(theta2+theta3)+10cos(theta2)cos(theta1)+4.6sin(theta1) -10.3cos(theta1)sin(theta2+theta3)+2.3sin(theta1);]
[ 0 0 0 ; ]
[ 0 0 0 ; ]
[ 0 0 0 ; ]
[ 1 1 1 ]

theta1, theta2 vary from 0 to pi and theta3 from -90 to 90.

Workspace:



Control design (open loop):

The open loop control design for the three link manipulator is as shown. The position coordinates
X,Y and Z are fed into the Matlab program and the inverse kinematics is used to obtain theta1,theta2 and theta3 values. These angle values are input into the Arduino Microcontroller and the servomotor rotation is controlled to achieve desired coordinates. Additionally, the servomotors have position feedback.

Interfacing:

Matlab-Arduino interfacing was done using the routine motorserv.pde.

Result:

Thus, the desired position was achieved by the robot using servo control, Matlab routines and Arduino microcontrollers. This enabled better understanding of kinematics and fundamentals of robotics.

Future scope:

The robot can be modified to perform obstacle avoidance and more links can be added to the robot by interfacing multiple Arduinos and servomotors to perform more complex functions.

Exam question:

Derive the Jacobian for the above three link manipulator with new link lengths as given:

link1 100mm
link2 120mm
link3 140mm
offsets 25mm

Give the rotation matrices and origins of the DH frames.


Tuesday, April 12, 2011

Team One

Members (with emails):

Brief Description:

Objectives:

Picture:

Model, including Jacobian:

Block Diagram:

Control Design:

Implementation Notes:

Results:
(MATLAB plots)

Discussion: