当前位置:   article > 正文

MATLAB机械臂建模

matlab机械臂建模

利用matlab中的robotics toolbox工具,建立机械臂的frame

操作流程:

  1. 给出各个关节的旋转矩阵的初始角度,给出各个操作臂的长度,设置base的坐标。
  2. 给出所有旋转矩阵
  3. 给出在各自坐标系下的方向向量
  4. 将所有的方向向量向基坐标系下转换
  5. 将转换后的各个位置坐标存入数组内并绘制在基座标系下的图像

代码:

  1. SL1=Link([0 0 0.180 -pi/2 0 ],'standard');
  2. SL2=Link([0 0 0.600 0 0 ],'standard');
  3. SL3=Link([0 0 0.130 -pi/2 0 ],'standard');
  4. SL4=Link([0 0.630 0 pi/2 0 ],'standard');
  5. SL5=Link([0 0 0 -pi/2 0 ],'standard');
  6. SL6=Link([0 0.1075 0 0 0 ],'standard');
  7. starobot=SerialLink([SL1 SL2 SL3 SL4 SL5 SL6],'name','Robot');
  8. figure(1);
  9. teach(starobot);

另一种较为简单:

  1. clear
  2. clc
  3. R01=[ cos(a) -sin(a) 0; sin(a) cos(a) 0; 0 0 1];
  4. R12=[ cos(b) 0 sin(b); 0 1 0;-sin(b) 0 cos(b)];
  5. R23=[ cos(c) 0 sin(c);0 1 0;-sin(c) 0 cos(c)];
  6. R34=[ cos(d) 0 sin(d);0 1 0; -sin(d) 0 cos(d)];
  7. R45=[ cos(f) -sin(f) 0;sin(f) cos(f) 0;0 0 1];
  8. L1=3;
  9. L2=3;
  10. L3=3;
  11. L4=3;
  12. L5=3;
  13. L6=3;
  14. O_0=[0;0;0];
  15. r_OA_0 = [0;0;L1];
  16. r_AB_1 = [0;0;L2];
  17. r_BC_2 = [0;0;L3];
  18. r_CD_3 = [0;0;L4];
  19. r_DE_4 = [0;0;L5];
  20. r_EF_5 = [0;0;L6];
  21. r_OB_0 = r_OA_0 + R01*r_AB_1;
  22. r_OC_0 = r_OB_0 + R01*R12*r_BC_2;
  23. r_OD_0 = r_OC_0 + R01*R12*R23*r_CD_3;
  24. r_OE_0 = r_OD_0 + R01*R12*R23*R34*r_DE_4;
  25. r_OF_0 = r_OE_0 + R01*R12*R23*R34*R45*r_EF_5;
  26. Link1 = [O_0 r_OA_0];
  27. Link2 = [r_OA_0, r_OB_0];
  28. Link3 = [r_OB_0, r_OC_0];
  29. Link4 = [r_OC_0, r_OD_0];
  30. Link5 = [r_OD_0, r_OE_0];
  31. Link6 = [r_OE_0, r_OF_0];
  32. hold on
  33. grid on
  34. view(45, 30);
  35. axis square;
  36. plot3(Link1(1,:), Link1(2,:), Link1(3,:), 'LineWidth', 3, 'color', 'r');
  37. plot3(Link2(1,:), Link2(2,:), Link2(3,:), 'LineWidth', 3, 'color', 'b');
  38. plot3(Link3(1,:), Link3(2,:), Link3(3,:), 'LineWidth', 3, 'color', 'r');
  39. plot3(Link4(1,:), Link4(2,:), Link4(3,:), 'LineWidth', 3, 'color', 'b');
  40. plot3(Link5(1,:), Link5(2,:), Link5(3,:), 'LineWidth', 3, 'color', 'r');
  41. plot3(Link6(1,:), Link6(2,:), Link6(3,:), 'LineWidth', 3, 'color', 'b');

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

闽ICP备14008679号