1. robocup3D 教程

2025-11-19 16:14:21 职业攻略

1. robocup3D 教程

文章目录

1. robocup3D 教程1.1. 系统要求1.2. 平台安装1.2.1. 下载源码1.2.2. 安装server1.2.3. 安装roboviz monitor

1.3. win10平台运行robocup3d1.3.1. 安装linux子系统1.3.2. 安装robocup3d平台1.3.3. 安装监视器(roboviz)

1.4. 球队开源底层代码1.5. 球队的代码编译与执行1.6. 球员动作设计1.7. 使用机器学习优化球员的动作1.8. 球队介绍1.9. 总结

1.1. 系统要求

比赛环境运行于ubuntu16.04 STL。电脑需要有独显,笔记本最好是游戏本。如果安装双系统有困难,在电脑性能较强的情况下可以使用win10 的 WSL来运行。

1.2. 平台安装

2019/6 robocup更新了server

1.2.1. 下载源码

https://gitlab.com/robocup-sim/SimSpark

1.2.2. 安装server

先安装依赖 sudo apt-get install g++ git cmake libfreetype6-dev libode-dev libsdl-dev ruby ruby-dev libdevil-dev libboost-dev libboost-thread-dev libboost-regex-dev libboost-system-dev qt4-default

将下载后的代码放在home目录下打开项目目录,在终端运行 bulid.sh安装完成

1.2.3. 安装roboviz monitor

下载地址:

https://github.com/magmaOffenburg/RoboViz

cd RoboViz-dev/scripts/

./build-linux64.sh

运行 roboviz

cd RoboViz-dev/bin/

./roboviz.sh

1.3. win10平台运行robocup3d

win10的linux子系统不断完善,现在我们可以在win10 中安装robocup3d平台。

1.3.1. 安装linux子系统

打开win10的开发者模式

打开win10设置:-> 系统设置 -> 更新和安全 -> 针对开发人员 -> 选择开发者模式

安装win10的linux子系统组件

顺序: -> 系统设置 -> 应用 -> 右侧的程序和功能 -> 启动或关闭windows功能 -> 勾选适用于 Linux 的 Windows 子系统

确定后,重启电脑,系统更新配置

安装 Linux 子系统

在win10应用商店搜索Ubuntu, 安装Ubuntu18.04 LTS(因为我安装的是这个版本,严格说来,安装16.04LTS更合适,读者可执行尝试).

安装完成后设置用户名和密码

安装完成后,我们需要更改镜像源,因为默认镜像源在国内网速感人.

首先备份镜像源文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.20181013

然后使用vim打开, 使用vim的全局替换功能将源地址替换

:%s/security.ubuntu/mirrors.aliyun/g

:%s/archive.ubuntu/mirrors.aliyun/g

或者用如下内容替换/etc/apt/sources.list文件中的内容

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

最后执行更新命令

sudo apt update

1.3.2. 安装robocup3d平台

安装依赖程序

sudo apt-get install g++ git cmake libfreetype6-dev libode-dev libsdl-dev ruby ruby-dev libdevil-dev libboost-dev libboost-thread-dev libboost-regex-dev libboost-system-dev qt4-default

下载simspark 和 rcsserver3d、

下载地址

将文件复制到ubuntu子系统的home路径下

打开ubuntu子系统(默认为home路径), 使用命令复制下载的文件

cp /mnt/c/xxx/simspark_xxx .

cp /mnt/c/xxx/rcsserver3d_xxx .

复制完成后解压文件夹

tar xvf simspark_xxx

tar xvf rcsserver3d_xx

编译并安装

# 安装simspark

cd simspark

mkdir build

cd build

cmake ..

make -j10

sudo make install

sudo ldconfig

# 安装rcsserver3d

cd ~/rcsserver3d

mkdir build

cd build

cmake ..

make

sudo make install

sudo ldconfig

确保链接器可以找到您的共享库:

# add the lines '/usr/local/lib/simspark' and '/usr/local/lib/rcssserver3d' to /etc/ld.so.conf.d/ spark.conf

echo -e '/usr/local/lib/simspark\n/usr/local/lib/rcssserver3d' | sudo tee /etc/ld.so.conf.d/spark.conf

sudo ldconfig

测试是否安装成功

rcsserver3d命令启动server

1.3.3. 安装监视器(roboviz)

