2013年6月15日 星期六

分散的飛行陣列:可自體組合、協調、飛行的模組化機器

原文出處:Robohub.org/
分散的飛行陣列:可自體組合、協調、飛行的模組化機器
The Distributed Flight Array: Modular robots that self-assemble, coordinate and take flight




"團結力量大"這個諺語可以充分的表達這個PROJECT的精神,Distributed Flight Arraymodular robot 模組化的機器人,六角形的外型配合單軸的螺旋槳,可以組成任何的形狀或形式。雖然每個單位能夠產生足夠的推力來離開地面,但是僅靠自己是無法像直升機那樣飛行的。然而,當數個單元連接在一起時,這些裝置演變成複雜的多轉子系統,能夠在飛行中協調平衡,並具有更多的可能性。
“The whole is greater than the sum of its parts” — a catch phrase that aptly expresses the Distributed Flight Array: a modular robot consisting of hexagonal-shaped single-rotor units that can take on just about any shape or form. Although each unit is capable of generating enough thrust to lift itself off the ground, on its own it is incapable of flight much like a helicopter cannot fly without its tail rotor. However, when joined together, these units evolve into a sophisticated multi-rotor system capable of coordinated flight and much more.

Distributed Flight Array : Video Summary

源由
2008 年的夏天,ETH Zurich 瑞士聯邦理工學院動力系統和控制研究所,Raffaello D'Andrea 教授設想一個計畫:由單轉子機器為單位、能在地面上自行組裝,然後這些單元能共同執行一項看似不可能的任務—飛行。此模組化的飛行器要能在空中分離,然後在空中再度合體(但是必須形成另一個隨機生成的配置),然後一再地重複這整個過程。
In the beginning 
In the summer of 2008, Professor Raffaello D'Andrea at the
Institute for Dynamic Systems and Control at ETH Zurich envisioned an art installation consisting of single-rotor robotic units that would self-assemble on the ground and then perform a joint task that would otherwise be impossible to achieve on its own — flight. This modular flying vehicle would then break apart in the air and then repeat the process over again, but in a new randomly-generated configuration.

Distributed Flight Array: Concept Animation


可行性研究
要設計和實踐這樣的系統,所面臨的挑戰非常的多。首先,我們必須確定這一個概念是確實可行。關於這個系統,我們做了一些現實面的假設,除了進行一些簡便計算方法,我們也透過裝置來建立一個線性動力學的模型,以提供一些物理動力學方面的參考。基於這一點,我們制定了一種控制策略。之後,我們模擬了這個避迴系統在各種干擾之下的狀態,這為我們之後提供了成功執行的條件,包含所需的物理需求以及一般性的理解。
Feasibility studyThe number of challenges faced in designing and implementing such a system are many. We first wanted to be sure, however, that the concept was indeed feasible. Making some realistic assumptions about the system we performed some back-of-the-envelope calculations and created a linear dynamics model of the vehicle in order to provide us with some intuition about its physical dynamics. From this, a control strategy was devised. We then simulated the closed-loop system under a variety of disturbances, providing us with a general understanding of the physical requirements needed to successfully execute the project.
2008 年的秋天,這個物理系統的設計與實現其實還只是 ETH Zurich 校園,內某個進行中的設計專案的一部分。這專案包括八位來自機械、 電氣、 軟體工程領域的研究生,以及技術人員和教員,包括我自己在內。我們的任務是為設計和構建一個具有特別功能的原型,主要需具備三個關鍵的能力:(1)對接(2)地面上的協調與移動性和(3)協調飛行。在每完成一個任務之後,我們都會反過來驗證我們的模型和控制策略,來檢測一些我們可能沒有預料到的,可能會侷限系統的變數。
Design and implementation of the physical system began in the fall of 2008 as part of a design project class at ETH Zurich.The class consisted of eight graduate-level students from mechanical, electrical, and software engineering, as well as technical staff and instructors, including myself. Our task was to design and build a functional prototype that would demonstrate three key abilities of the system: (1) docking, (2) coordinated ground mobility, and (3) coordinated flight. In accomplishing each of these tasks, we would in turn validate our model and control strategy, and likely discover limitations to the system we did not foresee. 
該專案無疑是極具挑戰性的,課堂時間的約束所造成的壓力,對我們的工作而言是相當的不利。我們最初的期望,是用一套套單一的裝置來展示每個關鍵的功能,之後再來證明飛行中定位的幾種可能配置。在當時的情況下,我們的目標顯得過於遙遠,最後我們只好妥協並降低我們的門檻。2009 年(數月之後,當時這門課已經結束)的夏天,我們成功達成了這些關鍵的目標,並且開始思考這個專案最終的可行性。

