游博洋,王險(xiǎn)峰,趙 玲,李 龍,逄萬(wàn)山,黨志強(qiáng)
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
近年來(lái),外骨骼機(jī)器人在動(dòng)力、傳感器、控制[1]/步態(tài)算法等方面逐漸成熟[2],許多研究者設(shè)計(jì)了各式各樣的外骨骼系統(tǒng)并考慮用于生活、醫(yī)療、軍事等領(lǐng)域,分別對(duì)于各關(guān)節(jié)機(jī)械結(jié)構(gòu)[3]、整體電控系統(tǒng)[4-5]、步態(tài)穩(wěn)定性[6-7]、傳感器系統(tǒng)[8-10]以及特殊驅(qū)動(dòng)方式[11-14]等方面進(jìn)行了相應(yīng)的研究。目前,國(guó)內(nèi)外在該領(lǐng)域已較為成熟,但并未普及,其市場(chǎng)缺口極大,且由國(guó)務(wù)院法制辦于2015年7月發(fā)布《殘疾預(yù)防和殘疾人康復(fù)條例(草案)(征求意見(jiàn)稿)》顯示,康復(fù)外骨骼領(lǐng)域也受到政府支持,同時(shí)研究者也對(duì)其在康復(fù)應(yīng)用中的可行性進(jìn)行了相應(yīng)的分析[15]。但由于外骨骼機(jī)械結(jié)構(gòu)、軟硬件系統(tǒng)復(fù)雜等原因,上市公司開(kāi)發(fā)的外骨骼也很難獲得CFDA認(rèn)證。
該文所實(shí)現(xiàn)的外骨骼具有成本較低、易擴(kuò)展、能無(wú)線控制等優(yōu)點(diǎn),具有兩種控制方式可按需切換,可作為一套外骨骼框架在未來(lái)進(jìn)行進(jìn)一步優(yōu)化。且由于足底EMG存在超前ZMP約160 ms的優(yōu)勢(shì)[8],本外骨骼設(shè)計(jì)同樣利用該特性提高外骨骼機(jī)器人行走穩(wěn)定性。
由于外骨骼機(jī)器人整體作為一個(gè)可供人穿戴的機(jī)構(gòu),需要保證使用安全的同時(shí)足夠輕便,且擁有足夠的活動(dòng)范圍和尺寸可調(diào)整,整體應(yīng)允許承受一定的沖擊力。設(shè)計(jì)尺寸參考由國(guó)家技術(shù)監(jiān)督局發(fā)布的《中國(guó)成年人人體尺寸(GB/T 10000-1988)》中的人體數(shù)據(jù),并結(jié)合個(gè)人情況進(jìn)行一定調(diào)整。
如圖1所示,該外骨骼機(jī)器人整體結(jié)構(gòu)主要由腰部整體結(jié)構(gòu)、髖關(guān)節(jié)整體結(jié)構(gòu)、膝關(guān)節(jié)整體結(jié)構(gòu)、踝關(guān)節(jié)整體結(jié)構(gòu)、大腿調(diào)節(jié)機(jī)構(gòu)、小腿調(diào)節(jié)機(jī)構(gòu)和腳掌結(jié)構(gòu)組成。本設(shè)計(jì)中單腿有3個(gè)電機(jī)驅(qū)動(dòng)的關(guān)節(jié)和1個(gè)可自由轉(zhuǎn)動(dòng)的關(guān)節(jié),保證了人肢體運(yùn)動(dòng)時(shí)良好的跟隨性。大腿和小腿處各有一個(gè)由直線導(dǎo)桿、下部固定塊、上部固定塊、可調(diào)固定塊構(gòu)成的伸縮調(diào)整機(jī)構(gòu),使得該外骨骼機(jī)器人能適配不同體型的人。

