Cyberbotics 機器人課程/初學者程式設計練習
本章包含一系列針對初學者的練習。你不需要任何先前的知識就可以完成這些練習。目標是透過操作你的 e-puck 和 Webots 來學習移動機器人基礎知識。首先,你將瞭解一些 e-puck 裝置及其用途。然後,你將學習機器人控制器的概念。最後,你將使用 Webots 模組 BotStudio 程式設計一個簡單的機器人行為。這個模組可以透過圖形介面來程式設計 e-puck 機器人。你將瞭解如何使用它以及與它相關的概念。
如 E-puck 和 Webots 一章中所述,e-puck 擁有不同的裝置。在本檔案中,你將使用其中的一些裝置:步進電機、LED、加速度計、紅外感測器和相機。在本練習中,你將瞭解每個裝置的用途。以下列表快速定義了這些裝置。你將在下一章中更詳細地瞭解所有這些裝置。
- 步進電機:步進電機[1] 是一種將全旋轉分成多個步驟的電機。e-puck 擁有兩個步進電機,每個電機有 1000 步。它們可以達到大約每秒一次的旋轉速度。e-puck 的車輪固定在這些電機上。它們用於移動機器人。它們可以獨立運動。此外,為了瞭解車輪的位置,可以使用增量式編碼器。e-puck 編碼器返回自上次編碼器復位以來的步數。例如,這個“裝置”可以用於精確地將車輪轉動一圈。
- LED:LED[2] (發光二極體) 是一種小型裝置,可以使用少量能量發出光。e-puck 擁有多個 LED。特別是,它周圍有 8 個,機身內有 4 個,前面有 1 個。前置 LED 比其他 LED 更強大。這些 LED 的主要目的是提供關於機器人狀態的反饋。它們也可以用於照亮環境。
- 加速度計:加速度計[3] 是一種測量施加在其上的總力的裝置,以 3D 向量表示。e-puck 只有一個加速度計。如果你的 e-puck 靜止,加速度計至少會指示重力向量。加速度計可以用於檢測與牆壁的碰撞或檢測機器人跌落。
- 紅外 (IR) 感測器:e-puck 擁有 8 個紅外 (IR) 感測器。紅外感測器是一種可以產生紅外光(超出可見光範圍的光)並可以測量接收到的光量的裝置。它有兩種用途。首先,只測量接收到的光。在這種配置下,紅外感測器測量附近環境的光。例如,e-puck 可以檢測到從哪個方向的光照射到它。其次,紅外感測器發射紅外光並測量接收到的光。如果紅外感測器前面有障礙物,光會反彈到障礙物上。光差更大。因此,e-puck 可以估計其紅外感測器與障礙物之間的距離。
- 相機:e-puck 前面還配備了一個 VGA 相機。e-puck 使用它來識別其正前方環境。例如,它可以沿著一條線行駛、檢測斑點、識別物體等等。
請注意,步進電機和 LED 是執行器。這些裝置對環境有影響。相反,紅外感測器和相機是感測器。它們測量環境的特定資訊。在下一頁,你可以看到 機械設計 的照片。
為了成功完成以下練習,你必須瞭解其他裝置的存在。e-puck 由鋰離子電池供電。它的執行時間約為 3 小時。你可以使用位於右輪附近的 ON/OFF 開關來開啟或關閉你的 e-puck。機器人還具有藍牙介面,允許與你的電腦或其他 e-puck 進行通訊。
最後,e-puck 還有其他裝置(例如麥克風和揚聲器),在本檔案中你不會使用,因為當前版本的 Webots 還不支援它們。
[Q.1] e-puck 的最大速度是多少?請用 cm/s 回答。(提示:車輪半徑約為 2.1 cm。參考上面步進電機的定義。)
[Q.2] 將你的 e-puck 與實際的手機進行比較。哪些 e-puck 裝置受該行業影響?
[Q.3] 將以下裝置分類到執行器類別或感測器類別中:LED、步進電機、紅外感測器、相機、麥克風、加速度計和揚聲器。
[P.1] 在你的真實 e-puck 上找到這些裝置的位置。(提示:檢視圖 Epuck devices.png)
機器人控制器 [入門]
[edit | edit source]為了理解機器人控制器的概念,你將扮演機器人控制器的角色。你將感知來自機器人感測器的感官資訊,並能夠控制機器人的執行器。在本練習中,你不會實際程式設計機器人的行為,但你仍然會控制機器人。
開啟世界檔案
[edit | edit source]首先,你需要開啟本練習的世界檔案。世界檔案包含模擬的整個環境,即機器人的形狀、地面的形狀、障礙物的形狀以及一些通用資訊,例如相機的方向,甚至重力向量的方向。在模擬視窗(下圖中的視窗 (1))中,點選檔案 | 開啟選單並開啟
.../worlds/beginner_robot_controller.wbt
你也可以透過點選模擬視窗工具欄上的開啟按鈕來開啟世界檔案。e-puck 模型及其環境將在 Webots 中載入。在模擬視窗中,你可以看到一個綠色的板子上有一個 e-puck。
Webots 視窗和模擬相機
[edit | edit source]Webots 可以顯示多個視窗。其中一些已經介紹過。你將特別關注其中的兩個(如圖所示)
- 模擬視窗 (1):這個視窗可能是最重要的一個。它顯示了模擬的 3D 表示。在本例中,你可以看到一個虛擬的 e-puck 及其虛擬環境。如果你想修改相機的方向,只需用滑鼠左鍵點選並拖動到面板中的任意位置即可。類似地,你可以使用滑鼠右鍵修改相機的位置(注意 Mac OS X 使用者:如果你有一個單按鈕滑鼠,請按住 Ctrl 鍵並點選以模擬右鍵點選)。最後,你也可以使用滑鼠滾輪設定縮放比例。此視窗中還有兩個重要的按鈕:播放/停止按鈕和復位按鈕。使用第一個按鈕,可以播放或停止模擬,使用第二個按鈕,可以重置整個模擬。
- 機器人視窗 (2):此視窗顯示 e-puck 的 2D 表示。此視窗的目的是在模擬過程中即時視覺化感測器值和執行器值。帶有機器人視窗的圖顯示了可以觀察到的值的含義。紅色的整數對應電機速度。它們最初應該為零。下面的綠色值對應編碼器。紅外感測器測量的光強度由綠色整數表示。而紅外感測器與障礙物之間的距離由藍色整數表示。因此,請注意綠色值和藍色值表示的是同一個裝置。紅色或黑色矩形對應於分別開啟或關閉的 LED。最後,加速度計由一個 2D 矢量表示,它對應於 e-puck 的傾斜度,以及一個滑塊,它表示加速度的範數。此視窗還包含一個下拉選單,用於配置藍牙連線。
[P.1] 使用相機,確定你的虛擬 e-puck 的前後位置。(提示:相機放置在 e-puck 的前方)
[P.2] 嘗試將模擬視窗的相機放置在 e-puck 的屋頂上,以便看到它前方的情況。然後,使用復位按鈕。


