# RMUA
**Repository Path**: dufolk/RMUA
## Basic Information
- **Project Name**: RMUA
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-06-10
- **Last Updated**: 2025-06-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[English](README.md) | __简体中文__
# 多智能体2v2自动对抗
## 1.介绍
本工程是重大项目中的重要课题之一,旨在实现多智能体 2v2 自动对抗。
本工程共使用 4 台全向移动机器人在 [RMUA 2021 的比赛地图](src/navigation/map/map.pgm)上进行全自动对抗。
本工程所有代码在 Ubuntu20.04 运行,依赖 [ROS-noetic](http://wiki.ros.org/noetic)。
## 2.结构
| 功能包名称 | 功能 |
|:----------------------------:|:----------:|
| [decision](src/decision) | 机器人决策 |
| [navigation](src/navigation) | 导航和定位 |
| [sentry](src/sentry) | 定义哨岗消息 |
| [vision](src/vision) | 视觉识别 |
sentry 功能包中定义了自定义话题和服务,其他功能包都需要依赖此功能包。各个功能包的具体结构、功能和原理请参考功能包内部的 README 文件。
```
src
├── decision
├── navigation
├── sentry
└── vision
```
## 3.依赖
* 本工程使用的机器人为 [RoboMaster 2020 标准版 AI 机器人](https://www.robomaster.com/zh-CN/products/components/detail/2499),需要先[下载并编译 RoboRTS](https://github.com/RoboMaster/RoboRTS-Base) 作为底层驱动。
* 本工程使用一个 [Intel RealSense](https://www.intelrealsense.com/) 深度相机作为视觉传感器,安装在云台炮管的下方,并使用 Python 读取图像数据,需要依赖 pyrealsense2 库。
* 本工程使用两个单线激光雷达,分别安装在机器人的前方和后方,需要安装对应雷达的 ROS 驱动。
* 本工程一些功能包的部分代码使用 Python >= 3.8 编写,依赖在功能包目录下的 requirements.txt 中给出。
## 4.编译
编译本工程前,请先确保已经成功编译 RoboRTS 和雷达的 ROS 驱动。
使用以下代码克隆并编译本工程:
```shell
git clone https://github.com/Yue-0/RMUA.git
cd ./RMUA/src
catkin_init_workspace
cd ./vision
pip install -r requirements.txt
cd ../..
catkin_make --only-pkg-with-deps sentry
catkin_make -DCATKIN_WHITELIST_PACKAGES="decision;navigation;vision"
source devel/setup.bash
```
## 5.运行
编译成功后,将机器人移动至起始点,使用以下指令使机器人进入 1v1 比赛的准备状态。
```shell
roslaunch decision 1v1.launch
```
运行以上指令会启动 rviz,等待机器人定位完成后,在另一个终端中输入以下指令开始决策。
```shell
rosservice call /start 1
```