1.腰部整體結(jié)構(gòu) 2.髖關(guān)節(jié)整體結(jié)構(gòu) 3.膝關(guān)節(jié)整體結(jié)構(gòu)4.踝關(guān)節(jié)整體結(jié)構(gòu) 5.大腿調(diào)節(jié)機(jī)構(gòu) 6.小腿調(diào)節(jié)機(jī)構(gòu) 7.腳掌結(jié)構(gòu)
腰部結(jié)構(gòu)由腰部固定板、擺動(dòng)固定塊、轉(zhuǎn)動(dòng)軸和髖關(guān)節(jié)電機(jī)安裝板組成。腰部固定板嵌入于擺動(dòng)固定塊中,髖關(guān)節(jié)電機(jī)安裝板和擺動(dòng)固定塊之間可自由轉(zhuǎn)動(dòng),兩腿部外骨骼因此可自由向左右兩邊轉(zhuǎn)動(dòng)。
髖關(guān)節(jié)結(jié)構(gòu)由擺動(dòng)固定塊、電機(jī)安裝板、電機(jī)安裝板蓋板、57步進(jìn)電機(jī)、電機(jī)減速機(jī)和大腿上板組成。
髖關(guān)節(jié)在人體或機(jī)器人中均用于連接大腿和腰部,人體的髖關(guān)節(jié)由股骨頭和髖臼構(gòu)成,其能承受人體上半身的重量,可作多軸的運(yùn)動(dòng),但因股骨頭深深嵌入髖臼內(nèi),且有各種韌帶的限制,其運(yùn)動(dòng)幅度遠(yuǎn)遜于肩關(guān)節(jié)。
圖1中,57步進(jìn)電機(jī)與電機(jī)減速機(jī)間由M5螺絲固定,電機(jī)安裝板與電機(jī)安裝板蓋板于兩端柱形沉頭孔通過(guò)M8六角頭螺栓固定。帶編碼器的步進(jìn)電機(jī)通過(guò)齒輪減速機(jī)輸出到大腿上板,可帶動(dòng)整個(gè)大腿前后運(yùn)動(dòng)。由電機(jī)安裝板和電機(jī)安裝蓋板內(nèi)結(jié)構(gòu)構(gòu)成的機(jī)械限位也從結(jié)構(gòu)上有效地保證了使用者的安全。
膝關(guān)節(jié)結(jié)構(gòu)由大腿上板、伸縮調(diào)整機(jī)構(gòu)、膝關(guān)節(jié)上板、膝關(guān)節(jié)連接板和電動(dòng)推桿組成。
人體的膝關(guān)節(jié)是由股骨下端、脛骨上端和髕骨組成的,是人體中最大且最復(fù)雜的關(guān)節(jié),屬于滑車(chē)關(guān)節(jié)。長(zhǎng)期體力勞動(dòng)者和肥胖人群易出現(xiàn)膝關(guān)節(jié)相關(guān)病癥,使用該外骨骼機(jī)器人減輕關(guān)節(jié)負(fù)荷對(duì)該類(lèi)人群有一定幫助。
該膝關(guān)節(jié)設(shè)計(jì)由電動(dòng)推桿作為動(dòng)力,其核心為驅(qū)動(dòng)電機(jī)、減速齒輪、螺桿、螺母等部件組成的直線驅(qū)動(dòng)器。本設(shè)計(jì)中選擇使用合適行程的電動(dòng)推桿,與膝關(guān)節(jié)其他結(jié)構(gòu)形成機(jī)械限位,使膝關(guān)節(jié)轉(zhuǎn)動(dòng)角度為0~90度,且整體設(shè)計(jì)緊湊。伸縮調(diào)整機(jī)構(gòu)由直線導(dǎo)桿和可調(diào)固定塊組成,通過(guò)更換固定塊實(shí)現(xiàn)對(duì)不同體型人群的適配。
踝關(guān)節(jié)及腳掌結(jié)構(gòu)由踝關(guān)節(jié)上板、57步進(jìn)電機(jī)、電機(jī)減速機(jī)和足部裝配體(腳板、腳板安裝板、鞋子固定環(huán)、腳部電機(jī)支架)組成。
人體踝關(guān)節(jié)由脛骨、腓骨下端關(guān)節(jié)面以及距骨滑車(chē)構(gòu)成。從足與小腿間角度不同可分為背屈和跖屈,兩者由足與小腿間的角度區(qū)分。背屈時(shí),足尖朝上,而足部與小腿間的角度小于90度;跖屈時(shí),足尖向下,足與小腿間的角度大于90度。由于跖屈時(shí)踝關(guān)節(jié)松動(dòng)容易發(fā)生扭傷,若可使用外骨骼調(diào)整行走時(shí)腳平面仰角,則有可能降低踝關(guān)節(jié)扭傷的可能。
踝關(guān)節(jié)部分驅(qū)動(dòng)使用57步進(jìn)電機(jī),腳板上即為腳底壓力傳感器陣列,使用者可赤腳或穿鞋將足放上腳板,然后使用鞋子固定環(huán)將足部固定。電機(jī)固定架上有限位開(kāi)關(guān),可在超過(guò)限位時(shí)斷電保證用戶安全。
外骨骼系統(tǒng)設(shè)計(jì)中分為感受器、效應(yīng)器和核心控制器三部分。各部分都有獨(dú)立電池并由控制器執(zhí)行各部分電源管理。
本外骨骼硬件設(shè)計(jì)中,主要由感受器采集使用者數(shù)據(jù),核心控制器負(fù)責(zé)復(fù)雜運(yùn)算,效應(yīng)器負(fù)責(zé)執(zhí)行控制信號(hào)。各部分均可通過(guò)有線或無(wú)線兩種連接方式進(jìn)行通信,且電源獨(dú)立各部分可分開(kāi)工作。
感受器部分為下肢感受器單元兩種感受器單元。如圖2所示,感受器單元包括stm32f103rct6局部控制器、電源管理模塊、肌電傳感器陣列[16]、各關(guān)節(jié)電位器陣列、無(wú)線通信模塊和壓力傳感器陣列。圖2給出了該感受器的硬件原理框圖,硬件可由所述結(jié)構(gòu)實(shí)現(xiàn)所需功能。

