工业机器人试验报告02机械41示教离线编程.docx

上传人:b****7 文档编号:11506158 上传时间:2023-03-02 格式:DOCX 页数:25 大小:92.11KB
下载 相关 举报
工业机器人试验报告02机械41示教离线编程.docx_第1页
第1页 / 共25页
工业机器人试验报告02机械41示教离线编程.docx_第2页
第2页 / 共25页
工业机器人试验报告02机械41示教离线编程.docx_第3页
第3页 / 共25页
工业机器人试验报告02机械41示教离线编程.docx_第4页
第4页 / 共25页
工业机器人试验报告02机械41示教离线编程.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

工业机器人试验报告02机械41示教离线编程.docx

《工业机器人试验报告02机械41示教离线编程.docx》由会员分享,可在线阅读,更多相关《工业机器人试验报告02机械41示教离线编程.docx(25页珍藏版)》请在冰豆网上搜索。

工业机器人试验报告02机械41示教离线编程.docx

工业机器人试验报告02机械41示教离线编程

Forpersonaluseonlyinstudyandresearch;notforcommercialuse

 

工业机器人实验报告

蒆机器人示教与离线编程实验

薀班级:

机械41

罿组别:

第一组

袆组员:

陈豪03

羅尹鑫鑫23

薃武文家20

聿指导老师:

桂亮

膅西安交通大学

膁2017年5月3日

西安交通大学实验报告

 

蚇实验一机器人示教实验

肇一、实验目的

蚂1.了解机器人示教与再现的原理;

蒈2.掌握机器人示教和再现过程的操作方法。

肇二、实验设备

蒅1.模块化机器人一台;

蒁2.模块化机器人控制柜一台。

薈三、实验原理

葿机器人的示教-再现过程是分为四个步骤:

示教、记忆、再现、操作。

芆示教,就是操作者把规定的目标动作(包括每个运动部件,每个运动轴的动作)一步一步

的教给机器人。

蒄记忆,即是机器人将操作者所示教的各个点的动作顺序信息、动作速度信息、位姿信息等记录在存储器中。

蚈再现,便是将示教信息再次浮现,即根据需要,将存储器所存储的信息读出,向执行机构发出具体的指令。

薅操作,指机器人以再现信号作为输入指令,使执行机构重复示教过程规定的各种动作。

蚄示教的方法有很多种,有主从式,编程式,示教盒式等多种。

节四、实验步骤

螈1.接通控制柜电源,按下“启动”按钮;

羆2.启动计算机,运行机器人软件;

莆3.点击主界面“模块组合方式”按钮,按照实际情况选择已组合的模块设备,并点击“确定”按钮;

肁4.点击主界面“机器人复位”按钮,机器人进行回零运动。

观察机器人的运动,所有模块全部运动完成后,机器人处于零点位置;

肂5.点击“示教”按钮,出现界面;

