design of a robot arm - tech united · pdf fileeen natuurlijke keuze is dan de robotarm te...

29
Design of a robot arm I.M.H. van Haaren 0656060 Supervisor: Ir. P.W.M. van Zutven 29 th January 2012 DC2012.006

Upload: vankiet

Post on 25-Feb-2018

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

        

Design of a robot arm I.M.H. van Haaren 

0656060 Supervisor: Ir. P.W.M. van Zutven 

29th January 2012 DC2012.006 

Page 2: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

Ontwerp van een robot arm

BEP project opdrachtomschrijving

start datum: semester 1, 2011

begeleiders: ir. Pieter van Zutven

Menselijke robots zullen een onderdeel worden van ons dagelijkse leven [1,2]. Onderzoekers hebben al menselijke robots ontwikkeld met verschillende menselijke kenmerken, omdat deze robots bedoeld zijn om verschillende taken in de industrie, het huishouden, de gezondheidszorg, etc. van mensen over te nemen. Het menselijke uiterlijk wordt gezien als de meest gangbare connectie tussen mensen en robots.

Binnen de Dynamics and Control Group van de Technische Universiteit Eindhoven wordt een menselijke robot

ontwikkeld door team EINDroid [2]. Team EINDroid is onderdeel van een Nederlands initiatief om menselijke robots te maken [1,2]. Het initiatief kent verschillende onderzoeksuitdagingen, zoals modelleren, dynamische analyses, en het regelen van robotmechanismen met een groot aantal graden van vrijheid. Op dit moment werkt team EINDroid aan drie robots waarvan de menselijke robot TUlip het grootste is, zie Figuur 1. TUlip heeft twee benen met elk 6 graden van vrijheid. Met deze benen is TUlip op dit moment in staat zelfstandig te lopen en draaien. Zoals duidelijk in Figuur 1 te zien is, zijn de armen van TUlip zeer simplistisch. Ze hebben slechts 1 vrijheidsgraad en zitten puur voor de sier op de robot. In de toekomst moet TUlip ook voorwerpen kunnen oppakken en dragen. Om TUlip deze vaardigheden te geven is dus een ontwerp nodig van een geavanceerdere robotarm.

Figuur 1. TUlip

Figuur 2. Voorbeeld van twee robot armen

Het doel van dit onderzoek is het ontwerp van één antropomorfische robotarm met 4 tot 6 vrijheidsgraden. Voorkeur gaat uit naar 6 vrijheidsgraden omdat dit volledige controle geeft over de positie en oriëntatie van de hand van de robot. Het ontwerp van een hand hoeft binnen dit project niet gerealiseerd te worden, maar de arm moet tenminste een schouder en ellebooggewricht hebben en eventueel een polsgewricht. Het is de bedoeling dat de arm, wanneer deze in de toekomst is uitgerust met een hand, objecten op kan pakken van tenminste 500 gram. Verder moet de arm licht en stijf zijn zodat de positie nauwkeurig geregeld kan worden.

Dit project kent een aantal uitdagingen. Als eerste moet de ontworpen robotarm licht en stijf zijn en is er zeer beperkte ruimte voor electronica beschikbaar in TUlip. Een natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. Een voorbeeld hiervan is te vinden in Figuur 2. Verder dient aan de hand van een model met bijbehorende simulaties aangetoond te worden dat de arm de gespecificeerde taak kan volbrengen [3,4].

De resultaten van dit onderzoek zijn belangrijk om de vaardigheden van de menselijke robot TUlip te vergroten, zodat een groter scala aan onderzoeksmogelijkheden ontstaat. Uiteindelijk brengt dit onderzoek ons een stapje dichterbij robots in de alledaagse samenleving. Referenties

[1] http://www.dutchrobocup.com

[2] http://www.eindroid.nl/

[3] M.W. Spong and S. Hutchinson and M. Vidyasagar: Robot modeling and control, New York: John Wiley and Sons, Inc. 2006

[4] P. van Zutven: Modeling, identification and stability of humanoid robots, MSc thesis, DCT report 2009.100, Section Dynamics and Control, Dep. Mech. Eng., Technische Universiteit Eindhoven, 2009.

Page 3: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

  

Contents 

 

1. Introduction                1   1.1 Humanoid robot TUlip            1     1.2 Design requirements            2  2. Kinematics                  3     2.1 Forward Kinematics             3     2.1.1 Denavit Hartenberg convention        3     2.1.2 Frame selection            5   2.2 Inverse Kinematics              6  3. Implementation in MATLAB®            7   3.1 Robotics toolbox              7     3.1.1 Serial‐link manipulator          7   3.2 Simulations                8     3.2.1 Forward kinematics          8     3.2.2 Inverse kinematics           9     3.2.3 Torque              10     3.2.4 Mass              10  4. Design                  11   4.1 Design considerations            11     4.1.1 Actuator choice            11     4.1.2. Material choice            12     4.1.3 Transmissions            12   4.2 Design                13     4.2.1 Shoulder              13     4.2.2 Elbow              16     4.2.3 Wrist              16    Conclusion                  18  Recommendations                19  Bibliography                  20  Appendices                  21 A   Determination DH parameters            21 B   Creating a serial‐link manipulator          22 C   Forward kinematics              22 D   Inverse kinematics              23 E   Link information              24 F   Determination torque              26 G   Human mass distribution            26 

Page 4: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

1  

