APP下载

结合改良插补技术和MATLAB轮廓提取技术绘图机器人的设计

2020-11-27陈奕璇周志峰

机电工程技术 2020年10期
关键词:舵机绘图轮廓

蒋 璇,陈奕璇,董 浩,周志峰

(上海工程技术大学机械与汽车工程学院,上海 201620)

0 引言

绘图机器人作为科学技术与艺术相结合的产物,提高了手绘人员绘图的精度和效率,然而市面上绘图机所识别的图纸主要来源于绘图软件,因此绘图机器人多应用在机械零部件图纸领域的绘制。本文设计的绘图机器人,能够将相机照片通过绘图机器人的机械手一笔一画绘制出来,经验证,可以绘制日常生活中所拍摄的人像、风景等。

此绘图机器人系统主要由绘图机硬件部分、电机控制算法、图像转化等3部分构成。在研究中,本文对电机驱动算法中所用的插补算法进行改进,使绘图机运动更加平稳。针对传统绘图机应用领域窄的问题,在图像转化部分,本文将MATLAB 图像提取技术用于提取照片中的轮廓,然后生成可被绘图机器人识别的图像。

1 硬件设计

1.1 机械设计

机器人使用5 个导轨作为骨架,步进电机通过同步带控制绘图笔在X和Y轴上的移动。X轴由步进电机驱动,Y轴由2个具有相反转向和相同转速的步进电机驱动。绘图机器人的Z轴上固定绘图笔,由舵机在接收到脉冲信号后向上转动一定的角度,将绘图笔抬起,然后通过自身的重力下落进行绘图。垂直抬笔设计有效减少了斜抬笔设计中落笔时猛戳或打滑的现象。此结构优势在于机器人的机械部分可分拆和分装,牵引电机的固定方式灵活,可安装在任意作图区域,绘制范围不受限制[1]。其机械结构如图1所示。

图1 机械结构

1.2 电路设计

电路设计选择了AC 220 V 的电压,因电机控制器所需电压为24 V,所以,整个电路首先要连接到24 ~220 V 的电源,该电源为4个电机驱动器供电。将4个电机驱动器分别与2个Y轴步进电机、X轴步进电机以及Z轴舵机连接。将2个Y轴步进电机驱动器之一的2条接线反接,以确保2个Y轴步进电机以相反的方向旋转并具有相同的速度。然后将1 个24 V转12 V 的可调电源模块连接在总控制器与220 V 转24 V 电源之间,最后将总控制器与4个电机驱动器连接,用来控制3个步进电机和舵机的转动,以此达到控制X、Y轴移动和绘图笔起落的目的。其电路设计如图2所示。

图2 电路设计

2 控制原理

2.1 控制系统

PC接口的处理控制主窗口包含以下部分:图像,参数配置,轨迹跟踪,命令存储[2]。通过Processing 加载图片并选择图片的绘制区域,在将其载入UNO 板前设置相应的参数。UNO 板通过串行端口与Processing 连接,分析其发送的参数,然后将数据传输到步进电机驱动器上,以控制电机的转动,最后通过转动电机带动X轴、Y轴和Z轴舵机的运动。

2.2 插补算法

因为在控制CNC 车床的工作时,1 个脉冲当量是刀具在坐标轴上运动的最小单位,所以通过数据点密化可以看出刀具的移动路径是一些微小的台阶所组成的折线。比如,要通过数控车床来加工直线或曲线时,刀具分别沿X方向和Y方向移动1个或多个单位,依次交替,抵达预定点为止,这就形成了轨迹路线。CNC 系统可在得到的轨迹路线上的已知点间根据一些函数通过算法计算中间点(数据点密化),这种方法即为插补。插补技术是CNC 系统可以实现发展轨迹进行控制的基础,插值运算是核心系统软件模块CNC运动控制[3]。

该画图机就模仿了CNC 系统,运用插补算法来实现画笔轨迹的控制。由于传统插补算法中对于复杂轮廓必须通过软件将其细分成若干小段,进行编程加工[4]。其过程通常均为直线段,这样的转换将产生一些不足之处[5]。主要体现在精度与数据量的取舍,如果对绘图精度要求较高,则需要对轮廓进一步细化,会产生大量离散数据。若采用大量端点数据,数据传送与存储将对绘图机提出更高要求[6]。通常,当要求精度提高一倍时,相应的则会产生数倍的数据。这就表明,如果为了方便传输和存储而使数据量变小,就会降低曲线轮廓的精度。所以本文采用了在逐点比较法的基础上改良了的半步偏差法,顾名思义就是将误差减小到0.5个脉冲以内。

2.2.1 半步偏差法原理

