Robocup2D入门笔记(2)——环境的配置与安装

本篇主要介绍Robocup2D环境的配置与安装,由于笔者去年安装的时候Ubuntu还是18.04的版本,server也还是15.6.0的版本,所以介绍的时候还是以这个软件版本为准,但会尽量兼顾新版本与旧版本的不同。

目录

环境的安装主要分为一下几个步骤:

  1. Linux环境准备
  2. 必要软件库的准备
  3. server及monitor的安装
  4. 球队的编译及上场
  5. 开始比赛吧

下面分别来介绍:

1.Linux环境准备

1.1为什么选择虚拟机+Ubuntu

整个Robocup2D需要运行在Linux环境下,所以需要配置Linux的环境。配置Linux环境主要有两种方式,一种是使用虚拟机,另一种是使用双系统,当然现在Windows10中也可以使用Linux子系统,去年我们曾经尝试过使用,但后来发现并不是很完善,所以没有采用。而相比双系统,虚拟机可以在Windows系统中作为一个软件来使用,我们认为这更符合我们平常的开发使用习惯,而Robocup2D项目对性能的要求也不高,所以最后我们选择使用虚拟机来安装Linux环境。

Linux本身是一个开源的操作系统内核,它能够完成诸如文件管理、硬件控制、进程协调等任务,但除此之外就没有了,而这样一个系统显然不适合拿来直接使用,所以在此基础上,产生了许多Linux发行版,就是在原来Linux的内核基础上加入了常用的程序库、编译器等东西,使它更适合大众使用。值得一提的是,虽然Linux本身是开源的,但在它基础上的一些发行版是收费的,当然也有许多好用的Linux免费发行版,例如Ubuntu,CentOS,Deepin等。

不同的Linux发行版各有特点,详细可见不同Linux发行版的特点。Ubuntu全球最热门的Linux发行版,安装简单而且有十分友好的图形操作界面,同时因为使用人数多出了问题也能比较容易查到解决的办法,所以我们选择使用Ubuntu作为Linux环境。

1.2 具体安装

先贴两个网址:
虚拟机资源
Ubuntu官方网址
分别在这两个地方下载虚拟机VMwar WorkStation以及Ubuntu。

