• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

3.2 基於向量域的線條跟隨方法

基於向量域的線條跟隨方法主要計算欲跟隨線條周圍的向量域,向量域裡的 向量表示了進行線條跟隨時所需的飛行方向[7]。本研究將根據本章 3.1 節輪廓線 條偵測的結果進行後續的飛行方向計算與無人機的移動控制。

對於研究[7]而言,使用公式 3.1 控制無人機進行線條跟隨,其中𝑉𝑎為空速,𝜑 為轉向角,𝑊𝑥與𝑊𝑦為風速。然而對於以前方視野進行線條跟隨的無人機而言,調 整轉向角的方式將會使無人機前方視野的線條消失,而且現有的線條跟隨不會再 偵測到跟隨過的線條,但前方視野依然能偵測到跟隨過的線條,無人機需要在固定 前方視野的情況下來決定跟隨方向。對此本研究將先計算欲跟隨線條周圍的向量,

找出飛行方向,後續讓無人機依照此飛行方向進行跟隨。

𝑥̇ = 𝑉𝑎∗ 𝐶𝑜𝑠𝜑 + 𝑊𝑥 𝑦̇ = 𝑉𝑎∗ 𝑆𝑖𝑛𝜑 + 𝑊𝑦

3.1(a)

3.1(b)

根據本章 3.1 節輪廓線條偵測之結果,線條兩旁的綠線即為欲跟隨線條周圍的 線條,因此針對這些位於線條兩旁的綠線進行向量的計算,產生向量域。如公式 3.2 所示,P1 與 P2 為綠線兩側之端點,其中 P1 為起點,P2 為終點,藉由 P2 與 P1 之 座標相減得到向量𝑉𝑒𝑐𝑡𝑜𝑟((𝑥𝑃1, 𝑦𝑃1), (𝑥𝑃2, 𝑦𝑃2)),其中 x 表示影像水平軸的座標,y 表 示影像垂直軸的座標,座標原點位於影像的左上角,並往右與下遞增。與現實世界 的座標系對應,前方為+x,左為+y(對應影像的 x),上為+z(對應影像的 y)。

𝑉𝑒𝑐𝑡𝑜𝑟((𝑥𝑃1, 𝑦𝑃1), (𝑥𝑃2, 𝑦𝑃2)) = (𝑥𝑃2− 𝑥𝑃1, 𝑦𝑃2− 𝑦𝑃1) 3.2

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

計算完位於欲跟隨線條兩旁的綠線向量後,為了找出飛行方向,接著根據公式 3.3 計算每條綠線的斜率,並將每條綠線的斜率進行平均,得出平均斜率 Avg.M。

然後本研究將影像中心設定為無人機目前的所在位置,以公式 3.4(a)得出飛行方向 (∆𝑦, ∆𝑧), ∆𝑦表示無人機左右移動之飛行方向,以常數值 C 作為無人機欲移動的水 平距離, ∆𝑧為𝐴𝑣𝑔. 𝑀 + 𝑦𝑖𝑚𝑎𝑔𝑒_𝑐𝑒𝑛𝑡𝑒𝑟,表示無人機依照平均斜率的計算結果進行上 下移動。由於垂直線的斜率不存在,因此公式 3.4(b)對垂直線進行處理,水平軸的

𝑦為 0,表示無人機不進行水平移動,而 ∆𝑧𝑦𝑃2𝑦𝑖𝑚𝑎𝑔𝑒_𝑐𝑒𝑛𝑡𝑒𝑟,表示無人機依照 欲跟隨線條周圍的向量往上或下移動。圖 3.5 以視覺方式呈現飛行方向,圖中的藍 色箭頭所指之綠線為輪廓線條偵測之結果,紅色箭頭所指之深紅線為計算出的飛 行方向。

𝑀((𝑥𝑃1, 𝑦𝑃1), (𝑥𝑃2, 𝑦𝑃2)) =(𝑦𝑃2− 𝑦𝑃1) (𝑥𝑃2− 𝑥𝑃1)

3.3

𝑦= ∁, ∆𝑧 = 𝐴𝑣𝑔. 𝑀 + 𝑦𝑖𝑚𝑎𝑔𝑒_𝑐𝑒𝑛𝑡𝑒𝑟

𝑦= 0, ∆𝑧 = 𝑦𝑃2 − 𝑦𝑖𝑚𝑎𝑔𝑒_𝑐𝑒𝑛𝑡𝑒𝑟

3.4(a) 3.4(b)

圖 3.5:以視覺方式呈現基於向量域的線條跟隨之飛行方向

藍色箭頭所指的綠線為輪廓線條偵測之結果,紅色箭頭所指之深紅線為飛行方向 輪廓線條偵測之結果 飛行方向

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

最後將依照公式 3.4 所計算出來的飛行方向進行無人機的移動控制,根據公式 3.5 對飛行方向進行調整,以λ修正飛行方向,主要目的是避免飛行方向數值過大,

導致無人機進行跟隨時速度過快,超過可人為控制降落之範圍,影響實驗的公平性。

無人機將以調整過的飛行方向進行移動控制,並根據圖 3.1 的流程進行下一個時間 點的輪廓線條偵測,直到終點完成線條跟隨。

𝑉𝑦 =∆𝑦 λ

3.5(a)

𝑉𝑧 =∆𝑧 λ

3.5(b)

當基於向量域的線條跟隨遇上稍微複雜的線條,如具有轉折處的線條,當無人 機視覺中心進入轉折處的時候,轉折處兩端的線條將影響向量的計算,導致跟隨表 現受到影響。如轉折處兩端為 V 字形時,計算出來的向量會因為兩條互為相反的 線條而趨近於直線,導致在轉折處的地方,基於向量域的線條跟隨無法沿著轉折處 移動,而會直直的橫越轉折處。當轉折處兩端為 L 字形時,計算出來的向量會趨 近於斜線,亦會使基於向量域的線條跟隨無法沿著轉折處移動,而依照斜線的向量 跟隨。