版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要隨著人類社會的進步,人類對自然界的探索范圍的不斷擴大,人們發(fā)明了各種各樣的機器人來替代人類去完成一些相對危險的工作或難以解決的問題。其中機器人常用的遠距離移動方式有三種,分別是輪式、履帶式、足式,并且各有其優(yōu)缺點。(1)輪式機器人在平坦的道路上可以快速行走,但在相對泥濘與崎嶇的復(fù)雜地形卻難以行進,且其轉(zhuǎn)彎半徑大,轉(zhuǎn)彎效率差,靈活性較差。(2)履帶式機器人相比于傳統(tǒng)輪式機器人,能夠在泥濘與崎嶇的復(fù)雜地形行進,還可以原地轉(zhuǎn)彎,但當其遇到落差較大的障礙時卻難以越過。(3)足式機器人可以適應(yīng)多種復(fù)雜地形,尤其是在其跨越障礙方面相對于輪式機器人和履帶式機器人有很大的優(yōu)勢。但足式機器人行進速度相對較低,步態(tài)行進的穩(wěn)定性與環(huán)境有很大的關(guān)系,控制難度大,比較容易側(cè)翻,穩(wěn)定性能相對較差。本設(shè)計一方面根據(jù)各種類型機器人的優(yōu)缺點取長補短,將輪式機器人與足式機器人結(jié)合起來制造出能夠適應(yīng)多種地形并且可靈活變換的機器人。這種機器人可根據(jù)不同地形靈活變換成不同的形態(tài),取長補短將不同種類的機器人優(yōu)勢發(fā)揮出來。例如:在平坦的地形使用輪式形態(tài)行進,行進速度快,能源消耗相比較足式機器人要少。但在復(fù)雜地形可以使用足式形態(tài)行進,靈活性高且越野能力強。另一方面除了配置基礎(chǔ)的上位機控制方式之外還搭配了手部識別的視覺控制模式,實現(xiàn)了通過手部的動作變化從而控制機器人的運動方式,提高了本設(shè)計的操作多樣性。關(guān)鍵詞:足輪結(jié)合;數(shù)據(jù)傳輸;上位機;人機交互FootwheeltwotyperobotbasedonvisioncontrolHardwarecircuitandcontrolsystemdesignAbstractWiththeprogressofhumansocietyandtheexpansionofhuman'sexplorationofthenaturalworld,peoplehaveinventedallkindsofrobotstoreplacehumanbeingstocompletesomerelativelydangerousworkordifficultproblems.Amongthem,therearethreekindsoflong-distancemovingmethodscommonlyusedinrobots,whicharewheeltype,trackedtypeandfoottype,andeachhasitsadvantagesanddisadvantages.1.Thewheeledrobotcanwalkquicklyonaflatroad,butitisdifficulttotravelinothermuddyandruggedcomplexterrain,withalargeturningradius,poorturningefficiencyandpoorflexibility.2.Comparedwithtraditionalwheeledrobots,trackedrobotscantravelinmuddy,roughandcomplexterrainandturnonthespot,butitisdifficulttocrosswhenitencountersobstacleswithalargedrop.3.Foot-typerobotcanadapttoavarietyofcomplexterrain,especiallyithasgreatadvantagesoverwheeledrobotandtrackedrobotincrossingobstacles.However,thewalkingspeedisrelativelylow,andthestabilityofwalkinghasagreatrelationshipwiththeenvironment.Itisdifficulttocontrol,easytorollover,andthestabilityisrelativelypoor.Ontheonehand,accordingtotheadvantagesanddisadvantagesofvarioustypesofrobots,thisdesignwillcombinethewheeledrobotandfootrobottoproducearobotthatcanadapttoavarietyofterrainsandflexiblytransform.Thiskindofrobotcanbeflexiblytransformedintodifferentformsaccordingtodifferentterrainstolearnfromeachotherandgiveplaytotheadvantagesofdifferentkindsofrobots.Forexample,whentravelingonflatterrainintheformofwheel,thetravelingspeedisfastandtheenergyconsumptionislessthanthatofthefootrobot.Butinthecomplexterraincanusethefootformtotravel,theflexibilityishighandtheoff-roadabilityisstrong.Ontheotherhand,inadditiontothebasiccontrolmodeoftheuppercomputer,thevisualcontrolmodeofhandrecognitionisalsousedtocontrolthemovementmodeoftherobotthroughthechangeofhandmovements,whichimprovestheoperationaldiversityofthisdesign.Keywords:Combinationoffootwheel;Datatransmission;Uppercomputer;Thehuman-computerinteraction目錄1緒論 緒論隨著人類社會的進步,人類對自然界的探索范圍的不斷擴大,人們發(fā)明各種各樣的機器人替代人類去完成一些相對危險的工作或難以解決的問題。其中在機器人常用的遠距離移動的方式有三種,分別是輪式、履帶式、足式,并且各有其優(yōu)缺點。(1)輪式機器人在平坦的道路上可以快速行走,但是在相對泥濘,崎嶇的復(fù)雜地形卻難以行進,且其轉(zhuǎn)彎半徑大,轉(zhuǎn)彎效率差,靈活性較差。(2)履帶式機器人相比于傳統(tǒng)輪式機器人,能夠在泥濘,崎嶇的復(fù)雜地形行進,還可原地轉(zhuǎn)彎,但當履帶式機器人遇到落差較大的障礙時卻難以越過。(3)足式機器人可以在各種復(fù)雜地形上行走,尤其是在其跨越障礙方面相對于輪式機器人和履帶式機器人有著很大的優(yōu)勢。但足式機器人行進速度相對較低,步態(tài)行進的穩(wěn)定性與環(huán)境有很大的關(guān)系,控制難度大,比較容易側(cè)翻,穩(wěn)定性能相對較差。1.1課題研究背景及意義相比于足式結(jié)構(gòu),輪式和履帶式機器的技術(shù)更成熟。履帶式機器在大型機器上比較常用比如坦克、挖掘機等等。輪式機器則更常見如汽車就是典型的輪式結(jié)構(gòu)的機器。在人類歷史發(fā)展的進程中,單純的輪式或履帶式機器的技術(shù)已經(jīng)是非常成熟了。足式機器相對于輪式和履帶式的結(jié)構(gòu)則是更加復(fù)雜,控制也相對困難。但隨著如今控制系統(tǒng)的成熟與芯片運算速度的提升,足式機器人在現(xiàn)代的研究中已取得的巨大的發(fā)展。特別是以美國波士頓公司為代表的四足機器人研究在國內(nèi)外取得了重大突破,進一步掀起了人類對足式機器的研究熱潮。本設(shè)計一方面根據(jù)各種類型機器人的優(yōu)缺點取長補短,將輪式機器人與足式機器人結(jié)合起來制造出能夠適應(yīng)多種地形并且可靈活變換的機器人。這種機器人可根據(jù)不同地形靈活變換成不同的形態(tài),取長補短將不同種類的機器人優(yōu)勢發(fā)揮出來。例如:在平坦的地形使用輪式形態(tài)行進,行進速度快,能源消耗相比較足式機器人要少。但在復(fù)雜地形可以使用足式形態(tài)行進,靈活性高且越野能力強。另一方面除了配置基礎(chǔ)的上位機控制方式之外還搭配了手部識別的視覺控制模式,實現(xiàn)了通過手部的動作變化從而控制機器人的運動方式,提高了本設(shè)計的操作多樣性。1.2國外研究情況足式機器人機構(gòu)設(shè)計和控制算法研究在國外一直都受到了廣泛的關(guān)注,特別是在發(fā)達的國家中機器人已經(jīng)有數(shù)十年的發(fā)展,技術(shù)已經(jīng)逐漸成熟成為一種標準設(shè)備被工業(yè)界廣泛應(yīng)用[[]孫英飛,羅愛華,我國工業(yè)機器人發(fā)展研究.科學(xué)技術(shù)與工程.2012.12]。其中以1992年成立的波士頓公司最具代表。2005年由波士頓公司設(shè)計的第一臺名為BigDog的機器人問世(如圖1-1所示)。機器人BigDog是為了滿足美國軍方士兵在作戰(zhàn)時減少體力消耗和單兵作戰(zhàn)時提高運送物資能力而設(shè)計的一款復(fù)雜地形機器人,以液壓為驅(qū)動系統(tǒng)跟隨士兵行軍,最高行進速度可達6.4公里每小時。BigDog機器人最令人驚嘆的是其控制算法的的研究,波士頓公司為機器人BigDog所設(shè)計的控制的系統(tǒng)可以實現(xiàn)對周圍環(huán)境的感知,行走時可自主進行規(guī)劃路徑。波士頓公司在2005年所設(shè)計的BigDog機器人控制算法在當前機器人領(lǐng)域上也是較難實現(xiàn)的。雖然由于BigDog噪音太大會影響軍隊行動隱秘性所被軍方拋棄,但是BigDog機器人的成功研發(fā)卻帶動了多個國家對足式結(jié)構(gòu)機器人的研究。[]孫英飛,羅愛華,我國工業(yè)機器人發(fā)展研究.科學(xué)技術(shù)與工程.2012.122017年波士頓公司又推出了輪腿結(jié)合機構(gòu)的機器人Hendle(如圖1-2),該足輪結(jié)合方式可以使機器人的行進速度達到9英里/小時并可垂直跳躍高達122厘米。機器人足輪結(jié)合方式非常完美地解決了單純的足式結(jié)構(gòu)在平坦的道路上運動時的能耗大、動力效用低等問題。Hendle機器人通過強大的平衡算法實現(xiàn)了快速加速和制動、運動過程中轉(zhuǎn)彎和原地的高速轉(zhuǎn)彎;單輪過斜坡,姿態(tài)保持穩(wěn)定;搬運貨物;快速下臺階;室外雪地滑行;彈跳等各種功能。圖1-1機器人BigDog圖1-2機器人Hendle日本對于機器人研究起步較早,如今日本對于機器人技術(shù)方面的研究在世界范圍內(nèi)也是處于領(lǐng)先地位。早在1985年日本研究所MAKOTO就設(shè)計出了名為MELWALKⅢ的機器人(如圖1-3)。MELWALKⅢ的足式結(jié)構(gòu)模擬昆蟲關(guān)節(jié)的腿部機構(gòu)一共有8個自由度,其中的6個自由度用于適應(yīng)地形,一個自由度用于轉(zhuǎn)彎,一個自由度用于驅(qū)動機器人向前運動。1996年日本的HONDA公司推出了第一臺可自主控制行走的雙足機器人P2(如圖1-4)。P2機器人足部裝配了壓力傳感器采用連桿結(jié)構(gòu),可以實現(xiàn)推車,上下臺階等基本功能。在實驗里的機器人尺寸普遍較大,不利于商用。在實驗室機器人研究取得進展后各個研究機構(gòu)開始研究小型機器人,小型機器人相比于大型機器人具有成本小、重量低、便于生產(chǎn)與商業(yè)等優(yōu)勢。小型機器人以2000年索尼推出的智能機器狗Aibo(如圖1-5)最具代表。Aibo機器人擁有20個關(guān)節(jié)和20個自由度,全身搭載多個彩色LED燈光和觸覺傳感器可用于反映情感和與人類交互反饋。索尼公司專門為機器人Aibo開發(fā)了一個名為“Aibo生活”的應(yīng)用軟件,“Aibo生活”可以使機器人Aibo擁有自主學(xué)習(xí)能力,可以自主決定自己的動作與行為,還可以讓Aibo機器人與主人交互中學(xué)習(xí)主人的行為特征與動作。圖1-3機器人MELWALKⅢ圖1-4機器人P2圖1-5機器人Aibo1.3國內(nèi)研究現(xiàn)狀我國國內(nèi)對于足式機器人的記載可以追溯到三國時期的運載糧食的“木牛流馬”,但由于歷史久遠,我們無法得知“木牛流馬”的具體結(jié)構(gòu)[[]宋康康可實現(xiàn)跳躍功能的四足機器人單腿結(jié)構(gòu)設(shè)計與運動建模分析鄭州輕工業(yè)學(xué)院2018.06]。但是由于當時年代技術(shù)的限制,“木牛流馬”只是純機械結(jié)構(gòu)并沒有由控制系統(tǒng)控制。近代以來,我國對于足式機器逐漸展開了研究,1997年由上海交通大學(xué)研究院設(shè)計了JTUWM—2型全方位四足機器人(如圖1-6所示),該機器人采用縮放式腿部機構(gòu),每條腿都由伺服電機控制,分別有3個自由度,每個自由度都由電位器檢測。JTUWM—2型機器人每條腿足底都裝有開關(guān)型觸覺傳感器用來檢測腿的著地狀況。機體上還裝有姿態(tài)傳感器用來檢測機體的傾斜角度[[[]宋康康可實現(xiàn)跳躍功能的四足機器人單腿結(jié)構(gòu)設(shè)計與運動建模分析鄭州輕工業(yè)學(xué)院2018.06[]馬培蓀,馬烈全方位四足步行機器人JTUWM-Ⅱ轉(zhuǎn)彎步態(tài)控制的研究《上海交通大學(xué)學(xué)報》1995,(05):87-922011年山東大學(xué)開啟了屬于中國的“BigDog”863項目,開發(fā)了一種由液壓驅(qū)動的高性能四足仿生機器人[[]方珂匯四足機器人機構(gòu)設(shè)計杭州電子科技大學(xué)2015.10](圖1-7)。2013年上海交通大學(xué)機械與動力工程學(xué)院高峰教授帶領(lǐng)團隊研制六足仿生機器人“六爪章魚”救援機器人進行了載人試驗(圖1-8)[[]張世錦基于ARM的六足機器人控制系統(tǒng)設(shè)計江蘇科技大學(xué)2015.10]。臺灣大學(xué)林沛群教授參考動物在自然世界行走方式設(shè)計出了miniRHex機器人(圖1[]方珂匯四足機器人機構(gòu)設(shè)計杭州電子科技大學(xué)2015.10[]張世錦基于ARM的六足機器人控制系統(tǒng)設(shè)計江蘇科技大學(xué)2015.10[]張婷婷基于ARM和CPLD的四足機器人嵌入式控制器硬件平臺設(shè)計武漢科技大學(xué)2009.5圖1-6JTUWM—2機器人圖1-7山東大學(xué)四足機器人圖1-8“六爪章魚”機器人圖1-9miniRHex機器人1.4本設(shè)計應(yīng)解決的主要問題我們分析的國內(nèi)外各個研究所對于足式機器人的研究的成果與問題,其當中主要存在4個問題需要解決:(1)足式機器雖然在可以在各種復(fù)雜的環(huán)境中運動,但是在相對平坦的平面內(nèi),足式機器的轉(zhuǎn)彎靈活度或者運動速度都比不上輪式機器。(2)足式機器的結(jié)構(gòu)相對于輪式機器更加復(fù)雜,體型也大較。足式機器在能量消耗上要更多但負載能力明顯低于輪式機器。(3)足式機器想要實現(xiàn)穩(wěn)定的運動,需要采集和處理的數(shù)據(jù)要更多其中包括對機器姿態(tài)與各個腿之間自由度的控制,所以足式機器對控制系統(tǒng)及芯片對數(shù)據(jù)處理要求更高。(4)由于目前足式機器人結(jié)構(gòu)復(fù)雜,對數(shù)據(jù)處理芯片要求要高,所以導(dǎo)致了足式機器的成本較高,很多在實驗室的足式機器都無常實現(xiàn)商用。所以對于以上問題,我們小組對機器人進行了以下方面的改進:(1)采用足輪結(jié)合結(jié)構(gòu),在相對平坦的地面我們使用輪式結(jié)構(gòu),在崎嶇不平和地形不規(guī)則的環(huán)境中改變機器運動方式使用足式結(jié)構(gòu)運動。(2)為了降低成本,提高商用價值,我們通過數(shù)據(jù)傳輸方式使機器人的數(shù)據(jù)處理在有高性能的終端上完成,底層機器人端我們采用處理能力相對低的芯片,通過數(shù)據(jù)傳輸使底層芯片完成對機器人的舵機控制。(3)為了有更好的用戶體驗,我們通過基于PyQt5設(shè)計了上位機實現(xiàn)人機交互。(4)為增加可操作性,采用上位機與圖像識別結(jié)合方式,用戶可根據(jù)需求選擇兩種不同控制機器人的方式。(5)為了使用機器更簡潔,基于AltiumDesigner設(shè)計集成電路。本機器人總設(shè)計方案如圖1-10。圖1-10總設(shè)計方案2數(shù)據(jù)傳輸?shù)拇罱ㄎ覀冃〗M選擇的數(shù)據(jù)傳輸方式是WIFI。WIFI無線通訊技術(shù)就是利用電磁波在空中傳播面進行數(shù)據(jù)交互的通訊方式[[]汪體成基于WiFi技術(shù)的多功能智能家居設(shè)備研究與實現(xiàn)武漢大學(xué)2018.5]。由于無線通訊不需要電線連接且連接速度快,使用方便,受到人們的重視。無線技術(shù)一直在飛速發(fā)展,如今無線通訊技術(shù)已經(jīng)非常成熟了。無線通訊技術(shù)種類繁多,常見的無線通訊有WIFI、RFID、藍牙等。這個三種無線通訊技術(shù)性能對比如表2-1。WIFI[]汪體成基于WiFi技術(shù)的多功能智能家居設(shè)備研究與實現(xiàn)武漢大學(xué)2018.5表2-1無線通訊技術(shù)性能對比2.1WIFI模塊選擇WIFI芯片根據(jù)驅(qū)動方式的不同可分為兩大類,其中一類是需要主控單元直接驅(qū)動控制,這種集成MAC層與物理層,并內(nèi)嵌CPU和內(nèi)存,這種方式對主控單元有著較高要求,開發(fā)難度高。另一類是將芯片模塊化[[]邢孝龍基于網(wǎng)絡(luò)監(jiān)控的大功率直流電源研究遼寧工業(yè)大學(xué)2018[]邢孝龍基于網(wǎng)絡(luò)監(jiān)控的大功率直流電源研究遼寧工業(yè)大學(xué)2018.12本設(shè)計選用的WIFI模塊型號的為ATK-ESP8266,其原理圖為(圖2-1)。該WIFI模塊通過串口與微控制單元MCU通信。由于ATK-ESP8266WIFI模塊的TCP協(xié)議棧使其可以使WIFI與串口兩者之間的進行數(shù)據(jù)的傳輸。該WIFI模塊可以設(shè)置兩種不同的工作模式:(1)無線訪問接入點(AP)模式,該模式的工作方式是將該模塊設(shè)置為WIFI熱點然后通過手機或電腦連接上對應(yīng)的WIFI熱點,無線接入點AP模式是實現(xiàn)局域網(wǎng)無線控制典型的應(yīng)用方式。AP模式不需要訪問互聯(lián)網(wǎng)就可以實現(xiàn)數(shù)據(jù)發(fā)送和接收。不足點是該模式有距離的限制,在空曠的空間里該模式的連接距離最遠為200米,當距離大于200米時數(shù)據(jù)傳輸會不穩(wěn)定甚至無法連接上設(shè)備。(2)STA站點模式,由WIFI模塊通過路由器連接到互聯(lián)網(wǎng),然后再來通過移動互聯(lián)網(wǎng)端如手機,平板電腦訪問通過訪問互聯(lián)網(wǎng)進而連接到WIFI模塊,最終實現(xiàn)對設(shè)備發(fā)送和接收數(shù)據(jù)。STA模式的優(yōu)勢是通過互聯(lián)網(wǎng)實現(xiàn)對設(shè)備的控制,控制距離遠。不足點是一定需要聯(lián)網(wǎng),有一些比較落后的地區(qū),或者網(wǎng)絡(luò)站點還無法覆蓋的地區(qū)則無法進行數(shù)據(jù)傳輸。因為數(shù)據(jù)通訊經(jīng)過了互聯(lián)網(wǎng)會產(chǎn)生數(shù)據(jù)接收的延時,所以如果對數(shù)據(jù)接收時效性要求比較高的設(shè)計不太適合使用該模式。ATK-ESP8266模塊的核心處理器為ESP8266EX,ESP8266EX結(jié)構(gòu)如圖2-1所示其主頻支持80MHz和160MHz,集成了32位微型MCU。圖2-1ATK-ESP8266原理圖圖2-2ESP8266EX結(jié)構(gòu)如圖本設(shè)計選用的是串口無線WIFIAP模式。其具體操作步驟為將模塊的工作模式設(shè)置為無線WIFI熱點,然后通過電腦或者手機等設(shè)備連接到該模塊設(shè)置的WIFI熱點,最后實現(xiàn)設(shè)備之間的無線數(shù)據(jù)轉(zhuǎn)換互傳功能。這其中ATK_ESP8266模塊還可以設(shè)置3個子模塊,1、UDP數(shù)據(jù)報協(xié)議,使用UDP模式則不需要建立連接便可發(fā)送數(shù)據(jù)。2、TCP客戶端模式。3、TCP用戶端模式。配置TCP客戶端模式核心指令如表2-2所示。TCP中文名為傳輸控制協(xié)議(英語:TransmissionControlProtocol),TCP協(xié)議的運行可劃分為三個階段:連接創(chuàng)建(connectionestablishment)、數(shù)據(jù)傳送(datatransfer)和連接終止(connectiontermination)。在TCP的數(shù)據(jù)傳送狀態(tài),很多重要的機制保證了TCP的可靠性。它們包括:使用序號,對收到的TCP報文段進行排序以及檢測重復(fù)的數(shù)據(jù);使用校驗和檢測報文段的錯誤,即無錯傳輸,使用確認和計時器來檢測和糾正丟包或延時[[][]華镕透明就緒的功能實現(xiàn)一《自動化博覽》2006,(02):27-29本設(shè)計通過使用ATK_ESP8266模塊設(shè)置為AP模式,機器人端配置TCP服務(wù)端模式,設(shè)置連接端口為8086。然后通過電腦連接到ATK_ESP8266模塊設(shè)置的WiFi熱點。然后在基于PyQt5編寫的上位機上設(shè)置連接對應(yīng)模塊的IP地址為25,設(shè)置連接端口為8086,作為TCP客戶端連接由ATK_ESP8266模塊設(shè)置的服務(wù)端。表2-2TCP客戶端模式核心指令2.2上位機與ATK-ESP8266連接為了使上位機可以順利訪問TCP/IP程序中調(diào)用了Socket通信。TCP/IP協(xié)議實際上就是在物理網(wǎng)上的一組完整的網(wǎng)絡(luò)協(xié)議[[]周培基于Socket的即時通信系統(tǒng)的研究與實現(xiàn)湖南大學(xué)2010.10]。Socket又稱"套接字",是一種應(yīng)用程序訪問通信協(xié)議。應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求使主機間或者一臺計算機上的進程間可以通訊。要完成socket通信的搭建一般由于5個部分組成:分別為:協(xié)議、本地地址、本地端口號、遠地地址[]周培基于Socket的即時通信系統(tǒng)的研究與實現(xiàn)湖南大學(xué)2010.10[]徐朋基于SOCKET的跨平臺通訊系統(tǒng)的研究與設(shè)計大連理工大學(xué)2015Socket基本通信工作流程如圖2-3所示。其中作為客戶端連接方式,首先用建立一個套接字socket(),然后調(diào)用方法connect()打開傳輸控制協(xié)議,然后連接上服務(wù)端的提供的IP地址與端口port就可以發(fā)送到數(shù)據(jù)服務(wù)端。最后完成數(shù)據(jù)傳輸后調(diào)用socket內(nèi)的close()關(guān)閉套接字。圖2-3Socke通信工作流程Socket通信重要的一個語句是socket.socket([family[,type[,proto]]]),這個函數(shù)是用來創(chuàng)建套接字。主動初始化TCP服務(wù)器連接:socket.socket.connect(host,port),其中host是連接的地址為25,port是要連接的端口為8086。通過socket.socket.send()將字符串上的數(shù)據(jù)發(fā)送到已連接上的服務(wù)端,socket.socket.s.recv()用來接收TCP返回數(shù)據(jù),返回的數(shù)據(jù)類型也是字符類型。Socoket客戶端測試程序如下:importsocketimportsocketimportsyss=socket.socket(socket.AF_INET,socket.SOCK_STREAM)host='%s.%s.%s.%s'%(192,168,4,1)port=8086s.connect((host,port))msg='測試socket's.send(msg.encode('ascii'))s.close()2.3足式運動方式程序?qū)崿F(xiàn)足式運動方式相對于輪式運動更復(fù)雜。本設(shè)計足式運動一共使用了12個舵機,如何使12個舵機之間合理配合是實現(xiàn)足式運動最關(guān)鍵步驟之一。本設(shè)計選擇解決方法為:先通過算法計算本機器人運動時每個舵機之間角度的配合,在完成每個運動周期記錄12個舵機每個節(jié)點角度的變化(表2-3),記錄在excel表格內(nèi)。通過上位機訪問excel表格數(shù)據(jù),通過Socket發(fā)送給ARM芯片。ARM芯片通過每次接收到的舵機角度數(shù)據(jù),通過調(diào)節(jié)引腳輸出的PWM來控制舵機。這種設(shè)計方式可以減少ARM對于舵機運動算法的計算量。上位機程序?qū)崿F(xiàn)如下:data=xlrd.open_workbook('D:/picture/excel2.xlsx')data=xlrd.open_workbook('D:/picture/excel2.xlsx')table=data.sheets()[0]b1=1whileruning==1andmode==2:a1=str(int(table.cell(b1,1).value))a2=str(int(table.cell(b1,2).value))a3=str(int(table.cell(b1,3).value))a4=str(int(table.cell(b1,4).value))a5=str(int(table.cell(b1,5).value))a6=str(int(table.cell(b1,6).value))a7=str(int(table.cell(b1,7).value))a8=str(int(table.cell(b1,8).value))a9=str(int(table.cell(b1,9).value))a9=str(int(table.cell(b1,9).value))a10=str(int(table.cell(b1,10).value))a11=str(int(table.cell(b1,11).value))a12=str(int(table.cell(b1,12).value))a13=str(4)msg='aa%sk%sk%sk%sk%sk%sk%sk%sk%sk%sk%sk%sk%skk'%(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)ifconnection==True:s.send(msg.encode('ascii'))time.sleep(0.5)ifb1>=142:b1=1print(a2)b1=b1+1表2-3足式運動舵機角度變化表2.4底層應(yīng)用程序設(shè)計在配置ATK_ESP8266時,ATK-ESP8266模塊采用串口通信,本設(shè)計采用的是STM32f103ZET6的3號串口與ATK-ESP8266模塊進行數(shù)據(jù)互傳。STM32的3號串口初始化程序如下:voidusart3_init(u32bound)voidusart3_init(u32bound){ NVIC_InitTypeDefNVIC_InitStructure; GPIO_InitTypeDefGPIO_InitStructure; USART_InitTypeDefUSART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //GPIOB時鐘 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//串口3時鐘使能 USART_DeInit(USART3);//復(fù)位串口3 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;//PB10 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; //復(fù)用推挽輸出 GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化PB10GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;//浮空輸入 GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化PB11 USART_InitStructure.USART_BaudRate=bound;//波特率一般設(shè)置為9600;USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字長為8位數(shù)據(jù)格式 USART_InitStructure.USART_StopBits=USART_StopBits_1;//一個停止位 USART_InitStructure.USART_Parity=USART_Parity_No;//無奇偶校驗位USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx; //收發(fā)模式 USART_Init(USART3,&USART_InitStructure);//初始化串口 3 USART_Init(USART3,&USART_InitStructure);//初始化串口 3 USART_Cmd(USART3,ENABLE);//使能串口 //使能接收中斷 USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);//開啟中斷 //設(shè)置中斷優(yōu)先級 NVIC_InitStructure.NVIC_IRQChannel=USART3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;//搶占優(yōu)先級3 NVIC_InitStructure.NVIC_IRQChannelSubPriority=3; //子優(yōu)先級3 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根據(jù)指定的參數(shù)初始化VIC寄存器 TIM7_Int_Init(1000-1,7200-1); //10ms中斷 USART3_RX_STA=0; //清零 TIM_Cmd(TIM7,DISABLE); //關(guān)閉定時器7}當ATK_ESP8266接收到數(shù)據(jù)時,會把數(shù)據(jù)發(fā)送到單片機串口3上。串口3接收數(shù)據(jù)進行分析處理,當判斷連續(xù)存在兩個字符‘a(chǎn)’時開始采集數(shù)據(jù)。a1為1號舵機需要旋轉(zhuǎn)的角度。if(USART3_RX_STA&0X8000) //接收到一次數(shù)據(jù)了if(USART3_RX_STA&0X8000) //接收到一次數(shù)據(jù)了 { rlen=USART3_RX_STA&0X7FFF; //得到本次接收到的數(shù)據(jù)長度 USART3_RX_BUF[rlen]=0; //添加結(jié)束符 printf("%s",USART3_RX_BUF); //發(fā)送到串口 sprintf((char*)p,"收到%d字節(jié),內(nèi)容如下",rlen);//接收到的字節(jié)數(shù) LCD_Fill(30+54,115,239,130,WHITE); POINT_COLOR=BRED; Show_Str(30+54,115,156,12,p,12,0); //顯示接收到的數(shù)據(jù)長度 POINT_COLOR=BLUE; LCD_Fill(30,130,239,319,WHITE); Show_Str(30,130,180,190,USART3_RX_BUF,12,0);//顯示接收到的數(shù)據(jù) aa=0;}for(bit=5;bit<=10;bit++){ Inta1=0;if(USART3_RX_BUF[bit-1]=='a'&&USART3_RX_BUF[bit-2]=='a') { for(;USART3_RX_BUF[bit]!='k';bit++) { a1=a1*10+(USART3_RX_BUF[bit]-'0');//將字符轉(zhuǎn)換為數(shù)字 } break; POINT_COLOR=BLUE; LCD_Fill(30,130,239,319,WHITE); Show_Str(30,130,180,190,USART3_RX_BUF,12,0);//顯示接收到的數(shù)據(jù) aa=0;}for(bit=5;bit<=10;bit++){ Inta1=0;if(USART3_RX_BUF[bit-1]=='a'&&USART3_RX_BUF[bit-2]=='a') { for(;USART3_RX_BUF[bit]!='k';bit++) { a1=a1*10+(USART3_RX_BUF[bit]-'0');//將字符轉(zhuǎn)換為數(shù)字 } break; } }圖2-4輸入PWM與舵機角度關(guān)系圖2-5舵機旋轉(zhuǎn)79度圖2-6舵機旋轉(zhuǎn)163度3上位機的編寫上位機是為提供人機交互而且創(chuàng)建的一個GUI應(yīng)用程序,本設(shè)計可以在PC端通過上位機發(fā)送數(shù)據(jù)給底層ARM芯片。創(chuàng)建GUI應(yīng)用程序,PyQt5是個非常不錯的選擇。PyQt是QT為Python專門提供的GUI擴展,Python作為腳本語言起初并不具備GUI工具,但由于Python語法簡單且上手容易,由于面向?qū)ο筇匦钥梢暂p松制作各種工具模塊。經(jīng)過近30年的發(fā)展,Python已然發(fā)展成為現(xiàn)代最受歡迎的編程語言之一。Qt是由挪威公司于1995年推出C++圖形用戶界面應(yīng)用程序開發(fā)框架。QT具有非常豐富的c++類庫,是如今開發(fā)用戶界面最主流的工具。PyQt5是擁有近620個類和6000個方法及函數(shù)的python模塊集。而且PyQt5應(yīng)用在windows、MacOS、linux這三個常見操作系統(tǒng)上。3.1安裝PyQt5工具包最簡單的安裝PyQt5工具包是使用Python自帶的(Python-pip)進行安裝。Python-pip提供了對Python內(nèi)各種類型包的下載、安裝與卸載的功能。在Python官方網(wǎng)站下載的Python版本都會自帶安裝包管理工具(Python-pip)。Python-pip也可以使用Python腳本語言進行安裝(輸入$sudopython3get-pip.py)。所以在確定安裝了Pythonpip工具后,在Windows系統(tǒng)中通過快捷鍵(Win+R)運行對話框,輸入pipinstallpyqt5(圖3-1)就可以完成安裝。圖3-1通過window對話框安裝python包管理工具3.2上位機主循環(huán)程序在使用PyQt5程序之前需要先導(dǎo)入要使用到的PyQt5模塊,方法如下:fromPyQt5.QtWidgetsimport*fromPyQt5.QtGuiimport*fromPytCoreimport*主循環(huán)部分采用面向?qū)ο蟮木幊谭绞健J紫葎?chuàng)建一個繼承于QMainWindow類的調(diào)用,再使用initUI()方法創(chuàng)建一個上位機交互界面,開啟主循環(huán)。程序如下:classExample(QMainWindow):classExample(QMainWindow):def__init__(self):super().__init__()#使用__init__()方法是構(gòu)造器的一個方法self.initUI()definitUI(self):self.setGeometry(400,300,900,600)#設(shè)置界面位置和大小,從屏幕上(400,300)位置開始顯示一個900*600(寬900,高600)的界面self.setWindowTitle('足輪兩式機器人上位機')#給窗口添加了一個標題標題欄展示self.show()#讓控件在桌面上顯示出來。在內(nèi)存里創(chuàng)建,之后才能在顯示器上顯示出來。if__name__=='__main__':app=QApplication(sys.argv)app.setWindowIcon(QIcon("D:/data/python/images/a1.ico"))ex=Example()sys.exit(app.exec_())3.3上位機菜單創(chuàng)建本設(shè)計菜單欄是用來選擇配置Socket通信中的IP地址與端口,PyQt5中有的一個QAction類是專門用來設(shè)置用戶界面的菜單工具欄。QAction類可以用來配置菜單欄中的圖標、文本、狀態(tài)文本、快捷鍵等等。對Action(IP)關(guān)聯(lián)的內(nèi)容進行設(shè)計,IP=QAction('',self,checkable=True)其效果為當鼠標點擊IP地址菜單時,其菜單下會顯示連接的IP地址為,通過triggered.connect(self.toggleMenu)方法進行事件連接,當點擊IP按鈕是會觸發(fā)函數(shù)toggleMenu()。(效果如圖3-2所示)菜單欄程序設(shè)計如下:函數(shù)toggleMenu()為配置連接IP地址host=192,168,4,1函數(shù)toggleMenu2()為配置連接端口port=8086函數(shù)toggleMenu3()為進入TCP客戶端連接IP=QAction('',self,checkable=True)#IP=QAction('',self,checkable=True)#checkable=True會因為鼠標點擊是保持狀態(tài)。IP.setStatusTip('選擇的IP地址')IP.setChecked(False)IP.triggered.connect(self.toggleMenu)#傳遞按鈕參數(shù)方式port=QAction('8086',self,checkable=True)port.setStatusTip('選擇的端口')port.setChecked(False)port.triggered.connect(self.toggleMenu2)mode=QAction('開始連接',self,checkable=True)mode.setChecked(False)mode.triggered.connect(self.toggleMenu3)deftoggleMenu(self,state):#配置連接IP地址host=192,168,4,1globalhostifstate:self.statusbar.show()self.statusbar.showMessage('連接的IP地址為')host='%s.%s.%s.%s'%(192,168,4,1)else:self.statusbar.hide()deftoggleMenu2(self,state):#配置連接端口port=8086globalportifstate:self.statusbar.show()self.statusbar.showMessage('連接端口為8086')port=8086print(port)else:self.statusbar.hide()deftoggleMenu3(self,state):#進入TCP客戶端連接deftoggleMenu3(self,state):#進入TCP客戶端連接globals,connections=socket.socket(socket.AF_INET,socket.SOCK_STREAM)ifstate:self.statusbar.show()print(port)print(host)s.connect((host,port))msg='測試通訊's.send(msg.encode('ascii'))self.statusbar.showMessage('連接成功')connection=Trueprint(connection)else:self.statusbar.hide()connection=Falses.close()圖3-2上位機菜單欄3.4上位機滑塊條控件配置為了使調(diào)試更方便,在上位機上引用了滑塊條控件QSlider()類,對機器人舵機角度進行調(diào)試。其實現(xiàn)的功能為當鼠標對應(yīng)滑動滑塊條控件,滑塊條控件內(nèi)對應(yīng)該的數(shù)字會通過socket的send()函數(shù)發(fā)送出去,當服務(wù)端接受到信號時控制對應(yīng)舵機旋轉(zhuǎn)到達對應(yīng)角度,從而實現(xiàn)調(diào)試功能?;瑝K條信號改變與self.angle()函數(shù)關(guān)聯(lián),對滑塊條內(nèi)數(shù)據(jù)進行讀取,通過socket的send()函數(shù)發(fā)送出去。其中需要注意一點是滑塊條內(nèi)數(shù)據(jù)類型是整數(shù),函數(shù)send()發(fā)送數(shù)據(jù)類型需要是字符串,所以要對滑動條內(nèi)的數(shù)據(jù)進行數(shù)據(jù)類型轉(zhuǎn)換。滑動條只是單純的代表數(shù)據(jù),但是如果想要直觀地把數(shù)據(jù)顯現(xiàn)需要用到QLCDNumber(),通過self.sld1.valueChanged.connect(self.lcd1.display)方法使滑塊的變化和數(shù)字的變化綁定在一起。最后效果如圖3-3所示。程序如下:self.sld1=QSlider(Qt.Horizontal,self)#設(shè)置控件水平方式顯示self.sld1=QSlider(Qt.Horizontal,self)#設(shè)置控件水平方式顯示self.sld1.setFocusPolicy(Qt.NoFocus)#設(shè)置控件樣式self.sld1.setGeometry(60,50,200,30) #設(shè)置控件位置和大小self.sld1.setMinimum(0) #設(shè)置控件最小值為0self.sld1.setMaximum(270) #設(shè)置控件最大值為0self.sld1.setValue(0)#設(shè)置控件初始值為0self.sld1.setTickInterval(50)#設(shè)置刻度間格self.sld1.setTickPosition(QSlider.TicksBothSides)#設(shè)置刻度位置:在滑塊的兩側(cè)繪制刻度線self.sld1.valueChanged.connect(self.angle)#設(shè)置滑塊條信號,當滑塊的值發(fā)生改變時發(fā)射信號defangle(self):globala1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13#設(shè)置全局變量a13=str(1) #a13為標識號a1=str(self.sld1.value())#對滑動條內(nèi)的數(shù)據(jù)進行數(shù)據(jù)類型轉(zhuǎn)換ifconnection==True:#判斷是否已經(jīng)建立連接msg='aa%sk%sk%sk%sk%sk%sk%sk%sk%skk'%(a1,a2,a3,a4,a5,a6,a7,a8,a13)s.send(msg.encode('ascii'))#發(fā)送數(shù)據(jù)self.lcd1=QLCDNumber(self)self.lcd1.setDigitCount(3)self.lcd1.setGeometry(270,40,50,50)self.lcd1.setSegmentStyle(2)self.sld1.valueChanged.connect(self.lcd1.display)圖3-3滑塊條控件3.5上位機按鈕與多線程配置self.btn1=QPushButton('up',self)#創(chuàng)建按鈕,設(shè)置按鈕上的字符self.btn1.setIcon(QIcon(QPixmap("D:\data\python\images\上.png")))#設(shè)置按鈕上的圖標self.btn1.setDefault(True)#設(shè)置按鈕的默認狀態(tài)self.btn1.resize(80,60)#設(shè)置按鈕的大小self.btn1.move(450,120)#設(shè)置按鈕的位置self.btn1=QPushButton('up',self)#創(chuàng)建按鈕,設(shè)置按鈕上的字符self.btn1.setIcon(QIcon(QPixmap("D:\data\python\images\上.png")))#設(shè)置按鈕上的圖標self.btn1.setDefault(True)#設(shè)置按鈕的默認狀態(tài)self.btn1.resize(80,60)#設(shè)置按鈕的大小self.btn1.move(450,120)#設(shè)置按鈕的位置self.btn1.clicked.connect(self.btnstate)#設(shè)置按鈕的信號與btnstate()函數(shù)關(guān)聯(lián)defbtnstate(self):globalmode,thread1sender=self.sender()#獲取按鈕上的字符ifsender.text()=='up':#判斷按鈕上的符ifmode!=1:mode=1thread1=myThread(1,"Thread-1",1)#產(chǎn)生線程thread1.start()#開啟多線程 圖3-4按鈕控件由于通過按鈕進行循環(huán)發(fā)送數(shù)據(jù)時,如作為單一線程程序則無法通過上位機上按鈕中斷循環(huán),上位機上按鈕不會觸發(fā)響應(yīng)。本設(shè)計通過引入了多線程來解決這一問題。線程是計算機編程中的概念[[]谷建光基于HTTP協(xié)議的多線程網(wǎng)絡(luò)下載框架的研究與實現(xiàn)南京理工大學(xué)2011.4]。多線程可以在同一時間內(nèi)運行多個程序軌跡,可以提高程序運行效率[[[]谷建光基于HTTP協(xié)議的多線程網(wǎng)絡(luò)下載框架的研究與實現(xiàn)南京理工大學(xué)2011.4[]范小鷗.Linux線程實現(xiàn)技術(shù)研究[J].吉林建筑工程學(xué)院學(xué)報,2012,29(3):82-84(1)讓設(shè)計的程序運行速度更快。(2)運用多線程把運行時間長的程或任務(wù)交給后臺去處理,多線程對于單線程更復(fù)雜,重復(fù)使用線程可能會導(dǎo)致程序內(nèi)存使用混亂與系統(tǒng)崩潰。(3)使用多線程可以在同一時間執(zhí)行多個不同程序,多線程程序中都提供獨立的程序入口與程序出口。(4)多線程是現(xiàn)在操作系統(tǒng)的核心之一,運用多線程可以使系統(tǒng)同時實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的接收與發(fā)送、修改文件,讀取用戶數(shù)據(jù)等等。(5)程序多線程可以在等待任務(wù)時釋放內(nèi)存從而占用提高CPU利用率。在Python語言中可以通過調(diào)用thread()函數(shù)來產(chǎn)生新的線程。上位機調(diào)用多線程通過Socket通信機制發(fā)送數(shù)據(jù)測試程序如下:classmyThread(threading.Thread):def__init__(self,threadID,name,counter):classmyThread(threading.Thread):def__init__(self,threadID,name,counter):threading.Thread.__init__(self)self.threadID=threadID=nameself.counter=counterdefrun(self):#運線程內(nèi)程序b1=100whilemode==1:#判斷是否是模式1ifb1>0andb1<260andconnection==True:#判斷TCP是否連接b1=b1+4a1=str(b1)msg='aa%sk%sk%sk%sk%sk%sk%sk%sk%skk'%(a1,a2,a3,a4,a5,a6,a7,a8,a9)s.send(msg.encode('ascii'))print(b1)time.sleep(0.15)3.6圖像識別為了提高機器人可操作性,上位機中集成了手部識別的功能。手部識別是基于Opencv對輸入手部圖像進行處理,通過特定的手勢來代表機器人特定運動方式。具體步驟為:(1)膚色分割,可通過皮膚膚色與外界環(huán)境上顏色的不同從而把手部與外界分離出來。提取信息。(2)圖像效果增強,通過輸入的圖像進行中值濾波操作消除圖像中的噪音。(3)圖像二極化處理,通過圖像二極化處理可以圖片分為黑白兩部分,即把所分析的目標與無關(guān)環(huán)境信息分離出來。有利于只對有用信息進行處理。(4)手勢輪廓繪制,將圖像中的手勢邊界信息繪制出來。(5)手部信息的識別,通過識別的手部輪廓圖中得出手指之間的凸缺陷點來判斷出讀取圖像中手部所伸出的手指數(shù)。手部識別流程如圖3-5,手部識別效果如圖3-6。上位機整體界面如圖3-7。圖3-5圖像識別流程圖圖3-6手部識別效果圖3-7上位機操作界面4硬件系統(tǒng)的搭建硬件是控制系統(tǒng)的基礎(chǔ),一個可靠穩(wěn)定的硬件系列對整個產(chǎn)品的性能有著決定性的影響。本設(shè)計硬件系統(tǒng)總框架如圖4-1。本設(shè)計的足輪兩式機器人的設(shè)計方案由機器人機械主體、上位機、舵機與舵機驅(qū)動電路、電機與電機驅(qū)動電路、ARM處理器所組成。具體流程為上位機通過WIFI通信與ARM建立數(shù)據(jù)連接,若是足式動方式ARM接收上位機發(fā)送的每個舵機的角度,ARM通過調(diào)節(jié)引腳輸出PWM經(jīng)過光耦隔離電路來改變舵機角度。若是輪式運動方式則改變引腳的高低電頻經(jīng)過電機驅(qū)動電路來控制直流電機。圖4-1硬件系統(tǒng)總框架4.1主控芯片的選擇主控制芯片選擇STM32F103ZET6。STM32是由意法半導(dǎo)體(ST)公司生產(chǎn)的ARMCorte-M3核產(chǎn)品[[]閆曉俊基于STM32的WIFI視頻傳輸?shù)难芯颗c設(shè)計中北大學(xué)2016.5],采用哈佛架構(gòu),擁有獨立的指令總線和數(shù)據(jù)總線,系統(tǒng)結(jié)構(gòu)如圖4-2。STM32在常見的家庭自動化、智能家居、小型機器人產(chǎn)品、[]閆曉俊基于STM32的WIFI視頻傳輸?shù)难芯颗c設(shè)計中北大學(xué)2016.5本設(shè)計的STM32F103ZET6最小系統(tǒng)搭建參考了由意法半導(dǎo)體(ST)公司編寫的stm32f10xx硬件開發(fā)使用手冊。stm32f10xx硬件開發(fā)使用手冊全面介紹了芯片與硬件功能,包括stm23最小系統(tǒng)中的硬件電源配置、晶振電路與復(fù)位電路、JTAG調(diào)試接口配置與芯片啟動模式。圖4-2stm32系統(tǒng)結(jié)構(gòu)圖4.2硬件電源配置本機器人一共使用了12個舵機,為了保證12個舵機電能供應(yīng)的穩(wěn)定,本設(shè)計使用的電池為航模鋰電池(如圖4-3),該航模電池正常工作時可提供11.1V的輸入電壓,電池容量為2200MAH,最大放電倍率為30C。本設(shè)計使用的舵機的正常工作時電壓為5V,控制芯片STM32F103ZET6的工作電壓為3.3V。電源設(shè)計中通過兩級的降壓方式使11.1V經(jīng)過兩次降壓最后降為3.3V給芯片供電(電源設(shè)計框架如圖4-4),一個原因是舵機驅(qū)動需要用到5V電壓,另一個原因是11.1V電壓直接降到3.3V,電壓下降低過大會產(chǎn)生較大幅度的紋波。圖4-3航模鋰電池圖4-4電源設(shè)計框架首先先使用到的降壓芯片為LM7805(圖4-5)將輸入電壓的11.1V降壓到5V。LM7805穩(wěn)壓芯片使用參考電路(圖4-6)是在輸出端和輸入端分別并聯(lián)一個0.1μF與0.33μF的瓷介電容。考慮到電耦合濾除諧波的影響,在實際電路中為消除電耦合濾除諧波通常會選擇增大并聯(lián)電容和在輸出端串聯(lián)電感(電路如圖4-7)。然后再使用線性穩(wěn)壓芯片AMS1117-3.3V將LM7805芯片輸出的電壓再降壓到3.3V提供給控制芯片供電(圖4-8)。圖4-5LM7805圖4-6LM7805參考電路圖4-75V穩(wěn)定壓電路圖4-83.3V穩(wěn)壓電路保證STM32F103ZET6正常工作需要的輸入電壓是2.0~3.6V,芯片電源供應(yīng)如圖4-9。VDDA為主電源采用嵌入式的調(diào)壓器提供,內(nèi)當主電源VDDA關(guān)閉時,實時時鐘(RTC)和備用寄存器可以從VBAT引腳供電。相對于51系列的單片機只有一個電源輸入引腳,STM32F103ZET6則有11個電源輸入引腳,因為芯片內(nèi)部走線復(fù)雜,如果是單一引腳作為電源輸入會導(dǎo)致輸入電壓下降嚴重影響芯片工作性能。所以在設(shè)計原理圖時11個VDD都需要接入3.3V電壓。圖4-9芯片電源供應(yīng)圖4.3驅(qū)動方式選擇常見的足式機器人都會使用電機驅(qū)動或者是液壓驅(qū)動方式。液壓驅(qū)動方式在大型機器中相對比較常用,波士頓設(shè)計BigDog機器人就是使用液壓作為其驅(qū)動方式。液壓驅(qū)動方式優(yōu)點是力矩大、穩(wěn)定性好、控制簡單、響應(yīng)快速。不足點是制造工藝復(fù)雜、體積和重量大、維護成本高。由于液壓驅(qū)動方式的缺點過于明顯,小型機器人的設(shè)計會更傾向使用電機驅(qū)動方式。常見的足式機器人驅(qū)動電機有步進電機、伺服電機和舵機。伺服電機是通過調(diào)節(jié)輸入脈沖時間的長短從而來控制電機旋轉(zhuǎn)的角度[[]韓軍浩步進電機和交流伺服電機性能綜合比較[J]通訊世界1006-4222(2019)05-0184-02]。伺服電機一般是作為閉環(huán)控制,伺服電機的的驅(qū)動器帶有U/V/W三相電形成電磁場,轉(zhuǎn)子在此磁場的作用下轉(zhuǎn)動,同時電機自帶的編碼器反饋信號給驅(qū)動器,驅(qū)動器根據(jù)反饋值與目標值進行比較,調(diào)整轉(zhuǎn)子轉(zhuǎn)動的角度[[]王勇步進電機和伺服電機的比較[J][]韓軍浩步進電機和交流伺服電機性能綜合比較[J]通訊世界1006-4222(2019)05-0184-02[]王勇步進電機和伺服電機的比較[J]中小企業(yè)管理與科技2010.12舵機是一種電機定位系統(tǒng)的稱呼,舵機可以由伺服電機或者其他電機來實現(xiàn)[[]基于ARM的六足機器人控制系統(tǒng)設(shè)計 江蘇科技大學(xué)2015.10]。舵機的控制方式是讓控制芯片產(chǎn)生額定的脈沖信號,舵機中的驅(qū)動電路通過接收到脈沖信號并放大來控制電機的旋轉(zhuǎn),舵機旋轉(zhuǎn)的角度的確定是由比較電位器來實現(xiàn)的,當舵機旋轉(zhuǎn)角度時比較電位器上的電阻也會改變,檢測電位器的阻值來確定舵機目前的角度。最后將比較電位器中檢測到的舵機角度反饋給舵機控制電路完成閉環(huán)控制。(原理如圖[]基于ARM的六足機器人控制系統(tǒng)設(shè)計 江蘇科技大學(xué)2015.10步進電機(圖4-11)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機構(gòu)。步進電機將接收的脈沖個數(shù)轉(zhuǎn)化為轉(zhuǎn)動角度。步進電機一般是作為開環(huán)控制,步進電機由于缺乏反饋機制所以控制精度相對于伺服電機和舵機要低。由于步進電機一般不具有過載能力,要選用較大轉(zhuǎn)矩的步進電機才可以保證機器的正常工作,這樣往往會產(chǎn)生力矩浪費現(xiàn)象。步進電機在低速旋轉(zhuǎn)時會產(chǎn)生低頻振動現(xiàn)象,因為足式機器人足式機構(gòu)運轉(zhuǎn)速度比較慢,低頻振動現(xiàn)象對足式機器人的控制影響較大。舵機由于控制簡單,自帶閉環(huán)系統(tǒng)可精度控制旋轉(zhuǎn)角度,自帶減速齒輪組,體積較小,所以小型機器人大多會選擇舵機作為其驅(qū)動方式。本設(shè)計通過價格,扭矩,可轉(zhuǎn)角度,質(zhì)量,尺寸,可靠性,反應(yīng)速度及靈敏度等多方面的比對,最終選定RDS3225數(shù)碼舵機(如圖4-12),其扭矩為25kg,可轉(zhuǎn)角度為270°,工作電壓為4.8~6V,帶負載旋轉(zhuǎn)速度為0.13秒/60度,尺寸為40mm*20mm*40mm。圖4-10舵機工作原理圖圖4-11步進電機圖4-12舵機4.4光耦隔離電路設(shè)計本設(shè)計一共使用到了12個舵機,各個舵機的旋轉(zhuǎn)頻率高,當舵機旋轉(zhuǎn)時會產(chǎn)生電流波動,多個舵機同時旋轉(zhuǎn)時瞬間輸出電流會很大。STM32額定工作電壓為3.3V,額定工作電流為36mA,如果直接使用stm32引腳作為脈沖PWM輸入,舵機旋轉(zhuǎn)瞬間輸出電流過大可能會使stm32工作不穩(wěn)定、死機、誤動作等故障,最嚴重的情況可能會燒毀控制芯片[[][]魏君基于ARM小型雙足機器人的設(shè)計與研究石家莊鐵道大學(xué)2016.01所以為了系統(tǒng)的穩(wěn)定運行,控制芯片stm32產(chǎn)生的PWM信號要經(jīng)過隔離再輸入到舵機中。常見的隔離方式有變壓器隔離,電容耦合隔離,光耦隔離[[]陸泉森,李軍,鮑鴻光耦隔離技術(shù)在智能測控系統(tǒng)中的應(yīng)用[J]機械與電子1001-2008.02-0053-3]。本文選擇的隔離方式為光耦隔離,光耦隔離相對于其他隔離方式的特點為抗干擾能力更強、光耦隔離芯片積小、響應(yīng)速度快。本隔離電路使用的芯片型號為PC817X3CSP9F(如圖4-13),光耦隔離電路如圖[]陸泉森,李軍,鮑鴻光耦隔離技術(shù)在智能測控系統(tǒng)中的應(yīng)用[J]機械與電子1001-2008.02-0053-3圖4-13光耦隔離芯片PC817X3CSP9F圖3-14光耦隔離電路4.5晶振電路晶振又名晶體振蕩器,是一種具有高精度和高穩(wěn)定度的振蕩器,為芯片運行提供基準信號[[]朱樂樂基于ARMCortex-M4內(nèi)核的多功能教育機器人開發(fā)研究蘭州大學(xué)2013.5附錄附錄1仿生四足機器人的開發(fā)ThanhtamHo,SunghacChoi,SangyoonLee摘要本文介紹了一種小型四足機器人的設(shè)計和原型,該機器人的行走運動是由兩個壓電復(fù)合驅(qū)動器實現(xiàn)的。在設(shè)計中,仿生思想被用來獲得運動的敏捷性和重載的可持續(xù)性。機器人腿的設(shè)計靈感來自于昆蟲的腿部形態(tài),兩條腿的關(guān)節(jié)(臀部和膝蓋)可以做兩種基本動作,即抬腿和走腿。機器人的框架設(shè)計有一個相對于水平面的斜率,使機器人向前移動。此外,機器人還實現(xiàn)了四足動物的跳躍運動。實驗表明,該機器人可以攜帶約100克的額外負載,并以相當高的速度運行。四足機器人原型可以成為構(gòu)建壓電復(fù)合驅(qū)動的自主移動機器人的重要一步。關(guān)鍵詞:四足機器人;壓電復(fù)合驅(qū)動器;跳躍運動1介紹 近年來,機器人的設(shè)計往往從自然系統(tǒng)的結(jié)構(gòu)和功能中汲取靈感。然而,由于生物系統(tǒng)的機械結(jié)構(gòu)極其復(fù)雜,每條腿都有許多自由度,能量儲存系統(tǒng)和肌肉系統(tǒng)比人工系統(tǒng)要高效得多,因此將自然運動方法直接應(yīng)用于機器人是極其困難的。因此,為了克服這些困難,應(yīng)該考慮簡化的想法。在有腿機器人的設(shè)計中,減少腿的數(shù)量或自由度就是一個例子。 為了簡化機器人的機械結(jié)構(gòu)和模仿生物肌肉,人們考慮了非傳統(tǒng)的致動器。特別是,壓電致動器已經(jīng)應(yīng)用于許多小型腿式機器人的設(shè)計中[1]。DeAmbroggi等科學(xué)家設(shè)計了一種壓電驅(qū)動的三足跳蚤機器人。從跳蚤得到靈感的機器人體積小(約2cm×2cm),重量輕,但有負載能力不足的缺點,因此控制器板必須與機器人分開。 Goldfarb和他的同事開發(fā)了一個壓電驅(qū)動的中尺度四足機器人,長度為9厘米,寬度為6.5厘米,高度為5厘米,重量為51克[2]。該機器人具有自供電的操作能力和在粗糙表面上的可操作性。雖然該機器人在構(gòu)建由智能材料驅(qū)動的自主移動機器人方面顯示出了良好的效果,但它缺乏運動的靈活性和重載的可持續(xù)性,而采用腿上動物或昆蟲的仿生思想可能會增強這一點。 最近一個仿生腿機器人的例子是一個獨立的六足機器人,長度為35毫米,重量為3克[3][]朱樂樂基于ARMCortex-M4內(nèi)核的多功能教育機器人開發(fā)研究蘭州大學(xué)2013.5附錄附錄1仿生四足機器人的開發(fā)ThanhtamHo,SunghacChoi,SangyoonLee摘要本文介紹了一種小型四足機器人的設(shè)計和原型,該機器人的行走運動是由兩個壓電復(fù)合驅(qū)動器實現(xiàn)的。在設(shè)計中,仿生思想被用來獲得運動的敏捷性和重載的可持續(xù)性。機器人腿的設(shè)計靈感來自于昆蟲的腿部形態(tài),兩條腿的關(guān)節(jié)(臀部和膝蓋)可以做兩種基本動作,即抬腿和走腿。機器人的框架設(shè)計有一個相對于水平面的斜率,使機器人向前移動。此外,機器人還實現(xiàn)了四足動物的跳躍運動。實驗表明,該機器人可以攜帶約100克的額外負載,并以相當高的速度運行。四足機器人原型可以成為構(gòu)建壓電復(fù)合驅(qū)動的自主移動機器人的重要一步。關(guān)鍵詞:四足機器人;壓電復(fù)合驅(qū)動器;跳躍運動1介紹 近年來,機器人的設(shè)計往往從自然系統(tǒng)的結(jié)構(gòu)和功能中汲取靈感。然而,由于生物系統(tǒng)的機械結(jié)構(gòu)極其復(fù)雜,每條腿都有許多自由度,能量儲存系統(tǒng)和肌肉系統(tǒng)比人工系統(tǒng)要高效得多,因此將自然運動方法直接應(yīng)用于機器人是極其困難的。因此,為了克服這些困難,應(yīng)該考慮簡化的想法。在有腿機器人的設(shè)計中,減少腿的數(shù)量或自由度就是一個例子。 為了簡化機器人的機械結(jié)構(gòu)和模仿生物肌肉,人們考慮了非傳統(tǒng)的致動器。特別是,壓電致動器已經(jīng)應(yīng)用于許多小型腿式機器人的設(shè)計中[1]。DeAmbroggi等科學(xué)家設(shè)計了一種壓電驅(qū)動的三足跳蚤機器人。從跳蚤得到靈感的機器人體積小(約2cm×2cm),重量輕,但有負載能力不足的缺點,因此控制器板必須與機器人分開。 Goldfarb和他的同事開發(fā)了一個壓電驅(qū)動的中尺度四足機器人,長度為9厘米,寬度為6.5厘米,高度為5厘米,重量為51克[2]。該機器人具有自供電的操作能力和在粗糙表面上的可操作性。雖然該機器人在構(gòu)建由智能材料驅(qū)動的自主移動機器人方面顯示出了良好的效果,但它缺乏運動的靈活性和重載的可持續(xù)性,而采用腿上動物或昆蟲的仿生思想可能會增強這一點。 最近一個仿生腿機器人的例子是一個獨立的六足機器人,長度為35毫米,重量為3克[3]。該機器人是設(shè)計在交流三腳架步態(tài)驅(qū)動的兩個壓電驅(qū)動器。這說明了仿生機器人在尺寸上的優(yōu)勢,但實驗結(jié)果還沒有顯示出成功的運動。 本文的工作是為了發(fā)展由壓電驅(qū)動器驅(qū)動的中尺度、腿式機器人。與上面的壓電驅(qū)動腿式機器人相比,仿生思想在機器人的設(shè)計和運動中得到了更多的應(yīng)用??紤]了昆蟲腿的結(jié)構(gòu)和功能,并在機器人中采用了最常見的四足動物移動類型。 本文采用了一種壓電復(fù)合致動器,即輕質(zhì)壓電陶瓷復(fù)合曲線致動器(LIPCA)。LIPCA用于生成機器人的兩種運動步態(tài)。LIPCA由壓電陶瓷層和其他玻璃/環(huán)氧、碳/環(huán)氧層組成(見圖1)。在我們的機器人中使用了多個版本的LIPCAC2,因為實驗結(jié)果表明,LIPCAC2在其他系列[4]中產(chǎn)生的位移最大。圖1LIPCA-C2的結(jié)構(gòu):PZT陶瓷層,碳/環(huán)氧樹脂和玻璃/環(huán)氧樹脂。LIPCA作為中尺度腿機器人的執(zhí)行機構(gòu)具有許多優(yōu)點。首先,LIPCA是一個線性致動器,因此非常適合有腿機器人機構(gòu)[5]。第二,LIPCA是一種輕量級執(zhí)行器,這是中尺度機器人的理想屬性。第三,與其他類型的壓電復(fù)合作動器相比,LIPCA具有更高的力和更大的位移。不幸的是,LIPCA也有一些缺點。對于一個完全自主的移動,機器人需要攜帶額外的負載,通常包括一個控制電路和一個電池,這需要一個致動器產(chǎn)生更強的力量。然而,LIPCA的活性還不夠強。此外,位移也不是很大,這迫使建立一個大型機械放大器。結(jié)果,這個機制變得更加復(fù)雜和沉重。最后,像其他壓電驅(qū)動器一樣,LIPCA需要高驅(qū)動電壓才能工作。因此,使用LIPCA作為腿式機器人的執(zhí)行器,盡管有其缺點,但需要對運動機制進行巧妙的設(shè)計,這導(dǎo)致了仿生思想的應(yīng)用。2機器人設(shè)計2.1四足動物的運動自然界中有很多運動類型可以應(yīng)用于四足機器人,其中行走和跳躍是最常見的運動(見圖2)。在行走過程中,一邊的前腿和另一邊的后腿形成一對,當機器人移動時,它們的移動處于同一階段。相反,在跳躍運動中,兩條前腿組成一對,兩條后腿組成另一對,兩對在相反的階段移動。下一節(jié)將介紹我們的四足機器人原型的跳躍運動。圖2.行走和跳躍運動四足動物(前視圖)。2.2腿設(shè)計在中尺度腿式機器人的設(shè)計中,最重要的因素是機構(gòu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油漆儲存與運輸安全規(guī)范
- 物流公司員工宿舍管理規(guī)定
- 辦公空間智能化改造合同樣本
- 生產(chǎn)線設(shè)備缺陷管理規(guī)范
- 電力行業(yè)合同管理準則
- 城市公交安全守則
- 郵政快遞員聘用合同范本
- 蕪湖保齡球館租賃合同
- 山東教育設(shè)施建設(shè)合同
- 電力維修灰工施工合同
- 微課《鄉(xiāng)愁》全國一等獎教學(xué)設(shè)計
- 九年級主題班會《心理健康》課件
- 三年級上冊美術(shù)課件-4前前后后 |人教新課標 (共20張PPT)
- 《城市生態(tài)學(xué)》考試復(fù)習(xí)題庫(含答案)
- 小學(xué)飲食營養(yǎng)與健康班會課件
- 幼兒衛(wèi)生保健 第七章幼兒常見意外事故及急救課件
- 主題班會《反對邪教-從我做起》
- 六年級上冊數(shù)學(xué)課件-7.4 長方體和正方體整理與復(fù)習(xí)丨蘇教版 (共14張PPT)
- 建筑節(jié)能工程竣工驗收報告3篇(施工單位節(jié)能驗收報告)
- 內(nèi)科學(xué)-骨髓增生異常綜合征(MDS)
- 老年助餐服務(wù)工作總結(jié)
評論
0/150
提交評論