实验一 机器人足球比赛编程预备知识

1、实验目的

掌握 RoboCup 仿真机器人足球比赛相关知识点,具体内容如下:
(1)Linux 操作系统的熟悉及了解其基本操作。
(2)掌握 Linux 下如何进行 C++编程,了解 gcc 编译器以及一些简单编辑工具,如:vim、vscode、gedit、Kdevelope 等。
(3)启动 RoboCup 仿真(2D)足球队的比赛。

2、实验设备

硬件环境:PC 机
软件环境:操作系统 Linux

3、实验内容

1.掌握 Linux 一些常用的命令:

  • 更改账号密码
    格式:passwd
    输入后,屏幕显示: Old password: <输入旧密码>
    New password: <输入新密码>
    Retype new password: <确认新密码>
     
  • 联机帮助
    格式: man [命令名]
    例如: man ls
    屏幕上就会显示所有 ls 的用法。
     
  • 文件或目录处理
    格式:ls [-atFlgR][name]
    第一项是一些语法加量。第二项是文件名。
    常用的方法有:
    ls 列出当前目录下的所有文件。
    ls –a 列出包括以 .开始的隐藏文件的所有文件名。
    ls –t 依照文件最后修改时间的顺序列出文件名。
    ls –F 列出当前目录下的文件名及其类型。以/结尾表示为目录名、以*结尾表示未可执行文件、以@结尾表示为符号连接。
    ls –l 列出目录下所有文件的权限、所有者、文件大小、修改时间及名称。
    ls –lg 同上,并显示出文件的所有者工作组名。
    ls –R 显示出目录下以及其所有子目录的文件名。
     
  • 改变工作目录
    格式:: cd [name]
    name :目录名、路径或目录缩写。
    常用的方法有: cd 改变目录位置至用户登录时的工作目录。
    cd dirl 改变目录位置至 dirl 目录下。
    cd ~user 改变目录位置至用户的工作目录。
    cd .. 改变目录位置至。
    cd ../user 改变目录位置至相对路径 user 的目录下。
    cd /../.. 改变目录位置至绝对路径的目录位置下。
     
  • 复制文件
    格式:cp [-r] 源地址 目的地址
    常用的方法有: cp file1 file2 将文件 file1 复制成 file2
    cp file1 dir1 将文件 file1 复制到目录 dir1 下,文件名仍为 file1。
    cp /tmp/file1 将目录/tmp 下的文件 file1 复制到当前目录下,文件名仍为 file1。
    cp /tmp/file1 file2 将目录/tmp 下的文件 file1 复制到当前目录下,文件名仍为 file2。
    cp -r dir1 dir2 复制整个目录。
     
  • 移动或更改文件、目录名称
    格式:mv 源地址 目的地址
    常用的方法有:
    mv file1 file2 将文件 file1 更名为 file2。
    mv file1 dir1 将文件 file1 转移到目录 dir1 下,文件名仍为 file1。
    mv dir1 dir2 将目录 dir1 更改为目录 dir2。
     
    • 建立新目录
      格式:mkdir 目录名  
    • 删除目录
      格式:rmdir [目录名|文件名]
      常用的方法有:
      rm –r dir1 删除目录 dir1 及其子目录下的所有文件。
       
    • 列出当前所在的目录位置
      格式:pwd
       
    • 查看文件内容
      格式: cat 文件名
       
    • 文件权限的设定
      格式:chmod [-R] mode name
      name:文件名或目录名。
      mode:3 个或 8 个数字或 rwx 的组合。r-read(读权限)、w-write(写权限)、x-execute(执行)
      常用的方法有:
      chmod 777 file1 给所有用户 file1 全部的权限。
       
    • 文件的解压缩
      格式:tar [option] [file] gzip[option] [file]
      option 的组合较为复杂,通常的解压缩方法是:
      tar czvf filename.tar
      参数:c create z zip压缩 v 显示 f file
      通常的压缩方法是:
      tar xzvf filename.tar
      参数:x Extract z zip压缩 v 显示 f file
       
      完成以下操作:
      • 如何找到用户主目录的绝对路径名?在自己的系统上,用户主目录的绝对路径名是什么?
      • 将当前工作目录从/home/UVA 转到/home/Tsinghua 需要使用什么命令?
      • 如何显示当前目录?
      • 如何在当前目录下建立子目录 RoboCup?
      • 如何删除子目录 RoboCup?
      • 如何查看当前目录下的内容?
      • 如何将文件start.sh的权限设定为:tart.sh属主可读、可写、可执行?
      • 如何将当前目录包括所有子目录全部做备份文件,备份文件名为 first.tar?
      • 如何将目录/home 下每一个文件压缩成.gz 文件?
      • 如何把上例中每个压缩的文件解压,并列出详细的信息?

