理论基础(D-H)

此处理论基础取自《机器人导论》采用改进的Modifird DH参数模型

R代表转动副,P代表移动副

有N个关节(编号从1到N)机械臂具有N+1个连杆(编号从0到N)连杆0是机械臂基座,连杆N固连末端执行器或者工具,关节i将连杆i-1连接到连杆i上,因此关节i带动连杆i运动。

按照上述规定将连杆坐标系固连千连杆上时,连杆参数可以定义如下:

建立连杆坐标系步骤:

1找出各个关节轴,画出轴线的延长线

2找出关节轴i和i+1之间的公垂线或关节轴i和i+1的交点,以关节轴i和i+1的交点或公垂线与关节轴i的交点作为连杆坐标系的{i}原点

3规定z轴沿关节轴i的指向

4规定x轴沿公垂线指向,如果关节轴i和i+1相交,则规定x轴垂直于关节轴i和i+1所在的平面

5按右手定则确定Y轴

6当第一个关节变量为0时,规定坐标系{0}和{1}重合,对于坐标系{N},原点和x方向可以任意选取,选取时,尽量使连杆参数为0.

从连杆坐标系{i-1}到坐标系{i}的变换被定义为基本旋转平移变换,可以写为:

也就是

一般表达式为:

Link

此部分内容取自机器人工具箱,摘取常用函数等内容翻译,有兴趣可移步作者官网自行下载,网站中的robot.pdf 可作为函数使用说明文档,以及《机器人学、视觉、控制》也可自行找资源下载

连杆对象包含与机器人关节和连杆相关的所有信息,如运动学参数(kinematics parameters)、刚体惯性参数(rigid-body inertial parameters)、电机(motor)和传动参数(transmission parameters)等。

信息显示方法

display : 打印并显示D-H参数矩阵

dyn : 显示动力学参数

type:关节类型:R 或者 P

char : 转化为字符串

Link 的操作类函数:

A :关节变换矩阵

s=robot.A(J,q);返回一个44的从基座到J的变换矩阵,q是一个1N的关节变量

对于standardDH,是从J-1到J

对于modifiedDH,是从J到J+1

例如robot.A(3:6,q);是指关节3到关节6的变换矩阵,q是theta

friction : 摩擦力

nofriction :将摩擦参数设置为0

islimit:检查关节是否超过软极限

isrevolute : 检测关节是否为转动副

isprismatic : 检测关节是否为移动副

issym:检测关节+连杆是否有符号参数

运动学参数

theta:关节角 ,若没有定义默认为转动关节

d:连杆偏移 若没有默认为移动副

a:连杆长度 默认0

alpha:连杆扭角 默认0

jointtype:R表示转动,P表示移动

sigma: 默认0,旋转关节;1,移动关节

mdh: 默认为0,1

offset:关节变量偏移量

qlim:关节变量范围[min max]

T = robot.fkine(theta),%求正运动学

q = robot.ikine(T) %逆运动学

j0 = robot.jacob0(q, options),%求雅可比矩阵,在世界坐标系下

jn = robot.jacobn(q, options),%求雅可比矩阵,在末端操作器空间中

jdq = robot.jacob_dot(q, qd),%求雅可比矩阵的微分

动力学参数

m: 质量 1_1

r: 质心 3_1

I: 惯性张量 3_1, 6_1 or 3*3

B: 粘性摩擦 默认0

Tc: 库仑摩擦 11 or 21 默认[0 0]

G: 减速比 默认1

Jm: 转子惯量 默认0

tau = R.PAY(w, J),%根据末端负重w和雅可比矩阵j,求关节力

au = R.PAY(q, w, f),%根据末端负重w和关节变量为q雅可比矩阵,求关节力。f=0,世界坐标系。f=1,末端关节坐标系。

[wmax,J] = R.paycap(q, w, f, tlim),%求关节变量为q,有效负荷为w,关节能承受的参考力为tlim时,末端允许的最大力 wmax,和此时达到力极限的关节J

R.payload(m, p),%在末端关节坐标系下,坐标为p处,添加质量为m的负荷

SerialLink.dyn ,%返回动力学参数

tau = R.rne(q, qd, qdd),%逆动力学,达到预定的(q, qd, qdd),所需要的力tau

tau = R.rne(q, qd, qdd, grav, fext),%逆动力学,达到预定的q, qd, qdd),重力加速度为grav,末端受力为fext,各关节所需要的力tau

