杜金浩, 張興瑞,趙亞鳳
(東北林業(yè)大學(xué) 機(jī)電工程學(xué)院,黑龍江 哈爾濱 150040)
隨著科學(xué)技術(shù)的不斷進(jìn)步,機(jī)器人學(xué)科越來越具有強(qiáng)大的生命力,并在某種程度上已經(jīng)代表信息技術(shù)、自動化技術(shù)、系統(tǒng)集成技術(shù)等的最新發(fā)展[1]。本文介紹的同步機(jī)械手臂,通過四個絕對值旋轉(zhuǎn)編碼器采集人類手臂的動作信息,包括肩關(guān)節(jié),肘關(guān)節(jié),腕關(guān)節(jié)和指關(guān)節(jié)四個自由度,并將其量化為一組數(shù)據(jù)通過NRF24L01 無線模塊發(fā)射出去,接收端根據(jù)收到的數(shù)據(jù)控制四個位于機(jī)械臂上的的舵機(jī),并使用編碼器對舵機(jī)關(guān)節(jié)角度進(jìn)行檢測,通過PID 控制算法精準(zhǔn)控制舵機(jī)姿態(tài),從而達(dá)到完全復(fù)制手臂動作的目的。同時該裝置輔以電機(jī),通過按鍵無線控制裝置的整體移動。
相比于傳統(tǒng)的機(jī)械手臂,本文介紹的裝置由于采用了更加直觀的控制方法,降低了使用者的學(xué)習(xí)成本,減少了誤操作的幾率,所以更有利于向公眾普及。從而在幫助下肢不便者拓展距離限制和保護(hù)高危作業(yè)者人身安全等方面具有積極作用[2]。
發(fā)射機(jī)需要完成對人體動作進(jìn)行檢測,對電機(jī)發(fā)出控制指令等工作。該部分由角度檢測模塊,移動控制模塊,電源模塊,無線模塊構(gòu)成。
角度檢測電路采用4 個絕對值旋轉(zhuǎn)編碼器TRDNA1024NW 對人體動作進(jìn)行準(zhǔn)確的檢測,1024 線(10bit)格雷碼輸出絕對編碼器,本設(shè)計為使編碼器與舵機(jī)精度相匹配,所以舍棄后兩位采用8 位數(shù)據(jù),8 位數(shù)據(jù)可將精度控制在1.4°/位,可以滿足對肢體動作的檢測要求。
圖1 發(fā)射機(jī)組成框圖Fig.1 Rransmitterblock diagram
電源模塊采用11.1V 航模電池,保證輸出電流符合要求。電路如圖2 所示。
圖2 電源模塊Fig.2 Power module
接收機(jī)是整個系統(tǒng)的執(zhí)行機(jī)構(gòu),主要由機(jī)械手臂模塊,電機(jī)模塊,角度檢測模塊和無線接收模塊構(gòu)成。
仿真手臂由四個大扭力舵機(jī)構(gòu)成,本設(shè)計采用MG996R 舵機(jī)。MG996R 舵機(jī)拉力可達(dá)12kg/cm(6V),反應(yīng)速度約為0.17sec/60 度(4.8V無 負(fù) 載)0.14sec/60 度(6V 無負(fù)載)?;究蓾M足設(shè)計要求。由于STM32 輸出信號峰值電壓為3.3V,無法滿足舵機(jī)的驅(qū)動要求,并且為了保護(hù)單片機(jī),防止電流倒灌。所以采用MOS 管進(jìn)行反向隔離升壓,保證舵機(jī)工作穩(wěn)定,電路如圖4 所示。
電機(jī)模塊采用兩輪獨(dú)立驅(qū)動機(jī)構(gòu),由兩個高精度驅(qū)動輪和一個隨動輪構(gòu)成。此裝置由滾動代替滑動摩擦,效率較高適合在平坦的路面上移動,定位精確,而且重量較輕,制作簡單[4]。左右兩個驅(qū)動輪分別由兩個直流電機(jī)獨(dú)立驅(qū)動,兩個驅(qū)動輪的速度差值決定機(jī)械手臂的前進(jìn)方向,通過對兩個電機(jī)施加不同的速度控制量可實(shí)現(xiàn)任意方向的運(yùn)動,屬于差分驅(qū)動方式。
角度檢測模塊采用與發(fā)射機(jī)類似的硬件設(shè)計,均采用絕對值旋轉(zhuǎn)編碼器,有所不同的是這里檢測的是實(shí)際執(zhí)行角度。通過該角度值為PID 控制提供樣本。
由于本設(shè)計需要傳輸?shù)臄?shù)據(jù)量比較大,數(shù)據(jù)傳輸速度要求極快,而且需要防止數(shù)據(jù)間的互相干擾。所以這里采用兩個獨(dú)立的無線模塊NRF24L01。一個無線模塊用來傳輸手臂動作信息,另一個用來傳輸整體移動的信息。
60年砥礪奮進(jìn),60年薪火相傳,中國氮肥行業(yè)從無到有,由弱至強(qiáng),走出了一條具有中國特色的發(fā)展之路。而在不斷地前行中,中國氮肥行業(yè)始終奮發(fā)有為,以科技創(chuàng)新為驅(qū)動,加速向先進(jìn)制造業(yè)邁進(jìn)。
圖3 接收機(jī)組成框圖Fig.3 Receiverblock diagram
圖4 舵機(jī)驅(qū)動電路Fig.4 Drive circuit for steering engine
圖5 電機(jī)驅(qū)動電路Fig.5 Drive circuit for electrical machinery
發(fā)射機(jī)主要用于采集手臂數(shù)據(jù)和移動控制數(shù)據(jù),并將其經(jīng)無線模塊發(fā)射出去,所以發(fā)射機(jī)的軟件設(shè)計主要包括對角度的檢測,對鍵盤的檢測。
對角度檢測需要采集編碼器數(shù)據(jù),由于角度編碼器為避免電平跳變錯誤,故采用格雷碼輸出。所以我們在實(shí)際讀取數(shù)據(jù)的過程中,需要使格雷碼轉(zhuǎn)換成二進(jìn)制再進(jìn)行處理。采用如下方式進(jìn)行轉(zhuǎn)換:
unsigned char y=x;
while (x>>=1)
y^=x;
return y;
即可實(shí)現(xiàn)從格雷碼轉(zhuǎn)換成二進(jìn)制,將此二進(jìn)制保存,在四個編碼器均檢測完成后形成一個數(shù)組,即為當(dāng)前肢體動作的量化描述。
接收機(jī)主要根據(jù)無線模塊接收到的數(shù)據(jù)使得舵機(jī)和電機(jī)做出相應(yīng)反應(yīng),達(dá)到模仿和移動的目的,并且可以根據(jù)反饋機(jī)制進(jìn)行自我微調(diào)。所以接收機(jī)的軟件設(shè)計主要包括舵機(jī)控制程序,電機(jī)控制程序和PID 控制程序[5]。
舵機(jī)的控制信號為一個周期為20ms,脈沖寬度為0.5ms~2.5ms 的PWM 方波。該信號采用STM32 內(nèi)部定時器產(chǎn)生,它的脈沖寬度調(diào)制模式可以產(chǎn)生一個由TIMx_ARR 寄存器確定頻率、由TIMx_CCRx 寄存器確定占空比的信號。由于需產(chǎn)生50Hz 的信號,所以需要對72MHz 的時鐘頻率先進(jìn)行1440 的預(yù)分頻和1000 的分頻。配置程序如下所示:
TIM_TimeBaseStructure.TIM_Period = 999;//當(dāng) 定 時器從0 計數(shù)到999,即為1000 次,為一個定時周期。
TIM_TimeBaseStructure.TIM_Prescaler = 1439;//設(shè)置預(yù)分頻: 1440。
由于需要實(shí)時改變PWM 波的占空比,即需要實(shí)時改變TIMx_CCRx 寄存器的值,所以這里采用中斷方式:每10 個周期(即0.2s)進(jìn)一次中斷,改變一次TIMx_CCRx的值。這樣就實(shí)現(xiàn)了每0.2s 改變一次占空比,達(dá)到快速動作的目的。
TIMx_CCRx 的值由所接收到的手臂動作數(shù)據(jù)決定,接收到的數(shù)據(jù)范圍為0~255,將接受到的數(shù)據(jù)經(jīng)過一定的線性轉(zhuǎn)換,即可得到應(yīng)向TIMx_CCRx 寄存器里寫入的值。但是應(yīng)為機(jī)械結(jié)構(gòu)的原因,每一個舵機(jī)都應(yīng)該有一個限制,超過這個限制的話就會造成舵機(jī)卡機(jī),造成舵機(jī)不可挽回的損壞,所以在進(jìn)行線性變換的同時,還需多舵機(jī)的占空比進(jìn)行限制,主要程序如下:
在速度控制程序中本設(shè)計采取兩套機(jī)制共同控制速度,一是采用超聲波傳感器進(jìn)行避障,二是采用碼盤檢測速度大小,設(shè)定閾值,采取相應(yīng)的減速操作。根據(jù)時間差距測法計算出發(fā)射點(diǎn)距障礙物的距離s。當(dāng)距離低于某一數(shù)值時,說明即將撞到某物,采取停車操作。反之說明周圍無障礙。通過檢測碼盤脈沖頻率判斷速度,由于速度較慢且精度要求不高,所以這里采用線性調(diào)整即可。
本裝置通過PID 反饋控制對舵機(jī)角度進(jìn)行微調(diào),使用編碼器檢測出的角度作為實(shí)際值,向無線模塊接收到的理想值逼近。比例部分的引入是為了及時成比例地反應(yīng)控制系統(tǒng)的偏差,對舵機(jī)做主要調(diào)整。積分作用的引入,主要是為了保證被控量在穩(wěn)態(tài)時對設(shè)定值的無靜差跟蹤,微分作用的引入主要是為了改善閉環(huán)系統(tǒng)的穩(wěn)定性和動態(tài)響應(yīng)的速度[6],通過PID 控制,更加準(zhǔn)確快速的完成響應(yīng),提高了系統(tǒng)的時效性。
電機(jī)控制程序主要做判斷工作,根據(jù)無線通信端接收的指令,L298N 同時驅(qū)動2 路直流電機(jī)。以其中一路為例,當(dāng)IN1 和IN2 為00 或11 時,電機(jī)處于制動狀態(tài),阻止電機(jī)轉(zhuǎn)動: 當(dāng)IN1,IN2為01 時,電機(jī)正轉(zhuǎn);當(dāng)IN1,IN2 為10 時電機(jī)反轉(zhuǎn)。為掌控接收機(jī)運(yùn)動速度,對使能端輸出PWM 脈沖,不同的占空比,實(shí)現(xiàn)不同的速度調(diào)節(jié)。
圖6 程序流程圖Fig.6 Program flow diagram
本設(shè)計靠無線傳輸數(shù)據(jù),所以傳輸距離決定著設(shè)計的好壞。但因電磁波,電磁場,建筑物,人體影響等多種環(huán)境影響都會對傳輸距離產(chǎn)生一定的影響,導(dǎo)致實(shí)驗數(shù)據(jù)因?qū)嶋H操作環(huán)境的不同而有不同的傳輸效率。
在空曠場地,最遠(yuǎn)通信距離達(dá)到60m,在有建筑物阻隔的時候,最遠(yuǎn)傳輸距離縮減為40~50m 之間。
在接收機(jī)與發(fā)射機(jī)相距一米的情況下我們對整機(jī)進(jìn)行了靈敏度測試,實(shí)驗數(shù)據(jù)如表1 所示。舵機(jī)靈敏度約<0.1s(從發(fā)射機(jī)發(fā)出信號到接收機(jī)做出相應(yīng)的反應(yīng))。
表1 誤差測試Tab.1 Error test
大臂受重力影響所需扭力最大,其誤差一直較大,相比較而言其它部位舵機(jī)因其位置關(guān)系誤差有不同的變化。手指部分的誤差主要由機(jī)械結(jié)構(gòu)造成,其硬件結(jié)構(gòu)中使用了非精密齒輪,造成抓取過程誤差有一定變大。
利用STM32 微控制器,編碼器,NRF24L01 通信模塊等,實(shí)現(xiàn)了一種具有同步功能的無線同步機(jī)械手臂。該設(shè)計不僅具有同步性,使得殘疾人在取物時能夠根據(jù)自己的意圖而且操作擺脫了傳統(tǒng)中線路的限制,用無線收發(fā)數(shù)據(jù),方便使用者遠(yuǎn)程操控。無線同步手臂在為殘疾人提供方便的同時,也可以為健全人們提供一種全新的服務(wù),更好的享受生活。
[1] 蔡自興.21 世紀(jì)機(jī)器人技術(shù)的發(fā)展趨勢[J].南京化工大學(xué)學(xué)報,2000,4.
[2] 蔣新松.未來機(jī)器人技術(shù)的發(fā)展方向[J].機(jī)器人技術(shù)與應(yīng)用,1997,2.
[3] 樓然苗,李廣飛.51 系列單片機(jī)設(shè)計實(shí)例[M].北京:北京航空航天大學(xué)出版社,2003.
[4] 宋永端.移動機(jī)器人及其自動化技術(shù)[M].北京:機(jī)械工業(yè)出版社,2012.
[5] 徐德,鄒偉.室內(nèi)移動式服務(wù)機(jī)器人的感知、定位與控制[M].北京:科學(xué)出版社,2008.
[6] 樊國平.智能PID 控制系統(tǒng)的設(shè)計與研究[D].浙江:浙江工業(yè)大學(xué),2005.