滿足機(jī)器人與人的交互,還需要人機(jī)交互模塊。根據(jù)各個模塊之間的關(guān)系得到機(jī)器
人軟件的總體框圖如圖
3.10
所示。
在這一小節(jié)中主要是對機(jī)器人底盤軟件進(jìn)行設(shè)計,所涉及的模塊主要是機(jī)器
人的控制模塊,如圖
3.10
中標(biāo)紅的部分。機(jī)器人自身的軟件重點工作有兩個:一
是解算上層規(guī)劃層給出的運動指令下發(fā)給驅(qū)動單元,二是機(jī)器人接收遙控器數(shù)據(jù)
下發(fā)控制底盤運動,并通過數(shù)傳通道反饋自身狀態(tài)信息給監(jiān)控端。具體實現(xiàn)流程如
圖
3.11
所示。
圖
3.11
為機(jī)器人底盤的控制流程。當(dāng)?shù)妆P節(jié)點開啟時,程序會循環(huán)檢測控制
輸入信號。當(dāng)有控制輸入時,判斷輸入信號是否為遙控話題發(fā)布的數(shù)據(jù),如果為遙
控數(shù)據(jù),機(jī)器人數(shù)據(jù)鏈路切換到人機(jī)交互鏈路;如果不是遙控話題發(fā)布數(shù)據(jù),保持
機(jī)器人自主運行的正常通信鏈路。將控制信號輸入到
SWDMR
的映射矩陣中將控
制信號轉(zhuǎn)換成各個電機(jī)的驅(qū)動信號(如果電機(jī)為速度模式,則為輪速信號;如果電
機(jī)是力矩模式,則為電流信號),控制機(jī)器人的運動。判斷機(jī)器人是否到達(dá)目標(biāo)位
置,如果未到達(dá),進(jìn)入下一個循環(huán);如果到達(dá)目標(biāo)位置,則結(jié)束控制流程。
3.4
六輪差速移動機(jī)器人落地測試
3.4.1
六輪差速移動機(jī)器人遙控測試
軟件框架設(shè)計完成將所有的硬件模塊部署在機(jī)器人本體上,調(diào)試信號通道,進(jìn)
行落地測試,初步驗證軟件的正確性,并暴露出機(jī)器人當(dāng)前可能存在的一些問題。
落地測試驗證了
SWDMR
的遙控通道的穩(wěn)定性,緊急停止,差速轉(zhuǎn)向等功能。
測試過程中發(fā)現(xiàn)當(dāng)只給機(jī)器人某個方向的運動指令時,機(jī)器人的實際運動軌跡會
不斷往一個方向發(fā)生偏移。分析產(chǎn)生這種現(xiàn)象的原因可能是車身結(jié)構(gòu)的問題或者
路面不平整導(dǎo)致了在不改變遙控指令的情況下機(jī)器人偏離期望軌跡。將實驗場地
選在路面較為平整的室內(nèi),還是會出現(xiàn)室外測試的現(xiàn)象,排除了路面因素導(dǎo)致機(jī)器
人的偏移。經(jīng)過檢查發(fā)現(xiàn)是因為機(jī)器人左前輪懸架安裝位置有所偏差,最終使得機(jī)
器人在運行時會產(chǎn)生一個橫向的力矩,使得機(jī)器人不斷向一邊偏移,形成一個螺紋
式的運動曲線。機(jī)器人某時刻的運行狀態(tài)如圖
3.13
所示:
3.4.2
基于
PID
的糾偏調(diào)節(jié)
根據(jù)前一小節(jié)的測試發(fā)現(xiàn)的問題,設(shè)計輔助控制器以減小這種系統(tǒng)誤差產(chǎn)生
的影響,使得機(jī)器人能夠較好的執(zhí)行控制指令。選取機(jī)器人的橫擺角作為性能指標(biāo),
通過加入
IMU
閉環(huán)補(bǔ)償使得車輛有一定的糾偏能力。糾偏控制框圖如圖
3.14
所
示:
采樣控制輸入時刻機(jī)器人的實際橫擺角度值,以此橫擺角的值為起始橫擺角,
將
IMU
測得的機(jī)器人橫擺角反饋給輔助控制器,起始橫擺角與機(jī)器人執(zhí)行控制輸
入時的橫擺角做差,將差值輸入到外環(huán)
PID
控制器,實現(xiàn)對橫擺角的控制。為了
使得機(jī)器人的調(diào)節(jié)更加平滑,將外環(huán)
PID
控制器的輸出作為內(nèi)環(huán)
PID
的輸入,并
通過
IMU
得到機(jī)器人調(diào)節(jié)過程中的橫擺角速度,將兩個變量做差輸入到內(nèi)環(huán)
PID
控制器實現(xiàn)橫擺角速度的控制。下一采樣時刻,重復(fù)上述過程。
圖
3.15
是在室內(nèi)測試時記錄的曲線,藍(lán)色曲線為橫擺角速度響應(yīng)曲線;黑色
曲線為橫擺角響應(yīng)曲線;紅色虛線為橫擺角設(shè)定曲線,上升沿時刻表示將當(dāng)前機(jī)器
人的橫擺角設(shè)置為參考值。在
0-15s
這個時間段處于待機(jī)狀態(tài),測試通信是否均為
正常;在
15-30s
,機(jī)器人在無糾偏控制下向前運動,因為有橫擺角速度的存在,角
度誤差一直在累積;在
30-35s
為處于待機(jī)狀態(tài);在
35-55s,
機(jī)器人回退到起點并手
動調(diào)整機(jī)器人車身位置,保證機(jī)器人與無糾偏狀態(tài)下的初始位置一致;在
55s
之后
是進(jìn)行糾偏實驗,
58s
設(shè)定當(dāng)前
IMU
上報的橫擺角度位置為目標(biāo)方向,糾偏控制
接入,
75s
給速度指令讓機(jī)器人運動,角度值基本上與設(shè)定值保持一致,
140s
結(jié)束
實驗。下面對橫擺角速度進(jìn)行分析:
圖
3.16
為室內(nèi)測試時機(jī)器人橫擺角速度響應(yīng)曲線,根據(jù)實驗數(shù)據(jù)可以得到機(jī)
器人在沒有糾偏控制時,前進(jìn)時會有一個
-0.016rad/s
左右的橫擺角速度存在;后退
時有一個
0.044rad/s
左右的橫擺角速度,加入糾偏處理后,橫擺角速度基本上穩(wěn)定
在了
0
附近。
圖
3.17
為室外測試時機(jī)器人的橫擺角變化。在不加糾偏直行時,圖
3.17(a)
所
示的
75-110s
時間段:機(jī)器人行駛
7m
左右車身方向就偏移了
32.9°
??刂茩C(jī)器人回
到初始的位置并手動調(diào)整底盤位姿,保持與開始實驗時位置一致,糾偏控制介入,
如圖
3.17(b)
所示糾偏過程中,機(jī)器人的航向角調(diào)節(jié)始終維持在目標(biāo)值附近,最大
誤差為
0.8°
,平均誤差僅為
0.01°
。
3.5
本章小結(jié)
本章主要工作是搭建六輪差速移動機(jī)器人,首先對機(jī)器人可能需要用到的硬
件做了初步的分析,對驅(qū)動單元的額定轉(zhuǎn)矩做了預(yù)估;接著是對基礎(chǔ)硬件做了選
型及測試,驗證了硬件的功能并測試出在遮擋條件下數(shù)據(jù)傳輸?shù)姆€(wěn)定行,最大的
通信距離;然后對機(jī)器人軟件設(shè)計的整體框架做了介紹,著重介紹了控制模塊的
控制流程;最后是對機(jī)器人的搭建,并在搭建完成之后做了落地測試,同時根據(jù)
測試的效果設(shè)計了糾偏控制器作為運動控制的輔助控制器,使得機(jī)器人能夠更為
準(zhǔn)確的執(zhí)行上層下發(fā)的控制指令。