半步偏差法是基于逐点比较法的,逐点比较法的进给方向始终是沿平面坐标系的4个象限内的X轴或Y轴方向。如图3所示,P为当前插补点,假设下一步是沿Y轴方向进给,则到达E点,此时该点到直线距离的最小值为L3,但是如果这一步同时还沿X轴进给一步,则到达C点,C点到直线距离的最小值为L2,L2<L3,所以在此,如果设定这种情况下向X轴与Y轴同时进给 (简称对角线进给),会得到小的偏差。图中BC之间的距离为1 个脉冲,也就是说BD+CD=1,另外BD>L1,CD>L2, 如果 BD=0.5 可知 CD=0.5,由于 CD>L2可得 L2<0.5,也就是说如果从点P到点C进行下一步的插补,插补点与直线的偏差控制在0.5脉冲范围内。因此,从逐点比较法到一种新的插补算法,由于偏差可以控制在0.5脉冲范围内,故称之为半步偏差法。

图3 P点插补示例

2.2.2 半步偏差法的优势

(1)因为其插补的最大误差只有0.5 步,所以插值精度高,比其他常见的插补方法造成的插补误差小。插补轨迹相对平滑。

(2)计算速度快,采用两坐标方向同步进给的行走方式,节省了机器时间,有利于提高工作效率。

(3)脉冲沿基轴分布均匀,不只能够控制速度的稳定,而且对于进给驱动系统伺服精度的提高也非常有利。

3 图像处理

3.1 CAD图片转化为代码

Processing是一种简单易用的编程语言和编程环境,用于开发面向图形的应用程序,其创建者将其视为代码写生本。其尤其擅长学习算法进行动画和即时信息交互反馈[7]。因为Processing 的基础是Java,但又没有Java 复杂且已经形成了自己的工作系统,所以Processing的语法规则和Java既一致又不同。Processing连接串口后,将CAD图片载入,调整图片的大小、位置以及选择画图区域,设置像素比例和对比度,即可通过其内部函数将CAD图片转化为G代码。

3.2 MATLAB轮廓提取

轮廓是图像的重要特征之一,图像轮廓的提取是实现精准画图的关键技术,因此选择适当的图像处理方式尤为重要。本文通过MATLAB 图像处理函数库实现图像的边缘检测和轮廓提取。MATLAB是由美国MathWorks公司开发的具有数值分析、数字图像处理以及数字信号处理等强大功能的商业数学软件,该软件在数字图像处理方面应用广泛。绘图机器人利用MATLAB 这一特点,将相片处理为数字图像。本文采用两种方法进行直接和间接的轮廓提取。

(1)轮廓提取

本文进行轮廓提取时使用的函数是bwperim()。先进入MATLAB 工作区将图片导入,接着进行存放步骤(二维矩阵存),在其转为二值图像前通过输入特定的指令看到原图,最后使用该函数即可完成轮廓提取。

(2)边缘检测

边缘检测的重要性使得其在图像处理中非常有作用。图像的边缘是指图像中像素值发生突变的位置[8],两个相邻区域由于灰度值不同而有边缘。由于物体与背景在某些图像特征上存在差异,这些差异可以是灰度、纹理或颜色特征,因此利用边缘检测对它们进行分离。将图像中的对象与背景之间的边界线使用某种算法提取出来即是边缘检测的本质。其根本思想是在定义像素的“边缘强度”之前利用边缘增强运算符对图像边缘进行高亮处理,而后设置临界值以获得边缘点的集合。进行边缘检测最简单的方法是使用边缘检测算子,利用相邻区域的像素值不连续的特点,采用一阶或者二阶导数来检测边缘点[9]。因此,还可以选择roberts、sobel和其他运算符,并使用edge()函数执行边界检测。

4 结束语

本文设计的绘画机器人将Arduino UNO作为控制板,利用Processing和MATLAB提取待绘图像的像素点及图像坐标。利用舵机控制Z 轴运动、步进电机通过驱动同步带的运动来控制X、Y轴的移动,完成图像的绘制,该绘图机器人的优点是完整的绘图,更少的机器零件和相对简单的组装,很好地解决了市面上传统机器人结构复杂,功能拓展有限的问题。本文的绘图机器人还有重量轻、移动便捷的优点,有着很好的应用前景。可广泛应用于工业化的广告标语和商标图案的绘制。

猜你喜欢

舵机绘图轮廓
来自河流的你
“禾下乘凉图”绘图人
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
含齿隙弹载舵机的全局反步模糊自适应控制
垂涎三尺
基于dsPIC单片机的飞艇舵机控制实现
高速公路主动发光轮廓标应用方案设计探讨
基于高速同步485总线通信的多通道舵机控制器设计
基于云模型的舵机同步控制