# pur_game_server_x **Repository Path**: CeasarSmj/pur_game_server_x ## Basic Information - **Project Name**: pur_game_server_x - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-06 - **Last Updated**: 2026-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 追捕任务系统 (Pursuit Game Server - Client) README for English User please turn to [README_en.md](./README_en.md) 这是一个基于图结构的多机器人追捕任务系统,实现了1个逃避者和2个追捕者的博弈任务。系统包含服务器端、机器人客户端和策略计算模块,支持真实机器人部署和仿真测试。 特别说明:客户端和视频图传客户端在 go2w_nav_ws 项目的 navigation_system_ros1ws/src/navigation_exp_pkg 中有部署 ## 目录结构 ``` . ├── config.py # 全局配置文件,包含通信协议、服务器配置等 ├── core/ # 核心服务模块,负责任务逻辑控制和机器人管理 ├── datas/ # 数据文件目录,包含地图、图结构和策略数据 ├── main.py # 项目入口文件 ├── map/ # 地图管理模块,负责地图加载、坐标转换和障碍物编辑 ├── map_generate/ # 地图生成模块,用于从图像生成图结构 ├── policy/ # 策略模块,包含本地信念更新和远程DRL策略通信 ├── policy_client_remote/ # 远程策略客户端,与策略服务器配合实现DRL策略计算 ├── policy_generate_and_test/# 策略生成和测试模块,用于预计算距离矩阵和策略模拟 ├── requirements.txt # 项目依赖列表 ├── robots/ # 机器人客户端模块,包含真实和模拟客户端实现 ├── ui/ # 用户界面模块,提供图形化监控界面 └── utils/ # 工具模块,包含通信帧处理和日志工具 ``` ## 项目功能概述 本项目实现了一个基于图结构的追捕任务系统,主要功能包括: 1. 管理1个逃避者和2个追捕者的多机器人协调系统 2. 实现基于信念状态的追捕策略计算 3. 支持本地策略计算和远程深度强化学习(DRL)策略 4. 提供图形化监控界面,实时显示任务状态 5. 支持真实机器人部署和仿真测试环境 6. 实现视频流传输和显示功能 ## 快速启动 注意: - 其中需要安装 torch 建议先按照自己的 CUDA 版本先行安装 - 如有需要请自行准备 conda 环境 - 本项目需要使用 g++ 1. 拷贝项目到本地,并进入项目目录: ```bash git clone https://gitee.com/CeasarSmj/pur_game_server_x ``` 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 准备地图文件和策略相关文件: ```bash ./prepare_data.sh ``` 4. 打开三个中断分别启动服务器、策略客户端和仿真机器人端: ```bash # terminal 1 python main.py # terminal 2 python policy_client_remote/drl_policy_driver.py # terminal 3 python robots/fake_clients_simulate_multibot.py ``` ## 数据准备 项目运行需要以下数据文件,均位于 `datas/` 目录下: ### 地图文件 - `outdoor_final.yaml` - ROS格式地图配置文件 - `outdoor_final.pgm` - 地图图像文件 - `outdoor_final.png` - 地图可视化文件 ### 图结构文件 - `points.txt` - 图节点坐标信息 - `adj_matrix.txt` - 图邻接矩阵 ### 策略数据文件 - `D_bin.txt` - 二进制格式的距离矩阵 - `D_bin.npy` - NumPy格式的距离矩阵 ### AI模型文件 - `yolov11.pt` - YOLO目标检测模型 详细的数据生成方法请参考 `policy_generate_and_test/README.md` 和 `map_generate/README.md`。 ## 测试流程启动 (使用fake_clients_simulate_multibot.py) 使用模拟客户端进行测试的启动步骤: 1. 确保所有依赖已安装: ```bash pip install -r requirements.txt ``` 2. 启动服务器: ```bash python main.py ``` 3. 在新终端中启动模拟客户端: ```bash python robots/fake_clients_simulate_multibot.py ``` 4. 通过UI界面控制任务开始、暂停和重置等操作。 ## 实验流程启动 (使用client_node.py和video_client.py) 在真实机器人环境中部署的启动流程: ### 服务端部署 - 确保所有依赖已安装 - 启动主服务器: ```bash python main.py ``` ### 机器人端部署 在每个机器人上执行以下步骤: - 安装机器人端依赖 - 修改 `robots/client_node.py` 中的服务器IP地址 - 启动机器人客户端: ```bash python robots/client_node.py ``` ### 视频客户端部署 在需要传输视频的机器人上执行: - 安装视频相关的依赖项 - 启动视频客户端: ```bash python robots/video_client.py ``` ## 运行环境需求 ### 服务端环境需求 - g++ - Python 3.x - PyQt5 - networkx - opencv-python - PyYAML - ultralytic (用于视频分析) ### 机器人端环境需求 - Python 3.x - ROS noetic ### 策略端环境需求 - Python 3.x - torch (用于DRL策略) ## 通信协议 系统采用固定32字节的数据帧结构: ``` 版本(1B) + 命令(1B) + 机器人ID(4B) + 时间戳(8B) + 载荷(14B) + CRC32校验(4B) = 32字节 ``` 支持的主要命令类型包括连接请求、位置报告、导航目标、心跳检测等。 ## 注意事项 - 确保防火墙允许相关端口通信(默认6001用于机器人通信,6002用于策略通信,6003用于视频传输) - 在真实部署时,请根据网络环境修改配置文件中的IP地址 - 策略计算需要预先生成距离矩阵数据文件 - 视频传输功能需要摄像头设备支持