改程序是java写的可以直接安装在win10上,所以下面的安装操作非常简单

改githu上下载roboiz的安装包

解压缩,文件夹内容如下:

打开scripts文件夹,运行build-windows64.bat

之后在根目录下多出一个bin目录,打开bin>windows-amd64, 双击RoboViz.bat文件,即可运行.

1.4. 球队开源底层代码

我们的开源代码来自得克萨斯大学奥斯汀分校,该实验室的官网:http://www.cs.utexas.edu/~AustinVilla/sim/3dsimulation/

ut的底层代码 https://github.com/LARG/utaustinvilla3d

robocup官方的可下载文档http://archive.robocup.info/Soccer/Simulation/3D/

https://ssim.robocup.org/2018/12/13/3d-robocup-2019-call-for-participation/

robocup邮件列表https://mailman.cc.gatech.edu/mailman/listinfo/robocup-sim

1.5. 球队的代码编译与执行

在hehaviors/strategy.cc文件中的selectSkill()函数中有实例。

编译代码:

cmake .

make -j$(nproc)

代码的根目录下的start.sh文件为启动脚本。注意: 在启动之前应该先打开rcsserver3d,否则会启动失败。

在该文件中可以修改球队的名称,球员数量等。建议学习一下linux shell。

比赛中我们会使用干净的可执行程序(要删掉源码,只保留必要的可执行文件、动态库和参数文件)。在./scripts/文件夹下有两个脚本:

执行copy_libs.sh将代码运行所需要的动态库复制到./libs/文件夹下(这一步是必须的,虽然在自己的电脑上没有加入动态库可以运行,但是不保证在比赛的电脑上可以运行)。

执行copy_files_needed_to_run.sh path_name将自动把干净的可执行程序复制到path_name参数设置的目录下。

1.6. 球员动作设计

球员动作编辑器:https://github.com/AIUT3D/aiut3d-motion-editor

skills/***.skl目录下保存机器人踢球动作文件。观察发现其中有些参数是以变量形式保存在paramfiles/文件夹下。

动作编辑器编辑的动作是以数字的形式保存的。将动作加入到代码中,需要手动或者自己编写脚本将其翻译成球队代码所需要的格式。

1.7. 使用机器学习优化球员的动作

paramfiles/文件夹下的文件保存了每种类型球员的参数。程序运行时将会从这里读取参数(走路,踢球,带球,跌倒后重新站立等参数)。使用机器学习的算法进行优化参数。建议先学习机器学习的基础知识。

阅读在代码中的optimization文件夹下readme.md文件了解详情。

将server该为优化模式,需要手动更改server程序的参数。如果没有更改server的默认安装路径,那么要更改的内容如下:

我们需要修改四个地方 /usr/local/share/

/share/rcssserver3d/rsg/agent/nao/naoneckhead.rsg

为了运行优化以获得准确的测量值和正确的值

setSenseMyPos, setSenseMyOrien, and setSenseBallPos values to true

~/.simspark/spark.rb

关闭实时模式并打开同步模式以加快运行速度。

set $agentSyncMode to true

/share/rcssserver3d/rcssserver3d.rb

关闭实时模式并打开同步模式以加快运行速度。

set $enableRealTimeMode to false

/share/rcssserver3d/naosoccersim.rb

如果正在检查光束代理的位置,您可能需要关闭光束噪声

set BeamNoiseXY and BeamNoiseAngle to 0 (原本是0.05 10.0)

详细信息查看optimization/readme.md文件。

1.8. 球队介绍

该仿真平台仿真了nao机器人,和gazobe机器人(现在比赛中只用nao机器人)。nao机器人有5种类型,他们的身高、体重不同。可以查看paramfiles/文件夹下的参数文件,对应了不同型号的机器人。

比赛种需要至少使用三种类型的nao机器人,每种至少两个。详细的比赛规则可以查看robocup3d世界杯的官方规则,我们国内的比赛基本和世界杯保持一致。

1.9. 总结

总之,仔细阅读代码每个模块的readme文件。阅读ut官网的论文。

另一点是paramfiles/文件中的参数名和值之间是用tab键分割的,使用空格分割会报错。在有些IDE下,默认会将tab键转换成4个空格。解决方法是注意IDE的设置,或者修该源代码使其兼容空格分割。