[T,q,qd] = R.fdyn(T, torqfun)%时间[0,T], 返回时间、位置、速度,关节初始位置和速度为0。关节上的力矩用户提供的函数提供:

TAU = TORQFUN(T, Q, QD)%力矩是时间、位置、速度的函数。

[ti,q,qd] = R.fdyn(T, torqfun, q0, qd0)

.

%例 定义连杆的三种方式

L = Link([0 1.2 0.3 pi/2]);

L = Link(’revolute’, ’d’, 1.2, ’a’, 0.3, ’alpha’, pi/2);

L = Revolute(’d’, 1.2, ’a’, 0.3, ’alpha’, pi/2);

L.alpha %返回扭转角

L=Link(dh,options)%为一个连杆options指定运动学参数

dh = [THETA D A ALPHA SIGMA OFFSET]

%其中对于转动副 SIGMA =0,对于移动副SIGMA=0;OFFSET是用户关节变量与运动模型所使用的值之间的恒定位移。

dh = [THETA D A ALPHA];可省略默认为0

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 随机扰动连杆的动力学参数

trchain 是一系列基本变换,用于描述串联机器人手臂的运动学。 字符串cchain包括多个形式为X(ARG)的令牌,其中X是Tx,Ty,Tz,Rx,Ry或Rz之一。 ARG是关节变量,角度或长度尺寸。

属性:

links 连杆向量(1xN)

gravity 重力的方向[gx gy gz]

base 机器人基座的位姿(4×4)

tool 机器人的工具变换矩阵[ T6 to tool tip] (4×4)

qlim 关节范围[qmin qmax] (Nx2)

offset 偏置(Nx1)

name 机器人名字(在图形中显示)

manuf 注释, 制造商名

comment 注释, 总评

plotopt options for plot() method (cell array)

n 关节数

config 机器人结构字符串, 例如 ‘RRRRRR’

mdh 运动学中约定的布尔数 (0=DH, 1=MDH)

建立机器人

首先用link建立连杆,再用SerialLink建立机器人关节连接,最后使用plot等显示机器人

L=Link([alpha,A,theta,D,sigma,offset],standard/modified)%输入向量元素分别是alha扭转角,A杆件长度,theta关节角,D横距,sigma关节类型(0旋转,1移动)offset关节变量偏移,standard为标准DH参数,modified为改进的DH参数

clear;

clc;

L1 = Link([0 0 0 pi/2]);

L2 = Link([0 0 0.5 pi/2]);

L3 = Link([0 0 0 pi/2]);

L4 = Link([0 1 0 -pi/2]);

L5 = Link([0 0 0 pi/2]);

L6 = Link([0 1 0 0]);

b=isrevolute(L1); %Link 类函数,转动关节变量

robot=SerialLink([L1,L2,L3,L4,L5,L6],‘name’,'VIPER7','comment','LL'); %SerialLink 类函数

%robot.name='VIPER7';

%robot.comment='LL';

robot.display(); %Link 类函数,显示建立的机器人DH参数

%通过手动输入各个连杆转角,模型会自动运动到相应位置

theta=[0 0 0 0 0 0];

robot.plot(theta); %SerialLink 类函数

运行结果:

robot =

VIPER7 (6 axis, RRRRRR, stdDH, fastRNE)

LL;

+---+-----------+-----------+-----------+-----------+-----------+

| j | theta | d | a | alpha | offset |

+---+-----------+-----------+-----------+-----------+-----------+

| 1| q1| 0| 0| 0| 0|

| 2| q2| 0| 0| 0| 0|

| 3| q3| 0| 0.332| 1.571| 0|

| 4| q4| 1| 0| -1.571| 0|

| 5| q5| 0| 0| 1.571| 0|

| 6| q6| 1| 0| 0| 0|

+---+-----------+-----------+-----------+-----------+-----------+

grav = 0 base = 1 0 0 0 tool = 1 0 0 0

0 0 1 0 0 0 1 0 0

9.81 0 0 1 0 0 0 1 0

0 0 0 1 0 0 0 1

ans =

0