圖2 感受器硬件原理框圖
電池經(jīng)過(guò)電源管理電路后分別接入電源共享接口、穩(wěn)壓電源電路,并與單片機(jī)通信發(fā)送電源信息,該外骨骼系統(tǒng)電網(wǎng)可通過(guò)電源共享接口并入。穩(wěn)壓電源獲得的5 V、3.3 V電壓分別給控制器和各傳感器供電。EMG肌電傳感器通過(guò)差分電極采集表面肌電信號(hào)后放大、濾波以及A/D轉(zhuǎn)換獲得肌電信號(hào)發(fā)送給單片機(jī);HX711為一款國(guó)產(chǎn)的兩路24位可選增益的A/D轉(zhuǎn)換器,內(nèi)部集成了穩(wěn)壓電源、片內(nèi)時(shí)鐘振蕩器等電路,具有集成度高、抗干擾性強(qiáng)的優(yōu)點(diǎn)。該ADC芯片典型工作電流小于1.7 mA,斷電電流小于1 μA,工作電壓范圍為2.6 V~5.5 V,工作溫度范圍為-20℃~+85 ℃。本設(shè)計(jì)中設(shè)置增益為128,使用80 Hz輸出數(shù)據(jù)速率,使用電橋電路接入FSR壓力傳感器,控制器將定時(shí)請(qǐng)求ADC數(shù)值并換算為壓力值;WH148 B10K電位器為一款長(zhǎng)壽命可調(diào)電位器,本設(shè)計(jì)選用10 kΩ款,其三個(gè)引出端分別接入GND、3V3和stm32的ADC端口,使用內(nèi)置12位ADC進(jìn)行采樣換算關(guān)節(jié)角度;nRF24L01無(wú)線收發(fā)器是一款由NORDIC公司生產(chǎn)的單片無(wú)線收發(fā)器芯片,可工作在2.4 GHz~2.5 GHz,其工作溫度為-40 ℃~+80 ℃,擁有極低的電流消耗,在發(fā)射功率為0 dBm時(shí),發(fā)射和接收模式中僅消耗約12 mA,其無(wú)線數(shù)據(jù)傳輸速率支持1 Mbps/2 Mbps,并擁有126個(gè)通訊通道,6個(gè)數(shù)據(jù)通道;CAN總線作為國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,其高性能和可靠性得到了業(yè)界廣泛認(rèn)同,故本設(shè)計(jì)選擇CAN作為有線通信方式。感受器中使用ST公司的STM32F103RCT6單片機(jī)作為控制器,該MCU具有一個(gè)32位ARM Cortex-M3架構(gòu)RISC處理器,具有72 MHz的較高速度,豐富的外設(shè)、較強(qiáng)的處理能力和256KB ROM/48KB RAM且集成CAN控制器使其被選擇成為本設(shè)計(jì)中感受器和效應(yīng)器的控制核心。由于該芯片集成了CAN控制器,為實(shí)現(xiàn)CAN總線故還需要一片CAN收發(fā)器,而SN65HVD230為T(mén)I公司生產(chǎn)的3.3 V CAN收發(fā)器,使用該收發(fā)器的CAN總線具有較高通訊速率,最高可達(dá)1 Mb/s,抗干擾能力較好且具有高可靠性。該收發(fā)器可用于較高干擾環(huán)境下,工作在低電流等待模式時(shí),其典型電流僅有370微安。SN65HVD230 CAN收發(fā)器在這里將實(shí)現(xiàn)二進(jìn)制碼流和差分信號(hào)的轉(zhuǎn)換。各個(gè)傳感器采樣后通過(guò)stm32f103rct6微控制器進(jìn)行匯總,并根據(jù)不同模式通過(guò)無(wú)線收發(fā)器或微控制器中集成的CAN總線與效應(yīng)器或高性能核心控制器通信。
效應(yīng)器部分為下肢效應(yīng)器單元兩種效應(yīng)器單元。圖3中可以看到效應(yīng)器單元包括stm32f103rct6局部控制器、電源管理模塊、電機(jī)及其編碼器、無(wú)線通信模塊和壓力傳感器陣列。

