计软路径规划开发文档

SingleDog Other Waste

目前可用的交互有:Gridize returnData

调用方法:下载源文件后,和要调用的代码文件放在统一目录下

在代码开头添加 import Gridize import returnData 即可

调用时,使用 Gridize.gridize() returnData.revert()

231215 更新:新增了 Gridize_all

Gridize

gridize

返回一个 (RESOLUTION+2)*(RESOLUTION+2) 的二维 list,由 0 1 2 3 组成

其中 1 表示障碍物,0 表示空地,2 表示无人机起始位置,3 表示降落位置

带有边界,第一行、第一列、最后一行、最后一列均为 1

生成的样例如图:

样例,路径已经标注

接收参数:

Gridize.gridize(data: dict, iu: int, RESOLUTION: int, offset: int = 0) -> tuple:

  • data: 前端传入的 json 文件,即 backend.pyprocessing() 函数中的变量 request
  • iu: 当前规划的无人机编号,从 0 开始

目前的逻辑是对每一架无人机分别建图;后期也许可以考虑对整个地图直接建图

  • RESOLUTION: 图的分辨率,即网格的个数
  • offset: 偏移量,当建图不成功时用于扩大图的范围。默认为 0。

返回值

一个元组,顺序如下

matrix, ob_max_r, start_la, start_lo, land_la, land_lo

  • matrix 建立的矩阵,其余说明见上。
  • ob_max_r 障碍物的最大半径。暂定令 offset=ob_max_r。也许有更好的扩图思路?
  • start_la start_lo 无人机在矩阵中的起始位置。
  • land_la land_lo 无人机在矩阵中的降落位置。

(x,y) 在矩阵中为 matrix[y][x]
如传回的点坐标是 (start_lo,start_la),调用时使用 matrix[start_la][start_lo]

getDistance

返回矩阵中两点的距离,以米为单位。

接收参数

Gridize.getDistance(x_1, y_1, x_2, y_2)

  • x_1 y_1 点一的横纵坐标
  • x_2 y_2 点二的横纵坐标

(x,y) 在矩阵中为 matrix[y][x]。请正确传递参数。

返回值

两点的距离,为 float

Gridize_all

gridize

描述、接收参数与 Gridize 一致,但是包含了所有的无人机位置、障碍物位置。

非必要时,请将 offset 置 0。

返回值:仅各个位置坐标有变化。

start_la 为例:

start_la 为一个 list,包含了无人机的起飞纬度。顺序与 datauavid 对应。

id0 的无人机,起飞的纬度为 start_la[0]

start_lo land_la land_lo 类似。

快速设定三对应的矩阵样式

图中2为起点,3为终点。 有两处起点与终点重合,在上图中没有显示出来,实际规划时没有影响。

returnData

返回一架无人机的 UAVPath。一次只能返回一架。

接收参数

returnData.revert(data: dict,shortest_path: list,iu: int,RESOLUTION: int,start_la: int,start_lo: int,offset: int)

  • data 如上
  • shortest_path 规划出来的在矩阵中的最短路径
  • iu 无人机编号
  • RESOLUTION 如上
  • start_la start_lo 无人机的起始位置。填入 girdize 返回的值即可
  • offset 偏移量,填入 gridize 返回的 ob_max_r 即可。

返回值

一个 dict,只包含一个无人机的路径。

使用时,请定义一个 perUAVPath:dict 来接收该函数的返回值

并且在自己的主函数中定义一个 allUAVPath:list

最后使用 allUAVPath.append(perUAVPath) 把结果追加到 allUAVPath

所有路径规划完以后,请返回 allUAVPath

backend.py

先在开头 import <FileName>,然后在 58 行修改 reply["uavpath"] =<FileName>.<Funcion(request)> 即可。

  • Title: 计软路径规划开发文档
  • Author: SingleDog
  • Created at : 2023-12-11 15:46:00
  • Updated at : 2023-12-15 18:04:28
  • Link: https://www.singledog233.top/pathDocs/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
计软路径规划开发文档