之后的安装可以直接参考这篇文章:VMware安装Ubuntu18.04
但是要注意这么几个地方:

  1. 在下面这个地方的时候可以直接选择中文,这样在后面可以不用再选择一次;
    在这里插入图片描述

  2. 在硬盘分区这个步骤不要按照文中的做,直接默认即可,分了之后反而可能会在后面安装必要软件库的时候把区域的空间耗完。
    需要注意的一步

  3. 在terminal安装东西的时候可能会跳出如下的选项询问是否继续,这个时候需要手动在terminal中输入y/Y
    在这里插入图片描述

  4. 关于管理员权限
    在Linux中也有类似Windows中的管理员权限,在安装软件的时候会用上,sudo开头的命令就是以管理员权限运行的,也可以直接输入su进入管理员模式,以后所有命令就都是管理员权限的操作。
    但是最开始我们明明没有设置管理员,但我们在安装软件的时候却要我们输入管理员密码,这可怎么办呢?
    可以输入下面的命令设置管理员密码
    sudo passwd
    注意终端里面输管理员密码是不会显示的。
    完成之后Linux的安装这一步就算是完成了。

    1.3 Linux小试牛刀

    在完成Linux安装后,可以先尝试下面这些操作来熟悉一下Linux

  5. 打开终端(Terminal)
    打开终端有两种方式:

    1. 直接在桌面打开
      在这里插入图片描述
    2. 通过快捷键crtl+alt+t
      打开后是这样的
      在这里插入图片描述
  6. 尝试一些基础命令

    • 首先是查看当前所在目录
      pwd
      对应英语中的print working directory

    • 接着尝试打印当前目录下的文件
      ls
      对应英语中的list

    • 接着尝试移动目录
      cd
      对应英文为change directory
      当然直接输入cd是不能改变目录的,必须要在后面接上一个参数告诉系统移动到哪个地方。

      ./xxxx```其中xxxx可以在刚刚ls命令打印出来的文件夹中选一个
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      	```cd ..```会返回上一级目录
      **注意cd和后面的参数之间要有一个空格**
      - 打开一个文件
      ```./xxxx```
      注意这个文件必须在当前目录下,如果不确定可以先用ls命令查看;
      同时文件的后缀名也要带上。
      - 创建新目录
      ```mkdir xxxx```
      对应英文make directory
      可以创建一个名为xxxx的文件夹
      - 创建一个文件
      ```touch xxxx```
      touch命令后接的文件如果不存在则会创建,如果存在则可以修改时间等
      - 删除文件
      ```rm xxxx```
      其中xxxx为待删除的文件。当然提到删除就不得不提到著名的删库跑路公式```sudo rm -rf /*```
      ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200926204043452.png#pic_center)

      ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020092620403051.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTX05ld2VyMTk4ODU=,size_16,color_FFFFFF,t_70#pic_center)
      **不建议大家尝试,虽然只是虚拟机但是重装还是挺麻烦的**
      - 清屏
      ```clear```
      刚刚打了这么多命令整个terminal有很多东西,为了更加清晰地查看信息,使用clear命令可以把整个terminal清空。
      - 复制与粘贴
      在terminal中单纯的```crtl+c```只能用来停止进程,所以复制与粘贴得使用```crtl+shift+c```与```crtl+shif+v```。

      3. **一些有意思的操作(如果不想再浪费时间熟悉Linux可以跳过)**
      - 无限复读
      ```yes xxxxxxx```
      输入下面这个命令之后可以不断地复读;
      - 瞅啥呢
      ```xeyes```
      会产生一个眼睛跟着鼠标移动;
      - 黑客入侵
      如果看过黑客帝国会对里面的黑底绿字的代码流动界面印象非常深刻,而我们现在就可以实现这个功能:
      首先安装一个插件```sudo apt install cmatrix```
      之后直接运行```cmatrix```即可
      - 可爱的小猫
      一个小插件可以产生一只不停的跟着鼠标跑的小猫;
      ```sudo apt install oneko```
      ``oneko``
      - 小火车
      产生一列呼啸而过的蒸汽火车
      ```sudo apt install sl```
      ```sl```
      - 格言警句
      在代码写累了的时候可以看看大佬们的名言
      ```sudo apt install fortune```
      ```fortune```
      当然也少不了唐诗三百首了
      ```sudo apt install fortune-zh```
      ```fortune-zh```
      - 花里胡哨地打印系统信息
      两个插件可以花里胡哨地打印系统信息
      ```sudo apt install screenfetch```
      ```screenfetch```

      ```sudo apt install linuxlogo```
      ```linux_logo```
      - 担心错过重要日子?
      ```cal```
      快速查看日期放置错过重要日子。
      - pv命令
      pv命令可以让输出匀速实现
      ```sudo apt install pv```
      以后只要在命令的最后加上
      ```| pv -qL 10```即可。
      到这里相信大家对Linux里的terminal都不那么陌生了,那么我们可以接着继续了。
      ## 2.必要软件库的安装
      server需要以下这些软件库

      g++
      make
      boost
      bison
      flex

      1
      当然直接安装可能会发现定位不到这些软件包,所以可以尝试下面这个命令:

      sudo apt-get update;

sudo apt-get -y install libboost-dev;
sudo apt-get -y install libboost-all-dev;
sudo apt-get -y install g++ automake;
sudo apt-get -y install libqt4-dev libxpm-dev libaudio-dev libxt-dev; libpng-dev libglib2.0-dev libfreetype6-dev libxrender-dev libxext-dev; libfontconfig-dev libxi-dev;
sudo apt-get -y install libqt4-sql-sqlite;
sudo apt-get -y install rar unrar p7zip;
sudo apt-get -y install nautilus-open-terminal;
sudo apt-get -y install build-essential;
sudo apt-get -y install flex bison tcsh;

sudo apt-get -y install libpng16-dev;
sudo apt-get -y install libpng12-dev;
sudo apt-get -y install libglib2.0-dev;
sudo apt-get -y install zlib*;
sudo apt-get -y install libfreetype6-dev;
sudo apt-get -y install libfontconfig1-dev;

sudo apt install -y zsh git vim #qtcreator;
sudo apt install -y python-setuptools python-dev build-essential;
sudo pip install –upgrade pip;

sudo rm /var/cache/apt/archives/lock;
sudo rm /var/lib/dpkg/lock;
sudo dpkg –configure -a;
sudo apt-get autoclean;
sudo apt-get clean;

1
如果在安装依赖库的时候碰到```E: Could not get lock /var/lib/dpkg/lock-frontend - open 针对apt-get被占用的解决方案```这种问题,可以尝试依次输入下面的命令:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*

sudo dpkg –configure -a

sudo apt update

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
## 3.server和monitor的安装
在完成必要软件库的安装后,剩下的工作就简单多了。安装server和monitor的流程操作是一样的,所以这里将两个统一起来说。

首先将下载下来的压缩包(默认是tar格式,其他格式需要采用别的方法)解压出来(如果是文件夹就不需要这个步骤)。这里可以用terminal也可以用图形化操作界面:
1. terminal操作:
首先cd到压缩包所在目录,或者直接在压缩包所在目录右键选择在终端打开,之后输入```tar zxvf xxxx.tar```
2. 图形化界面操作:
选中文件右键打开,选择左上角提取,选择一个目录即可;

接下来进入这个目录,接着打开终端,输入```./configure```。这里说明一下这个命令有什么作用:./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系,如果满足条件,就会生成makefile文件。其实所有的编译都是需要有一个makefile文件来指导编译链接过程的,但是在IDE中我们全权交给了IDE,所以不需要考虑,而现在我们是手动来进行这个过程。

接着输入```sudo make```。这一步意思就是编译了。

最后需要```sudo make install```。最后这步就是把刚刚编译好的东西给安装下来。

全部完成之后,输入```rcsoccersim```检查安装是否成功,如果一切正常这个时候就会弹出下面的这个界面。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200926200735386.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NTX05ld2VyMTk4ODU=,size_16,color_FFFFFF,t_70#pic_center)

## 4. 球队的编译与上场
当我们把环境以及服务器都安装好之后,我们还需要球队把比赛跑起来,所以现在介绍球队的编译与上场。
我们在网上下载到的球队文件有两种,一种是未经封装的球队,主要是底层球队;另一种是已经经过封装的球队。这两种球队的上场与编译略有不同。
1. 未经封装的球队
未经封装的球队是没有```start.sh```文件的,所以需要先经过编译才能运行。
未经封装的球队和server的安装流程类似,同样是进入文件夹,之后依次执行:
./configure
sudo make
sudo make install
```
完成之后在目录下会生成一个start.sh文件,在server已经开启的情况下,同样在这个目录下,输入:
```./start.sh```
即可把球队跑起来连接到server上。
  1. 已经经过封装的球队
    一般已经封装过的球队是会有start.sh的文件,通常直接运行即可。当然有的可能没有.sh后缀,这个时候就不需要这个后缀。

但是如果只是一个球队,又不想再准备一个球队,怎样能先把比赛跑起来呢?这个时候可以把球队文件复制一份,接着在start.sh文件中修改teamname为另外一个球队名,就可以把这个球队再连接到服务器了。
在这里插入图片描述

5.开始比赛吧

终于把两个球队都连接到server了,接下来到我们选中monitor界面,按下crtl+k,就可以开始比赛了。

如果想终止比赛,同样是选中monitor界面,按下crtl+q就可以终止比赛了。

最后,整个环境的配置与安装都已经完成了,当时我们在这个阶段也是经历了一段十分痛苦的过程,最后终于摸索出了这么一个办法,博客中的内容不一定正确,如果能帮到你那当然最好了,而如果发现有误,也欢迎在评论区或者私信进行讨论。

参考:

  1. Linux命令大全详解,让我们轻松入门学习Linux!
  2. 意想不到的有趣linux命令18个,玩得溜
  3. Robocup 仿真2D 学习笔记(一) ubuntu16.04 搭建 robocup 仿真2D环境
  4. E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) [duplicate]

上一篇:Robocup2D入门笔记(1)——概述
下一篇:Robocup2D入门笔记(3)——比赛运行逻辑简介