潘濤,李發海,李澤杰,董浪
(湖北汽車工業學院 電氣與信息工程學院,湖北十堰,442002)
近20年,科技高速發展,人工智能也從無到有,而機器人作為高新科技的一個產品,也在不斷地進化升級,并在諸多行業中,影響著人類的生活生產。
人類在機器人的設計與制造上從未停止腳步,某些國家甚至把機器人發展列入“國家計劃”中,而國內的機器人在工業、制造業等行業上也得到廣泛的應用,同時隨著人工智能的發展,讓機器人的外觀和功能也具有了多樣性,不同功能的機器人在不同領域幫助人更好的或者代替人類去完成工作,例如在消防領域,有消防機器人代替消防員近距離進行救火任。可以說機器人的應用場所和應用功能也在一定程度上決定了機器人的設計理念,該文所寫的交叉足機器人也是根據模仿一項體育田徑比賽項目進行設計,從而使其實現相關的動作,機器人可以模仿人類一些動作,可以實現多種功能,具有較大的實際價值。
對于多種不同的方案進行研究討論,我們最終選擇最佳方案。方案實際上是以STM32F103單片機作為基礎,根據交叉足機器人在做動作時可能遇到的各種不同的問題,人為對單片機編程并輸入指令,并且調整好姿勢,然后根據不同動作進行編程并且提高穩定性。除此之外,還要考慮多種不同的外在影響,確保機器人在做動作中可以保持穩定性、可靠性。
該機器人的核心點是STM32F103單片機,通過我們所學的知識,使用C語言對單片機進行編寫和改進,使其可以控制多個舵機并且通過機械結構做出對應的動作,從而實現相關的功能;機器人設計六個舵機模擬人類的關節作為關節驅動,即6個自由度,每條腿3個,可以靈活地做出動作;一個舵機控制板作為模擬舵機的驅動從而控制機器人完成不同動作,以及一個電源為機器人供電。

圖1
交叉足機器人要求可以穩定準確地做出動作,能夠穩定前進以及一些簡單的抓拿動作,所以必須得設計好機械結構。我們根據人類的行走特點,每天腿選取三個舵機作為關節驅動,由于電機的旋轉角度為±90°,所以將機器人每條腿的髖部和膝蓋的2個舵機豎直放置,腳踝處的舵機水平放置的,其中髖關節處的舵機負責抬腿,實現前進,膝關節用于調節整個機器人的重心,并且根據實際情況進行調節使機器人保持平衡,踝關節在于配合膝關節,與地面直接接觸,使機器人在行走的過程中,更加平穩。
在選取材料方面,我們選擇了重量和硬度適中的金屬作為機器人主要的框架,但是也用到了一些塑料板作為輔助材料,并且在材料使用方面必須是沿機器人中軸線對稱,使其左右重量一樣。為了確保機器人在行走時具有更好的平穩性,以及在做動作時手臂可以支撐起機器人全部重量,我們將機器人的手臂也設計為金屬的。
頭部設計。在使得機器人在翻跟頭時可以保持平衡,并且不影響美觀的基礎下,我們設計了Y型頭部,這樣的頭部設計還可以使得機器人在翻滾過程中有足夠的轉矩,不易發生方向偏移。
軀干設計。軀干包括髖部和膝部,在機器人整個運動中,髖關節和膝關節主要是通過舵機的角度變化來配合踝關節進行運動的,所以髖關節和膝關節要求材質堅硬,并且中間要留適當空間給機器人腳凸出來的交叉齒,除此之外考慮機器人在彎腰準備翻滾和翻滾結束準備站立時的平衡問題,最終決定頭部以下框架為U型。

圖2 機械結構簡圖

圖3 關節驅動分配圖

圖4 足部設計簡圖
踝部設計。由于交叉足機器人的雙腳需要有交叉齒,所以腳部在符合要求的情況下我們設計為扁平足,并且交叉齒長度要盡量長、質量適量重,材質適量硬,這樣才可以保證機器人在單腿站立時可以保持平衡;為使機器人整體在行走和進行其他動作時可以保持平衡,防止方向發生偏移,機器人外觀設計時要把雙腿需要打孔的地方,設計為從側面和正面看,打孔的位置都在一條線上。

圖5 STM32F103RBT6原理圖
控制電路板主要由控制芯片和電源兩部分。由于STM32芯片的內部集成了USB的外設,這也就使得USB電路設計可以有效減小。交叉足機器人的控制是STM32F103RBT6單片機為核心的控制系統。STM32F103RBT6是ST公司基于ARM最新Cortex-M3 架構內核的32位處理器產品,20K的 RAM、12位AD、4個16位定時器和3路USART通訊口等多種資源,時鐘頻率最高可達 72MHz,內置128KB的Flash,最多可以內嵌20KB的SRAM;-2.0~3.6V供電和I/O,有睡眠、終止、待機三種不同是模式。電源需要同時為6個舵機和控制芯片供電,為了使電源可以持續穩定的供電,所以需要加入適量的穩壓模塊。
黃婉秋說自己沒有什么特別的養生之道,只是心態好。現在日子好過了,都想有一個健康的身體。她覺得,身心都健康才是真正的健康,而要做到這一點,保持一個良好的心態非常重要:“以我自己的經驗來說,我覺得我心態比較好,什么事情都可以想得很開。我還喜歡換位思考,總為別人想得多一些,我對人比較包容、寬容。這樣一來,你就沒有什么更多的煩惱了,這樣你的身心一定會非常健康愉快。”
當下可以作為動力源的電機有多種,包括直流電機、交流電機、步進電機以及伺服電機等。但是一些電機不符合我們的選取,例如交流電機不夠精確,通電則動,斷電則停不符合我們對機器人精度設計的要求;步進電機同樣因為精度不夠而無法應用到交叉足機器人中。設計交叉足機器人的要求時在行走或做出動作時穩定、精確、且能長時間工作,綜合考慮,我們最終決定全區伺服電機作為動力源。
舵機內部包括了一個小型直流馬達;一組變速齒輪組;一個反饋可調電位器;和一塊電子控制板。其中,在工作的時候,馬達提供了最開始的動力,然后變速齒輪組開始工作,從而使其產生更大的扭力再輸出,當齒輪組的變速比愈來愈大時,馬達的輸出扭力同樣也越來越大,即能承受的重量更大,但轉動的速度將會越低。
在工作時,馬達驅動減速齒輪組,其輸出端帶動一個線性的比例電位器作位置檢測,該電位器把轉角坐標轉換為一比例電壓反饋給控制線路板,控制線路板將其與輸入的控制脈沖信號比較,產生糾正脈沖,并驅動馬達正向或反向地轉動,使齒輪組的輸出位置與期望值相符,令糾正脈沖趨于為0,從而達到使伺服馬達精確定位的目的。