e-puck 運動
[edit | edit source]點選開始/停止按鈕,檢查模擬是否正在執行。然後,點選虛擬的 e-puck 以選中它。選中 e-puck 後,會出現白色線條。它們表示你的物體用於物理模擬的邊界。你還會注意到紅色線條。它們表示紅外感測器的方向。而洋紅色的線條對應於相機的視野。此外,你可以在模擬視窗的左上角一個小視窗中觀察相機的值。
在鍵盤上,分別按“S”鍵和“X”鍵,以增加或減少左側電機的速度值。嘗試按“D”鍵和“C”鍵來修改右側電機的速度。現在你可以像遙控玩具一樣移動虛擬機器人。請注意,一次只能按下一個鍵。
[Q.2] e-puck 有多種運動方式。你能列出它們嗎?(例如:e-puck 可以向前移動)
[Q.3] 嘗試使用鍵盤箭頭和“R”鍵。這些命令有什麼用?解釋它們與第一個命令的區別。它們更實用嗎?為什麼?
盲動 [挑戰]
[edit | edit source]本小節的目的是扮演機器人控制器的角色。機器人控制器只感知機器人感測器測量的值,對其進行處理,然後向機器人執行器傳送一些命令,如圖所示。請注意,感測器值由環境修改,而機器人可以使用其執行器來修改環境。