The project was no doubt challenging, and the timing constraints imposed by the class did not work in our favour. Our initial hope was to demonstrate each of the key abilities using a single set of vehicles and to demonstrate coordinated flight in several configurations. Our goals were too ambitious under the framework of this class and therefore loosened our requirements. By the summer of 2009 (a few months after the class had ended), we succeeded in demonstrating each of these key abilities, and ultimately, the project's feasibility.


Distributed Flight Array: Proof-of-concept Video.


在上面影片的末段,你會發現這個系統面臨到的許多局限,其一是它不能控制其飛行高度(或離地面的高度)。您可能還注意到為了讓它能更輕盈以便於飛行,該階段這裝置的飛行和操控兩種能力是分開的。這主要的限制是,它無法依據隨機性的配置去做到機動性的協調。這些單元本身缺乏兩兩相互溝通的能力;就算這些變成可能,我們也還沒有任何方式可以自動生成一個適當的、滿足控制策略的配置。為了這個展示影片,當時我們替每個單位都預先設定了一個特定的配置,並設定用手動的方式來控制機器。然而,這只是整個方案裡頭,冗長的代辦清單裡的冰山一角而已。

Towards the end of the above video, you will notice one of the many limitations of the system: its inability to control its altitude (or height off the ground). You may also notice that both flying and driving capabilities were separated in order to make the vehicle lighter for flight. Its primary limitation, however, was its inability to demonstrate coordinated mobility for randomly assembled configurations. The units themselves lacked the ability to communicate on each of their sides, and even if this were possible, we did not yet have any way of automatically generating the appropriate control strategy for the assembled configuration. For our demonstration, each unit was pre-programmed for a particular configuration and the controller was tuned by hand. This, however, was just the tip of the iceberg for the long list of requirements needed to successfully achieve our final goal.

反覆的設計運算
在展示了這個系統的可行性,並讓整個設計受到專案的保護與資助之後,下一步就是真正的去實踐一個能夠機動應變的模組化系統—不論是在地面和空中。這絕對不是一個容易達成的過程;如果這麼簡單,它就不會被視為是一項研究。這裝置在完成目前的設計之前,還存在著另一個修正的版本,是我們先前創建出來的。
Design iterations With the design project class under wraps, and feasibility of the system demonstrated, the next step was to engineer a truly modular system capable of coordinated mobility — both on the ground and in the air. This was by no means a straightforward process; if it was, it wouldn't be considered research. One additional revision of the vehicle was created prior to arriving at the current design.

Proof-of-concept, completed July 2009.
Revision 1, completed June 2011.
Revision 2, completed June 2012.

在一號修訂版本的設計中,我們主要的目標之一是整合操控與飛行的能力。這需要我們去重新思考整個機殼,並設計出重量與推進力的比例關係。雖然乙酯聚丙烯泡沫(ethyl polypropylene foam)所做出來的機殼重量很輕,機械性也達到足夠的強度,但是在概念階段裡很難放在製造流程裡的。於是,我們切換到不同的材料進行測試。我們選擇改為構建出可被鐳射切割的乙縮醛塑膠(acetal plastic)機殼,搭配更高輸出的飛行器馬達以及一個全新設計的螺旋槳。這一種堅固的機殼很容易被生產製造,並且在達成控制性的前提下,它還能具備充足的推進力。但是我們未能考慮到機殼的剛性和轉子製造變異性。完成一號修訂版本的設計,並且生產幾個單元之後,我們發現機殼中的振動是源自螺旋槳所造成的空氣湍流,主因是控制板上的速率陀螺儀感應器受到螺旋槳電流的滲入,因此更改為避迴電路控制是必要的改進。
In designing Revision 1, one of our major goals was to integrate both driving and flying capabilities. This required us to rethink the mechanical chassis and to design with a sufficient thrust to weight ratio in mind. Although light-weight and mechanically robust, the ethyl polypropylene foam chassis we used in the proof-of-concept vehicle was difficult to manufacture and our experience led us to switch to a different material. We opted instead for constructing the chassis out of laser-cut acetal plastic, a higher-powered flight motor, and a new propeller. This resulted in a very robust chassis, which was easy to fabricate in-house, and it provided sufficient thrust for the purposes of lift and control effort. What we failed to consider, however, was the stiffness of the chassis and manufacturing variability of the rotors. Only after completing the design of Revision 1 and producing several units did we discover that the vibrating modes in the chassis caused by aerodynamic turbulence from the propellers saturated the onboard rate-gyroscope sensors, which was needed for closed-loop control.

