Robotics Toolbox实例学习Word文件下载.docx
- 文档编号:20609510
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:9
- 大小:194.84KB
Robotics Toolbox实例学习Word文件下载.docx
《Robotics Toolbox实例学习Word文件下载.docx》由会员分享,可在线阅读,更多相关《Robotics Toolbox实例学习Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
LINK.sigma
%返回关节类型
LINK.RP
%返回‘R’(旋转)或‘P’(移动)
LINK.mdh
%若为标准D-H参数返回0,否则返回1
LINK.offset
%返回关节变量偏移
LINK.qlim
%返回关节变量的上下限
[minmax]
LINK.islimit(q)
%如果关节变量超限,返回
-1,0,+1
LINK.I
%返回一个3×
3
对称惯性矩阵
LINK.m
%返回关节质量
LINK.r
%返回3×
1的关节齿轮向量
LINK.G
%返回齿轮的传动比
LINK.Jm
%返回电机惯性
LINK.B
%返回粘性摩擦
LINK.Tc
%返回库仑摩擦
LINK.dh
returnlegacyDHrow
LINK.dyn
returnlegacyDYNrow
其中robot函数的调用格式:
ROBOT
%创建一个空的机器人对象
ROBOT(robot)
%创建robot的一个副本
ROBOT(robot,LINK)
%用LINK来创建新机器人对象来代替robot
ROBOT(LINK,...)
%用LINK来创建一个机器人对象
ROBOT(DH,...)
%用D-H矩阵来创建一个机器人对象
ROBOT(DYN,...)
%用DYN矩阵来创建一个机器人对象
利用MATLAB中RoboticsToolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。
下面举例来说明:
A
机器人在x轴方向平移了0.5米,那么我们可以用下面的方法来求取平移变换后的齐次矩阵:
>
transl(0.5,0,0)
ans=
1.0000
0
0.5000
1.0000
B
机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:
rotx(pi/4)
0.7071
-0.7071
C
机器人绕y轴旋转90度,那么可以用roty来求取旋转后的齐次矩阵:
roty(pi/2)
0.0000
-1.0000
D
机器人绕z轴旋转-90度,那么可以用rotz来求取旋转后的齐次矩阵:
rotz(-pi/2)
当然,如果有多次旋转和平移变换,我们只需要多次调用函数在组合就可以了。
另外,可以和我们学习的平移矩阵和旋转矩阵做个对比,相信是一致的。
轨迹规划
利用RoboticsToolbox提供的ctraj、jtraj和trinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。
其中ctraj函数的调用格式:
TC=CTRAJ(T0,T1,N)
TC=CTRAJ(T0,T1,R)
参数TC为从T0到T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在0到1之间。
其中jtraj函数的调用格式:
[QQDQDD]=JTRAJ(Q0,Q1,N)
[QQDQDD]=JTRAJ(Q0,Q1,N,QD0,QD1)
[QQDQDD]=JTRAJ(Q0,Q1,T)
[QQDQDD]=JTRAJ(Q0,Q1,T,QD0,QD1)
参数Q为从状态Q0到Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长度,速度非零边界可以用QD0和QD1来指定。
QD和QDD为返回的规划轨迹的速度和加速度。
其中trinterp函数的调用格式:
TR=TRINTERP(T0,T1,R)
参数TR为在T0和T1之间的坐标变化插值,R需在0和1之间。
要实现轨迹规划,首先我们要创建一个时间向量,假设在两秒内完成某个动作,采样间隔是56ms,那么可以用如下的命令来实现多项式轨迹规划:
t=0:
0.056:
2;
[q,qd,qdd]=jtraj(qz,qr,t);
其中t为时间向量,qz为机器人的初始位姿,qr为机器人的最终位姿,q为经过的路径点,qd为运动的速度,qdd为运动的加速度。
其中q、qd、qdd都是六列的矩阵,每列代表每个关节的位置、速度和加速度。
如q(:
3)代表关节3的位置,qd(:
3)代表关节3的速度,qdd(:
3)代表关节3的加速度。
4
运动学的正问题
利用RoboticsToolbox中的fkine函数可以实现机器人运动学正问题的求解。
其中fkine函数的调用格式:
TR=FKINE(ROBOT,Q)
参数ROBOT为一个机器人对象,TR为由Q定义的每个前向运动学的正解。
以PUMA560为例,定义关节坐标系的零点qz=[000000],那么fkine(p560,qz)将返回最后一个关节的平移的齐次变换矩阵。
如果有了关节的轨迹规划之后,我们也可以用fkine来进行运动学的正解。
比如:
q=jtraj(qz,qr,t);
T=fkine(p560,q);
返回的矩阵T是一个三维的矩阵,前两维是4×
4的矩阵代表坐标变化,第三维是时间。
5
运动学的逆问题
利用RoboticsToolbox中的ikine函数可以实现机器人运动学逆问题的求解。
其中ikine函数的调用格式:
Q=IKINE(ROBOT,T)
Q=IKINE(ROBOT,T,Q)
Q=IKINE(ROBOT,T,Q,M)
参数ROBOT为一个机器人对象,Q为初始猜测点(默认为0),T为要反解的变换矩阵。
当反解的机器人对象的自由度少于6时,要用M进行忽略某个关节自由度。
有了关节的轨迹规划之后,我们也可以用ikine函数来进行运动学逆问题的求解。
T1=transl(0.6,-0.5,0);
T2=transl(0.4,0.5,0.2);
T=ctraj(T1,T2,length(t));
q=ikine(p560,T);
我们也可以尝试先进行正解,再进行逆解,看看能否还原。
Q=[0–pi/4–pi/40pi/80];
qi=ikine(p560,T);
6
动画演示
有了机器人的轨迹规划之后,我们就可以利用RoboticsToolbox中的plot函数来实现对规划路径的仿真。
puma560;
T=0:
q=jtraj(qz,qr,T);
plot(p560,q);
当然,我们也可以来调节PUMA560的六个旋转角,来实现动画演示。
drivebot(p560)
MatlabRoboticToolbox工具箱学习笔记根据RobotToolboxdemonstrations目录,将分三大部分阐述:
1、General(Rotations,Transformations,Trajectory)
2、Arm(Robot,Animation,Forwarwkinematics,Inversekinematics,Jacobians,Inversedynamics,Forwarddynamics,Symbolic,Codegeneration)
3、Mobile(Drivingtoapose,Quadrotor,Braitenberg,Bug,D*,PRM,SLAM,Particlefilter)
General/Rotations
%绕x轴旋转pi/2得到的旋转矩阵
(1)r=rotx(pi/2);
%matlab默认的角度单位为弧度,这里可以用度数作为单位
(2)R=rotx(30,'
deg'
)*roty(50,'
)*rotz(10,'
);
%求出R等效的任意旋转变换的旋转轴矢量vec和转角theta
(3)[theta,vec]=tr2angvec(R);
%旋转矩阵用欧拉角表示,R=rotz(a)*roty(b)*rotz(c)
(4)eul=tr2eul(R);
%旋转矩阵用roll-pitch-yaw角表示,R=rotx(r)*roty(p)*rotz(y)
(5)rpy=tr2rpy(R);
%旋转矩阵用四元数表示
(6)q=Quaternion(R);
%将四元数转化为旋转矩阵
(7)q.R;
%界面,可以是“rpy”,“eluer”角度单位为度。
(8)tripleangle('
rpy'
General/Transformations
%沿x轴平移0.5,绕y轴旋转pi/2,绕z轴旋转-pi/2
(1)t=transl(0.5,0.0,0.0)*troty(pi/2)*trotz(-pi/2)
%将齐次变换矩阵转化为欧拉角
(2)tr2eul(t)
%将齐次变换矩阵转化为roll、pitch、yaw角
(3)tr2rpy(t)
General/Trajectory
clear;
clc;
p0=-1;
%定义初始点及终点位置
p1=2;
p=tpoly(p0,p1,50);
%取步长为50
figure
(1);
plot(p);
%绘图,可以看到在初始点及终点的一、二阶导均为零
[p,pd,pdd]=tpoly(p0,p1,50);
%得到位置、速度、加速度
%p为五阶多项式,速度、加速度均在一定范围内
figure
(2);
subplot(3,1,1);
plot(p);
xlabel('
Time'
ylabel('
p'
subplot(3,1,2);
plot(pd);
pd'
subplot(3,1,3);
plot(pdd);
pdd'
%另外一种方法:
[p,pd,pdd]=lspb(p0,p1,50);
figure(3);
%可以看到速度是呈梯形
%三维的情况:
p=mtraj(@tpoly,[012],[210],50);
figure(4);
plot(p)
%对于齐次变换矩阵的情况
T0=transl(0.4,0.2,0)*trotx(pi);
%定义初始点和目标点的位姿
T1=transl(-0.4,-0.2,0.3)*troty(pi/2)*trotz(-pi/2);
T=ctraj(T0,T1,50);
first=T(:
:
1);
%初始位姿矩阵
tenth=T(:
10);
%第十个位姿矩阵
figure(5);
tranimate(T);
%动画演示坐标系自初始点运动到目标点的过程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Robotics Toolbox实例学习 Toolbox 实例 学习