Chapter 1 Introduction 

 1.1 Humanoid robot TUlip The  humanoid  robot  TUlip  (Figure  1)  is  a  result  of  a  cooperation  between  the  three  universities  of technology  in  the Netherlands  (Delft  University  of  Technology, University  of  Twente  and  Eindhoven University  of  Technology).  These  universities  have  agreed  to  join  efforts  in  creating  and  designing humanoid robots, which is called the Dutch Robotics initiative and is part of a long term vision. A vision in which  a  new  generation  of  robots will  become  affordable  and  sufficiently  autonomous  for  use  in households.   TUlip is a bipedal robot based on the dynamic walker Flame from the Delft University of Technology and was especially designed for humanoid walking. That  is why each  leg has six degrees of freedom which allows  the  robot  to walk  in  any  direction  in  a  humanlike way.  This  is  in  big  contrast with  the  very simplistic arms of TUlip. These arms only have one degree of freedom and enable TUlip to stand up after the robot has fallen onto the ground. In order to pick up and move objects a new arm for TUlip needs to be designed. The  theory behind designing  these arms and  the design process will be discussed  in  this report.  

  

 Figure 1: Humanoid robot TUlip of Team Eindroid [1] 

   

Page 5: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

2  

1.2 Design requirements The new design of the arm of TUlip should enable TUlip to make the same movements as a human arm. Also  it  should be able  to make  those movements while carrying a weight of approximately 0.5 kg.  In order to simulate this, a trajectory is chosen. In this trajectory the arm of TUlip will move to an object on a table which  is directly  in front of the robot and approximately at abdominal height. This trajectory  is shown in Figure 2.   

 Figure 2: Trajectory of the robot arm 

 In order to let the arm move in a human like way the arm should have more degrees of freedom (DOF’s) than TUlip has at this moment. Currently TUlip has one DOF  in the shoulder which allows the robot to swing the whole arm sideways to the body.  A human arm has 7 DOF’s [2], three in the shoulder, two in the elbow and two in the wrist. The effect of the two DOF’s in the wrist is negligible and can be adopted by the other two joints. Therefore the wrist joint will only have one DOF which gives the full control over the orientation of the gripper. The shoulder and elbow both have the same amount of DOF’s as a human. When one of these DOF’s  is  left out the arm does not have the same range as a human arm has. Therefore the robot arm that is designed has 6 DOF’s, three in the shoulder, two in the elbow and one in the wrist. Every DOF has a corresponding link so the robot arm consists of 6  links. These  links connect the different DOF’s, therefore the upper arm and lower arm can be considered as a link. The lengths of the links are determined from Figure 3. Here the  lengths  of  the  major  body  segments  are  expressed  as  a  fraction  of  the  total  height.  TUlip  is approximately 1.3 meter,  so  the measurements of  the upper arm and  lower arm will be  respectively 0.24 and 0.19 meter. The design of the gripper will not be discussed  in this report but the weight and orientation of  the end effector  can  influence  the  rest of  the arm  therefore a  length of 0.10 meter  is chosen for the gripper. This gives an arm with a length of 0.53 meter.  

 Figure 3: Lengths of major body segments expressed as a fraction of the total height [3] 

Page 6: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

3  

Chapter 2 

Kinematics  

2.1 Forward Kinematics Forward  kinematics  is  the problem of  locating  the position  and orientation of  the end effector, with given  joint angles. The end effector of  the  robot arm  is  the gripper.  In order  to  solve  this problem a model of  the  robot arm needs  to be made.  In  this model  there has  to be a  relationship between  the individual  joints of  the robot arm and  the position and  the orientation of  the end effector. With  joint angles that need to be variable. For making this model a convention needs to be chosen  for selecting frames of reference for the different links of the robot arm. 

2.1.1 Denavit Hartenberg convention 

The convention that is used for selecting frames of reference for the robotarm is the Denavit Hartenberg convention  (DH  convention). With  the  DH  convention  a  frame  is  attached  to  each  link  in  order  to describe  the  location  of  each  link  relative  to  its  neighbor  [4].  To  characterize  this  frame  a  set  of parameters  is  specified.  These  parameters  describe  the  relative  rotation  and  translation  between consecutive frames.   With  the  DH  convention  it  is  possible  to  describe  the  relative  rotation  and  translation  between consecutive frames with only 4 parameters instead of 6, which are normally required for 3D motion. But this is not possible with any arbitrary homogeneous transformation; there are two features that need to be met. In order to explain these features two frames are considered, frame 0 and 1 (Figure 4).   

 Figure 4: Coordinate frames satisfying DH1 and DH2 [4] 

 The features that the two frames have are [4]:  

‐ The axis   is perpendicular to the axis   (DH1). ‐ The axis   intersects the axis   (DH2). 

In  these  frames  the   axis of  frame 0 will be  the  axis of  rotation  for  frame 1. This will be discussed further in paragraph 2.1.2. 

Page 7: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

4  

By stating that   and   intersect and are perpendicular, a plane is formed in which the two axes can be used as basis vectors. The   and    terms now  fully define  the vector between  the origins of  the  two successive frames, which means that there is no need for a third dimension. And because one axis from the  first  frame and one axis  from  the second  frame  form a plane, only  two rotational parameters are needed to represent the relative orientations of the two frames. These parameters are the out‐of‐plane rotations    and  .  There  are  no  in‐plane  rotations  because  of  the  perpendicular  assumption  (DH1) therefore a third rotation  is not required. The displacement between   and   can be expressed as a linear combination of the vectors   and   (DH2).   The  four  parameters  that  give  information  about  the  geometric  relationship  between  the  two coordinate frames are  , ,  and  . These parameters are called  link  length,  link offset,  joint angle and link twist in this report [4].   

