前段時間的RoboMaster機器人大賽相信不少人都進行了或多或少的了解,不過這種機器人的輪胎似乎長得有點奇怪。

這種輪胎不會像汽車那樣轉向卻能夠讓賽場上的機器人朝著各個方向移動。今天我們就來說說這種讓神奇的“麥克納姆輪”。

其實這篇文章是兩年前一位知乎網友“科長”發表的,原文名稱是“【學渣的自我修養】麥克納姆輪淺談”,而且還做了一段小視頻,只是在視頻中這麥克納姆輪老師掉鏈子。下面就讓我們來看看這位“科長”是科普這“麥克納姆輪”的……
先看視頻:
什么是麥克納姆輪

在競賽機器人和特殊工種機器人中,全向移動經常是一個必需的功能。「全向移動」意味著可以在平面內做出任意方向平移同時自轉的動作。為了實現全向移動,一般機器人會使用「全向輪」(Omni Wheel)或「麥克納姆輪」(Mecanum Wheel)這兩種特殊輪子。

全向輪

麥克納姆輪
全向輪與麥克納姆輪的共同點在于他們都由兩大部分組成:輪轂和輥子(roller)。輪轂是整個輪子的主體支架,輥子則是安裝在輪轂上的鼓狀物。全向輪的 輪轂軸與輥子轉軸相互垂直,而麥克納姆輪的輪轂軸與輥子轉軸呈 45° 角。理論上,這個夾角可以是任意值,根據不同的夾角可以制作出不同的輪子,但最常用的還是這兩種。
全向輪與麥克納姆輪(以下簡稱「麥輪」)在結構、力學特性、運動學特性上都有差異,其本質原因是輪轂軸與輥子轉軸的角度不同。經過分析,二者的運動學和力學特性區別可以通過上面表格來體現。
計算過程如上圖所示(供參考),學霸可點開大圖驗算。
近 年來,麥輪的應用逐漸增多,特別是在 Robocon、FRC 等機器人賽事上。這是因為麥克納姆輪可以像傳統輪子一樣,安裝在相互平行的軸上。而若想使用全向輪完成類似的功能,幾個輪轂軸之間的角度就必須是 60°,90° 或 120° 等角度,這樣的角度生產和制造起來比較麻煩。
 所以許多工業全向移動平臺都是使用麥克納姆輪而不是全向輪,比如這個國產的叉車: 全向移動平臺 麥克納姆輪叉車 美科斯叉車。
另外一個原因,可能是麥輪的造型比全向輪要酷炫得多,看起來有一種不明覺厲的感覺……
 的確,第一次看到麥輪運轉起來,不少人都會驚嘆。以下視頻直觀地說明了麥輪底盤在平移和旋轉時的輪子旋轉方向。
