基于OpenCV视觉引导的多自由度机械臂的研究与应用
2024-07-17张斌
摘要:主要通过硬件系统和软件系统的设计对多自由度机械手臂进行了深入研究。采用STM32系列单片机作为机械手臂的主控单元,对载有弯曲传感器的虚拟现实设备进行运动姿态数据采集、无线发送与接收,实现对机械手臂末端控制器的远程实时控制。同时,利用OpenCV视觉引导技术对采集到的目标物体图像进行识别与处理,系统能够准确定位和识别图像的空间坐标,通过PID控制算法使机械手臂能按照指定位置和预定速度正确识别和抓取目标物体。
关键词:机械手臂实时控制视觉引导PID控制算法
ResearchandApplicationofRobotArmswithMultipleDegreesofFreedomBasedonOpenCVVisualGuidance
ZHANGBin
QingdaoHarbourVocational&TechnicalCollege,Qingdao,ShandongProvince,266404China
Abstract:Thisarticlemainlyconductsin-depthresearchonrobotarmswithmultipledegreeoffreedomthroughthedesignofhardwareandsoftwaresystems.ItusestheSTM32seriesmicrocontrollerasthemaincontrolunitoftherobotarm,andcollects,wirelesslytransmitsandreceivesthemotionattitudedataofvirtualrealitydevicescarryingbendingsensors,soastoachievethe remotereal-timecontrolofitsendcontroller.Atthesametime,itusesOpenCVvisualguidancetechnologytorecognizeandprocessthecollectedtargetobjectimages,andthesystemcanaccuratelylocateandrecognizethespatialcoordinatesoftheimagesandenabletherobotarmtocorrectlyrecognizeandgraspthetargetobjectaccordingtothespecifiedpositionandpredeterminedspeedthroughPIDcontrolalgorithm,.
KeyWords:Mechanicalarm;Real-timecontrol;Visualguidance;PIDcontrolalgorithm
手是人体最为灵活的部分,国内外模仿人类肢体动作研究了众多智能机械手臂机器人,应用领域涉及航空航天、深海探测、芯片制造、生物医疗等众多高科技领域。国外机器手臂在机械设计与制造业中的发展速度很快,且应用广泛,瑞典、德国、日本等国家机器手臂制造技术处于领先地位。在20世纪70年代我国第一台机械手臂在上海诞生后,机械手臂的研制随即在全国范围内开展,产品和技术也在不断地更新换代。随着机械手臂的作业任务和环境的复杂程度不断增加,对机械手臂的多自由度、灵活性、控制方式等性能提出了更高的要求[1]。因此,能够适应复杂或特定作业场景,且拥有视觉感知能力的机械手臂是未来的发展趋势。
本文设计一款利用物联网技术实现对机械手臂的远程无线控制,以STM32系列单片机作为核心控制单元,通过具有弯曲传感器的力反馈数据手套将人手的运动姿态进行数据采集,并通过无线模块进行数据传输,利用OpenCV视觉引导技术对采集到的目标物体图像进行识别与处理,实现对目标物体的识别、抓取、移动和旋转等操作。
1硬件系统设计
1.1多自由度机械臂设计
该系统中的机械手臂采用拟人手臂的空间开链式机构设计方案,为典型的关节型机器人结构,由6个关节和1个末端执行器构成的六自由度机械臂,利用步进电机驱动和控制每个关节的旋转,进而完成各种复杂的运动、抓取等操作。机械臂包含4个旋转关节,分别为腰关节、肩关节、肘关节和腕关节,各个旋转关节主要由步进电机、减速器、传动单元及内部传感器等部分组成,可以分别控制各执行机构按照预先设定的程序实现线性或非线性操作,进而实现机械臂在空间中做到6个自由度的运动[2]。
驱动装置是机械臂在运动过程中必不可少的机构之一,它按照控制系统发出的控制指令,通过动力单元使机械手臂产生相应的动作。常见的驱动方式主要有液压驱动、气压驱动和电气驱动三种类型,本系统中采用电气驱动方式控制步进电机,每一个关节设置一个驱动装置。
1.2机械手臂电机选型
机械手臂电机的型号选择要考虑负载能力、执行速度、控制精度以及可靠性等方面的综合因素,同时还要考虑电机的功率、转速、受力、效率等因素,选择切合实际的机械手臂控制电机。在确定好机械手臂的模型后,需要通过理论计算机械臂所能承受的力矩,并根据力矩计算出机械手臂的最大输出功率。通过多方面综合因素的考虑,经过精确的计算确保选取的电机型号有效驱动各个轴能够正常工作[3]。
若已知机械臂各轴质量mi(1≤i≤5)和负载的质量M,同时在机械手臂设计过程中可以测得各个轴间的水平距离Li(1≤i≤4)。在实际计算过程中,应考虑质心距离偏差问题。
则可根据受力公式
和所受最大力矩公式
计算出各个轴的受力大小和所承受的最大力矩。通过理论计算,同时综合考虑机械手臂工作时的最大负载、运动速度和加速度、工作时长、工作效率以及性价比等方面,进而可以确定机械手臂每个轴所需的电机类型。
1.3机械手臂主控单元
机械手臂的主控单元选择STM32H743IIT6芯片,该芯片集成了工作频率高达480MHz的ARMCrotex-M7内核,具有灵活的外部内存控制器,最多支持32位数据总线,具有168个具有中断功能的I/O端口。同时,该芯片中包含高速嵌入式2MB闪存、1MBRAM的存储器,2个电机PWM计时控制器以及5个低功耗定时器等丰富的片内资源[4]。
A4988是一款常用的微步电机驱动器,其内部自带转换器,便于操作,可在不同步进模式下操控步进电动机,具有较高的输出性能,工作电压范围为8~35V。同时兼容3.3V、5V的逻辑电平,具有接地短路保护、过载保护等特点[5]。STM32H743IIT6控制芯片与A4988驱动模块、电机的连接图如图1所示。
1.4运动姿态数据采集
机械手臂运动姿态的数据采集是通过载有弯曲传感器的数据手套进行获取的,数据手套是一种常见的虚拟现实硬件,其内部或表面搭载弯曲传感器,弯曲传感器由柔性电路板、力传感器和弹性封装材料构成。数据手套中配备5个高精度的弯曲传感器,分别分布在每根手指的活动关节上,当人手姿态发生变化时,力传感器受到外力作用将力的大小转换成阻值的大小,进而转换成电信号的大小,通过信号处理后的电信号就可以表示人手姿态变化情况。在运动姿态数据采集硬件电路设计上,通过弯曲传感器与电阻串联分压的方式,实现将人手姿态变化转换成电压的变化[6]。
1.5无线数据发送与接收
机械手臂的远程控制是通过嵌入式的蓝牙串口通信模块实现无线数据的发送和接收的。在数据发送端,将通过弯曲传感器采集到的人手运动姿态数据与STM32H743IIT6控制芯片的模拟端口相连接,经过控制芯片内部的模数转换单元将模拟信号转换为数字信号,经过发射端蓝牙模块进行无线传输。在数据接收端,经过协议配置,通过接收端蓝牙模块对运动姿态数据进行接收,将接收到的数据信息经STM32H743IIT6控制芯片进行数据处理,控制机械手臂的末端执行器,实现物体抓取等相应操作。数据采集、无线发送和接收系统如图2所示。
2软件系统设计
2.1图像识别与处理
在机械手臂系统中,摄像头模块安装在机械手臂的固定位置(Eye-In-Hand),通过摄像头采集被抓取物体的位置和图像等相关信息,最终在计算机中利用OpenCV完成图像信息处理。计算机通过对现场采集的图像信息进行分析,经过图像特征提取,确定出被抓取物体的位置和体征信息,同时确定出相对于机械手臂坐标体系下的三维坐标,系统根据获取到的三维坐标信息控制机械手臂实现对目标物体的精准操作[7]。
为了能够获得高精度处理效果,避免图像噪声导致深度图像中的不准确的深度值,而影响后续的图像处理任务,需要对被抓取物体原始的彩色图形和深度图像采取滤波、降噪和校正等方法进行除噪声处理。首先,对被抓取物体进行背景建模,通过比较当前帧模型和背景模型,达到检测前景物体的目的;其次,使用OpenCV进行轮廓提取,通过读取图像、灰度图像转换、图像分割、绘制轮廓等方法,识别和分割出感兴趣的物体;再次,对特征检测器进行初始化、利用检测器检测并计算特征点,对两幅图像的特征点进行匹配;从次,结合原图像、目标图像和透视转换矩阵等参数通过相关函数实现透视变换,按照指定的透视变换矩阵进行处理获得输出图像;最后,在输出图像中设置3个点并确定其在图像中坐标位置,利用仿射变换或透视变换对图像进行变换[8]。
通过相似三角形原理,可以测算出摄像头与被抓取物体的距离。决定摄像头与被抓取物体之间距离的3个因素分别为被抓取物体的已知宽度、焦距和图像中的被抓取物体的像素宽度,通过公式(1)就可计算出物体的距离。
式(1)中:d为被抓取物体与摄像头的距离,w为被抓取物体的宽度,f为焦距(摄像头镜头中心到成像平面的距离),p为图像中的被抓取物体的像素宽度。
2.2PID控制算法
比例-积分-微分(Proportional-Integral-Derivative,PID)是一种常见的控制算法。因其具备结构简单、良好的稳定性和可靠性以及调整方便等特点,故在工程实际中成为工业控制的主要技术之一。PID算法在机械手臂的位置和速度控制中也有着广泛的应用,通过比较位置、速度的实际输出值与预定值的差异,通过反馈系统,调整控制器的输出值,达到预定的控制效果,进而能够实现机械手臂运行到指定位置和达到预定速度[9]。
3结语
随着我国经济实力和科技水平的不断提升,人工智能和新一代信息技术的日益崛起,我国正从制造业大国向“智造”业、创造业强国转变,机械手臂市场的规模有着很大的发展空间。在未来的发展中,随着制造业制造水平的不断升级,机械臂的应用将不限于工业生产领域,同时在医疗康复、餐饮服务、教育培训等与人们日常生活息息相关的领域中也有着广泛的应用。在技术创新上,随着人工智能的不断发展,具有深度学习、自主决策和机器视觉功能的机械手臂将在各个领域中发挥着不可替代的作用,同时也为人类探索未来带来更多的机遇和挑战。
参考文献
[1]潘莉英.柔性关节机械臂避障路径自动控制数学建模[J].机械与电子,2023,41(3):60-64.
[2]黄鑫,张文亭,任雪娇,等.基于虚拟样机的六自由度机械臂轨迹规划研究[J].内燃机与配件,2023(3):40-42.
[3]王钧,田垄翔,李斌,等.五自由度机械臂系统设计与控制方式研究[J].青岛大学学报(工程技术版),2023,38(1):104-111,118.
[4]周江.STM32单片机原理及硬件电路设计研究[J].数字技术与应用,2015(11):1.
[5]祖一康,徐妙婧.基于单片机的直流电机转速测量与控制系统设计[J].黄冈师范学院学报,2014,34(3):50-53.
[6]曹毅,顾苏程,翟明浩,等.封闭式仿生螺旋缠绕软体夹持器的设计与研究[J].北京航空航天大学学报,2021,47(1):15-23.
[7]陈再师,刘任任.基于OpenCV的智能机械手臂的设计与实现[J].电脑知识与技术,2015,11(25):118-119,121.
[8]郭小羽.六轴机器人控制器底层软件设计及其算法仿真研究[D].深圳:深圳大学,2017.
[9]汪洋,王黎明,薛毓铨,等.基于改进SIFT算法的机械臂识别抓取研究[J].机床与液压,2022,50(16):63-66.