簡單機器人的結構設計
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/40/2008_Taipei_IT_Month_Day2_Taipei_City_Government_Intelligent_Housekeeping_Robot.jpg/500px-2008_Taipei_IT_Month_Day2_Taipei_City_Government_Intelligent_Housekeeping_Robot.jpg)
通常要解決的運動問題無非是下面這兩個:
- 如何確定機器人各部分的位置
- 如何從一個位置到達另一個位置
![](http://upload.wikimedia.org/wikipedia/commons/6/66/1086_Blue_Swiss_Robot.jpg)
我們生活的現實世界是立體的空間。但在有些時候,一些運動可以被抽象為平面運動。比如右圖中在地面上水平移動的機器人,如果從上方向下俯視,機器人就如同在這個二維平面上運動的一個點。
描述某一時刻二維平面物體的位置需要3個參數,這與採用何種坐標系無關。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Describ_place_of_an_object_in_2D_space.png/400px-Describ_place_of_an_object_in_2D_space.png)
- 在直角坐標中,這三個參數是x,y,θ
- 在極坐標中,這三個參數是r,θ,α
應當注意的是,一個物體在二維空間中的位置,不僅包括其質心的絕對位置(由(x,y)或(r,θ)描述),還包括物體的空間朝向。
機器人在平面上的移動時可以看作是平面坐標系中的向量。其平面運動是由質心絕對位移和自身轉動複合而成的,因此可以用平面運動分解來分析計算。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/KUKA_robot_for_flat_glas_handling.jpg/220px-KUKA_robot_for_flat_glas_handling.jpg)
描述某一時刻空間內物體的位置需要6個參數,與採用何種坐標系無關。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/95/Describ_place_of_an_object_in_3D_space.png/400px-Describ_place_of_an_object_in_3D_space.png)
- 在直角坐標系中六個參數是x,y,z,α,β,γ。x,y,z決定空間中的方位,而α,β,γ決定空間中的指向。
- 在球面坐標系中六個參數是r,θ1,θ2,α,β,γ。r,θ1,θ2決定空間中的方位,而α,β,γ決定空間中的指向。
應注意的是,由於空間中的物體還可沿向量的軸向轉動,因此還有一個變量γ來描述軸向的轉角。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Artaic_Mosaic_Fabrication_Robot.png/220px-Artaic_Mosaic_Fabrication_Robot.png)
機械臂和人形機器人的空間運動可以用空間坐標系來描述。空間坐標系中的運動描述比較複雜,通常需要更高級的數學方法才能解決。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/31/Robocup_2005_Aibos.jpg/220px-Robocup_2005_Aibos.jpg)
如果你想讓機器人用手去抓取物體,那麼僅僅知道它的手在哪裡是不夠的,還必須要確定手腕旋轉的角度,手指的開合等參數。否則機器人手的方向可能與物體不對應,手可能根本沒張開,甚至是朝錯誤的地方伸出手臂。
這意味着每個決定機器人姿態的關鍵參數都必須是可控制,可檢測的。這樣才能使機器人的運動被有效規劃,執行。
機器人的位置包含兩個層次的信息:
- 機器人在環境中的絕對/相對位置(外部聯繫)
- 機器人各部分的相對位置(內部聯繫)
在環境中的位置有下面幾種方式來確定:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Robocon_India_2010_Winner.jpg/220px-Robocon_India_2010_Winner.jpg)
亞太機器人大賽常採用網格場地,自動機器人可以根據場地上的白線判斷自己離出發點的位置。 如果機器人從出發點出發後,某一個線計數錯誤,就會導致後續的行動全部錯誤。因此這種方法的容錯性是非常低的。
依靠視覺定位的機器人通過環境和目標物體的圖像來確定自己的位置。 通過視覺確定相對位置,機器人能夠適應不同環境,且不受行動範圍限制。但技術複雜,定位易不夠精確。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Projecte_Barcino.jpg/220px-Projecte_Barcino.jpg)
一些工業機器人的底座被固定在工作場地上,因此環境定位並不必要。它們只需要定位自己各個部位之間的相對位置就可以了。
確定部件相對位置的方法同樣很多:
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/37/British_Columbia_machine.png/220px-British_Columbia_machine.png)
對於旋翼飛行器來說,除了轉動的螺旋漿之外,各個部件都是相對固定的。這種「整塊」的機器人可以不必測量自己各部件的相對位置,因為它們都是相對固定的。
具有視覺的機器狗aibo通過頭部的攝像頭確定眼睛相對於球的位置。通過關節的傳感器獲取身體各部位的相對位置。進行綜合分析,計算出身體和腳相對於球的位置,準確擊球。 實際過程要更加複雜,需要在運動過程中不斷定位,糾正動作才能達到預期效果。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/41/Servo.jpg/220px-Servo.jpg)
很多簡單機器人以舵機(伺服電機)為基本驅動裝置,它能夠定位到指定位置。
從原理上來看,舵機是依靠內部的電位器,電感或者霍爾傳感器等來定位,形成一個內部的反饋控制。
但從整個機器人的角度來看,只使用舵機就形成了開放控制——機器人並不真的知道舵機運動到了什麼位置。如果舵機損壞,或者工作中電位器電阻率因發熱而變化,舵機的運動就會產生偏差。另外,這種局部反饋容易引起誤差疊加,抖動等弊端。
因此即使採用舵機,額外的傳感器有時也是必要的。
另外,有一些機器人採用慣性定位。
注意:「自由度」具有多種不同含義,在理論物理學中,自由度指的是力學系統的獨立坐標的個數;在機械動力學中則指的是確定受到約束的零部件上某一點位置的獨立參數個數
在物理學中,自由度指的是力學系統中獨立坐標的個數。動力學系統由一組坐標來描述,這組坐標互相之間具有無關性,且能夠描述空間中的所有位置。
對於空間中的一個點:
- 在笛卡爾(直角)坐標系中,由互相垂直的x,y,z三個坐標來描述。
- 在柱坐標系中,由半徑r,經度θ和高度z三個坐標來描述。
- 在球坐標系中,由半徑r,經度θ和維度α三個坐標來描述。
……
用以描述三維空間的坐標系不止這三種,但無論在哪種坐標系中,都恰好需要用3個坐標來描述空間中任意點的位置。
通常,空間中的點會受到一些運動約束,使得點的自由度小於空間的自由度。比如在管道中運動的球,受到管道的約束,只能沿着管壁運動,可以用運動路程確定位置,因此自由度為1;檯球只能在平面上運動,因此自由度為2。
在機械動力學中,自由度通常用來描述零件上的某一點。零件之間的互相作用稱為運動副,零件通過運動副形成運動鏈。通過運動副概念的引入,機械的自由度可以被計算。
按照約束來劃分,運動副分為兩種:
- 高副,即有一個約束的運動副,兩個零件為點接觸,壓強大。如球面副(球絞鏈)。
- 低副,即有兩個約束的運動副,兩個零件為線接觸或面接觸,壓強小。如迴轉副,移動副,凸輪。
很多機構雖然是立體的,但其運動都處在同一平面(相互平行的平面)上。這些機構被稱為平面機構。反之,當存在零件不在同一平面(相互平行的平面)運動時,則稱之為空間機構。
平面機構自由度的計算方法如下:
設一個擁有n個零件的機構具有FL個低副和FH個高副。則自由度F可以按下式計算:
F=3n-2FL-FH
自由度的意義在於可以了解機器人需要多少制動器來完成運動,運動受到哪些約束。根據運動需要設計機構,或者根據機構分析運動。
對於簡單機器人來說,雙足或多足機器人結構和控制方法過於複雜,成本也高出許多,並不適合。因此,這些機器人普遍採用了輪子或者履帶作為行走機構。
輪子在地面上是簡單有效的移動方式,在平坦地形的速度和穩定性都很好。輪子的缺點在於不能適應崎嶇地形,運動不夠靈活(跌倒了不能爬起來)。
有很多方式可以用來構思,檢驗,表達機器人的設計。從最簡單的鉛筆草圖,到複雜的計算機仿真系統,雖然形式不同,簡繁有異,其核心目標是共通的。
設計方法服務於設計目標,為了能夠使設計有效開展而存在。它們應當儘可能的提高設計的效率,幫助設計者進行深入思考,檢驗設計的可行性,對拓寬設計方向,保證設計的質量水準。在設計流程的不同階段,採用適當的設計方法,並加以配合,能夠讓設計高效,可控,有序地進行。