本项目是 TIGERs-Mannheim/AutoReferee 的Fork版本,该版本旨在针对浙江省大学生机器人竞赛-小型足球机器人赛道与中国机器人大赛暨Robocup世界杯中国公开赛-小型组的比赛规则,对自动裁判盒进行定制与修改,目前实现了以下修改
- 对内置的
ssl-game-controller进行了替换,使用汉化后的定制版本lkhcode/ssl-game-controller - 对于替换的
ssl-game-controller,是通过更换依赖实现的,现在获取GC的依赖从TIGERs-Mannheim/ssl-game-controller-maven换成了lkhcode/ssl-game-controller,此依赖提供Github Package与Jitpack两种版本可供安装,你可以尝试使用,目前使用Jitpack版本,当前锁定的是GC的v0.0.1-beta版本,目前仅做了windows_amd64与linux_amd64的支持,如有对于arm64,darwin(macOS等苹果的操作系统)的适配需求,请提交issue或联系ausksyc@outlook.com - 对于Docker镜像,此版本也做了支持,你可以在herryli124/autoreferee找到
这是 TIGERs Mannheim 团队的自动裁判系统实现。它基于TIGERs的 AI 框架 Sumatra 开发。 本项目使用 Gradle 构建应用程序,IntelliJ 作为主要的 IDE。 所有依赖项将自动下载,因此构建时需要网络连接。
- Java JDK (最新的 LTS 版本,具体要求版本可以在 这里找到,目前使用JDK21)
- 网络连接
- 对操作系统无特殊要求
首先,确保你已经克隆了 Git 仓库。从 GitHub 下载的 ZIP 文件无法使用,因为构建依赖于 Git 标签。
根据你的系统平台运行 ./build.sh 或 ./build.bat。
根据你的系统平台运行 ./run.sh 或 run.bat。
你可以使用以下命令行参数来配置AutoReferee的运行模式:
./run.sh [选项]-a, --active: 激活自动裁判的主动模式-c, --ci: 使用CI模式运行-hl, --headless: 无GUI模式运行(仅命令行)-ra, --refereeAddress=<address:port>: 设置游戏控制器(GC)的地址和端口-ta, --trackerAddress=<address:port>: 设置追踪器的地址和端口-va, --visionAddress=<address:port>: 设置视觉系统的地址和端口-h, --help: 显示帮助信息
# 以主动模式运行
./run.sh --active
# 无GUI模式运行
./run.sh --headless
# 指定自定义的视觉和裁判地址
./run.sh --visionAddress=224.5.23.2:10006 --refereeAddress=224.5.23.1:10003
# 组合多个参数
./run.sh --active --visionAddress=224.5.23.2:10006 --refereeAddress=224.5.23.1:10003你也可以尝试通过 docker 运行。我提供了两个 docker 镜像:
herryli124/auto-referee- 不带 GUI 的 autoRefereeherryli124/auto-referee-vnc- 带 GUI 的 autoReferee
要使用 GUI 运行 autoReferee,可以使用以下命令:
docker run --net host -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY herryli124/auto-referee-vnc注意:该命令仅在运行 X 服务器的 Linux 系统上有效。 或者,你也可以使用 VNC 客户端连接到容器。
无GUI(headless)版本可以使用以下命令运行:
docker run --net host herryli124/auto-refereeIntelliJ 可以读取 Gradle 配置并使用 Gradle 执行构建。 请确保在 Build, Execution, Deployment -> Build Tools -> Gradle 下配置 Gradle 用于构建和测试。
GUI 由多个可以动态排列的视图组成。如果某个视图没有显示,可以从菜单(Views)中添加。
在自动裁判视图中,你可以将自动裁判设置为以下模式之一:
- Off 关闭: 完全关闭自动裁判
- Passive 被动: 自动裁判将检测事件并显示在比赛日志中,但不会向游戏控制器发送任何信息
- Active 主动: 自动裁判将检测事件并将其发送到游戏控制器
此视图还允许停用某些事件检测,如针对省赛的无边界规则,你可以尝试取消球出界的事件监测,当然你也可以选择在ssl-game-controller中忽略AutoReferee的事件
Game Log视图显示所有发生的、对自动裁判行为有影响的事件。可以使用表格下方的复选框切换不同类型事件的显示。
Ball Speed视图显示场上球的速度。右侧的滑块组件可用于调整图表的时间窗口。如果勾选了非 RUNNING 状态时暂停复选框,当比赛不在 RUNNING 状态时图表将自动暂停。可以使用暂停/恢复按钮覆盖此暂停。请注意,如果用户手动暂停图表,即使比赛状态回到 RUNNING,图表也不会自动恢复。
图表将显示三条线:
- 最大球速: 规则定义的球速限制
- 初始球速: 基于球的轨迹估算的初始球速(踢球速度)。随时间推移估算会更准确
- 球速: 当前估计的球速
所有配置选项都可以通过Cfg选项卡访问。Cfg选项卡本身包含多个子选项卡,用于修改应用程序不同部分的参数。你可以进行必要的修改并Apply它们。要使更改永久生效,请按Save将其写入磁盘。按Reload重新读取所有当前应用的值。
默认情况下,应用程序将尝试从 224.5.23.2:10006 接收视觉帧。 你可以通过以下方式更改:
- 命令行参数:
--visionAddress=地址:端口 - 配置文件:config/moduli/autoreferee.xml
默认情况下,应用程序将尝试从 224.5.23.1:10003 接收裁判消息。 你可以通过以下方式更改:
- 命令行参数:
--refereeAddress=地址:端口 - 配置文件:config/moduli/autoreferee.xml
追踪器用于发布视觉追踪数据包,可以通过以下方式配置:
- 命令行参数:
--trackerAddress=地址:端口 - 配置文件:config/moduli/autoreferee.xml
可以通过autoreferee配置部分更改自动裁判的行为。它包含检测器的参数。
规则定义的参数可以在ruleConst下找到。
默认几何参数从 config/geometry/DIV_A.txt 读取。 可以在 config/moduli/autoreferee.xml 中更改要读取的文件。
自动裁判系统内置了官方的 ssl-game-controller。要激活它,请在 config/moduli/autoreferee.xml 中将 gameController 改为 true。
自动裁判系统将在内部启动游戏控制器并连接到其 websocket API,以便能够通过Ref视图发送一些基本命令。
该视图还包含一个启动 GC 的 UI 的按钮。