当前位置:   article > 正文

机械臂(3)–使用MATLAB建立机械臂模型_matlab机械臂常曲率模型

matlab机械臂常曲率模型

最近准备研究下机械臂的你运动分析,本文记录相关过程。

 

 
 

 

研究机械臂必不可少的就是建立模型进项测试分析,不可能直接用实物测试。本文将采用MATLAB进行建立模型,已经安装好机器人工具箱

 

1、首先要搞清楚Link类,类中包含了方法、属性,下面为官方函数说明,可自行翻译成中文

  1. % A Link object holds all information related to a robot link such as  
  2.   
  3. % kinematics parameters, rigid-body inertial parameters, motor and  
  4.   
  5. % transmission parameters.  
  6.   
  7. % Methods::  
  8.   
  9. % A link transform matrix  
  10.   
  11. % RP joint type: ‘R’ or ‘P’  
  12.   
  13. % friction friction force  
  14.   
  15. % nofriction Link object with friction parameters set to zero  
  16.   
  17. % dyn display link dynamic parameters  
  18.   
  19. % islimit test if joint exceeds soft limit  
  20.   
  21. % isrevolute test if joint is revolute  
  22.   
  23. % isprismatic test if joint is prismatic  
  24.   
  25. display print the link parameters in human readable form  
  26.   
  27. % char convert to string  
  28.   
  29. %  
  30.   
  31. % Properties (read/write)::  
  32.   
  33. %  
  34.   
  35. % theta kinematic: joint angle  
  36.   
  37. % d kinematic: link offset  
  38.   
  39. % a kinematic: link length  
  40.   
  41. % alpha kinematic: link twist  
  42.   
  43. % sigma kinematic: 0 if revolute, 1 if prismatic  
  44.   
  45. % mdh kinematic: 0 if standard D&H, else 1  
  46.   
  47. % offset kinematic: joint variable offset  
  48.   
  49. % qlim kinematic: joint variable limits [min max]  
  50.   
  51. %-  
  52.   
  53. % m dynamic: link mass  
  54.   
  55. % r dynamic: link COG wrt link coordinate frame 3×1  
  56.   
  57. % I dynamic: link inertia matrix, symmetric 3×3, about link COG.  
  58.   
  59. % B dynamic: link viscous friction (motor referred)  
  60.   
  61. % Tc dynamic: link Coulomb friction  
  62.   
  63. %-  
  64.   
  65. % G actuator: gear ratio  
  66.   
  67. % Jm actuator: motor inertia (motor referred)  
  68.   
  69. %  
  70.   
  71. % Examples::  
  72.   
  73. %  
  74.   
  75. % L = Link([0 1.2 0.3 pi/2]);  
  76.   
  77. % L = Link(‘revolute’, ‘d’, 1.2, ‘a’, 0.3, ‘alpha’, pi/2);  
  78.   
  79. % L = Revolute(‘d’, 1.2, ‘a’, 0.3, ‘alpha’, pi/2);  
  80.   
  81. %  
  82.   
  83. % Notes::  
  84.   
  85. % – This is a reference class object.  
  86.   
  87. % – Link objects can be used in vectors and arrays.  

其中我们D-H参数相关的属性有

% theta kinematic: joint angle    关节角度

 

% d kinematic: link offset    偏距

 

% a kinematic: link length    长度

 

% alpha kinematic: link twist    扭角

其D-H参数确定方法在上一篇博客中,请自行查看

 