六個接合面都具備傳輸溝通的能力,也是這一個修訂版本中很重要的一個里程碑。我們成功地安裝紅外收發器到每個連接介面上。然而,我們後來發現進行實驗時,紅外線系統會與我們裝置環境的 3D 運動捕獲系統(用於地面測量)發生干擾,由於它使用類似頻率的紅外燈來照亮,會被辨識為跟蹤的標記。
It was also important in this revision to demonstrate communication on each of its six sides. We successfully accomplished this using infrared transceivers mounted to each connection interface. However, we later discovered interference issues when conducting experiments with our vehicle within the environment of a 3D motion capture system (needed for ground truth measurements), which uses a similar frequency of infrared light to illuminate markers that it tracks in order to estimate the pose for the object of interest.

另外我們也需要縮小電子設備的大小,這樣它才能納入提供保護的機殼之內。我們當時看到彈性印刷電路板的技術,對於這個技術的可行性產生了動機,並關注在這項計畫裡。當真正進入到主機板的生產時,在較小的數量上,這種服務所需的時間對我們而言實在太長了—我們希望能快速生產出原型,並放到設計裝置上進行測試。因此,我們不得不為一個標準的印刷電路板重新設計整個部分。
On top of this was the need to shrink the size of the electronics such that it would fit within the protected volume of the chassis. We were motivated by recent manufacturing possibilities in creating flexible printed circuit boards, and locked on to this scheme. When it came around to producing the boards, however, the lead-time for such services in relatively small quantities was much too long for our requirements — we wanted to be able to prototype and have a quick turn-around on our designs. We therefore had to redo parts of the design for a standard printed circuit board.

當系統第一次使用 3D 運動捕獲系統進行試飛時,透過回傳的測量訊息,我們得到了一些具建議性的資料。這些測量是非常精確和相對快速的,我們可以利用電路板上的功能直接估計問題,並只專注于這些問題的控制。事實上,我們主要在處理兩個項目:(1)如前面所述,從 3D 運動捕獲系統發出的紅外燈,會造成單元相互溝通時的干擾;(2)測量資訊 (或控制資訊) 在操控的前提下需要以無線的方式進行傳送,而在一般的發展(使用 WiFi)下,會產生大量的延遲和資料包的遺失。
There was also the suggestion to first fly the system using a 3D motion capture system for measurement feedback. Since these measurements were very precise and relatively fast, we could by-pass the onboard estimation problem and focus only on the control problem. This, in fact, worked against us for two major reasons: (1) as described before, the infrared light from the 3D motion capture system interfered with inter-communication; and (2) measurement information (or control information) needed to be transmitted to the vehicle wirelessly for control purposes, which at the time of development (using WiFi) generally incurred a lot of latency and packet loss.

有很多需要重新設計的項目,許多存在於假設的階段,而且有著要將研究出版的壓力。在一號修訂版,我們試圖在一次跳過太多的障礙,導致我們得到一個處於半工作狀態的系統—優化操作條件下,才能具備功能性,但大部分的時間是無法正常運作的。然而,我們也因此學到了許多,特別是我們集中注意力在設計而忽略的部分。這奠定了二號修訂版的方向,重點主要在開發地面上的作業。
There was a lot that needed to be redesigned, a lot that was assumed, and there was pressure to get research publications out. In Revision 1, we tried to jump over too many hurdles at once and what we delivered was a semi-functional system — functional under optimal operating conditions, but failed to work most of the time. However we learned many things, in particular it focused our attention on parts of the design that we overlooked. This laid the ground work for Revision 2.

