关闭

matlab机器人工具箱学习

524人阅读 评论(3) 收藏 举报
分类:

选了机器人的课,作业需要用matlab机器人工具箱robotic toolbox。作业要求是搭建一个机械臂,然后在工作空间某个平面内写一个字,涉及到机器人的轨迹规划,求逆解。步骤:

1. 搭建四轴scara机器人:

DH模型

i α a d Θ
1 0 225 0 Θ1
2 0 175 0 Θ2
3 0 0 d 0
4 0 0 0 Θ3
创建机器人:
%DH模型-创建scara机器人
L1=link([0 225 0 0 0]);
L2=link([0 175 0 0 0]);
L3=link([0 0 0 0 1]);
L4=link([0 0 0 0 0]);
r=robot({L1 L2 L3 L4});
r.name='Scara LS3';
drivebot(r);
2. 轨迹规划:
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">采用直线规划,设置线段的两个端点,然后对线段中间点进行插值,可以选择多种的插值方式,本程序采用其自带的ctraj函数,本质是多项式插值。</span>

如对“口”字进行规划,设定四个顶点的位置坐标:

T0=transl([300,-50,-50]);   %目标点位置,下同
T1=transl([300,50,-50]);
T2=transl([250,50,-50]);
T3=transl([250,-50,-50]);
T4=transl([300,-50,-50]);
设置初始位置,时间间隔:

t=0:0.05:2;
qA=[0 0 -50 0]; %初始位置(关节空间)
需要注意初始位置是在关节空间下。

然后进行轨迹离散点生成:

t01=ctraj(T0,T1,length(t)); %直角空间轨迹规划,多项式插值
TC1=transl(t01);            %离散点
t02=ctraj(T1,T2,length(t));
TC2=transl(t02);
t03=ctraj(T2,T3,length(t));
TC3=transl(t03);
t04=ctraj(T3,T4,length(t));
TC4=transl(t04);
合并生成的轨迹为TTC后,计算每个离散点下的机器人关节坐标,即求逆解:

qs_store = [];  %存储关节向量
for i=1:size(TTC',2)
    tc1=[eye(3,3),TTC(i,:)'];
    TTC1=[tc1;[0 0 0 1]];
    qs=ikine(r,TTC1,qA,[1 1 1 1 0 0]);%逆运动学,机器人逆解
    qA=qs;
    qs_store(i,:) = qA; %保存关节向量
end
求出关节向量后,驱动机器人画图:

plot(r,qs_store);   %机器人运动仿真

结束。









1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10777次
    • 积分:295
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:2篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论