项目简介
本项目是一个离散的多智能体环境,借助 PettingZoo 的 API 完成封装,同时提供基于 ray - rllib 的训练接口。该环境专注于多智能体目标协同路径规划任务的强化学习,环境内可存在多个智能体,每个智能体需依次抵达对应的多个目标点。
项目的主要特性和功能
- 多智能体协作:支持多个智能体在同一环境中开展目标协同路径规划任务,各智能体具备不同的移动规则和速度。
- 自定义地图:用户能够通过自定义的 .xlsx 文件对地图进行配置,涵盖机器人配置、地图配置和位置坐标等信息。
- 多种策略分配:提供
single
、parallel
、speed
三种策略分配方式,可满足不同的训练需求。 - 手动操作:支持手动操控特定智能体,可使用键盘 WASD 进行控制。
- 奖励机制:拥有多种奖励设置,针对达到目标点、撞墙、与其他智能体相撞、超出边界等情况都有相应的奖励或惩罚,并且可自行修改。
安装使用步骤
安装
假设用户已下载本项目的源码文件,在项目根目录下执行以下命令安装依赖:
bash
pip install -r requirements.txt
pip install -e .
使用
训练
运行以下命令进行训练:
bash
python run_ppo.py train --policy speed --map data1.xlsx --step 500 --render --episode 200
支持的参数及说明如下:
```
usage: run_ppo.py
positional arguments:
optional arguments: -h, --help show this help message and exit -r, --record whether to record the test result -R, --render whether to render during the train -p POLICY, --policy POLICY 'parallel', 'single', 'speed' -c CHECKPOINT, --checkpoint CHECKPOINT load which checkpoint -m MAP, --map MAP your custom map xlsx file -M MANUAL, --manual MANUAL manually operate one specified agent -s STEP, --step STEP the number of steps of an episode -e EPISODE, --episode EPISODE the number of episodes to train --checkpoint_every CHECKPOINT_EVERY ```
测试
运行以下命令进行测试:
bash
python run_ppo.py test --policy speed --map data1.xlsx --step 500 --record
手动操作
使用以下命令手动操控指定智能体:
bash
python run_ppo.py test --record --map data1.xlsx --step 5000 --policy speed --manual 0
自定义地图
自定义地图中的 .xlsx 文件需要有三个 sheet,分别命名为 "机器人配置"、"地图配置"、"位置坐标"。具体设置参考 stunning_robots/maps/data1.xlsx。将自定义的地图放在 stunning_robots/maps
的文件夹中,以参数 --map <your map config>
的形式进行调用,示例代码如下:
python
import stunning_robots
env = stunning_robots.parallel_env(**stunning_robots.DEFAULT_CONFIG)
env = stunning_robots.parallel_env(**stunning_robots.load_map_config("path/to/custom/maps/data.xlsx"))
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】