圖3 效應(yīng)器硬件原理框圖
效應(yīng)器硬件結(jié)構(gòu)與感受器大體相同,主要區(qū)別在于效應(yīng)器中沒(méi)有EMG肌電傳感器和用于測(cè)量關(guān)節(jié)角度的電位器,但相應(yīng)增加了外骨骼所需要的全橋有刷直流電機(jī)驅(qū)動(dòng)器、編碼器電機(jī)、閉環(huán)步進(jìn)電機(jī)驅(qū)動(dòng)器、57步進(jìn)電機(jī)以及PID電流環(huán)所需的ACS712霍爾電流傳感器。
本外骨骼機(jī)器人設(shè)計(jì)中使用了帶編碼器的電動(dòng)推桿,其核心動(dòng)力由一個(gè)有刷直流電機(jī)提供。該電機(jī)使用的編碼器為AB相增量式正交霍爾編碼器,由兩個(gè)方波脈沖相位可解碼得到電機(jī)位置變化方向和距離。全橋電機(jī)驅(qū)動(dòng)器使用HIP4082IBZ全橋式功率驅(qū)動(dòng)芯片,具有80V/1.25A峰值驅(qū)動(dòng)能力,具有可程控的死區(qū)時(shí)間,其控制范圍為0.1 μs~4.5 μs,使用時(shí)驅(qū)動(dòng)器的偏置電壓由自舉和電荷泵來(lái)保證,可用于UPS系統(tǒng)、直流電機(jī)控制、隔離型全橋式開(kāi)關(guān)穩(wěn)壓電源等領(lǐng)域。功率場(chǎng)效應(yīng)管選擇N型溝道的IRF3205,其Vds典型值為55 V,Id持續(xù)可達(dá)110 A,具有極低的導(dǎo)通阻抗,高效可靠且應(yīng)用范圍超廣;電流采樣部分選擇Allegro MicroSystems公司的ACS712霍爾電流傳感器,使用時(shí)將其串聯(lián)于電路。該電流傳感器外圍電路簡(jiǎn)單,可支持80 kHz~120 kHz的帶寬,擁有μs級(jí)響應(yīng)速度,精度在-40℃~+85℃時(shí)小于2%且可測(cè)交直流電流;外骨骼髖關(guān)節(jié)和踝關(guān)節(jié)部分選擇使用57步進(jìn)電機(jī),驅(qū)動(dòng)器將直接選擇配套的成品閉環(huán)步進(jìn)電機(jī)驅(qū)動(dòng)器。該步進(jìn)電機(jī)驅(qū)動(dòng)器支持寬電壓輸入,用戶可使用交流或直流24 V~60 V供電,信號(hào)輸入使用光耦隔離,邏輯輸入電流7 mA~16 mA,性能優(yōu)越便于控制故選擇使用。
如圖4所示,核心控制器包括OrangePi PC ARM控制板、MCP2515 CAN控制器、電源部分、九軸姿態(tài)傳感器、無(wú)線通信模塊五個(gè)部分。