圖6 舵機內部結構圖
舵機有多種控制方式,根據我們選取的電機特點,最終我們選擇脈沖控制方式也稱為差分控制。在舵機動作時,接收器接收兩路高速脈沖,由于兩路高速脈沖存在一定的相位差,所以電機運行的時候有兩種旋轉方向,即正轉和反轉,在電機工作時,兩相高速脈沖相互交替,這種控制方式在實際應用中,具有很高的抗干擾能力,更加符合我們對機器人的要求。
交叉足機器人在軟件的設計方面,用Proteus和Keil兩款軟件上進行程序編寫,根據我們所需要的功能,編寫不同的功能模塊,然后將編寫好的C語言程序嵌入單片機后,當我們用USB將機器人與上位機間接控制機器人時,在上位機軟件上我們可以調節不同舵機的角度,從而可以將機器人的多個舵機同時運作,使其完成設計的動作。編寫設計合理的程序植入單片機,設計出更多不同的動作模塊,使機器人能夠做出更多不同的動作,從而實現功能多樣性。
現在主要的步態規劃方法有:基于實驗的規劃方法、基于能量原理的規劃方法、基于力學穩定性的規劃方法。我們采用的是最后一種,先計算出符合要求的、理想的ZMP軌跡,然后推導每個關節的運動函數從而實現需要的理想行走。

圖7 程序流程圖
從機器人的動作我們可以得出,機器人主要可以分為兩個階段,分別單腳支撐和雙腳支撐,所以為了使得機器人在動作時保持平衡,需要使得其重心保持不變。我們將步態規劃也分為兩個階段:
(1)從雙腳站立到單腳抬起向前邁進,重心向前移動;
(2)擺動腿收回并邁向下一步,重心由支撐腿向擺動腿移動。

圖8 步態規劃流程圖
交叉足機器人在動作調試時,首先用USB線將機器人與電腦上連接,然后打開上位機軟件,選擇對應的端口,波特率選擇9600,然后電機打開串口,待紅燈變成綠燈,表明成功連接上位機。在整個窗口中,左邊的使舵機控制面板,可以滑動滑塊,控制舵機的運動角度,通過多個舵機的控制,我們可以把所有舵機的值保存下來,單調好一個動作后,我們點擊“添加動作”,此時動作組數據面板會顯示當前所有舵機的舵機值,運動的時間為“動作時間”中的數;多個動作可以組成動作組,此時我們點擊保存文件。
若想完成脫機運行,打開想要下載的動作組文件,然后選擇要下載的動作組編號,點擊下載,待彈跳出來的窗口顯示“下載完成”,即下載成功。使機器人可以脫機運行,機器人內設有內存卡,可以將合適的音樂也導入進去,使機器人伴隨著音樂做相應的動作。

圖9 交叉足機器人上位機圖
該機器人在外觀、和功能上都模仿了人類的體育田徑比賽,設計了6個自由度,滿足其在動作時不同位置的要求;外觀上設計了兩條腿,每條腿3個伺服電機作為關節驅動;材料主要采用了重量和硬度適中的金屬;軟件方面主要是用C語言進行程序編寫,采用不同的編程思路,反復實驗,選取最合適的程序方案,并在Keil和Proteus上進行在線仿真,確保機器人可以準確穩定地做出動作;但最關鍵的點還是在于對單片機的應用程度,單片機的應用程度達不到將無法對6個舵機準確控制從而無法達到穩定、準確的要求。
在整個研究過程中,雖然遇到了許多未曾見過的問題,但在指導老師和團隊成員的共同努力下,我們還是比較順利地完成了此次的設計。并且對所學知識有了更有深度的理解,以及知道如何應用到實際中。更清楚地了解了交叉足機器人的適應性和發展性,使得交叉足機器人在實際應用中,得到很好的改進,也在不斷地適應來自其他的優秀設計思路;這也是對我們提出了更高的要求,需要我們去攀登更高的山峰,不斷提高我們的創新能力和動手能力,及時總結反思,不斷地提升自己,從而更快地適應新形勢下的人工智能。同時在我們今后對交叉足機器人的研究中,也將思考以下的問題:
(1)機器人如何才能達到在不同的路況自主調節;
(2)機器人可以進行怎樣的升級,使它的使用價值更大,應用范圍更廣;
(3)機器人怎么設計才可以使它更加環保,能夠多次利用。