麥克納姆輪工作原理
麥輪的安裝方法
麥輪一般是四個一組使用,兩個左旋輪,兩個右旋輪。左旋輪和右旋輪呈手性對稱,區別如下圖。 安 裝方式有多種,主要分為:X-正方形(X-square)、X-長方形(X-rectangle)、O-正方形(O-square)、O-長方形(O- rectangle)。其中 X 和 O 表示的是與四個輪子地面接觸的輥子所形成的圖形;正方形與長方形指的是四個輪子與地面接觸點所圍成的形狀。
X-正方形:輪子轉動產生的力矩會經過同一個點,所以 yaw 軸無法主動旋轉,也無法主動保持 yaw 軸的角度。一般幾乎不會使用這種安裝方式。
X-長方形:輪子轉動可以產生 yaw 軸轉動力矩,但轉動力矩的力臂一般會比較短。這種安裝方式也不多見。
O-正方形:四個輪子位于正方形的四個頂點,平移和旋轉都沒有任何問題。受限于機器人底盤的形狀、尺寸等因素,這種安裝方式雖然理想,但可遇而不可求。
O-長方形:輪子轉動可以產生 yaw 軸轉動力矩,而且轉動力矩的力臂也比較長。是最常見的安裝方式。
麥輪底盤的正逆運動學模型
以O-長方形的安裝方式為例,四個輪子的著地點形成一個矩形。正運動學模型(forward kinematic model)將得到一系列公式,讓我們可以通過四個輪子的速度,計算出底盤的運動狀態;而逆運動學模型(inverse kinematic model)得到的公式則是可以根據底盤的運動狀態解算出四個輪子的速度。需要注意的是,底盤的運動可以用三個獨立變量來描述:X軸平動、Y軸平動、 yaw 軸自轉;而四個麥輪的速度也是由四個獨立的電機提供的。所以四個麥輪的合理速度是存在某種約束關系的,逆運動學可以得到唯一解,而正運動學中不符合這個約束關系的方程將無解。
先試圖構建逆運動學模型,由于麥輪底盤的數學模型比較復雜,我們在此分四步進行:
①將底盤的運動分解為三個獨立變量來描述;
②根據第一步的結果,計算出每個輪子軸心位置的速度;
③根據第二步的結果,計算出每個輪子與地面接觸的輥子的速度;
④根據第三部的結果,計算出輪子的真實轉速。
一、底盤運動的分解
我們知道,剛體在平面內的運動可以分解為三個獨立分量:X軸平動、Y軸平動、yaw 軸自轉。如下圖所示,底盤的運動也可以分解為三個量:
表示 X 軸運動的速度,即左右方向,定義向右為正;
表示 Y 軸運動的速度,即前后方向,定義向前為正;
右表示 yaw 軸自轉的角速度,定義逆時針為正。
以上三個量一般都視為四個輪子的幾何中心(矩形的對角線交點)的速度。
二、計算出輪子軸心位置的速度
定義:
為從幾何中心指向輪子軸心的矢量;
為輪子軸心的運動速度矢量;
為輪子軸心沿垂直于 \vec{r} 的方向(即切線方向)的速度分量;
那么可以計算出:
分別計算 X、Y 軸的分量為:
同理可以算出其他三個輪子軸心的速度。
三、計算輥子的速度
根據輪子軸心的速度,可以分解出沿輥子方向的速度 和垂直于輥子方向的速度 。其中 是可以無視的(思考題:為什么垂直方向的速度可以無視?),而
其中 是沿輥子方向的單位矢量。
四、計算輪子的速度
從輥子速度到輪子轉速的計算比較簡單:
根據上圖所示的 a 和 b 的定義,有
結合以上四個步驟,可以根據底盤運動狀態解算出四個輪子的轉速:
以上方程組就是O-長方形麥輪底盤的逆運動學模型,而正運動學模型可以直接根據逆運動學模型中的三個方程解出來,此處不再贅述。
另一種計算方式
「傳統」的推導過程雖然嚴謹,但還是比較繁瑣的。這里介紹一種簡單的逆運動學計算方式。
我們知道,全向移動底盤是一個純線性系統,而剛體運動又可以線性分解為三個分量。那么只需要計算出麥輪底盤在「沿X軸平移」、「沿Y軸平移」、「繞幾何中 心自轉」時,四個輪子的速度,就可以通過簡單的加法,計算出這三種簡單運動所合成的「平動+旋轉」運動時所需要的四個輪子的轉速。而這三種簡單運動時,四 個輪子的速度可以通過簡單的測試,或是推動底盤觀察現象得出。
當底盤沿著 X 軸平移時:
當底盤沿著 Y 軸平移時:
當底盤繞幾何中心自轉時:
將以上三個方程組相加,得到的恰好是根據「傳統」方法計算出的結果。這種計算方式不僅適用于O-長方形的麥輪底盤,也適用于任何一種全向移動的機器人底盤。
Makeblock 麥輪底盤的組裝
理論分析完成,可以開始嘗試將其付諸實踐了。
第一步,組裝矩形框架。
第二步,組裝電機模塊。
由于麥輪底盤的四個輪子速度有約束關系,必須精確地控制每個輪子的速度,否則將會導致輥子與地面發生滑動摩擦,不僅會讓底盤運動異常,還會讓麥輪的壽命減少。所以必須使用編碼電機。
第三步,將電機模塊安裝到框架上。
第四步,將麥輪安裝到框架上。
第五步,安裝電路板并接線。
編碼電機必須配上相應的驅動板才能正常工作。這里使用的 Makeblock 編碼電機驅動板,每一塊板可以驅動兩個電機。接線順序在下文中會提及,也可以隨意接上,在代碼中定義好對應的順序即可。
第六步,裝上電池。
至此,一個能獨立運行的麥輪底盤就完成了。
控制程序
根據麥輪的底盤的運動學模型,要完全控制它的運動,需要有三個控制量:X軸速度、Y軸速度、自轉角速度。要產生這三個控制量,有很多種方法,本文將使用一個 USB 游戲手柄,左邊的搖桿產生平移速度,右邊的搖桿產生角速度。
首先將一個 USB Host 模塊連接到 Orion 主板的 3 口。
然后插上一個無線 USB 游戲手柄。
然后再添加其他細節,就大功告成啦!
代碼下載
鏈接:
麥克納姆輪底盤運動代碼.rar
(1.61 KB, 下載次數: 67)
2018-12-12 04:05 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
動態演示截圖

麥克納姆輪的有點和缺點都是非常明確的!采用麥克納姆輪 的車子大都移動異常靈活,戰術機動性能非常好;但是這種輪胎的越野性能卻非常差,跨越障礙的能力甚至不如普通輪胎,特別是當坡度較大的時候,甚至還會溜 坡。所以配備這種車胎的設備大多是一些場地競技機器人和室內倉儲機器人等,而前面所說的那臺叉車也只能在路況較好的鋪裝路面跑跑。 |