在二號修訂版,我們重新設計的機殼以及提供推力的單元(螺旋槳和飛行電機)。一切從零開始,但保留的大部分電力和電子控制裝置。使用了一些製造技術上的最新研究,機殼在這個階段開始使用 3D 列印的技術,使我們能夠以很少的製作限制來進行設計,同時擁有相對快速的應變時間。第一個因素非常重要,這使得數個元件可以緊密的整合在一個單位內。第二個因素使我們能夠快速測試設計,不斷地重複這個流程是免不了的。
In Revision 2, we redesigned the chassis and thrust generation unit (i.e. propeller and flight motor) from scratch, but kept most of the power and control electronics the same. Using some of the most recent advances in manufacturing technology, the chassis was 3D printed this time around, enabling us to design with very little fabrication constraints and has a relatively quick turn-around time. The first factor was very important because of the number of tightly integrated components held together within a single unit. The second factor enabled us to quickly test a design and re-iterate as necessary.

這一次,我們有系統地穿過每個階段的設計。新的飛行發動機和螺旋槳被測試以確保它產生足夠的推力,並減少對機殼所產生的振動,使用的還是一號修訂版用的速率陀螺儀感應器。我們沿用一號版的電子單元,並用上兩組裝置,在水平向度上裝載兩個單位,測試避迴電路中沿著單一軸向旋轉的模式。這單獨的測試需要反覆幾次修改機殼,最終得到理想的版本。
This time around, we stepped through each phase of the design systematically. The new flight motor and propeller was tested to ensure that it produced a sufficient amount of thrust and produced little vibration within the chassis, which we tested using the rate-gyroscope sensors from Revision 1. Using two units and electronics from Revision 1, we tested the closed-loop behaviour around a single axis of rotation by mounting the two units on a horizontal pivot. This alone required a few iterations of the chassis, which in the end we managed to get right.

忽略相互溝通的問題,我們為了飛行的需求,埋首建造了六個完整的裝置單元。在今次的修訂版本中,我們展示了不同的配置下的協調飛行。飛行控制器是提前計算好的,並以無線方式在飛行前發送到每個單位。
Ignoring the intercommunication problem, we ploughed ahead and constructed six complete units for flight. In this revision, we demonstrated coordinated flight for a variety of configurations. The flight controller was computed ahead of time and sent wirelessly to each unit prior to flight.

The Distributed Flight Array: Outdoor Flight Experiments


機殼和推力的問題解決之後,於是我們開始著手各單位的操控和通訊能力。後來,我們重新設計通訊的方式,採用一個硬線的介面而不是紅外線連結,並利用母線的設計解決了我們在第一個版本中大量的通信線路。在下一節中有詳細的說明。
Knowing that the chassis and thrust generation unit was sound, we then went ahead and integrated driving capabilities and intercommunication into the units. In terms of the latter, we redesigned the intercommunication scheme, employing a hard-wired interface instead of an infrared wireless link and utilized an electrical bus to clean up the mess of communication lines we had in Revision 1. A detailed description is given in the next section.



由下而上的設計
每個單位使用單一 32 位元 72 MHz 的微控制器,控制嵌入的感應器、 執行器和通訊週邊設備等的所有介面。同一個微控制器還拿來用於執行所有控制所需的相關計算—沒有任何電路之外的計算。可互換的無線模組 (WiFi,或專有的跳頻擴頻) 允許我們與每個單元連線(例如遙測和下使用者命令);在這樣的情況下,我們可以配合外部感應器的使用(例如 3D 運動捕獲系統),資料將可以通過此無線連結發送到各單位。
Designed from the ground upEach unit uses a single 32-bit 72 MHz microcontroller to interface with all of the onboard sensors, actuators, and communication peripherals. The same microcontroller is also used for performing all of the computation necessary for estimation and control — there is no computation that is performed offboard. An interchangeable wireless module (either WiFi or proprietary frequency hopping spread spectrum) allows us to communicate with each unit (e.g. telemetry and user commands); in the case where external sensors are used (e.g. 3D motion capture system), the data can be sent to the units over this wireless link.

Components of the DFA.
Each unit uses a single 32-bit 72 MHz microcontroller to interface with
all of the onboard sensors, actuators, and communication peripherals

