[发明专利]一种无人机飞行路径生成方法及系统有效
申请号: | 202110883254.2 | 申请日: | 2021-08-03 |
公开(公告)号: | CN113359865B | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 颜佳;蒋勇;王玉萍;李宝章;李方悦;王拥军;姜海龙;赵振 | 申请(专利权)人: | 深圳奥雅设计股份有限公司 |
主分类号: | G05D1/10 | 分类号: | G05D1/10 |
代理公司: | 广州专理知识产权代理事务所(普通合伙) 44493 | 代理人: | 邓易偲 |
地址: | 518067 广东省深圳市南山区蛇口街道*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 无人机 飞行 路径 生成 方法 系统 | ||
1.一种无人机飞行路径生成方法,其特征在于,所述方法包括以下步骤:
S100,无人机开始上升,直至上升至第一定位坐标;
S200,无人机通过以LiDAR获取到的点云数据得到全节点集合;
S300,对全节点集合进行划分得到多个局部节点集合;
S400,在多个局部节点集合中计算筛选出多个中心点,并根据各个中心点计算中心点之间的连接序列;
S500,无人机按连接序列进行飞行移动;
其中,在S100中,无人机开始上升,直至上升至第一定位坐标的方法为:无人机到达目标建筑物的位置后,从地面开始上升,同时以LiDAR获取目标建筑物的点云数据中的各个点的集合作为集合Pset,当无人机在匀速上升的过程中若集合Pset中采集到元素的数量不增加的时候,定义该时刻无人机通过卫星定位获取的经度、维度、高程的三维坐标为第一定位坐标,无人机在第一定位坐标停止上升;
其中,在S200中,无人机通过以LiDAR获取到的点云数据得到全节点集合的方法为:无人机在停止上升后,将Pset中的元素清空,并重新以LiDAR获取目标建筑物的点云数据中的各个点加入集合Pset,记集合Pset中元素的总数为n、元素的序号以变量i表示,i∈[1,n],集合Pset中序号为i的元素为Loc_i,集合Pset中序号为i的元素的三维坐标为(a_i,b_i,c_i),Loc_i=(a_i,b_i,c_i),根据第一定位坐标记为Loc_be,记Loc_be通过卫星定位获得的经度、维度、高程的三维坐标为(a,b,c),集合Pset即为全节点集合;
其中,在S300中,对全节点集合进行划分得到多个局部节点集合的方法为:
对全节点集合Pset进行划分的程序的具体过程如下:
S301,开始程序;创建一个字典记为Tmap,所述字典指数据结构中元素的集合,所述字典包括多个键值对,所述键值对由一个键记作key和一个值记作value构成;令字典Tmap为空;转到S302;
S302,创建数组Darr,令数组Darr为空;创建数组Dset,令数组Dset为空,数组Dset具有有序性;转到S303;
S303,令i的数值为1;转到S304;
S304,在字典Tmap中创建一个以序号i为key的键记作key(i),且设置该键key(i)对应的值为一个空数组记作value(i);在字典Tmap中将一个键key(i)对应一个值即为数组value(i)记作Tmap的一个键值对记作key(i),value(i),记Tmap中序号i的键值对为Tmap(i),有Tmap(i)=key(i),value(i),则有value(i)的数组长度为n-1;转到S305;
S305,将键值对Tmap(i)在其value(i)数组中加入Pset中的每一个元素的序号,然后在value(i)数组中删除序号i;转到S3060;
S3060,获取集合Pset中序号为i的点记为Loc_i,有Loc_i =(a_i,b_i,c_i);创建空数组darr;转到S3061;
S3061,设置变量j,令j的数值为1;设置变量m,令m的数值为value(i)数组中元素的数量;转到S3062;
S3062,获取value(i)数组中第j个元素记为v;转到S3063;
S3063,根据v,获取集合Pset中序号为v的点记为Loc_v,有Loc_v =(a_v,b_v,c_v);转到S3064;
S3064,计算Loc_i的三维坐标与Loc_v的三维坐标之间的欧氏距离记为d(i,v);将d(i,v)加入数组darr中;转到S3065;
S3065,判断数组darr中元素的数量是否大于或等于value(i)数组中元素的数量,若是则将数组darr加入数组Dset中作为数组Dset中的第i个元素并转到S3067,若否则转到S3066;
S3066,令j的数值增加1;转到S3062;
S3067,计算获取darr数组中元素的算术平均数记为darr_avg;将darr_avg加入数组Darr中;转到S307;
S307,判断数组Darr中元素的数量是否大于或等于n,若是则转到S3072,若否则转到S3071;
S3071,令i的数值增加1;转到S304;
S3072,计算获取Darr数组中元素的算术平均数记为d_avg;将d_avg存储至常量池;转到S3080;
S3080, 令i的数值为1;转到S3081;
S3081,通过i获取Tmap(i)进而获取数组value(i);通过i获取数组Dset中的第i个元素记作数组Dset(i);转到S3082;
S3082,将数组value(i)中的各个元素对应数组Dset(i)中的同样序号的元素;转到S3083;
S3083,在常量池中调用d_avg;计算筛选出在数组Dset(i)中数值大于d_avg的所有元素的序号作为筛选集合;转到S3084;
S3084,获取在Tmap(i)的数组value(i)中序号存在于筛选集合中的所有元素作为无关元素集合,在Tmap中序号i的键值对的数组value(i)中进行删除无关元素集合中的元素;转到S3085;
S3085,判断i的数值是否大于或等于n,若是则转到S3086,若否则转到S3087;
S3086,输出Tmap;结束程序;
所得的字典Tmap中的各键值对应表示Pset的各点,字典Tmap中的序号为i的键值对Tmap(i)对应Pset中序号为i的点,Tmap(i)的数组value(i)的元素为Pset中的点的序号,Tmap(i)的数组value(i)中的各个元素表示在Pset中与Loc_i存在连接的可能性的各个点,字典Tmap中的序号为i的键值对Tmap(i)的数组value(i)即为一个局部节点集合,字典Tmap中即含有多个局部节点集合;
其中,在S400中,在多个局部节点集合中计算筛选出多个中心点,并根据各个中心点计算中心点之间的连接序列的方法为:计算Pset各个点的中心度,根据点Pset(i)在字典Tmap中的对应的键值对Tmap(i),获取键值对Tmap(i)中数组value(i)中的元素,若数组value(i)不为空,则以变量h表示数组value(i)中的元素,h∈value(i),变量k表示数组value(i)中的元素的数量,则集合Pset中序号为h的点为Loc_h,点Loc_h的三维坐标为Loc_h=(a_h,b_h,c_h),a_h、b_h、c_h分别为Pset中序号为h的点Loc_h三维坐标的三个维度上的数值,有Pset中序号为i的点Loc_i的中心度记为cord(i),当满足数组value(i)不为空时,根据Loc_i及键值对Tmap(i)中数组value(i)中的元素以计算Loc_i的中心度cord(i)的公式为:
由此筛选出集合Pset中所有的满足其序号i在字典Tmap中对应键值对Tmap(i)中数组value(i)不为空的点的集合作为集合Fset;
令集合Fset中元素的数量记为el,集合Fset中元素的序号为变量f, f∈[1,el],有Fset中序号为f的点为Loc_f, 点Loc_f的中心度记为cord(f),函数log()为以2为底的对数函数,函数exp()为以自然数e为底的指数函数,记中心度阈值为λ,计算中心度阈值λ的公式为:
将集合Fset中的满足约束条件cord(f)≧λ的点记为中心点,记各中心点组成的集合为Pinset,记Pinset中的各中心点的中心度组成的集合作为Corset,集合Pinset和集合Corset的元素相互对应,根据集合Corset的元素的数值大小按数值从大到小的顺序对集合Pinset中对应的各中心点进行搜索并排序,排序所得的集合Pinset中的各中心点的序列即为连接序列Pseq。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳奥雅设计股份有限公司,未经深圳奥雅设计股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110883254.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:鞋底单向排气系统
- 下一篇:一种防侧翻电动三轮车