基于LabVIEW的四自由度机械臂运动控制系统设计
尽管对于机械操作臂的研究已不是一个全新的课题,但是,如何在保证机械手臂高的位置精度的条件尽可能地降低制造成本和缩短制造周期,这仍然是值得我们不断探索的问题。
传统工业机械臂,其设计方法多为串联形式,即通过将驱动与传动元件如电机、减速器等直接安装在转动副附近,这样的设计虽然简单直接但是由于驱动件自身成为了机械臂负载,所以大大减少了机械臂的有效载荷,同时也会产生振动等不良影响降低机械臂定位精度。在本课题中我们提出了利用钢丝传动机构来实现驱动件到末端负载的动力传递,这样的设计可以最大程度的减小了驱动件本身对于机械臂负载能力的影响,同时由于钢丝本身的弹性也使得机械臂具有一定柔性,实现一定的自适应功能。由于传动件的位置调整,所以在控制系 统的设计要求能够对于机械臂最终的末端 位置能够准确地进行反馈控制。
本系统以PCI-7344 为基础,通过NI公司最新的LabVIEW8.2为开发平台对3台伺服电机实行位置伺服和编码器反馈,对直流电机利用线性电位器反馈电压的方式实现了角度的反馈控制。借助LabVIEW8.2 的强大功能,我们得以在短时间内完成了控制系统的开发,同时保证了机械臂的运动精度与负载能力。 四自由度机械臂机械系统 本文讨论的四自由度机械臂面向中小型物流系统应用。其基本的设计要求为:实用、有相对大的作业空间、抓取重量不小于2.5kg、具有不大于10mm的重复定位精度、自重轻、外观整洁。
出于操作便捷实用的考虑,设计腰部回转、大臂俯仰、小臂俯仰、腕部回转4 个自由度,整体采用重力方向折叠展开型结构,大臂俯仰与小臂俯仰为一组平面自由度。机械手臂主要通过钢丝绳传动机构,把小臂俯仰关节的电机和齿轮减速器等额外负载放置在机械臂基座部分,从而减轻了对其他关节驱动元件的要求及机械臂整体的功耗,降低了机械臂自身重量,增加了其对外做功的能力和效率。
该机械臂不仅实现重量轻、对外做功能力大等性能指标要求,而且具有制造简单造价低等优点有利于工业推广普及。通过新型内嵌式钢丝绳张紧装置可以轻松简便的对张紧力进行现场调节,解决了钢丝绳传动存在的各种问题,有效的提高了机械臂的重复定位精度,自重与负载能力比达到4:1,可以广泛的应用到以中小型物流系统为代表的工业环境中,也可作为教学科研演示设备进行推广。
控制系统设计
在综合考虑了项目的机械结构要求、功能目标、开发周期等因素后,我们对于控制系统的设计定下如下的方案:1. 对于底盘(腰部)、大臂俯仰、小臂俯仰这三个自由度,利用伺服电机驱动和编码器反馈来构成闭环控制系统,由于本项目对于定位精度的要求,伺服电机控制方式选为位置控制(即脉冲控制)。因此我们选用了NI PCI-7344 作为伺服电机的运动控制器。
- 对于手腕旋转自由度以及抓取手爪吸合张开的控制,考虑到这部分机构主要处于靠近末端负载,要求体积尺寸小等原因,我们选择采用了直流电机配齿轮减速器并通过线性电位计的电压值来间接测量角度值的方案。
- LabVIEW 本身带有大量的数字信号处理vi,可以十分有效地解决控制系统中常会遇到的信号干扰及滤波等问题。利用LabVIEW更可以大幅缩短项目的开发周期,在短短3 个月内我们迅速完成了从机械设计、材料加工、控制系统软硬件设计等进度,这些也是我们优先选择LabVIEW 作为系统开发平台的重要原因。图5显示了控制系统构成的整体框图。
软件设计
控制系统软件设计在考虑了整个机械臂的技术要求后,主要功能大致可以分为以下几类:系统硬件信息反馈、运动参数设置、手动及自动运动控制、机械臂空间位置的捕捉与再现、文件操作等。这几者之间的相互关系可以通过如下的软件流程图来表示。
需要说明的是对于伺服电机位置的检测主要是通过对相应伺服电机编码器的读取来获得实际位置的反馈,在极限位置处我们借助霍尔传感器向PCI-7344 传递触发信号,实现极限位置的检测并通过定时读取IO 寄存器的值来实现机械臂运动状态的反馈。而直流电机的位置检测则是通过固结在齿轮减速器上的线性电位机的电压来间接测量出直流电机的转角。软件的主界面如下图所示:
开发过程
在LabVIEW8.0 之前的版本中,许多在主程序中需要多次复用的功能都是通过subvi 封装来进行调用的。当这样的subvi 数量多的时候,对于这些文件的管理会成为不小的工作量。甚至,因为某些subvi 的管理不善(如文件丢失等情况),整个软件系统的工作会受到较大影响。在LabVIEW 推出的8.0 及8.2 版中,Project 开发方式的推出给这一问题的解决带来了希望。
通过Project Explorer我们在开发过程不仅可以有效对于各个功能(如伺服驱动器工作状态反馈、直流电机位置测量、直流电机位置控制等)进行独立开发,更可以保证主vi 中调用的功能与subvi 的一致,而不用像低版本中那样,一旦subvi 有变化,主vi需要使用Project Explorer 的另一个好处在于程序封装发布的便利。如图8 所示,通过build specification 中的不同选择,可以将源程序封装成exe文件,或者是带LabVIEW Runtime Engine的Installer安装文件,以及动态链接库(dll)和屏蔽了源代码的vi(BlockDiagram 不可见)。
此外,在利用板卡采集直流电机电位器输入电压时我们遇到了交流干扰信号的影响,借助LabVIEW 自带的信号处理函数可以有效地抑制干扰信号对于程序判断逻辑的影响(在现场无法快速需得物理滤波器时,可以考虑利用LabVIEW 的软件滤波)。
文件操作
在程序的开发过程中我们时常会遇到需要对一些数据进行添加、保存、删除、读取等功能的场合,在例如VC 或者VB 等开发平台中,文档的操作由于涉及了文档模版结构的设计、文件指针操作及消息影射等,文件操作的实现显得较为复杂。
而在LabVIEW 中借助write to spreadsheet、read from spreadsheet等文件操作vi 和表格控件、数组操作vi 及自定义空间等就可以轻松实现常用的txt、xls 等数据文件格式的读写等功能 (如图9所示)。
结论
借助LabVIEW,我们在课题中能够快速地将开发和调试过程有机地结合在一起,利用LabVIEW 开发出能够有效将机械臂所需要的电机驱动器、位置编码器、极限位置传感器和数字IO 口等硬件资源整合的控制系统设计和相应软件,并且保证了机构的精度和开发时间的进度要求。
谢谢分享
学习了,谢谢小编分享
学习中,谢谢分享
这个不错哦,谢谢分享~
谢谢小编分享,正在学习
学习了 不错
顶
真不错啊,学习了
labview编程实现对步进电机转速控制 labview编程实现对步进电机转速控制
基于LabVIEW的四自由度机械臂运动控制系统设计求分享
谢谢分享!谢谢分享!谢谢分享!谢谢分享!
谢谢小编分享,正在学习
谢谢
正在学
想看看具体实现代码
学习中,小编可否发一份程序上来参观一下
好复杂呀
66666