机械臂控制与仿真体系

2021-05-25 24854 机械控制论文

1引言

在以往的仿真与控制项目中,人们主要通过两种方式进行设计,一种是采用传统的编程语言进行设计,如VB、VC++等;另一种是通过在三维建模软件上进行二次开发来实现,如Auto-CAD、UG等。前者在驱动控制方面的实现较为容易,但在仿真设计上过于繁琐,后者则与之相反。LabVIEW不仅具有优秀的软件开发环境,也是功能强大的自动化测试工具。基于LabVIEW的机械臂控制与仿真系统利用三维图形显示控件构建机械臂的仿真显示平台,使用NIUSB_6211数据采集卡和74HC138N为机械臂提供控制信号,可快速实现对机械臂的仿真与控制,缩短开发周期。此外,本系统还通过软件编程解决了仿真模型与实际机械臂的同步问题,实现了舵机的平滑转动功能。同时,拓展了NIUSB_6211数据采集卡的用途。

2系统体系结构

本系统包括仿真程序、控制模块和执行终端三个部分。其中仿真程序先从电子表格文件(.xls)中读取模型数据完成静态模型的建立,再根据用户的操作信息对机械臂的运动学方程进行求解,最终实现对机械臂的动态仿真;控制模块主要负责将用户的操作信息转换成控制所需的电信号,并通过控制电路将控制信号传给系统的执行终端(五自由度的机械臂)。如图1所示:

3系统简介

3.1仿真程序

本项目利用LabVIEW提供的三维参数曲面图形显示控件构建机械臂的三维仿真显示平台。静态建模时,先在X-Z平面内绘制出机械臂各杆件的平面图形,构建一个包含各杆件平面坐标的数组(xi,0,zi),根据各杆件的尺寸比例将其沿Y方向平移yi后可得到一新的数组(xi,yi,zi)(此时,若将这两个数组传给三维参数曲面函数可绘制出一个没有端面的空腔模型);再利用“翻转数组函数”对上述两个数组进行翻转操作后即可得到各杆件的封闭立体模型。本项目中作者通过设计“二维转三维.vi”(程序框图如图2)实现了上述功能,并将转换得到的立体模型数据存入电子表格。最后,根据机械臂各部分的位置关系,将各杆件的立体模型坐标数据在坐标系中进行适当平移后传给三维参数曲面函数完成对机械臂的静态模型建立(参见图4)。实现动态仿真时,需要先对机械臂各杆件的运动学方程进行求解,得到各杆件的齐次变换矩阵。如式(1):式中:ROT(z,θ)是实现使仿真模型绕Z轴旋转的齐次变换矩阵,也叫作旋转算子;θ是各关节的旋转角度(规定逆时针旋转时为正);c和s分别表示和。本项目中为了方便程序编写将上述旋转算子逆推一步,得到形如式(2)的旋转算子:其中x1、y1、z1是起始位置坐标,x2、y2、z2是目标位置坐标。得到各杆件的旋转算子之后,还需要解决各部件运动时发生分离的问题,本项目中作者通过“平移连接.vi”使后一杆件的坐标系始终以前一杆件的末端坐标为原点,使问题得到了解决。表1给出了机械臂各杆件的运动情况和对应的旋转算子组合:

3.2控制程序与控制电路

本项目利用NIUSB_6211数据采集卡作为机械臂的控制单元,拓展了数据采集卡的应用领域。由于NIUSB_6211数据采集卡只有四路数字输出端口,不能同时为五个舵机提供控制信号,因此作者使用74HC138N译码器,来实现对数据采集卡I/O口数目的扩展。具体过程为:先由控制程序将NIUSB_6211数据采集卡的端口p1.3、p1.2、p1.1定义为数字输出,将p1.0定义为时钟输出(即输出PWM信号);再把74HC138N的3个输入端C、B、A与数据采集卡的p1.3、p1.2、p1.1相连(实现对舵机的选择),使能端G1与p1.0相连(控制舵机转动角度),接地端GND和两个低使能端(~G2A,~G2B)都接到数据采集卡的GND上。这样只需三路数字输出和一路时钟输出就可以实现对8(23)个舵机的选择与控制。图3是控制电路的原理图:

3.3执行终端

本项目中采用一个五自由度机械臂作为系统的执行终端。使用前作者先对机械臂初始工作位置进行了定义,测定了舵机实际工作脉冲(PWM)的范围,确定了PWM值从小到大变化时对应机械臂的转动方向。

4同步与平滑转动的实现

4.1仿真模型与实际机械臂同步

本系统的执行终端没有安装向计算机回传数据的传感器,为了使仿真模型与实际机械臂同步运行,作者通过软件编程来实现同步。基本原理是:使控制指令(机械臂转动的角度值)同时被仿真程序和控制程序执行,并在新指令到来时进行判断;若当前控制指令已经被仿真程序和控制程序执行完毕,则传入新指令,否则进行等待,直到当前指令被执行完毕。

4.2舵机平滑转动

根据舵机的工作特点可知,PWM值与舵机轴的位置一一对应,用户输入一个值后,舵机将瞬间转到该位置;显然,如果用户输入的前后两个值相差很大,舵机将在瞬间转过一个很大的角度,这对机械臂来说是相当危险的。解决的方法是:控制程序对用户输入的前后两个值进行比较,若当前值比前一值大,则在前一值上+0.01,一直加到与当前值相等;若当前值比前一值小,则在前一值上-0.01,一直减到与当前值相等。这样,舵机的转速将近似为0.056rad/s(1°/50ms),从而使机械臂能够平滑转动。

5人机接口

本系统为用户提供两种输入控制指令的方式:一种是直接通过鼠标点击前面板上的表盘实现控制指令的输入;另一种是通过键盘实现控制指令的输入。其中键盘操作说明如下:小键盘上的01234数字键用于指定欲工作舵机的编号,WSAD键用于控制舵机的旋转角度,并规定按下“A或S”时舵机逆时针旋转;按下“D或W”时舵机顺时针旋转。如果按下的键不在上述情况中,则会在操作提示文本框里显示“按键错误”字样。图4为机械臂仿真与控制系统的前面板:

6总结

本文介绍了一种基于LabVIEW的机械臂控制与仿真系统,通过LabVIEW的三维图形显示控件对机械臂进行仿真显示,利用NIUSB_6211数据采集卡为机械臂提供控制信号,通过软件编程解决了软硬件同步、舵机平滑转动及NIUSB_6211数据采集卡端口数目等问题。仿真结果表明:仿真模型可真实模拟机械臂的实际动作,如手指的开合、旋转,大小臂的俯仰及整体绕Z轴的旋转;控制结果表明:控制系统能够根据用户的输入实现对目标点的精确定位,并能控制机械臂对目标物进行抓取和放置。本文作者创新点:利用LabVIEW实现了对机械臂的仿真与控制;通过软件编程解决了软硬件同步、舵机平滑转等问题;扩展了NIUSB_6211数据采集卡的应用领域。

期刊汇频道 树人论文网期刊汇频道
树人论文网是正规的发表支持服务网站.主要从事国内外期刊论文、国内外教著学术支持服务。
  • 27973 文章总数
  • 16855论文总数
  • 11121期刊总数