DFA 的元件
每個單位使用單一 32 位 72 MHz 微處理器連接 電路上所有感應器、 執行器、 和通信週邊設備


大多數航空飛行器是採用三軸速率陀螺儀為標準,用於測量本體速度角,以及估計裝置在飛行中的狀態。紅外距離感應器用來測量一個單位到地面的距離。不僅使用此感應器來估算裝置的高度,如果單位間分享他們高度的測量值,它們可以在飛越平坦的表面上空時,估計裝置的傾斜度。
Standard on most aerial vehicles is a 3-axis rate-gyroscope, which is used for measuring body angular velocities, as well as estimating the attitude of the vehicle in flight. An infrared distance measurement sensor is used for measuring the distance of a unit to the ground. Not only is this used for estimating the altitude of the vehicle, but if units share their distance measurements with one another they can also estimate the vehicle's tilt when flying over a flat surface.

我們同時為每個裝置設計了帶有磁性的介面,位於它的六個接面上。這允許一個裝置以被動的方式,與它周邊的裝置自動對齊。不過,這樣的連接強度其實不是很強。這樣的設置是必要的,因為它清楚地表明,個別單位之間需要進行合作以實現飛行的訴求—如果沒有它,裝置會在起飛前就自行斷裂。要成功地完成這個任務,飛行控制的策略必須是儘量減少飛行期間,裝置相互之間連接所產生的剪力。
We have designed each unit with magnetic interfaces, located along each of its six sides. This allows a unit to passively self-align with its connected peers. The connection strength, however, is in fact not very strong. This was intentional, as it clearly demonstrates the need for cooperation between individual units in order to achieve flight — without it, the vehicle would simple rip itself apart before take-off. To successfully accomplish this, the flight control strategy must minimize the shear forces occuring between interconnected units during flight.

三個黃金推針也建構在每個裝置的六個面上。與磁鐵一起整合運用,此介面的應用類似於蘋果的 MagSafe 電源連接器,不同處在於它提供了鄰近裝置之間的通信。這一點,我們開發自己的網路來處裡裝置相互間的溝通,以及路由的資料、時間同步、資訊融合技術等的演算法,以適用於一個資源有限的嵌入式系統。此外,裝置能夠在平面的一個距離內使用紅外無線收發器,其目的主要為了裝置間的自行組合。
Also located on each of its six sides are three gold push-pins. Together with the magnets, this interface behaves similarly to the Apple MagSafe power connector, except that this interface is used to provide a means for hard-wire communication between neighbouring peers. With this, we developed our own network layer to handle inter-unit communication, as well as algorithms for routing packets, time synchronization, information fusion, etc. on a resource limited embedded system. Units are also able to communicate with one another in plane at a distance using infrared wireless transceivers, which is primarily employed for self-assembly purposes.


Distributed Flight Array: Self-assembly.


每個單元搭配三個全方位轉輪,使它在地面上的移動具有高度的機動性,並能在群聚的狀態下一起移動。使用 3D 印表機技術來列印全方位轉輪,一體成型的優點讓它不需要裝配任何的元件。
Each unit is equipped with three omni-directional wheels, allowing it to move on the ground with a high degree of maneuverability and to be able to move when assembled together. One of the nice things about using 3D printer technology is that the omni-wheels could be printed as a single piece, without having to assemble any components.

定位在裝置中心的是一個固定的螺旋槳,能夠產生足夠的推力,將單一的裝置拉升到距離地面一定的距離。所有裝置在物理性基本上都一樣,除了螺旋槳的設計;部分是順時針方向,一些是逆時針方向旋轉—如此設計能夠取消在飛行中的空氣動力力矩。最後,需要一個高容量的鋰聚合物電池,用來提供所有的電子產品和裝置的電源。
Positioned at its centre is a fixed-pitch propeller, capable of generating enough thrust to lift a single unit off the ground. All units are physically identical except for the handedness of its propeller. Some are clockwise and some are counterclockwise — this is needed in order to cancel out the aerodynamic torques in flight. Finally, a high energy-density Lithium-Ion Polymer battery is used to power all the electronics and actuators contained onboard.


