基于PyQt的机械臂运行控制系统的制作方法

文档序号:14232702阅读:347来源:国知局
基于PyQt的机械臂运行控制系统的制作方法
本发明涉及一种机械臂运行控制系统,尤其是一种基于pyqt的机械臂运行,仿真,在线示教的控制系统。
背景技术
:工业机械臂是基于电工电子、机械结构、软件控制等多方面技术设计的多自由度运动装置。上世纪六十年代,首台工业机械臂在美国问世,此后工业机械臂得到了迅速发展,在工业领域中占据了无可替代的位置。在搬运、喷漆、焊接、装配等作业中使用自动化工业机械臂取代人工操作,不仅能降低成本还能提高工作效率。随着传感技术、人工智能以及计算机技术的不断发展,工业机械臂正在向其他领域迈进。依托工业机械臂技术的不断发展,用于工业机械臂的控制系统应运而生,传统的工业机械臂控制系统根据各工业机械臂生产厂家的不同而不同,存在很大的局限性,各厂家控制器之间的兼容性较差,尤其是对示教器的兼容。示教器作为机械臂的人机交互终端,可以对机械臂进行动作控制。机械臂的示教过程是:首先,手动控制机械臂运动到某个固定位置,机械臂将当前的位置信息反馈给示教器,示教器将机械臂的这一运动编写成程序指令;然后,重复上述过程,完成机械臂的整套动作和程序指令编写;最后自动运行编写好的程序指令,机械臂就会重复再现之前的运动。示教过程包括机械臂的运动控制和示教程序编写两部分。另外,示教器还可以查看并修改机械臂的各类参数、数字输入输出信号以及报警信号等。传统的工业机器人控制与示教系统多采用控制器控制和app上位机控制。控制器对于机器人进行示教,需要操作者具备专业的机器人操作技能,不同厂家执照的控制器规格不同,操作培训周期也就不同,控制器一旦损坏后很难维修。app上位机控制器功能不强,其上位机开发语言的扩展性与兼容性不强,对不同机械臂控制的适应性不佳。同时,这类控制器很难加入仿真模块,也很少考虑机械臂实际运行时的轨迹优化等问题。目前,针对工业机械臂控制系统的设计主要集中在控制器和示教盒功能优化等方面;针对pc端的工业控制系统设计和示教轨迹优化,运动轨迹仿真等方面的研究较少。杨晶等提出的一种基于android的机器人示教软件设计与实现(杨晶.基于android的机器人示教软件设计与实现[d].华中科技大学,2015.),开发了一款新的机器人示教软件,但未考虑机器人仿真和轨迹规划以及后期功能扩展和多品类机械臂兼容性等问题;陈恳,任书楠,王国磊,谢颖,刘志,杨向东,程建辉,于乾坤,吴丹,宋立滨,付成龙,徐静,刘莉,杨东超等提出的工业机器人示教系统(陈恳,任书楠,王国磊,谢颖,刘志,杨向东,程建辉,于乾坤,吴丹,宋立滨,付成龙,徐静,刘莉,杨东超.工业机器人示教系统[p].北京:cn104700705a,2015-06-10.),提出了一种操作较优的机械臂示教系统,但依旧使用的是示教盒,对其他机械臂控制器兼容性较差,同时对机械臂的控制操作不灵活。技术实现要素:本发明要克服现有技术的上述缺陷,提供了一种基于pyqt的机械臂运行控制系统。首先该系统具有较优的人性化操作界面,让不同的用户都能够方便地进行运行和示教等过程的操作,并显示各种控制参数和运行数据供用户直观监视整个控制过程;其次该系统引入了笛卡尔轨迹规划方法,提高了轨迹的平滑性;同时根据机械臂示教运动时的关节角参数实现机械臂运动的实时仿真;最后该系统可以完成对机械臂的基本运动控制,在线示教操作,同步仿真等功能。本发明为解决现有技术问题所采用的技术方案是:所述的基于pyqt的机械臂运动控制系统分别包括人机交互模块,上位机主控模块,仿真与控制模块,轨迹规划模块,usb转串口模块;人机交互模块发送控制指令给上位机主控模块,传输技术人员的操作指令,上位机主控模块根据控制命令,发送仿真参数给仿真与控制模块,同时发送关节角度参数给轨迹优化模块;实际机械臂工作台通过usb转串口模块,接受来自上位机主控模块的操作指令,最终完成机械臂的运行控制。1)人机交互模块,是一个具有良好人机交互性的用户操作和监测模块;人机交互模块接受来自操作人员点击的系统启动信号后,分别激活上位机主控模块,仿真与控制模块,轨迹规划模块,usb转串口模块;操作人员在人机交互模块上点击各模块的任务命令,发送不同类型的控制命令给上位机主控模块;同时人机交互模块接受来自上位机主控模块的机械臂运行相关参数,并进行实时显示,完成人机交互功能。2)上位机主控模块,是该系统的通信中枢和控制中枢,对各种数据、参数和指令进行解析、处理、调度和收发;上位机主控模块接受来自usb转串口模块的机械臂关节角度参数,末端执行器速度,加速度参数,通过网络通信的方式接受来自仿真与控制模块加工处理过的实际机械臂控制指令字符串,接受来自轨迹优化模块优化完成的各关节角度参数,接受来自人机交互模块传输的操作人员控制指令;上位机主控模块根据系统运行顺序,把人机交互模块发送的控制指令解析后发送给轨迹优化模块,接受轨迹优化模块优化后的机械臂各关节角参数,通过网络通信的方式,把优化的机械臂各关节角参数发送给仿真与控制模块,根据上位机主控模块的逻辑控制器,接受来自仿真与控制模块的控制指令;最后上位机主控模块把从仿真与控制模块接受的控制命令,使用仿真与控制模块的后置处理器程序,转化为机械臂实际可执行代码,发送可执行代码给usb转串口模块。3)仿真与控制模块,是该控制系统的扩展功能之一,其接受来自上位机主控模块的仿真参数,并把仿真参数转化为pyqt语言,依托pyqt强大的python内核,直接调用robodk动态函数库,可以把仿真运行参数转化为控制机械臂3d模型仿真运行的执行代码;同时仿真与控制模块接受上位机主控模块的机械臂示教参数,并把该参数实时对应到仿真与控制模块的机械臂3d模型中各运动关节上,实现仿真示教并记录仿真运行轨迹的离散点坐标,把坐标参数以字符串的形式存储起来,并把该字符串输入到机械臂对应的d-h参数模型中,得到对应的实际机械臂运行轨迹参数列表,通过仿真与控制模块中的后置处理器软件,自动生成实际机械臂运行控制指令;最后,通过网络通信方式把机械臂运行控制指令发送给上位机主控模块。所述的仿真与控制模块在完成仿真与在线示教功能的基础上,对仿真轨迹进行优化,同时根据实际机器人结构参数的不同进行校准;在仿真运行时,包含碰撞与工作空间检测,保证机械臂仿真的合理性和真实性;同时,能把仿真结果输出为html格式的仿真动画输出给用户。4)轨迹优化模块,是提高示教效果的关键模块;该模块接受上位机主控模块传输过来的机械臂各关节的角度参数数组,结合当前所使用的机械臂型号的结构参数,使用d-h参数建模方法建立机械臂各关节的基坐标系,利用正运动学公式求解末端执行器在世界坐标系下的位姿参数,进而求出整条示教轨迹;再对示教轨迹使用笛卡尔轨迹规划算法进行轨迹优化;考虑到实际机械臂运动的离散性,该模块基于优化完的轨迹进行逆运动学计算,得出执行较优示教轨迹所对应的关节角参数数组;最终通过上位机主控模块把该关节角参数数组发送给仿真与控制模块进行处理。所述的轨迹优化模块从上位机主控模块接受机械臂的关节参数数组,结合正逆运动学求解和笛卡尔轨迹规划算法来优化运行和示教轨迹,再将优化后的角度参数数组发送给仿真与控制模块进行仿真与示教操作,所述的正运动学求解运动轨迹的具体方式如下:4.1)首先对工作机械臂构建其d-h参数模型,把各连杆运动分解为相对参考坐标系的转动和平移运动,对每个杆件沿关节轴建立一个关节坐标系,用以下四个参数来描述杆件:(1)连杆长度ai:关节轴i和关节轴i+1之间公垂线的长度。(2)连杆转角αi:作一个与两关节轴之间的公垂线垂直的平面,将关节轴i和关节轴i+1投影到该平面,在平面内轴i按右手法则绕ai转向轴i+1,其转角即为连杆转角。(3)连杆偏距di:公垂线ai-1与关节轴i的交点到公垂线ai与关节轴i+1的交点的有向距离长度。(4)关节角θi:ai-1的延长线与ai之间绕关节轴i旋转所形成的夹角,即采集得到的示教机械臂关节角度。得到示教机械臂多关节的d-h连杆参数如表1所示:表1示教机械臂d-h连杆参数表关节i连杆长度ai连杆转角αi连杆偏距di关节角θi1a1α1d1θ12a2α2d2θ23a3α3d3θ34a4α4d4θ4……………nanαndnθn4.2)以基座坐标系作为t0坐标系,设表示i关节坐标系相对i-1关节坐标系的位置和姿态,则:其中,sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi。4.3)对于多轴机械臂,获得机械臂末端执行器位姿相对固定参考坐标系的变换矩阵(即机械臂末端位置点坐标的变换矩阵):其中,表示机械臂末端执行器相对于基坐标系的变换矩阵。4.4)求得每组角度参数获取时刻的机械臂的末端执行器位姿相对于固定参考坐标系的变换矩阵后,即可得到每组角度参数获取时刻机械臂末端执行器位姿相对于固定参考坐标系的坐标点组成的离散运动轨迹。5)usb转串口模块,用于连接实际机械臂工作台和上位机主控模块,完成两者的信息交互,同时保证数据的实时传输;该模块将电脑pc端usb接口转化为通用串口,实现上位机主控模块和机械臂控制器之间的信息双向通信;usb转串口模块接受机械臂控制台上关节角度传感器的角度参数,计算后的末端执行器位置,速度,加速度等信息,同时接受上位机主控模块发送的机械臂运行控制指令;模块中含有校验计算功能单元,对发送端数据进行二补数校验,对接收端数据进行逐字节相对校验;通过usb转串口模块,发送包含校验码的机械臂运行状态参数字符串给上位机主控模块。本发明的优点和积极效果是:1、本发明较其它类别的机械臂控制系统,成本低廉,界面功能丰富,安装方便,兼容性好,能满足不同类型用户的需求。本发明整合了机械臂基础控制,在线示教,在线仿真,轨迹优化等功能,极大的拓展了机械臂控制器的功能性,同时变革了控制器繁琐的按钮控制方式,还能通过人机交互界面让用户实时了解机械臂工作状况,给用户带来完全不一样的体验和操作便捷度。2、本发明是基于pyqt开发而成,继承了python语言强大的扩展性和兼容性,能大大扩展该机械臂控制器的功能,为后期引入大数据和机器学习功能块提供稳定的功能接口。同时pyqt良好的gui编程环境,给开发人员带来极致体验,给用户带来人性化的交互界面。3、本发明还引入了网络通信功能,不但能在本地控制机械臂操作,还能通过分布式网络,对分布在远端的各种机械臂进行及时操控,同时其较好的上位机兼容性能在任何windows操作系统的用户pc上使用,排除了过去控制器笨重不实用等情况的发生,节省了用户终端控制器带来的器械制作成本;无需担心用户终端控制器出现的机械故障;也不必为用户终端控制器花费过多的能源开销;上位机可以进行在线升级,方便开发者对其进行问题的修复和产品功能的升级;控制器面向pc端使用是当前电器自动化和智能化的趋势,更能贴近用户的需求。附图说明图1为本发明的控制原理框图。图2a为本发明的上位机中机械臂连接控制界面。图2b为本发明的上位机中机械臂基本控制和相关信息显示界面。图2c为本发明的上位机中机械臂在线示教和仿真控制界面。图3为本发明的仿真机械臂运行示意图。具体实施方式以下结合附图对本发明做进一步详述。一种基于pyqt的机械臂运行控制系统,其控制原理框图如图1所示,该系统由人机交互界面模块、上位机主控模块、仿真与控制模块、轨迹规划模块、usb转串口模块,共五大模块组成。其中人机交互模块的具体效果如图2所示,其界面有三大部分组成。包括机械臂连接控制界面、机械臂基本控制和相关信息显示界面、机械臂在线示教和仿真控制界面。各界面用于控制机械臂完成各种特定操作并显示相应的运行参数。图3显示了该机械臂运行控制系统调用机械臂仿真模块的展示效果,该模块能完成机械臂的各种运行仿真。结合图1,图2和图3,本发明专利的具体实施方式如下:pc端软件安装在window操作系统上,机械臂控制台与pc端通过usb转串口连接器连接;机械臂关节角度传感器与机械臂控制台通过i/o口传输信号;用户在windows操作系统的电脑上下载并安装该机械臂运行控制系统,即可对实际机械臂进行控制操作。该机械臂运行控制系统各模块间的实际运行内容由以下几部分组成。1)人机交互界面模块,当该系统的上位机完整安装到pc上时,启动该软件将会自动运行该模块,用户根据界面提示,用usb转串口模块连接机械臂与计算机。此处连接的机械臂是一款最新的桌面级机械臂dobot,当dobot连接到pc上时,用户显示界面将提示连接信息,如图2a所示点击连接图标,人机交互界面将发送控制命令给上位机主控模块,上位机主控模块对控制命令解析处理和转化后通过usb转串口模块发送给实际机械臂工作台,机械臂接受人机交互界面模块途经上位机主控模块解析处理后的命令,并把通信连接成功的信号发送给上位机主控模块,主控模块解析该命令后通过显示界面向用户反馈连接成功的信息。同时人机交互界面模块还能通过上位机主控模块获取实际机械臂的设备信息,连接状态信息,关节角度信息,末端执行器位置、速度、加速度信息。如图2b所示,在人机交互界面模块的基本控制区,用户可以通过点击关节控制区的操作按钮发送控制命令给上位机主控模块,主控模块通过对控制命令进行解析和匹配,并把处理后的操作命令用usb转串口模块传输给机械臂工作台完成对应操作。人机交互界面除了能通过上位机主控模块直接控制机械臂工作台外,还能借助上位机主控模块完成对获取的关节角度等参数的轨迹优化和仿真操作。如图2c所示,当用户点击该界面时,人机交互模块将调用仿真与示教指令给上位机主控模块,该模块通过命令匹配,激活仿真与控制模块。从dobot机械臂传输过来角度,位置,速度,加速度等参数时,上位机主控模块将根据用户在人机交互界面的操作要求,激活轨迹规划模块。由此,用户可以通过人机交互界面模块对该机械臂运行控制系统进行所需的各类操作,该模块发送控制命令给上位机主控模块,通过主控模块完成实际控制;并从上位机主控模块获取各类参数,与用户实现及时交互。2)上位机主控模块,是本系统的信息中枢和控制中枢,能对各种数据、参数和指令进行处理、调度和收发。在具体操作中,用户根据个人意愿发送操作命令给人机交互界面模块,该模块把用户操作指令转换为计算机指令后传输给上位机主控模块。上位机模块通过pyqt语言和windows系统框架实现软件模块间的通信。基于网络通信机制,对仿真与控制模块和轨迹优化模块建立连接。再通过usb转串口模块完成pc与机械臂之间的通讯连接,然后在pc上通过windows系统框架与pyqt的通信机制完成上位机模块与机械臂工作台的通信连接。同时上位机主控模块也是仿真与控制模块和轨迹优化模块的调度中枢,dobot机械臂通过usb转串口模块不断发送关节角等参数信息给上位机主控模块,上位机主控模块在得到机械臂实时仿真命令后,首先把关节角度等参数发送给轨迹优化模块进行轨迹优化。当主控模块获得优化后的关节角度参数后通过网络通信把参数发送给仿真与控制模块。如果用户需要使用系统的仿真与示教功能时,人机交互界面模块将相应信息发送给上位机主控模块,主控模块解析上述命令,启动仿真与控制模块,并把解析后的控制命令发送给机械臂工作台。通过上位机主控模块的中间调度,使得整个系统的机制能有条不紊的运行下去。3)仿真与控制模块,是本系统的扩展功能之一,当用户在人机交互界面选择机械臂仿真运行命令时,上位机主控模块将命令解析后激活仿真与控制模块,该模块被激活后不断向上位机主控模块获取dobot机械臂的关节角度信息,同时调用robodk动态函数库来完成dobot机械臂的3d运行仿真,该系统是基于pyqt开发,能直接使用robodk的动态函数库来控制dobot的3d模型,完成与实际dobot相同的操作。仿真与控制模块在执行仿真操作时,能在线生成运行轨迹,方便用户了解机械臂的运行轨迹,同时能适当调整机械臂的运行操作。当用户在人机交互界面选择机械臂在线示教功能时,上位机主控模块会相应激活仿真与控制模块的示教功能,一方面可以通过robodk仿真接口实现对仿真机械臂运行轨迹的实时描述;另一方面该模块将实时记录dobot机械臂的运行状态信息,实现机械臂的示教功能。4)轨迹优化模块,是提高示教与仿真等效果的关键模块;该模块接受上位机主控模块传输过来的机械臂各关节的角度参数数组,结合dobot机械臂的结构参数,对dobot机械臂构建其d-h参数模型,把各连杆运动分解为相对参考坐标系的转动和平移运动,对dobot的四个连杆沿关节轴建立四个关节基坐标系,然后用以下四个参数来描述杆件:(1)连杆长度ai:关节轴i和关节轴i+1之间公垂线的长度。(2)连杆转角αi:作一个与两关节轴之间的公垂线垂直的平面,将关节轴i和关节轴i+1投影到该平面,在平面内轴i按右手法则绕ai转向轴i+1,其转角即为连杆转角。(3)连杆偏距di:公垂线ai-1与关节轴i的交点到公垂线ai与关节轴i+1的交点的有向距离长度。(4)关节角θi:ai-1的延长线与ai之间绕关节轴i旋转所形成的夹角,即采集得到的示教机械臂关节角度。得到dobot机械臂多关节的d-h连杆参数如表1所示:表1示教机械臂d-h连杆参数表关节i连杆长度ai连杆转角αi连杆偏距di关节角θi1000180°220mm0085°3135mm00105°4147mm00180°然后以基座坐标系作为to坐标系,设表示关节坐标系相对i-1关节坐标系的位置和姿态,则的结果可有公式(1)求得。其中,sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi。为获得dobot机械臂末端执行器位姿相对固定参考坐标系的变换矩阵(dobot机械臂末端位置点坐标的变换矩阵),使用的是公式(2)。最后在求得每组角度参数获取时刻dobot机械臂末端执行器位姿相对于固定参考坐标系的变换矩阵后,即可得到每组角度参数获取时刻dobot机械臂末端执行器位姿相对于固定参考坐标系的坐标点组成的离散运动轨迹。以上过程都在轨迹优化模块中完成,并通过仿真与控制模块实现机械臂轨迹仿真和实际机械臂示教控制。5)usb转串口模块,采用的是ch340转串口芯片和外围电路构成usb转串口模块,usb转串口模块连接电脑pc和机械臂通信接口,将电脑pc端usb接口转化为通用串口,实现电脑pc端和机械臂控制器的信息双向互通。该模块的串行接口可以直接连接本实施方案的dobot机械臂外接串口,实现pc端与机械臂的相互连接。usb转串口模块接受来自dobot机械臂各关节角度传感器的信息,并在参数信息发送端载入校验码,通过usb转串口模块发送到上位机主控模块后,在该模块上完成参数校验,对正确的角度信息进行分类后传输给其他功能模块。同时,上位机主控模块,通过usb转串口模块把控制dobot机械臂的控制字符串按照dobot机械臂指令格式发送出去。实现了机械臂与控制器间使用有线连接,控制器与用户界面交互之间使用网络连接的控制机制。以上是整个系统的控制情况以及该系统中各模块之间的相互作用关系,基于pyqt的机械臂运动控制系统让用户的操作变得简单方便,轨迹规划模块让机械臂仿真和示教轨迹变得更加光滑,运动速度变化更加均匀,机械臂仿真与控制模块大幅度扩展了机械臂控制器的功能,同时pyqt编程界面的高扩展性和兼容性为未来加入机器学习和大数据分析模块提供实用接口。需要强调的是,本发明所述的实施案例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方案中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出类似的其它实施方式,同样属于本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1