User Tools

Site Tools


robotic_manipulators

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
robotic_manipulators [2016/07/22 16:39] joaomatosrobotic_manipulators [2016/08/06 23:28] (current) joaomatos
Line 1: Line 1:
 ===== Robotic Manipulators Basics ===== ===== Robotic Manipulators Basics =====
    
 +**Author:** Joao Matos Email: <jcunha@id.uff.br> <!-- replace with your email address -->
 +\\
 +**Date:** Last modified on 6/8/2016
 +\\
 +**Keywords:** Robotic Manipulator , Serial Arm, Denavit Hartenberg, Inverse kinematics
 +\\
 +
  This page is to introduce the theory behind the robotic manipulators. It will be used the Denavit-Hartenberg parameters notation to describe the geometry of a serial chain of links and joints (Serial-Link).Using the robotic toolbox developed by Peter Corke (RVCtoolbox) we can visualize and understand more about the Denavit-Hartenberg parameters and how the process of the inverse kinematics works.   This page is to introduce the theory behind the robotic manipulators. It will be used the Denavit-Hartenberg parameters notation to describe the geometry of a serial chain of links and joints (Serial-Link).Using the robotic toolbox developed by Peter Corke (RVCtoolbox) we can visualize and understand more about the Denavit-Hartenberg parameters and how the process of the inverse kinematics works. 
    
Line 45: Line 52:
  
 **Four steps and rules to define the frame on each joint ** **Four steps and rules to define the frame on each joint **
-  - You will define the z axes as the joints rotation axes. Start drawing only the z axis on all your joints, starting from z(0) at the base and going to z(....) at the end effector . DON'T FORGET that the z axis of the end effector must be in the same direction of the z axis of the last joint. +  - You will define the z axes as the joints rotation axes (CCW). Start drawing only the z axis on all your joints, starting from z(0) at the base and going to z(....) at the end effector . DON'T FORGET that the z axis of the end effector must be in the same direction of the z axis of the last joint. 
-  - Now you will draw the x axes , the x axis must be perpendicular to both z(j-1) and z(j). Do it for every joint. If you have more than one direction that satisfy this condition , you can choose the direction that goes from z(j-1) to z(j) axes. DON'T FORGET that the x axis of the end effector must be in the same direction of the x axis from the last joint+  - Now you will draw the x axes , the x axis must be perpendicular to both z(j-1) and z(j). Do it for every joint. If you have more than one direction that satisfy this condition , choose the direction that goes from z(j-1) to z(j) axes. DON'T FORGET that the x axis of the end effector must be in the same direction of the x axis from the last joint
   - Now you will draw the y axes.The y axis must follow the right hand rule , from z axis to x axis. And don't forget that the y axis of the end effector must be in the same direction of the y axis of the last joint.   - Now you will draw the y axes.The y axis must follow the right hand rule , from z axis to x axis. And don't forget that the y axis of the end effector must be in the same direction of the y axis of the last joint.
   - Now that you drawn the three axis on every joint , you must check if the x(j) axis intersect the z(j-1) axis. To your DH notation be right , every x(j) axis must intersect the z(j-1) axis. If you don't have this , you must translate your (j) frame , in order to guarantee this intersection.   - Now that you drawn the three axis on every joint , you must check if the x(j) axis intersect the z(j-1) axis. To your DH notation be right , every x(j) axis must intersect the z(j-1) axis. If you don't have this , you must translate your (j) frame , in order to guarantee this intersection.
Line 55: Line 62:
  
  
-  * **(aj)**: Is the displacement along the xj axis between the center of the frame (j-1) and frame (j).+  * **(aj)**: Is the displacement along the xj axis DIRECTION between the center of the frame (j-1) and frame (j).
   * **(αj)**: Is the Rotation around the xj axis that make the axis z(j-1) and z(j) to match each other.   * **(αj)**: Is the Rotation around the xj axis that make the axis z(j-1) and z(j) to match each other.
-  * **(dj)**: Is the displacement along the z(j-1) between the center of the frame (j-1) and frame (j).+  * **(dj)**: Is the displacement along the z(j-1) DIRECTION between the center of the frame (j-1) and frame (j).
   * **(θj)**: If you have only revolute joints , you can call them q1,q2,q3,q4.......   * **(θj)**: If you have only revolute joints , you can call them q1,q2,q3,q4.......
  
Line 82: Line 89:
  Following the step by step and rules presented previously, lets calculate the DH parameter for the serial arm available on the DASL at UNLV.  Following the step by step and rules presented previously, lets calculate the DH parameter for the serial arm available on the DASL at UNLV.
  
- {{ ::eixos_e_distancias.jpg?direct |}}+{{ ::novos_frames.jpg?direct |}}
  
  ** Defining the Frames **  ** Defining the Frames **
Line 94: Line 101:
  4-> checking if every x(n) axis intersect the z(n-1) axis.  4-> checking if every x(n) axis intersect the z(n-1) axis.
 {{ ::ded4.jpg?direct |}} {{ ::ded4.jpg?direct |}}
-5-> Create the table and get the DH parameters.+ 5-> Change the axis that don't follow rule 4.
 {{ ::ded5.jpg?direct |}} {{ ::ded5.jpg?direct |}}
 + 6-> Create the table and get the DH parameters.
 +{{ ::ded6.jpg?direct |}}
 +
 +
 +----
  
  
Line 277: Line 289:
  
 L1=11; L1=11;
-L2=14+L2=15
-L3=8.5;+L3=10;
 L4=21; L4=21;
 L5=8; L5=8;
 pi=3.1416; pi=3.1416;
 +
 +q0=[0 0 0 0 0];
  
 L(1)=Link([0 -L1 0 -pi/2 0]); L(1)=Link([0 -L1 0 -pi/2 0]);
-L(2)=Link([0 0 -L2 0 0]); +L(2)=Link([0 0 L2 0 0]); 
-L(3)=Link([0 0 -L3 0 0]);+L(3)=Link([0 0 L3 0 0]);
 L(4)=Link([0 0 0 pi/2 0]); L(4)=Link([0 0 0 pi/2 0]);
 L(5)=Link([0 -(L4+L5) 0 0 0]); L(5)=Link([0 -(L4+L5) 0 0 0]);
Line 292: Line 306:
 DaslArm=SerialLink(L,'name','DaslArm'); DaslArm=SerialLink(L,'name','DaslArm');
  
-DaslArm.teach()+DaslArm.teach(q0) 
 </Code> </Code>
  
-{{ ::teach_serial.jpg?direct |}}+{{ ::novoteach.jpg?direct |}}
  
 The teach command will create a window that allow you to change the q1,q2,q3,q4,q5 rotation and see how the arm moves , it's good to change this rotation by hand to check if your Denavit-Hartenberg parameters are OK. The teach command will create a window that allow you to change the q1,q2,q3,q4,q5 rotation and see how the arm moves , it's good to change this rotation by hand to check if your Denavit-Hartenberg parameters are OK.
robotic_manipulators.1469230757.txt.gz · Last modified: 2016/07/22 16:39 by joaomatos