版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..工业机器人实验报告——机器人示教与离线编程实验班级:机械41组别:第一组组员:陈豪2140101003尹鑫鑫2140101023武文家2140101020指导老师:桂亮XX交通大学2017年5月3日XX交通大学实验报告第页〔共页课程:工业机器人实验日期:2017年5月3日专业班号机械41组别第一组交报告日期:年月日姓名陈豪学号2140101003报告退发:〔订正、重做姓名尹鑫鑫学号2140101023教师审批签字:姓名武文家学号2140101020实验一机器人示教实验一、实验目的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.1回参考点图1.2机械手吸取物块图1.3机器人放下物块2.示教实验结果分析2.1实验结论在实验中,我们可以看到,经过示教和记忆后的机器人能够较为准确地再现示教过程的动作,能够完成物块的运输装配工作。2.2实验问题但在实验中,我们发现,有时机器人无法再现动作与示教动作有所偏差,即机器人无法准确到达物块所在位置,进行物块的搬运工作。我们分析,造成该问题的原因有如下几点:机器人的控制与响应有延迟,导致机器人运动存在偏差;机器人的机械结构造成机器人的误差不可避免〔如反向间隙的存在;机器人在运动过程中存在干扰,造成误差。2.2实验过程总结机器人示教过程总结:通过控制软件可视化界面,控制机器人完成拾取物块、搬运物块、放置物块的工作;在示教的同时完成记忆过程;通过再现过程,计算机向机器人发出指令;机器人接受指令,进行预定操作。六、思考题1.通过实验总结机器人示教-再现的概念机器人示教和再现实际上是一个信号输入与输出过程。通过示教,机器人采集关键点的位置信息,并将位置反馈给存储器。在再现过程中,存储器将已有的位置以指令的形式发出,控制机器人按示教的顺序,完成对应的工作。试分析机器人的示教属于PTP<点到点>控制还是输入CP<连续轨迹>控制机器人的示教属于PTP〔点到点控制。在实验中,我们注意到在示教过程中,每控制机器人到达一个新位置,都要重新记录机器人关键点的位置,由此可以看出机器人示教实际上是对关键点位置和到达顺序的记录。而再现是将关键点按顺序重新复现的过程。即机器人的示教属于PTP〔点到点控制。XX交通大学实验报告第页〔共页课程:工业机器人实验日期:2017年5月3日专业班号机械41组别第一组交报告日期:年月日姓名陈豪学号2140101003报告退发:〔订正、重做姓名尹鑫鑫学号2140101023教师审批签字:姓名武文家学号2140101020实验二机器人离线编程实验一、实验目的1.通过编程,实现对机器人的控制;2.熟悉机器人的操作控制过程;3.熟悉利用VC++实现可视化机器人控制程序的编写过程。二、实验设备1.模块化机器人一台;2.模块化机器人控制柜一台。三、实验内容在VisualC++6.0中编写可视化机器人控制程序。通过完成的控制系统,实现对机器人的一些简单操作。并要求控制程序能够控制机器人的运动模式、选择方式、启动方式、运动速度、目标位置、运动方向、手爪张闭。完成程序后在机器人上实现操作。四、实验结果1.程序界面截图图2.1程序头文件截图图2.2程序可视化界面截图五、实验分析与总结1.实验过程总结在实验中,我们通过调用机器人动态链接库函数实现对机器人的控制。通过实验,我们有如下几点收获:我们从函数形式中可以看出控制机器人需要提供给机器人一些参数〔运动轴号、目标位置、运动速度、运动模式和启动方式;手部的控制函数与其他轴的控制函数不同,可见手部控制器是一个独立的部件;只有当机器人的速度、目标位置控制在一个合适的范围内时、机器人的运动才能稳定。不同的运动模式下,机器人方式有所不同。2.实验问题分析实验中遇到的最大问题是程序与机器人的链接问题,通过调用动态链接库最终能够实现机器人的链接。由于我们不熟悉VC++语言,在编写程序时遇到了很多困难,但实际上,通过查找相关资料以及查看错误说明能够很好地解决问题。机器人链接库编程实验程序见附页XX交通大学实验报告第页〔共页课程:工业机器人实验日期:2017年5月3日专业班号机械41组别第一组交报告日期:年月日姓名陈豪学号2140101003报告退发:〔订正、重做姓名尹鑫鑫学号2140101023教师审批签字:姓名武文家学号2140101020机器人示教与离线编程实验总结机器人示教与离线编程的对比表1机器人示教与离线编程的对比项目示教离线编程编程门槛低高机器人占用占用不占用事故示教过程中易碰撞不易碰撞精度靠人控制,精度低精度高应用范围针对特定机器人可控制大部分机器人直观程度高低二、实验体会陈豪:通过本次实验,我们了解了机器人的控制系统的组成。在实验中,我们进一步认识了示教的作用,对机器人控制有了进一步的理解。并在实验中复习了方VC++程序的编写、有关机器人示教和离线编程的相关知识、并对实验系统进行了分析。对机器人理论的相关知识有了更深入的理解。尹鑫鑫:武文家:通过此次试验,我们亲自操作完成了六自由度机器人的示教,对六自由度机器人机构和运转有了更深入的认知。在编程控制实验中,我们又回顾了vc++的编写与应用,真正的把学到的知识用到了实践中去,对机器人的控制编程更加熟悉,也增加了对机器人开发的兴趣实验分工表2实验分工组员陈豪尹鑫鑫武文家学号214010100321401010232140101020实验前期实验预习,阅读实验指导书,了解实验步骤实验过程实验分析、程序编写实验操作、分析数据记录、控制调试实验结束实验原理、实验结果分析讨论报告撰写理论部分分析部分总结部分XX交通大学实验报告附页机器人离线编程程序//expDlg.cpp:implementationfile//#include"StdAfx.h"#include"exp.h"#include"expDlg.h"#include"s6s1.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg: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//Implementationprotected: //{{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_MAPEND_MESSAGE_MAP<>///////////////////////////////////////////////////////////////////////////////CExpDlgdialogCExpDlg::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_MAPEND_MESSAGE_MAP<>///////////////////////////////////////////////////////////////////////////////CExpDlgmessagehandlersBOOLCExpDlg::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*<-1>; if<m_runmod==0>s6s1_moveone<m_axis,m_trans,m_fh,true,m_acc==1>; else s6s1_moveone<m_axis,m_trans,m_fh,false,m_acc==1>;}voidCExpDlg::OnSuddenStop<>{ //TODO:Addyourcontrolnotificationhandlercodehere if<!UpdateData<true>>return; s6s1_stop_axis<m_axis>;}voidCExpDlg::OnCancel<>{ //TODO:Addextracleanuphere s6s1_close<>; CDialog::OnCancel<>;}voidCExpDlg::OnXmotor<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_axis=0;}voidCExpDlg::OnYmotor<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_axis=1;}voidCExpDlg::OnZmotor<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_axis=2;}voidCExpDlg::OnUmotor<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_axis=3;}voidCExpDlg::OnVmotor<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_axis=4;}voidCExpDlg::OnWmotor<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_axis=5;}voidCExpDlg::OnSpeed<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_runmod=1;}voidCExpDlg::OnPosition<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_runmod=0;}voidCExpDlg::OnPdir<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_dir=1;}voidCExpDlg::OnNdir<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_dir=-1;}voidCExpDlg::OnRadio11<>{ //TODO:Addyourcontrolnotificationhandlercodehere m_acc=0;}voidCExpDlg::OnRadio12<>{ //TODO:Addyourcontrolnotificationhandlercode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咏雪课件教学课件
- 2024年度生物医药研发与生产合同
- 2024年建筑工程施工进度保障协议
- 学校元旦课件教学课件
- 04设计定制专属塔吊设计制造合同
- 2024专利申请权的转让合同书
- 2024年度技术开发与委托生产合同
- 2024工矿产品的加工合同
- 2024年大型超市送货员岗位职责合同
- 2024系统集成合同模板
- web前端开发工程师职业生涯规划
- 体育过程性评价实施方案
- 【客舱服务质量与空中乘务员综合素质浅论4800字(论文)】
- 血管活性药物
- 港口现场装卸指导员工作职责
- 牧业设备-TMR标准化操作流程-培训课件
- 2024新人教版初中英语单词表汇总(七-九年级)中考复习必背
- 邮政快递员劳务合同范本
- 建筑工程质量通病防治手册样本
- 2024软件代码自主率测评方法
- 广告投放运营述职报告
评论
0/150
提交评论