【四足機器人那些事】足端軌跡規劃(二)

2021-03-05 古月居

本篇將講解MiniCheetah中所使用的的足端軌跡方程-貝塞爾曲線方程。 


貝塞爾曲線就是這樣的一條曲線,它是依據四個位置任意的點坐標繪製出的一條光滑曲線。

在歷史上,研究貝塞爾曲線的人最初是按照已知曲線參數方程來確定四個點的思路設計出這種矢量曲線繪製法。貝塞爾曲線的有趣之處更在於它的「皮筋效應」,也就是說,隨著點有規律地移動,曲線將產生皮筋伸引一樣的變換,帶來視覺上的衝擊。1962年,法國數學家Pierre Bézier第一個研究了這種矢量繪製曲線的方法,並給出了詳細的計算公式,因此按照這樣的公式繪製出來的曲線就用他的姓氏來命名是為貝塞爾曲線。



給定點P0、P1,線性貝茲曲線只是一條兩點之間的直線。這條線由下式給出:

取。可以從圖中看出,其效果等同於線性插值。

對於給定點P0=[0, 0]、P1=[0.5, 0.5]、P2=[1, 0],曲線的函數如下:

P0、P1、P2、P3四個點在平面或在三維空間中定義了三次方貝茲曲線。曲線起始於P0走向P1,並從P2的方向來到P3。一般不會經過P1或P2;這兩個點只是在那裡提供方向信息。P0和P1之間的間距,決定了曲線在轉而趨進P3之前,走向P2方向的「長度有多長」。函數形式如下:


這裡我們先著眼於位置,把源碼中的速度項,加速項去掉,對其進行分析。

軌跡生成函數調用:

template <typename T>void FootSwingTrajectory<T>::computeSwingTrajectoryBezier(T phase, T swingTime) { _p = Interpolate::cubicBezier<Vec3<T>>(_p0, _pf, phase); T zp, zv, za; if(phase < T(0.5)) {  zp = Interpolate::cubicBezier<T>(_p0[2], _p0[2] + _height, phase * 2); } else {  zp = Interpolate::cubicBezier<T>(_p0[2] + _height, _pf[2], phase * 2 - 1); } _p[2] = zp;}

template <typename y_t, typename x_t>y_t cubicBezier(y_t y0, y_t yf, x_t x) { static_assert(std::is_floating_point<x_t>::value,"must use floating point value"); assert(x >= 0 && x <= 1); y_t yDiff = yf - y0; x_t bezier = x * x * x + x_t(3) * (x * x * (x_t(1) - x)); return y0 + bezier * yDiff;}

1.2.1位置

規定以下符號

– 任意起始點 

– 結束點 

– 抬腿高度h。

將方法實現中的代碼轉換成數學表達式如下:

需要注意的是,該計算可針對一維變量(例如對Z軸坐標單獨計算),也可以是三維向量之間的運算(例如坐標點),對於三維點計算,其展開形式如下(實際上與上式無異):

下面結合圖像更加直觀地對其進行分析。先分析式1的圖像,在 t ∈ [0, 1] 的情況下,分別取兩組數據進行繪圖比較:

p0,pf的值互換:

可以看到如下圖像:

因此可以得出結論,源碼中,該部分定義了,擺動相上行與下行的軌跡:

  if(phase < T(0.5)) {    zp = Interpolate::cubicBezier<T>(_p0[2], _p0[2] + _height, phase * 2);  } else {    zp = Interpolate::cubicBezier<T>(_p0[2] + _height, _pf[2], phase * 2 - 1);  }

下面來看整體軌跡,設定以下數據:

– 起始點p0=[0, 0, 0.2]
– 結束點pf=[1.5, 1.5, 0]
– 抬腿高度h=0.5

空間軌跡如下:

1.2.2速度

接下來看該軌跡的速度,對時間進行微分,得到:

1.2.3加速度

對1.2.2得到的速度公式微分,得到:


