陽(yáng)超偉, 彭 熙,2,3, 張連發(fā),2,3, 陳婉清, 李睿穎, 葉綾明, 胡 雯
(1 華中師范大學(xué) 計(jì)算機(jī)學(xué)院, 武漢 430079; 2 湖北省高等學(xué)校計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)教學(xué)示范中心, 武漢 430079;3 湖北省人工智能與智慧學(xué)習(xí)重點(diǎn)實(shí)驗(yàn)室, 武漢 430079)
傳統(tǒng)的移動(dòng)機(jī)器人如輪式、履帶式,雖然具有很快的移動(dòng)速度,但容易受地形約束。 憑借對(duì)復(fù)雜與危險(xiǎn)地形具有高適應(yīng)性的優(yōu)點(diǎn),足式機(jī)器人已成為當(dāng)今移動(dòng)機(jī)器人的研究熱點(diǎn),而四足機(jī)器人相較于雙足機(jī)器人承載能力強(qiáng)、穩(wěn)定性好,同時(shí)又比六足、八足等多足機(jī)器人結(jié)構(gòu)簡(jiǎn)單,因此受到各國(guó)研究人員的 普 遍 重 視。 其 中, 最 典 型 的 有Bigdog[1]、HyQ2Max[2]、ANYmal[3]和Cheetah[4]。
本文提出了一種基于樹莓派4B 的四足機(jī)器人設(shè)計(jì)方法且加以實(shí)現(xiàn),并以RPI Camera V2 視覺識(shí)別模塊、激光測(cè)距傳感器與慣性傳感器為例增強(qiáng)了機(jī)器人的環(huán)境感知能力與智能性。
犬類生物的前腿骨主要由掌骨、腕骨、前臂骨(包括尺骨和橈骨)、肱骨和肩胛骨組成,包括了3個(gè)關(guān)節(jié):腕關(guān)節(jié)、肘關(guān)節(jié)和肩關(guān)節(jié)。 圖1 為犬類生物的全身骨骼圖[5]。 其中,肱骨是犬類生物大腿部分的支撐骨,小腿部分由前臂骨(尺骨和橈骨)支撐。
圖1 犬類生物的全身骨骼圖Fig. 1 A complete skeleton of a canine
犬類生物的后腿骨主要由跖骨、腓骨、股骨、髖骨、脛骨構(gòu)成,包含了3 個(gè)關(guān)節(jié):跗關(guān)節(jié)、膝關(guān)節(jié)和髖關(guān)節(jié)。 其中,大腿處由股骨支撐,小腿處由脛骨支撐。
腿部結(jié)構(gòu)是四足機(jī)器人實(shí)現(xiàn)各種動(dòng)作的關(guān)鍵部分。 基于對(duì)犬類生物的腿部骨骼結(jié)構(gòu)仿生分析,四足機(jī)器人的腿部由大腿、小腿和腳掌三部分構(gòu)成。四足機(jī)器人后腿、前腿的結(jié)構(gòu)簡(jiǎn)圖分別如圖2、圖3所示。
圖2 四足機(jī)器人的后腿結(jié)構(gòu)簡(jiǎn)圖Fig. 2 A diagram of the hind legs of a quadruped robot
圖3 四足機(jī)器人的前腿結(jié)構(gòu)簡(jiǎn)圖Fig. 3 A diagram of the front legs of a quadruped robot
研究表明,在腿部結(jié)構(gòu)設(shè)計(jì)上,內(nèi)膝肘式具有較佳的行走性能、穩(wěn)定性能、續(xù)航性能和綜合性能,且從機(jī)器人配置對(duì)性能的敏感度而言,內(nèi)膝肘式對(duì)髖關(guān)節(jié)與膝關(guān)節(jié)的幅值變化敏感度更低,因此更加穩(wěn)健[6]。 圖4 為內(nèi)膝肘式的簡(jiǎn)化結(jié)構(gòu)。
圖4 四足機(jī)器人內(nèi)膝肘式結(jié)構(gòu)簡(jiǎn)圖Fig. 4 Schematic diagram of internal knee - elbow structure of a quadruped robot
在自由度的選擇上,四足哺乳動(dòng)物的腿部一般包括髖、膝和踝3 個(gè)關(guān)節(jié)。 合理設(shè)計(jì)四足機(jī)器人的自由度,使其能夠在平地上完成所有的行走過程,實(shí)現(xiàn)前進(jìn)、后退、轉(zhuǎn)彎等動(dòng)作,是機(jī)器人設(shè)計(jì)的一個(gè)重要問題。
在行走過程中,四足機(jī)器人為了仿真髖關(guān)節(jié)前后和左右擺動(dòng), 在結(jié)構(gòu)上將其簡(jiǎn)化為2 個(gè)自由度;膝關(guān)節(jié)為了實(shí)現(xiàn)前后擺動(dòng),將其簡(jiǎn)化為1 個(gè)自由度;踝關(guān)節(jié)用于實(shí)現(xiàn)前后和左右擺動(dòng),將其簡(jiǎn)化為2 個(gè)自由度。 本文設(shè)計(jì)的四足機(jī)器人腿部共有20 個(gè)自由度,4 條腿各有5 個(gè),腿部的自由度仿真使得四足機(jī)器人可以在多種環(huán)境下靈活運(yùn)動(dòng)。 機(jī)器人全身自由度設(shè)置如圖5 所示。
圖5 四足機(jī)器人全身自由度設(shè)置簡(jiǎn)圖Fig. 5 Schematic diagram of the whole body freedom setting of a quadruped robot
基于對(duì)犬類生物的仿生分析,機(jī)器人整體結(jié)構(gòu)采用3DsMAX 2020 軟件進(jìn)行三維建模,建模結(jié)構(gòu)如圖6 所示。 該四足機(jī)器人主要由頭部、前部軀體、中部軀體、后部軀體、大腿、小腿和腳掌等多個(gè)部分組成。 通過3D 打印技術(shù)制作出的實(shí)體機(jī)器人如圖7所示。 其中部軀體內(nèi)部用于電源模塊以及控制模塊的安裝,前部軀體用于傳感器模塊的安裝。
圖6 四足機(jī)器人的三維模型Fig. 63D model of a quadruped robot
圖7 四足機(jī)器人的實(shí)物展示圖Fig. 7 A demonstration of a quadruped robot
四足機(jī)器人是由控制系統(tǒng)發(fā)出動(dòng)作指令,以控制機(jī)器人的動(dòng)作。 該系統(tǒng)的硬件部分主要由樹莓派4B、舵機(jī)調(diào)試模塊、串行總線舵機(jī)控制器、RPI Camera V2 視覺識(shí)別模塊、串行總線伺服舵機(jī)、電源和傳感器等部分組成。 樹莓派4B 開發(fā)板利用串口與外部進(jìn)行通信,處理所接收到的外界信息,主要控制機(jī)器人的動(dòng)作展示和實(shí)現(xiàn)人機(jī)交互功能。 RPI Camera V2 視覺識(shí)別模塊以及其他傳感器用以增強(qiáng)機(jī)器人的環(huán)境感知能力與智能性,串行總線舵機(jī)控制器可以直接控制串行總線伺服舵機(jī)。 硬件系統(tǒng)的引腳連接如圖8 所示。 由圖8 可看到,對(duì)系統(tǒng)各組成部分的設(shè)計(jì)內(nèi)容,可給出剖析闡釋如下。
圖8 控制系統(tǒng)引腳連接圖Fig. 8 Connection diagram of control system pins
(1)樹莓派與舵機(jī)控制板的通信。 控制系統(tǒng)在運(yùn)行過程中,樹莓派4B 通過mini 串口中分配給排針的GPIO TXD RXD 串口與舵機(jī)控制器的TXD RXD串口交叉連接進(jìn)行串口通信,并且通過配置文件修改自身的設(shè)備樹,將其高性能硬件串口映射到GPIO TXD RXD 接口上。 兩者的數(shù)據(jù)端口需要將各類參數(shù)完全匹配才能實(shí)現(xiàn)通信,且在任意時(shí)刻,兩者間只能實(shí)現(xiàn)半雙工通信,即允許在樹莓派4B 和舵機(jī)控制器兩個(gè)方向上傳輸數(shù)據(jù),但同一時(shí)間內(nèi)只能存在一個(gè)方向上的數(shù)據(jù)傳輸,方向的選擇由樹莓派4B 控制。
圖9 為串口讀取的舵機(jī)控制數(shù)據(jù),即對(duì)應(yīng)每個(gè)舵機(jī)的旋轉(zhuǎn)角度,樹莓派4B 將其進(jìn)行處理后,通過串行舵機(jī)控制器,傳遞到每個(gè)舵機(jī)上,從而控制舵機(jī)的旋轉(zhuǎn)角度。
圖9 串口讀取的舵機(jī)控制數(shù)據(jù)示意圖Fig. 9 Schematic diagram of steering gear control data read by serial port
( 2) 串 行 舵 機(jī) 的 選 擇。 本 文 選 用FASHIONSTAR 公司的RP8-U45UART 串行總線伺服舵機(jī),舵機(jī)內(nèi)部有多項(xiàng)反饋保護(hù)功能,并且支持TTL 協(xié)議,舵機(jī)扭矩可達(dá)45 kg/cm,較好地滿足了四足機(jī)器人的多方面需求。 控制器通過總線給舵機(jī)發(fā)送控制指令,使各個(gè)舵機(jī)在接收到指令后發(fā)生一定角度的旋轉(zhuǎn),從而實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)。
(3)電壓情況。 為使串行總線伺服舵機(jī)的控制板能夠保持正常工作狀態(tài),供給的電壓需維持在6~8.4 V 這一范圍。 在實(shí)際運(yùn)行過程中,四足機(jī)器人所搭載電池組的電壓不得低于7.6 V,否則舵機(jī)可能會(huì)因供電不足出現(xiàn)抖動(dòng)的情況。 為保證樹莓派的工作電壓滿足5 V,本文選擇板載SWl06 移動(dòng)電源芯片,解決了樹莓派工作電壓與舵機(jī)控制板電壓不符的問題,同時(shí)也可以為RPI Camera V2 模塊(工作電壓為5 V)供電,以此增加機(jī)器人的智能模塊。
(4)碰撞傳感器。 為了控制機(jī)器人的智能模塊并增加其多樣性,本文所設(shè)計(jì)的四足機(jī)器人安裝了碰撞傳感器作為機(jī)器人的模式選擇開關(guān),當(dāng)碰撞開關(guān)每被按下一次,傳感器向樹莓派4B 輸出一次低電平。 本文通過安裝2 個(gè)碰撞傳感器,實(shí)現(xiàn)了人機(jī)交互模塊中各個(gè)視覺識(shí)別進(jìn)程與姿態(tài)控制進(jìn)程的并行性。
(5)激光測(cè)距傳感器。 激光測(cè)距傳感器憑借激光的能量集中、可遠(yuǎn)距離傳播、單色性與相干性好等特點(diǎn),利用三角形幾何原理來(lái)測(cè)量目標(biāo)物與傳感器之間的距離,以實(shí)現(xiàn)高精度的計(jì)量和檢測(cè)[7]。 激光測(cè)距傳感器輸出的是模擬電壓信號(hào),本文所研制的四足機(jī)器人需要多個(gè)激光測(cè)距傳感器協(xié)同工作,而多個(gè)相同的傳感器一起使用I2C 通信時(shí)會(huì)發(fā)生地址沖突,所以需要借助I2C 級(jí)聯(lián)擴(kuò)展器,控制系統(tǒng)才能解決地址沖突問題并正常處理數(shù)據(jù)。 該激光測(cè)距模塊共有4 個(gè)引腳接口,分別是:TXD 引腳、RXD 引腳、5 V 引腳與GND 引腳。
(6)慣性傳感器。 本文所選用的集成慣性傳感器,即九軸加速度計(jì)電子陀螺儀,型號(hào)為JY901。JY901 使用MPU9250,可以修改I2C 的通訊地址,并且基本可以在各個(gè)平臺(tái)上進(jìn)行JY901 陀螺儀數(shù)據(jù)的讀取。 JY901 九軸加速度計(jì)電子陀螺儀傳感器如圖10 所示。
圖10 JY901 九軸加速度計(jì)電子陀螺儀傳感器Fig. 10 JY901 nine-axis accelerometer electronic gyroscope sensor
四足機(jī)器人控制程序工作流程為:首先,樹莓派4B 初始化后通過自啟動(dòng)文件進(jìn)入控制模塊,該模塊能控制人機(jī)交互模塊以及動(dòng)作展示模塊,且首先默認(rèn)喚醒人機(jī)交互模塊。 進(jìn)入人機(jī)交互模塊后,系統(tǒng)并行運(yùn)行各個(gè)智能化視覺識(shí)別進(jìn)程,進(jìn)程中借助RPI Camera V2 視覺識(shí)別模塊將攝像頭傳遞到樹莓派4B 中的圖像數(shù)據(jù)進(jìn)行處理分析與反饋,增強(qiáng)了機(jī)器人的環(huán)境感知能力與智能性。 人機(jī)交互模塊完成后,系統(tǒng)根據(jù)控制視覺識(shí)別的碰撞傳感器反饋的低電平信號(hào),判斷是否結(jié)束人機(jī)交互模塊,若結(jié)束,則根據(jù)控制動(dòng)作展示模塊的碰撞傳感器反饋的低電平信號(hào),進(jìn)行后續(xù)動(dòng)作展示的姿態(tài)控制。 四足機(jī)器人控制程序流程如圖11 所示。
圖11 四足機(jī)器人控制程序流程圖Fig. 11 Flow chart of quadruped robot control program
四足機(jī)器人的運(yùn)動(dòng)規(guī)劃關(guān)鍵在于姿態(tài)解算。 姿態(tài)解算是利用慣性傳感器所傳回的四元數(shù)信息,通過計(jì)算與分析歐拉角得出。 這里對(duì)姿態(tài)解算原理擬做研究闡述如下。
四元數(shù)是一個(gè)簡(jiǎn)單的超復(fù)數(shù),在三維中的旋轉(zhuǎn)可以用單位四元數(shù)來(lái)描述。 四元數(shù)的公式定義為:
機(jī)器人裝有慣性傳感器JY901,該傳感器可以直接向樹莓派4B 輸出四元數(shù),下一步則在樹莓派4B 中利用四元數(shù)進(jìn)一步求出歐拉角。
歐拉角是指在一個(gè)固連于剛體的坐標(biāo)系中,由剛體的旋轉(zhuǎn)分別產(chǎn)生俯仰角(pitch)、滾動(dòng)角(roll)、偏航角(yaw)組成的一組獨(dú)立角參量[8]。 通過四元數(shù)計(jì)算出歐拉角即可直觀反映出機(jī)器人姿態(tài)。
首先,本文使用四元數(shù)表示的旋轉(zhuǎn)矩陣Cbn, 根據(jù)公式可知:
又因?yàn)椋?/p>
對(duì)比兩式,即可解得俯仰角、滾動(dòng)角和偏航角的數(shù)學(xué)公式為:
根據(jù)四足機(jī)器人的運(yùn)動(dòng)規(guī)劃要點(diǎn),本文設(shè)計(jì)出機(jī)器人的運(yùn)動(dòng)過程及行走步驟。 首先,機(jī)器人保持站立,使其整體重心垂直于地面。 四足機(jī)器人連續(xù)步態(tài)第一步的實(shí)現(xiàn),要以左前腿與右后腿為支撐,邁出右前腿與左后腿,使得機(jī)器人整體重心集中在左前腿與右后腿上。 以這一步為例,為了實(shí)現(xiàn)這一步驟,需要在自主設(shè)計(jì)的上位機(jī)軟件中調(diào)整第7、8、9、12、13、14 號(hào)舵機(jī)模塊數(shù)值,使機(jī)器人能夠邁出兩腿以繼續(xù)進(jìn)行下一步驟,具體參數(shù)如圖12 所示。
圖12 四足機(jī)器人全身舵機(jī)編號(hào)及其對(duì)應(yīng)的數(shù)值Fig. 12 Quadruped robot whole body steering gear number and its corresponding value
接下來(lái),進(jìn)行機(jī)器人的姿態(tài)解算與比對(duì)判斷,本文機(jī)器人采用了JY901 的姿態(tài)角度傳感器,由gyroscope、accelerometer 和geomagnetic sensor 構(gòu)成,可以協(xié)同工作收集姿態(tài)信息并傳遞給樹莓派4B 控制板進(jìn)行姿態(tài)解算。
樹莓派4B 控制板根據(jù)JY901 所傳回的四元數(shù)信息計(jì)算出機(jī)器人當(dāng)前的俯仰角、滾動(dòng)角與偏航角,判斷并歸納出機(jī)器人的當(dāng)前姿態(tài),并根據(jù)不同情況向串行總線舵機(jī)控制器發(fā)送不同的反饋[9]。 若已符合目標(biāo)條件,則停止進(jìn)行姿態(tài)調(diào)整;若不符合目標(biāo)條件,則做出對(duì)應(yīng)姿態(tài)調(diào)整。 完成調(diào)整后,重復(fù)執(zhí)行該程序,直到動(dòng)作符合目標(biāo)條件。 樹莓派4B 控制板判斷姿態(tài)符合目標(biāo)條件后,進(jìn)行下一個(gè)連續(xù)步態(tài)動(dòng)作的信號(hào)傳輸,并重復(fù)上述過程,即達(dá)到機(jī)器人連續(xù)步態(tài)的效果。 機(jī)器人動(dòng)作姿態(tài)的調(diào)整,需要各個(gè)舵機(jī)的控制來(lái)完成,見表1。
表1 四足機(jī)器人動(dòng)作與舵機(jī)序號(hào)對(duì)應(yīng)表Tab. 1 Corresponding table of quadruped robot action and steering gear serial number
通過硬件收集信息與軟件算法解算,控制系統(tǒng)可以計(jì)算分析出機(jī)器人的姿態(tài)信息,完成機(jī)器人的姿態(tài)解算并進(jìn)行連續(xù)步態(tài)的姿態(tài)控制。
本文在所研制的四足機(jī)器人上安裝了激光測(cè)距傳感器,用于測(cè)量機(jī)器人與障礙物間的距離,實(shí)現(xiàn)了機(jī)器人的避障功能;安裝了慣性傳感器,實(shí)現(xiàn)了姿態(tài)校準(zhǔn)、方向糾正功能。 多種傳感器的融合,使得機(jī)器人具備了適應(yīng)與感知復(fù)雜環(huán)境的能力,實(shí)現(xiàn)了機(jī)器人的智能性。
激光測(cè)距傳感器通過I2C 級(jí)聯(lián)擴(kuò)展器與樹莓派4B 相連,激光測(cè)距儀在傳感器開始運(yùn)行后,每間隔一個(gè)周期就能夠產(chǎn)生并發(fā)送給樹莓派4B 一組二進(jìn)制數(shù)據(jù)。 樹莓派4B 會(huì)統(tǒng)一處理這些二進(jìn)制數(shù)據(jù),然后根據(jù)相應(yīng)的算法生成導(dǎo)航路徑,并根據(jù)相應(yīng)的控制指令來(lái)確定機(jī)器人運(yùn)行的方向。 樹莓派4B 接受到該信息后,會(huì)再次運(yùn)算所接受到信息的冗余,并將該值在之前接受的CRC 域中進(jìn)行一一比對(duì)。 如果比對(duì)后接受到的2 個(gè)值不相同,則表明該命令存在錯(cuò)誤,主機(jī)需再次發(fā)送新的命令。 激光測(cè)距傳感器數(shù)據(jù)處理流程如圖13 所示。
圖13 激光測(cè)距傳感器數(shù)據(jù)處理流程圖Fig. 13 Data processing flow chart of laser ranging sensor
JY901 模塊在使用前要進(jìn)行加計(jì)校準(zhǔn)以去除加速度計(jì)的零偏,隨后進(jìn)行磁場(chǎng)校準(zhǔn)。 進(jìn)行姿態(tài)解算時(shí),樹莓派4B 開機(jī)后首先自動(dòng)運(yùn)行姿態(tài)解算程序,收集慣性傳感器所傳回的加速度、角度等信息,計(jì)算出機(jī)器當(dāng)前俯仰角、滾動(dòng)角與偏航角[10],對(duì)角度數(shù)值進(jìn)行判斷,分析出當(dāng)前姿態(tài),再根據(jù)具體的情況做出相應(yīng)的反應(yīng)。 若已達(dá)到預(yù)期,則保持姿勢(shì)不動(dòng);若未達(dá)到預(yù)期,則做出相應(yīng)調(diào)整。 完成調(diào)整后,重復(fù)執(zhí)行該程序,再次收集姿態(tài)信息加以判斷。 完整的慣性傳感器程序設(shè)計(jì)流程如圖14 所示。
圖14 慣性傳感器程序設(shè)計(jì)流程圖Fig. 14 Flow chart of inertial sensor program design
采用單一的傳感器獲取的信息并不全面可靠,多傳感器的融合實(shí)現(xiàn)了傳感器間的優(yōu)勢(shì)互補(bǔ),提高了系統(tǒng)的穩(wěn)定性和容錯(cuò)性,使得機(jī)器人感知位置的能力更加穩(wěn)定和精確。 多傳感器融合技術(shù)在機(jī)器人的智能化發(fā)展中起著重要作用。
以該四足機(jī)器人所參加的中國(guó)機(jī)器人大賽多足異形項(xiàng)目為例,四足機(jī)器人需在舞蹈展示后感知自身所處位置,位移進(jìn)入場(chǎng)地四角的圈中。 踩圈環(huán)節(jié)的操作流程如圖15 所示。
圖15 四足機(jī)器人踩圈流程圖Fig. 15 Flow chart of quadruped robot treading
本文以傳統(tǒng)年獸形象作為設(shè)計(jì)原型,完成了四足機(jī)器人機(jī)械結(jié)構(gòu)、軟硬件控制系統(tǒng)和傳感器融合的設(shè)計(jì)與實(shí)現(xiàn)。 經(jīng)測(cè)試,該四足機(jī)器人通過不同的碰撞傳感器,能夠分別進(jìn)入視覺識(shí)別系統(tǒng)和機(jī)器人姿態(tài)控制系統(tǒng),兩套系統(tǒng)互不干擾,保證了程序的流暢運(yùn)行,測(cè)試結(jié)果符合預(yù)期目標(biāo)。
本文四足機(jī)器人在承載能力、移動(dòng)速度、功能性等方面有較大發(fā)展空間,這也是未來(lái)四足機(jī)器人進(jìn)一步優(yōu)化和完善的方向。 考慮到四足機(jī)器人的實(shí)際使用場(chǎng)景的多樣性,可以借助基于樹莓派4B 的多傳感器融合技術(shù)為機(jī)器人添加具有各種功能的傳感器,因此本文所研制的四足機(jī)器人在功能方面具有一定的擴(kuò)展性。 隨著四足機(jī)器人的不斷發(fā)展,四足機(jī)器人會(huì)更加智能化,在仿生方面也會(huì)有更大的突破,未來(lái)定能協(xié)助人類實(shí)現(xiàn)更加復(fù)雜的任務(wù)。