matlab机械手ikine函数,MATLAB机器人工具箱(二)机器人模型建立相关推荐

  1. matlab机械手ikine函数,matlab机器人工具箱10.1(有函数说明)

    [实例简介] 机器人工具箱10.1版,有例子可以学习,希望对大家有所帮助! [实例截图] [核心代码] robot工具箱(V10.1有例子) └── robot工具箱10.1及例子 ├── matla ...

  2. matlab机械手ikine函数,matlab中robotics toolbox的函数解说

    1. PUMA560的MATLAB仿真 要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来 ...

  3. matlab机械手ikine函数,关于Mtalab-robotics工具箱中的fkine和ikine两个函数的问题讨论!...

    clear; clc; L1 = Link([-pi/2 0 0 0 0],'standard'); L2 = Link([0 10 0 -pi/2 0],'standard'); L3 = Link ...

  4. 不借助 matlab 内置函数,生撸均值方差模型

    不借助 matlab 内置函数,生撸均值方差模型 前言 我在之前的一篇文章中介绍了,如何使用 matlab 自带的函数(对象)portfolio,实现均值方差模型.matlab 内置的函数自然实用.但 ...

  5. matlab 圆角,rectangle函数MATLAB matlab中rectangle画圆角矩形

    MATLAB如何画长方形,怎么用rectangle函数 rectangle函数用于绘制矩形图形.例如>>rectangle('Position',[0 0 2 4],'Curvature' ...

  6. MATLAB机器人工具箱(一 机器人运动学)

    目录 一.三维空间位姿表示与坐标变换方法 三维空间的位置与姿态表示 位置描述 姿态描述 旋转矩阵 坐标系绘制 坐标变换 平移坐标变换 旋转变换 二.机器人运动学 D-H参数法 创建一个连杆对象 创建一 ...

  7. MATLAB用fwind2函数设计近似圆对称二维带通滤波器

    %用fwind2函数设计近似圆对称二维带通滤波器 %通带频率为[0.1 0.5] %期望带通频率响应创建矩阵Hd %用freqspace函数创建频率范围向量f1和f2. [f1,f2] = freqs ...

  8. MATLAB 机器人工具箱与机器人系统工具箱使用

    安装机器人工具箱成功的基础上,打开matlab后在命令行输入 roblocks可以打开机器人工具箱的Simulink库 应用参考链接如下: MATLAB机器人工具箱在SIMULINK中对机器人进行操作 ...

  9. matlab绘制sign函数,MATLAB的Symbolic Math Toolbox详解

    MATLAB 符号数学工具箱 入门 创建符号数字,变量和表达式 创建符号数字 创建符号变量 创建符号表达式 重复使用符号对象名 创建符号函数 创建符号矩阵 使用存在的符号变量 创建矩阵的同时生成元素 ...

最新文章

  1. 算法笔记-异或的使用、异或算法面试题、详细解析、异或的理解与其使用规律
  2. 2019版中国数字经济发展与就业白皮书
  3. Sorenson Capital:值得投资的 5 种 AI 技术
  4. 计算机word考试试题答案,计算机word考试-试题1(附答案解析).doc
  5. 无监督学习 k-means_无监督学习-第1部分
  6. here文档 here doc EOF重定向
  7. 程序员过关斩将--你的面向接口编程一定对吗?
  8. stl中copy()函数_std :: copy()函数以及C ++ STL中的示例
  9. 如何打造程序员专属聊天室?
  10. 数据库闪退_解决APP连续闪退的方案
  11. 制输电线路行波测距PSCAD仿真模型ATP-EMTP
  12. 模拟、数字基带/频带通信系统:编码、信源/信道编码、调制、码间串扰
  13. Acer E1-471G DMI信息修改案例(硬刷)
  14. 专项训练——判断推理
  15. android 百度离线下载速度慢,Android手机解决百度网盘下载速度限制
  16. ACM求多边形重心和面积问题
  17. 军用计算机ip等级是什么,加固计算机的IP防护等级是什么?
  18. 一起学libcef--正确关闭你创建的浏览器
  19. 如何带好一个20人团队?
  20. 心态好的人,都有这5种生活方式

热门文章

  1. HTTP第16讲——HTTP的重定向和跳转
  2. 基于3G手机的移动云计算和云存储
  3. 关于使用NodeJS+Express搭建服务器访问静态资源的一些填坑经验
  4. CodeForces 215 E.Periodical Numbers(组合数学+dp)
  5. r7 5825u和r7 5700u哪个好 r75825u和5700u对比
  6. 广东扑克 之 锄大地
  7. STM32 发送字符串至淘晶驰串口屏显示到txt控件——避坑
  8. 【Delphi】实现登陆教务系统并获取课表的艰苦历程
  9. IT忍者神龟之MySQL函数详细描述
  10. 河南省3加2计算机学校,河南省最好的3+2学校