2、SerialLink类。

  1. % A concrete class that represents a serial-link arm-type robot. The  
  2.   
  3. % mechanism is described using Denavit-Hartenberg parameters, one set  
  4.   
  5. % per joint.  
  6.   
  7. %  
  8.   
  9. % Methods::  
  10.   
  11. %  
  12.   
  13. % plot display graphical representation of robot  
  14.   
  15. % plot3display 3D graphical model of robot  
  16.   
  17. % teach drive the graphical robot  
  18.   
  19. % getpos get position of graphical robot  
  20.   
  21. %-  
  22.   
  23. % jtraj a joint space trajectory  
  24.   
  25. %-  
  26.   
  27. % edit display and edit kinematic and dynamic parameters  
  28.   
  29. %-  
  30.   
  31. % isspherical test if robot has spherical wrist  
  32.   
  33. % islimit test if robot at joint limit  
  34.   
  35. % isconfig test robot joint configuration  
  36.   
  37. %-  
  38.   
  39. % fkine forward kinematics  
  40.   
  41. % A link transforms  
  42.   
  43. % trchain forward kinematics as a chain of elementary transforms  
  44.   
  45. %-  
  46.   
  47. % ikine6s inverse kinematics for 6-axis spherical wrist revolute robot  
  48.   
  49. % ikine inverse kinematics using iterative numerical method  
  50.   
  51. % ikunc inverse kinematics using optimisation  
  52.   
  53. % ikcon inverse kinematics using optimisation with joint limits  
  54.   
  55. % ikine_sym analytic inverse kinematics obtained symbolically  
  56.   
  57. %-  
  58.   
  59. % jacob0 Jacobian matrix in world frame  
  60.   
  61. % jacobn Jacobian matrix in tool frame  
  62.   
  63. % jacob_dot Jacobian derivative  
  64.   
  65. % maniplty manipulability  
  66.   
  67. % vellipse display velocity ellipsoid  
  68.   
  69. % fellipse display force ellipsoid  
  70.   
  71. % qmincon null space motion to centre joints between limits  
  72.   
  73. %-  
  74.   
  75. % accel joint acceleration  
  76.   
  77. % coriolis Coriolis joint force  
  78.   
  79. % dyn show dynamic properties of links  
  80.   
  81. % friction friction force  
  82.   
  83. % gravload gravity joint force  
  84.   
  85. % inertia joint inertia matrix  
  86.   
  87. % cinertia Cartesian inertia matrix  
  88.   
  89. % nofriction set friction parameters to zero  
  90.   
  91. % rne inverse dynamics  
  92.   
  93. % fdyn forward dynamics  
  94.   
  95. %-  
  96.   
  97. % payload add a payload in end-effector frame  
  98.   
  99. % perturb randomly perturb link dynamic parameters  
  100.   
  101. % gravjac gravity load and Jacobian  
  102.   
  103. % paycap payload capacity  
  104.   
  105. % pay payload effect  
  106.   
  107. %-  
  108.   
  109. % sym a symbolic version of the object  
  110.   
  111. % gencoords symbolic generalized coordinates  
  112.   
  113. % genforces symbolic generalized forces  
  114.   
  115. % issym test if object is symbolic  
  116.   
  117. %  
  118.   
  119. % Properties (read/write)::  
  120.   
  121. %  
  122.   
  123. % links vector of Link objects (1xN)  
  124.   
  125. % gravity direction of gravity [gx gy gz]  
  126.   
  127. % base pose of robot’s base (4×4 homog xform)  
  128.   
  129. % tool robot’s tool transform, T6 to tool tip (4×4 homog xform)  
  130.   
  131. % qlim joint limits, [qmin qmax] (Nx2)  
  132.   
  133. % offset kinematic joint coordinate offsets (Nx1)  
  134.   
  135. % name name of robot, used for graphical display  
  136.   
  137. % manuf annotation, manufacturer’s name  
  138.   
  139. % comment annotation, general comment  
  140.   
  141. % plotopt options for plot() method (cell array)  
  142.   
  143. % fast use MEX version of RNE. Can only be set true if the mex  
  144.   
  145. file exists. Default is true.  
  146.   
  147. %  
  148.   
  149. % Properties (read only)::  
  150.   
  151. %  
  152.   
  153. % n number of joints  
  154.   
  155. % config joint configuration string, eg. ‘RRRRRR’  
  156.   
  157. % mdh kinematic convention boolean (0=DH, 1=MDH)  
  158.   
  159. % theta kinematic: joint angles (1xN)  
  160.   
  161. % d kinematic: link offsets (1xN)  
  162.   
  163. % a kinematic: link lengths (1xN)  
  164.   
  165. % alpha kinematic: link twists (1xN)  
  166.   
  167. %  
  168.   
  169. % Overloaded operators::  
  170.   
  171. % R1*R2 concatenate two SerialLink manipulators R1 and R2  
  172.   
  173. %  
  174.   
  175. % Note::  
  176.   
  177. % – SerialLink is a reference object.  
  178.   
  179. % – SerialLink objects can be used in vectors and arrays  

3、两个类了解后便可建立我哦们的模型,首先列出自己所用机器人的D-H参数表

i

theta

d

a

alpha

1

theta1

0

3

-pi/2

2

theta2

0

6.4

0

3

theta3

0

5.5

0

4

theta4

2.5

5.5

0

4、根据D-H表列出

 

 
  1. L1 = Link(‘d’, 0, ‘a’, 3, ‘alpha’, -pi/2);  
  2.   
  3. L2 = Link(‘d’, 0, ‘a’, 6.4, ‘alpha’,0);  
  4.   
  5. L3 = Link(‘d’, 0, ‘a’, 5.5, ‘alpha’, 0);  
  6.   
  7. L4 = Link(‘d’, 2.5, ‘a’, 5.5, ‘alpha’, 0);  
  8.   
  9. armbot=SerialLink([L1,L2,L3,L4]); %SerialLink 机器人  
  10.   
  11. armbot.name = ‘ArmBot’;  
  12.   
  13. armbot.comment = ‘shaynerain’;  
  14.   
  15. armbot.display(); %打印  
  16.   
  17. theta = [0,0,0,0];  
  18.   
  19. armbot.plot(theta); %显示  

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/96762
推荐阅读
相关标签
  

闽ICP备14008679号