【RoboticsToolbox】MATLAB机器⼈⼯具箱使⽤教程
MATLAB2020a+Robotics Toolbox v10.4,⼯具箱版本不同命令有差异。
本⽂持续更新。
参考:
⽂章⽬录
1. 位姿描述
1.1 ⼆维空间位姿tool工具箱
T =SE2(x, y, theta);% x、y为偏移量,theta为旋转⾓度
trplot2(T);%画出T坐标系
T =transl2(x, y);%纯平移变换
1.2 三维空间位姿
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)
三维齐次变换矩阵还可以使⽤ T = SE3() ⽅法,在这⾥不多赘述。
2. 运动学
2.1 建⽴机器⼈模型
L(i)=Link([theta, d, a, alpha, sigma])%定义关节,DH参数:关节⾓、连杆偏距、连杆长度、连杆转⾓,sigma=1为移动副
L(i).qlim =[ min, max ]%关节⾓度限制
Six_link =SerialLink( L,'name','Sixlink')%将Link连接成⼀个机械臂
Six_link.plot([theta_1, theta_2,..., theta_n])%画出机械臂,theta为关节初始⾓度
Six_link.display %输出机械臂信息
ach %机械臂操控交互界⾯
Link的参数:
运动学参数:
名称意义
theta关节⾓
d连杆偏距
a连杆长度
alpha连杆转⾓
jointtype R-转动副,P-移动副
mdh0-标准DH,1-改进DH
offset关节变量的偏移量(转动副为⾓度,移动副为位移)
offset关节变量的偏移量(转动副为⾓度,移动副为位移)
名称意义
qlim关节变量的限制
动⼒学参数:
名称意义
m连杆质量
r连杆质⼼坐标 3x1
I连杆惯性矩阵 3x3
B粘性摩擦⼒(对于电机)1x1或2x1
Tc库仑摩擦⼒1x1或2x1
电机参数:
名称意义
G齿轮传动⽐
Jm电机惯性矩(对于电机)
2.2 运动学
Six_link.fkine([theta_1, theta_2,..., theta_n]);%正运动学
Six_link.ikine6s(T);%逆运动学封闭解
Six_link.ikine(T);%逆运动学数值解
2.3 雅克⽐矩阵
% q是位姿
Six_link.jacob0(q)%对于基坐标系的雅克⽐矩阵
Six_link.jacobn(q)%对于末端坐标系的雅克⽐矩阵
3. 机器⼈轨迹规划
3.1 关节空间
[q, qd, qdd]=jtraj(q0, qf, m)% q0——初始位姿,qf——结束位姿,m——步数,q——位姿,qd——速度,qdd——加速度3.2 笛卡尔空间
Tc =ctraj(T0, T1, n)% T0——初始齐次变换矩阵,T1——结束时齐次变换矩阵, n——步数
4. 动⼒学
% R是SerialLink类
R.dyn %输出动⼒学特性
4.1 逆动⼒学
<(q, qd, qdd)%逆向动⼒学(⾓度、⾓速度、⾓加速度——>⼒、⼒矩)
<(q, qd, qdd, grav, fext)% grav——重⼒加速度,fext——机械臂末端受⼒W=[Fx Fy Fz Mx My Mz]
4.2 动⼒学⽅程
R.inertia(q)%关节空间惯性矩阵
R.payload(M, P)%施加有效载荷:在P处施加质量M的载荷4.3 正向动⼒学
[T2, q, qd]= R.fdyn(T1, torqfun)%正向动⼒学
%输⼊:T1——积分时间,torqfun——⼒矩函数
%输出:T2——时间,q——⾓度,qd——⾓速度
这⾥有点难理解,⽤⼀下官⽅⽂档的例⼦来说明
%⾸先定义⼀个⼒矩函数(PD Controller)
function tau =mytorqfun(t, q, qd, qstar, P, D)
tau = P*(qstar-q)+ D*qd;
end
%再使⽤正向动⼒学函数
[t,q]= robot.fdyn(10, @mytorqfun, qstar, P, D);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论