‐ The link length is the distance between the axes   and  , this distance is measured along the axis  . The transformation that belongs to the  link  length  is the translation  in the direction of the   axis ( , ). 

‐ The  link  offset  is  the  distance  from  the  origin    to  the  intersection  of  the  axis with   measured along the   axis. The transformation that belongs to the link offset is the translation in the direction of the   axis ( , ). 

‐ The joint angle is the angle from   to   measured in a plane normal to  . The transformation that belongs to the joint angle is the rotation around the   axis ( , ). 

‐ Finally the link twist is the angle between the axes   and  , measured in a plane normal to  . The transformation that belongs to the link twist is the rotation around the   axis ( , ). 

The positive direction for   is determined by the right hand rule from   to  .  The  DH  convention  uses  a  product  of  the  four  basic  transformations  to  represent  a  homogeneous transformation  . Between every neighboring frame a transformation matrix needs to be made. When these matrices are multiplied the complete transformation from the base frame (shoulder) to the end effector  (gripper)  will  be  described.  This  solves  our  kinematics  problem.  The  homogeneous transformation between two neighboring frames is given by:   

, , , ,  

  

 

0 0

0 00 0 1 00 0 0 1

 

1 0 0 00 1 0 00 0 10 0 0 1

1 0 00 1 0 00 0 1 00 0 0 1

 

1 0 0 00     00     00 0 0 1

   

  

   

                  

0    0 0 0 1

        (1) 

    

Page 8: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

5  

2.1.2 Frame selection 

With the DH convention everything revolves around choosing the right frame orientation for each joint. Important to remember is that the choices for the coordinate frames are not unique, it is possible that more coordinate frames for the robot arm are equally correct with the same end result [4]. Also when a joint  has  more  degrees  of  freedom,  for  example  the  shoulder,  one  joint  can  have  more  frame orientations.   The robot arm only has revolute joints, which means that the   axis will be the most  important axis to determine for every movement because the   axis will be the axis of rotation for every DOF. Also a very important aspect of the DH convention  is that the   axis of frame   will be the axis of rotation for the next DOF  1.   When for every DOF the   axis is determined, the base frame can be established. Important to keep in mind  is  that every  frame needs  to be  right‐handed. The  link  twist  can be very helpful  to  change  the direction of the   axis, so that it points in the right direction for the next translation.  The link twist is the angle between the axes   and  , measured in a plane normal to  . This means that the direction of the   axis is very important. For the detailed determination of the coordinate frames and parameters, Appendix A can be consulted. The coordinate  frames of  the arm are given  in Figure 5 and 6 with  the corresponding values for the parameters  , ,  and   in Table 1. 

 Figure 5: DH coordinate frame robot arm 

 

                                                                                                                                Table 1: DH parameters for the robot arm 

     

 

Link      

1  /2 0    0

2  /2 0    /2 0

3  /2 0    /2

4  /2 0    0

5  /2 0   

6  0     /2 0

Figure 6: DH coordinate frame with torso

Page 9: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

6  

2.2 Inverse kinematics 

The problem of  inverse kinematics  is  in general more difficult  than  the  forward kinematics. With  the inverse kinematics you want to  find the  joint variables  for a given position and orientation of the end link [4]. This is very important for finding the forces in every joint when the robot arm needs to move to a certain point. Humans solve this problem all the time without even thinking about it. But for robots it’s far more complicated. To explain this, a simple example will be given in Figure 7.              

Figure 7: Solutions corresponding with different degrees of freedom [5] 

 This  simple  2D  example  shows  that  there  are  usually many  solutions  for  a  robot  arm with multiple DOF’s.  For  the  3D  robot  arm with  six  DOF’s we  are  considering,  the  amount  of  solutions  can  even become  infinitely  [6].  It  is  analytically  very  hard  to  find  even  one  solution.  Therefore  nonlinear programming  techniques are used, namely  the Robotics  toolbox  in MATLAB®. This  is discussed  in  the next Chapter.                       

One Solution      Two Solutions Multiple Solutions 

Page 10: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

7  

Chapter 3 Implementation in MATLAB® 

 3.1 Robotics toolbox The  toolbox  that  is  used  for  simulations  of  the  robot  arm  in MATLAB®  is  the Robotics  toolbox.  This toolbox  is  written  by  Peter  Corke  and  provides  many  functions  that  are  useful  for  the  study  and simulation of classical arm type robotics, for example kinematics, dynamics, and trajectory generation. In the toolbox objects, such as a robot arm, are represented as a serial‐link manipulator [7].   3.1.1 Serial‐link manipulator The serial‐link manipulator  that can be created with  the Robotics  toolbox consist of  the  links  that are determined with the DH convention (Table 1). The only input the Robotics toolbox needs is a matrix with the DH parameters  , ,  and  . After  inserting  these  in MATLAB®  the  following model  is created (script for implementing the DH parameters in MATLAB®, Appendix B).   

  

