机器人技术基础实验跟上机.docx
《机器人技术基础实验跟上机.docx》由会员分享,可在线阅读,更多相关《机器人技术基础实验跟上机.docx(10页珍藏版)》请在冰豆网上搜索。
机器人技术基础实验跟上机
机器人技术基础实验及上机
指导书
机械电子工程实验室
2004年8月
实验一齐次变换与HNC-IR机器人运动学建模
一、实验目的
1、认识串并联机器人的典型结构,掌握串、并联机器人的自由度运算方法。
2、熟悉串、并联机器人结构示意图的画法。
3、理解齐次变换的物理意义,掌握齐次变换矩阵表示刚体位姿的方法,能正确地进行齐次变换矩阵的运算。
4、熟悉D-H表示法,正确确定连杆参数和关节变量,进行运动学建模。
二、实验原理及方法
齐次变换和运动学建模是机器人运动学的基础。
刚体的位姿通过在刚体上建立坐标系来描述。
齐次变换矩阵是一个四行四列的矩阵,它的前三列描述刚体的姿态(方向),第四列描述刚体的位置。
齐次变换矩阵的乘表示刚体或坐标系间的复合变换,齐次变换矩阵的逆表示反变换。
即:
如果坐标系
相对
的齐次变换矩阵是T,那么T-1表示坐标系
相对
的描述。
连杆的功能在于保持其两端的关节轴线具有固定的几何关系,连杆的特征也是由这两条轴线规定的。
两轴线的公法线长度就是连杆的长度,两轴线的扭角就是连杆的扭角。
两连杆之间的连接关系由两连杆的公法线之间的偏置和夹角描述。
基于上述D-H法的原理在机器人操作臂的每一连杆(构件)上建立坐标系,确定连杆参数和关节变量,进行运动学建模。
三、实验仪器及材料
⒈HNC-1R教学机器人
2.并联机器人模型3-RPS或6-SPS一部
四、实验内容、步骤及数据整理
1、观察并联机器人与HNC-IR机器人的结构,了解其动作原理,并绘制其结构简图。
2、计算自由度
3、对HNC-IR机器人建立连杆坐标系,确定连杆参数和关节变量。
相应参数填入HNC-IR连杆参数表。
HNC-1R连杆参数表
连杆
序号i
关节变量
1
2
3
4
5
6
4、建立连杆3的齐次变换矩阵23T,求32T,指出23T、32T的物理意义,(要求能正确进行矩阵运算,并能把矩阵运算模型存入软盘,以备后续实验用)。
五、思考题
⒈齐次变换矩阵的物理意义是什么?
⒉怎样进行机器人操作臂的运动学建模?
实验二HNC-1R机器人运动学正反解
一、实验目的
1、掌握机器人运动方程的建立方法
2、掌握机器人运动正、反解方法
3、了解运动反解中多解的处理方法
4、熟悉D-H表示法,正确确定连杆参数和关节变量,进行运动学建模。
二、实验原理及方法
在实验一的基础上,连杆坐标系
相对
可看作经过了以下四个子变换:
绕
轴的转动,沿
轴的移动,绕
轴的转动,沿
轴的移动。
利用矩阵乘的原理得到坐标系
相对
的齐次变换矩阵是
(即教材上公式3.3),将各个连杆变换
(i=1,2,……,n)相乘得
。
根据关节变量qi(i=1,2,……,n)求解
的过程是运动学正解,反之已知
求解关节变量qi(i=1,2,……,n)则为运动学反解。
反解用反变换法通过分离变量得到只含单变量的方程,从而解出关节变量qi(i=1,2,……,n)。
三、实验仪器及材料
⒈HNC-1R教学机器人
2.每组每生电脑一部并配置相应软件
四、实验内容、步骤及数据整理
1、结合实验一的内容,建立HNC-1R机器运动学方程
2、实现HNC-1R机器人正解算法(借助Matlab,在已知qi(i=1,2,……,n)的前提下,求出
,这里n=5)
3、实现HNC-1R机器人反解算法(把已求得的
作为已知,求得关节变量qi(i=1,2,……,n),与正解结果互相验证)
五、思考题
1.运动学反解的多重解如何处理?
怎样得出最优解?
2.运动学反解的数目与机器人的结构本身有无关系?
实验三HNC-1R机器人通信及轨迹规划
一、实验目的
1.熟悉与机器人通信的三种主要方法
2.掌握机器人语言结构与编程特点
3.掌握示教再现法
4.了解轨迹规划的基本方法
二、实验原理及方法
目前与机器人通信的方法主要有三种,即:
示教再现,机器人语言和离线编程。
示教再现就是根据作业任务的需要,用手或示教盒把机器人的末端执行器移动到所需的位姿上,然后把每一位姿存储起来,编辑并再现示教过的动作,如果示教正确,则机器人可重复再现运行。
机器人语言是人-机通信问题的通用方式。
它是一种专用语言,用符号描述机器人动作。
本实验通过实际编程或示教再现,实现2个茶杯盖子的互换,掌握HNC-1R型教学机器人程序的基本结构,学习示教编程获取各点位置姿态的方法,熟悉机器人及其控制系统的基本操作和处理方法并通过机器人的运行体会轨迹规划的实现方法。
三、实验仪器设备
HNC-1R型教学机器人一部
四、实验内容及步骤
1.观察示教再现过程,理解掌握与机器人通信的方法。
2.通过演示程序的运行,掌握程序结构,了解程序编制方法和轨迹规划的实现。
3.参考程序
%01021;程序名
N1speed500;N1是语句标号,speed是指令,表示速度,500是速度的具体值
N5open;手指开
N10MOVEJ{19.122,20.470,-60.093,0.364,0.000};J是关节坐标
N20moveJ{20.358,17.783,-59.482,0.370,0.000}
N30delay2;delay2表示延时2秒
N40CLOSE;手闭合
N50delay2
N60moveP{401.263,152.891,-73.804,0.370,20.858};P是直角坐标
N70moveP{429.40l,1.461,-73.804,0.370,0.195}
N80moveJ{0.195,0.463,-39.412,0.370,0.000}
N90delay2
N100Open
N110delay1
N120moveP{472.060,1.607,-142.620,0.370,0.195}
N130moveJ{-25.032,23.559,-71.811,0.370,0.000}
N140moveJ{-25.032,21.472,-71.586,0.370,0.000}
N150delay2
N160Close
N170delay1
N180moveP{349.635,-163.275,-17.483,0.370,-25.032}
N190moveP{361.284,135.560,-17.483,0.370,20.567}
N200moveJ{21.405,20.554,-62.049,0.370,0。
000}
N210moveJ{21.905,19.692,-60.967,0.370,0.000}
N220delay2
N230open
N240deIayl
N250moveP{400.529,154.591,-94.324,0.370,31.105}
N260moveP{428.488,26.831,-94.324,0.370,3.583}
N270moveJ{-0.132,2.713,-41.279,0.370,0.000}
N280moveJ{2.932,0.946,-42.279,0.370,0.000}
N300Close
N310delayl
N320moveP{450.224,-1.037,-17.505,0.370,—0.132}
N330moveJ{-24.844,24.101,-71.653.0.370,0.000}
N340moveJ{-24.844,22.275,-71.653,0.370,0.000}
N350delay2
N360open
N370delayl
N380moveP{360.369,-151.811,-34.136,0.370,-22.844}
N390moveP{188.702,342.497,-34.136,0.370,61.147}
N400end
4.运行操作
(1)在示教编程界面下,保存上述程序;
(2)在自动运行方式下,选择上述程序:
(3)按下示教操作盒上的“循环启动”按钮;
(4)运行程序直到完毕。
五思考题
1.与机器人通信的三种主要方法是什么?
什么是示教再现法,体会如何对机器人示教?
2.机器人语言的基本结构是怎样的?
体会用机器人语言如何与机器人通信?
MATLAB上机指导
MATLAB是一种编程语言,它的科学计算功能强大。
在国外,尤其是美国,早在八十年代末期,各著名大学已开设MATLAB课程。
MATLAB是学生在实验环境中必须掌握的技术工具。
一上机要求
1能够熟练进行数值和符号矩阵的加、减、乘、逆运算
2能够熟练求解矩阵方程
3熟悉MATLAB编程和运算环境
4熟悉MATLAB标准函数的应用
二MATLAB入门知识
1.上机过程
点击桌面上的Matlab图标(进入command窗口)→点击File→点New→点击M-file(进入编程窗口,在此窗口下进行编程)→编程完毕,点击File→点击save或saveas保存程序(程序名应以字母开头,且不能是Matlab的保留字,程序的扩展名必须是.m),保存程序后→点击Debug→点击Run,运行程序。
2.程序运行结果
程序运行结果在Command窗口中(在任务栏中点击)。
3.矩阵输入举例
t1=[12;34]
表示矩阵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矩阵的逆
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方程组的解法
若要求解方程组
在程序中写成:
[x,y,z]=solve(f1,f2,f3,x,y,z)
此时在command窗口中可得变量x、y、z的具体数值或表达式。
7.角度的输入
需要注意角度的输入,系统中默认的是弧度。
Matlab中用pi表示
8.数值运算
若进行数值运算,可直接给变量赋值,进行运算,这与其它高级语言类似。
9.符号运算
若进行的不是数值运算,而是符号运算,则需要在程序开始的第一行进行符号说明,即说明变量是符号变量。
例:
a和b是符号变量,则说明如下:
symsab
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的乘积,其中
2.