机器人技术基础实验及上机
2004年8月
实验一 齐次变换与HNC-IR机器人运动学建模
1、认识串并联机器人的典型结构,掌握串、并联机器人的自由度运算方法。
2、熟悉串、并联机器人结构示意图的画法。
3、理解齐次变换的物理意义,掌握齐次变换矩阵表示刚体位姿的方法,能正确
地进行齐次变换矩阵的运算。
4、熟悉D-H表示法,正确确定连杆参数和关节变量,进行运动学建模。
齐次变换和运动学建模是机器人运动学的基础。刚体的位姿通过在刚体上建立
坐标系来描述。齐次变换矩阵是一个四行四列的矩阵,它的前三列描述刚体的姿态
(方向),第四列描述刚体的位置。齐次变换矩阵的乘表示刚体或坐标系间的复合
变换,齐次变换矩阵的逆表示反变换。即:如果坐标系相对的齐次变换矩阵,,,,BA-1是T,那么T表示坐标系相对的描述。 ,,,,AB
连杆的功能在于保持其两端的关节轴线具有固定的几何关系,连杆的特征也是
由这两条轴线规定的。两轴线的公法线长度就是连杆的长度,两轴线的扭角就是连
杆的扭角。两连杆之间的连接关系由两连杆的公法线之间的偏置和夹角描述。基于
上述D-H法的原理在机器人操作臂的每一连杆(构件)上建立坐标系,确定连杆
参数和关节变量,进行运动学建模。
? HNC-1R教学机器人
2.并联机器人模型3-RPS或6-SPS一部
1、观察并联机器人与HNC-IR机器人的结构,了解其动作原理,并绘制其结构
1
简图。
2、计算自由度
3、对HNC-IR机器人建立连杆坐标系,确定连杆参数和关节变量。相应参数填
入HNC-IR连杆参数表。
HNC-1R连杆参数表 连杆 关节变量 a,d,i,1i,1ii序号i
1
2
3
4
5
6
23234、建立连杆3的齐次变换矩阵T,求T,指出T、T的物理意义,(要求能3232
正确进行矩阵运算,并能把矩阵运算模型存入软盘,以备后续实验用)。
? 齐次变换矩阵的物理意义是什么?
? 怎样进行机器人操作臂的运动学建模?
2
实验二 HNC-1R机器人运动学正反解
1、掌握机器人运动方程的建立方法
2、掌握机器人运动正、反解方法
3、了解运动反解中多解的处理方法
4、熟悉D-H表示法,正确确定连杆参数和关节变量,进行运动学建模。
,,i,1在实验一的基础上,连杆坐标系相对可看作经过了以下四个子变换:,,i
绕轴的转动,沿轴的移动,绕轴的转动,沿轴的移动。利用矩阵乘xxzzi,1i,1i,1i,1
i,1,,i,1的原理得到坐标系相对的齐次变换矩阵是(即教材上
公式
小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载
3.3),将各T,,ii
i,10个连杆变换(i=1,2,„„,n)相乘得。根据关节变量q(i=1,2,„„,n)TTiin
00求解的过程是运动学正解,反之已知求解关节变量q(i=1,2,„„,n)则TTinn
为运动学反解。反解用反变换法通过分离变量得到只含单变量的方程,从而解
出关节变量q(i=1,2,„„,n)。 i
? HNC-1R教学机器人
2.每组每生电脑一部并配置相应软件
1、结合实验一的内容,建立HNC-1R机器运动学方程 2、实现HNC-1R机器人正解算法(借助Matlab,在已知q(i=1,2,„„,n)的前提i
3
0下,求出,这里n=5) Tn
03、实现HNC-1R机器人反解算法(把已求得的作为已知,求得关节变量qTin(i=1,2,„„,n),与正解结果互相验证)
1.运动学反解的多重解如何处理?怎样得出最优解?
2.运动学反解的数目与机器人的结构本身有无关系?
4
实验三 HNC-1R机器人通信及轨迹规划
1.熟悉与机器人通信的三种主要方法
2.掌握机器人语言结构与编程特点
3.掌握示教再现法
4.了解轨迹规划的基本方法
二、
目前与机器人通信的方法主要有三种,即:示教再现,机器人语言和离线
编程。示教再现就是根据作业任务的需要,用手或示教盒把机器人的末端执行
器移动到所需的位姿上,然后把每一位姿存储起来,编辑并再现示教过的动作,
如果示教正确,则机器人可重复再现运行。机器人语言是人-机通信问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
的通
用方式。它是一种专用语言,用符号描述机器人动作。本实验通过实际编程或
示教再现,实现2个茶杯盖子的互换,掌握HNC-1R型教学机器人程序的基本结构,学习示教编程获取各点位置姿态的方法,熟悉机器人及其控制系统的基
本操作和处理方法并通过机器人的运行
体会
针灸治疗溃疡性结肠炎昆山之路icu常用仪器的管理名人广告失败案例两会精神体会
轨迹规划的实现方法。
HNC-1R型教学机器人一部
1.观察示教再现过程,理解掌握与机器人通信的方法。
2.通过演示程序的运行,掌握程序结构,了解程序编制方法和
轨迹规划的实现。
3.参考程序
5
% 01021 ;程序名
N1 speed 500 ;N1是语句标号,speed 是指令,表示速度,500是速度的
具体值
N5 open ;手指开
N10 MOVE J{19.122,20.470,-60.093,0.364,0.000};J是关节坐标
N20 move J{20.358,17.783,-59.482,0.370,0.000}
N30 delay 2 ;delay 2表示延时2秒
N40 CLOSE ;手闭合
N50 delay 2
N60 move P{401.263, 152.891,-73.804,0.370,20.858};P是直角坐标
N70 move P{429.40l,1.461,-73.804,0.370,0.195}
N80 move J{0.195,0.463,-39.412,0.370,0.000}
N90 delay 2
N100 Open
N110 delay 1
N120 move P{472.060,1.607,-142.620,0.370,0.195}
N130 move J{-25.032,23.559,-71.811,0.370,0.000}
N140 move J{-25.032,21.472,-71.586,0.370,0.000}
N150 delay 2
N160 Close
N170 delay 1
N180 move P{349.635,-163.275,-17.483,0.370,-25.032}
N190 move P{361.284,135.560,-17.483,0.370,20.567}
N200 move J{21.405,20.554,-62.049,0.370,0。000}
N210 move J{21.905,19.692,-60.967,0.370,0.000}
N220 delay 2
N230 open
N240 deIay l
N250 move P{400.529,154.591,-94.324,0.370,31.105}
N260 move P{428.488,26.831,-94.324,0.370,3.583}
6
N270 move J{-0.132,2.713,-41.279,0.370,0.000}
N280 move J{2.932,0.946,-42.279,0.370,0.000}
N300 Close
N310 delay l
N320 move P{450.224,-1.037,-17.505,0.370,—0.132}
N330 move J{-24.844,24.101,-71.653.0.370,0.000}
N340 move J{-24.844,22.275,-71.653, 0.370,0.000}
N350 delay 2
N360 open
N370 delay l
N380 move P{360.369,-151.811,-34.136,0.370,-22.844}
N390 move P{188.702,342.497,-34.136,0.370, 61.147}
N400 end
4.运行操作
(1)在示教编程界面下,保存上述程序;
(2)在自动运行方式下,选择上述程序:
(3)按下示教操作盒上的“循环启动”按钮;
(4)运行程序直到完毕。
五
1.与机器人通信的三种主要方法是什么?什么是示教再现法,体会如何对机器
人示教?
2.机器人语言的基本结构是怎样的?体会用机器人语言如何与机器人通信?
7
1.上机过程
点击桌面上的Matlab图标(进入command窗口)?点击File?点New?点击M-file(进入编程窗口,在此窗口下进行编程)?编程完毕,点击File?点击save或save as保存程序(程序名应以字母开头,且不能是Matlab的保留字,程序的扩展名必须是.m),保存程序后?点击Debug?点击Run,运行程序。 2.程序运行结果
程序运行结果在Command窗口中(在任务栏中点击)。
3.矩阵输入举例
t1=[1 2 ; 3 4]
表示矩阵t1是2×2的,第一行元素是1和2,第二行元素是3和4。 矩阵t1的第i行第j列的元素表示为t1(i,j),如:t1(2,1)=3
4.矩阵运算指令举例
4.1 矩阵乘法
t1*t2
表示矩阵t1与矩阵t2相乘
4.2矩阵的逆
8
inv(t1)
表示求矩阵t1的逆矩阵
5.赋值语句
a= inv(t1)
表示把矩阵t1的逆矩阵用a表示。 6.方程及方程组的解法
6.1 方程的解法
要解方程f(x)=0
在程序中写成
f1=f(x)
[x]=solve(f1,x)
要解方程f1(x)=0,需按下列指令处理:
y=f1(x)
[x]=solve(y,x)
6.2 方程组的解法
m(x,y,z),0,若要求解方程组 ,n(x,y,z),0, ,l(x,y,z),0,
在程序中写成:
f1,m(x,y,z) f2,n(x,y,z)
f3,l(x,y,z)
[x,y,z]=solve(f1,f2,f3,x,y,z)
此时在command窗口中可得变量x、y、z的具体数值或表达式。
9
7.角度的输入
需要注意角度的输入,系统中默认的是弧度。Matlab中用pi表示, 8.数值运算
若进行数值运算,可直接给变量赋值,进行运算,这与其它高级语言类似。
9.符号运算
若进行的不是数值运算,而是符号运算,则需要在程序开始的第一行进行符号
说明,即说明变量是符号变量。例:
a和b是符号变量,则说明如下:
syms a b
c=a+b
则在command 窗口中可见c的内容就是a+b。
10.如果数据表达式复杂,可用simplify(f1)语句对f1整理简化。 11. 如果数据太长,可用vpa(q2)看数据q2。
12.可变精度的运算,可以设置任意多的有效计算位数进行计算(Vpa,digits)
如:digits(16)
[x,y]=solve(f1,f2.x,y)
:
1.编程计算矩阵T1与T2的乘积,其中
cos(x)3sin(y)cos(y)3sin(x),,,,
,,,,T1,cos(y)7sin(x)T2,cos(x)7sin(y),,,,
,,,,401401,,,,
x2.解矩阵方程,求得变量和 yT1,T2,0
(提示利用对应元素相等,列方程,程序语句如下:
f1=t1(1,1)-t2(1,1)
f2=t1(2,1)-t2(2,1)
[x,y,]=solve(f1,f2,x,y)
:
10
11