[P.4] 隱藏模擬視窗(但是,此視窗必須保持選中狀態,以便鍵盤輸入有效。隱藏它的方法是將其部分移出螢幕)並只檢視感測器值。現在嘗試僅使用紅外感測器資訊,像以前一樣沿著牆壁移動。
[Q.4] 什麼資訊有用?從什麼閾值開始,你觀察到牆壁離機器人很近?
讓我們移動你的真實機器人
[edit | edit source]你可能面前有一個真實的 e-puck,並且你想要看到它移動!Webots 可以透過藍牙連線與 e-puck 通訊。它可以接收來自 e-puck 感測器的某些值,併發送一些值來命令 e-puck 執行器。因此,Webots 可以扮演控制器的角色。這種操作模式稱為遠端控制會話。
為了繼續,請首先配置你的藍牙連線,如 藍牙配置 部分中所述。使用開始/停止按鈕停止模擬。使用 ON/OFF 開關開啟你的 e-puck。然後,在機器人視窗中,從下拉選單中選擇你的藍牙連線。在 e-puck 後面,一個橙色的 LED 應該會亮起。最後,按開始/停止按鈕來執行程式。你的 e-puck 應該像模擬中一樣工作。
[Q.5] 觀察來自真實 e-puck 的感測器值。它們與虛擬感測器值相似嗎?
[Q.6] 將電機速度設定為10|10。當真實的e-puck緩慢移動時,它會振動。這在模擬中不會發生。你能解釋一下這種現象嗎?
你的進度
[edit | edit source]恭喜!你完成了第一個練習,並踏入了機器人世界。你已經學到了很多
- 什麼是感測器、執行器和機器人控制器。
- 機器人控制器必須能夠解決哪些型別的問題。
- e-puck 的基本器件有哪些。特別是步進電機、LED、紅外感測器、加速度計和攝像頭。
- 如何在模擬和現實中執行你的移動機器人,什麼是遠端控制會話。
- 如何使用 Webots 執行一些基本操作。
移動你的 e-puck [初學者]
[edit | edit source]你已經瞭解了什麼是機器人控制器。在接下來的練習中,你將使用圖形程式設計介面 BotStudio 建立簡單的行為。此模組整合在 Webots 中。本練習的目的是透過發現 e-puck 的移動可能性來介紹 BotStudio。
開啟世界檔案
[edit | edit source]與第一個練習類似,開啟以下世界檔案
.../worlds/beginner_move_your_epuck.wbt
將開啟兩個視窗。第一個是您知道的模擬視窗。你應該觀察到與以前類似的世界,只是棋盤的大小是兩倍。這是因為 e-puck 需要空間移動。第二個視窗是 BotStudio 視窗(見圖)。如果 BotStudio 視窗沒有自動開啟,請雙擊模擬視窗中的機器人以開啟它。

