RoboCup是机器人足球世界杯[,最早于1997年在日本名古屋举办,有来自全世界38支球队参加仿真和机器人组的比赛。之后RoboCup便一直是国际上促进分布式人工智能、多智能体技术、机器人制造技术等相关领域的重大赛事和学术活动。
仿真2D比赛是RoboCup仿真组(RoboCup Soccer Simulation)比赛中的一个类别,它是完全基于软件程序开发,而没有涉及实际真实的机器人。由组委会提供的仿真软件,对真实机器人进行了充分的模拟。研究人员可以把精力集中在球员的高层策略中,无需考虑硬件的问题。RoboCup仿真2D比赛中的人工智能尤其是多智能体领域的算法易于移植解决真实世界的许多问题,所以该比赛得到广泛的关注和支持,也成为了人工智能和多智能体系统(Multi-Agent System)的重要理论研究和验证平台。
什么是Docker
百度百科:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker Hub
Docker Hub被用于源代码管理集成,也用于构建和测试工具来加速部署周期,部署周期从天减少到以分钟计算,Docker宣称已经允许用户加速应用的传输。
架构和技术堆栈升级对于Docker Hub的大规模和不可预知的采用是必须的。
作为开发人员迅速采用Docker容器,IT管理员加速将其纳入企业生产环境。除了管理和配置工具,还需要编排和调度软件。
简单的说,docker管理了许多虚拟机,我们们从DockerHub下载虚拟机,再启动,就可以使用了。
第一步 安装Docker
(已经安装好docker的话可以跳过这一步)
首先更新apt
sudo apt-get update
添加使用 HTTPS 传输的软件包以及 CA 证书,用于通过HTTPS来获取仓库
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
向 source.list 中添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
更新apt
sudo apt-get update
查看docker版本
apt-cache madison docker-ce
安装
sudo apt-get install docker-ce=18.06.3~ce~3-0~ubuntu containerd.io
测试
sudo docker run hello-world
ps: docker 命令需要sudo ,可以在root账号下操作
sudo passwd
设置密码
su root
第二步 导入镜像
方法一:在线直接从DockerHub拉取镜像
1、觉得网速慢的话可以先配置下dockerhub 的阿里等国内源,网速还不错可以跳过这一步
首先打开https://cr.console.aliyun.com/cn-hangzhou/instances
选择左边的镜像工具->镜像加速器->按照右边的指令输入就可以
2、拉取镜像
docker pull markchalse/ubuntu_robocup
3、查看镜像 ,非常轻量了 只有不到2G
docker images
方法二:离线下载镜像安装
上链接!
链接:https://pan.baidu.com/s/11i2utmkQbBUjvXjVYDZqLQ
提取码:ewlr
我们把ubuntu_robocup.tar文件放入home用户目录下
在/home/用户名 目录下 加载tar文件
docker load -i ubuntu_robocup.tar
查看镜像
docker images
第三步 启动容器
这一步类似我们下载了一个系统镜像,需要安装启动
我们首先在宿主机home的用户目录下创建一个workspace文件夹,我的用户名是mark。
那么下面命令中/home/mark/workspace:/workspace的意思就是宿主机的workspace文件夹与容器内根目录下workspace文件夹是共享文件夹。
docker run -itd -v /home/mark/workspace:/workspace -p 8549:22 --name robocup markchalse/ubuntu_robocup
查看运行中的容器,可以看到刚刚创建的容器名字是robocup ,以及端口映射,我们宿主机的8549端口映射容器的22端口用于ssh连接。
docker ps
此时robocup仿真2D环境已经搭建完成,下面我们要使用这个容器开始比赛
特别提醒:
容器中root账号的密码是123456
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
启动比赛
一、进入容器 打开ssh服务
容器启动相当于虚拟机开机,ssh服务需要启动才能进行远程连接
进入容器
docker exec -it robocup /bin/bash
打开ssh服务
/etc/init.d/ssh restart
此时我们就可以使用ssh连接容器或者说虚拟机开始robocup比赛
二、远程连接 启动rcssserver
远程连接
ssh root@0.0.0.0 -p 8549
启动 server ,注意路径
rcssserver
三、远程连接 启动soccerwindow2 或者 rcssmonitor
打开一个新的终端,远程连接,注意使用-X ,因为需要用可视化的软件
ssh -X root@0.0.0.0 -p 8549
启动soccerwindow2
soccerwindow2
四、远程连接 启动helios base底层
ssh root@0.0.0.0 -p 8549
在容器的/teams目录下已经放入了agent2d 和 蓝鹰 的球队,可以启动他们比赛,也可以通过workspace共享目录,修改球队代码,编译启动。
cd /teams/agent2d/agent2d/src
./start.sh
五、远程连接 启动蓝鹰wrighteagle
ssh root@0.0.0.0 -p 8549
cd /teams/wrighteagle/realse/WrightEagle
./start-local.sh
六、开始比赛
左键点击仿真器,选择kickoff开始比赛
按快捷键v可以取消显示视角
按s快捷键可以取消显示体力
每场比赛结束会在~目录下产生临时记录文件
可以删除
rm -f 2022*