2.掌握 vscode、vi、gedit 等编辑工具以及 gcc、anjuta、Kdevelope 等编译工具的使用

vscode、vi、gedit 等工具是类似 Windows 操作系统下的 txt 文本、Word 等编辑器工具,完成对文本的编辑工作。以 vscode 为例介绍一下这类工具的使用情况:
vscode有图形界面十分便利,vscode有很多插件,安装c++插件可以出现代码提示,安装git插件可以进行版本控制,安装markdown可以实时预览等。ctrl+` 可以打开内置的终端,运行shell命令。

gcc、anjuta 等是 Linux 下的源程序编译工具,类似 Tubro C/Turbo C++、C++builder、VC++等编译工具,以 gcc 为例介绍一下情况: 看下面的例子:test.c

  #include<stdio.h>
  main()
  { 
    char *str="I like Linux! I advices you jion in the Linux World";
    printf("%s\n",str);
    exit(0);
  }

使用 gcc 编译。输入 gcc -c test.c 得到目标文件 test.o.-c 命令表示对文件进行编译和汇编。 但并不连接。如果再健入 gcc -o ../bin/test test.o,那么将得到名为 test 的可执行文件。其实这两可以一气呵成,gcc ../bin/test test.c.如果程序没有错误救生成了可执行文件。也许你会觉 得基于命令行的编译器比不上如 VC 之类的集成开发环境,的确 gcc 的界面要改进,但是你 一旦熟练了就会感到,gcc 的效率如此之高。可以告诉大家的是 Linux 底下强大的 C/C++集 成开发环境 Kdevelope 和 Vc 一样强大,使用了 GCC 编译器。
 
如果一个工程有几个源文件构成,就需要编写 Makefile 文件,makefile 的编写见讲义附录。
完成下面功能:

  • 使用上述其中之一编辑环境,编写文件 counter.h、counter.C、appl.C:
// File counter.h
class counter
{
  private:
    unsigned int value; // 私有数据成员
  public:
    counter(void);
    void increment(void);
    void decrement(void);
    unsigned int getvalue(void);
};
//File counter.C
#include "counter.h"
counter::counter(void) {value=0;} // 构造函数(Constructor)
void counter::increment(void) { if (value<9999) value++;}
void counter::decrement(void) { if (value>0) value--;}
unsigned int counter::getvalue(void) { return value;}
//File appl.C
#include <iostream.h>
#include "counter.h"
void main()
{
  counter c1,c2;
  for(int i=1; i<5; i++)
  {
    c1.increment();
    cout<<"c1="<<c1.getvalue()<<"\n";
    c2.increment();
  }
  c2.decrement();
  cout<<"The final value of c1="<<c1.getvalue()<<"\n";
  cout<<"The final value of c2="<<c2.getvalue()<<"\n";
}
  • 使用 g++或 gcc 实现生成可执行程序 appl

    3.启动球队上场比赛:

    完成以下操作:
  • 首先完成 Server 的安装: 在gitee 搜索'robocup2d平台搭建',下载或者clone,运行./install.sh 即可完成安装。新装好的ubuntu需要换源,推荐阿里,以及清华源。
  • 同时启动Server和Monitor/分别启动Server和Monitor
    ➜  ~ rcsoccersim
    
  • 启动比赛的2支球队,详细见每个球队的readme。
  • 只启动部分球员
  • 有兴趣的同学可以熟悉一下shell脚本文件的语法及脚本编写。
Copyright@Njupt-Apollo-2d-2021 all right reserved,powered by Gitbook该文件最新修订时间: 2022-02-26 09:05:41

results matching ""

    No results matching ""