"前進" 狀態
[edit | edit source]BotStudio 視窗由兩個主要部分組成。左側部分是自動機的圖形表示。您將在下一個練習中學習如何使用此部分並理解自動機概念。右側部分以二維形式表示 e-puck。在此表示中,您可以即時觀察 e-puck 感測器的值。此外,您可以設定執行器的命令。此介面還具有一個下拉選單,用於選擇藍牙連線以建立遠端控制會話。此選單類似於您在上面看到的機器人視窗的兩個下拉選單。在頂部,有一個工具選單。此選單使您能夠建立、載入、儲存或修改自動機。最後一個按鈕(上傳按鈕)在 e-puck 上執行您的自動機。
在 BotStudio 視窗中,選擇 "前進" 狀態(白色區域中間的藍色矩形),只需單擊它即可。選定的矩形將變成黃色。在 BotStudio 視窗的右側,您可以修改執行器的命令,即電機速度和 LED 狀態。如果要更改電機速度,請單擊並拖動兩個黃色滑塊。您可以將此值設定為 -100 到 100 之間。0 對應於零速度,即車輪不會轉動。正值應使車輪向前轉動,負值應使車輪向後轉動。如果要更改 LED 的狀態,請單擊其對應的灰色圓圈(紅色 -> 開啟,黑色 -> 關閉,灰色 -> 無修改)。
將 "前進" 狀態配置如下:所有 LED 都亮著,電機速度為 -30|30。透過單擊上傳按鈕將其上傳到虛擬 e-puck 上。如果模擬正在執行,虛擬 e-puck 應該相應地更改其執行器的值。請注意,當模擬啟動時,BotStudio 的右側顯示紅外感測器。
[P.1] 設定虛擬 e-puck 的執行器,使其能夠前進、後退、沿著曲線移動和繞自身旋轉。
[Q.1] 對於這些動作中的每一個,兩個速度之間有什麼聯絡?(例如:前進:right_speed = left_speed 且 right_speed > 0 且 left_speed > 0)
[Q.2] e-puck 上有 17 個 LED。e-puck 周圍有 9 個紅色 LED(背面 LED 是雙倍的)、1 個正面紅色 LED、4 個內部綠色 LED、2 個 LED(綠色和紅色)用於電源和 1 個橙色 LED 用於藍牙連線。找到它們的位置以及使用哪個按鈕或操作可以開啟它們。(提示:其中一些不受您的控制,而一些是連結在一起的,即它們不能獨立開啟或關閉)
真實的 e-puck 的紅外感測器
[edit | edit source]本小節的目的是與您的真實 e-puck 建立遠端控制會話。這部分類似於之前練習中使用真實機器人的小節。由於使用 BotStudio 視窗而不是機器人視窗,所以只有兩個區別。對於選擇藍牙連線,只有一個下拉選單而不是兩個。因此,請選擇您的藍牙連線,而不是視窗右上角的模擬專案。然後,您必須單擊上傳按鈕以啟動遠端控制會話。
[P.2] 設定執行器,使 e-puck 不移動。透過建立遠端控制會話,在您的真實 e-puck 上嘗試此配置。將您的手放在真實 e-puck 周圍,並在 BotStudio 視窗中觀察紅外感測器值的修改。
[Q.3] 當在 1 cm 處有障礙物(例如:一張白紙)時,前左紅外感測器的值為多少?在 3 cm 處?在 5 cm 處?在 10 cm 處?從哪個距離開始,很難將障礙物與噪聲區分開來?[4]
簡單行為:有限狀態機 (FSM) [初學者]
[edit | edit source]在前面的練習中,你學習瞭如何配置單個狀態。但還不能談論行為,因為你的機器人不會與其環境互動,即它會移動,但沒有任何反應。本練習的目標是建立一個簡單的行為。您將發現什麼是自動機,它如何與機器人控制器概念相關,以及如何使用 BotStudio 構建自動機。
有限狀態自動機
[edit | edit source]有限狀態自動機 (FSM)[5] 是行為的模型。它是程式設計機器人控制器的可能方法。它由有限數量的狀態和它們之間的一些轉換組成。在我們的例子中,狀態對應於機器人的執行器配置(車輪速度和 LED 狀態),而轉換對應於感測器值的條件(紅外感測器和攝像頭),即自動機可以在哪些條件下從一個狀態轉移到另一個狀態。一個狀態特別重要:初始狀態。它是模擬從哪裡開始的狀態。在本課程中,自動機將具有與 FSM 相同的含義。
BotStudio 使您能夠以圖形方式建立一個自動機。當建立自動機時,您可以在虛擬或真實的 e-puck 上測試它。您將在以下練習中觀察到,這種簡單的程式設計方式能夠建立各種行為。
開啟世界檔案並移動物體
[edit | edit source]開啟以下世界檔案
.../worlds/beginner_finite_state_machine.wbt
這一次,有兩個障礙物。您可以透過選擇所需的物件,並按住Shift鍵拖放來移動物件(障礙物、e-puck甚至牆壁)。當您想要重置模擬時,可以按下反轉按鈕。
在BotStudio視窗中,使用新建狀態按鈕建立兩個狀態。使用右側的文字框將第一個狀態命名為“前進”,第二個狀態命名為“停止”。您可以透過拖放相應的矩形來更改狀態的位置。更改這些狀態的電機速度(前進狀態->電機速度:45|45,停止狀態->電機速度:0|0)。現在,您將建立您的第一個狀態轉換。單擊新建狀態轉換按鈕。從“前進”狀態建立一個連結到“停止”狀態(方向很重要!)。在此狀態轉換中,您可以指定自動機在什麼條件下可以從“前進”狀態切換到“停止”狀態。透過單擊狀態轉換的文字欄位來選擇它。它會變成黃色。將其重新命名為“前方障礙物”。透過拖動兩個最高的紅色滑塊,更改前方紅外感測器的條件值,使其每個感測器都為“>5”。您應該獲得一個類似於圖中“第一個自動機”所描繪的自動機。選擇初始狀態(“前進”狀態),然後透過單擊上傳按鈕在您的虛擬e-puck上測試此自動機。

