Stanford arm,斯坦福机械臂,也是经典的机器人模型,很多教材上都用它作为例子。
文章图片
1、动力学建模 其DH 矩阵为:
j | theta | d | a | alpha | offset |
---|---|---|---|---|---|
1 | q1 | 0.412 | 0 | -1.571 | 0 |
2 | q2 | 0.154 | 0 | 1.571 | 0 |
3 | -1.571 | q3 | 0 | 0 | 0 |
4 | q4 | 0 | 0 | -1.571 | 0 |
5 | q5 | 0 | 0 | 1.571 | 0 |
6 | q6 | 0.263 | 0 | 0 | 0 |
%thdaalpha
L(1) = Link([ 00.4120-pi/20]);
L(2) = Link([ 00.1540pi/20]);
L(3) = Link([ -pi/2 0001]);
% PRISMATIC link
L(4) = Link([ 000-pi/20]);
L(5) = Link([ 000pi/20]);
L(6) = Link([ 00.263000]);
L(3).qlim = [12 12+38] * 0.0254;
L(1).qlim = [-170 170]*pi/180;
L(2).qlim = [-170 170]*pi/180;
L(4).qlim = [-170 170]*pi/180;
L(5).qlim = [-90 90]*pi/180;
L(6).qlim = [-170 170]*pi/180;
L(1).m = 9.29;
L(2).m = 5.01;
L(3).m = 4.25;
L(4).m = 1.08;
L(5).m = 0.630;
L(6).m = 0.51;
L(1).Jm = 0.953;
L(2).Jm = 2.193;
L(3).Jm = 0.782;
L(4).Jm = 0.106;
L(5).Jm = 0.097;
L(6).Jm = 0.020;
L(1).G = 1;
L(2).G = 1;
L(3).G = 1;
L(4).G = 1;
L(5).G = 1;
L(6).G = 1;
L(1).I = [0.2760.2550.071000];
L(2).I = [0.1080.0180.100000];
L(3).I = [2.512.510.006000 ];
L(4).I = [0.0020.0010.001000 ];
L(5).I = [0.0030.00040000];
L(6).I = [0.0130.0130.0003000];
L(1).r = [00.0175 -0.1105];
L(2).r = [0-1.0540];
L(3).r = [00-6.447];
L(4).r = [00.092-0.054];
L(5).r = [00.5660.003];
L(6).r = [001.554];
qz = [0 0 0 0 0 0];
stanf = SerialLink(L, 'name', 'Stanford arm');
模型 要显示模型,可以在命令行输入:
w=[-1,1,-1,1,-1,1];
stanf.plot(qz,'workspace',w);
显示的结果如下图所示:
文章图片
PD 控制 控制率为:
u(t)=Kp?e+Kd?e˙+τ
simulink 控制图为:
文章图片
文章图片
参考文献:
Peter Corke,Robotics Toolbox for MATLAB Release 9(Version,9.10),2015.02
P.I. Corke, Robotics, Vision & Control: Fundamental Algorithms in MATLAB.Springer, 2011.
推荐阅读
- 最优化问题|改进交叉算子的自适应人工蜂群黏菌算法
- matlab|嵌入均衡池的黏菌优化算法
- 最优化问题|加入领导者的黏菌优化算法
- MATLAB图形界面|基于Matlab的汽车出入库计时计费系统
- Matlab旅程|MATLAB的结构化程序设计
- matlab 内存管理 清理内存
- matlab中使用colormap没有效果
- Matlab|圆柱绕流
- MATLAB|Splart-Allmaras湍流模型及MATLAB编程~
- probabilistic|probabilistic robotics 读书笔记(一)