回覆列表
  • 1 # 機器人觀察

    機器人控制從全域性上我們可以講電機力矩作為輸入,末端位置作為輸出。

    機器人的控制架構上可以分成非集中控制(uncentralized control)和集中控制(centralized control)。

    非集中控制是目前最常見最簡易的,各個電機作為獨立的子系統來生成力矩控制律,電機之間的相互作用視為干擾量,但實際上是由於動力學產生的,我們可以不用顯性考慮,所以動力學模型不是必要的,對於動態響應要求不高,機器人不是太龐大的情況下,不考慮動力學效果也不差。反之可以考慮動力學作為前饋補償。這種控制方法實際中輸入力矩的控制律實際上都交給底層伺服電機了,所以對上層控制來說實現起來較為簡單。底層伺服演算法一般是多階PID,這裡不展開。

    總結一下非集中控制的基本流程:

    從上層演算法獲得末端位置座標點透過逆運動學計算出各個關節所需要的位置,逆運動學存在多解,要考慮取捨。各個關節的驅動自己完成位置控制。

    運動學在這裡扮演的角色是做一個幾何對映,從末端座標,到各個軸的座標。最後真正的運動控制是各個驅動器分散式完成的。

    簡單來說,就是把機器人的控制問題轉化成了電機的控制問題。

    這裡我們雖然我們沒有對動力學顯性建模,但實際上動力學是物理上客觀存在的。指由於動力學的客觀作用,比如重力,慣性力,摩擦力等,電機之前會有互相作用。只是在沒有考慮運動學的情況下,對這些外力沒有資訊,就都視為干擾。讓電機的控制器自行補償。

    在考慮動力學模型的情況下,我們將這個互相作用的力計算出來,作為一種前饋補償,直接告訴電機現在應該用什麼力,而不是完全靠電機自己去計算。在控制效果上會得到一定增強。而且模型並不需要太精確,伺服會補償掉不剩下的誤差,魯棒性很高。

    而對於集中控制,動力學就是必要的了。相比之前動力學只是作為前饋而言,這裡我們才可以說是真正意義上的動力學控制。這裡我們是透過動力學模型,直接生成力矩控制力,講機器人系統作為的一個整體來考慮,而不是分成子系統。所以才叫集中控制。

    基本流程如下:

    從上層演算法獲得末端位置座標點透過逆運動學計算出各個關節所需要的目標位置。根據動力學模型,設計控制規則,這裡系統的輸入(控制器輸出)是力矩。這裡展開就多了,一般來說可以有重力補償PD控制,魯棒控制,自適應控制,滑膜控制等。各個電機僅僅透過電流環做力矩控制。

    這樣控制的優勢在於對力有一定的控制作用,可以做柔順控制,力控制。實現更多的功能。實際上應用的極少,至少在產品級的工業機器人方面,即使四大家族無法實現集中控制。這裡主要的有幾個因素:

    摩擦力辨識極難,但是高速時摩擦力影響能達到30%以上。對反饋要求高,但是現有加速度感測器噪聲往往過大。

    最後總結回答一下題主的問題吧:

    在非集中控制中,運動學和動力學都為是底層電機控制服務的,運動學提供目標量,動力學提供前饋或者不用。

    在集中控制中,動力學作為系統模型來設計控制率,運動學作為輔助計算機器人的幾何關係。

    ——————

    答案的內容主要參考了下面這本書和一些實際經驗

    Robotics: Modelling, Planning and Control by Bruno Siciliano, Giuseppe Oriolo, Lorenzo Sciavicco, and Luigi Villani

  • 中秋節和大豐收的關聯?
  • 越賣越貴的Kindle有可能實現“高階化”嗎?