Figure 8: MATLAB® model for the serial‐link manipulator 

 The coordinate frames of the different DOF’s are the same as in Figure 3. So the shoulder on the left is connected with the torso.  In Table 1 can be seen that  link 2, 3 and 6 have an offset  in the  joint angle. This offset  isn’t taken  into account when  the Robotic  toolbox plots  the serial‐link manipulator because  the  joint angle  is seen as variable. Therefore an offset vector is used ( ) so that the serial‐link manipulator is plotted in the right begin position (Figure 8).  

-0.5

0

0.5

-0.5

0

0.5

-0.5

0

0.5

XY

Z

Tulip

xy z

Page 11: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

8  

3.2 Simulations The model  is created  so  simulations  can be  run. Before assuming  that  the model works,  the  forward kinematics are tested. The results that are obtained from the forward kinematics can later be used with the inverse kinematics.   3.2.1 Forward kinematics The  input  that  is  needed  for  solving  the  problem  of  the  forward  kinematics  are  the  serial‐link manipulator ( ) and a vector with a value for every angular rotation ( ). The function   can be used to calculate the forward kinematics. In the function   the vector   is interpreted as the generalized joint  coordinates,  therefore    returns a 4 4 homogeneous  transformation  for  the end  link. This transformation matrix  is  determined  the  same way  as  is  described  in  Chapter  2.  So  for  every  link  a transformation matrix    is made. Multiplying all these transformation matrices will give the complete transformation matrix   . In Appendix C a script is given for the following example:  We want the whole arm to move 90˚ counter clockwise. The corresponding vector of angular rotation is:  

       0 – /2  0  0  0  0 ,        (2)  which will result in the following transformation matrix ( ):   

,

0 0 0 1

0 0 1 00 1 0 01 0 00 0 0 1

   (3) 

  This means that the end link is at a new position of (0,0,0.5316), which is correct. It can also be verified by plotting the new position of the arm (Figure 9).   

 Figure 9: MATLAB® model of serial‐link manipulator in new position 

-0.5

0

0.5

-0.5

0

0.5

-0.5

0

0.5

XY

Z

Tulip

xyz

Page 12: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

9  

3.2.2 Inverse kinematics The Robotics toolbox also has a function for solving the  inverse kinematics problem, this  is  . The input  that  is  needed  are  the  serial‐link manipulator  and  the  transformation matrix  ( )  for  a  given coordinate.  The matrix    is  the  same matrix  that  is  obtained  from  the  function  . Which  we obviously need to find in another way because the input for the function   is the output we want to get out of the function   , namely the angular rotation vector  . But the function   can be used to check the function  .   The matrix T needs to be determined with only the three values for  , , and  . A function which can be used for this is:            , ,           (4)    But the matrix that  is received cannot always be used  in the function  . The reason for this is that the matrix does not have  the orientation embedded  in  the  first  three  columns and  rows. The matrix always has the following form when the function   is used:  

           

1 0 00 1 00 0 10 0 0 1

          (5) 

 As can be seen in Formula 3 the transformation matrix will not always have this form. The values in the first three columns and rows can have a different position and value. Therefore the assumption is made that for different parts of the area in which the robot can move the arm will have a certain orientation. This means that the end effector will always point in the same direction for a certain part of this area.  These parts in which the area is divided are: 

‐ Area in which the value for   is bigger than the absolute value for   and  . A visual example is given in Figure 10. 

‐ Area in which the value for   is bigger than the absolute value for   and  . ‐ Area in which the value for   is bigger than the absolute value for   and  . ‐ Area  in which  the absolute value  for    is bigger  than  the absolute value  for   and  . And  the 

value for x is smaller than zero. ‐ Area  in which  the absolute value  for    is bigger  than  the absolute value  for   and  . And  the 

value for y is smaller than zero. ‐ Area  in which  the absolute value  for    is bigger  than  the absolute value  for   and  . And  the 

value for z is smaller than zero. The script for the function   is given in Appendix D.  

 Figure 10: Visual representation for orientation matrix 

Page 13: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

10  

3.2.3 Torque  Finally the torque that corresponds to the desired trajectory can be determined  in every joint. For this the  distance,  velocity  and  acceleration  are  needed. Moreover  information,  like  the  limited  rotation angles, the weight, inertia matrix, gear ration and friction for every link is required. These values can be found in Appendix E.  Also the duration of one movement needs to be known otherwise the velocity and acceleration cannot be  determined.  The  duration  of  one movement  depends  on  the  requirements  for  the  robot.  It  also varies for a bigger movement; therefore the time  is not fixed and can be changed depending on what movement is made. The duration for the movement that is discussed in this report is set at 3 seconds.  With  the  function  ,  the distance, velocity and acceleration of one  trajectory can be determined. The  input for this function  is the time, the offset rotational vector   and the vector   received from 

  (the vector of angular  rotation of  the begin point and  the  same vector  for  the endpoint of  the trajectory).  

       , ,   , ,       (6) 

 When  the  distance,  velocity  and  acceleration  are  known  the  torque  ( )  for  every  link  can  be determined with  the  function  . The  input  for  this  function  is  the  serial  link manipulator, distance, velocity, acceleration and the gravitation vector ( ).            , , , ,       (7) 

 So far the gravitation vector was not necessary, but obviously for the determination of the torque it is. It is very important that the correct direction for the gravity is chosen. In our case it is the   axis. The script for the determination of the torque is given in Appendix F.  