圖4 核心控制器硬件原理框圖
核心控制器選擇使用開(kāi)源的OrangePi PC ARM開(kāi)發(fā)板作為控制核心。該嵌入式控制板尺寸為85 mm*55 mm,可運(yùn)行常見(jiàn)的Android、Ubuntu、Debian系統(tǒng)。其使用了全志H3的SoC,擁有1 GB DDR3運(yùn)行內(nèi)存。全志H3擁有四核ARM Cortex-A7處理器,并含有USB、UART和SPI等外設(shè)可供使用;MPU9250為九軸姿態(tài)傳感器,其內(nèi)部除集成了基本所需的3軸陀螺儀(角加速度計(jì))、3軸加速度計(jì)和3軸磁力計(jì)(電子羅盤(pán))外,還集成了數(shù)字運(yùn)動(dòng)處理器(DMP),通信使用傳輸速率可達(dá)400 kHz/s的IIC總線。其可編程陀螺儀最大可支持±2 000°/秒(dps),可編程加速度計(jì)最大可支持±16 g,以及磁力計(jì)最大可支持4 800 μT;由于全志H3內(nèi)部及OrangePi PC開(kāi)發(fā)板上未集成CAN控制器和收發(fā)器,故選擇使用分立式SPI接口的CAN控制器MCP2515和CAN收發(fā)器SN65HVD230。MCP2515是由Microchip公司生產(chǎn)的一款CAN控制器。該CAN控制器完全支持CAN V2.0B技術(shù)規(guī)范,通訊速率為1 Mb/s。其工作電壓為2.7 V~5.5 V,典型工作電流為5 mA,休眠模式的典型待機(jī)電流為1 μA。且由于其工業(yè)級(jí)(I)工作溫度范圍較寬,為-40 ℃~+85 ℃,作為CAN控制器將實(shí)現(xiàn)由核心控制器編程要求的成幀處理、CRC校驗(yàn)、應(yīng)答檢測(cè)、硬件過(guò)濾等功能。
整個(gè)外骨骼系統(tǒng)硬件分為感受器、效應(yīng)器和核心控制器三部分,因此對(duì)應(yīng)的軟件開(kāi)發(fā)也包含這三部分。其中包含了模擬分時(shí)操作系統(tǒng)、數(shù)據(jù)通信協(xié)議、ZMP算法、神經(jīng)網(wǎng)絡(luò)PID這4個(gè)關(guān)鍵技術(shù)點(diǎn)
外骨骼系統(tǒng)分為主動(dòng)和被動(dòng)兩種控制模式(見(jiàn)圖5),且被動(dòng)模式可無(wú)線遙控控制。主動(dòng)模式中,外骨骼機(jī)器人將通過(guò)傳感器實(shí)時(shí)采集整體姿態(tài)、關(guān)節(jié)角度等信息,使用內(nèi)置步態(tài)算法控制外骨骼;被動(dòng)模式中,外骨骼感受器單元將采集人體關(guān)節(jié)角度,同步控制外骨骼機(jī)器人,由于整體通信指令通用,在實(shí)現(xiàn)無(wú)線通信模塊后即可無(wú)線控制外骨骼機(jī)器人。

