程序员

机器人工具箱matlab robotics toolbox使用(一)

作者:admin 2021-04-10 我要评论

1 首先检测Matlab 中已经安装的工具箱,采用“ver”命令 MATLAB 版本 9.9 (R2020b)Simulink 版本 10.2 (R2020b)Computer Vision Toolbox 版本 9.3 (R2020b)Contr...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

1 首先检测Matlab 中已经安装的工具箱,采用“ver”命令 MATLAB 版本 9.9 (R2020b) Simulink 版本 10.2 (R2020b) Computer Vision Toolbox 版本 9.3 (R2020b) Control System Toolbox 版本 10.9 (R2020b) Curve Fitting Toolbox 版本 3.5.12 (R2020b) Data Acquisition Toolbox 版本 4.2 (R2020b) Deep Learning Toolbox 版本 14.1 (R2020b) Global Optimization Toolbox 版本 4.4 (R2020b) Image Acquisition Toolbox 版本 6.3 (R2020b) Image Processing Toolbox 版本 11.2 (R2020b) MATLAB Coder 版本 5.1 (R2020b) Machine Vision Toolbox for MATLAB 版本 4.3 Model Predictive Control Toolbox 版本 7.0 (R2020b) Optimization Toolbox 版本 9.0 (R2020b) Parallel Computing Toolbox 版本 7.3 (R2020b) Partial Differential Equation Toolbox 版本 3.5 (R2020b) Robotics System Toolbox 版本 3.2 (R2020b) Robotics Toolbox for MATLAB 版本 10.4 Robust Control Toolbox 版本 6.9 (R2020b) Signal Processing Toolbox 版本 8.5 (R2020b) Simscape 版本 5.0 (R2020b) Simscape Multibody 版本 7.2 (R2020b) Simulink Coder 版本 9.4 (R2020b) Simulink Control Design 版本 5.6 (R2020b) Simulink Design Optimization 版本 3.9 (R2020b) Stateflow 版本 10.3 (R2020b) Statistics and Machine Learning Toolbox 版本 12.0 (R2020b) Symbolic Math Toolbox 版本 8.6 (R2020b) YALMIP 版本 3 (R2009b)

2 以UR5为例子,其具体的建模和仿真如下所示:

UR5

采用指令mdl_ur5 -> ur5可以得到:

UR5模型参数

3 机器人位置姿态变换,首先以平面的位姿变换为例

T = SE2(x, y, theta); % x、y为偏移量,theta为旋转角度

trplot2(T); % 画出T坐标系

T = transl2(x, y); % 纯平移变换

x=100;
y=200;
n=0;
for theta=0:0.1:pi/3
    T = SE2(x, y, theta);
    trplot2(T);                    % 画出T坐标系
    pause(0.5);
    grid on
    hold on
    n=n+1;
end

具体的运行结果如下所示

坐标变换-平面

% rotx(alpha), roty(beta), rotz(theta); % 绕xyz轴旋转的旋转矩阵(3x3)

% trplot(T); % 画出相应的旋转坐标系

% tranimate(T); % 旋转动画

% transl( [x, y, z] ); % 平移变换(4x4)

% trotx(theta), troty(theta), trotz(theta); % 只有旋转的绕xyz轴旋转的齐次变换矩阵(4x4)

alpha=pi/3;
beta=pi/4;
theta=pi/2;
rotx(alpha)
roty(beta)
rotz(theta)

运行结果如下所示

ans =
    1.0000         0         0
         0    0.5000   -0.8660
         0    0.8660    0.5000
ans =
    0.7071         0    0.7071
         0    1.0000         0
   -0.7071         0    0.7071
ans =
     0    -1     0
     1     0     0
     0     0     1

4 UR5测试

mdl_ur5
ur5
ur5.teach                                        % 机械臂操控交互界面    
UR5示教
mdl_ur5
ur5
q=[0;-pi/3;-pi/4;pi/3;-pi/3;pi/3];
ur5.plot( [q(1), q(2), q(3), q(4),q(5),q(6)] )     
    % 画出机械臂,theta为关节初始角度
特定构型下的UR5
q=[0;-pi/3;-pi/4;pi/3;-pi/3;pi/3];
T1=ur5.fkine( [q(1), q(2), q(3), q(4),q(5),q(6)] )     
ur5.ikine6s(T1);  % 逆运动学封闭解  
ur5.ikine(T1,q);% 逆运动学数值解    

由上述可以得到机器人的正向运动学,进而得到机器人的笛卡尔空间变换矩阵为:

T1 = 
    0.7891    0.0474    0.6124   -0.1275
    0.4330   -0.7500   -0.5000   -0.1503
    0.4356    0.6597   -0.6124    0.7191
         0         0         0         1

ur5.ikine6s(T1); % 逆运动学封闭解

反而导致计算错误

运动学逆解

qS=ur5.ikine(T1,q);% 逆运动学数值解 的计算可以得到:

qS =
    0.0000   -1.0472   -0.7854    1.0472   -1.0472    1.0472


未完待续

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 四两拨千斤——你不知道的VScode编码Ty

    四两拨千斤——你不知道的VScode编码Ty

  • 我是如何在 Vue 项目中做代码分割的

    我是如何在 Vue 项目中做代码分割的

  • position:sticky 粘性定位的几种巧妙应

    position:sticky 粘性定位的几种巧妙应

  • 从零到一搭建React组件库

    从零到一搭建React组件库

腾讯云代理商
精彩导读
海外云服务器
热门资讯
腾讯云代理商