3.2.4 Mass It is already mentioned that the mass for every link is required to calculate the torque. The weight of the arm will form the biggest influence on the outcome for the torque, making an assumption for the weight of the robot arm is an iterative process. In order to find out how much torque is needed in every link the mass of the arm needs to be inserted in the Robotics toolbox. But there are some factors that influence the mass of the arm that cannot be considered until the torque is known. These factors are the mass of the actuators and material. Therefore a good estimation  for  the weight of  the robot arm needs  to be made the first time the torque is calculated with the Robotics toolbox. The estimation can be made with use of  the mass distribution of  a human  and  the weight of TUlip.  The  total  robot mass of TUlip  lies around 45 kg. The mass fraction of an arm is around the 6% (Appendix G)[8] which means that the total arm can weigh 2.7 kg. Keep in mind that the robot needs to be able to lift an object with a mass around the 0.5 kg which means that the weight  inserted  in the Robotics toolbox will be 1.35 kg for the upper arm, 1.35 kg for the lower arm and gripper and 0.5 kg on the end effector. The absolute torques in every link are shown in Table 2, for the robot arm with a maximum weight of 2.7 kg that is picking up an object of 0.5 kg right in front of him.   

    Table 2: Absolute torque in the links of a robot arm with a mass of 2.7 kg 

Weight of the robot arm is 2.7 kg 

Link  1  2  3  4  5  6 

Max. Torque (Nm)  8.87  10.25  0.88  2.75  0.07  0.43 

Page 14: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

11  

Chapter 4 Design 

 

4.1 Design considerations Before  a  design  can  be made  there  are  some  questions  that  need  to  be  answered.  Some  of  those questions have already been answered  in previous chapters,  like the number of DOF’s  in the arm, the measurements of the arm and the trajectory that needs to be accomplished. Also the torque that the motors in the arm need to deliver to make the arm move in every possible direction is determined.   In this chapter the following considerations are taken into account.  

‐ What kind of actuator needs to be used for the joints. ‐ Which material is the best choice for this design. ‐ Are transmissions needed. 

 4.1.1 Actuator choice An  important  factor  for  choosing  the  actuator  is  the  existing  experience with  the  actuators  that  are already  used  in  TUlip.  The main  reason  for  this  is  that  the  knowledge  on  how  to work with  these actuators is already available and the electronics and drivers can be kept the same. At this moment two different kinds of actuators are used in TUlip. The actuators that are used in the legs are much stronger than the actuators that are used in the neck and the arms and therefore too heavy. Looking at Table 2, the motor that  is used  in the neck and arms  is sufficient with use of a transmission  in some  links even without  in  others.  Therefore  this  actuator  is  chosen.  This  is  a Dynamixel  RX‐28  (Figure  11),  a  smart actuator with integrated speed reducer, controller, driver and network function in one module [9]. This Dynamixel  has  a  compact  size  but  generates  relatively  big  torque  because  of  the  efficient  speed reduction and is relatively cheap. Another strong point of the Dynamixel is that the main processor can set  speed, position,  compliance,  torque etc.  simultaneously with  a  single  command packet,  so  it  can control  several Dynamixels with a  little  resource. This  is a huge advantage because  the arm will have multiple Dynamixels  in order to meet the requirement of 6 DOF’s and there  is  little space available for the electronics in TUlip. Also the actuator is light weight which will enable us to reduce the weight of the arm. The specifications of the Dynamixel RX‐28 are given in Table 3.   Table 3: Specifications of Dynamixel RX‐28 [9] 

 Figure 11: Dynamiel RX‐28 

  Dynamixel RX‐28 

Weight (g)  72 

Dimensions (mm)  35.6 x 50.6 x 35.5 

Gear Ratio  1/193 

Operation Voltage (V)  12 ~ 18.5 

Holding Torque (Nm)  0.37 

Max Current (mA)  1200 

Resolution (degrees)  0.29 

 Motor  Maxon RE‐MAX 

Page 15: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

12  

4.1.2 Material choice The choice of the material for the frames that connect the Dynamixels, is the same as the material that is  already  used  in  TUlip.  The material  of  the  frame  that  is  used  in  the  legs must meet  the  same requirements as those for the arm. It should be light weight while remaining stiff so that the position of the  arm  can be precisely  controlled. Also  it  should be  easily mountable  and produced  and  relatively inexpensive. The material  that  is used  in  the  legs, and will be used  for  the new design of  the arm,  is aluminum this material meets these requirements.   4.1.3 Transmissions For some  links a transmission  is necessary to reach the desired torque. The desired torque varies with the weight. The first assumption for the weight of the robot arm was based on the mass distribution of the robot. At this moment a second assumption can be made with use of the weight of the Dynamixel RX‐28 and the material. Every  link at  least needs one Dynamixel and  in some cases even two. Also the frame  from aluminum between  these Dynamixels has a certain mass. When  there  is assumed  that  in total 10 Dynamixels are needed for the arm and the frame of the arm is a tube with a length of 480 mm by 35.6 mm with a thickness of 4 mm, the mass of the arm stays under the 1.5 kg. Keep in mind that this is a large assumption because it is not necessary to use a solid frame for the entire arm. A safety margin of 10% is used by computing the torques with an arm of 1.65 kg. With these values the transmission in every link can be determined keeping into account that it is also possible to use two Dynamixels per link, see Table 4.   

    Table 4: Transmissions in every link 

Weight of the robot arm is 1.65 kg 

Link  1  2  3  4  5  6 

