1、前记:调用机器人工具箱simulink库模型,对机器人模型进行笛卡尔空间运动控制(位置和姿态)
2、操作:
(1)在安装机器人工具箱成功的基础上,打开matlab后在命令行输入 roblocks可以打开机器人工具箱的Simulink库
文章图片
(2)双击进Robot arms中。里面包含机器人运动学,动力学,速度运动学模块。
文章图片
(3)新建一个模型,拖入需要的模块。主要ikne模块用于逆解运算,plot模块用于工具箱机器人模型显示。ikine模块和plot模型都需要双击进行修改。
文章图片
文章图片
其中robot为通过机器人工具箱建立的机器人SerilLink模型。运行代码生成到matlab工作区中。
机器人工具箱模型生成代码:
Ll(1) = Link ([00.1040-pi/2], 'standard');
Ll(2) = Link ([000.1060], 'standard');
Ll(3) = Link ([000.0630], 'standard');
Ll(4) = Link ([000.0695-pi/2 ], 'standard');
Ll(5) = Link ([000-pi/2], 'standard');
Ll(6) = Link ([000-pi/2 ], 'standard');
robot=SerialLink(Ll,'name','YourBot');
(4)经过逆解运算获得的机器人各关节值可以输入到plot模块中,也可以输入到机器人多体模型中的关节驱动中去。下面机器人多体模型注释不用。只用机器人工具箱模型做显示。
文章图片
其中,位置和姿态使用slider gain作为输入。matlab function为将位置和姿态整理为支持ikine模块T输入的齐次矩阵形式。
代码为:
function T =inverse(Pos,Rot)
%#codegen
T=zeros(4,4);
%X
t1=Rot(1)*pi/180;
t2=Rot(2)*pi/180;
t3=Rot(3)*pi/180;
ct = cos(t1);
st = sin(t1);
R1 = [
100
0ct-st
0stct
];
%Y
ct1 = cos(t2);
st1 = sin(t2);
R2 = [
ct10st1
010
-st10ct1
];
%Z
ct2 = cos(t3);
st2 = sin(t3);
R3 = [
ct2-st20
st2ct20
001
];
R=R1*R2*R3;
numMats = size(R,3);
H = zeros(4,4,numMats,'like',R);
H(1:3,1:3,:) = R;
H(4,4,:) = ones(1,1,numMats,'like',R);
H(1,4)=Pos(1);
H(2,4)=Pos(2);
H(3,4)=Pos(3);
T=H;
3.运行结果
改变末端位置(姿态不变):
文章图片
改变末端姿态(位置不变):
【matlab机器人工具箱在simulink中对机器人进行操作】
推荐阅读
- Robotics System Toolbox中的机器人运动 (4)
- MATLAB简单机器人视觉控制(仿真3)
- 具有逆运动学的2维轨迹跟踪(翻译--个人学习记录)
- 一种从Robotstudio环境中导出机器人模型并在MATLAB下使其可视化的研究记录
- MATLAB和机器人|MATLAB机器人工具箱(记一次轨迹生成2)
- matlab机械臂运动(2)
- MATLAB下机器人可视化与控制---simulink篇(2)
- MATLAB简单机器人视觉控制(仿真2)
- Scara机器人关节空间轨迹规划-机器人工具箱函数jtraj
- MATLAB下机器人可视化与控制---simulink篇(4)