圖5 外骨骼系統(tǒng)主動(dòng)-被動(dòng)模式軟件框圖
感受器單元采集傳感器數(shù)據(jù)后,若當(dāng)前狀態(tài)為主動(dòng)模式,則接收核心控制器數(shù)據(jù)請(qǐng)求指令,將數(shù)據(jù)傳回;若為被動(dòng)模式,則直接與效應(yīng)器通信,發(fā)送同步控制指令。在核心控制器單元無(wú)效的情況下,模式切換可由效應(yīng)器單元上的應(yīng)急主動(dòng)/被動(dòng)切換開(kāi)關(guān)和有線/無(wú)線切換開(kāi)關(guān)實(shí)現(xiàn)。
效應(yīng)器單元在主動(dòng)模式時(shí),一方面采集傳感器數(shù)據(jù)保持外骨骼目標(biāo)角度并傳回感受器核心控制器單元,一方面接收?qǐng)?zhí)行核心控制器的控制指令;被動(dòng)模式時(shí)則直接接收感受器傳來(lái)的控制指令。
核心控制器在主動(dòng)模式下,通過(guò)向效應(yīng)器和感受器請(qǐng)求傳感器數(shù)據(jù),通過(guò)步態(tài)算法獲取下一步運(yùn)動(dòng)狀態(tài),然后向效應(yīng)器發(fā)送指令;切換到被動(dòng)模式后,核心控制器進(jìn)入低功耗休眠狀態(tài),只接收喚醒指令和模式切換請(qǐng)求。正常情況下,模式切換可由核心控制器單元上的應(yīng)急主動(dòng)/被動(dòng)切換開(kāi)關(guān)和有線/無(wú)線切換開(kāi)關(guān)實(shí)現(xiàn)。
感受器和效應(yīng)器中使用的控制板為STM32F103RCT6,其支持使用面向?qū)ο蟮木幊陶Z(yǔ)言C++進(jìn)行軟件開(kāi)發(fā)。在編寫(xiě)過(guò)程中各部分硬件被抽象成類(lèi),運(yùn)用操作系統(tǒng)的思想,程序結(jié)構(gòu)模擬分時(shí)操作系統(tǒng),實(shí)現(xiàn)了輕量級(jí)的程序調(diào)控。
3.2.1 模擬分時(shí)操作系統(tǒng)
本設(shè)計(jì)中模擬分時(shí)操作系統(tǒng)的主要程序框圖如圖6所示。模擬分時(shí)操作系統(tǒng)在bootloader啟動(dòng)后開(kāi)始初始化操作系統(tǒng)所需數(shù)據(jù)結(jié)構(gòu),如內(nèi)存分配表、任務(wù)內(nèi)存指針、系統(tǒng)時(shí)間、電源信息表、系統(tǒng)任務(wù)表、用戶任務(wù)表。完成數(shù)據(jù)結(jié)構(gòu)初始化后開(kāi)始進(jìn)行定時(shí)器中斷配置,初始化系統(tǒng)時(shí)鐘并啟動(dòng),在系統(tǒng)啟動(dòng)后用戶可根據(jù)靜態(tài)結(jié)構(gòu)體系統(tǒng)時(shí)間來(lái)獲取微秒至年的時(shí)間,并可選編譯實(shí)時(shí)時(shí)鐘芯片DS1603和萬(wàn)年歷類(lèi)。隨后開(kāi)始初始化系統(tǒng)對(duì)象,并執(zhí)行相應(yīng)構(gòu)造函數(shù)和配置、啟動(dòng)函數(shù)。該模擬分時(shí)操作系統(tǒng)至此完成基本的初始化,并在這里暴露了一個(gè)函數(shù)接口可供用戶進(jìn)行一些硬件、對(duì)象的初始化操作。用戶設(shè)置程序結(jié)束后,系統(tǒng)開(kāi)始裝載各個(gè)非阻塞的用戶時(shí)間片,對(duì)于可能阻塞的延時(shí)函數(shù),本操作系統(tǒng)進(jìn)行了單獨(dú)的封裝,可在阻塞時(shí)運(yùn)行其他時(shí)間片,保證了系統(tǒng)整體的正常運(yùn)行。至此系統(tǒng)完成所有初始化,進(jìn)入時(shí)間片輪轉(zhuǎn)。系統(tǒng)會(huì)首先運(yùn)行系統(tǒng)進(jìn)程時(shí)間片,如進(jìn)行系統(tǒng)時(shí)間刷新,然后執(zhí)行調(diào)度程序,調(diào)整用戶進(jìn)程順序和時(shí)間節(jié)點(diǎn)后運(yùn)行用戶進(jìn)程時(shí)間片,隨后完成本次時(shí)間片輪轉(zhuǎn)。

