跳转到内容
中文(简体)

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 地址,可以在 System Settings(系统设置)> Network(网络)中找到。

  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 指南。