天天看點

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

本文是對UCI的Mark M.Plecnik與Michael McCarthy的一篇論文閱讀筆記。論文題為Controlling the Movement of a TRR Spatial Chainwith Coupled Six-bar Function Generators forBiomimetic Motion

這篇論文以鳥類撲翼運動的機械設計為載體,提出了一種設計方法,将四個六杆機構耦合在一起,利用一個驅動器驅動機械實作了原本四個自由度的機械才能實作的複雜空間運動,成功模拟了鳥的撲翼運動。最後再談談我對這種設計的了解與看法。

先看一段視訊直覺地了解一下:

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

單自由度的撲翼機構https://www.zhihu.com/video/1099282415079579648

空間鍊的選擇

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

TRR空間鍊的連結與鳥類翅膀的骨骼對應關系

論文作者将鳥的翅膀等效成一個四自由度的TRR運動鍊,并設定了關節選擇角度與杆長,進而寫出來了該運動鍊的D-H方程。

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

軌迹上的點空間位置的擷取

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

鳥飛行時翅膀的軌迹

Tobalske與Dial利用高速攝影的方法得到了鳥飛行時,翅尖與腕關節的軌迹。Plecnik與McCarthy利用Solidworks與投影規律測量除了軌迹上的點的空間位置。 這部分工作為之後的運動學求逆做準備。

肩部和肘關節的運動

首先确定肩肘TR子鍊的構型空間,進行運動學求逆,可以的到:

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...
c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...
c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

對鳥的飛行模式分析後,可以删除其中的一些解。由此完成了TR子鍊構型空間的運動學求逆。

用傅裡葉級數拟合軌迹

由于上面的結是離散的,論文作者用傅立葉級數近似拟合離散函數以建立連續的周期性輸入輸出函數。

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

這裡

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...
c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

離散資料曲線(黑色)用傅立葉級數函數(灰色)拟合。從傅立葉函數中選擇11個任務點(紅色)來确立一個機構的實際軌迹(藍色)

腕關節的運動

為了定義整個TRR鍊的軌迹,腕關節角度必須得到指定。利用Solidworks運動分析子產品下的剛體動力學模拟器,确定了腕關節角度。

至此,如果按照運動鍊制作一部四自由度TRR的機器人,就能漂亮地模拟鳥的撲翼運動了。但是本文的厲害之處是,設計出了一個自由度的機構,實作四個關節的運動!

合成方程的确立與求解

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

作者先是對一般的Stephenson II機構列出了合成方程組,該方程組竟然有70個方程與70個未知數!化簡方程組後,在2.2 GHz的256核處理器上,利用Bertini Homo-topy軟體求解,計算花費了311小時!最後采用參數同倫方法求解了設計撲翼機構所要求的四函數發生器的綜合方程,完成了初步的機械設計。

結果

通過進一步的模組化,設計結果如下:

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

函數發生器控制的喜鵲翼的翼尖路徑(黑色)以及理想路徑(灰色)

可以看到效果還是不錯的。

感想

該機構通過一個曲柄驅動四個六杆機構,逼真地模拟了鳥類飛行時翅膀的運動,同時較好拟合翅尖以及腕關節軌迹。但是,為了求解多項式,該方法在2.2 GHz的256個核的處理上花費了311小時。并且該機構隻能模拟鳥飛行的一種位姿,無法使用鳥在飛行時加速、滑翔以及減速時的變化。我認為這是缺少實用性。

我還是跟願意設計一部四自由度TRR的機器人。我想這樣拟合的比率能更高。甚至還可以實作鳥各種飛行姿态的變換,進而變成一台高效、智能的機器人。

附上一些有用的連結

  • 谷歌學術裡的論文連結

https://scholar.google.com/scholar?hl=zh-CN&as_sdt=0%2C5&q=Controlling+the+Movement+of+a+TRR+Spatial+Chainwith+Coupled+Six-bar+Function+Generators+forBiomimetic+Motion&btnG=​scholar.google.com

  • 合成方程組的求解工具Bertini

https://bertini.nd.edu/​bertini.nd.edu

  • 作者Mark Plecnik的首頁

About Me | Mark Plecnik​www.markplecnik.com

c#如何跳出一個函數_如何設計一個自由度的機構,拟合四個關節的運動?——耦合六杆函數生成器的了解...

繼續閱讀