Max. Torque (Nm)  5.69  6.60  0.59  1.85  0.05  0.31 

Transmission 1 Dynamixel  1:15  1:17.5  1:1.6  1:4.9  ‐  ‐ 

Transmission 2 Dynamixels  1:7.5  1:8.75  ‐  1:2.45  ‐  ‐ 

                    

Page 16: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

13  

4.2 Design All the information needed to make a new design for the robot arm is known. The DOF’s per joint, the length of the upper and  lower arm, the actuators and material for the frame that will be used and the transmissions that are needed.  Per joint the new design(s) will be addressed separately.   4.2.1 Shoulder The  shoulder has  three DOF’s and  the movements of  the  first and  second  link need a  relatively  large transmission. For these transmissions gears are used. A gear transmission is one of the easiest ways to increase the  torque and decrease the backlash. The backlash must be kept to a minimum,  in order to accurately control joint positions, especially for the big movements that are made in the first two links. For the  first  link two actuators are used otherwise the transmission  is too big which would result  in a very big gear. The  two actuators are placed against  the  torso. The plane on which  the actuators are placed  is inclined therefore an attachment is used, this is shown in Figure 12. The actuators are placed with  the gears towards the torso, so that when  the big gear  is placed  (Figure 13)  the whole assembly requires as  little space as possible. The radius of the big gear  is made as big as possible which gives a transmission of 1:8.24.  

             Figure 12: Attachments on inclined surface                         Figure 13: First DOF shoulder    The second  link also needs two actuators, especially for this  link  it  is not possible to create such a big gear, because the gear is placed next to the body and otherwise requires too much space.   

                Figure 14: Second DOF shoulder             Figure 15: Circle in which the actuator will rotate 

 

Page 17: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

14  

In Figure 14 and 15 can be seen that the actuators are again placed in a way so that they do not require too much space. The actuator on the  left  in Figure 14  is placed between the two actuators of the first link and mounted on the gear of the first  link. The space  is  just  large enough to fit the actuator of the second link, even when the gear of the first link is rotating (Figure 15). The actuator on the right is not ideally  placed,  but  it  cannot  be moved  downwards  because  then  it will  limit  the movement  of  the second  link. An attachment  is mounted on the actuator on the  left which holds the axis of the two big gears of the second link. The transmission of this link is 1:9.09.   For  the  last  link of  the  shoulder only one actuator  is necessary. For  the  transmission a gear with  the teeth  on  the  inside  is  used  (Figure  16),  the  axis  of  this  gear  is mounted  on  the  actuator.  It  is  very important that the axis of rotation from every link intersects the other two in a certain point as can be seen in Figure 17. Therefore the radius and place of the third gear is chosen in such a way that the axis of rotation of this link intersects with those of the first two links.   

            Figure 16: Third DOF shoulder                     Figure 17: Intersection axes of rotation 

 Because one of  the  actuators of  the  second  link,  the  actuator on  the  right  in  Figure 14,  sticks out  a second design for the shoulder is made. In this design not the two actuators of the first link are mounted to  the  torso but  the gear  (Figure 18), which means  that  this gear  is  fixed and  the  two actuators are moving around  it. By doing  this  the  two actuators of  the second  link can both be placed  in  the space between the two actuators of the first link, because they do not have to rotate in this space as shown in Figure 18. The rest of the shoulder  is mounted on the two actuators that are moving around the gear (Figure 19).  

          Figure 18: First link shoulder with actuators of the second link       Figure 19: Second design shoulder 

Page 18: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

15  

This design requires less space than the first design but is more fragile, because the two actuators of the first link need to carry the mass of the whole arm. Therefore a frame is made which keeps the actuators in place. The distance between the two actuators should always stay the same. By connecting them with a frame of which the middle lays in the centre of the large gear the distance between the two actuators will always be the diameter of the large gear.   

                                         Figure 20: Frame first link                                             Figure 21: Fixed wheel on torso 

 Behind the  large gear the frame  is connected to a wheel which  is fixed on the axis on which the  large gear is mounted (Figure 21). The frame grabs this wheel (Figure 22), allowing it to still rotate. To clarify this connection a cross section is given in Figure 23.   

         Figure 22: Connection frame to wheel                                                Figure 23: Cross section connection  

      

Page 19: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

16  

 4.2.2 Elbow The  first  link of  the elbow needs  the biggest  transmission. When only one  actuator  is used  the  gear would be very big compared to the thickness of the arm, therefore two actuators are used. By placing them on top of each other they even require the same space as when only one actuator is used (Figure 24).   The second actuator of  the elbow has  to produce  the  least  torque,  therefore no  transmission  is needed. For the placing of this actuator it is important that the axis of rotation is enlined with the axis of rotation from the third link of the shoulder (Figure 25).  

                                                    Figure 24: First DOF elbow                        Figure 25: Elbow joint 

 4.2.3 Wrist The wrist only has one DOF that also does not need a transmission. In Figure 26 can be seen how the last actuator  is placed.  Important  to keep  in mind  is  that when  the  robot arm needs  to pick up a heavier object or gets a gripper that is exceeds the mass that is assumed for the gripper, one actuator will not be sufficient anymore. Therefore a second design with a transmission is made, which can be seen in Figure 27.  

                                   Figure 26: First design wrist                       Figure 27: Second design wrist 

    

Page 20: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

