跳到內容
中文(繁體)

首次執行

在本頁中,你會在你的機器人上執行一個完整的程式,並學習使用 Erebus 控制視窗。你需要已安裝 Erebus,並準備好你的機器人。

以下是你下載的版本中主要的資料夾:

資料夾 內容
game/worlds 各個世界(.wbt 檔案)。開啟其中一個就可以開始。
game/logs 每場比賽結束時寫入的比賽紀錄
player_controllers 範例控制器
  1. 在 Webots 中開啟 game/worlds/world1.wbt。
  2. Webots 會在你的網頁瀏覽器中開啟 Erebus 控制視窗(Main Supervisor 的機器人視窗)。你要在這裡載入程式並執行比賽。

Erebus 控制視窗

部分 用途
左邊的 LOAD(筆電圖示) 載入機器人的控制器程式
右邊的 LOAD(機器人圖示) 載入你的機器人(.json 檔案)
TOGGLE REMOTE 讓在 Webots 外部執行的程式控制機器人。請參閱 Remote Controller。
Docker path 含有 Dockerfile 的資料夾,可以用播放按鈕旁邊的 Docker 按鈕,在容器中執行你的控制器。請參閱 erebus-dockerfiles 儲存庫。這是選擇性的功能。
Settings 連結和選項,說明如下
Worlds 切換到其他世界
Reset 重設已載入的程式和比賽
Give up! 結束比賽
計時器 比賽時間,下方括號內是實際時間。任一個歸零時,比賽就會結束。
計算機 目前的分數

下載 maze.py,這是一個讓機器人在迷宮中四處行駛的完整程式。你之後會在迷宮導航中自己寫出這個程式。

  1. 開啟 game/worlds/world1.wbt。
  2. 如果還沒載入機器人,請用右邊的 LOAD 按鈕載入。世界會連同機器人一起重新載入。
  3. 用左邊的 LOAD 按鈕載入 maze.py。程式載入後,按鈕會變成橘色的 REMOVE 按鈕。
  4. 按下開始按鈕。機器人會出現在世界中並開始移動。 開始按鈕
  5. 要暫時停止機器人,請按下暫停按鈕。 暫停按鈕
  6. 如果機器人卡住了,請按下重新開始按鈕來觸發缺乏進展(lack of progress)。這會把機器人移回最後到達的檢查點,並扣 5 分。 缺乏進展按鈕
  7. 按下 Reset 按鈕可以重設已載入的程式和進行中的比賽。如果你想在比賽結束後再次執行,請重新載入世界。

這個程式需要 OpenCV,你已經和其他 Python 函式庫一起安裝了它。程式的訊息和錯誤會顯示在 Webots 主控台中。

比賽進行時,分數歷史紀錄會顯示在視窗底部。它會明確告訴你為什麼得分或失分,所以是檢查程式最好的工具。

比賽中的控制視窗,顯示分數歷史紀錄

比賽結束時,同樣的資訊會儲存在 game/logs 資料夾中。

按下 Worlds 可以切換到其他世界。每個世界都有一張縮圖,你也可以加入用 World Editor 製作的自己的世界。

控制視窗的 Worlds 分頁

Erebus v26.1 內建的世界有:

世界 用途
world1.wbt、world2.wbt 範例世界。world2.wbt 包含區域 4。
world3.wbt、world4.wbt 較大的範例世界,也包含假受害者(fake victims)
mapping_example_1.wbt 到 mapping_example_3.wbt 用來測試建圖的世界。請參閱地圖規則。
NewPassages.wbt 區域之間通道的範例

控制視窗的 Settings 分頁

設定 用途
Keep controller/robot files 重新載入世界時,保持程式和機器人的載入狀態
Disable automatic LoP 停用 20 秒後自動觸發的缺乏進展。僅供除錯使用。
Automatic camera 讓視角跟隨機器人
Recording 把比賽錄製成影片
Keep remote controller on 重新載入世界時,保持 TOGGLE REMOTE 開啟
Enable debugging 在 Webots 主控台中印出額外資訊,例如牆上標記的回報為什麼被拒絕

頂端的連結會連到變更紀錄,以及製作世界和機器人的工具。要製作符合 2026 年規則的世界,請使用 World Editor。

手動把機器人移到你想要的位置

Section titled “手動把機器人移到你想要的位置”

在模擬視窗中點選機器人時,會出現紅色、綠色和藍色的箭頭。用滑鼠拖曳這些箭頭,就可以把機器人移到任何位置。請注意,在程式開始執行之前,機器人不會顯示。 在 Webots 中選取的機器人,帶有用來移動它的箭頭

你已經看過機器人自己探索了。現在來學習自己為它撰寫程式:從第一個程式開始。