莇6.在“速度”中选择示教速度(由左到右从低速到高速1.5度/秒、6度/秒、12度/秒、

24度/秒共四个挡,默认是6度/秒,一般情况下建议选择12度/秒;在“模块运动”中有每个关节的正反向运动,持续按下相应模块的按钮,机器人的模块会按照指令运动,松开相应的按钮,机器人的模块会停止运动;

袄7.在机器人“模块状态”和“当前坐标”中,可以实时显示机器人的运动状态,当每运动到一个点,必须按下“记录”按钮,在再现时机器人将忽略中间过程而只再现各个点,在“示教列表”中会记录并显示机器人相应模块运动的信息,继续运动其他模块,直到整个示教程序完成;

肄8.点击“保存”按钮,示教完的信息以(*.RBT6)格式保存在示教文件中;

膂9.点击“再现”按钮,机器人按照记录的机器人各模块信息再现一遍运动轨迹;

螈10.点击“清空”按钮会把示教列表全部清除。

薆11.点击“退出”按钮,退出当前界面;

袃12.点击“机器人复位”按钮,使机器人回到零点位置;

芁13.按下控制柜上的“停止”按钮,关闭计算机;

腿14.断开控制柜电源。

肄五

、实验结果

薂1.示教实验结果截屏

莁图1.2机械手吸取物块

 

膄图1.3机器人放下物块

薁2.示教实验结果分析

膈2.1实验结论

袅在实验中,我们可以看到,经过示教和记忆后的机器人能够较为准确地再现示教过程的动作,能够完成物块的运输装配工作。

膃22实验问题

薁但在实验中,我们发现,有时机器人无法再现动作与示教动作有所偏差,即机器人无法准确到达物块所在位置,进行物块的搬运工作。

薈我们分析,造成该问题的原因有如下几点:

1.

2.莃机器人的控制与响应有延迟,导致机器人运动存在偏差;

3.

4.羁机器人的机械结构造成机器人的误差不可避免(如反向间隙的存在);

5.

6.蚁机器人在运动过程中存在干扰,造成误差。

蚅2.2实验过程总结

肅机器人示教过程总结:

1.

2.螀通过控制软件可视化界面,控制机器人完成拾取物块、搬运物块、放置物块的工作;

3.

4.螁在示教的同时完成记忆过程;

5.

6.肆通过再现过程,计算机向机器人发出指令;

7.

8.薃机器人接受指令,进行预定操作。

螃六、思考题

袀1.通过实验总结机器人示教-再现的概念

蒇机器人示教和再现实际上是一个信号输入与输出过程。

通过示教,机器人采集关键点的位置信息,并将位置反馈给存储器。

在再现过程中,存储器将已有的位置以指令的形式发出,控制机器人按示教的顺序,完成对应的工作。

2.

3.芅试分析机器人的示教属于PTP(点到点)控制还是输入CP(连续轨迹)控制

薂机器人的示教属于PTP(点到点)控制。

羀在实验中,我们注意到在示教过程中,每控制机器人到达一个新位置,都要重新记录机器人关键点的位置,由此可以看出机器人示教实际上是对关键点位置和到达顺序的记录。

 

西安交通大学实验报告

肃第页(共

膀课程:

工业机器人

实验日期:

2017年5月3

袇专业班号

机械41

组别

第一组

交报告日期:

年月

薄姓

陈豪

学号

03

告退发:

(订正、重做)

袁姓

_I_L.

尹鑫鑫

学号

23

教师审批签字:

芀姓

武文家

学号

20

页)

 

芆实验二机器人离线编程实验

蚀一、实验目的

莀1.通过编程,实现对机器人的控制;

蚈2.熟悉机器人的操作控制过程;

螄3.熟悉利用VC++实现可视化机器人控制程序的编写过程。

蚃二、实验设备

蒀1.模块化机器人一台;

螅2.模块化机器人控制柜一台。

蒆三、实验内容

蒂在VisualC++6.0中编写可视化机器人控制程序。

蕿通过完成的控制系统,实现对机器人的一些简单操作。

并要求控制程序能够控制机器人的运动模式、选择方式、启动方式、运动速度、目标位置、运动方向、手爪张闭。

膆完成程序后在机器人上实现操作。

羄四、实验结果

賺1.程序界面截图

//.Epp«Enplpiwntioii<11**

//

■Inclmdr"'KtdAi^x.h"1

■liKludp-*

■Include"pxpDUg.h"*

alKlvde"5is1.b,s

■If4・*_B€9HG

■dFFinr~ni¥HDEBUE_l«tf

■Uihde#INIIS._F1LE

«t4tlEChjr-THIS_FILE[)■_FllLl_J■endif

"""""""""""""""""""""""""""""""""""""//CAbomt-BllgilldilsiglibrdFurAppftlillul

cla^sCAEKJUtOl^:

puHiltCDl.il(

public;

EMiMitlOiljgC};

//IHM阿OdU

虿小、r剛':

、i^r-ic-tin.ics:

薇图2.1程序头文件截图

 

广w«irti糊

广WJ?

2广ttife

广劇朗r机戯

r捷頗I式广rwBtfiTt

谢iii底UTi~IB曲

曲te3[HTL簾

广工向广负向

r广顾

 

 

蝿图22程序可视化界面截图

肄五、

羃1.

实验分析与总结

实验过程总结

蝿在实验中,我们通过调用机器人动态链接库函数实现对机器人的控制。

通过实验,我们有如下几点收获:

1.

2.荿我们从函数形式中可以看出控制机器人需要提供给机器人一些参数(运动轴号、目标位置、运动速度、运动模式和启动方式);

3.

4.袆手部的控制函数与其他轴的控制函数不同,可见手部控制器是一个独立的部件;

5.

6.螂只有当机器人的速度、目标位置控制在一个合适的范围内时、机器人的运动才能稳定。

7.

8.衿不同的运动模式下,机器人方式有所不同。

蒆2.实验问题分析

芃实验中遇到的最大问题是程序与机器人的链接问题,通过调用动态链接库最终能够实现机器人的链接。

薀由于我们不熟悉VC++语言,在编写程序时遇到了很多困难,但实际上,通过查找相关资料以及查看错误说明能够很好地解决问题。

罿

六、七、袆机器人链接库编程实验程序

羅见附页

西安交通大学实验报告

芈专业班号

机械41

组别

第一组交报告日期:

年月日

聿姓

陈豪

学号

03报告退发:

(订正、重做)

薃姓

_I_L.

尹鑫鑫

学号

23教师审批签字:

膄姓

武文家

学号

20

第页(共页)

芆机器人示教与离线编程实验总结

、莅机器人示教与离线编程的对比

羃表1机器人示教与离线编程的对比

莈项目

蚇示教

肇离线编程

蚂编程门槛

蝿低

荿咼

祎机器人占用

螂占用

衿不占用

螀事故

薈示教过程中易碰撞

螅不易碰撞

罿精度

袇靠人控制,精度低

羅精度咼

薄应用范围

聿针对特定机器人

芇可控制大部分机器人

蚇直观程度

莂咼

莃低

膅二、实验体会

莅陈豪:

蒃通过本次实验,我们了解了机器人的控制系统的组成。

在实验中,我们进一步认识了示

教的作用,对机器人控制有了进一步的理解。

并在实验中复习了方VC+■程序的编写、有关机器人示教和离线编程的相关知识、并对实验系统进行了分析。

对机器人理论的相关知识有了更深入的理解。

~T~|.

聿尹鑫鑫:

袇武文家:

通过此次试验,我们亲自操作完成了六自由度机器人的示教,对六自由度机

器人机构和运转有了更深入的认知。

在编程控制实验中,我们又回顾了VC++的编写与应用,真正的把学到的知识用到了实践中去,对机器人的控制编程更加熟悉,也增加了对机器人开发的兴趣

四、蚂实验分工

螂表2实验分工

肇组员

蒅陈豪

螅尹鑫鑫

袂武文豕

葿学号

芇03

蒄23

羂20

袀实验前期

蚄实验预习,阅读实验指导书,了解实验步骤

芃实验过程

羂实验分析、程序编写

羆实验操作、分析

莆数据记录、控制调试

肁实验结束

肂实验原理、实验结果分析讨论

莇报告撰写

袄理论部分

肄分析部分

膂总结部分

膈西安交通大学实验报告附页

膃机器人离线编程程序

薁〃expDIg.cpp:

implementationfile

蕿〃

w#include"StdAfx.h"

羂#“elude"exp.h"

蚁#“elude"expDIg.h"

羀#“elude"s6s1.h"

肅#ifdefDEBUG

^#definenewDEBUG_NEW

螁#undefTHIS_FILE

肆staticcharTHIS_FILE[]=__FILE__;

«#endif

/////////////////////////////////////////////////////////////////////////////

芅//CAboutDlgdialogusedforAppAbout

袈classCAboutDlg:

publicCDialog

羇{

薅public:

肀CAboutDlg();

蒅//DialogData

莄//{{AFX_DATA(CAboutDlg)

膀enum{IDD=IDD_ABOUTBOX};

蚀//}}AFX_DATA

肃//ClassWizardgeneratedvirtualfunctionoverrides

膀//{{AFX_VIRTUAL(CAboutDlg)

袇protected:

薅virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport

袂//}}AFX_VIRTUAL

芈//Implementation

芆protected:

袅//{{AFX_MSG(CAboutDlg)

莀//}}AFX_MSG

虿DECLARE_MESSAGE_MAP()

螄};

蒀CAboutDlg:

:

CAboutDlg():

CDialog(CAboutDlg:

:

IDD)

聿{

蒆//{{AFX_DATA_INIT(CAboutDlg)

蒂//}}AFX_DATA_INIT

薀}

羄voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX)

蒅{

蚀CDialog:

:

DoDataExchange(pDX);

薇//{{AFX_DATA_MAP(CAboutDlg)

蚆//}}AFX_DATA_MAP

芄}

羈BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)

