李子揚 袁夢琦 張嘉洋 王鐘慧 朱炫



摘要:對一種手指為單自由度結構的仿人形機械手進行了研究。在此基礎上,設計了機械手的機械結構,進行了手指運動學分析與仿真;以單片機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—),男,江蘇濱海人,研究方向:機械電子工程。