協調飛行
各單位可以在地面上移動、組裝、組成 adhoc 網狀網路(以便於與其他裝置交流),但在分散式飛行陣列中最突出的特色,是無限制數量下進行配置與應變的飛行能力。
Coordinated flight
The units can move around on the ground, self-assemble, generate an adhoc mesh network in order to communicate with one another, but the most striking feature of the Distributed Flight Array is its ability to fly in an unlimited number of configurations.

The Distributed Flight Array: Indoor Flight Experiments


還記得這些裝置間是靠著微弱的磁鐵組合。因此,每個裝置被要求飛行中的控制性,以減少群聚單元之間的剪力。最令人驚訝的是,單位之間不一定需要在飛行過程中與另一個傳遞訊息。
Recall that the units are being held weakly together with magnets. Thus, each unit is generating the appropriate control effort necessary to keep the vehicle in flight while minimizing the shear forces between individual units. What is most surprising is that the units themselves do not necessarily need to communicate with one another during flight.

飛行狀態下,單一裝置唯一需要傳遞的資訊是該裝置的位置,對應到整群裝置的中心位置。這可以被計算出來,如果每個裝置單元知道其物理配置。為了確定在這個訴求上,每個裝置可以偵測自身,每個單位可以通過共用相應的資訊,運作與鄰近裝置的關係。通過網路的轉發,這些資訊可以讓每個裝置到達對的物理配置,就如同一個人如何建立自己的家族。
The only information that a unit needs for flight is its local sensor data and its position with respect to the vehicle's centre of mass. This can be computed if each unit knows the physical configuration of the vehicle. In order for a unit to determine this on its own, each unit can work out its relation to neighbouring units by sharing appropriate information. By forwarding this information around the network, each unit can arrive at the physical configuration of the vehicle, much like how one might establish his/her family tree.

基於一個嚴謹的設定,在設計這些機殼、感應器資訊時,必須考慮到提供一個單位與裝置的傾斜與海拔高度的粗略估計能力。知曉單元對群體中心的位置,它得以對任何擾動做出所需的適當應對與控制。我們避免使用線性二次型調節器或其他最佳化後的控制策略,事實證明這樣的方法才能提供擴展的可能性。我們採用一個層疊的參數化控制器,組成物理上直觀的調整參數方式 (即閉迴電路頻率和衰變比),以提供每個向度的自由度。
Assuming a rigid body for the vehicle, which was taken into account when designing the chassis, local sensor information provides a unit with a rough estimate of the vehicle's tilt and altitude. And knowing its position with respect to the centre of mass, it's straightforward to work out the appropriate control effort needed to counter-act any disturbances. We avoided using a linear quadratic regulator or other optimal control strategies in favour of something much more straightforward, and as it turns out the method is also scalable. We employ a cascaded parameterized controller, consisting of tuning parameter that are physically intuitive (i.e. closed-loop natural frequency and damping ratio) for each degree of freedom.

現在,它不再需要手動的方式去調整控制器的每個配置。取而代之,我們開發了自動計算任何飛行配置的裝置,會最佳化參數以達到最有效率的飛行性能。在仔細的分析並獲得各種配置參數之後,我們開發可以應用於不同尺度、放樣到不同配置下,近似最佳化控制裝置的方法。
Now, it wouldn't be reasonable to hand-tune the controller for each and every configuration. We instead developed a means for automatically computing the tuning parameters for any flight-feasible configuration of the vehicle that would result in best flight performance. In carefullly analyzing the parameters obtained for a variety of configurations, we then developed a scalable method for mapping the configuration of a vehicle to its approximated optimal control tuning parameters.



Rewards and reality
A lot challenges, a lot of frustration, but also a lot of reward. What started as an idea is now a reality. Although we have not necessarily shown it to reenact the Concept Animation shown above, it is certainly capable of performing each of those tasks. What we have here is a piece that suitably demonstrates cooperative behaviour.

The success of this project would not have been made possible without support from the Swiss National Science Foundation, as well as the countless number of hours spent by students and technical staff — they all deserve as much credit. The Distributed Flight Array is currently being used at the Institute for Dynamic Systems and Control at ETH Zurich as a modular robotics platform for investigating algorithms in distributed estimation and control. Updates regarding the project's status and a list of those involved with the project can be found on itshome page.

Who's Currently Involved: Raffaello D'Andrea, Maximilian Kriegleder, Igor Thommen, and Marc A. Corzillius

Photo credit: Raymond Oung

Popular Posts