基于ARM的机械臂控制系统的设计与研究
2017-07-14孙海峰
孙海峰
摘要:随着嵌入式设备的不断发展以及物联网IOT技术和理论的进展,许多曾经的复杂设备正在快速降低开发和应用门槛。机械臂作为与日常生产生活有关的重要设备,对其控制系统的研究,有助于更好地理解嵌入式设备的实践使用。我们可以通过现有的流行ARM平台,搭建符合本科阶段学习研究的小型机械臂系统。
关键词:机械臂;网络控制;树莓派;路径规划;ARM
1概述
物联网控制技术正在理论与实际应用中飞速发展。在工业控制、科学研究、航空航天、军事、远程医疗、机器人遥控等领域,越来越多的控制系统开始改变结构,通过网络远程化的构建其控制架构,来实现传感器,控制器和执行器之间的远程数据传输。目前最引人瞩目的是远程控制机器人在互联网上的应用。
2结构设计
本文以四自由度的机械臂为被控对象,以本地网络的PC为上位机,通过局域网无线技术与SSH协议连接下位机。实现主控被控联动的四自由度网络化远程控制程序,来完成在局域网范围内的远程控制机械臂完成移动和取物。本文中对机械臂的控件运动进行了路径规划,对工作需求进行了论证和选型,分析了系统流程并构建了整体的框架结构。本文对机械臂测试分为单步测试和整体测试。也对整体系统的拓展规划进行了分析,为进一步研究确立了方向。
机械臂是一门多学科融合的技术领域。相关知识理论涉及嵌入式、软件、电子、网络、算法等多个方向的知识。学习和研究这一课题,是对本专业综合知识学习的一个整合与应用。
机械臂现在已经深入到生活的方方面面,从空间站搬运货物,深潜器抓取深海样品,再到工业上的焊接切割组装机械臂,再到排爆机器人,医疗机器人,人工义体等。机械臂在军事,医疗工业,教育,生活领域都有贡献。多自由度机械臂控制复杂,价格昂贵,学习成本较高。机械臂的优势在于重复定位精度高,模块化,灵活。
3机械臂自由度设计
ARM是一种高性能、廉价、耗能低的RISC处理器架构。基于ARM技术的微处理器应用约占据了32位嵌入式微处理器市场,且新型号性能和资源愈发强大,可以作为大部分智能设备以及IOT应用的控制核心。本系统涉及的通信协议较多,同时需要较大的硬件资源,因此ARM符合本系统的多种需求。特点如下:体积小,功耗低,性能高。支持ARM和THUMB两种指令集。较多寄存器能够满足临时数据和结构存储。方便寻址和较高的寻址速度。支持多任务操作系统。拥有图片处理单元,能够运行图形化操作界面。
本系统使用IRB460机器人为结构蓝本的小型四自由度机械臂,结构合理配合MG996R舵机足矣驱动本平台。主控芯片为RaspberryPi2B+。舵机控制使用PCA9685,与主控以12C方式連接无线连接使用802.11n,以linux下的SSH工具与主控下移植的SSL协议脚本进行通讯,由于wifi普及程度较高且兼容设备多,可以快速将本系统的控制移植到手机,平板以及专用遥控器上。主要研究方向在软件编写开发,编程语言采用c、python。分别负责执行机构的驱动和网络连接控制。解决的主要问题是将机械臂的模块化控制的组件,并且对路径规划以及控制参数配置进行梳理。
搭建多自由度机械臂平台,末端平台可以搭载多种传感器和执行机构,控制核心以ARM板做下位机,并且获得传感器反馈数据,提供上位机无线控制。
本系统的控制对象为仿ABB码垛机器人结构的小型版本主要结构为PC塑料切割件,固定为金属内六角螺钉,装有3个大扭矩MG996R金属数字舵机,运动范围为0-180°,末端平台安装小扭矩SG90塑料数字舵机,采用杜邦线外接到控制板。由于数字舵机的高重复定位精度,本系统并未采用限位开关来判断绝对位置。机械臂小臂长度为152mm,大臂长度为140mm。机械臂拥有包括平台内的四个自由度,可以完成正前方向大部分空间内的位移。以上部件构成了该机械臂的基础运动部件。
该机械臂拥有四个自由度。四自由度中前三自由度,采用MG996R舵机作为驱动单元,该驱动单元扭矩为,通电状态下由于大扭矩比齿轮组,能够锁定机械臂不因自身重量发生下坠。平台自由度驱动单元为SG90,扭矩为,能够满足平台末端执行机构和传感器的转动力量。用小臂结构为一个平行四边形,可以保证末端平台始终处于水平状态。
工作单元驱动,采用MG996R驱动器,可以让ARM核心从实时性任务中解放出来,使得专用核心来处理重复的简单操作,在非实时操作系统中节约了CPU时间,保证了实时性。同时PWM方式驱动舵机,保证了可重复定位性和准确性。
驱动单元均由5v直流电压驱动,鉴于ARM核心不应与大功率单元直接向量,考虑了成本、10资源限制、PWM驱动扩展、代码可扩展性以及执行机构可扩展性,本系统放弃使用简易的继电器光耦隔离,采用PCA9685驱动模块。该模块具有10扩展,电源稳压,PWM控制。
本系统采用一个输入220V,输出5V-10A的电源。驱动单元,驱动控制单元和核心ARM控制板的工作电压均为5v,ARM控制板也具备3.3V电压,同时ARM控制板支持12C,SPI,串口等总线接口,即本系统可以兼容大部分3.3V-5V的电子元器件和模块。
4系统框架设计
上位机控制下位机进行工作。进而控制驱动板和其他工作单元。数据的接收由传感器直接发回下位机。所有数据和运行状态以及控制都通过wifi方式与上位机交互。
以SSH方式建立远程连接。控制以调用位于下位机用户空间的可执行文件方式,执行某一操作或启动自动工作程序,或调整对应参数。
将交互内容转化为舵机和其他执行单元的转动角度等信息,调整整个执行顺序和工作位置。
以底座腰部为圆形,在初始正方向中轴线上左右各旋转90°,以上图的近似椭圆的不规则为底面的扇形环装区域内移动,最大前伸长度约300mm,最高离地高度约250mm。
运动控制时,以腰部舵机为一个独立区域,大小臂舵机合并为一个控制区域,平台的小舵机不影响运动,由平台机构的控制代码单独调用。
当需要执行的运动轨迹还包含水平旋转时,将腰部舵机的运动控制和之前两者的运动同时绑定,根据任务需求做出最优解规划。
当有传感器进行任务判定时,优化路径采取其他优化算法,以最少运动量为前提,设计出单位时间内运动频次最优的路径。
下位机使用树莓派B+作为核心控制板,使用了其中的一个USB口,一组12C接口,以及部分10。
此舵机驱动板使用PCA9685芯片,是16通道12bit,PWM舵机驱动,用2个引脚通过12C就可以驱动16个舵机。通过级联的方式最多级联62个驱动板,增强了可扩展性,此外还解决了驱动电路和控制电路隔离的问题。此本设计中,占用4路输出对机械臂的舵机进行驱动。
树莓派支持摄像头模块。可以将摄像头模块挂载到末端平台位置,拍摄图像后经处理获得所需的数据。
本系统中考虑到成本和技术复杂度,采用接近开关作为末端感知设备。接近开关是一种无需与运动部件进行机械直接接触而可以操作的位置开关,当物体接近开关的感应面到动作距离时,不需要机械接触及施加任何压力即可使开关动作。
当末端平台运动到目标物上方时,触发传感器,机械臂垂直下移并启动执行器,执行相应操作。
执行器使用吸盘+真空泵的形式。吸盘固定在末端平台,软管留出一定机械臂活动余量后连接到后端的真空泵上。通过PCA9685的开关控制,接通真空泵,通过软管和吸盘将目标物吸起。转移到固定目标后,关闭真空泵,放下目标物体。
在需要的时候,可以将执行器更换为机械爪,激光器或其他对应的器件。