Robot Arm Modeling
Introduction
This demonstration illustrates the power of Maple to create a mathematical model of a robot arm. Maple is able to quickly solve problems using the model and visualizes the results.
The following Maple techniques are highlighted:
- Using the model to solve a problem
- Visualizing the model using a three-dimensional animation
Initialization
The Example
This application implements a mathematical model of robots based on the homogenous transformation of Denavit & Hartenberg. The worksheet derives the Matrix of D&H, and applies it to the motion of a robot "elbow". By means of symbolic solution of the function for the angular position Theta[i] of planar joints, we can calculate the actual values, the position parameters for the given path of the movement of robots.
Definition of Transformation Matrix
The transformations Matrix of rotation around co-ordinate axis z[i] by angle
i+1 (actually simple
) is A1, the transformation Matrix of movement in the direction of z[i] by distance di+1 (actually simple d) is A2.
The common transformation Matrix of the rotation and movement is B1.
The transformations Matrix of rotation around co-ordinate axis
by angle
(actually simple
) is A3, the transformation Matrix of movement in the direction
by distance
(actually simple
) is A4.
The common transformation Matrix of the rotation and movement is B2.
The Matrix of D&H designed as more specialized transforms for robots
axis along the motion of its ith joint
axis normal to
axis, and points away from it.
The steps of transformation are:
1. rotating about
by
(joint angle)
2. translating along
by d (link offset)
3. translating along
by a (link length)
4. rotating about
by
(link twist) .
The general transformation of D&H Matrix is
> |
 |
 |
(4.1) |
Transforming the Robot Arm
The substitution of the actual geometrical parameters into the Matrix H provides the actual matrices for transformations of arms of the Elbow type robot H1, H2, H3. The final transformation expressed by Matrix H14 = H1.H2.H3.
> |
 |
Basically, we can find the joints angles, ![Theta[2]](/view.aspx?SI=6850/Robot Arm Modeling_36.gif)
for the robot based on the given position r(t) of the end effector.
The joints angles are in closed form derived.
The problem is to find the joint parameters given only by the numerical values of the homogeneous transformation which model the mechanism. Solution of the problem is where to drive the joints in order to get the hand of an arm in the right place.
We may try to solve the problem by examining the transformation Matrix.
You can type the function r(t) of path in this place!
> |
r(t):=x(t)=350+120*sin(2*t),y(t)=350-150*cos(t),z(t)=450: |
> |
![`:=`(v, Vector([0, 0, 0, 1])); -1](/view.aspx?SI=6850/Robot Arm Modeling_38.gif)  |
> |
![`:=`(eq1, `/`(`*`(w[1]), `*`(w[2])) = `/`(`*`(x(t)), `*`(y(t)))); -1](/view.aspx?SI=6850/Robot Arm Modeling_40.gif)  |
 |
(5.1) |
> |
 |
 |
(5.2) |
> |
![`:=`(W1, `+`(combine(w[3], trig), `-`(z(t)))); -1](/view.aspx?SI=6850/Robot Arm Modeling_52.gif)  |
Remark: the joint parameter 

> |
 ![`:=`(Theta3, `+`(simplify(sol[2], trigonometric), `*`(`/`(1, 2), `*`(Pi)))); -1](/view.aspx?SI=6850/Robot Arm Modeling_58.gif) |
Animation of the robot
The arm lengths an radius parameters of Elbow type robot are l2, ..., l5 and rho1, ..., rho5. The angles alpha2 and alpha3 are for orientation of patch curve.
> |
halmaz := [alpha2=evalf(Pi/4), l2=500, l3=450, l4=350, alpha3=1, r(t), l5=200]:N := 50: |
> |
rho1 := 150: rho2 := 70: rho3 := rho2+5: rho4 := 60: rho5 := 50:w := 15: |
> |
![`:=`(rho6, rho5); -1; `:=`(l2, rhs(halmaz[2])); -1; `:=`(l3, rhs(halmaz[3])); -1; `:=`(l4, rhs(halmaz[4])); -1; `:=`(l5, rhs(halmaz[9])); -1](/view.aspx?SI=6850/Robot Arm Modeling_59.gif) |
Legal Notice: The copyright for this application is owned by Maplesoft. The application is intended to demonstrate the use of Maple to solve a particular problem. It has been made available for product evalution purposes only and may not be used in any other context without the express permission of Maplesoft.