莈//{{AFX_MSG_MAP(CAboutDlg)

羃//Nomessagehandlers

蝿//}}AFX_MSG_MAP

荿END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

衿//CExpDlgdialog

薈CExpDlg:

:

CExpDlg(CWnd*pParent/*=NULL*/)

螅:

CDialog(CExpDlg:

:

IDD,pParent)

罿{

袇//{{AFX_DATA_INIT(CExpDlg)

羅m_axis=0;

薄m_runmod=0;

聿m_trans=30.0;

芇m_fh=10.0;

蚇m_dir=0;

莂m_acc=0;

莃m_hand=FALSE;

蚈m_str=_T("");

膅//}}AFX_DATA_INIT

莅//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32

蒃m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);

聿}

膄voidCExpDlg:

:

DoDataExchange(CDataExchange*pDX)

薃{

蒀CDialog:

:

DoDataExchange(pDX);

莅//{{AFX_DATA_MAP(CExpDlg)

羃DDX_Radio(pDX,IDC_XMOTOR,m_axis);

蚂DDX_Radio(pDX,IDC_SPEED,m_runmod);

蚇DDX_Text(pDX,IDC_TRANS,m_trans);

肇DDX_Text(pDX,IDC_FH,m_fh);

蚂DDX_Radio(pDX,IDC_PDIR,m_dir);

螂DDX_Radio(pDX,IDC_RADIO11,m_acc);

肈DDX_Check(pDX,IDC_CHECK_HAND,m_hand);

蒅DDX_Text(pDX,IDC_EDIT1,m_str);

螅//}}AFX_DATA_MAP

芇BEGIN_MESSAGE_MAP(CExpDlg,CDialog)

蒄//{{AFX_MSG_MAP(CExpDlg)

羂ON_WM_SYSCOMMAND()

袀ON_WM_PAINT()

蚄ON_WM_QUERYDRAGICON()

芃ON_BN_CLICKED(IDC_TRANS_START,OnTransStart)

羂ON_BN_CLICKED(IDC_SUDDEN_STOP,OnSuddenStop)

羆ON_BN_CLICKED(IDC_XMOTOR,OnXmotor)

莆ON_BN_CLICKED(IDC_YMOTOR,OnYmotor)

肁ON_BN_CLICKED(IDC_ZMOTOR,OnZmotor)

肂ON_BN_CLICKED(IDC_UMOTOR,OnUmotor)

莇ON_BN_CLICKED(IDC_VMOTOR,OnVmotor)

袄ON_BN_CLICKED(IDC_WMOTOR,OnWmotor)

肄ON_BN_CLICKED(IDC_SPEED,OnSpeed)

膂ON_BN_CLICKED(IDC_POSITION,OnPosition)

螈ON_BN_CLICKED(IDC_PDIR,OnPdir)

薆ON_BN_CLICKED(IDC_NDIR,OnNdir)

袃ON_BN_CLICKED(IDC_RADIO11,OnRadio11)

节ON_BN_CLICKED(IDC_RADIO12,OnRadio12)

腿ON_EN_CHANGE(IDC_FH,OnChangeFh)

羄ON_EN_CHANGE(IDC_TRANS,OnChangeTrans)

薂ON_BN_CLICKED(IDC_CHECK_HAND,OnCheckHand)

莁//}}AFX_MSG_MAP

薀END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

蒁//CExpDlgmessagehandlers

蒈BOOLCExpDlg:

:

OnInitDialog()

莄{

薁CDialog:

:

OnInitDialog();

袆//Add"About..."menuitemtosystemmenu.

薁//IDM_ABOUTBOXmustbeinthesystemcommandrange.

蕿ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);

蚈ASSERT(IDM_ABOUTBOX<0xF000);

蚁CMenu*pSysMenu=GetSystemMenu(FALSE);

羀if(pSysMenu!

=NULL)

肅{

羄CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

肆if(!

strAboutMenu.IsEmpty())

螇{

螃pSysMenu->AppendMenu(MF_SEPARATOR);

袁pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

蒇}

芅}

羁//Settheiconforthisdialog.Theframeworkdoesthisautomatically

袈//whentheapplication'smainwindowisnotadialog

羇SetIcon(m_hIcon,TRUE);//Setbigicon

薅SetIcon(m_hIcon,FALSE);//Setsmallicon

艿//TODO:

Addextrainitializationhere

蒅s6s1_set_critical(NULL);

莄s6s1_init(1,NULL,true);

膀s6s1_select

(1);

膇returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

肃}