圖6 模擬分時(shí)操作系統(tǒng)的程序框圖
3.2.2 數(shù)據(jù)通信協(xié)議
數(shù)據(jù)通信協(xié)議(data communication protocols)是為保證數(shù)據(jù)通信雙方能有效可靠的通信而進(jìn)行的一系列規(guī)定。由于NRF24L01無(wú)線2.4 GHz通信中容易因距離、環(huán)境電磁波干擾和障礙物阻礙等造成丟包和數(shù)據(jù)出現(xiàn)錯(cuò)誤,以及CAN報(bào)文在高負(fù)載時(shí)可能出現(xiàn)丟包的情況,本設(shè)計(jì)中有線CAN通信和無(wú)線2.4 GHz通信均使用該通信協(xié)議保證數(shù)據(jù)指令無(wú)誤,且擁有不同的通信程序?qū)ο蟊WC不同數(shù)據(jù)連接互不干擾。程序流程如圖7所示。通信時(shí)間片開(kāi)始后,程序根據(jù)協(xié)議對(duì)數(shù)據(jù)幀結(jié)構(gòu)(見(jiàn)表1)定義進(jìn)行對(duì)幀頭的檢測(cè),作為獲取后續(xù)數(shù)據(jù)的入口。

表1 數(shù)據(jù)幀結(jié)構(gòu)
在接收到無(wú)關(guān)數(shù)據(jù)后會(huì)直接拋棄,而在檢測(cè)到幀頭后,程序準(zhǔn)備獲取指令長(zhǎng)度n。協(xié)議規(guī)定,當(dāng)?shù)却邮諗?shù)據(jù)超過(guò)一定時(shí)間后,即該幀視為無(wú)效幀,直接結(jié)束本次通信時(shí)間片。若在有效時(shí)間內(nèi)獲取指令長(zhǎng)度,則將后續(xù)n+2讀取到內(nèi)存緩沖區(qū)。完成讀取后將數(shù)據(jù)和指令類(lèi)型進(jìn)行累加和校驗(yàn)(Checksum算法),判斷有效后檢測(cè)幀結(jié)尾,若均有效則將指令和指令類(lèi)型打包到指令數(shù)據(jù)結(jié)構(gòu)提交各操作系統(tǒng)進(jìn)行下一步操作。

圖7 數(shù)據(jù)通信時(shí)間片程序流程
系統(tǒng)獲取指令后,將指令數(shù)據(jù)結(jié)構(gòu)傳遞給指令響應(yīng)程序,該程序?qū)?duì)指令進(jìn)行相應(yīng)的解析和執(zhí)行,程序流程如圖8所示。程序?qū)⑼ㄟ^(guò)對(duì)指令結(jié)構(gòu)體中的指令類(lèi)型和列表指令類(lèi)型進(jìn)行對(duì)比,確定指令類(lèi)型相同后通過(guò)函數(shù)指針執(zhí)行相應(yīng)程序。

圖8 指令響應(yīng)程序流程
使用stm32f103rct6、orangepi嵌入式開(kāi)發(fā)板、無(wú)線通信模塊以及相關(guān)的傳感器接口電路,設(shè)計(jì)實(shí)現(xiàn)了外骨骼系統(tǒng)。該外骨骼系統(tǒng)可根據(jù)腳底壓力和關(guān)節(jié)角度,主動(dòng)引導(dǎo)人步態(tài)實(shí)現(xiàn)行走,也可以被動(dòng)跟隨人肢體運(yùn)動(dòng),且支持無(wú)線遙控外骨骼肢體,有效提高了外骨骼機(jī)器人的易用性和實(shí)用性,并使用機(jī)械結(jié)構(gòu)限位、限位開(kāi)光強(qiáng)制關(guān)斷和軟件限位三重保護(hù),增強(qiáng)了外骨骼機(jī)器人安全性,可作為基礎(chǔ)外骨骼機(jī)器人框架,具有較好的應(yīng)用價(jià)值。