Compare commits
15 Commits
Author | SHA1 | Date |
---|---|---|
p73692015 | f56bb1904e | |
p73692015 | 362b36a40d | |
p73692015 | 2e301ed899 | |
p73692015 | 2c84627b8f | |
p73692015 | e9f0d676fd | |
p68729051 | efed534ba9 | |
p73692015 | 3558c79ffe | |
p68729051 | 1c28990df2 | |
p73692015 | d32a163e98 | |
p73692015 | d76a53e8ef | |
p73692015 | 8c5af7ccf1 | |
p73692015 | a697ec5e01 | |
p73692015 | 695e594885 | |
p02945817 | faf45ffc48 | |
p73692015 | 48e4cc3c77 |
125
README.md
|
@ -5,9 +5,6 @@ SeAI Palette集智调色板是面向集群网络的多节点智能协同路径
|
||||||
集智调色板软件设计了参数输入模块、算法运行模块及信息输出模块,在不同节点数量要求的前提下划分区域方向,按区域进行算法的运行。并可以综合考虑固定节点、覆盖率、电池容量等条件下,给出运行步数、重复步数和重复率等等性能指标。
|
集智调色板软件设计了参数输入模块、算法运行模块及信息输出模块,在不同节点数量要求的前提下划分区域方向,按区域进行算法的运行。并可以综合考虑固定节点、覆盖率、电池容量等条件下,给出运行步数、重复步数和重复率等等性能指标。
|
||||||
|
|
||||||
软件界面简单,易学已用,包含参数的输入选择,程序的运行,算法结果的展示等,源代码公开,算法可修改。
|
软件界面简单,易学已用,包含参数的输入选择,程序的运行,算法结果的展示等,源代码公开,算法可修改。
|
||||||
<<<<<<< HEAD
|
|
||||||
开发人员:王凯、于化鹏、李晶、王兆琦、李慧涛、赵志允、张乐飞、陈光
|
|
||||||
=======
|
|
||||||
|
|
||||||
开发人员:H.P. Yu、K. Wang、J. Li、H.T. Li、Z.Q. Wang、Z.Y. Zhao、L.F. Zhang、G. Chen
|
开发人员:H.P. Yu、K. Wang、J. Li、H.T. Li、Z.Q. Wang、Z.Y. Zhao、L.F. Zhang、G. Chen
|
||||||
|
|
||||||
|
@ -24,9 +21,125 @@ conda env create -f create_env.yaml
|
||||||
```python
|
```python
|
||||||
python main_tt.py
|
python main_tt.py
|
||||||
```
|
```
|
||||||
|
## 3. 问题定义和仿真设计
|
||||||
|
1)环境设计
|
||||||
|
|
||||||
## 3. 一些说明
|
环境依赖方面,仿真平台主要基于Python平台实现。具体地,物理仿真引擎使用的是Pymunk,并将物理仿真结果Pygame渲染成可视化结果。此外,在数值计算方面主要使用了Numpy工具包。
|
||||||
1. 程序输出的说明
|
|
||||||
|
为保证实验结果综合客观,仿真平台包含了三张虚构的海图。
|
||||||
|
|
||||||
|
2)方案设计
|
||||||
|
|
||||||
|
主要考虑了三种方案:
|
||||||
|
|
||||||
|
单AUV全覆盖路径规划,即只规划单个AUV的全覆盖路径;
|
||||||
|
|
||||||
|
多AUV全覆盖路径规划,即需要同时规划多个AUV相互配合情况下的全覆盖路径;
|
||||||
|
|
||||||
|
需要充电的单/多AUV路径规划,即在上面两种方案的基础上,额外考虑AUV的充电的需要,AUV可根据能量情况自行前往充电桩进行充电,降低人工打捞充电带来的巨大运维成本。
|
||||||
|
|
||||||
|
针对以上三种方案,分别设计了仿真实验测试在不同目标覆盖率下,AUV使用不同算法巡航海域所需的总时间以及重复航行区域的大小。
|
||||||
|
|
||||||
|
## 4. 使用算法
|
||||||
|
|
||||||
|
* 栅格法
|
||||||
|
* 牛耕法
|
||||||
|
* 内螺旋法
|
||||||
|
* 贪心法
|
||||||
|
|
||||||
|
## 5. 软硬件运行平台
|
||||||
|
|
||||||
|
(1)配置要求
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>组件</th>
|
||||||
|
<th>配置</th>
|
||||||
|
<th>备注</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>系统 </td>
|
||||||
|
<td>Windows 10 家庭中文版 20H2 64位</td>
|
||||||
|
<td>扩展支持Linux和Mac系统</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>处理器</td>
|
||||||
|
<td>处理器类型:
|
||||||
|
酷睿i3兼容处理器或速度更快的处理器
|
||||||
|
处理器速度:
|
||||||
|
最低:1.0GHz
|
||||||
|
建议:2.0GHz或更快
|
||||||
|
</td>
|
||||||
|
<td>不支持ARM、IA64等芯片处理器</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>内存</td>
|
||||||
|
<td>RAM 16.0 GB (15.7 GB 可用)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>显卡</td>
|
||||||
|
<td>最小:核心显卡
|
||||||
|
推荐:GTX1060或同类型显卡
|
||||||
|
</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>硬盘</td>
|
||||||
|
<td>500G</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<td>显示器</td>
|
||||||
|
<td>3840×2160像素,高分屏</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
</tr>
|
||||||
|
<td>软件</td>
|
||||||
|
<td>Anaconda3 2020及以上</td>
|
||||||
|
<td>Python3.7及以上,需手动安装包</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
(2)手动部署搭建及运行
|
||||||
|
推荐的安装步骤如下:
|
||||||
|
安装Anaconda3-2020.02-Windows-x86_64或以上版本;
|
||||||
|
手动安装pygame、pymunk、pyyaml、numpy、easydict和pyqt,安装方式推荐参考如下:
|
||||||
|
```
|
||||||
|
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame==2.0.1
|
||||||
|
```
|
||||||
|
将软件模块文件夹拷贝到电脑中(以D盘为例,路径为D:\island-multi_ships)
|
||||||
|
|
||||||
|
## 6. 模块详细设计
|
||||||
|
(1)界面设计
|
||||||
|
界面总体设计如下:
|
||||||
|
|
||||||
|
![主界面展示](https://osredm.com/repo/SeAIPalette/SeAIPalette/raw/branch/master/pic2/3.png)
|
||||||
|
|
||||||
|
为了操作简便,主界面只分为功能选择区和信息输出区以及“运行”、“停止”按钮。功能选择区涵盖“地图选择”、“最低覆盖率”、“AUV数量”、“区域划分方向”、“算法选择”、“是否渲染”、“考虑固定节点”、“是否需要充电”和与之相关联的“AUV电池容量”。
|
||||||
|
信息输出区主要包含当前运行的相关信息,包括状态标志、运行完成标志、步数、重复步数、重复率等。
|
||||||
|
|
||||||
|
(2)地图0演示
|
||||||
|
采用“牛耕法”,最低覆盖率100%,AUV数量为1,运行结果如下,步数2373,重复步数60,重复率2.40%。
|
||||||
|
|
||||||
|
![D:\pic](https://osredm.com/repo/SeAIPalette/SeAIPalette/raw/branch/master/pic2/40.png)
|
||||||
|
|
||||||
|
当“是否渲染”选择“否”时,物理引擎图形不展示,程序后台静默运行后自动输出相关状态及结果信息。
|
||||||
|
|
||||||
|
![D:\pic](https://osredm.com/repo/SeAIPalette/SeAIPalette/raw/branch/master/pic2/4.jpg)
|
||||||
|
|
||||||
|
|
||||||
|
当AUV数量为3时,使用的步数大大减少,仅需要706步,重复步数为38,重复率1.52%。
|
||||||
|
![D:\pic](https://osredm.com/repo/SeAIPalette/SeAIPalette/raw/branch/master/pic2/7.jpg)
|
||||||
|
![D:\pic](https://osredm.com/repo/SeAIPalette/SeAIPalette/raw/branch/master/pic2/8.jpg)
|
||||||
|
|
||||||
|
算法选择“贪心法”,使用的步数705,重复步数33,重复率1.32%,和“牛耕法”相同。
|
||||||
|
|
||||||
|
当考虑充电时,设置电池容量为100,使用的步数964,重复步数709,重复率28.36%。
|
||||||
|
|
||||||
|
## 7. 其他说明
|
||||||
|
|
||||||
|
* 程序输出的说明
|
||||||
|
|
||||||
程序运行结束后会在命令行输出类似于下面的结果:
|
程序运行结束后会在命令行输出类似于下面的结果:
|
||||||
```
|
```
|
||||||
|
@ -38,7 +151,7 @@ python main_tt.py
|
||||||
```
|
```
|
||||||
分别为使用的步数,重复的步数和重复率。
|
分别为使用的步数,重复的步数和重复率。
|
||||||
|
|
||||||
2. 关于渲染结果的说明
|
* 关于渲染结果的说明
|
||||||
|
|
||||||
渲染中不同移动节点负责的区域用不同颜色标记,每个区域颜色越深表示该区域被重复走的次数越多。
|
渲染中不同移动节点负责的区域用不同颜色标记,每个区域颜色越深表示该区域被重复走的次数越多。
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 74 KiB |