袇voidCExpDlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

薅{

袂if((nID&0xFFF0)==IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog:

:

OnSysCommand(nID,lParam);

}

蒀}

蒆//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow蒂//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,薀//thisisautomaticallydoneforyoubytheframework.

羄voidCExpDlg:

:

OnPaint()

if(IsIconic())

{

CPaintDCdc(this);//devicecontextforpainting

SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);

莈//Centericoninclientrectangle

羃intcxIcon=GetSystemMetrics(SM_CXICON);

蝿intcyIcon=GetSystemMetrics(SM_CYICON);

荿CRectrect;

袆GetClientRect(&rect);

螂intx=(rect.Width()-cxIcon+1)/2;

衿inty=(rect.Height()-cyIcon+1)/2;

薈//Drawtheicon

螅dc.DrawIcon(x,y,m_hIcon);

罿}

袇else

羅{

薄CDialog:

:

OnPaint();

聿}

芇}

莂//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags莃//theminimizedwindow.

蚈HCURSORCExpDlg:

:

OnQueryDragIcon()

膅{莅return(HCURSOR)m_hIcon;

蒃}

袇voidCExpDlg:

:

OnTransStart()

膄{

薃//TODO:

Addyourcontrolnotificationhandlercodehere

蒀if(!

UpdateData(true))return;

莅if(m_fh<0)m_fh=-1*m_fh;

羃if(m_dir==1)

蚂m_fh=m_fh*(-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1