目 录
一、实验对象... 1
二、实验目的... 1
三、实验内容... 1
四、实验思考的问题及要求... 10
一、实验对象
1、二自由度冗余并联机器人
二自由度冗余并联机器人主要用于实际机加工,机器人三条手臂的交汇处安装的是加工刀具(本实验设备中是笔架,用于记录运动轨迹),机器人运行时三个电机协调动作实现刀具中心按照希望的曲线运行。
该二自由度冗余并联机器人型号GPM2002,机器人手臂均按照左手臂弯曲,采用三条手臂目的是有效防止机构运行到关节死点和增强运行过程中笔架中心的平稳性。
2、四轴运动控制开发平台
运动控制开发平台为程序开发的辅助工具,不直接在并联机构上编写程序,可有效避免程序调试过程中的不确定因素对设备的损坏,例如可避免程序错误或者参数设置不当引起的设备动作发生故障。对于固高运动控制卡系列产品的程序开发均可在此平台上进行。
该开发平台型号GMD4002,内置GT400型运动控制卡。开发平台与并联机构的控制原理一致,只是控制电机上没有接负载,确保在实验程序调试过程中的安全性。
对于该并联机构,由于采用的运动控制卡也是GT400型,若进行功能开发,可在开发平台上编写程序,调试通过后,可直接用于控制并联机构。两台设备上的控制程序是相通的。
二、实验目的
1. 掌握并联机构运动学分析方法;
2. 熟悉运动控制卡编程,掌握控制系统软件部分程序设计过程;
3. 熟悉采用开发平台编写控制程序;
4. 编程使3个关节的协调动作,按照给定的轨迹动作。
三、实验内容
1.完成本实验整体思路
本次实验中,重点和难点都是并联机构动作的编程实现,为实现并联机构的动作,准确按照规划的轨迹运行,首先则需要机器人运动学知识为基础。
图1 完成实验思路
2. 运动控制程序对并联机构动作的实现过程
(1)并联控制系统的组成
控制装置由工控PC机、运动控制卡和相应驱动器、电机等组成。运动控制卡在内部接收PC机发出的位置和轨迹指令,进行规划处理,转化成伺服驱动器可以接收的指令格式,发给伺服驱动器,由伺服驱动器进行处理和放大,输出给电机执行装置。如图2所示。
图2 并联机构控制系统图
(2)编写的Visual C++程序对机器人的控制过程
实验运动控制程序采用Visual C++编写,程序与运动控制器之间的连接采用动态链接库函数(.dll)。运动控制程序的运行结果直接输入运动控制器,经处理后送到电机的伺服驱动器,发出脉冲,电机旋转。脉冲发出的总数量决定电机转角,发脉冲的频率决定电机的转速。控制信号在系统中的传递过程如图3所示。反馈的编码器信号进入伺服驱动器,后经数据交换进入运动控制器。编码器信号可由数据采集程序在运动控制程序主界面中显示。
图3 控制信号传递过程图
3.实验中涉及的主要知识点
(1)谐波齿轮减速器工作原理及特点
电机轴与连杆之间采用谐波齿轮减速器减速,众所周知,伺服电机的转速是可调的,为什么不直接设定电机以低速转动,而是采用减速器减速呢?主要原因是电机扭矩较小,采用减速器以牺牲速度的方式获得较大的扭矩。
谐波传动工作原理图如图4所示。它主要由三个基本构件组成:带有外齿圈的柔性齿轮(柔轮)1;带有内齿圈的刚性齿轮(刚轮)2;波发生器H。刚轮固定,动力由波发生器输入,柔轮输出,其输入与输出转向相反。
图4 谐波传动工作原理
波发生器H是一个杆状部件,其两端装有滚动轴承构成滚轮,与柔轮1的内壁相互压紧。柔轮为可产生较大弹性变形的薄壁齿轮,其内孔直径略小于波发生器的总长。波发生器是使柔轮产生可控弹性变形的构件。当波发生器装入柔轮后,迫使柔轮的剖面由原先的圆形变成椭圆形,其长轴两端附近的齿与刚轮的齿完全啮合,而短轴两端附近的齿则与刚轮完全脱开。周长上其他区段的齿处于啮合和脱离的过渡状态。当波发生器沿图示方向连续转动时,柔轮的变形不断改变,使柔轮与刚轮的啮合状态也不断改变,由啮入、啮合、啮出、脱开、再啮入……,周而复始地进行,从而实现柔轮相对刚轮沿波发生器H相反方向的缓慢旋转。
在传动过程中,波发生器转一周,柔轮上某点变形的循环次数称为波数,以 n 表示。常用的是双波和三波两种。双波传动的柔轮应力较小,结构比较简单,易于获得大的传动比。故为目前应用最广的一种。
谐波齿轮传动的柔轮和刚轮的周节相同,但齿数不等,通常采用刚轮与柔轮齿数差等于波数,即
z2-z1=n
式中 z2、z2--分别为刚轮与柔轮的齿数。
当刚轮固定、发生器主动、柔轮从动时,谐波齿轮传动的传动比为
i=-z1/(z2-z1)
双波传动中,z2-z1=2,柔轮齿数很多。上式负号表示柔轮的转向与波发生器的转向相反。由此可看出,谐波减速器可获得很大的传动比。
谐波齿轮减速器的特点是:
(a)承载能力高 谐波传动中,齿与齿的啮合是面接触,加上同时啮合齿数(重叠系数)比较多,因而单位面积载荷小,承载能力较其他传动形式高。
(b)传动比大 单级谐波齿轮传动的传动比,可达i=70~500。
(c)体积小、重量轻。
(d)传动效率高、寿命长。
(e)传动平稳、无冲击,无噪音,运动精度高。
(f)由于柔轮承受较大的交变载荷,因而对柔轮材料的抗疲劳强度、加工和热处理要求较高,工艺复杂。
(2)运动学分析
(此部分工作详细过程可参考并联机器人方面的书籍,可参考的书籍资料很多,而且由于是基础知识,书中均有比较详细的求解过程和示例)
运动学分析主要是为了实现并联机构笔架中心以直角坐标(x,y)描述和关节坐标(θ1,θ2,θ3)描述之间的转换。已知并联机构各关节转角(θ1,θ2,θ3),要求计算笔架中心的位置(x,y)的问题,称为运动学正解;已知笔架中心的位置(x,y),求并联机构笔架中心对应于这个位置的关节转角(θ1,θ2,θ3),称为运动学反解。
(3)Visual C++的学习
Visual C++中的功能模块MFC可方便地实现程序界面的编写,只需简单的操作,就可生成程序界面,而如果用程序段来编写界面,需要170多行复杂的程序,所以用MFC大大简化了编程的辅助内容,实际编程时,就可把主要精力放在并联机构的动作实现上。MFC界面编写过程如下:
(Ⅰ)打开VC++程序,文件-新建,在工程目录下选取MFC AppWizard[exe],并在工程名称中键入工程文件名(例test),和文件存放的位置。点击确定。
(Ⅱ)选择基本对话框,点击下一步,在后面依次打开的对话框中均点击下一步。
(Ⅲ)点击完成
(Ⅳ)出现以下窗口,窗口中生成的界面即为程序的初始界面。右键点击图中椭圆形区域,选择控件,即可在界面中添加功能控件,双击功能控件即进入该控件对应的程序段的编写。
(Ⅴ)将文件gt400.dll、gt400.h、gt400.lib复制到编写的程序文件夹下。
(Ⅵ)在(Ⅳ)步骤出现的窗口中,工程-设置,出现下面窗口,选连接,在对象/库模块中输入gt400.lib。点击确定。
(Ⅶ)在程序最前端的函数声明中加上一行:
#include "gt400.h"
(4)运动控制器编程
熟悉对运动控制器的编程,主要是了解运动控制器有哪些功能,各个功能的实现都需要如何调用指令,在《运动控制器编程手册》上对运动控制器的所有功能指令都作了详细的介绍,有的指令还有示例说明。每条指令实际都是对应一段子程序,调用的指令即为子程序名,子程序段存储在运动控制器的EPROM中,为非公开内容。编程时,只需调用这些指令,运动控制器就可完成相应的参数设置或者动作实现。
运动控制器的功能指令有数百条,若逐条理解消化,不但费时,而且效果甚微;若从运动控制器需要实现的功能上对指令进行分类,如初始化内容、状态检测内容、动作指令等方面。从大方面着手,逐层细化理解,可对运动控制器的功能熟练的掌握,具体要实现某一功能时,再查看编程手册,查询相对应的指令的用法。
对运动控制器的编程熟悉过程需要大量的实际动手编程,只看《运动控制器编程手册》而不动手,很难熟悉整个编程思路,对简单程序可能能够看懂,但是对于较长的程序段,则束手无策。
(5)四轴运动控制开发平台编程指导
对运动控制器的编程熟悉过程和并联机构动作程序的开发都应在运动控制开发平台上进行。
以程序实例对编程过程进行说明。以下示例是在四轴开发平台上编写的程序,程序名为test8。图5为程序的主界面。
图5 程序主界面
其中,板卡初始化按钮对应的程序段是:
GT_Open( ); //板卡打开
GT_Reset( ); //板卡复位
GT_LmtSns(255); //设置限位开关的有效电平,8个bit位均为1
for(int j=1;j<5;j++)
{
GT_Axis(j); //指定操作的轴
GT_SetKp(10); //设定轴运动控制中的Kp值
GT_Update( ); //参数更新
GT_AxisOn( ); //将指定的轴打开
}
单轴运动1轴按钮对应的程序为:
GT_Axis(1); //指定为1轴,也可指定其他轴
GT_ZeroPos( ); //位置清零
GT_ClrSts( ); //状态位清零
GT_SetPos(100000); //给定转角,用脉冲数表示
GT_SetAcc(0.1); //设定加速度
GT_SetVel(2); //设定速度
GT_Update( ); //参数更新
多轴运动/直线按钮对应的程序为:
for(int k=1;k<5;k++)
{
GT_Axis(k);
GT_ZeroPos( );
}
double map_cnt1[5]={1,0,0,0,0};
double map_cnt2[5]={0,1,0,0,0};
double map_cnt3[5]={0,0,1,0,0};
double map_cnt4[5]={0,0,0,1,0};
GT_MapAxis(1,map_cnt1);
GT_MapAxis(2,map_cnt2);
GT_MapAxis(3,map_cnt3);
GT_MapAxis(4,map_cnt4);
//以上是完成坐标映射,可参考编程手册,有详细说明。
GT_SetSynAcc(0.01); //指定合成加速度
GT_SetSynVel(5); //指定合成速度
GT_LnXYZA(20000,10000,10000,10000); //指定各轴终点位置
圆弧插补和多条插补命令按钮都是对插补程序的一种延伸,多条插补命令中用到缓冲区命令GT_StrtList( )和GT_EndList( ),将轴的动作指令放在这两条程序之间,则动作依次进行,否则,只执行一行运动指令,因为计算机对指令的执行速度比轴的动作速度快很多,其他指令来不及执行。在板卡中设有缓冲区,可解决指令被覆盖的问题。
在对主界面进行操作的时候,需先点初始化按钮,对运动控制卡和电机伺服上电和参数设置,再点击其他按钮实现轴的运动。
(6)并联机构协调动作
并联机构上的3个关节协调动作才能实现准确的动作,协调动作的基础是单关节动作。但在并联机构上,不能单独让其中一个轴动作,否则将会引起机械臂之间的拉扯,严重时可能引起设备的损坏。所以单轴动作的编程只能在开发平台上实现,而不能在并联机构上运行。并联机构和开发平台上的控制卡都是GT400型的,所以在开发平台上编写的程序可以直接在并联机构上运行。
让并联机构3个关节协调动作,则必须先确定笔架中心的目标运动轨迹,即采用多段函数曲线拟合目标轨迹,确定各段曲线的函数表达式。3个关节协调动作沿着轨迹运行,实际上是将目标曲线分成足够小的若干段,对每一小段均采用直线插补而成的。对每个小的直线段的端点进行运动学反解,求出各个点对应的3个关节的转角,然后运动控制器发脉冲让3个关节转动相应的角度。笔架中心依次完成各个小的直线段,最终完成整个轨迹。
3个关节协调动作程序部分的具体实现可参考并联机构源程序GPM2012中三叶玫瑰线、心形线以及Demo曲线的绘制实现。
程序设计总体思路可参考图6:
图6 编程思路
四、实验思考的问题及要求
1. 冗余二自由度并联机器人与普通二自由度并联机器人相比有什么优势?并联机构在实际生产中还有那些用途?
2. 深刻理解谐波齿轮减速器减速原理;
3. 按照提供的程序,能熟练地操作该并联机构;
4. 熟悉对并联机构的编程,实现并联机构笔架中心按照规划的轨迹曲线动作。