TWI725497B - 控制裝置與無人機控制方法 - Google Patents
控制裝置與無人機控制方法 Download PDFInfo
- Publication number
- TWI725497B TWI725497B TW108126699A TW108126699A TWI725497B TW I725497 B TWI725497 B TW I725497B TW 108126699 A TW108126699 A TW 108126699A TW 108126699 A TW108126699 A TW 108126699A TW I725497 B TWI725497 B TW I725497B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- building block
- drone
- block
- program building
- Prior art date
Links
Images
Abstract
控制裝置與無人機控制方法,所述方法包括:偵測在人機介面中被拖曳的第一程式積木;將第一程式積木黏接至對應於人機介面中的至少一目標程式積木的黏接位置以獲得由多個第二程式積木組成的第一程式積木序列;以及根據第一程式積木序列中多個第二程式積木的排列順序,依照此順序執行發送分別對應於多個第二程式積木的多個控制指令或控制虛擬無人機執行所述多個控制指令。
Description
本發明是有關於一種控制裝置與無人機控制方法。
一般來說,在以往學習程式的方式,總是透過撰寫與閱讀程式碼的方式學習。對於大部分年紀小的學生來說,這有不少的困難。原因在於從看得懂到寫得出程式,再到組織複雜的程式碼以致最後的可視的產出,需要花大量的時間學習。
此外,無人機在教育場域上總是有些先天上的危險與困難:一是無人機為求自身懸停的穩定性,槳葉需要有一定的高轉速,其存在著危險性。此外,當程式一執行後,無人機即自行飛行。若是程式撰寫有誤,無人機更容易有不預期動作發生。特別是,微型無人機本身的續航力只有十分鐘不到,是無法支援需要一試再試的程式撰寫動作。
此外,一般的無人機控制系統並無支援多機編隊的功能,要同時對多台無人機進行操控有一定程度的難度。
再者,無人機的控制通常需要遙控器進行操控。此時,由於使用者的雙手通常無法空出來做其它的事。若是能夠藉由手勢(或動作)或聲控控制無人機,就能增加更多的其它操控可能性。
因此,如何有效率地、簡單地撰寫控制無人機的程式,以及更有效地對無人機進行搖控,是本領域技術人員所欲解決的問題之一。
本發明實施例提供一種控制裝置與無人機控制方法可以提升在控制無人機時的使用者體驗。
本發明實施例提出一種控制裝置,所述控制裝置包括:一處理器以及一通訊電路。處理器耦接至一人機介面,其中所述人機介面用以顯示多個程式積木。所述處理器偵測在所述人機介面中被拖曳的一第一程式積木。所述處理器將所述第一程式積木黏接至所述人機介面中的至少一目標程式積木的一黏接位置以獲得由多個第二程式積木組成的一第一程式積木序列,其中所述多個第二程式積木包括所述第一程式積木與所述目標程式積木。所述處理器根據所述第一程式積木序列中所述多個第二程式積木的排列順序,依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的多個控制指令或控制至少一虛擬無人機執行所述多個控制指令。
本發明實施例提出一種無人機控制方法,用於一控制裝
置,所述控制裝置包括一處理器以及一通訊電路,所述處理器耦接至一人機介面且所述人機介面用以顯示多個程式積木,所述方法包括:偵測在所述人機介面中被拖曳的一第一程式積木;將所述第一程式積木黏接至對應於所述人機介面中的至少一目標程式積木的一黏接位置以獲得由多個第二程式積木組成的一第一程式積木序列,其中所述多個第二程式積木包括所述第一程式積木與所述目標程式積木;以及根據所述第一程式積木序列中所述多個第二程式積木的排列順序,依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的多個控制指令或控制至少一虛擬無人機執行所述多個控制指令。
基於上述,本發明實施例的控制裝置與無人機控制方法可以提供程式積木編輯與無人機控制功能、虛擬關卡與模擬飛行功能、多機編隊的程式積木編輯功能、飛行軌跡錄製功能以及動作與語音控制功能。針對程式積木編輯與無人機控制功能,可以讓使用者更易於學習程式的撰寫與對無人機的操作。針對虛擬關卡與模擬飛行功能,可以讓使用者在安全的環境模擬無人機的飛行,並且透過虛擬關卡的設置來增加飛行的趣味性。針對多機編隊的程式積木編輯功能,可以同時控制多台無人機,讓此些無人機可以協同運作並利於無人機的演出。針對飛行軌跡錄製功能,可以讓無人機再現使用者操作的過程。針對動作與語音控制功能,可以讓使用者用更多元的方式控制無人機的飛行。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉
實施例,並配合所附圖式作詳細說明如下。
1000:飛行控制系統
110:無人機
120:控制裝置
201、301:處理器
203:運動控制電路
205:影像擷取電路
207、307:通訊電路
303:人機介面
305:儲存電路
S201~S205、S301~S307、S501~S513、S801~S809、S811a、S811b、S813、S815:步驟
401、403、406、407、409、410、411、413:程式積木
402、408、412、414:黏接殘影
600:虛擬無人機
601:建議路線
602:障礙物
603~605、607~612:程式積木
700~702:程式積木序列
700a~700d:
701a~701d:
702a~702d:
150:無線存取點
110a~110d:無人機
800:使用者
圖1是依照本發明的一實施例所繪示的飛行控制系統的方塊圖。
圖2是依照本發明的一實施例所繪示的飛行控制方法的流程圖。
圖3是依照本發明的一實施例所繪示的步驟S203的詳細流程圖。
圖4A至圖4F是依照本發明的一實施例所繪示的人機介面顯示內容的示意圖。
圖5是依照本發明的一實施例所繪示的執行程式積木序列中的程式積木的流程圖。
圖6A至圖6D是依照本發明的一實施例所繪示的虛擬無人機飛行與虛擬飛行空間的示意圖。
圖7A至圖7D依照本發明的一實施例所繪示的多機編隊的程式積木編輯功能的示意圖。
圖8A至圖8B依照本發明的一實施例所繪示的動作與語音控制功能的示意圖。
圖1是依照本發明的一實施例所繪示的飛行控制系統的方塊圖。請參照圖1,飛行控制系統1000包括:無人機110以及控制裝置120。無人機110與控制裝置120例如透過無線網路或其他無線方式進行連繫、溝通。無人機110例如為無人飛行載具(Unmanned Aerial Vehicle)、飛行機器人(aerial robot)等。控制裝置120可以是智慧型手機、平板電腦、桌上型電腦或其他相類似的裝置,在此不設限。
無人機110包括處理器201、運動控制電路203、影像擷取電路205以及通訊電路207。其中,運動控制電路203、影像擷取電路205以及通訊電路207分別耦接至處理器201。
處理器201例如可以是一般用途處理器、特殊用途處理器、傳統的處理器、數位訊號處理器、多個微處理器(microprocessor)、一個或多個結合數位訊號處理器核心的微處理器、控制器、微控制器、特殊應用集成電路(Application Specific Integrated Circuit,ASIC)、場可程式閘陣列電路(Field Programmable Gate Array,FPGA)、任何其他種類的積體電路、狀態機、基於進階精簡指令集機器(Advanced RISC Machine,ARM)的處理器以及類似品。
運動控制電路203可以用以接收控制指令(亦稱為,控制訊號),並且基於控制指令來控制無人機110的飛行運動。運動控制電路203例如是由多個硬體晶片所組成並且還包括馬達(未繪示)以及控制設備(未繪示)。其中,運動控制電路203的馬達可以耦接
至無人機110的螺旋槳(未繪示)以及控制設備。馬達自控制設備接收控制指令後,可以控制螺旋槳的速度及力矩,藉此來決定無人機110的飛行運動。
影像擷取單元205例如是採用電荷耦合元件(Charge coupled device,CCD)鏡頭、互補式金氧半電晶體(Complementary metal oxide semiconductor transistors,CMOS)鏡頭、或紅外線鏡頭的攝影機、照相機。
通訊電路207例如為無線網卡、藍芽模組等,使得無人機110能夠透過無線地與控制裝置120進行溝通。
控制裝置120包括處理器301、人機介面303、儲存電路305以及通訊電路307。其中,人機介面303、儲存電路305以及通訊電路307耦接至處理器301。處理器301與通訊電路307可以分別是與上述處理器201與通訊電路207相類似的元件,故在此並不再贅述。
人機介面303可以是一觸控螢幕,其可用以輸出所需顯示的內容並且讓使用者直接透過觸控的方式進行輸入。或者,人機介面303也可以是一螢幕與輸入裝置(例如,鍵盤或滑鼠)的組合,在此不設限。
儲存電路307可以是任何型態的固定或可移動隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、快閃記憶體(flash memory)或類似元件或上述元件的組合。
在本實施例中,儲存單元307中儲存有多個程式碼片段,在上述程式碼片段被安裝後,會由處理器301來執行。例如,儲存單元中包括多個模組(例如,積木模組、參數模組、黏接模組與積木執行器或其他更多的模組),藉由這些模組來分別執行應用於飛行控制系統中的各個運作,其中各模組是由一或多個程式碼片段所組成。然而本發明不限於此,應用於飛行控制系統中的控制裝置120的各個運作也可以是使用其他硬體形式的方式來實現。
在本發明的實施例中,控制裝置120可以執行上述的模組來達成無人機控制系統1000的多個功能。在本實施例中,控制裝置120可以提供的功能包括:程式積木編輯與無人機控制功能、虛擬關卡與模擬飛行功能、多機編隊的程式積木編輯功能、飛行軌跡錄製功能以及動作與語音控制功能。在此分別詳述如下。
[程式積木編輯與無人機控制功能]
一般來說,在以往學習程式的方式,總是透過撰寫與閱讀程式碼的方式學習。對於大部分年紀小的學生來說,這有不少的困難。原因在於從看得懂到寫得出程式,再到組織複雜的程式碼以致最後的可視的產出,需要花大量的時間學習。為了降低學習程式邏輯的困難,並讓學生能快速地感受到進步,本發明實施例提供了程式積木編輯的功能以讓學生能快速地學習程式邏輯。
在本發明的實施例中,一個控制裝置120可以提供多種類型的程式積木,此些類型包括一般程式積木、包覆性積木、布林參數積木與數值參數積木。一般程式積木可以視為以圖形化元
件表示的一功能模組,其可以用以提供執行一對應的功能或操作的控制指令。需注意的是,本發明並不用於限定一般程式積木所需執行的操作。此外,包覆性積木用於被嵌入多個一般程式積木(即,將一般程式積木黏接至包覆性積木中),且包覆性積木在人機介面303的顯示狀態可以是一展開狀態或一收折狀態。在展開狀態中,包覆性積木可以顯示已被嵌入的多個一般程式積木。在收折狀態中,包覆性積木可以隱藏已被嵌入的多個一般程式積木。布林參數積木用以將一布林參數(例如,條件判斷式)嵌入一般程式積木(或包覆性積木中的一般程式積木)中以讓被嵌入布林參數積木的一般程式積木使用布林參數積木的布林參數執行一般程式積木的功能。
在本實施例中,使用者可以透過人機介面303來排列所需的程式積木以產生一程式積木序列,並且藉由處理器301依序執行此程式積木序列中的程式積木的控制指令以控制無人機110的飛行。
例如,圖2是依照本發明的一實施例所繪示的飛行控制方法的流程圖。
請參照圖2,在步驟S201中,控制裝置120偵測在人機介面303中被使用者拖曳的程式積木(亦稱為,第一程式積木)。之後,在步驟S203中,控制裝置120會將第一程式積木黏接至對應於人機介面303中的至少一程式積木(亦稱為,目標程式積木)的黏接位置以獲得由多個程式積木(亦稱為,第二程式積木)所組成的程
式積木序列(亦稱為,第一程式積木序列)。其中,此第一程式積木序列中的多個第二程式積木包括前述的第一程式積木與前述的目標程式積木。之後,在步驟S205中,控制裝置120會根據第一程式積木序列中的多個第二程式積木的排列順序,依照此順序執行分別對應於上述多個第二程式積木的多個控制指令以控制無人機110的飛行。
舉一範例來說,假設使用者可以透過人機介面303新增一功能為「起飛」的程式積木,將功能為「向前飛10公尺」的程式積木拖曳並黏接至功能為「起飛」的程式積木之後,並且將功能為「降落」的程式積木拖曳並黏接至功能為「向前飛10公尺」的程式積木之後。因此,前述的三個程式積木可以依序組成一個程式積木序列,且此程式積木序列依序包括功能為「起飛」的程式積木、功能為「向前飛10公尺」的程式積木以及功能為「降落」的程式積木。之後,控制裝置120可以根據上述多個程式積木的排列順序,依照此順序執行「起飛」、「向前飛10公尺」以及「降落」的多個控制指令(例如,發送對應的控制訊號給無人機110)以控制無人機110的飛行。於另一實施例中,控制裝置120可建構模擬飛行的環境,並顯示於人機介面303中,控制裝置120根據多個控制指令控制模擬飛行環境中的虛擬飛機飛行。
圖3是依照本發明的一實施例所繪示的步驟S203的詳細流程圖。需說明的是,上述步驟S203的細部流程可以由圖3進行書明。
請參照圖3,在步驟S301中,控制裝置120會識別在人機介面303所顯示的多個程式積木中,與前述被拖曳的第一程式積木發生碰撞的程式積木(亦稱為,碰撞程式積木)。需注意的是,步驟S301又可以稱為「偵測階段」。
詳細來說,當人機介面303所顯示的某個程式積木被開始拖曳時,處理器301會開始執行前述的步驟S301(即,偵測階段)。此時,處理器301會執行軸對稱包圍盒(Axis-Aligned Bounding Box)演算法,將目前拖拉的程式積木與人機介面303所顯示的所有程式積木進行判斷,進而找出所有與目前拖曳的程式積木發生碰撞的程式積木(即,碰撞程式積木),並將發生碰撞的程式積木加入一碰撞程式積木清單中。
在此詳細描述軸對稱包圍盒演算法。在軸對稱包圍盒演算法中,假設兩個程式積木為矩形的長方體。假設一程式積木A1在X軸方向最大與最小的座標值分別為Axmax與Axmin;程式積木A1在Y軸方向最大與最小的座標值分別為Aymax與Aymin;且程式積木A1在Z軸方向最大與最小的座標值分別為Azmax與Azmin。假設另一程式積木B1在X軸方向最大與最小的座標值分別為Bxmax與Bxmin;程式積木B1在Y軸方向最大與最小的座標值分別為Bymax與Bymin;且程式積木B1在Z軸方向最大與最小的座標值分別為Bzmax與Bzmin。當滿足下列三個條件時,可以判斷程式積木A1與程式積木B1發生碰撞:(1)Axmin<=Bxmax且Axmax>=Bxmin;(2)Aymin<=Bymax且Aymax>=Bymin;(3)
Azmin<=Bzmax且Azmax>=Bzmin。於另一實施例中,程式積木A1與程式積木B1為二維呈現的積木,程式積木A1與程式積木B1無Z軸方向的座標,故當滿足前兩個條件時,可以判斷程式積木A1與程式積木B1發生碰撞,即下列條件:(1)Axmin<=Bxmax且Axmax>=Bxmin;(2)Aymin<=Bymax且Aymax>=Bymin。
在找出所有與目前拖曳的第一程式積木發生碰撞的碰撞程式積木後,在步驟S303中,處理器301比對第一程式積木的型態與前述碰撞程式積木清單中的碰撞程式積木的型態以從碰撞程式積木中選擇至少一可黏接程式積木。特別是,步驟S303又可以稱為「位置檢查階段」。
詳細來說,如前所述,由於每個程式積木的型態都會屬於一般程式積木、包覆性積木、布林參數積木或數值參數積木。透過每個積木的型態,處理器301會確認被拖曳的第一程式積木與碰撞程式積木清單裡的程式積木是否可以互相黏接(或黏合),而碰撞程式積木清單裡可以與被拖曳的第一程式積木相互黏接的程式積木亦可稱為「可黏接程式積木」。而多個可黏接程式積木的集合可以稱為「可黏接程式積木清單」。
在本實施例中,當被拖曳的第一程式積木的型態為「一般程式積木」或「包覆性積木」且碰撞程式積木中的一程式積木(亦稱為,第三程式積木)的型態為「一般程式積木」或「包覆性積木」時,處理器301會將此第三程式積木歸類為可黏接程式積木。
此外,當被拖曳的第一程式積木的型態為「布林參數積
木」且碰撞程式積木中的一程式積木(亦稱為,第四程式積木)的型態為「可以被放入布林參數積木的一般程式積木」或「可以被放入布林參數積木的包覆性積木」時,處理器301會將此第四程式積木歸類為可黏接程式積木。在此需說明的是,「可以被放入布林參數積木的一般程式積木」代表可以被嵌入布林參數積木的一般程式積木,且該一般程式積木在執行時會使用該布林參數積木中的布林參數來執行對應的功能。而包括「可以被放入布林參數積木的一般程式積木」的包覆性積木又可以稱為「可以被放入布林參數積木的包覆性積木」。
當被拖曳的第一程式積木的型態為「數值參數積木」且碰撞程式積木中的一程式積木(亦稱為,第五程式積木)的型態為「可以被放入數值參數積木的一般程式積木」或「可以被放入數值參數積木的包覆性積木」時,處理器301會將此第五程式積木歸類為可黏接程式積木。在此需說明的是,「可以被放入數值參數積木的一般程式積木」代表可以被嵌入數值參數積木的一般程式積木,且該一般程式積木在執行時會使用該數值參數積木中的數值參數來執行對應的功能。而包括「可以被放入數值參數積木的一般程式積木」的包覆性積木又可以稱為「可以被放入數值參數積木的包覆性積木」。
在找出可黏接程式積木後,在步驟S305中,處理器301會從所找出的可黏接程式積木中選擇與被拖曳的第一程式積木距離最近的一程式積木作為目標程式積木。特別是,步驟S305又可
以稱為「距離判斷階段」。
詳細來說,處理器301會根據用以拖曳第一程式積木的使用者的手指在人機介面303的位置,計算用以拖曳第一程式積木的拖曳位置(例如,感測到的使用者的手指觸控的位置或游標位置)與每一個可黏接程式積木的中心點的距離,進而選擇與被拖曳的第一程式積木距離最近的可黏接程式積木作為目標程式積木。需注意的是,如果最短的距離有兩個,則處理器301會從可黏接程式積木清單中選排序較前面的可黏接程式積木作為目標程式積木。
在找出目標程式積木後,在步驟S307中,處理器301會根據目標程式積木與第一程式積木的型態與位置,決定第一程式積木的黏接位置並且將第一程式積木黏接至此黏接位置。特別是,步驟S307又可以稱為「黏接階段」。
詳細來說,當第一程式積木的型態為「一般程式積木」或「包覆性積木」且目標程式積木的型態為「一般程式積木」或「包覆性積木」時,處理器301會將第一程式積木黏接至目標程式積木的上方、下方或內部(即,嵌入)。當第一程式積木的型態為「布林參數積木」或「數值參數積木」且目標程式積木的型態為「一般程式積木」或「包覆性積木」時,處理器301會將第一程式積木黏接至目標程式積木的內部(即,嵌入)。
然而需注意的是,由於包覆性積木的狀態可以是展開狀態或收折狀態,在本範例中,當包覆性積木的狀態處於收折狀態
時,第一程式積木並無法被黏接(或嵌入)至目標程式積木的內部。僅在包覆性積木的狀態處於展開狀態時,第一程式積木才可以被黏接(或嵌入)至目標程式積木的內部。
簡單來說,「一般程式積木」與「包覆性積木」是可以放在別的程式積木的上方、下方或內部。不同的是,包覆性積木帶有收折功能,當收折起來時,其他的程式積木是無法放置在包覆性積木內部。布林參數積木與數值參數積木則是只能放在積木內部,後續黏合過程會檢查程式積木是否可以被放入布林參數積木還是數值參數積木。
在此需說明的是,由上述內容可知,在黏接階段會分成兩種情形:(1)黏接在程式積木的上方或下方;以及(2)黏接在積木的內部。在本實施例中,如果第一程式積木是黏接在目標程式積木的上方或下方,則第一程式積木不須變形,處理器301僅會將第一程式積木放到對應的位置即完成黏接。然而,如果第一程式積木是黏接在目標程式積木的內部,則被拖曳的第一程式積木會縮小一個比例後放入目標程式積木的內部以完成黏接。
圖4A至圖4F是依照本發明的一實施例所繪示的人機介面顯示內容的示意圖。
請參照圖4A,假設程式積木401為所識別出的目標程式積木,且程式積木403為使用者拖曳的程式積木。當經由前述步驟決定出黏接位置(例如,程式積木401的下方)後,人機介面303可以顯示一黏接殘影402以提醒使用者關於程式積木403將黏接
至程式積木401下方。
請參照圖4B,假設程式積木406為所識別出的目標程式積木(其為一包覆性積木),且程式積木407為使用者拖曳的程式積木。當經由前述步驟決定出黏接位置(例如,程式積木406的內部)後,人機介面303可以顯示一黏接殘影408以提醒使用者關於程式積木407將黏接至程式積木406內部。
請參照圖4C,假設程式積木409為一包覆性積木且其已內嵌多個一般程式積木,而程式積木409的所呈現的「收折狀態」可以如圖4C所示。
請參照圖4D,假設程式積木410為所識別出的目標程式積木(其為一般程式積木),且程式積木411為使用者拖曳的程式積木(其為數值參數積木)。當經由前述步驟決定出黏接位置(例如,程式積木410的內部)後,人機介面303可以顯示一黏接殘影412以提醒使用者關於程式積木411將黏接至程式積木410內部。此外,請參照圖4E,當程式積木411被放入程式積木410後,屬於數值參數積木的程式積木411會變小。
請參照圖4F,假設程式積木412為所識別出的目標程式積木(其為一包覆性積木),且程式積木413為使用者拖曳的程式積木(其為布林參數積木)。當經由前述步驟決定出黏接位置(例如,程式積木412的內部)後,人機介面303可以顯示一黏接殘影414以提醒使用者關於程式積木413將黏接至程式積木412內部。於此實施例中,程式積木413被黏貼於包覆性積木中的“如果”(IF)
的後方,用以在後續執行時此包覆性積木先判斷程式積木413(布林參數積木)是否符合,而執行其中包覆的其他程式積木,例如程式積木407。
藉由前述方式,使用者可以透過人機介面303來排列所需的程式積木以產生一程式積木序列,並且藉由處理器301依序執行此程式積木序列中的程式積木的控制指令以控制無人機110的飛行,或是控制模擬飛行環境中的虛擬飛機飛行。
更詳細來說,圖5是依照本發明的一實施例所繪示的執行程式積木序列中的程式積木的流程圖。
請參照圖5,首先在步驟S501中,使用者可以透過人機介面303點擊位於一程式積木序列開頭的一開始程式積木。接著,在步驟S503中,處理器301會從程式積木序列中的多個程式積木(即,第二程式積木)中取得一目前程式積木並執行該目前程式積木所對應的操作(例如,發送對應的控制訊號給無人機110)。接著,在步驟S505中,處理器301會判斷對應目前程式積木的控制指令的動作是否執行完成。當目前程式積木的控制指令的動作尚未執行完成時,在步驟S507中,處理器301會在一時間間隔(例如,0.03秒)後再次執行步驟S505進行判斷。當目前程式積木的控制指令的動作執行完成時,在步驟S509中,處理器301會判斷是否有下一個用於執行的程式積木。若有,則在步驟S511中處理器301會從程式積木序列中取得下一個用於執行的程式積木作為目前程式積木,並執行該程式積木所對應的操作(例如,發送下一個程式
積木對應的控制訊號給無人機110),並返回執行步驟S507。假設在步驟S509中處理器301判斷沒有下一個用於執行的程式積木時,則在步驟S513中結束圖5的流程。
需注意的是,在程式積木序列執行的過程中,非當前執行的程式積木,處理器301會將其色彩調整為半透明狀態以讓正在執行的程式積木變得更明顯,讓使用者很清楚地看到當前執行的程式積木是哪一個。同時,在執行的過程中,如果有被宣告的變數,也可以顯示在人機介面上,讓使用者知道當前使用的數值是多少。
此外,在人機介面303的顯示上,可以根據顏色區分上述不同類型(或功能)的程式積木。再根據形狀來區分該積木可以放置的位置。在本實施例中,每個積木上的文字也僅用簡短幾個字表示以降低學習困難。藉由上述三點,可以讓使用者更容易識別每個積木的作用與操作方式。積木在黏接時也有殘影顯示積木將會被黏貼的位置,讓使用者可以預期積木的黏接方式。
藉由上述積木控制的方式,可以降低使用者學習程式邏輯的困難,接著使用者就可以將這個使用經驗轉移到不同的教具,用同樣的操作方式去控制不同的教具,也可以用相同的操作方式挑戰下述的虛擬關卡。
[虛擬關卡與模擬飛行功能]
一般來說,無人機在教育場域上總是有些先天上的危險與困難:一是無人機為求自身懸停的穩定性,槳葉需要有一定的
高轉速,其存在著危險性。此外,當程式一執行後,無人機即自行飛行。若是程式撰寫有誤,無人機更容易有不預期動作發生。特別是,微型無人機本身的續航力只有十分鐘不到,是無法支援需要一試再試的程式撰寫動作。因此,本發明的飛行控制系統中的虛擬關卡與模擬飛行功能可以讓使用者所完成的程式積木序列在模擬的環境套用在虛擬的無人機上以預覽無人機的飛行動作,藉此降低危險性並提升程式撰寫的效率。
在本實施例中,處理器301可以提供多個虛擬關卡且每一個虛擬關卡可以包括一虛擬飛行空間以及至少一虛擬無人機。人機介面303可以顯示上述的虛擬關卡的其中之一。其中,虛擬飛行空間可以包括一建議路線以及障礙物。
在本實施例中,當使用者完成的程式積木序列的建置後,處理器301會根據該程式積木序列中的多個程式積木(例如,前述的第二程式積木)的排列順序,依照此順序執行分別對應於第二程式積木的多個控制指令以控制虛擬無人機在虛擬飛行空間中飛行。此外,當虛擬無人機通過一障礙物的通過條件時,所示人機介面303可以顯示對應該障礙物的一特效。
舉例來說,圖6A至圖6D是依照本發明的一實施例所繪示的虛擬無人機飛行與虛擬飛行空間的示意圖。
請參照圖6A至圖6C,人機介面303所顯示的虛擬飛行空間可以包括虛擬無人機600、建議路線601以及障礙物602。在圖6B中,假設使用者已設計包括程式積木603~605的程式積木序
列,當開始執行程式積木序列時,虛擬無人機600會依序執行程式積木603~605的控制指令以使虛擬無人機600在虛擬飛行空間中飛行(如圖6C所示)。特別是,在開始執行程式積木序列後,使用者即可透過人機介面303預覽虛擬無人機600飛行的路徑與動作,亦可調整觀測角度與距離,以在虛擬飛行空間中觀察虛擬無人機600與障礙物602的位置關係。此外,若是無人機600在虛擬飛行空間中撞擊障礙物602,則會掉落。
以圖6D所執行的程式積木序列為例,圖6D的程式積木序列包括程式積木607~612。首先在程式積木607中,虛擬無人機600的飛行速度會被調到100%(即,將飛行速度調至最大)。接著在程式積木608中,虛擬無人機600會從地面起飛。而在程式積木609~612中,虛擬無人機600會分別執行多次不同的曲線飛行。以程式積木609為例,一個曲線飛行的設定如下:將虛擬飛行空間中的兩個座標點做為曲線飛行點。程式積木609裡的座標點P1為第1點,位於原本位置的左下方。此外座標點P2為第2點,為原本位置的左上方。根據起點、座標點P1與座標點P2三點,處理器301可以算出曲線飛行路徑。
[多機編隊的程式積木編輯功能]
特別是,本發明的無人機控制系統還支援多機編隊的功能。也就是說,在多機編隊的功能中,可以同時控制多台無人機的飛行與動作,並且作出一致性動作的表演。
詳細來說,圖7A至圖7D依照本發明的一實施例所繪示
的多機編隊的程式積木編輯功能的示意圖。
請參照圖7A至圖7D,在圖7A的無人機控制系統1000中,可以包括無人機110a~110d、控制裝置120與無線存取點150。在本實施例中,若欲執行多機編隊的功能,控制裝置120會透過通訊電路207提供無線存取點150的帳號(例如,SSID)與密碼給無人機110a~110d(例如,透過圖7B中控制裝置120顯示的介面輸入帳號與密碼,並且控制裝置120與無人機110a或無人機110d連線時傳送無線存取點150的帳號與密碼,以使無人機110a~110d連線至無線存取點150)。在此,為了方便說明,以下以無人機110a(亦稱為,第一無人機)以及無人機110b(亦稱為,第二無人機)進行說明。而相類似的功能也可以應用至無人機110c~110d。
當無人機110a與無人機110b使用控制裝置120提供的帳號與密碼連接無線存取點150後,無人機110a與無人機110b會中斷與控制裝置120的連線以進入「AP模式」。而此步驟會重覆的執行直到所有的無人機皆進入AP模式中。
之後,使用者可以用控制裝置120與無線存取點150連接,透過無線存取點150搜尋(例如,圖7C顯示的搜尋頁面)並連接所有已連接至無線存取點150的無人機110a~110d。在搜尋完畢後,控制裝置120便完成了無人機的多機連接的設定步驟。
之後,控制裝置120可以設計並取得用於控制無人機110a~110d飛行的程式積木序列700~702。如何透過拖曳、黏接程式積木以產生程式積木序列的過程已詳述如前,在此不再贅述。
假設程式積木序列700~702分別用以控制無人機110a~110c,無人機110可以依照程式積木序列700中程式積木700a~700d的順序執行分別對應於程式積木700a~700d的多個控制指令以控制無人機110a的飛行。此外,控制裝置120還會根據程式積木序列701(亦稱為,第二程式積木序列)中的程式積木701a~701d(亦稱為,第六程式積木)的排列順序,依照此順序透過通訊電路發送207發送分別對應於程式積木701a~701d的多個控制指令給無人機110b同時與無人機110a以控制無人機110b同時與無人機110a一起飛行。而相類似的運作可以應用在無人機110c與110d,在此不再贅述。而由圖7D可知,無人機110a與無人機110b兩者會同步地執行程式積木序列中相同位置的程式積木序列。例如,無人機110a在執行程式積木序列700中的第一個程式積木700a時,無人機110b也同時在執行程式積木序列701中的第一個程式積木701a,以此類推。
在一實施例中,控制裝置120可以儲存前述已製作好的程式積木序列(例如,程式積木序列700~702)以及一無人機放置圖。其中,無人機放置圖用以描述已儲存的程式積木序列所對應的無人機在起飛前被放置於一地墊上的位置。也就是說,無人機放置圖用於告訴一個使用者該如何放置無人機於一地墊上。使用者在一開始可以先編輯前述的無人機放置圖,再將無人機放置圖夾帶到存檔裡,並透過雲端方式傳給另外一個使用者。如此,另一名使用者在執行前,可以參照無人機放置圖上的位置與角度,
放置他們的無人機,執行時,能有較為精確的執行結果。於另一實施例中,多機編隊的程式積木編輯功能亦可與虛擬飛行空間之模擬飛行結合,於虛擬飛行空間中模擬對應無人機110a~110c的多個虛擬無人機同時執行程式積木序列700~702對應指令的動作,以讓使用者了解多機飛行所呈現的效果,並學習與調整多機編隊的程式積木。
[飛行軌跡錄製功能]
此外,本發明的飛行控制系統還提供飛行軌跡的錄製功能。一般來說,遙控飛行與編程控制不同的地方在於使用者即時的反應,因此能飛出比較滑順的軌跡與動作。為了使飛行動作更為順暢,讓使用者錄製遙控飛行的動作,並再次對其修正,能增加最後飛行動作的精準度。另一方面,由於錄製好的飛行軌跡是由程式控制,因此使用者可以錄製好飛行軌跡後,一鍵由程式重現剛才的飛行軌跡,這期間使用者與無人機可以互相配合,做出表演或其他的應用。
以圖1的飛行控制系統1000為例,在遙控無人機110飛行的過程中,使用者可以透過控制裝置120下達錄製的指令。程式會記錄接下來由控制裝置120傳送給無人機110的指令。之後,當使用者執行重現的指令時,控制裝置120會將下達錄製指令後的每個時間點的指令,依時間點傳送給無人機,以重現先前錄製(或記錄)的飛行狀況。
舉例來說,在錄製的過程中,假設在第0秒時使用者按
下錄製按鈕以開始錄製程序。接著在第2秒時,使用者按下起飛按鈕,並由控制裝置120發送起飛指令給無人機120以讓無人機起飛。同時,控制裝置120會將起飛指令及第2秒的時間點記錄下來。假設在第6秒時,使用者透過控制裝置120發送“rc 100 0 0 0”的指令給無人機110以讓無人機110以100的速度往左飛,控制裝置120會將”rc 100 0 0 0”指令及第6秒的時間點記錄下來。假設在第10秒時,使用者按下降落按鈕,由控制裝置120發送降落指令給無人機110。此時控制裝置120會將降落指令及第10秒的時間點記錄下來。最後,假設在第12秒時使用者按下停止錄製按鈕,停止錄製程序。
之後,在播放的過程中,假設在第0秒時使用者按下播放按鈕以開始播放前述所記錄的多個動作程序。接著在第2秒時,控制裝置120會根據前述的紀錄發送起飛指令給無人機110以讓無人機起飛。在第6秒時,控制裝置120會根據前述的紀錄將”rc 100 0 0 0”指令發送給無人機110。在第10秒時,控制裝置120會根據前述的紀錄發送降落指令給無人機110。同時,由於前述所記錄的內容已播放完畢,因此控制裝置120會自動停止播放程序。
換句話說,在本實施例中,控制裝置120會接收並記錄用以控制無人機110飛行的多個控制指令(亦稱為,第一控制指令)。其中,所述多個第一控制指令是由使用者透過控制裝置120所輸入且此些第一控制指令是按照一時間先後順序發送並執行。而在播放的過程中,控制裝置120會依照前述的時間先後順序發
送所錄製的多個第一控制指令以控制無人機110執行多個第一控制指令並重現先前的飛行情況。
對影片創作者而言,可以將此功能作為電影運鏡的助手,透過遙控飛行與飛行軌跡錄製,並配合影像擷取電路205,找出需要的拍攝角度與路線,在拍攝結束後,將無人機錄製的影片加入後製,創作出特別的影片。
對表演工作者而言,可以將此功能作為表演影片的錄製工具,也可以設定無人機飛行路線,搭配人的動作演出,產生新式的人機共舞表演。
[動作與語音控制功能]
一般來說,無人機的控制通常需要遙控器(例如,控制裝置120)進行操控。此時,由於使用者的雙手通常無法空出來做其它的事。若是能夠藉由手勢(或動作)或聲控控制無人機,就能增加更多的其它操控可能性。因此,在本實施例中,使用者可以在不使用遙控器的情況下,透過手勢或聲音控制無人機的動作。
詳細來說,圖8A至圖8B依照本發明的一實施例所繪示的動作與語音控制功能的示意圖。請參照圖8A,在圖8A的實施例中,可以藉由辨識使用者800的動作來得知使用者欲下達的指令,進而控制無人機110的飛行。具體來說,使用者800可以使用控制裝置120下達「手勢操作」(或「動作操作」)的狀態。此時,控制裝置120就會處在「接收影像、處理影像、發送指令」的「手勢操作」狀態。
詳細來說,在圖8A的實施例中無人機110會包括一影像擷取電路(例如相機,在此未繪示)。在圖8A的步驟S801中,無人機110會拍攝(或接收)使用者800的至少一影像,並在步驟S803中將所獲得的影像傳送至控制裝置120。在步驟S805中,控制裝置120根據所接收到的影像(例如,一系列的影像)識別影像中使用者800的所作出的動作,並查詢預存在控制裝置120中的一查找表以得知該動作所對應的一飛行動作。之後在步驟S807中,控制裝置120會發送對應於該飛行動作的一特定控制指令至無人機110以控制無人機110根據此特定控制指令執行前述的飛行動作。
舉例來說,使用者800可以對無人機110揮手,讓控制裝置120能使用「影像辨識」標示操作者的身影,讓使用者800取得對無人機110進行手勢操作(或動作操作)的操作權。在本實施例中,控制裝置120使用TensorFlow的PoseNet即時建立與偵測人體動作。經過控制裝置120對使用者800的影像進行運算後,若是成功擷取到使用者800的動作節點(例如,身體關節的節點),則會告知成功。若是無法完全擷取到使用者800正確的影像,控制裝置120會自動向無人機110發送調整飛行動作的指令,例如,向左右自旋正負30度藉此讓所拍攝的使用者800位在影像的正中間,然後緩慢向後飛30cm範圍內試著取得使用者800的全身影像,使拍攝到的畫面能將使用者800的影像正確放在畫面中央。若還是擷取不到使用者對應於使用者的數據,控制裝置120會發送警告音提示使用者800,並在人機介面303中顯示建議的站立姿
勢。在本實施例中,無人機自調飛行的範圍必須夠小,否則有機率發生不預期撞擊。
之後,使用者800可以根據特定的手勢動作,比如揮動手臂、行走等,讓控制裝置120對無人機110下達對應的控制指令。需說明的是,因為採用人體動作的擷取而非人體部位辨識(比如辨識人的手掌形狀),故在本實施例中,需要使用者800用比較大的動作來操作無人機。假設在預設手勢動作中,手勢向左(或向右)揮代表要求無人機110面對使用者800向右(或向左)飛。假設在預設手勢動作中,手肘不動但手掌向前/後揮動代表無人機110面對操作者向後/前飛。假設在預設手勢動作中,手肘向上揮代表無人機面對操作者向上/下飛。假設在預設手勢動作中,手肘不動但手掌正面順/逆時針畫圈代表無人機110面對操作者左/右翻滾。假設在預設手勢動作中,握拳不動代表無人機110懸停在空中。需說明的是,上述的使用者800的手勢(或動作)與無人機110對應的動作僅是一範例進行說明,控制裝置120也可以提供自定義的手勢控制,讓使用者800錄製自己的動作來操控無人機110。
請參照圖8B,在圖8B的實施例中,可以藉由辨識使用者800的聲音來得知使用者欲下達的指令,進而控制無人機110的飛行。具體來說,在圖8B中,控制裝置120可以透過步驟S811a或步驟S811b取得使用者800所發出的聲音的語音訊號。例如,在步驟S811a中,控制裝置120的麥克風(未繪示)可以接收使用者800所發出的聲音的聲音訊號。或者在步驟S811b中,控制裝置
120可以透過一外部的麥克風(例如,連線至控制裝置120的無線耳機)接收使用者800所發出的聲音的語音訊號。之後,在步驟S813中,控制裝置120會根據所獲得的語音訊號進行語音辨識並根據語音辨識的結果獲得對應於語音訊號的一飛行動作。例如,控制裝置120會辨識出語音訊號中所下達的指令,並根據此指令查詢預存在控制裝置120中的一查找表以得知該指令所對應的一飛行動作。之後,在步驟S815中,控制裝置120會發送對應於該飛行動作的一特定控制指令至無人機110以控制無人機110根據此特定控制指令執行前述的飛行動作。
舉例來說,假設語音訊號為「Take off」,則控制裝置120會下達指令以要求無人機「起飛」;假設語音訊號為「Landing」,則控制裝置120會下達指令以要求無人機「降落」;假設語音訊號為「Forward」,則控制裝置120會下達指令以要求無人機「向前飛」;假設語音訊號為「Back」,則控制裝置120會下達指令以要求無人機「往後飛」;假設語音訊號為「Stop」,則控制裝置120會下達指令以要求無人機「懸停在空中」;假設語音訊號為「Left」,則控制裝置120會下達指令以要求無人機「向左飛」;假設語音訊號為「Right」,則控制裝置120會下達指令以要求無人機「向右飛」。假設語音訊號為「Turn Left」,則控制裝置120會下達指令以要求無人機「左(逆時針)自轉」。假設語音訊號為「Turn Right」,則控制裝置120會下達指令以要求無人機「右(順時針)自轉」。假設語音訊號為「Shoot」,則控制裝置120會下達指令以要求無人
機「拍照」。假設語音訊號為「Speed X」,則控制裝置120會下達指令以要求無人機「調整速度至X」。於另一實施例中,動作與語音控制功能亦可與飛行軌跡錄製功能結合,舉例來說,使用者可啟用錄製功能後,以動作或語音控制無人機110飛行,控制裝置120接收使用者的影像或語音後辨識出對應的特定控制指令,並發送特定控制指令至無人機110,同時控制裝置120會錄製該特定控制指令以及記錄相應的時間點,以利使用者錄製完成後可透過控制裝置120播放所錄製的指令。
綜上所述,本發明的控制裝置與無人機控制方法可以提供程式積木編輯與無人機控制功能、虛擬關卡與模擬飛行功能、多機編隊的程式積木編輯功能、飛行軌跡錄製功能以及動作與語音控制功能。針對程式積木編輯與無人機控制功能,可以讓使用者更易於程式的撰寫與對無人機的操作。針對虛擬關卡與模擬飛行功能,可以讓使用者在安全的環境模擬無人機的飛行,並且透過虛擬關卡的設置來增加飛行的趣味性。針對多機編隊的程式積木編輯功能,可以同時控制多台無人機,讓此些無人機可以協同運作並利於無人機的演出。針對飛行軌機錄製功能,可以讓無人機再現使用者操作的過程。針對動作與語音控制功能,可以讓使用者用更多元的方式控制無人機的飛行。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍
當視後附的申請專利範圍所界定者為準。
S201~S205‧‧‧步驟
Claims (18)
- 一種控制裝置,所述控制裝置包括:一處理器,耦接至一人機介面,其中所述人機介面用以顯示多個程式積木;以及一通訊電路,其中所述處理器偵測在所述人機介面中被拖曳的一第一程式積木,所述處理器將所述第一程式積木黏接至所述人機介面中的至少一目標程式積木的一黏接位置以獲得由多個第二程式積木組成的一第一程式積木序列,其中所述多個第二程式積木包括所述第一程式積木與所述目標程式積木,以及所述處理器根據所述第一程式積木序列中所述多個第二程式積木的排列順序,依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的多個控制指令或控制至少一虛擬無人機執行所述多個控制指令,其中在將所述第一程式積木黏接至所述人機介面中的所述目標程式積木的所述黏接位置的運作中,所述處理器識別與所述第一程式積木碰撞的至少一碰撞程式積木,所述處理器比對所述第一程式積木的型態與所述碰撞程式積木的型態以從所述碰撞程式積木中選擇至少一可黏接程式積木,所述處理器從所述可黏接程式積木中選擇與所述第一程式積木距離最近的所述目標程式積木, 所述處理器根據所述目標程式積木與所述第一程式積木的型態與位置,決定所述黏接位置並且將所述第一程式積木黏接至所述黏接位置。
- 如申請專利範圍第1項所述的控制裝置,其中每一所述多個程式積木的型態為一般程式積木、包覆性積木、布林參數積木或數值參數積木,其中所述包覆性積木的狀態包括一展開狀態或一收折狀態,其中所述處理器提供一虛擬飛行空間以及在所述虛擬飛行空間中提供所述虛擬無人機,所述虛擬飛行空間包括至少一建議路線或至少一障礙物。
- 如申請專利範圍第2項所述的控制裝置,其中在比對所述第一程式積木的型態與所述碰撞程式積木的型態以從所述碰撞程式積木中選擇所述可黏接程式積木的運作中,當所述第一程式積木的型態為所述一般程式積木或所述包覆性積木且所述碰撞程式積木中的一第三程式積木的型態為所述一般程式積木或所述包覆性積木時,所述控制裝置將所述第三程式積木歸類為所述可黏接程式積木,當所述第一程式積木的型態為所述布林參數積木且所述碰撞程式積木中的一第四程式積木的型態為可以被放入所述布林參數積木的所述一般程式積木或所述包覆性積木時,所述控制裝置將所述第四程式積木歸類為所述可黏接程式積木,以及當所述第一程式積木的型態為所述數值參數積木且所述碰撞 程式積木中的一第五程式積木的型態為可以被放入所述數值參數積木的所述一般程式積木或所述包覆性積木時,所述控制裝置將所述第五程式積木歸類為所述可黏接程式積木,其中在根據所述目標程式積木與所述第一程式積木的型態與位置,決定所述黏接位置並且將所述第一程式積木黏接至所述黏接位置的運作中,當所述第一程式積木的型態為所述一般程式積木或所述包覆性積木且所述目標程式積木的型態為所述一般程式積木或所述包覆性積木時,所述控制裝置將所述第一程式積木黏接至所述目標程式積木的上方、下方或內部,當所述第一程式積木的型態為所述布林參數積木或所述數值參數積木且所述目標程式積木的型態為一般程式積木或所述包覆性積木時,所述控制裝置將所述第一程式積木黏接至所述目標程式積木的內部。
- 如申請專利範圍第1項所述的控制裝置,其中在依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的所述多個控制指令或控制所述虛擬無人機執行所述多個控制指令的運作中,所述處理器從所述多個第二程式積木中取得一目前程式積木,並透過所述通訊電路發送對應於所述目前程式積木的控制指令,所述處理器透過所述通訊電路與一第一無人機通訊以判斷對應所述目前程式積木的控制指令的動作是否執行完成, 響應於所述目前程式積木的控制指令的動作尚未執行完成,所述處理器在一時間間隔後再次透過所述通訊電路與所述第一無人機通訊判斷對應所述目前程式積木的控制指令是否執行完成,響應於所述目前程式積木的控制指令的動作執行完成且當所述多個第二程式積木中有剩餘的程式積木,所述處理器從所述多個第二程式積木中取得下一個用於執行的程式積木作為所述目前程式積木。
- 如申請專利範圍第4項所述的控制裝置,其中所述控制裝置取得一第二程式積木序列,其中在依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的所述多個控制指令的運作中,所述控制裝置根據所述第二程式積木序列中多個第六程式積木的排列順序,依照所述順序透過所述通訊電路發送分別對應於所述多個第六程式積木的多個控制指令以控制一第二無人機同時與所述第一無人機一起飛行。
- 如申請專利範圍第5項所述的控制裝置,其中所述控制裝置透過所述通訊電路提供對應於一無線存取點的一帳號與一密碼給所述第一無人機與所述第二無人機,所述第一無人機與所述第二無人機使用所述帳號與密碼連接所述無線存取點,並中斷與所述控制裝置的連線,以及所述控制裝置透過所述通訊電路與所述無線存取點搜尋已連接至所述無線存取點的所述第一無人機與所述第二無人機, 其中所述控制裝置的一儲存電路儲存所述第一程式積木序列、所述第二程式積木序列以及一無人機放置圖,其中所述無人機放置圖用以描述所述第一無人機與所述第二無人機在起飛前被放置於一地墊上的位置。
- 如申請專利範圍第4項所述的控制裝置,其中所述控制裝置接收並記錄用以控制所述第一無人機飛行的多個第一控制指令,其中所述多個第一控制指令是按照一時間先後順序排列,以及所述控制裝置依照所述時間先後順序發送所錄製的所述多個第一控制指令以控制所述第一無人機重現先前記錄的飛行情況。
- 如申請專利範圍第4項所述的控制裝置,其中所述第一無人機包括一影像擷取裝置,所述控制裝置透過所述通訊電路接收所述第一無人機拍攝一使用者的至少一影像,所述控制裝置根據所述影像識別所述使用者的一動作,並根據所述動作識別對應於所述動作的一飛行動作,所述控制裝置透過所述通訊電路發送對應於所述飛行動作的一特定控制指令至所述第一無人機以控制所述第一無人機根據所述特定控制指令執行所述飛行動作。
- 如申請專利範圍第4項所述的控制裝置,其中所述控制裝置接收一使用者的語音訊號,所述控制裝置根據所述語音訊號進行語音辨識,並根據所述 語音辨識的結果獲得對應於所述語音訊號的一飛行動作,所述控制裝置透過所述通訊電路發送對應於所述飛行動作的一特定控制指令至所述第一無人機以控制所述第一無人機根據所述特定控制指令執行所述飛行動作。
- 一種無人機控制方法,用於一控制裝置,所述控制裝置包括一處理器以及一通訊電路,所述處理器耦接至一人機介面且所述人機介面用以顯示多個程式積木,所述方法包括:偵測在所述人機介面中被拖曳的一第一程式積木;將所述第一程式積木黏接至對應於所述人機介面中的至少一目標程式積木的一黏接位置以獲得由多個第二程式積木組成的一第一程式積木序列,其中所述多個第二程式積木包括所述第一程式積木與所述目標程式積木;以及根據所述第一程式積木序列中所述多個第二程式積木的排列順序,依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的多個控制指令或控制至少一虛擬無人機執行所述多個控制指令,其中將所述第一程式積木黏接至所述人機介面中的所述目標程式積木的所述黏接位置的步驟包括:識別與所述第一程式積木碰撞的至少一碰撞程式積木;比對所述第一程式積木的型態與所述碰撞程式積木的型態以從所述碰撞程式積木中選擇至少一可黏接程式積木;從所述可黏接程式積木中選擇與所述第一程式積木距離最近的所述目標程式積木;以及 根據所述目標程式積木與所述第一程式積木的型態與位置,決定所述黏接位置並且將所述第一程式積木黏接至所述黏接位置。
- 如申請專利範圍第10項所述的無人機控制方法,其中每一所述多個程式積木的型態為一般程式積木、包覆性積木、布林參數積木或數值參數積木,其中所述包覆性積木的狀態包括一展開狀態或一收折狀態,所述方法還包括:提供一虛擬飛行空間以及在所述虛擬飛行空間中提供所述虛擬無人機,所述虛擬飛行空間包括至少一建議路線或至少一障礙物。
- 如申請專利範圍第11項所述的無人機控制方法,其中比對所述第一程式積木的型態與所述碰撞程式積木的型態以從所述碰撞程式積木中選擇所述可黏接程式積木的步驟包括:當所述第一程式積木的型態為所述一般程式積木或所述包覆性積木且所述碰撞程式積木中的一第三程式積木的型態為所述一般程式積木或所述包覆性積木時,將所述第三程式積木歸類為所述可黏接程式積木;當所述第一程式積木的型態為所述布林參數積木且所述碰撞程式積木中的一第四程式積木的型態為可以被放入所述布林參數積木的所述一般程式積木或所述包覆性積木時,將所述第四程式積木歸類為所述可黏接程式積木;以及當所述第一程式積木的型態為所述數值參數積木且所述碰撞 程式積木中的一第五程式積木的型態為可以被放入所述數值參數積木的所述一般程式積木或所述包覆性積木時,將所述第五程式積木歸類為所述可黏接程式積木,其中根據所述目標程式積木與所述第一程式積木的型態與位置,決定所述黏接位置並且將所述第一程式積木黏接至所述黏接位置的步驟包括:當所述第一程式積木的型態為所述一般程式積木或所述包覆性積木且所述目標程式積木的型態為所述一般程式積木或所述包覆性積木時,將所述第一程式積木黏接至所述目標程式積木的上方、下方或內部;以及當所述第一程式積木的型態為所述布林參數積木或所述數值參數積木且所述目標程式積木的型態為一般程式積木或所述包覆性積木時,將所述第一程式積木黏接至所述目標程式積木的內部。
- 如申請專利範圍第10項所述的無人機控制方法,其中依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的所述多個控制指令或控制所述虛擬無人機執行所述多個控制指令的步驟包括:從所述多個第二程式積木中取得一目前程式積木,透過所述通訊電路發送對應於所述目前程式積木的控制指令,並透過所述通訊電路與一第一無人機通訊以判斷對應所述目前程式積木的控制指令的動作是否執行完成;響應於所述目前程式積木的控制指令的動作尚未執行完成, 在一時間間隔後再次透過所述通訊電路與所述第一無人機通訊判斷對應所述目前程式積木的控制指令是否執行完成;以及響應於所述目前程式積木的控制指令的動作執行完成且當所述多個第二程式積木中有剩餘的程式積木,從所述多個第二程式積木中取得下一個用於執行的程式積木作為所述目前程式積木。
- 如申請專利範圍第13項所述的無人機控制方法,更包括:取得一第二程式積木序列;其中依照所述順序透過所述通訊電路發送分別對應於所述多個第二程式積木的所述多個控制指令的步驟包括:根據所述第二程式積木序列中多個第六程式積木的排列順序,依照所述順序透過所述通訊電路發送分別對應於所述多個第六程式積木的多個控制指令以控制一第二無人機同時與所述第一無人機一起飛行。
- 如申請專利範圍第14項所述的無人機控制方法,更包括:提供對應於一無線存取點的一帳號與一密碼給所述第一無人機與所述第二無人機以所述第一無人機與所述第二無人機使用所述帳號與密碼連接所述無線存取點並中斷與所述控制裝置的連線;以及透過所述無線存取點搜尋已連接至所述無線存取點的所述第一無人機與所述第二無人機, 其中所述控制裝置的一儲存電路儲存所述第一程式積木序列、所述第二程式積木序列以及一無人機放置圖,其中所述無人機放置圖用以描述所述第一無人機與所述第二無人機在起飛前被放置於一地墊上的位置。
- 如申請專利範圍第13項所述的無人機控制方法,更包括:接收並記錄用以控制所述第一無人機飛行的多個第一控制指令,其中所述多個第一控制指令是按照一時間先後順序排列;以及依照所述時間先後順序發送所錄製的所述多個第一控制指令以控制所述第一無人機重現先前記錄的飛行情況。
- 如申請專利範圍第13項所述的無人機控制方法,其中所述第一無人機包括一影像擷取裝置,所述方法更包括:接收所述第一無人機拍攝一使用者的至少一影像;根據所述影像識別所述使用者的一動作,並根據所述動作識別對應於所述動作的一飛行動作;以及發送對應於所述飛行動作的一特定控制指令至所述第一無人機以控制所述第一無人機根據所述特定控制指令執行所述飛行動作。
- 如申請專利範圍第13項所述的無人機控制方法,更包括:接收一使用者的語音訊號; 根據所述語音訊號進行語音辨識,並根據所述語音辨識的結果獲得對應於所述語音訊號的一飛行動作;以及發送對應於所述飛行動作的一特定控制指令至所述第一無人機以控制所述第一無人機根據所述特定控制指令執行所述飛行動作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910712308.1A CN110825121B (zh) | 2018-08-08 | 2019-08-02 | 控制装置与无人机控制方法 |
US16/535,091 US11379245B2 (en) | 2018-08-08 | 2019-08-08 | Controlling device and drone controlling method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862715805P | 2018-08-08 | 2018-08-08 | |
US62/715,805 | 2018-08-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202008151A TW202008151A (zh) | 2020-02-16 |
TWI725497B true TWI725497B (zh) | 2021-04-21 |
Family
ID=70412977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108126699A TWI725497B (zh) | 2018-08-08 | 2019-07-29 | 控制裝置與無人機控制方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI725497B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI802115B (zh) * | 2021-11-30 | 2023-05-11 | 仁寶電腦工業股份有限公司 | 無人機的控制裝置及其控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201522164A (zh) * | 2013-07-31 | 2015-06-16 | Sz Dji Technology Co Ltd | 遠端控制方法及終端 |
TW201809716A (zh) * | 2016-09-08 | 2018-03-16 | 博泰科技有限公司 | 飛行器的定位控制方法 |
TW201811410A (zh) * | 2016-06-06 | 2018-04-01 | 崔賽斯公司 | 以類似地面車輛控制來遙控飛機 |
-
2019
- 2019-07-29 TW TW108126699A patent/TWI725497B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201522164A (zh) * | 2013-07-31 | 2015-06-16 | Sz Dji Technology Co Ltd | 遠端控制方法及終端 |
TW201811410A (zh) * | 2016-06-06 | 2018-04-01 | 崔賽斯公司 | 以類似地面車輛控制來遙控飛機 |
TW201809716A (zh) * | 2016-09-08 | 2018-03-16 | 博泰科技有限公司 | 飛行器的定位控制方法 |
Non-Patent Citations (1)
Title |
---|
"The Scratch Programming Language and Environment", Maloney, J., Resnick, M., Rusk, N., Silverman, B., &Eastmond, E., ACM Transactions on Computing Education (TOCE), 10(4), 1-15. 2010/11/30. * |
Also Published As
Publication number | Publication date |
---|---|
TW202008151A (zh) | 2020-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379245B2 (en) | Controlling device and drone controlling method | |
US11755041B2 (en) | Objective-based control of an autonomous unmanned aerial vehicle | |
US20190250601A1 (en) | Aircraft flight user interface | |
Sanna et al. | A Kinect-based natural interface for quadrotor control | |
CN108521788B (zh) | 生成模拟航线的方法、模拟飞行的方法、设备及存储介质 | |
US7363108B2 (en) | Robot and control method for controlling robot expressions | |
TWI546725B (zh) | 於手勢和使用者介面元件間之延續虛擬連結技術 | |
JP7375748B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20190184569A1 (en) | Robot based on artificial intelligence, and control method thereof | |
CN104950902A (zh) | 多旋翼飞行器的控制方法及多旋翼飞行器 | |
US20220096947A1 (en) | A toy system for augmented reality | |
CN105324736A (zh) | 触摸式和非触摸式用户交互输入的技术 | |
US20190102377A1 (en) | Robot Natural Language Term Disambiguation and Entity Labeling | |
US20220009086A1 (en) | Stick device and user interface | |
CN105930775A (zh) | 基于灵敏度参数的人脸朝向识别方法 | |
TWI725497B (zh) | 控制裝置與無人機控制方法 | |
US10751605B2 (en) | Toys that respond to projections | |
WO2021077414A1 (zh) | 界面显示方法、控制系统、计算机可读存储介质和无人机 | |
KR20200052388A (ko) | 인공지능 이동 로봇의 제어 방법 | |
US20230154062A1 (en) | Augmented reality (ar) object communication and interaction system and method | |
Miyoshi et al. | Entertainment multi-rotor robot that realises direct and multimodal interaction | |
WO2020022122A1 (ja) | 情報処理装置、行動決定方法及びプログラム | |
KR20210056019A (ko) | 인공 지능 장치 및 그의 동작 방법 | |
JP7363823B2 (ja) | 情報処理装置、および情報処理方法 | |
CN204667193U (zh) | 多旋翼飞行器 |