《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 自平衡機器人的控制系統(tǒng)設(shè)計
自平衡機器人的控制系統(tǒng)設(shè)計
摘要: 移動式機器人在各行各業(yè)具有廣泛的應(yīng)用,,而輪式移動機器人由于具有結(jié)構(gòu)簡單,、可控性強,、成本低等優(yōu)點,,成為移動式機器人研究的一個主要方向,。自平衡機器人采用水平布置的兩輪結(jié)構(gòu),,本身是一個不穩(wěn)定體,。也就是說,,自平衡機器人在靜止?fàn)顟B(tài)下,,不能保持平衡,車體總是要向前或向后傾倒,;而在運動狀態(tài)下,,可以通過一定的控制策略使它達(dá)到動態(tài)平衡。
Abstract:
Key words :

引 言
    移動式機器人在各行各業(yè)具有廣泛的應(yīng)用,,而輪式移動機器人由于具有結(jié)構(gòu)簡單,、可控性強、成本低等優(yōu)點,,成為移動式機器人研究的一個主要方向,。自平衡機器人采用水平布置的兩輪結(jié)構(gòu),本身是一個不穩(wěn)定體,。也就是說,,自平衡機器人在靜止?fàn)顟B(tài)下,不能保持平衡,,車體總是要向前或向后傾倒,;而在運動狀態(tài)下,可以通過一定的控制策略使它達(dá)到動態(tài)平衡,。
    由于自平衡機器人具有內(nèi)在不穩(wěn)定性和結(jié)構(gòu)靈活性,,國內(nèi)外機器人愛好者設(shè)計了多種結(jié)構(gòu)、外觀各異的自平衡機器人,,嘗試采用各種控制策略使其達(dá)到自平衡控制,。通常這類機器人采用姿態(tài)傳感器檢測機器人車體的傾倒角度和傾倒角速度,根據(jù)當(dāng)前機器人姿態(tài)控制伺服電機驅(qū)動電壓的轉(zhuǎn)向和轉(zhuǎn)速,,從而使機器人保持平衡,。該方式制作的自平衡機器人雖然控制性能良好,但成本高,,不適合廣泛推廣,。本文設(shè)計的機器人嘗試采用紅外測距傳感器測量車體與地面的距離,,通過計算獲取機器人的姿態(tài)信息,進而實現(xiàn)機器人的自平衡,。


1 系統(tǒng)結(jié)構(gòu)
    本文設(shè)計的自平衡機器人系統(tǒng)主要由機械行走裝置,、控制系統(tǒng)和傳感器3部分組成,如圖1所示,。

    機械行走裝置主要由車體平臺,、電機驅(qū)動器、直流無刷電機,、齒輪減速機構(gòu)和車輪組成,。機器人采用48 V電池供電,通過DC-DC模塊轉(zhuǎn)換為5 V和24 V電壓,。其中,,5 V提供給控制系統(tǒng)和傳感器,24 V提供給電機驅(qū)動器,??刂葡到y(tǒng)以ATmega128單片機為主控制芯片,通過SJA1000擴展CAN總線與電機驅(qū)動器通信,。紅外測距傳感器的輸出是與距離成正比的模擬電壓值,,輸入到單片機的A/D采樣端口進行處理,從而得到距離信息,。機器人的系統(tǒng)結(jié)構(gòu)框圖如圖2所示,。

2 姿態(tài)信息獲取
    機器人的姿態(tài)信息包括傾倒的角度和角速度。如圖3所示,,機器人左右兩側(cè)水平位置各安裝有1個紅外測距傳感器,,可以測量與地面之間的距離d1和d2。當(dāng)機器人在豎直狀態(tài)時,,左右傳感器距離差為零,。當(dāng)機器人傾倒時,距離差與傾倒角度θ成函數(shù)關(guān)系如下:
    sin θ=(d2-d1)/D

    其中,,D為傳感器之間的距離,。機器人在豎直動態(tài)控制時傾倒角度范圍較小,此時sinθ≈θ,,即可由傳感器的距離信息得到機器人的傾倒角度,。角速度可以通過θ對時間求導(dǎo)獲得。
    選用的紅外測距傳感器為Sharp公司的GP2D12,,輸出為0.4~2.4 V的模擬信號,,對應(yīng)的測量距離為10~80 cm。在同一溫度下,傳感器的輸出與測量結(jié)果呈良好的線性關(guān)系,,可以滿足自平衡機器人的要求,。


3 控制系統(tǒng)設(shè)計
3.1 機器人平衡控制原理
    當(dāng)車體偏離平衡位置(豎直位置)向前傾斜時,傳感器采集信息并傳送到單片機進行計算和判斷,,車輪隨之作出響應(yīng)向前運動,,將車體向平衡位置調(diào)整;同樣當(dāng)車體向后傾斜時,,車輪將向后運動,。這樣機器人一直處在傾斜判斷、運動調(diào)整的動態(tài)過程中,,使車體始終保持在平衡位置附近,達(dá)到一種動態(tài)平衡,。