[Q.2] 在“前進”狀態下,使用哪個執行器命令?在“前方障礙物”狀態轉換中,測試了紅外感測器的哪些條件值?
您完成了第一個避碰演算法,即您的e-puck不會碰到任何牆壁。這種演算法是碰撞檢測演算法的良好替代方案,因為碰撞會導致機器人降級。當然它並不完美,您可以考慮許多情況下,您的機器人仍然會接觸到某些東西。
在本節中,您將擴充套件您的自動機以在檢測到障礙物後執行U形轉彎(繞自身旋轉180度)。在您的自動機中新增一個名為“U形轉彎”的新狀態。在此狀態下,將電機速度設定為30|-30。從“停止”狀態新增一個名為“計時器1”的狀態轉換到“U形轉彎”狀態。選擇此狀態轉換。這一次,不要更改紅外感測器的條件,而是透過移動綠色圓圈中間的黃色滑塊,在該條件下新增一個延遲(1 [s])。圖“計時器條件”描繪了您應該獲得的結果。

[P.2] 執行模擬(始終將“前進”狀態作為初始狀態)在虛擬e-puck和真實的e-puck上。
為了執行完美的U形轉彎,您仍然需要在e-puck轉彎足夠時停止它。從“U形轉彎”狀態新增一個新的計時器(“計時器2”)狀態轉換到“前進”狀態(見下圖)。