以上對MiniCheetah中所使用的的足端軌跡方程進行了位置,速度,加速度的分析,儘管該軌跡方程形式上非常簡潔易用,但是仍存在一定缺點,例如對地面衝擊較大,容易造成電機損壞以及姿態穩定上的問題,因此還有一定的提升空間,有興趣的小夥伴可以參考上一篇文章,將擺線運動軌跡融入到cheetah四足機器人的足端軌跡當中去,這裡暫時不展開細說。

相關焦點

  • 哈工大做出四足機器人「踏浪」,大戰ROBOCON賽場!
    一群初出茅廬的大學生,自己親手搭建機器人,並在賽場上盡情揮灑汗水與激情的場景都會讓無數人動容。而今年的Robocon大賽,由於四足機器人賽題的加入,顯得尤為好看。其中來自哈爾濱工業大學的四足機器人便深深吸引了我的眼光。
  • 蘇黎世大學四足機器人,在月球垂直跳可達2米,歐洲宇航局對其測試中
    SpaceBok機器人的設計靈感就來源於此,為了探索四足機器人在低重力環境下的「動態行走」。所謂「動態行走」就是行走步態中存在四足全都不著地的騰空期,「動態行走」具有優秀的能效,在動物界中較為常見。Spacebok機器人則是仿生了跳羚實現快速移動的跳躍步態。Spacebok的名稱也來自太空(Space)和跳羚(Springbok)兩個單詞的結合。
  • 當鵝看上了狗,騰訊發布的四足機器人高難挑戰走梅花樁
    仿生智慧機器人一向以來難度都高,其對技術沉澱要求極高。不像現在市場上一坨又一坨的只為賺錢的消費機器人,集成一下製造個賣點就能賣貨。機智客覺得仿生機器人不管是外觀還是功能,很多都承載著大家的高期望。所以往往是技術實力雄厚和有夢想有追求的團隊和企業在做。 而往往越艱辛的東西,越有人去挑戰涉足。
  • 機器人早報:國產四足機器人趕超國際一流水平
    山東大學四足機器人已小批量試製,爭取趕超國際一流水平 山東大學機器人研究中心成立於2003年,主要致力於 機器人技術 和智能裝備等方向的研究工作。研究中心以特種移動機器人和智能裝備為主要研究方向,在經歷了10年的技術儲備之後,終於在科技部「十二五」863計劃主題項目「四足 仿生機器人 」驗收測評會中出色完成各項任務,一戰成名,成為國內四足仿生機器人方向頂尖的研究團隊。目前,面向教育與娛樂的小型電動四足機器人已初步完成產品化和小批量試製工作,並成功亮相2017年RobCup中國區比賽。
  • 騰訊公布機器人移動技術探索的兩項新突破
    11月20日,騰訊公布了其在移動機器人研究方面的新進展:四足移動機器人 Jamoca 和自平衡輪式移動機器人首次對外亮相。Jamoca 是國內首個能完成走梅花樁複雜挑戰的四足機器人,而自平衡輪式移動機器人的相關研究成果還入選了機器人行業的頂級會議 IROS 2020。
  • 機器人任意曲線軌跡規劃基礎——樣條曲線
    機器人的軌跡規劃有很多種方式,比如三次五次多項式軌跡規劃,S型軌跡規劃等。這些類型的速度規劃簡單實用,已知開始結束狀態和速度加速度限制,就可以規劃出一條速度曲線。但正因為簡單,所以經常只能應用於規則路徑的規劃。而對於任意曲線的軌跡規劃,只有起點終點狀態的規劃就顯得力不從心了,這時候就要用到基於樣條曲線的軌跡規劃。最早的樣條曲線都是通過物理方法得到的,把一根有彈性的木條,用工具將特定的一些點固定,樣條自然彎曲形成的曲線就是樣條曲線。
  • 宇樹(Unitree) 四足機器人的全球動態
    那麼他們又在四足機器人平臺上進行哪些項目呢?       今天在這介紹幾個基於我們第一代量產四足機器人Laikago(應該是全球第一款最早公開零售的高性能四足機器人)的客戶使用情況。(最重要的信息在文末哈^_^)AI+四足機器人:一、谷歌和加利福尼亞大學伯克利分校(Berkeley)深入研究了四足生物的運動姿態,利用強化學習方法將實驗對象運動信息生成四足機器人運動控制程序
  • 機器人曲線焊縫識別及軌跡規劃工作原理
    焊接機器人研究中的一項難題。其中關鍵技術包括:焊縫點圖像採集、結構光數學模型建模、機器人的運動控制算法、視覺伺服控制、焊接機器人位姿實時調整、初始焊縫位置識別與定位。線結構光雷射測量技術以其測量速度快、精度高、模型簡單、穩定性好等優點,廣泛應用於工業測量中的三維信息獲取,是目前實現機器人路徑識別與軌跡規劃較為成熟的一項技術。
  • 機器人課程系列:如何編寫Arduino程序讓四足機器人移動
    它們可以跨越崎嶇的地形,用像生物的方式移動,這一點是藉由輪子移動的機器人沒法比的。但足機器人的構造也比較複雜,讓許多 Maker望之興嘆。這篇文章為你介紹讓四足機器人「走路」的方法,也就是行走的步態(gaits),並教你如何為Arduino編寫程序。
  • 瑞士四足機器人ANYmal展示最佳混合步態,運動更靈活
    在工業設施中,四足機器人的應用正在變得越來越普遍。能在我們日常生活中看到更多的這類機器人只是時間問題。顯然,當前四足機器人的流行正在加速這一進程。控制策略流程圖首先由人通過操縱手柄,給出指令運動,而後經過步態序列生成器得到步態序列,然後利用模型預測控制規劃出期望的運動,
  • Raptor:四足機器人與雙足機器人的對決
    Raptor一詞就是由此而來,KAIST的開發者可能希望這樣的雙足機器人有一天能夠作為高機動機器人的雙腳。該機器人能夠迅速的奔跑,目前它能夠在跑步機上達到46千米每小時的速度。奧運選手博爾特,世界上跑得最快的人類,只能跑44.7千米每小時。根據The Spetrum的報導,IEEE的工程師曾為Raptor測速,它的最高速度甚至可以達到48千米每小時。
  • SpaceX星際飛船製造廠引入一臺波士頓動力四足機器人Spot
    【TechWeb】6月18日消息,據國外媒體報導,美國太空探索技術公司SpaceX位於博卡奇卡的星際飛船製造廠引入了一臺波士頓動力公司(Boston Dynamics)的四足機器人Spot。
  • 鴨子機器人領銜 盤點2019年上半年那些有趣的仿生機器人
    在此之前,全球出現過各種各樣的仿生機器人,比如史丹福大學研製的壁虎機器人、哈佛大學打造的機器蟑螂,以及Festo研發的蜘蛛機器人BionicWheelBot和蝙蝠機器人BionicFlyingFox等等。那麼時間來到2019年,世界上又有哪些有趣的仿生機器人出現呢?我們不妨一起來盤點下吧!
  • 斯坦福創開源四足機器人平臺 沒有百萬資產也能製作自己的機器狗
    或許你也是機器人的狂熱愛好者,有豐富的工程經驗,卻因為沒有足夠的資金而對機器人望而卻步?   幸運的是,史丹福大學的學生們創造了一個叫做Doggo的四足機器人平臺,普通用戶只用花費萬元左右就可以用現成的部件來建造自己的機器人,雖然這需要巨大的工程量,但也比一般動輒就需要幾十萬和政府資助的實驗室替代品要好。
  • 中國和瑞士企業聯合研製四足機器人亮相世界網際網路大會
    會跑、會跳舞、還會做伏地挺身的ANYmal四足機器人。中國電科 供圖中新網北京11月23日電 (記者 孫自法)記者23日從中國電子科技集團有限公司(中國電科)獲悉,由中國電科機器人有限公司(中國電科21所)和瑞士企業聯合研製的一款會跑、會跳舞、還會做伏地挺身的四足機器人,在當天開幕的世界網際網路大會上精彩亮相於「網際網路之光」博覽會,引發關注。