3.2 控制系統(tǒng)硬件設(shè)計
    控制系統(tǒng)主芯片選用Atmel公司基于RISC結(jié)構(gòu)的8位單片機ATmega128,。它采用低功耗CMOS工藝;具有豐富的片上資源,,包括4個定時器,、4 KB的數(shù)據(jù)SRAM、128 KB的程序Flash,、可外擴至64 KB的E2PROM和8個10位ADC通道,;擁有UART、SPI,、I2C,、JTAG接口,方便外部擴展和傳感器的接入,。
3.2.1 傳感信息輸入電路
    傳感器信號通過放大器引入,,通過設(shè)置反饋電阻(R1和R2)和輸出端電阻(R3和R4)的阻值可以使輸入的電壓值在要求的范圍內(nèi)。具體硬件電路如圖4所示,。

 

 

3.2.2 擴展CAN通信電路
    單片機與電機控制器采用CAN總線通信,,CAN接口采用Philips公司的CAN物理層和鏈路層接口芯片SJA1000和PCA82C250。單片機直接控制SJA1000的AD0~AD7,、ALE,、INT引腳。SJA1000工作在Intel模式下,,MODE腳接高電平,,片選腳CS接地,始終處于選通狀態(tài),。擴展CAN通信電路如圖5所示,。單片機對SJA1000的操作主要是對寄存器的操作:一方面,對SJA1000的模式寄存器、命令寄存器,、狀態(tài)寄存器,、中斷寄存器、中斷允許寄存器,、總線定時寄存器,、輸出控制寄存器、時鐘分頻計數(shù)器進行設(shè)置和檢測,;另一方面,,對收發(fā)緩沖區(qū)進行讀寫,從而和CAN設(shè)備交換數(shù)據(jù),。

3.3 控制系統(tǒng)軟件設(shè)計
    自平衡機器人的控制系統(tǒng)需要實現(xiàn)以下功能:傳感器信息處理和機器人姿態(tài)信息計算,,電機控制PID算法實現(xiàn)和CAN口的數(shù)據(jù)處理。系統(tǒng)控制流程如圖6所示,。系統(tǒng)上電后從主函數(shù)開始執(zhí)行,。主函數(shù)負(fù)責(zé)初始化控制器的I/O口、CAN口,、控制周期定時器,、A/D轉(zhuǎn)換器、各個中斷接收數(shù)據(jù)和發(fā)送數(shù)據(jù)模塊等,。初始化完畢,,控制周期定時器時間到后,傳感器信息輸入到A/D轉(zhuǎn)換器中進行轉(zhuǎn)換,,計算機器人的傾倒角度和傾倒角速度,;然后調(diào)用PID算法計算電機控制數(shù)據(jù),并通過CAN口輸出給電機驅(qū)動器,。

3.4 速度PID控制算法
    機器人采用經(jīng)典的PID算法進行平衡控制,。控制系統(tǒng)采用典型的雙閉環(huán)控制結(jié)構(gòu)和前饋控制方法,。速度環(huán)路設(shè)計有利于提高電機輸出速度精度,。前饋控制主要是為了補償電機轉(zhuǎn)軸與車輪轉(zhuǎn)動軸以及傳動系統(tǒng)的間隙誤差,這些誤差是穩(wěn)定的,、可以測量的,。當(dāng)電機在正反轉(zhuǎn)變換時,控制系統(tǒng)可以檢測到變換方向,,經(jīng)過位置誤差環(huán)節(jié)調(diào)整后把確定的偏差補償量疊加到驅(qū)動器輸出端,。這樣電機轉(zhuǎn)動的角度在原理基礎(chǔ)上增加了補償量,機械誤差得以修正,。
    采用PID控制算法公式如下:
   

    其中,,u(k)為當(dāng)前調(diào)節(jié)器輸出量,;u(k-1)為上一次調(diào)節(jié)器輸出量;△u(k)為當(dāng)前控制增量,;e(k)為當(dāng)前控制誤差量,;Kp為比例系數(shù);KI為積分系數(shù),;Kd為微分系數(shù),。PID控制算法流程如圖7所示。圖中,,ε為調(diào)試過程中設(shè)定的誤差值,。

 

4 實 驗
    利用該控制方法,對原理樣機進行了多次實驗,。實驗中,,在機器人正上方水平位置安裝陀螺儀,以采集機器人的傾倒角度數(shù)據(jù),。實際測量角度信息隨時間變化的曲線如圖8所示,。通過測得數(shù)據(jù)分析可以看到,機器人大致可以穩(wěn)定在0°附近,,最大偏差為±2°。

 

結(jié) 語
    本文設(shè)計了以ATmage128單片機為控制核心,,采用紅外測距傳感器監(jiān)控的雙輪自平衡機器人,,并搭建實驗平臺進行了控制試驗。實驗結(jié)果表明,,該機器人可以通過有效的控制保持在豎直狀態(tài),,并且在一定的角度范圍內(nèi)達(dá)到平衡。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。