Compare commits

..

1 Commits

Author SHA1 Message Date
p02945817 ceea52761e “修改” 2022-06-17 22:15:45 +08:00
17 changed files with 42 additions and 120 deletions

3
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

12
.idea/SeAIPalette.iml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="Python 3.10 (SeAIPalette)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
</module>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

4
.idea/misc.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (SeAIPalette)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/SeAIPalette.iml" filepath="$PROJECT_DIR$/.idea/SeAIPalette.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

122
README.md
View File

@ -21,125 +21,9 @@ conda env create -f create_env.yaml
```python ```python
python main_tt.py python main_tt.py
``` ```
## 3. 问题定义和仿真设计
1环境设计
环境依赖方面仿真平台主要基于Python平台实现。具体地物理仿真引擎使用的是Pymunk并将物理仿真结果Pygame渲染成可视化结果。此外在数值计算方面主要使用了Numpy工具包。 ## 3. 一些说明
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. 其他说明
* 程序输出的说明
程序运行结束后会在命令行输出类似于下面的结果: 程序运行结束后会在命令行输出类似于下面的结果:
``` ```
@ -151,7 +35,7 @@ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pygame==2.0.1
``` ```
分别为使用的步数,重复的步数和重复率。 分别为使用的步数,重复的步数和重复率。
* 关于渲染结果的说明 2. 关于渲染结果的说明
渲染中不同移动节点负责的区域用不同颜色标记,每个区域颜色越深表示该区域被重复走的次数越多。 渲染中不同移动节点负责的区域用不同颜色标记,每个区域颜色越深表示该区域被重复走的次数越多。

View File

@ -122,6 +122,5 @@ class mywindow(QtWidgets.QMainWindow, Ui_MainWindow):
if __name__ == '__main__': if __name__ == '__main__':
app = QApplication(sys.argv) app = QApplication(sys.argv)
window = mywindow() window = mywindow()
# window.showMaximized()
window.show() window.show()
sys.exit(app.exec_()) sys.exit(app.exec_())

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB