TWI475483B - 自動裝置的程式開發方法 - Google Patents

自動裝置的程式開發方法 Download PDF

Info

Publication number
TWI475483B
TWI475483B TW101138763A TW101138763A TWI475483B TW I475483 B TWI475483 B TW I475483B TW 101138763 A TW101138763 A TW 101138763A TW 101138763 A TW101138763 A TW 101138763A TW I475483 B TWI475483 B TW I475483B
Authority
TW
Taiwan
Prior art keywords
automatic device
thread
development method
program development
designer
Prior art date
Application number
TW101138763A
Other languages
English (en)
Other versions
TW201416974A (zh
Inventor
Kuo Yang Tu
Hansjorg Baltes
Original Assignee
Taibotics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taibotics Co Ltd filed Critical Taibotics Co Ltd
Priority to TW101138763A priority Critical patent/TWI475483B/zh
Publication of TW201416974A publication Critical patent/TW201416974A/zh
Application granted granted Critical
Publication of TWI475483B publication Critical patent/TWI475483B/zh

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

自動裝置的程式開發方法
本發明係關於一種程式開發方法,尤其是一種用於自動裝置的程式開發方法。
按,各種自動裝置(例如:用於教學、娛樂、家庭或工業等的機器人,Robots)已可逐漸替代人們進行部份教學、娛樂、家庭或工業所需進行的作業。其中,習知自動裝置的程式開發方法,例如:用於LEGO或中鳴機器人的程式開發方法,皆以該自動裝置具備的元件(Device)或模組(Module)等機械構件為主,進行整個控制程式開發過程。
換言之,在整個程式開發過程中,設計者需思考的是該機械構件應如何循序運作,才能達成該自動裝置需運行的行為模式(behavior mode),而非著重於該自動裝置需同時進行何種行為,如此一來,將使整個程式開發過程侷限於該自動裝置的機械構件。
惟,該自動裝置的行為模式(即其運作方式)係供設計者利用該自動裝置實現設計理念,倘若在整個程式開發過程中侷限於該機械構件,則設計者須先將該行為模式拆解為上述機械構件的運作狀態,再將各機械構件的運作狀態組合而成該自動裝置的不同行為。因此,設計者必須經過上述拆解及組合過程,方能在該自動裝置實現其設計理念。
承上所述,倘若設計者不熟悉上述拆解及組合過程,則無法將其設計理念實現於該自動裝置,縱使設計者已經熟知上述拆解及組合過程,亦需花費較多心思與時間編撰控制程式,待該自動裝置依據該控制程式實際運作時,方能驗證該自動裝置是否已實現其設計理念,在此過程中,該自動裝置同時進行的數個行為可能會出錯,需經歷除錯(debug)過程加以修正,如此,將使該自動裝置的開發及測試時間延長。
此外,人工智慧(artificial intelligence,AI)係以人為知識形成不同領域的操控或決策方法,惟如何將人為知識轉為上述決策方法並非易事,雖已有人提出行為樹(Behavior Tree)的概念,然而,如何將不同領域的知識轉為行為樹中的節點仍有待解決,而且,在已設計完成的行為樹中是否需要除錯仍有改善空間。
綜上所述,習知自動裝置的程式開發方法除了有「不易實現設計理念」及「開發時間長」等缺點,仍有「不易設計行為樹的節點」及「不易得知行為樹是否有錯」等疑慮,在實際使用時更衍生不同限制與缺點,確有不便之處,亟需進一步改良,以提升其實用性。
本發明的目的乃改良上述之缺點,以提供一種自動裝置的程式開發方法,藉由圖形化介面供設計者將其設計理念轉為行為樹的節點,並依據該節點模擬該自動裝置的行為,供設計者得知該行為是否符合該設計理念。
本發明之次一目的係提供一種自動裝置的程式開發方法,係於該自動裝置的行為模擬結果符合設計理念後,將行為樹的節點轉為具有多執行緒的控制程式,以控制該自動裝置依據該設計理念運作。
本發明自動裝置的程式開發方法,係藉由一電腦系統對一自動裝置進行控制程式開發作業,該方法包含:一建模步驟,係供一設計者以一圖形化介面對該自動裝置建立一行為樹,該行為樹包含數個節點及其觸發事件;一模擬步驟,係依據各節點的觸發事件模擬該行為樹的行為,並顯示該模擬結果;及一判斷步驟,係依據一期望資料判斷該模擬結果是否符合預期,若判斷為是,進行一編程步驟,若判斷為否,重新進行該建模步驟,其中該編程步驟係將該行為樹編輯為一控制程式,該控制程式具有數個執行緒,該執行緒包含數個常態執行緒及數個監督執行緒,該常態執行緒係依該行為樹的行為轉換而成,該監督執行緒係監視該常態執行緒的狀態值,若該狀態值出現異常,則該監督執行緒修正該狀態值,使該常態執行緒回復正常。
其中,該行為樹的行為係以同步方式受該常態執行緒控制,該常態執行緒係以非同步方式受該監督執行緒控制。
其中,各常態執行緒使用獨立的堆疊空間,各監督執行緒具有一母執行緒,且各監督執行緒使用其母執行緒的堆疊空間。
其中,該自動裝置具有數個輸入元件與數個輸出元件,該行為樹之節點包含數個輸入節點、數個輸出節點及數 個控制節點,該輸入節點用以讀取該輸入元件之訊號狀態,該輸出節點用以決定該輸出元件的動作狀態,各控制節點用以控制其他節點。
其中,該建模步驟係依據該設計者所發出的一選擇指令選擇至少一自動裝置,並供該設計者建立該自動裝置所屬的行為樹。
其中,該電腦系統接收來自該設計者所輸入的一判斷指令,並以該判斷指令作為該期望資料。
其中,該電腦系統接收來自該設計者所輸入的數個期望值,並以該數個期望值組成該期望資料。
其中,該電腦系統依據該設計者所發出的一轉碼指令,而將該控制程式轉為該轉碼指令所指定的程式碼。
其中,另包含一載碼步驟,係將該控制程式編譯成一可執行碼,並將該可執行碼載入該自動裝置。
其中,該電腦系統依據該設計者所發出的一修正指令,而載入該自動裝置中的可執行碼,並將該可執行碼轉為一待修程式,供該設計者修改該待修程式。
為讓本發明之上述及其他目的、特徵及優點能更明顯易懂,下文特舉本發明之較佳實施例,並配合所附圖式,作詳細說明如下:本發明全文所述之「自動裝置」(automatic apparatus),係指一種內部嵌設人工智慧(AI)的裝置,用以自動執行地面清潔、物品搬運、循線行走、球類競賽或 工廠自動化等特定功能(specific function),例如:各式機器人(robots)等智慧化裝置(intelligent apparatuses),係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「連結」(connect),係指二資料處理硬體(data processing hardware)之間藉由實體線材(例如:USB訊號線等)或無線媒介(例如:Bluetooth無線電波、紅外線通訊等)相互耦接(coupling),使該二資料處理硬體之間可以相互傳遞資料,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「行為樹」(behavior tree),係指一種用於人工智慧的資料結構表示方式,該資料結構以節點表示資料,各節點之間形成樹狀結構,係本發明所屬技術領域中具有通常知識者可以理解。
本發明全文所述之「執行緒」(thread),係指單一應用程式所擁有的執行流程,若該應用程式擁有多個執行流程,則其為具有多執行緒(multi-thread)的該應用程式,係本發明所屬技術領域中具有通常知識者可以理解。
請參閱第1圖所示,其係本發明自動裝置的程式開發方法較佳實施例之系統架構圖。其中,本發明自動裝置的程式開發方法較佳實施例可藉由至少一自動裝置1連結一電腦系統2作為執行架構,該自動裝置1可選為具有自動控制功能之裝置,例如:各式機器人(Robots)或嵌入式系統(embedded system)等,用以依據內部的控制程式(control program)執行特定功能,例如:地面清潔、物品搬運、循線行走、球類競賽、尋寶遊戲或工廠自動化等, 其中該自動裝置1的數量可依需求選擇為一個或數個。該電腦系統2可選為具有資料輸入、輸出及處理能力的裝置,例如:個人電腦(PC)、筆記型電腦(notebook computer)、工業電腦(industrial computer)、平板電腦(Tablet computer)、智慧型手機(smart phone)或其他手持式裝置(hand-held devices)等,供一設計者據其設計理念產生該控制程式,使該自動裝置1執行特定功能。
在此實施例中,係以一個自動裝置1作為實施態樣說明,其中該自動裝置1設有數個輸入單元11、一控制單元12及數個輸出單元13,該數個輸入單元11包含一輸入元件11a(例如:按鈕或鍵盤等)、一光學感測元件11b(例如:紅外線感測器等)、一方位感測元件11c(例如:加速度感測器、地磁感測器或電子羅盤等)及一超音波感測元件11d,用以輸入資料及感測外在環境的訊息,該控制單元12分別電性連接該輸入單元11及輸出單元13,該控制單元12可選為具有資料處理功能之控制裝置,例如:微控制器(MCU)等,用以接收該輸入單元11傳送的資料、執行該控制程式及送出訊號控制該輸出單元13作動,該數個輸出單元13包含一顯示元件13a(例如:各式顯示器等)、至少一動力單元13b(例如:各式馬達等)及一發聲元件13c(例如:喇叭等),用以顯示訊息、輸出動力及發出聲響,以便執行上述特定功能;該電腦系統2設有一編輯平台21及一處理單元22,該編輯平台21可選為具有人機介面功能的裝置,例如:鍵盤搭配顯示器(monitor)、觸控螢幕(touch panel)或手機螢幕(monitor of mobile phone)等,用以顯示一圖形化介面(Graphic User Interface,GUI),供該設計者編輯一行為樹(behavior tree)的數個節點(node),例如:該數個輸入單元11之動作狀態、控制參數及輸出訊號等,該處理單元22可選為具有資料處理功能之裝置,例如:微處理器或雲端伺服器(cloud computing servers)等,用以模擬該行為樹的行為、將模擬結果顯示於該編輯平台21,以及,將該節點轉為一個具有多執行緒(multi-thread)的控制程式等,例如:C語言程式碼或手機應用程式(APP)等,惟不以此為限。
請參閱第2圖所示,其係本發明自動裝置的程式開發方法較佳實施例之流程圖。其中,該自動裝置的程式開發方法包含一建模步驟S1、一模擬步驟S2、一判斷步驟S3及一編程步驟S4,分別敘述如後,請一併參閱第1圖所示。
該建模步驟S1,係供一設計者以一圖形化介面對該自動裝置建立一行為樹,該行為樹包含數個節點及其觸發事件。詳言之,該建模步驟S1包含一子步驟S11及一子步驟S12,該子步驟S11係由該設計者在建立該行為樹之前,較佳先發出一選擇指令,以選擇至少一自動裝置1作為欲執行上述特定行為的裝置,例如:選擇一個或數個自動裝置1的型號;或者,由該電腦系統2自動選取一自動裝置1作為欲執行上述特定行為的裝置。之後,進行該子步驟S12,該設計者可據其設計理念,例如:設計一個具有清潔地面、防止衝撞、避免掉落、排除障礙及自動充電的地面清潔機器人,而自該選取的自動裝置1中,選取其具備的輸入單元11類型,例如:該輸入元件11a、光學感測元件 11b、方位感測元件11c及超音波感測元件11d,用以建立該自動裝置1所屬的行為樹(如第3圖所示),包含該數個節點及其觸發事件,以便由該光學感測元件11b、方位感測元件11c及超音波或測元件11d感測外在環境訊息,並由該輸入元件11a接受控制訊號,進而輸出訊號該顯示元件13a、動力單元13b及發聲元件13c,使該選取的自動裝置1具有清潔地面、防止衝撞、避免掉落、排除障礙及自動充電等功能。
其中,由於該自動裝置具有數個輸入元件與數個輸出元件,因此,該行為樹之節點包含數個輸入節點及數個輸出節點,該輸入節點可讀取該輸入元件之訊號狀態,該輸出節點可依據該輸入節點之狀態決定該輸出元件的動作狀態。而且,該行為樹另包含數個控制節點,各控制節點可以控制其他節點,例如:在循序迴圈中的控制節點,可依序執行迴圈中的輸入、輸出或其他控制節點,並重複執行一可被指定的次數;在隨機迴圈中的控制節點,可在迴圈中隨機的選擇一節點執行。請再參閱第3圖所示,其係本發明自動裝置的程式開發方法用以建立行為樹的一實施例。
該模擬步驟S2,係依據各節點的觸發事件模擬該行為樹的行為,並顯示該模擬結果。詳言之,該模擬步驟S2包含一子步驟S21及一子步驟S22,當該行為樹建立完成後,該電腦系統2可進行該子步驟S21,依據各節點的觸發事件是否成立,而決定是否要模擬該選取的自動裝置1之行為,其中若該觸發事件成立,則進行該子步驟S22, 模擬該選取的行為,例如:球類競賽(如第4圖所示)、循線行走(如第5圖所示)、地面清潔(如第6圖所示)或尋寶遊戲(如第7圖所示)等。以地面清潔模擬過程為例,當該輸入元件11被按壓時,則啟動該自動裝置1之電源,並驅動該動力元件13b,用以執行前進/後退或吸塵等行為,同時,隨機模擬在各行為進行中所有可能出現的例外情形,例如:在前進時,若遇到電線,則朝其它方向試圖擺脫電線,若遇到樓梯,則停止前進並後退,若遇到牆壁,則減速並後退等,在此過程中,同時紀錄模擬結果,用以判斷該模擬結果是否合乎預期的設計。
該判斷步驟S3,係依據一期望資料判斷該模擬結果是否符合預期,若判斷為「是」,進行該編程步驟S4,若判斷為「否」,重新進行該建模步驟S1。詳言之,該電腦系統2接收來自該設計者所輸入的一判斷指令,例如:若〝符合預期〞,則輸入〝1〞作為該期望資料,若〝不符預期〞,則輸入〝0〞作為該期望資料;或者,由該設計者事先針對該行為樹的不同行為而輸入數個期望值,並以數個期望值組成該期望資料。
該編程步驟S4,係將該行為樹編輯為一控制程式,該控制程式具有數個執行緒。詳言之,該電腦系統2可依據該行為樹的節點而編輯形成該具有數個執行緒的控制程式(如第8圖所示),使該自動裝置1可以依據該設計者的設計理念自動執行上述清潔、搬運、行走或競賽等特定行為。而且,該電腦系統2還可以接受該設計者所發出的一轉碼指令,而將該控制程式轉為該轉碼指令所指定的程式碼, 例如:將該控制程式轉為Java或C++等程式碼,惟不以此為限。
其中,該執行緒包含數個常態執行緒(normal thread)及數個監督執行緒(supervising thread),該常態執行緒係依該行為樹的行為轉換而成,該監督執行緒係監視該常態執行緒的狀態值,若該狀態值出現異常,則該監督執行緒修正該狀態值,使該常態執行緒回復正常。其中,該行為樹的行為係以同步(synchronous)方式受該常態執行緒控制,該常態執行緒係以非同步(asynchronous)方式受該監督執行緒控制;而且,各常態執行緒使用獨立的堆疊空間(stack space),各監督執行緒具有一母執行緒(parent thread),且各監督執行緒使用其母執行緒的堆疊空間。
舉例而言,倘若該自動裝置1具有一全自動行為模式,例如:自動進行清潔、搬運、行走或競賽等行為模式,則該全自動行為模式具有數個行為,以清潔行為模式為例,該自動裝置1將會執行移動、吸塵、高度偵測、障礙物偵測、汙垢偵測等常態執行緒,當該自動裝置1移動時,若卡到一障礙物(例如:踏墊或電線等)而動彈不得,則該移動執行緒的監督執行緒將會修正該移動執行緒的狀態,例如:停止前進,並後退試圖脫離該障礙物,若能無法脫離該障礙物,則停止運轉並發出警示聲響,以防止該自動裝置1損壞。其餘行為模式係熟知該項技藝者可以理解,在此容不贅述,因此,該常態執行緒及該監督執行緒含括該全自動行為模式的所有行為。請再參閱第8圖所示,其係本發明自動裝置的程式開發方法較佳實施例中, 將行為樹轉換成多執行續的過程。
本發明自動裝置的程式開發方法較佳實施例在該編程步驟S4之後,還可以包含一載碼步驟S5,係將該控制程式編譯成一可執行碼,並將該可執行碼載入該自動裝置。詳言之,該電腦系統2可以將該控制程式編譯成該可執行碼(executable code),並透過習知資料傳輸技術傳輸該可執行碼,例如:採用USB傳輸線或Bluetooth無線傳輸訊號,惟不以此為限,以便將該可執行碼載入該自動裝置1,使該自動裝置1可以依據該設計者的設計理念執行上述特定功能。
其中,該電腦系統2還可以依據該設計者所發出的一修正指令,例如:〝增加功能〞、〝修改功能〞或〝除錯功能〞等指令,而使該電腦系統2自動載入該自動裝置中的可執行碼,並將該可執行碼轉為一待修程式,供該設計者修改該待修程式,以便針對該自動裝置1進行增加、修改或除錯等作業。
承上所述,本發明自動裝置的程式開發方法較佳實施例,可提供設計者在個人電腦、筆記型電腦、平板電腦或手持設備等裝置,編輯該自動裝置的控制程式,並模擬該自動裝置具備人工智慧(即智慧化)後的表現,驗證是否能自行完成工作。待驗證該自動裝置符合設計者想法,且能自行完成工作後,可將所建立的控制程式儲存成檔案或轉成自動裝置可以執行的程式碼,進一步以相關的下載工具與介面,將該控制程式下載至該自動裝置,使該該自動裝置擁有該設計者所建立的智慧。
再者,本發明自動裝置的程式開發方法較佳實施例,可提供圖形化介面,例如:將該自動裝置的智慧(即對於該自動裝置的設計理念)表達分成輸入、輸出及控制三種節點圖案,供該設計者可將圖案以樹狀架構連結成行為樹,用以表達裝置的智慧。
本發明自動裝置的程式開發方法較佳實施例,可提供各種節點子視窗、裝置模擬操作子視窗、裝置模擬場景子視窗及執行程式下載子視窗等等,提供裝置智慧化編輯、裝置操作模擬及智慧下載至自動裝置所需。
本發明自動裝置的程式開發方法較佳實施例,係將該自動裝置規劃為機器人,該機器人有輸入裝置(即該輸入單元)、輸出裝置(即該輸出單元)及核心運算裝置(即該控制單元),該輸入裝置包含按鈕、接觸開關及各種感測器例如光感測器、測距感測器、電子羅盤、超音波、紅外線感測器等,該輸出裝置包含馬達、喇叭、液晶顯示模組等,該核心運算裝置可將上述自動裝置的智慧轉成的程式碼,並提供執行所需的運算與控制,使機器人可依所建立的智慧自行完成工作。
在本發明自動裝置的程式開發方法較佳實施例中,該機器人所自行完成的工作的一實施例是循線行走,此時地面貼有具顏色的線,機器人具有可辨識顏色的感測器,在掌握具顏色線所在位置後,機器人所建立的智慧可以控制機器人沿著該線行走。
在本發明自動裝置的程式開發方法較佳實施例中,可模擬場景子視窗的一實施例是機器人循線行走,在此子視 窗,設計者可自行編輯線的軌跡,並提供模擬觀察機器人延線行走的表現,用以判斷所編輯機器人的智慧是否滿足要求。
在本發明自動裝置的程式開發方法較佳實施例中,該機器人所自行完成的工作的一實施例是搜尋寶物,此時地面貼有具顏色的線表示搜尋範圍,範圍中具不同顏色寶物及具不同顏色為危險區域,機器人具有可辨識顏色的感測器,以顏色掌握搜尋範圍、危險區域及寶物,機器人所建立的智慧可以控制機器人在搜尋範圍內、避開危險區域及搜尋到寶物。
在本發明自動裝置的程式開發方法較佳實施例中,可模擬場景子視窗的一實施例是機器人搜尋寶物,在此子視窗,設計者可自行編輯搜尋範圍、危險區域及寶物位置,並提供模擬觀察機器人避開危險區域且搜尋到寶物的表現,用以判斷所編輯機器人的智慧是否滿足要求。
在本發明自動裝置的程式開發方法較佳實施例中,該機器人所自行完成的工作的一實施例是清潔地面,此時機器人存有一張地圖,並有感測器可以辨識其位置,以便機器人按所編輯的智慧,規畫能涵蓋所有地面的行走路徑,完成清潔工作。
在本發明自動裝置的程式開發方法較佳實施例中,可模擬場景子視窗的一實施例是清潔機器人,在此子視窗,設計者可自行編輯空間的障礙物,並提供模擬觀察機器人清潔地面的表現,用以判斷所編輯機器人的智慧是否滿足要求。
在本發明自動裝置的程式開發方法較佳實施例中,機器人所自行完成的工作的一實施例是踢足球,此時有複數個機器人且分成兩隊進行對抗競賽,經由對抗觀察他人的智慧化方法,以達教育娛樂效果。
在本發明自動裝置的程式開發方法較佳實施例中,可模擬場景子視窗的一實施例是足球競賽機器人,在此子視窗,有一足球比賽場地,有兩個不同顏色得球門,供兩位設計者同時編輯其機器人智慧,以近對機器人的對抗賽,用以評斷所編輯機器人智慧的優劣,並據以改進,以達教育目的。
在本發明自動裝置的程式開發方法較佳實施例中,該機器人所自行完成的工作的一實施例是工廠自動化,此時機器人可由其感測器得知外界情況,機器人所建立的智慧可以控制機器人尤其感測器得知外界情況後,下達決策自行完成工廠的工作。
本發明自動裝置的程式開發方法較佳實施例,可模擬場景子視窗的一實施例是機器人在工廠中自行完成工作,在此子視窗,設計者可自行編輯工廠的場景,並提供模擬觀察機器人的工作表現,用以判斷所編輯機器人的智慧是否滿足要求。
本發明自動裝置的程式開發方法較佳實施例,可在感知外界訊息後,自行思考推論目前情況,並進行決策,決定如何因應目前情況,使該自動裝置自行完成工作。
本發明自動裝置的程式開發方法較佳實施例,包括發展軟體、軟體模擬器以及自動裝置。發展軟體可以編輯建 構裝置的智慧,之後,可以在軟體模擬器中模擬裝置智慧化時是否可以自行完成工作,若無法自行完成工作,可在發展軟體中修正所編輯的智慧,直到可自行完成工作,在模擬器中驗證裝置可自行完成工作時,發展軟體可將所編輯建構的智慧,編譯成裝置可以執行的程式碼,並下載至自動裝置,使自動裝置可按所編輯建構的智慧,使該自動裝置自行完成工作。
本發明自動裝置的程式開發方法較佳實施例,是以複數個執行緒的方式實現,且執行緒分類為常態執行緒與監督執行緒,所有的常態執行緒以一順序,按分時多工的方式使用CPU時間依序執行,監督執行緒掌握整個系統所有事件,並有權依所發生事件,更改常態執行緒的順序,以便能對所發生事件即時反應。
本發明自動裝置的程式開發方法較佳實施例,其操作方式採用圖形化介面,各種基本圖形用以表達裝置的各種行為,設計者可以樹狀結構將複數個所定義的圖形相連結,用以設計裝置的動作。裝置的各種行為都提供相關的輸入與輸出參數,以便所設計的裝置動作可以感之外界情況,在思考推論後作適當的決策,並進行適當的動作,也就是該自動裝置的人工智慧。
在本發明自動裝置的程式開發方法較佳實施例中,該設計者可以設計符合其裝置的場景,以便設計完成的人工智慧,可以針對該設計者的需要,模擬裝置是否能在其環境中,自行完成工作。而且,軟體模擬器模擬的結果,可作為對所編輯的人工智慧進行除錯或細微調整依據,以便 能設計更完美的人工智慧。此模擬器亦提供將多個使用所編輯的人工智慧載入,進行對抗競賽,以便使用可以觀摩彼此的設計,學習更完美的設計,並達到教育娛樂的效果。
本發明的自動裝置包含該輸入單元、輸出單元及控制單元,該輸入單元用以感知外界情況,該輸出單元用以控制該自動裝置的動作,該控制單元驅使該自動裝置可以實現所設計的人工智慧。
本發明自動裝置的程式開發方法較佳實施例,係可藉由圖形化介面供設計者將其設計理念轉為行為樹的節點,並依據該節點模擬該自動裝置的行為,供設計者得知該行為是否符合該設計理念,達成「容易實現設計理念」及「縮短開發時間」等功效。
本發明自動裝置的程式開發方法較佳實施例,係於該自動裝置的行為模擬結果符合設計理念後,將行為樹的節點轉為具有多執行緒的控制程式,以控制該自動裝置依據該設計理念運作,達成「容易設計行為樹的節點」及「容易得知行為樹是否有錯」等功效。
雖然本發明已利用上述較佳實施例揭示,然其並非用以限定本發明,任何熟習此技藝者在不脫離本發明之精神和範圍之內,相對上述實施例進行各種更動與修改仍屬本發明所保護之技術範疇,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
〔本發明〕
1‧‧‧自動裝置
11‧‧‧輸入單元
11a‧‧‧輸入元件
11b‧‧‧光學感測元件
11c‧‧‧方位感測元件
11d‧‧‧超音波感測元件
12‧‧‧控制單元
13‧‧‧輸出單元
13a‧‧‧顯示元件
13b‧‧‧動力元件
13c‧‧‧發聲元件
2‧‧‧電腦系統
21‧‧‧編輯平台
22‧‧‧處理單元
S1‧‧‧建模步驟
S11,S12‧‧‧子步驟
S2‧‧‧模擬步驟
S21,S22‧‧‧子步驟
S3‧‧‧判斷步驟
S4‧‧‧編程步驟
S5‧‧‧載碼步驟
第1圖:本發明自動裝置的程式開發方法較佳實施例之 系統架構圖。
第2圖:本發明自動裝置的程式開發方法較佳實施例之流程圖。
第3圖:本發明自動裝置的程式開發方法較佳實施例之行為樹示意圖。
第4圖:本發明自動裝置的程式開發方法較佳實施例之球類競賽模擬過程示意圖。
第5圖:本發明自動裝置的程式開發方法較佳實施例之循線行走模擬過程示意圖。
第6圖:本發明自動裝置的程式開發方法較佳實施例之地面清潔模擬過程示意圖。
第7圖:本發明自動裝置的程式開發方法較佳實施例之尋寶遊戲模擬過程示意圖。
第8圖:本發明自動裝置的程式開發方法較佳實施例之行為樹轉為多執行續過程示意圖。
S1‧‧‧建模步驟
S11,S12‧‧‧子步驟
S2‧‧‧模擬步驟
S21,S22‧‧‧子步驟
S3‧‧‧判斷步驟
S4‧‧‧編程步驟
S5‧‧‧載碼步驟

Claims (10)

  1. 一種自動裝置的程式開發方法,係藉由一電腦系統對該自動裝置進行控制程式開發作業,該方法包含:一建模步驟,係供一設計者以一圖形化介面對該自動裝置建立一行為樹,該行為樹包含數個節點及其觸發事件;一模擬步驟,係依據各節點的觸發事件模擬該行為樹的行為,並顯示該模擬結果;及一判斷步驟,係依據一期望資料判斷該模擬結果是否符合預期,若判斷為是,進行一編程步驟,若判斷為否,重新進行該建模步驟,其中該編程步驟係將該行為樹編輯為一控制程式,該控制程式具有數個執行緒,該執行緒包含數個常態執行緒及數個監督執行緒,該常態執行緒係依該行為樹的行為轉換而成,該監督執行緒係監視該常態執行緒的狀態值,若該狀態值出現異常,則該監督執行緒修正該狀態值,使該常態執行緒回復正常。
  2. 如申請專利範圍第1項所述之自動裝置的程式開發方法,其中該行為樹的行為係以同步方式受該常態執行緒控制,該常態執行緒係以非同步方式受該監督執行緒控制。
  3. 如申請專利範圍第1項所述之自動裝置的程式開發方法,其中各常態執行緒使用獨立的堆疊空間,各監督執行緒具有一母執行緒,且各監督執行緒使用其母執行緒的堆疊空間。
  4. 如申請專利範圍第1項所述之自動裝置的程式開發方法,其中該自動裝置具有數個輸入元件與數個輸出元件,該行為樹之節點包含數個輸入節點、數個輸出節點及數個控制節點,該輸入節點用以讀取該輸入元件之信號狀態,該輸出節點用以決定該輸出元件的動作狀態,各控制節點用以控制其他節點。
  5. 如申請專利範圍第1項所述之自動裝置的程式開發方法,其中該建模步驟係依據該設計者所發出的一選擇指令選擇至少一自動裝置,並供該設計者建立該自動裝置所屬的行為樹。
  6. 如申請專利範圍第1項所述之自動裝置的程式開發方法,其中該電腦系統接收來自該設計者所輸入的一判斷指令,並以該判斷指令作為該期望資料。
  7. 如申請專利範圍第1項所述之自動裝置的程式開發方法,其中該電腦系統接收來自該設計者所輸入的數個期望值,並以該數個期望值組成該期望資料。
  8. 如申請專利範圍第1項所述之自動裝置的程式開發方法,其中該電腦系統依據該設計者所發出的一轉碼指令,而將該控制程式轉為該轉碼指令所指定的程式碼。
  9. 如申請專利範圍第1項所述之自動裝置的程式開發方法,另包含一載碼步驟,係將該控制程式編譯成一可執行碼,並將該可執行碼載入該自動裝置。
  10. 如申請專利範圍第9項所述之自動裝置的程式開發方法,其中該電腦系統依據該設計者所發出的一修正指令,而載入該自動裝置中的可執行碼,並將該可執行碼轉 為一待修程式,供該設計者修改該待修程式。
TW101138763A 2012-10-19 2012-10-19 自動裝置的程式開發方法 TWI475483B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW101138763A TWI475483B (zh) 2012-10-19 2012-10-19 自動裝置的程式開發方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101138763A TWI475483B (zh) 2012-10-19 2012-10-19 自動裝置的程式開發方法

Publications (2)

Publication Number Publication Date
TW201416974A TW201416974A (zh) 2014-05-01
TWI475483B true TWI475483B (zh) 2015-03-01

Family

ID=51293849

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101138763A TWI475483B (zh) 2012-10-19 2012-10-19 自動裝置的程式開發方法

Country Status (1)

Country Link
TW (1) TWI475483B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI743519B (zh) * 2019-07-18 2021-10-21 萬潤科技股份有限公司 自走式裝置及其建立地圖方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945468A (en) * 1988-02-01 1990-07-31 International Business Machines Corporation Trusted path mechanism for virtual terminal environments
TW200842716A (en) * 2007-02-28 2008-11-01 Microsoft Corp Spyware detection mechanism
TWM351562U (en) * 2008-06-03 2009-02-21 Ming-Ying Chen Smart voice-controlled device to control toys with infrared controller
TW200915213A (en) * 2007-05-29 2009-04-01 Microsoft Corp Dynamic activity management
TW200951671A (en) * 2008-06-06 2009-12-16 Raydium Semiconductor Corp Controlling appratus and controlling method for signal outputting circuit and video system
TWM430773U (en) * 2011-11-03 2012-06-01 Curelan Technology Co Ltd A device with high-speed filtering efficiency

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945468A (en) * 1988-02-01 1990-07-31 International Business Machines Corporation Trusted path mechanism for virtual terminal environments
TW200842716A (en) * 2007-02-28 2008-11-01 Microsoft Corp Spyware detection mechanism
TW200915213A (en) * 2007-05-29 2009-04-01 Microsoft Corp Dynamic activity management
TWM351562U (en) * 2008-06-03 2009-02-21 Ming-Ying Chen Smart voice-controlled device to control toys with infrared controller
TW200951671A (en) * 2008-06-06 2009-12-16 Raydium Semiconductor Corp Controlling appratus and controlling method for signal outputting circuit and video system
TWM430773U (en) * 2011-11-03 2012-06-01 Curelan Technology Co Ltd A device with high-speed filtering efficiency

Also Published As

Publication number Publication date
TW201416974A (zh) 2014-05-01

Similar Documents

Publication Publication Date Title
Pot et al. Choregraphe: a graphical tool for humanoid robot programming
US10427295B2 (en) System and method for reinforcing programming education through robotic feedback
CN103838563B (zh) 自动装置的程序开发方法
Kim et al. Introduction for freshmen to embedded systems using LEGO Mindstorms
JP7384575B2 (ja) 情報処理装置、仲介装置、シミュレートシステム、情報処理方法及びプログラム
US11727824B2 (en) System and method for teaching computer programming
Touretzky Computational thinking and mental models: From Kodu to Calypso
Mirza et al. Physically embedded planning problems: New challenges for reinforcement learning
KR102571997B1 (ko) 정보 처리 장치, 중개 장치, 시뮬레이트 시스템 및 정보 처리 방법
Thai Exploring robotics with ROBOTIS Systems
TWI475483B (zh) 自動裝置的程式開發方法
KR102529023B1 (ko) 트레이닝 처리 장치, 중개 장치, 트레이닝 시스템 및 트레이닝 처리 방법
US20230158405A1 (en) System and method for the construction of interactive virtual objects
Cruz et al. Optimization approach for the development of humanoid robots’ behaviors
EP4021601B1 (en) Toy construction system for constructing and operating a remote controlled toy vehicle model
Brown et al. Android control application for Nao humanoid robot
Figueiredo et al. Control and monitoring of a robotic soccer team: The base station application
Pribilova et al. Use of Lego Mindstorms EV3 MATLAB/Simulink with a focus on technical education
Piotrowski An Analysis of the use of the Python Language in Robot Applications
KR102203829B1 (ko) 코딩용 카드를 이용하여 코딩로봇의 제어를 위한 알고리즘을 생성하는 코딩보드장치 및 방법
Randelli et al. Multi-agent behavior composition through adaptable software architectures and tangible interfaces
Rajaratnam et al. Towards general game-playing robots: Models, architecture and game controller
Neumann et al. Urobosim–a simulation-based predictive modelling engine for cognition-enabled robot manipulation
Demetriou et al. The Engino robotics platform (ERP) controller for education
Daszczuk et al. JADE-A Platform for Research on Cooperation of Physical and Virtual Agents