[Q.3] 對於“計時器2”狀態轉換的哪個延遲,機器人可以執行完美的U形轉彎?對於真實的機器人來說,它是一樣的嗎?為什麼?
[Q.4] 您建立了一個包含迴圈的自動機。這種結構的優點是什麼?
[Q.5] 想象一下以下兩個狀態:“前進”狀態和“停止”狀態。如果要測試前方紅外感測器的值以從“前進”狀態切換到“停止”狀態,則有兩種可能性:要麼建立一次狀態轉換,在其中一起測試兩個前方紅外感測器的值,要麼建立兩次狀態轉換,在其中獨立地測試兩個紅外感測器的值。這兩種解決方案有什麼區別?
在本練習中,您一步一步地建立了一個自動機。但是,上面沒有提到一些BotStudio技巧。
- 要將紅外感測器的“大於”條件切換為“小於”條件(反之亦然),請單擊紅外感測器滑塊的灰色部分。
- 如果您不想更改狀態中的電機速度,請單擊電機滑塊的黃色矩形。矩形應該消失,電機速度將保持其先前值。
- 如果您要刪除狀態轉換的條件,請將其設定為0。該值應該消失。
- 有一個未提及的滑塊。該滑塊與相機有關。您將在練習 [sec:Line-following] 中詳細瞭解此主題。
透過前兩個練習,您學習了
- 什麼是有限狀態機,以及它與機器人行為之間的關係
- 如何使用BotStudio
- 如何設計一個簡單的有限狀態機
以下練習將訓練您自己建立有限狀態機。
在這一步,您瞭解了什麼是自動機。現在,您將透過引數估計練習來強化這些知識。自動機的結構是給定的(狀態和狀態轉換),但它不包含任何引數,即執行器命令和感測器值的條件未設定。您將透過經驗來設定這些引數。
開啟以下世界檔案
.../beginner_better_collision_avoidance_algorithm.wbt
您可能需要增加BotStudio視窗的大小才能看到整個自動機。
請注意,您可以透過單擊BotStudio視窗中的另存為按鈕來儲存自動機。您也可以透過單擊載入按鈕來載入它。
[P.1] 從給定的自動機開始(見圖)。它只有結構,即有狀態和狀態轉換,但它們的引數未設定。找到每個狀態和每個狀態轉換的引數,以使e-puck避開障礙物。

