差速驅動在哪裡力不從心
在第一篇指南裡我們認識了差速驅動:左右各一個動力輪,靠兩側不同的轉速來轉向。它簡單得令人愉快,還能原地旋轉,所以很多室內小機器人都用它。但它有個不動聲色的弱點。這兩個驅動輪通常要配一個自由轉動的腳輪來維持平衡,而在較高速度下,這樣一個靠腳輪平衡的機器人容易往旁邊打滑、左右搖擺。想像一下讓一輛送貨小車用兩個電動輪加一個萬向腳輪在路上跑到時速 40 公里——那會顯得神經質而不安全。
真正的汽車很久以前就用另一種思路解決了這個問題:把四個輪子穩穩地放在四角以保證穩定,讓其中一些直接向前驅動,再靠偏轉前輪來轉向。這正是戶外輪式移動中佔主導地位的一類設計。難點在於,要讓四個輪子乾淨俐落地轉向其實暗藏玄機——而它的解法是一段值得弄懂的幾何。
阿克曼轉向:為什麼兩個前輪轉過的角度不一樣
汽車過彎時,每個輪子都在畫一個圓,而所有這些圓都共用一個圓心——也就是整輛車繞之旋轉的那個點。內側前輪處在比外側前輪更小的圓上,所以它必須更大幅地偏向彎內。如果兩個前輪轉過完全相同的角度,其中一個就會和它真正該走的圓較勁,從而橫向刮擦,把橡膠在路面上蹭掉。阿克曼轉向正是這樣一種連桿幾何:它讓內輪比外輪多轉恰到好處的角度,從而讓四個輪子都乾淨地滾動、不刮擦。
這套幾何帶來一個硬性限制:最小轉彎半徑。前輪只能偏轉到一定程度,連桿就把它們卡住了,而這個最大轉向角決定了車輛能畫出的最小圓。軸距越長(前後軸之間的距離),轉彎圓就越大——這正是為什麼城市公車轉彎要劃出一大圈,而卡丁車卻能靈巧地竄來竄去。關鍵在於,汽車式機器人永遠無法直接橫向移動,也無法原地旋轉。要擠進一個狹窄的空位,它只能像你側方停車那樣來回挪動。
全向驅動:讓機器人朝任意方向滑行的輪子
現在把目標反過來。假設你想要的不是又快又穩的過彎,而是一個能直接橫向溜走、斜著漂移、甚至邊走邊轉的機器人——而且不必先轉身朝向目的地。這種自由正是全向驅動帶來的,而其中的訣竅就藏在輪子本身。
全向輪看起來像普通輪子,但它的輪緣上環繞著一圈可自由旋轉的小滾子。輪子被驅動時,它照常推動機器人前進;但那些滾子讓它能同時幾乎無阻力地向側面滾動。麥克納姆輪是它的近親,區別在於滾子是以 45 度角斜裝的。把四個麥克納姆輪裝在四角,再用巧妙的組合去驅動它們,四個輪子各自的側向力就能疊加起來,讓機器人筆直向左、筆直向右、斜向移動或原地旋轉——全靠為每個輪子選定轉速和方向。
這種自由是有代價的。那些小滾子只壓著很小的一塊接觸面,所以全向輪和麥克納姆輪對顛簸和碎屑的適應都很差,會因打滑損失一些效率,在粗糙地面上也很吃力。它們在平整潔淨的工廠和倉庫地面上大放異彩——可一旦把它們搬到戶外,立刻就力不從心。
選擇驅動方式:讓輪子配得上任務
沒有所謂「最好」的驅動方式——只有適合某個任務的那一種。每種方式都會放棄一些能力,以便在另一些方面做到出色。看一個機器人的輪子,就能出人意料地看出它被造來做什麼。
- 需要在道路或崎嶇地形上長距離地兼顧速度與穩定?選阿克曼。自動駕駛汽車、配送車和農業機器人都依賴它——代價是它們無法橫向停車。
- 需要在狹窄擁擠的室內空間裡穿行、並精確對位?選全向。倉庫揀貨車和醫院推車能滑進汽車式機器人根本進不去的縫隙。
- 需要簡單、低成本、還能在平地上原地旋轉?差速驅動依然是小型機器人和掃地機器人可靠的預設選擇。
你選的驅動方式會向外波及到機器人的其餘部分。它決定了底盤在不碰撞的情況下所能到達的工作空間的形狀,決定了你的運動規劃器是必須遵守「不能橫向打滑」的規則、還是可以指揮它朝任意方向運動,也決定了機器人在被困住時能否脫身。移動方式不是最後才擰上去的小細節——它是最先要做的決定之一,因為它悄悄地界定了這台機器將來能把哪些任務做好。