计软路径规划开发文档
目前可用的交互有: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.py
中processing()
函数中的变量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
,包含了无人机的起飞纬度。顺序与 data
中 uav
的 id
对应。
如 id
为 0
的无人机,起飞的纬度为 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.