閃爍的e-puck [初學者]
[edit | edit source]到目前為止,你只是修改了現有的自動機。現在是時候建立它們了。在本實踐練習中,你將透過操作LED來設計自己的自動機。
開啟世界檔案
[edit | edit source]開啟以下世界檔案
.../worlds/beginner_blinking_epuck.wbt
你可能需要增加BotStudio視窗的大小以檢視整個自動機。在模擬視窗中,如果你看不到所有LED,可以透過左鍵單擊來移動攝像頭圍繞機器人移動。對於本練習,直接在真實的e-puck上操作更方便。
修改自動機
[edit | edit source]
[Q.1] 在不啟動自動機的情況下,描述e-puck的行為。透過執行模擬來驗證你的理論。
[P.1] 修改當前自動機,以新增以下行為:8個LED將順時針點亮並熄滅,它們將持續亮0.2 [s]。
[P.2] 修改當前自動機,以新增以下行為:當用手遮住真實的e-puck時,LED會反向點亮。僅使用4個LED來實現此功能(前後左右)。
建立你自己的自動機
[edit | edit source]設計自動機的一種方法是首先識別可能的執行器配置,為每種配置建立一個狀態,設定這些狀態的引數,建立從一個狀態到另一個狀態的條件,為每個條件建立一個轉換,最後設定這些條件的引數。不幸的是,這並不總是那麼容易。例如,在一個自動機中,可以有兩個具有相同執行器命令的狀態。事實上,如果你看到一個人在街上奔跑,沒有任何背景,你不知道他是要趕公共汽車還是從著火的大樓裡逃生。他看起來一樣,但他的內部狀態不同。
[P.3] 建立一個新的自動機(在BotStudio中按下新建圖形按鈕)。只選擇以下四個LED:前LED、後LED、左LED和右LED。目標是點亮對應於障礙物側面的LED。請注意,如果機器人兩側都有障礙物,則應點亮兩個LED!不要做三側或四側有障礙物的情況。
[Q.2] 如果我建議透過使用e-puck周圍的8個LED以及最多8個障礙物的所有情況來重複練習,你會怎麼做?為什麼?你在BotStudio中發現了什麼限制?
*E-puck舞蹈* [初學者]
[edit | edit source]本練習的目標是透過建立e-puck舞蹈,讓你的虛擬e-puck在舞池上點燃火焰。你可以想象舞蹈是一系列節奏相同的動作。你可以在有限狀態自動機中輕鬆地對它進行建模。
開啟世界檔案
[edit | edit source]開啟以下世界檔案
.../worlds/beginner_epuck_dance.wbt
這將開啟一個迪斯科舞池。此外,這裡已經有一個關於你能達成的成就的小例子。我希望你能找到一個比現有e-puck舞蹈更好的舞蹈。
想象你的舞蹈
[edit | edit source]
[P.1] 觀察現有的舞蹈。自動機具有迴圈形狀。每次轉換的時間相同。建立一個新的自動機或修改現有的自動機。首先,選擇一個節奏。示例中選擇的節奏是每秒一次移動。這意味著每個計時器都設定為1[s]。然後,你應該為你在全域性迴圈期間想要看到的每個動作建立一個狀態(請注意,如果你想要在主迴圈期間兩次執行相同的動作,你必須建立兩個狀態)。然後,你必須根據你的節奏設定狀態引數。最後,使用計時器轉換將每個狀態連結起來。(提示:為了產生美麗的舞蹈,LED是受歡迎的。你也可以執行半動作)
循線 [初學者]
[edit | edit source]本練習的目標是探索BotStudio中提供的最後一個裝置:攝像頭。使用e-puck攝像頭,你可以獲取有關其前方地面資訊。BotStudio“即時”計算出e-puck前方黑色線條的中心。攝像頭是另一個e-puck感測器,前線條的中心是此攝像頭的感測器值。
線性攝像頭
[edit | edit source]e-puck的前面有一個攝像頭。它的解析度為480x640。由於技術原因,它具有480的寬度和640的高度。用於循線的最重要資訊是攝像頭的最後一行(參見名為“線性攝像頭的視野”的圖形)。因此,只有攝像頭的最後一行從e-puck傳送到Webots。最後,將一個演算法應用於此最後一行,以便找到黑色線條的中心。

問題是e-puck只能看到前方大約5.5釐米,並且只能看到大約4.5釐米寬的線條。此外,此資訊每秒重新整理大約2次。資訊量太少了!
[Q.1] 想象一下,每5秒,在你前方4米處,你只能看到一條3米寬的、始終保持相同角度的線條。你會使用什麼策略來循線?想象一下,這條線很複雜。循線最重要的因素是什麼?
開啟以下世界檔案
.../worlds/beginner_linear_camera.wbt
這將開啟一個大型世界。地面上繪製了一條黑線。請注意,為了更逼真,e-puck 攝像頭的值存在噪聲(高斯噪聲)。實際上,真正的攝像頭不會獲取完美的值。真正的攝像頭總是存在一些噪聲,它來自多種因素。
在 BotStudio 介面中,您還會發現一個關於攝像頭的條件(稱為“BotStudio 中的線性攝像頭條件”),它由一個滑塊表示。該值代表機器人前方黑線的中心。當選擇一個轉換時,您可以透過拖動滑塊來更改關於攝像頭的條件,並且可以透過單擊文字欄位來更改測試的方向(例如,“<5”變為“>5”)。請注意,如果機器人前方沒有線,中心值可能會錯誤。

[P.1] 在模擬和現實中執行給定的自動機。要建立一個真實的環境,您可以在一張大白紙上用粗黑筆繪製一條線(例如:A2 格式)。黑線必須遠離紙張邊界。
[P.3] 嘗試透過更改狀態和轉換的引數來儘可能快地讓 e-puck 前進。
開啟以下世界檔案
.../worlds/beginner_rally.wbt
[P.1] 建立一個自動機,它可以完成這條路徑的完整轉彎。(提示:調整您的速度!)