/AgentsMotionSimulation

多智能体均匀多边形编队、追逐与合围。

Primary LanguagePython

基于自组织的多无人机编队算法设计

一、基于自组织的多无人均匀多边形编队控制

1. 基于自组织的多无人机编队问题详解

1.1 初始配置、目标配置和无人机模型定义

1.1.1、初始配置、目标配置和无人机模型定义

  1. 我们把无人机考虑成一个具有一定体积的智能体,不考虑其具体动力学特性, 仅仅将其视为一个具有一定体积的、可自主移动的圆球。智能体之间不能接 触、碰撞。
  2. 智能体是同质的、可互换的、匿名的,所有个体性质都是相同的,唯一的不 同只有其所处的环境不同或者说其运动状态不同,除此之外,没有任何特殊 性,匿名性也导致智能体无法依靠 ID 分辨其他个体。且个体具有无记忆性, 无法记录上一步的行为或者决策。
  3. 智能体拥有相同的笛卡尔坐标系统,且目标多边形位置是固定已知的,没个 无人机均有记录均匀多边形的几个顶点位置。
  4. 忽略通信细节,不考虑通信时延和定位精度问题,每个智能体均可准确知道 其他任何个体位置,实际上仿真实验中只用到局部其他个体的位置信息。
  5. 智能体有两种状态,静止和激活状态,静止即为保持位置不变化,但仍然会 与外界保持沟通;激活状态则是智能体主动判断自身所处位置,根据环境做 出决策,然后执行决策。仿真时,智能体默认保持静止,激活是异步进行的, 同一时间只考虑激活一个个体,激活个体随机选择,依次达到对现实运行的 仿真。

多边形形成算法设计

1.2.1、多边形形成控制算法约束条件

算法设计之先,我们需要给出一些智能体运动约束条件: 1)智能体之间不能碰撞,更不能重合,设定智能体之间最小间距为 d。 2)本文所设计控制算法不涉及具体控制率,每个个体移动速度相同,表现在算法中则是每个个体每次激活时移动的距离小于等于 D。

步骤一 :抵达多边形

"""
Vertex_Position 表示多边形顶点坐标列表、detect 表示函数检测最近顶点 detect_occupy 表示
函数检测顶点是否被占领、move 表示函数移动、get 表示函数通信索要排队序号,adjust 表示目标
"""

def function1(Vertex_Position = Vertex_Position):
    nearest_point = detect(Vertex_Position)
    #检测最近多边形顶点位置
    ifdetect_occupy(nearest_point):
        #如果检测到该顶点没被占领
        move(nearest_point)
        #移向目标顶点
    else:
        order = get(occupy_ID)
        #向占领的智能体索要当前排队序号
    if order:
        adjust_aim = adjust(order)
        #根据排队序号调整自己的目标位置
    else:
        Vertex_Position = Vertex_Position.remove(nearest_point)
        return functions(Vertex_Position)
        #索要排序号失败则移除顶点列表中的最近顶点,
        #并再次调用决策函数
    return None

步骤二 :均匀化

"""
def function2():
    pre_index ,next_index = detect_neighbor()
    #检测前后相邻个体在均匀多边形链表上的索引
    aim = ((pre_index+next_index)/2 + my_index)/2
    #aim 为前后相邻个体的中点与自身位置的中点
    move(aim)
    #往目标位置移动
    
detect_neighbor()表示函数检测多边形上前后相邻个体

2 仿真结果

代码见 done/plgsim.py 由于本科时候太菜了,自己写的代码自己都不想去维护。 为了读者阅读方便,尝试重构代码(见ToDo), 基本框架已经搭起来了,但策略迁移工作量太多了, 又是毕业之际,暂时保留再做,感兴趣的小伙伴也也可以提出代码合并哈。

3: 链接

  1. https://blog.csdn.net/py431382/article/details/89854176?spm=1001.2014.3001.5501
  2. https://www.bilibili.com/video/BV1PE41117m6?spm_id_from=333.999.0.0

二、基于自组织的多智能体追逐与合围

https://www.bilibili.com/video/BV1PE41117DG

代码待整理上传