(机械电子工程专业论文)基于机械臂的远程控制系统研究.pdf_第1页
(机械电子工程专业论文)基于机械臂的远程控制系统研究.pdf_第2页
(机械电子工程专业论文)基于机械臂的远程控制系统研究.pdf_第3页
(机械电子工程专业论文)基于机械臂的远程控制系统研究.pdf_第4页
(机械电子工程专业论文)基于机械臂的远程控制系统研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(机械电子工程专业论文)基于机械臂的远程控制系统研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 本文主要研究了基于网络环境的g r b 四自由度机械臂控制系统的实现过程并对在此过程 中所遇到的一些问题进行了分析和讨论,研究了实现控制的远程化、网络化所遇到的关键技 术。本论文的研究j 二作对推动网络控制技术的进一步发展,掌握基本的网络控制思想及方法 有应用和指导意义。 文章主要分为两大部分。第一部分给出了控制对象的本地控制实现过程。主要实现了控 制机械臂执行末端( 手爪) 按照用户预先使用鼠标输入的轨迹进行运动的功能。其中,还实 现了在本地的视频监控功能,以及通过串口对云台角度、摄像机焦距等参数进行调节的功能。 文章第二部分着重描述了基丁二客户机朋务器模式的网络控制软件系统的开发,分析了网络环 境f 信息传递的可靠性问题。分别描述了服务器段以及客户端软件的实现过程。主要内容包 括:基于流式套接字的网络命令的传输、编码解码以及执行过程,基于数据报套接字的网络 视频监控的实现以及从远端通过本地解码器控制云台和摄像机功能的实现过程,此外还有其 他一些用来提高网络控制安全可靠性的措施。 最后,在对现有系统进行分析的基础上,提出了远程控制系统的改进措施,包括如何提 高系统的响应时间,如何提高系统的可靠性等。 关键字:远程控制机械譬网络编程远程视频监控 a b s t r a c t t h i sp a p e rm a i n l yd e a l sw i t ht h ei m p l e m e n to f t h er e m o t ec o n t r o lo nt h eb a s i so f t h eg r b r o b o t a sw e l la sr e s e a r c ho ns o m ep r o b l e m sb r o u g h tu pi nt h i sp r o c e s s i ta i m e da tr e s e a r c ha n dr e s o l v e n t o nt h ep r o b l e m si nt h ei m p l e m e n to f n e t w o r kb a s e dc o n t r o ls y s t e m p r o m o t et h ed e v e l o p m e n to f t h e n e t w o r kb a s e dc o n t r o lt e c h n o l o g y ;m a s t e rt h eb a s i ci d e aa n dm e t h o df o rn e t w o r k - b a s e dc o n t r 0 1 t h ep a p e rd e s c r i b e dt h ep r o c e s so fa c c o m p l i s h m e n to ft h el o c a lc o n t r o ls y s t e ma tf i r s t i nt h i s s y s t e m ,y o uc a l lc o n t r o lt h er o b o tp a w t om o v ea c c o r d i n gt ot h el i n e st h a tt h eu s e rh a di n p u t t e dw i t h t h em o u s eb e f o r e h a n d b e s i d et h a t ,y o uc a na l s os u r v e i l l a n c et h er o b o tb yad i g i t a lc a m e r a a n dy o u c a na d j u s tt h ev i d e o t h ep a p e rm a i n l yd e a l sw i t ht h ei m p l e m e n to ft h er e m o t ec o n t r o ls y s t e mo nc l i e n f f s e r v e r p a t t e mi n t h ef o l l o w s i nt h i s p a r t ,t h ea r t i c l ea n a l y s i st h er e l i a b i l i t yo fi n f o r m a t i o nt r a n s f e r si n n e t w o r kf i r s to nt h eb a s i so fp r o t o c o li n t r o d u c t i o ni td e s c r i b e dt h ei m p l e m e n tp r o c e s so ft h e s o f t w a r ef o rt h es e r v e ra n dt h ec l i e n t t h em a i nc o n t e n ti n v o l v e s :c o n t r o lc o m m a n d st r a n s f e ri n n e t w o r kb a s e do nt h es t r e a ms o c k e t ,c o m m a n de n c o d ea n dd e c o d em o d u l e ,t h ei m p l e m e n to ft h e c o m m a n dt r a n s f e f r e do nt h er o b o t s t r e a mm e d i av i d e of i l et r a i l s f e ri nn e t w o r ka n di t sd i s p l a yi nt h e c l i e n ts y s t e m ,t h ev i d e oa d j u s t m e n tb yt h eu s e ri nt h ec l i e n ts y s t e mt h r o u g hn e t w o r ke t c a tl a s t ,t h ea r t i c l eb r i n g su ps o m e s u g g e s t i o n sf o rt h ep r o m o t i o n o f t h en o w s y s t e mo nt h eb a s i s o fa n a l y z i n gi t t h es u g g e s t i o n sm a i n l yd e a lw i t ht h et o p i co nh o wt op r o m o t ei t sr e l i a b i l i t ya n d s h o a e nt h er e s p o n s et i m e i th a sd o n es o m er e s e a r c ha n da n a l y s i so l lt h ep r o b l e me n c o u n t e r e dj ut h e d e v e l o p m e n to f t h es y s t e m a n db r i n gu ps o m er e s o n a n tf o rs o m eo ft h ep r o b l e m t h e nt r ys o m e p r i m a r ym e t h o d s i nt h i ss y s t e m k e y w o r d :r e m o t e c o n t r o lr o b o tn e t w o r k p r o g r a ml o n g d i s t a n c ew a t c h 创新性声明 y6 9 5 298 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以注明和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名 碣逐恤 日期:竺_ 量 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其他复制手段保存论文。( 保密的论文 在解密后遵守此规定1 本学位论文属于保密,在年解密后适用本授权书。 本人签名 导师签名 冯乏怛 童塑! l 丛 同期 l 期: 旦! :f :! g 绪论 绪论 随着控制技术的不断发展,人类各个活动领域中,如航空、航天、探测、生 产等对控制技术的要求也越来越高,其中之一就是对远程控制技术的需求,尤其 是远程控制机器人或者生产设备按照人类的要求进行一定的活动、生产,使其按 照人们发出的命令完成各种任务。相信,随着自动化技术的进一步提高以及人类 探索脚步的不断前进,将会有越来越多的领域会引入远程控制,同时对远程监控 的质量、性能也会有不断新的要求。 目前,很多国家都已经在远程控制技术上作了大量的研究,取得了丰富的成 果。同时,也出现了大量的应用实例,其广阔前景推动着人们不断地在这一领域 进行探索。 本文主要研究了基于网络环境的g r b 四自由度机械臂控制系统的实现过程并 对在此过程中对所遇到的一些问题的进行了分析讨论。研究了实现控制的远程化、 网络化所遇到的问题。本文的研究工作对推动网络控制技术的进一步发展。掌握 基本的网络控制思想及方法都具有一定的指导意义。 本系统的控制对象采用的是深圳固高公司生产的四自由度机械臂。它可以根 据操作员发出的指令完成各种运动功能。机械臂包含四个运动自由度,对应着四 个运动轴,操作员既可以单独控制其中任何一个轴,也可以同时控制四个轴进行 联动。另外,还可以控制运动手爪的打开、关闭状态来进行物体的抓取。除此以 外,还可以在控制对象上进行一定的高级开发,如机械视觉的研究,远程视频监 控的研究,控制对象智能化的研究,包括如何进行路径规划、避障、错误处理等。 简言之,它包含了包括模拟量、数字量等不同控制量的控制,包含了复杂运动的 过程控制方法。通过对该控制对象进行控制以实现一定的功能,操作人员基本可 以熟悉各种工业控制环境中各种控制量的控制特点。因此,本系统采用该控制对 象来进行研究,其结果带有一定的代表性及通用性。 文章首先给出了控制对象的本地控制实现过程。主要实现了控制机械臂执行 末端( 手爪) 按照用户预先使用鼠标输入的轨迹进行运动的功能。其中,为了实 现从远端队机械臂进行视频监控,实现了在本地的视频监控功能,以及相应的通 过连接到串口的解码器对云台角度、摄像机焦距等参数进行调节的功能。实现本 地控制主要是为了更好地从远程客户端实现对控制对象的控制。可以说,本地控 制是远程控制的个基础。通过本地控制的实现,开发人员可以更好地了解控制 对象以及相应的控制方法,这样,在远程控制中就可以把精力投放在解决由于网 络环境的引入而带来的问题之上了。 其次,文章着重描述了基于客户机n 务器模式的网络控制软件系统的开发。 在对具体使用的网络协议进行介绍的基础上,分析了网络环境下信息传递的可靠 绪论 性问题。分别描述了服务器段以及客户端软件的实现过程。主要功能包括:基于 流式套接字的网络命令的传输、编码解码的实现,网络命令执行过程,基于数据 报套接字的网络视频文件的传输,网络视频监控的实现以及从远端通过本地解码 器控制云台和摄像机功能的实现过程,此外还有其他一些用来提高网络控制安全 可靠性的措施。通过该系统地实现过程,研究了在网络环境下进行远程控制所遇 到的主要问题,并对相应问题提出了一些措施,并进行了初步的尝试。为更加深 入地进行远程控制打下了一个基础。 最后,在对现有系统进行分析的基础上,提出了远程控制系统的改进措施, 包括如何提高系统的响应时间,如何提高系统的可靠性等。有些措施已经在现有 系统中进行了尝试,有些措施目前还只是一种设想,希望能够在将来的研究中加 以验证。 目前影响系统性能的主要因素还是视频传输的问题,由于视频算法的限制, 使得处理后的视频数据所需要的网络带宽大于目前普遍的窄带网络所能提供的带 宽。因此经常会引起网络的阻塞,正因如此,系统在窄带网络下几乎是难以运行 的。这也是系统需要解决的最大问题之一。当然,系统也对视频监控作了分析, 希望能在以后的深入研究中加以解决 通过本系统的研究实现,我们看到网络控制目前还存在很多难题,因为受具 体硬件的影响,所以很难在短时间内加以实现。但是,在范围较小的可以控制的 局域网络环境内,通过网络硬件质量的提高和软件设计的相应处理,实现基于局 域网络的控制基本上已经可以满足工业控制的需求了。 远程控制是建立在一个复杂控制环境基础上的控制技术,要实现可靠的远程 控制有很多问题需要解决,其中最重要的就是实时性和可靠性。实时性很难保证, 只能采取一定的措施来弥补由于延时带来的负面影响。另一方面,应该努力提高 远程控制系统的可靠性,以提高其可用性。相信随着研究的不断深入,一定会实 现程控制技术的成熟应用。 第一章控制对象简介 第一章控制对象简介 1 1 控制对象的组成结构 本系统控制对象为深圳固高公司生产的四自由度机械臂。它可以实现四个自 由度的运行,包括三个水平自由度和一个竖直自由度,水平运动范围大于1 8 0 度, 垂直方向行程大约等于其丝杠的长度。控制机械臂的系统主要包括以下几个部分: 1 1 1 机械运动基础部件 这部分包括机械臂的主体机械结构,其外观如下图所示;包括中间的支撑主 轴,这是机械臂的第一个运动自由度,它连接着机械臂的第二个运动轴,这两个 轴都实现机械臂在水平面内的运动,在第二轴末端连接的是机械臂的第三个运动 轴,由丝杠来连接,实现机械臂执行末端在垂直方向的运动,最后,执行末端( 手 抓) 还可以实现水平面内的自由转动来调整末端手抓的姿态,这是机械臂的第 四个运动轴。每一个轴都由一个伺服电机来驱动。这些构成了机械臂的机械运动 基础部件。 1 1 2 驱动和控制系统 图1 1 四自由度机械臂 机械臂的四个控制轴是通过四个伺服电机来控制的,而伺服电机的控制是通 过控制每个伺服电机的控制器来实现的,因为有四个伺服电机,所以共有四个控 第一章控制对象简介 制器,这四个控制器都排列在电气控制箱内。控制箱通过接口与机械臂相联,另 一方面,通过接口连接到控制计算机上,接受控制人员从计算机发出的指令,来 驱动伺服电机运行,实现运动的目的。 l ,1 ,3 基于d s p 的运动控制器 机械臂控制系统的核心是位于计算机内的运动控制器,它通过各种算法来实 现机械臂本体个关节的各种运动轨迹规划,包括s 曲线和t 形曲线模式等;此外, 直接提供专用i o 处理功能,每轴2 路限位开关信号,l 路原点信号及驱动器报警 输入,驱动器使能和复位等。机械臂本身所提供的开发控制函数库就是在运动控 制其中实现的。除此以外,许多系统的运行状态、标志位、保护措施都在运动控 制其中实现,所以说这是整个机械臂系统的核心。操作人员对机械臂进行控制实 际上也是与控制器进行对话,通过控制起来实现对机械臂的控制。其外观如下: 图1 2 基于d s p 的运动控制器 1 2 控制对象所能实现的功能简介 位于计算机插槽中的运动控制卡是整个控制系统的核心,决定了机械臂可以 实现哪些底层的运动功能。机械臂本身所能实现的基本功能包括: 1 2 1 单轴运动模式 在这种运动模式下,机械臂的四个伺服电机可以实现单一的控制,实现机械 臂在任意一个单一自由度上的运动,比如控制第一个自由度进行水平运动,或者 控制第三个自由度实现机械臂末端在竖直方向上运动等。为了实现这种运动,运 动控制卡为每一个轴提供了四种单轴运动控制模式,分别是:s 曲线模式,梯形曲 第一章控制对象简介 线模式,速度控制模式以及电子齿轮模式。任何一个轴都可以在这四种运动模式 中进行切换。不同的运动模式需要设置不同的参数,并且各自都有各自的特点。 用户可以根据自己的实际情况进行选择。 1 2 2 多轴联动运动模式 在这种控制模式下,机械臂的四个运动轴可以实现联动,即同时运动来按照 用户的设定完成相应的动作。运动控制器可以实现两种轨迹的多轴协调运动:直 线插补,圆弧插补。多轴协调运动又称为坐标系运动。运动控制器通过坐标映射 将运动轴由单轴运动控制模式转换为坐标运动控制模式。在坐标系运动控制模式 下,可以实现单段轨迹运动,多段轨迹连续运动。运动控制器开辟了底层运动数 据缓冲区,可以实现多段轨迹快速、稳定的连续运动。当然,在这种控制模式下, 也有其自身不同于单轴运动模式的参数设定方式,这里就不再详细描述。 以上就是机械臂所提供的基本功能,其中所涉及的一些基本算法已在控制器 内实现。当然,用户也可以通过自己的算法来实现相应的功能,不过要通过上层 程序来实现了。 用户在开始对机械臂的控制之前,必须详细了解其编程手册中所提供的各个 函数的说明,控制中必须注意的事项,尤其是要按照一定的操作控制流程来做, 以保证实现对机械臂安全可靠的控制,减少或避免意外情况的发生。因为机械臂 本身是一种高强度机械装置,操作不当很可能会对操作人员造成人身伤害,所以 保证安全是最重要的,同时,由于其主体架构是机械结构,也很容易由于操作不 当引起机械部分的损坏,影响其实现正常的功能。 1 3 控制机械臂的大体步骤 控制机械臂进行运动根据各种不同的运动模式而有所区别,但是其大体可以 按照以下流程进行:打开控制器选定运动模式设定该模式下相应参数 一发送刷新命令机械臂开始运动。下面给出具体控制流程图( 见下页图1 2 ) : 第一章控制对象简介 打开控制器 打开四个控制轴 对控制轴进行初 始化参数设定 根据需要的控制模式设 定相应的控制参数 参数刷新,控制轴开始运 动 结束? 停止各轴运动,关 闭叩个i 云动翦 i 关闭控制器 图1 3 机械臂控制流程图 1 4 控制对象的保护措施 为了保护机械臂,使机械臂能够安全稳定的运行,避免由于操作人员发出错 误命令而引起机械臂本身的损害以及运动过程中由于一些不确定因素引起的运动 错误,机械臂本身从硬件结构以及运动控制器内部采取了必要的保护措施。 1 4 1 控制轴驱动器报警 某些电机驱动器为了电机和驱动器的安全和延长使用寿命,内部设定了系统 故障( 如驱动器输入超限,输入信号变化过大) 监测和保护。当驱动器检测到工 作异常或者故障时,触发故障保护并输出报警信号。控制器提供了专用的驱动器 第一章控制对象简介 报警输入,当控制器检测到电机驱动器报警时,控制器关断驱动器使能信号并禁 止该控制轴运动。 1 4 2 限位状态处理 图1 4 控制轴运动范围定义” 运动控制器可使用限位开关自动标志控制轴的运动范围。在机械臂上对应每 一个控制轴都有正负两个光电限位开关。当机械臂某一个运动控制轴在运动过程 中由于参数设置不当或者某些不确定因素触发限位开关后,将会自动产生以下两 种操作: 控制器能自动设置控制轴状态寄存器中的相应限位开关触发标志位,同 志逐级采取适当的措施来处理越位情况。 同时控制器将自动停止控制轴的运动,使之不再进一步朝越限区域运 动。此时,该轴将只允许朝相反的方向运动。例如:假设控制轴的正向 限位开关被触发,控制器只允许该轴向负方向运动,以便返回安全运动 范围。 1 5 小结 本章主要介绍了控制对象的结构、性能、控制方法以及一些基本的保护措施, 通过对控制对象的了解,可以明确其可以实现的功能,这样,在对其进行控制的 过程中,尤其是远程控制过程中,就使得操作人员更少的出现错误,避免对控制 对象造成损害等,为更好地实现控制对象的本地控制以及远程控制打下了一个基 础。 第二章本地控制系统 2 1 1 本地控制的目的 第二章本地控制系统 2 1 本地控制简介 为了更好地实现远程控制,首先就应该实现安全可靠的本地控制,通过本地 控制的实现过程,更好地了解控制对象的性能,运行过程中所出现的问题并研究 采取相应的措施。这样,也便于找出远程控制中的问题所在,更好的提高远程控 制的质量。为了进行机械臂控制功能的测试,在本地实现了如下功能:由用户通 过鼠标在界面上划出一定的轨迹,然后,使机械臂的执行末端在其实际运动空间 按照该轨迹实现运动。 2 1 2 本地控制系统的硬件结构 本地控制系统的硬件主要包括计算机,电气控制箱,机械臂本体三大部分。 此外,由于远程控制视频监控的加入,在本地还必须配备视频监控系统,本地的 视频监控系统主要由摄像机、云台、图像采集卡以及计算机组成,视频系统在本 地控制的基础上,才能为远程用户提供视频监控的功能。因为视频监控系统与机 械臂控制系统是相互独立的,所以,可以把本地控制的系统的硬件结构分为两大 部分,如下所示: 9 !第二章本地控制系统 图2 1 本地监控系统硬件结构图 上图中,左边就是机械臂控制部分,右边是视频监控部分。在视频监控中, 所采用的摄像机是可以自动变焦而且可以实现1 2 8 倍变倍的一体化数字摄像机, 摄像机安装在云台上,通过控制云台就可以控制摄像机的姿态,摄取所需要的镜 头,摄像机的相关参数控制如:倍数改变、色度、焦距( 手动调焦情况下) 等可 以通过云台来发出控制命令,而云台通过r s 2 3 2 串1 3 连接到计算机上,这样,操 作人员只要通过一个串口就可以实现对云台和摄像机的控制了。这也为远端控制 云台提供了一个基础。 1 2 本地控制系统的软件设计 为了实现本地监控的目的,需要分别实现控制部分以及视频监控部分。整个 系统采用v c + + 6 0 来实现。 1 2 1 控制部分的实现 该部分主要实现以下功能:根据用户在操作界面上用鼠标划出的运动轨迹来 控制机械臂执行末端在实际运行空间按照该轨迹进行安全稳定地运动。通过该功 能的实现,熟悉机械臂控制的一些技术,并对实际中出现的问题加以分析解决, 为远程控制打好基础。 由于机械臂运动控制器本身提供了控制机械臂运动的各种相关控制命令,所 以用户只要调用固高公司所提供的包含各种运动控制命令的动态连接库就可以实 现相应的控制目的了。而一些底层的通讯和命令解释工作则由运动控制器来完成。 程序流程图如下: 第二章本地控制系统 图2 2 用户绘图子程序 第二章本地控制系统 r 打开控制器。、 l 依次打开四个控制轴,抖 对其状态进行初始化 上 控制四个鞫撼动斓菜巾髓锕能鼹 并将该位置作为坐标原点,姆蔷辅 位置寄存器中的当前值设为零 i 用户开始绘图 上 调用绘图子程序 j 将强_ 十逛妨糖设鞋 为坐标运动模式 据记录的鼠标坐标值将用户绘图平 坐标映射到机械臂运行空间坐标 0 将映射得到的实际坐标作为 运动参数发送到机械臂 参数刷新,机械臂开始按 照设定轨迹进行运动 0 关闭运动轴 上 关闭运动控制卡 ( 结柬 ) 图2 3 本地控制程序流程图 以上过程中,除了绘图以及根据绘图轨迹控制机械臂运动以外,实现从绘图 第二章本地控制系统 坐标到实际坐标的转换也很重要,其实现思想如下:根据机械臂实际运动的范围 平面,按照一定比例在操作界面上做出用户绘图区域,超出此区域的绘图无效, 然后根据为机械臂在实际空间中规定的坐标原点,在用户绘图区域中将其对应的 位置坐标值设为零,然后根据这个原点坐标再确定用户轨迹上的任一点坐标的相 对位置,将这个相对位置作为机械臂从原点开始需要走过的距离的对应值,这样, 就实现了用户绘图空间和实际运动空间的平面之间的映射关系,至于机械臂在竖 直空间内的运动,只能由用户根据需求来控制机械臂末端的上下运行时刻与位置。 比如,在运动轨迹上的某一点进行向上或者向下的运动,并在对机械臂发出的控制 命令中进行相应的设置。 1 2 2 视频监控部分的实现 为了更好的为远程控制人员提供现场信息,本系统尝试了进行远程视频监控 的应用。系统采用一台一体化数字摄像机来实现视频采集,并通过t m 8 1 0 4 视频 采集卡进行图像的压缩、滤波等预处理,然后在本地计算机操作界面上进行显示, 由于图像的底层处理过程是在采集卡中实现的,所以本文并不涉及到图像处理的 细节问题,只需要通过调用开发者提供的动态连接库来实现处理后视频图像的处 理就可以了,在本地主要包括视频显示的初始化,一些基本参数的设置等。在下 面的远程控制中,视频的传输同样可以采用开发者提供的开发软件包来进行网络 传输参数的设定、视频的发送与接受等操作。本地的视频处理可以实现的主要功 能包括: 视频采集祯率的设置,即每秒钟采集并显示多少幅图像。一般情况下, 当每秒钟显示图像数不小于2 5 祯秒的情况下,人就不会感觉到视频 流的播放过程中有停顿,越高的祯率,则对应的视频图像质量越好, 但同时会给系统带来更大的负载。所以,这个参数要根据实际情况来 确定。 视频采集图像大小的设置,即显示视频流图像的大小。 一体机图像发大倍数及焦距的设置,在自动变焦情况下,摄像机的焦 距是自动调节的,同时,摄像机还提供了手动调节的功能,可以由操 作人员自己来调节焦距。此外,摄像机的放大倍数也是可以调节的, 通过调节放大倍数,使操作人员可以非常清晰的观察现场的任个细 节,使用户更好地了解现场情况,同时,可以在此基础上开发远程诊 断的功能。摄像机可以提供1 2 8 倍的变各功能。 摄像机角度的调节。摄像机角度的调节是通过对云台角度的调节来实 第二章本地控制系统 现的。 云台的控制。云台是通过串口连接解码器上,再通过解码器接受计算 机指令的,解码器提供了通过串口对云台的控制功能阻及对一体化摄 像机的控制,例如,调整云台的偏转角度,俯仰角度,调节摄像机的 放大倍数,亮度,对比度等。开发人员可以通过云台以及摄像机的控 制协议通过串口实现所需要的功能。 最后,本地控制部分还应该提供网络传送的功能。即通过向联接到本 地的客户端传送现场视频图像来实现操作人员在远端对现场情况的 视频监控。 本地控制软件实际上是作为远程控制模式中服务器来用的,所以其视频监控 主要是为远端提供视频监控的功能,因此,具体软件实现流程在远程控制软件设 计中服务器段实现部分中再进一步介绍。他的实现主要是通过调用视频采集卡本 身体提供的动态连接库函数来实现的。在开发中,尤其是远程传输过程中,这种 方式给视频的进一步开发带来了很大限制,因为视频采集卡本身所采用的算法压 缩后的视频文件并不是通用的,很难使用通用的格式进行进一步的处理,因此, 在以后的系统开发中,必须要选择开放性能与通用性能都非常好的设备,这样会 大大减少开发中遇到的困难。 与本地播放相关的函数如下: 创建 t m d a p ib o o ly h 8 1 c r e a t e ( d w o r dd w c h a n n e l ,h w n dh w n d ,r e c t r ) ; 打开文件 t m d a p ib o o ly h 8 1 _ o p e n f i l e ( d w o r dd w c h a n n e l ,c h a r + s f i l e ) ; 播放 t m d a p ib o o ly h s l j l a y ( d w o r dd w c h a n n e l ) ; 停止 t m d a p lb o o l y h s l 一s t o p ( d w o r d d w c h a n n e l ) ; 关闭文件 t m d a p ib o o ly h 8 1 _ c l o s e f i l e ( d w o r dd w c h a n n e l ) ; 取得当前播放位置 t m d a p id o u b l e 设置当前播放位置 t m d a p ib o o l y h 8 1 一g e t c u r r e n t p o s i t i o n ( d w o r d d w c h a n n e l ) ; y h 8 1 一s e t c u r r e n t p o s i t i o n ( d w o r d d w c h a r m e l ,d o u b l e 第二章本地控制系统 d p o s i t i o n ) 暂停 t m d a p i 抓帧 t m d a p i 显示回调 b o o l y h 8 1 一p a u s e ( d w o r d d w c h a n n e l ) b o o ly h 81 s n a p s h o t ( d w o r dd w c h a n n e l ,c h a r + s f i l e ) t m d a p ib o o l y h 8 1 一s e t d i s p l a y c a l l b a c k ( d w o r d d w c h a r m e l , v o i d ( c a l l b a c k + d i s p l a y c b f u n ) ( d w o r dn s i z e ,c h a r + p b u f , l o n gn w i d t h ,l o n g h i - e i g h t ,l o n gn s t a m p ,l o n gn t y p e ,l o n gn f r a m e r a t e ) ) ; 刷新显示 t m d a p ib o o l y h 8 1 一r e f r e s h d i s p l a y ( d w o r d d w c h a n n e l ) ; 视频采集卡会将采集的视频信息压缩成一个视频文件存储在默认路径下。本 底播放实现过程如下: 打开文件解码设置播放参数( 播放窗口大小、位置,播放速度等) 播放。 以上每种功能都有其对应的函数,调用即可。其具体代码参照源程序。 1 2 3 云台的控制 为了能够使远程用户能够更加全面地了解现场情况,本系统在现场安装了数 字一体化摄像机,用以将现场视频通过网络传递到远端,此外,由于不同的用户 可能现场不同的部分感兴趣,比如,操作人员希望能时刻了解机械臂实时的运行 姿态,而远程维护人员希望能够看到机械臂各个部件的情况,接线的情况等,因 此,将系统中的摄像机安装在云台上,通过控制云台的转动、俯仰角度等来控制 摄像机摄取不同部分的视频信息。而在远端对云台进行控制的基础是在本地进行 对云台的控制,然后,在本地控制的基础上,添加必要的协议,就可以很容易的 实现远端用户对云台的控制了。本地的云台是连接到解码器上,然后在连接到计 算机的串口上的,其结构如下: 一 l 一体化数字l 图2 4 本地云台控制结构图 第二章本地控制系统 要实现控制目的,就要通过串口根据协议向解码器发送指令,解码器收到指 令后,根据协议进行解码,t f g 操作人员的意图,然后再向云台以及摄像机发送 命令,控制其相应电机的运动,实现云台的转动、俯仰,摄像机放大倍数、亮度、 对比度等参数的变化。 串口控制简介 在v c 中通常有两种方法可以访问计算机串口,一种是采用本身自带的a c t i v e x 控件m s c o m m ,该控件的属性和事件中集成了操作串口所需要的各种功能,开发人员 可以根据需要设定其参数,处理其对应的事件,即可实现对串口的简单控制,其 主要属性如下: s e t c o m m p o r t :指定使用的串口。 g e t c o m m p o r t :得到当前使用的串口。 s e t s e t t i n g s :指定串口的参数。一般设为默认参数”9 6 0 0 ,n ,8 ,1 n 。这样方便与 其他串口进行通讯。 g e t s e t t i n g s :取得串i = 1 参数。 s e t p o r t o p e n :打开或关闭串口,当一个程序打开串口时,另外的程序将无法使用 该串口。 g e t p o r t o p e n :取得串口状态。 g e t i n b u f f e r c o u n t :输入缓冲区中接受到的字符数。 s e t l n p u t l e n :一次读取输入缓冲区的字符数。设置为0 时,程序将读取缓冲区的全 部字符。 g e t i n p m :读取输入缓冲区。 g e t o u t b u f f e r c o t m t :输出缓冲区中待发送的字符数。 s e t o u t p u t :写入输出缓冲区。 另一种方式是采用a p i 函数进行串口通信的开发,这种方式比第重要复杂, 但是可以使操作人员更加清晰地了解底层硬件的工作流程,以便于日后更好地进 行串口开发,同时,这种方法可以实现的功能也强大的多。w i n d o w s 下操作串 口的主要函数有: 与通信有关的w i n d o w sa p i 函数共有2 6 个,但主要有关的有: c r e a t e f i l e 0 用“c o m n ”( n 为串口号) 作为文件名就可以打开串口。 g e t c o m m s t a t e ( h c o m m ,& d c b ) 读取当前设备控制块设置 s e t c o m m s t a t e ( h c o m m ,& d c b ) 设置当前设备控制块 s e t c o m m t i m e o u t s ( h c o u j f n ,& t i m e o u t s ) 超时设置 r e a d f j le ( ) 读串口。 第二章本地控制系统 1 7 w r i t e f i l e 0 写串口。 c 1 0 s e h a n d l e 0 关闭串口旬柄 具体可参考相关资料。 1 ) 解码器编码表“1 以下是与解码器通讯过程中所用的协议,只要按照协议发送命令,就可以实现相应的控 制目的了: 4 0 h 云台自动左右转动命令 4 1 h 云台或镜头的任何动作停止 4 2 h 云台顺时针转动动作开始 4 3 h 云台逆时针转动动作开始 4 4 h 云台低头动作开始 4 5 h 云台抬头动作开始 4 9 h 光圈增大动作开始 4 a h 光圈减小动作开始 4 b h 短焦动作开始 4 c h 长焦动作开始 4 d h 聚焦前移动作开始 4 e h 聚焦后移动作开始 4 f h 索取报警状态 6 7 h k l 接通 6 8 hk 1 断开 6 9 hk 2 接通 6 a h k 2 断开 3 ) m v 2 0 0 2 0 0 2 云台镜头控制简要编程说明“ 有了控制协议,就可以像一般的控制串口那样对云台和摄像机进行控制了, n v c + + 编程为例,其控制大体步骤如下: 1 、创建一个d c b 对象,先创建一个访问c o m 口的线程,初始化c o m i ,用 c r e a t e f i l e 函数;接着对c o m 的各个参数进行设置,如比特率,是否有奇偶位等,用d c b 对象和个h a n d l e 对象,使用s e t c o m m s t a t e 和s e t u p c o r n m 函数 2 、初始化一个云台控制命令字字符串,用以标示发送命令的控制字 3 、每回向c o m 口发送控制时,先将命令字字符串的不是标示字的部分改成要发 送的 一1 8 第二章本地控制系统 一- - 一 命令字,! 豇1 c m d s t r 0 = x e e :标示字 c m d s t r 1 = l x 0 0 1 : 慨号 c m d s t r 2 = x 4 1 ;命令字表示停止 每回将c m d s t r 【2 改成控制的方向命令字,然后使用w r i t e f i l e 函数发送消息。 c o d e 代码: h a n d l e h d e v ; d c b d c b ; c h a rc m d s t r 4 ; b o o l f i r s t t i m e 2 0 ; 一、初始化: v o i dl n i t i a l c o m ( ) h d e v c o m s e l e c t _ l t e m l n d e x 。:c r e a t e f i l e ( i 。c o m li ,g e n e r i c _ w r i t e ,f i l e _ s h a r e _ w r i t e n u l l , f i l e a t t r l b u t e _ - n o r m a l ,n u l l ,n u l l ) ; i f ( h d e v - - n u l l ) a p p l i c a t i o n - m e s s a g e b o x ( ”c o m 口初始化失败! ”,n u l l m b _ o k ) ;i l l = i d o k ) ; d e b d c b l e n g t h = s i z e o f ( d c b ) ; g e t c o m m s t a t e ( h d e v ,d c b ) ; d c bd c b l e n g t h = s i z e o f ( d c b ) ; c h a rc o m s t r 4 0 = ”b a u d = 9 6 0 0p a r i t y = nd a t a = 8s t o p = l : :b u m c o m m d c b ( c o m s t r ,& d c b ) ; d c bf d t r c o n t r o l = d t r c o n t r o l _ e n a b l e ; d c bf r t s c o n t r o l = r t s c o n t r o l _ d 1 s a b l e ; :s e t c o m m s t a t e ( h d e v ,d c b ) ; :s e t u p c o m m ( h d e v ,1 0 2 4 ,5 1 2 ) ; c m d s t r 0 = x e e :控制命令标示字 c m d s t r 1 】_ 。k 0 0 1 ;控制命令标示字 c m d s t r 2 = x 4 1 :停l 命令字 f o r ( i n tk k l = 0 ;k k l 2 0 ;k k l + + ) f i r s t t i m e k k l - = 【r u e ; 第二章本地控制系统 二、发送命令字 v o i ds e n d c o m m d a t a 0 d w o r dr i b : :w r i t e f i l e ( h d e v ,c m d s t r ,3 ,& r t b ,n u l l ) ; 三、以向左运动为例: v o i dl e f l r u n ( ) i f ( f i r s t t i m e 2 ) ( s t o p r o t a t e o ; c m d s t r 2 = l x 4 2 : b ( 4 2 是向左运动的命令字 s e n d c o m m d a t a 0 ; f i r s t t i m e 2 = f a l s e ; ) ) 1 3 本地单轴与多轴控制的实现 除了以上介绍的实现根据用户绘图来进行轨迹运动外,在本地还可以进行单 轴运动控制。这是一种最简单的运动模式。 这种功能下,可以实现对四个控制轴中的任何一个进行单独控制实现控制目 的,而不是像坐标系运动中的那样多个轴进行联动。这种功能可以使操作人员在 实现复杂的运动之前更好地了解控制对象的结构特点,运动范围,对其运动状态 有更好地认识,如设置不同的速度、加速度、运动模式等参数时,机械臂的运动 状态情况。只有深入了解了具体情况才能对机械臂进行更好的控制并尽量减少由 于参数设置不当而对机械臂本体造成损伤。比如,在运动过程中如果加速度或者 速度设置过大,会对机械臂本体机械结构部分造成冲击。 前面已经介绍过,每个轴在单独运动模式下都有四种运动模式可以选择,分 别是s 曲线模式,梯形曲线模式,速度控制模式以及电子齿轮模式。用户可以根 据自己的需要来选择不同的模式 第一二章本地控制系统 1 3 1 轴坐标系与直角坐标系的转换 在单轴运动模式下,机械臂控制命令中位移参数设置的命令接受的是轴坐标 系下的值。例如,要控制第一轴运动到指定的位置,操作人员无法直接设置其运 动后的坐标值,因为控制位移地命令并不接受这种参数,而该命令是由底层的运 动控制器来提供的,用户无法对其进行修改,只能设置其从现在位置开始所走过 的绝对距离,该距离是用控制该轴运动的伺服电机接受的脉冲数来表示的。其对 应的函数是g t s e t p o s ( p o s ) ,其参数p o s 表示的是一个脉冲数,它是建立在轴坐 标系下的。比如,无论机械臂执行末端当前位置如何,想要使执行末端从当前位 置开始走过一定距离,用户只能给该函数发送一个单位为脉冲数的得参数值。如 果用户不熟悉其对应关系,很难知道应该发送多少脉冲数,因为这是一个很抽象 的概念。为了能够使用我们比较熟悉的直角坐标,就需要找到在二者之间进行换 算的算法,因此,第一个任务就是实现两种坐标系下坐标值的转换。为了计算方 便,将机械臂本体的中心转轴定为坐标原点,在直角坐标系中的坐标为( 0 ,o ) 。 其全部相关转换算法如下: 髓x = l i * + c o s 口口+ 1 2 + * c o s s i n + 1 多c 荆2 s i n 【y = + 口 + 卢

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论