跳到內容
中文(繁體)

macOS

在同一台電腦上執行比賽伺服器和控制器程式

Section titled “在同一台電腦上執行比賽伺服器和控制器程式”

首先,試著在同一台電腦上執行比賽伺服器和你的控制器程式。這和比賽時的架構不同,但對於在本機除錯很有用。

開啟世界,然後按下控制視窗中的「TOGGLE REMOTE」。按鈕會變成橘色,表示遠端模式已開啟。

已開啟的 TOGGLE REMOTE 按鈕

如果沒有顯示控制視窗,請在 Scene Tree(場景樹)中的「DEF MAINSUPERVISOR Robot」上按右鍵,然後選擇「Show Robot Window」。

開啟終端機並執行以下指令,把 <Your controller path> 換成你的控制器程式的路徑。

終端機視窗
export WEBOTS_HOME=/Applications/Webots.app
"$WEBOTS_HOME/Contents/MacOS/webots-controller" "<Your controller path>"

如果 Webots 安裝在其他位置或使用其他名稱,請相應地更改 WEBOTS_HOME,例如 "/Applications/Webots R2023b.app"。

控制器會連接到 Webots,並等待比賽開始。

按下控制視窗中的開始按鈕。機器人會出現,你的程式也會開始執行。

要停止比賽,請在終端機中按下 Ctrl+C。

模擬結束時,Erebus 的比賽管理程式也會一起停止。要再次執行比賽,請重新載入世界。

在另一台電腦上執行比賽伺服器

Section titled “在另一台電腦上執行比賽伺服器”

這是正式比賽使用的架構。執行你的控制器的電腦(用戶端)和執行比賽的電腦(伺服器)必須連接到同一個網路。

  1. (伺服器)在伺服器上啟動 Webots,開啟世界,並在控制視窗中開啟遠端模式。

  2. (伺服器)在「系統設定」>「網路」中查出伺服器的 IP 位址。

  3. (用戶端)執行以下指令,把 <Your controller path> 換成你的控制器程式的路徑,並把 <Server IP address> 換成上一步查到的 IP 位址。

    終端機視窗
    export WEBOTS_HOME=/Applications/Webots.app
    "$WEBOTS_HOME/Contents/MacOS/webots-controller" --protocol=tcp --ip-address=<Server IP address> "<Your controller path>"
  4. (伺服器)按下開始按鈕開始比賽。

  • 控制器無法連線: 請確認兩台電腦可以互相連通(例如用 ping)、伺服器的防火牆允許 TCP 連接埠 1234,以及 Webots 偏好設定(Preferences)的 Network 分頁中允許的 IP 清單是空的或包含用戶端。
  • 顯示 No robot name provided: 控制器在等待期間出現這則訊息是正常的。如果它一直沒有消失,表示遠端模式沒有開啟:請檢查 TOGGLE REMOTE 按鈕。
  • 控制器找不到 Python 函式庫: 程式是用用戶端上安裝的 Python 執行的,所以請在用戶端安裝該函式庫。

如需這個架構的更多詳細資訊,請參閱 Webots 指南。