MatlabRoboticToolbox工具箱学习笔记.docx
《MatlabRoboticToolbox工具箱学习笔记.docx》由会员分享,可在线阅读,更多相关《MatlabRoboticToolbox工具箱学习笔记.docx(13页珍藏版)》请在冰豆网上搜索。
MatlabRoboticToolbox工具箱学习笔记
MatlabRoboticToolbox工具箱学习笔记
(一)
软件:
matlaba
工具箱:
MatlabRoboticToolboxv9.8
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,'deg')*rotz(10,'deg');
%求出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);xlabel('Time');ylabel('pd');
subplot(3,1,3);plot(pdd);xlabel('Time');ylabel('pdd');
%此外一种办法:
[p,pd,pdd]=lspb(p0,p1,50);
figure(3);
subplot(3,1,1);plot(p);xlabel('Time');ylabel('p');
subplot(3,1,2);plot(pd);xlabel('Time');ylabel('pd');%可以看到速度是呈梯形
subplot(3,1,3);plot(pdd);xlabel('Time');ylabel('pdd');
%三维状况:
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);%动画演示坐标系自初始点运动到目的点过程
MatlabRoboticToolbox工具箱学习笔记
(二)
Arm/Robots
机器人是由各种连杆连接而成,机器人关节分为旋转关节和移动关节。
创立机器人两个最重要函数是:
Link和SerialLink。
1、Link类
一种Link包括了机器人运动学参数、动力学参数、刚体惯性矩参数、电机和传动参数。
操作函数:
%A 连杆变换矩阵
% RP 关节类型:
'R' 或'P'
% friction 摩擦力
% nofriction 摩擦力忽视
% dyn 显示动力学参数
% islimit 测试关节与否超过软限制
% isrevolute 测试与否为旋转关节
% isprismatic 测试与否为移动关节
% display 连杆参数以表格形式显示
% char 转为字符串
运动学参数:
% theta 关节角度
% d 连杆偏移量
% a 连杆长度
% alpha 连杆扭角
% sigma 旋转关节为0,移动关节为1
% mdh 原则D&H为0,否则为1
% offset 关节变量偏移量
% qlim 关节变量范畴[minmax]
动力学参数:
% m 连杆质量
% r 连杆相对于坐标系质心位置3x1
% I 连杆惯性矩阵(关于连杆重心)3x3
% B 粘性摩擦力(对于电机)1x1或2x1
% Tc 库仑摩擦力1x1或2x1
电机和传动参数:
% G 齿轮传动比
% Jm 电机惯性矩(对于电机)
2、SerialLink类
操作函数:
% plot 以图形形式显示机器人
% teach 驱动机器人
% isspherical 测试机器人与否有球腕关节
% islimit 测试机器人与否到达关节极限
% fkine 前向运动学求解
% ikine6s 6旋转轴球腕关节机器人逆向运动学求解
% ikine3 3旋转轴机器人逆向运动学求解
% ikine 采用迭代办法逆向运动学求解
% jacob0 在世界坐标系描述雅克比矩阵
% jacobn 在工具坐标系描述雅克比矩阵
% maniplty 可操纵性度
% jtraj 关节空间轨迹
% accel 关节加速度
% coriolis 关节柯氏力
% dyn 显示连杆动力学属性
% fdyn 关节运动
% friction 摩擦力
% gravload 关节重力
% inertia 关节惯性矩阵
% nofriction 设立摩擦力为0
% rne 关节力/力矩
% payload 在末端坐标系增长负载
% perturb 随机扰动连杆动力学参数
属性:
% links 连杆向量(1xN)
% gravity 重力方向[gxgygz]
% base 机器人基座位姿(4x4)
% tool 机器人工具变换矩阵[T6totooltip](4x4)
% qlim 关节范畴[qminqmax](Nx2)
% offset 偏置(Nx1)
% name 机器人名字(在图形中显示)
% manuf 注释,制造商名
% comment 注释,总评
% plotopt optionsforplot()method(cellarray)
% n 关节数
% config 机器人构造字符串, 例如'RRRRRR'
% mdh 运动学中商定布尔数(0=DH,1=MDH)
如何创立一种机器人?
%Link调用格式:
%{
(1)L=Link()创立一种带默认参数连杆
(2)L=Link(L1)复制连杆L1
(3)L=Link(OPTIONS)创立一种指定运动学、动力学参数连杆
OPTIONS可以是:
%'theta',TH jointangle,ifnotspecifiedjointisrevolute
%'d',D jointextension,ifnotspecifiedjointisprismatic
%'a',A jointoffset(default0)
%'alpha',A jointtwist(default0)
%'standard' definedusingstandardD&Hparameters(default).
%'modified' definedusingmodifiedD&Hparameters.
%'offset',O jointvariableoffset(default0)
%'qlim',L jointlimit(default[])
%'I',I linkinertiamatrix(3x1,6x1or3x3)
%'r',R linkcentreofgravity(3x1)
%'m',M linkmass(1x1)
%'G',G motorgearratio(default0)
%'B',B jointfriction,motorreferenced(default0)
%'Jm',J motorinertia,motorreferenced(default0)
%'