17  

 Combining  the  designs  for  the  different  joints will  result  in  four  designs.  Two  of  them  are  given  in Figures 28 and 29. The other two designs are obtained by making another combination of the shoulder and wrist joint.  

                                  Figure 28: Design robot arm               Figure 29: Design robot arm 

                        

Page 21: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

18  

Conclusion  

In this report a new design for the arm of the humanoid robot TUlip is designed. The arm should enable TUlip to make the same movements as a human arm and therefore accomplish a chosen trajectory.  In this trajectory the arm of TUlip moves to an object of approximately 0.5 kg and picks  it up. In order to accomplish this trajectory the arm of TUlip  is given 6 DOF’s this are more DOF’s than  it used to have. Besides the trajectory the arm needs to accomplish it also needs to be lightweight and stiff so that the position  of  the  arm  can  precisely  be  controlled.  Also  there  is  little  space  in  TUlip  to  process  the electronics.   With use of  the DH convention  the problem of  forward kinematics  is solved. Frames of  reference are selected  for  every  link  and  are  characterized  with  a  set  of  parameters.  These  parameters  give information  about  the  geometric  relationship  between  two  coordinate  frames  and  result  in  the homogeneous  transformations matrix.  By multiplying  all  the  transformation matrices  the  complete transformation from the base frame to the end effector is described.  The inverse kinematics is a more difficult problem than the forward kinematics. For a 3D robot arm with six DOF’s the amount of solutions can become infinitely, therefore the Robotics toolbox in MATLAB®  is used. With  this  toolbox  the  robot arm  is simulated as a serial‐link manipulator which  is based on  the parameters of the DH convention. By using different functions the inverse kinematics problem is solved and the necessary torque per link for the given trajectory is obtained.   Based  on  the  simulations  and  parts  of  the  existing  design  of  TUlip  the  actuator,  material  and transmissions are chosen. The actuator  is a Dynamixel RX‐28 which is compact but generates relatively big torque and can be controlled with one main processor. The material that is used is aluminum which is  light weight while remaining stiff. The transmissions are determined after a new assumption for the mass of the arm was made and new simulations were run.  By taking all these different aspects into consideration 4 new designs for the robot arm are made, which differ in the shoulder and wrist joint.                 

Page 22: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

19  

 

Recommendations   Simulations The Robotics toolbox is used to simulate the forward and inverse kinematics. For the inverse kinematics assumptions were made for the orientation of the end effector, this can influence the vector of angular rotation.  Which  means  that  the  solution  obtained  from  the  program  can  differ  from  the  optimal solution. This difference is small but can influence the torque in every link and the design. Therefore it is recommended to also use a different program to calculate the torque in the links, so that the results can be verified.  Also  in  this  report  there  is  focused  on  one  trajectory,  whether  the  necessary  torque  exceeds  the maximum  torque which  can  be  delivered  by  the  actuators when  another  trajectory  is  chosen  is  not simulated.   Finalize design Before the design can be fabricated it needs to be finalized. Some parts of the design can be optimized by using Finite Elements Methods, the weight can be reduces without affecting the stiffness. Also the material behavior can be simulated to prove that the material will be stiff enough for this design. And the required thickness of the gears and attachments need to be calculated.    In TUlip is little space available to store the electronics of the arm. By choosing Dynamixels this problem is solved because more Dynamixels can be controlled with one main processor. But the wiring from this main  processor  to  the  Dynamixels  in  the  arm  can  cause  problems,  because  of  the movements  the different parts of the arm can make relative to each other. Therefore this needs to be sorted further.   Design Recommendations Four designs  can be made by making different  combinations with  the  shoulder  and wrist  joints. The design that is recommended is the design with the shoulder joint where the large gear is mounted to the torso and the wrist joint has an extra transmission. The design for the shoulder requires less space and because  the  frame  is mounted on a wheel which  is  fixed on  the  torso  the mass of  the arm does not entirely rest on the two actuators that are moving around the large gear. This means that this design is not as fragile as assumed in first instance. The design for the wrist is chosen because this design can also pick up a heavier weight and does not restrict the design of the gripper.     

    

  

Page 23: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

20  

Bibliography  

[1] Dekker, M., H., P., ‘Mechanical design of a humanoid robot’s lower body’. Netherlands: Eindhoven. Department of Mechanical Engineering, Eindhoven University of Technology. 2010  [2] Asfour, T., Dillmann, R., ‘Human‐like Motion of a Humanoid Robot Arm Based on a Closed‐Form Solution of the Inverse Kinematics Problem’. Germany: Karlsruhe. Computer Science Department, University of Karlsruhe. 2003  [3] Williams, M., Lissner, H., R., ‘Biomechanics of Human Motion’. Great Britain: London W.B. Saunders Company. 1962  [4] Spong, M., W., ‘Robot Modeling and Control’. John Wiley & Sons. 2006  [5] ‘Inverse Kinematics’. Hugo Elias. 2004 http://freespace.virgin.net/hugo.elias/models/m_ik.htm   [6] Joubert, N., ‘Numerical Methods for Inverse Kinematics’. UC Berkeley. 2008 http://www‐inst.eecs.berkeley.edu/~cs184/fa11/resources/ik.pdf   [7] Corke, P., ‘Robotics Toolbox 9 for MATLAB®’. 2011 http://www.petercorke.com/RTB/robot.pdf  [8] Dirken, J. M., ‘Productergonomie – ontwerpen voor gebruikers’. Netherlands: Delft. Delft University Press. 1999.  [9] ROBOTIS CO. ‘User’s Manual Dynamixel RX‐28’.  http://www.crustcrawler.com/motors/RX28/docs/RX28_Manual.pdf     

        

 

