一种仿人形机械手的设计与仿真
2021-05-14李子扬袁梦琦张嘉洋王钟慧朱炫
李子扬 袁梦琦 张嘉洋 王钟慧 朱炫
摘要:对一种手指为单自由度结构的仿人形机械手进行了研究。在此基础上,设计了机械手的机械结构,进行了手指运动学分析与仿真;以单片机STM32F103作为主控器设计了控制系统。研究表明,设计的机械手各关节运动平稳,动作灵活,控制流畅,达到了预期的要求。
关键词:机械手;结构设计;控制系统
0 引言
如今工业机械手已经被大规模用于从事重复性高、任务繁重的工作,此类机械手的特点是工作环境较为固定,执行动作单一。但是,很多其他领域仍然需要人手才能完成任务,例如在农业生产、医疗、建筑工程、宇宙及海洋的开发等方面,需要依靠人手的灵活与人的决策,而工业机械手难以胜任。因此,人们迫切需要类似人手的多指灵巧机械手来完成上述作业[1]。
国外对仿人形机械手的研究比较早,目前已经取得了较多成果,比如Pisa/IIT Soft Hand机械手[2]、日本立命馆大学研究的机械手[3]、德国企业Ottobock设计的bebionic hand[4]等。而国内从20世纪70年代后期才开始对仿人形机械手展开研究,主要集中在一些高校和科研机构,例如清华大学的手势多变欠驱动(GCUA)机械手[5]和哈尔滨工业大学的HIT/DLR Ⅰ、Ⅱ多指灵巧机械手[6]等。尽管国内外学者已对仿人形机械手做了大量研究,但仿人形机械手还存在着一系列问题,例如价格昂贵,实时性不理想,设备笨重,多数处于研究阶段,市场化程度较低等,这些都制约了其在实际中的应用,使其未能大规模普及[1,7]。
本文提出的仿人形機械手采用单自由度结构,用5个电机分别对5个手指进行控制,并通过连杆式机构进行驱动;通过单片机控制舵机控制板实现统一发送指令控制舵机运动,并设计了上位机软件来控制仿人形机械手。同时,本文提出了一个更便捷的人机交互方式,使仿人形机械手更加符合人类的操作习惯,简单高效;在机械与控制两方面优化了机械手的运动功能,大大提高了机械手的控制精度与灵活度。
1 机械结构设计
为了使控制更加简便,本设计采用5个电机分别对5个手指进行控制,每一根手指均采用单自由度结构。考虑到机械手手部空间位置的限制,设计的机械手通过连杆式机构与舵机相连进行驱动。机械手三维模型如图1所示。
为了实现手指的弯曲功能,设计了如图2所示的连杆机构来实现手指弯曲。
各连杆杆长参数如表1所示。
1.1 仿人形机械手手指运动学分析
如图3所示,对于连杆I-G-C-D,连杆角度β1=106.59°,β2=82.50°;对于连杆B-C-F,连杆角度β3=183.12°;对于连杆E-F-H,连杆角度β4=156.04°。
对该连杆机构建立闭环矢量方程如下:
1.2 仿人形机械手手指运动学仿真
设置手指末端从-40°~40°,在MATLAB中对上一小节建立的运动学模型进行仿真分析,得到机械手手指末端的运动轨迹如图4所示。
设定连杆的初始角度为-30°,主动连杆以10(°)/s的速度匀速转动,仿真时间为5 s,仿真积分步长为0.01 s,将在SOLIDWORKS中构建的连杆三维模型导入到ADAMS中进行运动学仿真,得到单自由度手指连杆机构各个关节的关节角、关节角速度、关节角加速度、指尖运动轨迹以及手指几何构型的仿真结果,如图5、图6、图7、图8所示。
由图5、图6、图7可以看出,在5 s仿真时间内,连杆机构各个关节角位移、角速度、角加速度曲线光滑,连杆机构运动平稳,即不会给电机造成冲击。
由图8可以看出,基于该连杆机构的手指末端运动实现了预期的圆弧轨迹,该圆弧轨迹与先前MATLAB基于理论关系式计算出的轨迹基本上一致。同时由仿真动画可知,该模型可以很好地实现手指的弯曲,多个手指共同运动时,即可实现机械手的握持功能,而且在运动过程中,各个连杆运动较为平稳,满足控制要求。
2 控制系统设计
为了控制机械手执行指定的动作,设计控制系统的总体结构,如图9所示。
2.1 硬件设计
根据控制需求,本文采用上、下位机的控制结构,上位机选用PC机,用于完成运动指令输入、舵机速度设置等功能;下位机选用单片机,用于完成上位机指令的解读和传输,实现对机械手的控制。控制过程主要分为两步:(1)系统初始化后,由上位机发送运动指令给STM32单片机;(2)运动指令经单片机和舵机控制板处理之后发送给舵机,从而控制机械手做出相应动作。在此期间,通过传感器采样来检测系统是否正常运行以及判断任务是否完成。
经综合考虑,本文选用单片机STM32F103作为主控芯片,这种芯片性能较好,运算速度较快,且内部集成了模/数转换模块和多个I/O接口,能够输出多路PWM波,也能对多个传感器的数据进行采集和计算。主控电路的时钟电路采用8 MHz外部晶振作为时钟源,还包含32.768 kHz的RTC时钟,可以方便地拓展电路[8]。另外,为了防止可能出现的故障,控制板上还设置了手动复位按钮。
本文选用MG995舵机来驱动机械手,数量为5个。这种舵机尺寸较小,重量较轻,方便通过PWM芯片进行控制。选用精密旋钮电位器作为角度传感器,其型号为SV01A103AEA01,采用DC5 V电压供电,线性精度±2%,有效旋转角度333.3°,总电阻值10 kΩ。
为了便于控制舵机,本文采用舵机控制板对舵机进行指令的统一传送。控制时由主控芯片将指令转化为规定格式后通过串口发送给控制板,再由控制板经不同通道对5个舵机同时发送控制指令。控制板由3个L293D芯片组成,每个芯片可控制2个舵机,因此可以预留出一路舵机接口备用。为了保证电路正常运行,控制板上还集成了电压电流传感器,用于监测电路功率,防止过载。
2.2 软件设计
控制系统采用PID控制策略完成对舵机的控制,控制过程如图10所示。
下位机软件基于Keil 4开发平台开发,采用C语言进行编程。系统上电后首先进行初始化,接收上位机传来的对机械手的控制指令。上位机与STM32单片机之间采用串口通信,设定每100 ms发送一次控制指令,以免造成控制指令堆积。然后STM32单片机对所得指令进行处理,发送给舵机控制板,再由舵机控制板控制舵机运转相应角度。传感器检测到运动完成之后,发送反馈信息给单片机,单片机随后进入中断程序。当新的指令来临,中断结束。
上位机软件采用Qt来设计。Qt是常用的C++软件开发库,组件丰富,拓展性高。开发的上位机软件主要功能有对手指正逆运动学的计算,与STM32单片机和舵机控制板进行串口通信,发送控制指令等。
上位机的软件界面如图11所示。
该界面主要分为单指操作和多指协作两部分,使用时点击“开始”,然后根据动作要求点击“单指操作”或“多指协作”,拉动滑块即可对规定的手指進行控制。界面最右端可以通过调节发送给舵机的占空比来调节舵机运行的速度,达到舵机能够较为精确地移动到位的目的。
3 结语
本文设计了一种采用单自由度结构、由连杆机构进行驱动的机械手,采用5个电机分别对5个手指进行控制,优化了机械手的驱动和传导。对设计的机械手进行仿真和调试,结果表明,设计的机械手在操作时,连杆机构各个关节运动平稳,能实现预期的圆弧轨迹。同时,在机械手实现握持时,连杆机构的运动也较为平稳,能够满足预期的控制要求。机械手的控制系统能够对5个舵机同时发送控制指令,并监控电路功率,防止运行过载。在软件上,设计的仿人形机械手采用Qt进行开发,使得上位机软件具有良好的可拓展性,从而能够更好地适应未来的硬件更新需求。
[参考文献]
[1] 黄诚.仿人机械手设计及其控制算法研究[D].成都:电子科技大学,2019.
[2] CATALANO M G,GRIOLI G,FARNIOLI E,et al.Adaptive synergies for the design and control of the Pisa/IIT SoftHand[J].The International Journal of Robotics Research,2014,33(5):768-782.
[3] MITSUI K,OZAWA R,KOU T.An under-actuated robotic hand for multiple grasps[C]// IEEE/RSJ Internat-
ional Conference on Intelligent Robots & Systems,2014:5475-5480.
[4] BELTER J T,SEGIL J L,DOLLAR A M,et al.Mechanical design and performance specifications of anthropomorphic prosthetic hands:a review[J].Journal of Rehabilitation Research & Development,2013,50(5):599-618.
[5] 张文增,马献德,黄源文,等.末端强力抓取的欠驱动拟人机器人手[J].清华大学学报(自然科学版),2009,49(2):194-197.
[6] 兰天.多指仿人机器人灵巧手的同步控制研究[D].哈尔滨:哈尔滨工业大学,2010.
[7] 李明达,祖慧鹏,侯岱双,等.仿人机械手的结构设计与现实意义[J].科技视界,2013(34):102.
[8] 聂茹.基于STM32F103C8T6的两轮自平衡车系统设计[J].微型电脑应用,2021,37(1):10-12.
收稿日期:2021-02-24
作者简介:李子扬(1999—),男,江苏滨海人,研究方向:机械电子工程。