王康南 王利霞
摘 要:文中基于仿生學原理,設計了一種以六足昆蟲為原型的六足機器人控制系統,該系統可控制機器人實現多種仿生動作。系統采用主從設計結構,以Arduino開源平臺為主機控制核心,以STM32F103為從機控制核心,通過LDX-218數字舵機來驅動運動關節,在系統軟件的控制下實現了蜘蛛和普通螃蟹兩種行走模式,具有完成多種仿生運動動作以及自主超聲波避障,紅外桌面防跌等功能。實驗結果表明,該六足仿生機器人運動平穩,適應能力強,具有很高的實用價值。
關鍵詞:Arduino平臺;仿生;六足機器人;控制系統
中圖分類號:TP242 文獻標識碼:A 文章編號:2095-1302(2018)01-00-04
0 引 言
在人們對生活的不斷認識和探索過程中,對機器人的需求逐漸增多。其中六足仿生機器人憑借其自身的靈活性、可靠性、穩定性、自主性特點以及對多種復雜地形的適應能力,逐漸成為國內外機器人研究的熱點[1-3]。因而設計研究具有卓越足式移動能力的六足仿生機器人,對于多足機器人技術的相關研究和應用具有重要意義[4,5]。
鑒于上述背景,本文根據六足綱昆蟲的外形結構與運動特性,基于仿生學原理,設計了一種基于Arduino平臺的六足仿生機器人控制系統。根據六足仿生機器人控制功能需求,制定了相應的總體設計方案。采用主從設計結構的控制系統硬件電路以及系統軟件,搭建了一種基于Arduino平臺的六足仿生機器人,并通過樣機實驗驗證了設計的正確性。
1 控制系統總體設計方案
1.1 總體設計方案
根據六足機器人控制系統的設計要求,選用ATmega32u4芯片作為主機的主控芯片,選用STM32F103RBT6作為從機舵機控制板的控制芯片,選用Arduino Leonardo作為二次開發平臺,添加PS2手柄遙控模塊、超聲波模塊、紅外避障模塊和OLED顯示屏模塊,共同完成六足機器人控制系統的搭建。控制系統的整體設計方案如圖1所示。
1.2 主要部件的設計
1.2.1 驅動元件
為滿足六足機器人驅動系統的控制要求,考慮到機器人的經濟性,易操作性及學習的廣泛應用性等,本設計采用舵機驅動控制方案。
舵機是由變速齒輪組、小型直流電機、可調電位器和控制電路組成的一套自動控制系統,舵機通過電源線及信號線與外界連接,在使用過程中可通過對信號線發送指定信號來指定舵機輸出軸的旋轉角度和速度,常作為機器人和航模的驅動部件。因本設計需要不斷控制機器人各關節運行固定的角度來模擬六足機器人的仿生動作,因此選用LDX-218數字舵機作為該設計的驅動元件。它作為機器人專用的伺服電機,不但扭力大,精度高,且采用舵機插拔線控制,便于插拔和舵機延長線的選型及更換,適合多自由度機器人的搭建。舵機實物如圖2所示。
控制方式:舵機輸出軸的角度根據時基脈沖來控制,在0.5~2.5 ms的脈沖控制下,舵機轉動相應的角度。以180°的舵機為例 (本設計選用180°舵機),所對應的控制關系見表1所列。
1.2.2 腿部設計
文中設計的六足機器人的腿部關節采用昆蟲式三自由度關節腿機構,每個腿部關節均由舵機驅動,關節與關節之間的連接構件采用簡單、輕便且堅韌的玻纖代替,在降低機器人重量的同時增加了六足機器人的靈活度。通過舵機控制板驅動相應關節的舵機運動使六足機器人完成腿部運動,確保六足機器人能夠在復雜路況上完成相應的仿生動作。系統從結構上保證了該六足機器人可有效模擬六腳昆蟲的行走方式,并可在多種復雜環境狀況下完成指定動作。
1.2.3 材料選擇
基于對自身重量和電源損耗等因素的考慮,選用碳纖維作為主要肢體材料。碳纖維是一種含碳量高達95%以上且具有高強度、高模量纖維的新型纖維材料。其質量比金屬鋁輕,但強度卻高于鋼鐵,并具有耐腐蝕、高模量的特性。這款材料不僅具有碳材料的固有本征特性,同時還兼備紡織纖維的柔軟可加工性,方便在實驗室對其加工。
2 關鍵硬件電路設計
2.1 主機--Arduino Leonardo控制板
考慮到Arduino開源和易于二次開發的特點,選用將ATmega32u4作為主控芯片的Arduino Leonardo作為主機控制板。
該控制板可直接使用ATmega32u4的USB通信功能,在調試時通過USB連接電腦和Leonardo進行程序編寫;在運行六足機器人時采用外接電源供電方式控制六足機器人的運動。主從機采用串口通信,將舵機控制板的RX接Arduino的TX,舵機控制板的TX接Arduino的RX,并將兩個板子共地 (舵機控制板的GND連接Arduino的GND)。
2.2 從機舵機控制板
2.2.1 電源及USB電路
舵機控制板采用USB供電方式,以FT232RL作為接口轉換芯片。采用USB供電模式的優點在于僅需一根USB線就可使用該舵機控制板,包括下載、供電、調試等。所設計的從機電源及USB外圍電路如圖3所示。
2.2.2 從機主控電路
鑒于六足機器人的自由度較多,且每個關節均需采用舵機驅動,故應對多個舵機進行控制。本設計采用STM32F103RBT6作為舵機控制板的控制芯片。
STM32F103RBT6豐富的Flash資源和SRAM,以及串口、USB、IO引腳等已完全滿足其作為舵機控制板來存儲動作信息并接收主機指令,完成指定動作的需求,且價格較低,是從機舵機控制板主芯片的較好選擇。
基于STM32F103RBT6的舵機控制板CPU部分的從機主控電路如圖4所示。
2.2.3 E2PROM電路
六足機器人的運動調試需要存儲指定的動作組。為了存儲足夠多的動作,本設計選用容量為256 KB的AT24C256 E2PROM芯片。
基于該芯片設計的從機E2PROM電路如圖5所示。
2.2.4 主要接口電路
六足機器人共有18個自由度,那么STM32F103RBT6需提供18個I/O口給舵機以進行控制,為了便于后期進行二次開發,應多預留一些舵機控制I/O口。為了實現主機與從機的通訊,留置RX、TX接口便于后期實現主從機連接。
接口電路如圖6所示。設計完成的舵機控制板如圖7所示。
2.3 主要傳感器模塊
在本設計中分別采用紅外遙控模塊、超聲波測距模塊、紅外避障模塊等實現六足機器人的遙控操作,使六足機器人具有自主避障和防跌落功能。
2.3.1 紅外遙控接收模塊
選用VS1838B作為紅外遙控接收模塊,該模塊可在2.7~5.5 V電壓下正常工作。同時該模塊采用低功耗設計,能夠在寬角度及長距離條件下正常接收遙控信號。
2.3.2 超聲波測距模塊
系統選用HC-SR04超聲波測距模塊,其傳輸距離范圍較寬,且測距精度較高,已廣泛應用于機器人測距避障領域。該模塊含有超聲控制電路、發射器以及接收器。
2.3.3 紅外防跌落模塊
紅外防跌落模塊的檢測距離可通過模塊上方的小電位器旋鈕調節,有效距離范圍為2~30 cm。該模塊具有干擾小、檢測靈敏、便于裝配等優點。將該模塊安裝于六足機器人的足部來探測桌面邊緣,實現防跌落功能。
2.3.4 顯示模塊
采用OLED顯示模塊顯示電源、行走距離以及障礙物距離等信息。OLED具有對比度高、厚度薄、視角廣、反應速度快等優點。該模塊具有多種接口方式,如并行接口,SPI串行接口及I2C串行接口。本設計采用I2C串行接口模式。主要傳感器模塊的連接如圖8所示。
3 控制系統軟件設計
文中所搭建的六足仿生機器人在上電開機后進行初始化設置,將各腿部關節的舵機位置、超聲波云臺小舵機位置以及OLED顯示屏信息復位,之后運行三角步態行走程序。在行走過程中通過超聲、紅外等傳感器獲取相關信息,送給Arduino主機接收處理,協調從機完成步態行走的調整控制。下文重點介紹六足仿生機器人在行走避障和桌面防跌落實驗的軟件設計:
(1)在行走避障實驗中,為防止在障礙物檢測過程中將檢測到的腿部機構誤認為是障礙物而執行避障程序進行轉彎的問題,六足仿生機器人采用高姿態前進模式。在前進過程中,模塊會自動讀取機身與障礙物之間的距離,并做出相應反饋控制,從而完成機器人的自動避障,具體流程如下:
①若超聲波檢測的障礙物距離大于35 cm,則繼續保持前進動作;
②若超聲波檢測的障礙物距離等于35 cm,則左右搖頭,尋找沒有障礙物或距離障礙物較遠的方向,通過對兩個方向的檢測來驅動機身左轉或右轉;
③若障礙物突然出現,即超聲波檢測的障礙物距離小于35 cm,則執行后退動作,后退至35 cm處再執行步驟②。
行走避障軟件設計流程如圖9所示。
(2)在桌面防跌落實驗中,運行程序前先調整紅外避障模塊的避障距離,開機初始化后運行低姿態前進動作,在行進過程中利用安裝于足部的紅外避障模塊檢測反饋是否能感應到桌面信息。具體流程如下:
①若避障模塊仍能感應到桌面信息,則繼續前進;
②若避障模塊檢測不到桌面信息,則執行左轉或右轉動作以防止跌落;
③若左前腿檢測不到桌面信息,則執行右轉動作;若右前足檢測不到桌面信息,則執行左轉程序以防止跌落。
桌面防跌落軟件設計流程如圖10所示。
4 調試與實驗
在上述工作的基礎上完成的六足機器人樣機如圖11所示。在機器人軀干上預留傳感器的安裝孔和布線孔,便于控制主板、電池、PS2接收機、超聲波云臺舵機、紅外傳感器等各傳感模塊的安裝及布線。在安裝機器人腿部關節時,需調整舵機處于中位以保證機器人前后足不會發生碰撞,并調整機器人各舵機的偏差,減少機器人舵機安裝時的誤差,以保證后期機器人調試順利進行。
所設計實現的六足仿生機器人可實現12種仿生動作,3種仿生姿態,5種可調節速度。該仿生機器人既能夠通過PS2手柄和紅外控制其在多種復雜環境下完成必要的動作,實現所需功能,又能自主脫機運行仿生避障、桌面防跌等附加功能。
5 結 語
本設計給出了一種六足仿生機器人的控制系統設計方案,搭建完成了六足仿生機器人樣機。該機器人可以很好地模仿并拓展六足昆蟲的運動方式,較輪式或履帶式機器人而言適應性更強。在此基礎上通過增加部分傳感器或設備,拓展機器人的其他實用功能。本設計內容可為今后進一步研究六足機器人的應用工作提供參考與借鑒。
參考文獻
[1]徐小云,顏國正,丁國清,等.六足移動式微型仿生機器人的研究[J].機器人, 2002, 24(5): 427-431.
[2]朱國杰,田文凱,呂承哲,等.六足仿生機器人機構與控制系統設計[J].測控技術, 2017, 36(1): 55-58.
[3]李滿宏,張明路,張建華,等.六足機器人關鍵技術綜述[J].機械設計, 2015(10): 1-8.
[4]韓寶玲,劉廣新,羅慶生,等.基于AVR和STM32的六足仿生機器人控制系統[J].計算機系統應用,2016, 25(6): 59-63.
[5]孫培.六足仿生機器人控制系統研究[D].南京:南京林業大學,2010.
[6]謝杰騰,顏曉文.基于Android手機語音和Arduino控制板的機器人控制系統[J].物聯網技術,2015,5(3):101-102.
[7]李嘉秀.基于Arduino平臺的足球機器人在RCJ中的應用[J].物聯網技術,2015,5(3):97-100.
[8]王賀,王鳳嬌,于蘭浩,等.基于Arduino的六足仿生機器人的設計與研究[J].南方農機,2017,48(16):33.