Page 24: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

21  

Appendix A Determination DH parameters 

 

     

Page 25: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

22  

 

Appendix B Creating a serial‐link manipulator 

  

%% DH parameters for every link L1=link([alf(1) 0 th1 0 0 ]); L2=link([alf(2) 0 th2-pi/2 0 0 ]); L3=link([alf(3) 0 th3+pi/2 d3 0 ]); L4=link([alf(4) 0 th4 0 0 ]); L5=link([alf(5) 0 th5 d5 0 ]); L6=link([0 a6 th6+pi/2 0 0 ]); %% Making the model r = robot({L1 L2 L3 L4 L5 L6},'Tulip');

   

 

Appendix C Forward kinematics 

  

%% Forward Kinematics Q0 = [0 -pi -pi/2 0 0 pi/2]; %Offset vector Q = [0 -pi/2 0 0 0 0]; Qfk = Q0 + Q; TR0 = fkine(r,Q0) plot (r,Q0)

   

Page 26: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

23  

Appendix D Inverse kinematics 

 T1 = transl(xf, yf, zf) %Stretching next to the body xmax if xf > abs(yf) & xf > abs(zf) T = T1 end %%Stretching behind the body ymax if yf > abs(xf) & yf > abs(zf) T = [0 1 0 0; 1 0 0 0; 0 0 -1 0; 0 0 0 1]; end %%Stretching sideways zmax if zf > abs(xf) & zf > abs(yf) T = [0 0 1 0; 0 -1 0 0; 1 0 0 0; 0 0 0 1]; end %%Stretching upwards -xmax if abs(xf) > yf & abs(xf) > zf & xf < 0 T = [-1 0 0 0; 0 -1 0 0; 0 0 1 0; 0 0 0 1]; end %%Stretching straight -ymax if abs(yf) > abs(xf) & abs(yf) > abs(zf) & yf < 0 T = [0 -1 0 0; -1 0 0 0; 0 0 -1 0; 0 0 0 1]; end %Stretching across the body -zmax if abs(zf) > abs(xf) & abs(zf) > abs(yf) & zf < 0 T = [0 0 -1 0; 0 -1 0 0; -1 0 0 0; 0 0 0 0]; end T(:,4) = T1(:,4); Q = ikine(r,T) for i = 1:6 a = Q(1,i)/(2*pi); b = round(a); Qt(1,i) = Q(1,i) - (2*pi*b); end

Page 27: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

24  

Appendix E Link information 

 % Limited rotation angles, based on human movement L1.qlim=[0 2*pi]; L2.qlim=[pi/2 1.5*pi]; L3.qlim=[-(230/180)*pi pi/2]; L4.qlim=[0 (145/180)*pi]; L5.qlim=[0 (350/180)*pi]; L6.qlim=[0 pi]; % Mass per link L1.m = 2*s+0.05; L2.m = 2*s+0.05; L3.m = s+0.40; L4.m = 2*s+0.05; L5.m = s+0.40; L6.m = s+0.55; % Centre of gravity vector, very little influence on end result only on the last two links which do not exceed the torque maximum. L1.r = [0;0;0]; L2.r = [0;0;0]; L3.r = [0;0;0.1209]; L4.r = [0;0;0]; L5.r = [0;0;0.0949]; L6.r = [0.025;0;0]; % Inertia matrix L1.I = 1e-3*zeros(3); L2.I = 1e-3*zeros(3); L3.I = 1e-3*zeros(3); L4.I = 1e-3*zeros(3); L5.I = 1e-3*zeros(3); L6.I = 1e-3*zeros(3); % Gear ratio, already calculated in the maximum holding torque of the actuator. L1.G = 1; L2.G = 1; L3.G = 1; L4.G = 1; L5.G = 1; L6.G = 1;

Page 28: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

25  

% Motor inertia, negligible L1.Jm = 0; L2.Jm = 0; L3.Jm = 0; L4.Jm = 0; L5.Jm = 0; L6.Jm = 0; % Viscous friction, assumed to be negligible L1.B = 0; L2.B = 0; L3.B = 0; L4.B = 0; L5.B = 0; L6.B = 0; % Coulomb friction, assumed to be negligible L1.Tc = zeros(1,2); L2.Tc = zeros(1,2); L3.Tc = zeros(1,2); L4.Tc = zeros(1,2); L5.Tc = zeros(1,2); L6.Tc = zeros(1,2);

  

                    

Page 29: Design of a robot arm - Tech United · PDF fileEen natuurlijke keuze is dan de robotarm te bouwen als een vakwerkconstructie met servomotoren. ... Implementation in MATLAB® 7 3.1

26  

Appendix F Determination torque 

 [q_jtraj,qd_jtraj,qdd_jtraj] = jtraj(Q0,Qt,t); grav = [9.81 0 0]; tau = rne(r, q_jtraj, qd_jtraj, qdd_jtraj, grav)

     

Appendix G Human mass distribution [8] 

   

Body segment  Mass fraction (%) 

head and neck  8 

torso  33 

upper arm  3 

lower arm  2 

hand  1 

arm  6 

upper body  53 

waist  13 

upper leg  10 

lower leg  5 

foot  2 

leg  17 

lower body  47