SeAIPalette/README.md

6.3 KiB
Raw Permalink Blame History

SeAI Palette集智调色板

0. 软件介绍

SeAI Palette集智调色板是面向集群网络的多节点智能协同路径规划软件。软件以面向对象的设计理念采用Python语言编程基于pyqt、pygame、pyyaml、pymunk、easydict以及ppdet等技术开发内置3个虚拟地图和多种算法牛耕法、内螺旋法、贪心法等持续更新并提供扩展接口支持地图和算法自定义。软件安装简单运行方便可选参数丰富扩展性高非常适用于相关研究领域的工程技术人员和学生掌握学习集群智能规划方法。

集智调色板软件设计了参数输入模块、算法运行模块及信息输出模块,在不同节点数量要求的前提下划分区域方向,按区域进行算法的运行。并可以综合考虑固定节点、覆盖率、电池容量等条件下,给出运行步数、重复步数和重复率等等性能指标。

软件界面简单,易学已用,包含参数的输入选择,程序的运行,算法结果的展示等,源代码公开,算法可修改。

开发人员H.P. Yu、K. Wang、J. Li、H.T. Li、Z.Q. Wang、Z.Y. Zhao、L.F. Zhang、G. Chen、X.D. Yang

1. 开发环境配置

运行以下命令:

conda env create -f create_env.yaml

该命令会创建一个名为Palette的conda虚拟环境conda activate Palette即可激活该虚拟环境。

2. 软件运行

运行以下命令运行软件:

python main_tt.py

3. 问题定义和仿真设计

1环境设计

环境依赖方面仿真平台主要基于Python平台实现。具体地物理仿真引擎使用的是Pymunk并将物理仿真结果Pygame渲染成可视化结果。此外在数值计算方面主要使用了Numpy工具包。

为保证实验结果综合客观,仿真平台包含了三张虚构的海图。

2方案设计

主要考虑了三种方案:

单AUV全覆盖路径规划即只规划单个AUV的全覆盖路径

多AUV全覆盖路径规划即需要同时规划多个AUV相互配合情况下的全覆盖路径

需要充电的单/多AUV路径规划即在上面两种方案的基础上额外考虑AUV的充电的需要AUV可根据能量情况自行前往充电桩进行充电降低人工打捞充电带来的巨大运维成本。

针对以上三种方案分别设计了仿真实验测试在不同目标覆盖率下AUV使用不同算法巡航海域所需的总时间以及重复航行区域的大小。

4. 使用算法

  • 栅格法
  • 牛耕法
  • 内螺旋法
  • 贪心法

5. 软硬件运行平台

1配置要求

组件 配置 备注
系统 Windows 10 家庭中文版 20H2 64位 扩展支持Linux和Mac系统
处理器 处理器类型: 酷睿i3兼容处理器或速度更快的处理器 处理器速度: 最低1.0GHz 建议2.0GHz或更快 不支持ARM、IA64等芯片处理器
内存 RAM 16.0 GB (15.7 GB 可用)
显卡 最小:核心显卡 推荐GTX1060或同类型显卡
硬盘 500G
显示器 3840×2160像素高分屏
软件 Anaconda3 2020及以上 Python3.7及以上,需手动安装包

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界面设计 界面总体设计如下:

主界面展示

为了操作简便主界面只分为功能选择区和信息输出区以及“运行”、“停止”按钮。功能选择区涵盖“地图选择”、“最低覆盖率”、“AUV数量”、“区域划分方向”、“算法选择”、“是否渲染”、“考虑固定节点”、“是否需要充电”和与之相关联的“AUV电池容量”。 信息输出区主要包含当前运行的相关信息,包括状态标志、运行完成标志、步数、重复步数、重复率等。

2地图0演示 采用“牛耕法”最低覆盖率100%AUV数量为1运行结果如下步数2373重复步数60重复率2.40%。

D:\pic

当“是否渲染”选择“否”时,物理引擎图形不展示,程序后台静默运行后自动输出相关状态及结果信息。

D:\pic

当AUV数量为3时使用的步数大大减少仅需要706步重复步数为38重复率1.52%。 D:\pic D:\pic

算法选择“贪心法”使用的步数705重复步数33重复率1.32%,和“牛耕法”相同。

当考虑充电时设置电池容量为100使用的步数964重复步数709重复率28.36%。

7. 其他说明

  • 程序输出的说明

    程序运行结束后会在命令行输出类似于下面的结果:

    finished!!!
    Congrates! covered all the places!
    Used steps: 79
    repeat steps: 187
    repeat ratio: 187/3900=4.79%
    

    分别为使用的步数,重复的步数和重复率。

  • 关于渲染结果的说明

    渲染中不同移动节点负责的区域用不同颜色标记,每个区域颜色越深表示该区域被重复走的次数越多。

    为了能够让人看清最后遍历的结果,我们在程序最后加了一个循环(空循环10^8次)以防止渲染结果立刻消失。

    此外,渲染结果最后会留一格小区域没有覆盖,这个是渲染结果滞后仿真程序内核一个时间单位导致的,不会对实际测试结果造成影响。