一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

控制飞行器航行的方法、装置、设备及存储介质与流程

2021-09-08 02:56:00 来源:中国专利 TAG:飞行器 航行 装置 特别 控制


1.本技术涉及电子技术领域,特别涉及一种控制飞行器航行的方法、装置、设备及存储介质。


背景技术:

2.随着电子技术的发展,飞行器技术的进步,飞行器的应用越来越广泛,例如当前飞行器可用于电力巡检、农业种植、应急救灾等方面。
3.以飞行器是无人机为例,无人机在进行飞行之前,需要用户预先通过无人机对应的控制设备为无人机设置航线。例如用户可在控制设备显示的地图中进行点击,为无人机设置航点,设置多个航点按照一定的顺序排列(如用户点击各航点的顺序)组成航点序列,即得到无人机的航线。用户在控制设备设置无人机的航线后,可以通过控制设备将航线对应的航点序列发送至无人机,无人机在接收到航点序列后,可根据接收到的航点序列控制飞行。
4.在实现本技术的过程中,发明人发现相关技术至少存在以下问题:
5.无人机在飞行至航点序列中的任一航点时,可以根据该航点以及该航点相邻的航点计算的转向角进行转向,但如果转向角过大,无人机可能会因转向动作较大而出现无人机翻转等危险情况。


技术实现要素:

6.本技术实施例提供了一种控制飞行器航行的方法、装置、设备及存储介质,可以提高飞行器在飞行过程中的安全性,所述技术方案如下:
7.第一方面,提供了一种控制飞行器航行的方法,所述方法包括:
8.将目标飞行器的航点序列设置为基准航点序列,在所述基准航点序列中,获取第二个航点,作为基准航点,其中,所述航点序列包括多个按航行顺序排列的航点;
9.确定所述基准航点的转向角,如果所述转向角大于角度阈值,则基于所述基准航点、在所述基准航点序列中与所述基准航点相邻的两个航点、所述转向角和所述角度阈值,在所述基准航点序列中的所述两个航点之间添加至少一个航点,将添加航点后的基准航点序列,设置为基准航点序列,如果所述转向角小于或等于角度阈值,则保持所述基准航点序列不变;
10.如果基准航点不是所述基准航点序列中的倒数第二个航点,则在所述基准航点序列中,将所述基准航点的下一个航点,设置为基准航点,转至执行所述确定所述基准航点的转向角;
11.如果基准航点是所述基准航点序列中的倒数第二个航点,则基于所述基准航点序列,控制所述目标飞行器航行。
12.可选的,所述基于所述基准航点、在所述基准航点序列中与所述基准航点相邻的两个航点、所述转向角和所述角度阈值,在所述基准航点序列中的所述两个航点之间添加
至少一个航点,包括:
13.确定过所述基准航点以及与所述基准航点相邻的两个航点的目标曲线;
14.基于所述转向角和所述角度阈值,确定在所述两个航点之间添加航点的目标数目;
15.在所述目标曲线上均匀的选取所述目标数目个航点;
16.确定所述两个航点中在所述基准航点序列中相对靠前的第一航点,基于选取的各航点与所述第一航点在所述目标曲线上的距离、以及所述基准航点与所述第一航点在所述目标曲线上的距离,将所述选取的各航点依次添加到所述基准航点序列中的所述两个航点之间。
17.可选的,所述基于所述转向角和所述角度阈值,确定在所述两个航点之间添加航点的目标数目,包括:
18.确定所述转向角和所述角度阈值的目标比值;
19.基于目标比值以及预先设置的比值与数目的对应关系,确定在所述两个航点之间添加航点的目标数目。
20.可选的,所述确定过所述基准航点以及与所述基准航点相邻的两个航点的目标曲线,包括:
21.基于如下方程组确定曲线定位点,所述曲线定位点是用于确定所述目标曲线的参考点;
[0022][0023]
其中,x0、y0为曲线定位点的坐标,x1、y1为所述基准航点的坐标,x2、y2为所述第一航点的坐标,x3、y3为所述两个航点中在所述基准航点序列中相对靠后的第二航点的坐标,x4、y4为过所述基准航点的目标直线与第一线段的第一交点的坐标,x5、y5为所述目标直线与第二线段的第二交点的坐标,其中,所述第一线段的两个端点分别为所述第一航点和所
述曲线定位点,所述第二线段的两个端点分别为所述第二航点和所述曲线定位点;
[0024]
基于所述曲线定位点、所述第一航点、所述第二航点确定所述目标曲线。
[0025]
可选的,所述基于所述曲线定位点、所述第一航点、所述第二航点确定所述目标曲线,包括:
[0026]
在所述第一线段上选取第一移动点,其中,第一移动点的初始位置与所述第一航点的航点位置相同,在所述第二线段上选取第二移动点,其中,第二移动点的初始位置与所述曲线定位点的位置相同,在所述第三线段上选取第三移动点,其中,所述第三线段的两个端点分别为所述第一移动点和所述第二移动点,所述第三移动点的初始位置与所述第一移动点的初始位置相同;
[0027]
分别控制所述第一移动点向所述曲线定位点移动,所述第二移动点向所述第二航点移动,所述第三移动点向所述第二移动点移动,确定所述第一移动点距第一航点的第一距离,所述第二移动点距所述第二航点的第二距离,第三移动点与所述第一移动点之间的第三距离;
[0028]
在所述第一移动点、所述第二移动点以及所述第三移动点的移动过程中,保持所述第一航点和所述曲线定位点之间的距离与所述第一距离的第一比值、所述第二航点和所述曲线定位点之间的距离与所述第二距离的第二比值、以及所述第一移动点和所述第二移动点之间的距离与所述第三距离的第三比值相等;
[0029]
在第一移动点移动至所述曲线定位点时,停止所述第一移动点、所述第二移动点、以及所述第三移动点的移动,并将所述第三移动点的移动轨迹确定为目标曲线。
[0030]
第二方面、提供了一种控制飞行器航行的装置,所述装置包括:
[0031]
获取模块,用于将目标飞行器的航点序列设置为基准航点序列,在所述基准航点序列中,获取第二个航点,作为基准航点,其中,所述航点序列包括多个按航行顺序排列的航点;
[0032]
添加模块,用于确定所述基准航点的转向角,如果所述转向角大于角度阈值,则基于所述基准航点、在所述基准航点序列中与所述基准航点相邻的两个航点、所述转向角和所述角度阈值,在所述基准航点序列中的所述两个航点之间添加至少一个航点,将添加航点后的基准航点序列,设置为基准航点序列,如果所述转向角小于或等于角度阈值,则保持所述基准航点序列不变;
[0033]
判断模块,用于如果基准航点不是所述基准航点序列中的倒数第二个航点,则在所述基准航点序列中,将所述基准航点的下一个航点,设置为基准航点,转至执行所述确定所述基准航点的转向角;如果基准航点是所述基准航点序列中的倒数第二个航点,则基于所述基准航点序列,控制所述目标飞行器航行。
[0034]
可选的,所述添加模块,用于:
[0035]
确定过所述基准航点以及与所述基准航点相邻的两个航点的目标曲线;
[0036]
基于所述转向角和所述角度阈值,确定在所述两个航点之间添加航点的目标数目;
[0037]
在所述目标曲线上均匀的选取所述目标数目个航点;
[0038]
确定所述两个航点中在所述基准航点序列中相对靠前的第一航点,基于选取的各航点与所述第一航点在所述目标曲线上的距离、以及所述基准航点与所述第一航点在所述
目标曲线上的距离,将所述选取的各航点依次添加到所述基准航点序列中的所述两个航点之间。
[0039]
可选的,所述添加模块,用于:
[0040]
确定所述转向角和所述角度阈值的目标比值;
[0041]
基于目标比值以及预先设置的比值与数目的对应关系,确定在所述两个航点之间添加航点的目标数目。
[0042]
可选的,所述添加模块,用于:
[0043]
基于如下方程组确定曲线定位点,所述曲线定位点是用于确定所述目标曲线的参考点;
[0044][0045]
其中,x0、y0为曲线定位点的坐标,x1、y1为所述基准航点的坐标,x2、y2为所述第一航点的坐标,x3、y3为所述两个航点中在所述基准航点序列中相对靠后的第二航点的坐标,x4、y4为过所述基准航点的目标直线与第一线段的第一交点的坐标,x5、y5为所述目标直线与第二线段的第二交点的坐标,其中,所述第一线段的两个端点分别为所述第一航点和所述曲线定位点,所述第二线段的两个端点分别为所述第二航点和所述曲线定位点;
[0046]
基于所述曲线定位点、所述第一航点、所述第二航点确定所述目标曲线。
[0047]
可选的,所述添加模块,用于:
[0048]
在所述第一线段上选取第一移动点,其中,第一移动点的初始位置与所述第一航点的航点位置相同,在所述第二线段上选取第二移动点,其中,第二移动点的初始位置与所述曲线定位点的位置相同,在所述第三线段上选取第三移动点,其中,所述第三线段的两个端点分别为所述第一移动点和所述第二移动点,所述第三移动点的初始位置与所述第一移动点的初始位置相同;
[0049]
分别控制所述第一移动点向所述曲线定位点移动,所述第二移动点向所述第二航
点移动,所述第三移动点向所述第二移动点移动,确定所述第一移动点距第一航点的第一距离,所述第二移动点距所述第二航点的第二距离,第三移动点与所述第一移动点之间的第三距离;
[0050]
在所述第一移动点、所述第二移动点以及所述第三移动点的移动过程中,保持所述第一航点和所述曲线定位点之间的距离与所述第一距离的第一比值、所述第二航点和所述曲线定位点之间的距离与所述第二距离的第二比值、以及所述第一移动点和所述第二移动点之间的距离与所述第三距离的第三比值相等;
[0051]
在第一移动点移动至所述曲线定位点时,停止所述第一移动点、所述第二移动点、以及所述第三移动点的移动,并将所述第三移动点的移动轨迹确定为目标曲线。
[0052]
再一方面,提供了一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述的控制飞行器航行的方法所执行的操作。
[0053]
再一方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的控制飞行器航行的方法所执行的操作。
[0054]
本技术实施例提供的技术方案带来的有益效果是:
[0055]
本技术提供的控制飞行器航行的方法,可以依次确定航行数据中的多个航点对应的转向角是否大于角度阈值,如果存在对应的转向角大于角度阈值的航点,则可以在该航点相邻的两个航点之间添加航点,进而降低该航点对应的转向角。可见采用本技术,能够使各航点对应的转向角小于设置的角度阈值,从而可以避免飞行器在航行的过程中因转向角过大而出现翻转等危险情况,提高了飞行器在航行过程中的安全性。
附图说明
[0056]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0057]
图1是本技术实施例提供的控制飞行器航行的方法流程图;
[0058]
图2是本技术实施例提供的控制飞行器航行的方法示意图;
[0059]
图3是本技术实施例提供的控制飞行器航行的方法示意图;
[0060]
图4是本技术实施例提供的控制飞行器航行的方法流程图;
[0061]
图5是本技术实施例提供的控制飞行器航行的方法示意图;
[0062]
图6是本技术实施例提供的控制飞行器航行的方法示意图;
[0063]
图7是本技术实施例提供的控制飞行器航行的方法示意图;
[0064]
图8是本技术实施例提供的控制飞行器航行的方法示意图;
[0065]
图9是本技术实施例提供的控制飞行器航行的装置结构示意图;
[0066]
图10是本技术实施例提供的一种计算机设备结构示意图。
具体实施方式
[0067]
为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
[0068]
本技术提供的控制飞行器航行的方法可以由终端实现,该终端可以具备处理器和存储器,其中,存储器可以存储有实现本技术提供的控制飞行器航行的方法对应的执行程序和执行数据,处理器可以根据存储器中的存储的执行程序对执行数据进行处理,以实现本技术提供的控制飞行器航行的方法。该终端还可以具备显示装置和数据传输装置,其中,显示装置可以显示飞行器对应的航行地图等,数据传输装置可以与飞行器建立有线或无线连接,能够与飞行器传输数据。该终端可以是手机、平板电脑、智能穿戴设备、台式计算机、笔记本电脑等。
[0069]
在本技术中以飞行器为无人机,以终端为控制无人机飞行的控制设备为例对本技术提供的控制飞行器航行的方法进行说明。用户可以通过控制设备为无人机设置航线。例如控制设备具有可触控的显示屏,在显示屏中可以显示用户当前位置的地图图像,用户可以对地图图像进行放大缩小等操作,并且可以通过在地图图像上进行点击,为无人机设置航点,多个航点可以按照用户的点击顺序组成航点序列,得到无人机对应的航线。用户在控制设备上设置无人机的航线时,可以将对应的航点序列发送至无人机,无人机在接收到航点序列以及飞行指令后,可根据按照接收的航点序列进行飞行。其中,无人机在飞行过程中,可以获取自身的定位信息,即当前的飞行位置的经纬度,当无人机飞行至航点序列中任一航点对应的位置时,可以调整自身的飞行方向,朝向下一个航点的位置飞行。
[0070]
本技术提供的控制飞行器航行的方法,在用户对无人机设置航线后,可以对航线中的多个航点对应的转向角进行检测,如有存在对应的转向角大于预设的角度阈值的航点,可以在该航点在航点序列中相邻的两个航点之间添加一个或多个航点,进而降低无人机在该航点的转向角。可以避免无人机在飞行过程,由于转向角过大而出现翻转等危险情况,提高了无人机飞行的安全性。
[0071]
图1是本技术实施例提供的一种控制飞行器航行的方法流程图。参见图1,该实施例包括:
[0072]
步骤101、将目标飞行器的航点序列设置为基准航点序列,在基准航点序列中,获取第二个航点,作为基准航点。
[0073]
其中,航点序列包括多个按航行顺序排列的航点,该航行顺序可以是用户在设置航线时,点击设置各个航点的顺序。
[0074]
在实施中,用户在控制设备设置无人机的航线后,控制设备可以将航线对应的航点序列确定为基准航点序列,并将基准航点序列中第二个航点确定为基准航点。
[0075]
步骤102,确定基准航点的转向角。
[0076]
无人机在任一航点的转向角为,该航点的前一个航点与该航点连线的延长线和该航点与下一个航点的连线的夹角,其中,该航点的前一个航点和下一个航点可根据基准航点序列确定。
[0077]
在实施中,当在基准航点序列中确定基准航点后,可以确定无人机在飞行至基准航点的位置时对应的转向角。如可以获取基准航点的位置以及在基准航点序列中与基准航点相邻的两个航点的位置,根据基准航点的位置以及与之相邻的两个航点的位置,计算无
人机飞行至基准航点的位置时对应的转向角。如图2所示,与基准航点相邻的两个航点分别为航点a和航点c,则基准航点b对应的转向角可以为∠b。
[0078]
一般航点的位置可以通过经纬度表示,不过经纬度并不便于直接计算航点对应的转向角。所以在计算转向角之前可以先将各个航点的位置由经纬度转化为二维坐标系中的坐标。相应的处理可以如下:
[0079]
可以将各个航点的位置由经纬度转为弧度制坐标,并选择其中的一个航点的位置对应的弧度制坐标确定为参考坐标点,将选取的参考坐标点作为二维坐标系中的原点。例如可以选取在航点序列上第一个航点对应的弧度制坐标作为参考坐标点的坐标。例如该参考坐标点可以为(ref_lat,ref_lon),设地球的半径常量为radius_earth,则对于任何一个待转换的弧度制坐标(lat,lon)在二维坐标系中对应的坐标值(x,y)可分别表示为:
[0080]
x=radius_earth*(lat

ref_lat)
[0081]
y=radius_earth*cos(ref_lat)*(lon

ref_lon)
[0082]
如此,可以得到每个航点在二维坐标系中的坐标值。对于基准航点的转向角,可根据基准航点、与基准航点相邻的两个航点分别在二维坐标系中的坐标值计算。如下:
[0083]
根据基准航点与基准航点相邻的两个航点在二维坐标系中的坐标值,分别计算基准航点与基准航点相邻的两个航点分别组成的向量。然后可以根据向量公式计算两个向量之间的夹角余弦值,如下:
[0084][0085]
其中,向量a为基准航点在基准航点序列中对应的前一个航点指向基准航点的向量,向量b为基准航点指向基准航点在基准航点序列中对应的下一个航点的向量。如图2所示,向量a可以是航点a指向基准航点b的向量,向量b可是基准航点b指向航点c的向量。在计算出两个向量的夹角余弦值后,进而可以确定两个向量之间的夹角。其中,两个向量之间的夹角即为无人机在基准航点的转向角。
[0086]
步骤103、如果转向角大于角度阈值,则基于基准航点、在基准航点序列中与基准航点相邻的两个航点、转向角和角度阈值,在基准航点序列中的两个航点之间添加至少一个航点,将添加航点后的基准航点序列,设置为基准航点序列,如果转向角小于或等于角度阈值,则保持基准航点序列不变。
[0087]
其中,角度阈值可以由技术人员预先设置,例如可以根据无人机的飞行性能和技术人员的经验进行设置,例如当无人机的转向角大于某个角度时,就会有一定的几率出现翻转等危险情况,则可以将该角度的值设置为角度阈值。
[0088]
在实施中,如果基准航点的转向角大于角度阈值时,则可以在基准航点序列中的与基准航点相邻的两个航点之间添加航点,添加的航点可以在一定程度上分担无人机在基准航点的转向角,进而减小无人机在基准航点的转向角。如图3所示,图3中的航点b可以为基准航点,航点a、c为航点b相邻的两个航点,通过在航点a与航点c之间添加航点d、e,可以使无人机在飞行至航点b之前预先在添加的航点d进行一次转向,从而可以减小无人机在航点b的转向角;通过在航点c与航点b之间添加航点e,可以使无人机在航点b转向至航点c之前,先转向至添加的航点e,当飞行至添加的航点e时,再控制无人机转向至航点c,也可以减小无人机在航点b的转向角。
[0089]
其中,此处先不对在基准航点序列中的两个航点之间添加航点的处理进行详细介绍。添加的航点的位置,可以根据基准航点以及与基准航点相邻的两个航点确定,添加航点的个数可以根据无人机在基准航点的转向角与设置的角度阈值,或者还可以根据与基准航点相邻的两个航点之间的距离确定。在确定添加的航点后,可以将对应的航点添加到基准航点序列中,然后将添加航点后的基准航点序列,设置为基准航点序列。
[0090]
如果转向角小于或等于角度阈值,可以确定当前基准航点的转向角在设置的角度阈值内,无人机在飞过该基准航点出现翻转的可能性不大,可以保持当前基准航点序列不变。
[0091]
步骤104、如果基准航点不是基准航点序列中的倒数第二个航点,则在基准航点序列中,将基准航点的下一个航点,设置为基准航点,转至执行确定基准航点的转向角,如果基准航点是基准航点序列中的倒数第二个航点,则基于基准航点序列,控制目标飞行器航行。
[0092]
在实施中,在基准航点序列中添加航点得到新的基准航点序列后,或者在确定无人机在基准航点的转向角小于角度阈值后,可以确定当前的基准航点是否为基准航点序列中的倒数第二个航点。如果基准航点不是基准航点序列中的倒数第二个航点,则说明当前在基准航点之后,仍存在需要无人机转向的航点。因此可以将基准航点的下一个航点设置为基准航点,并转至执行步骤102。而如果确定基准航点已经是基准航点序列中的倒数第二个航点,也就是基准航点对应的下一个航点为无人机在航线上的最后一个航点,无需再进行转向的操作。因此可以将当前的基准航点序列,确定为控制无人机飞行的航点序列,可以根据当前的基准航点序列,控制无人机飞行。
[0093]
本技术提供的控制飞行器航行的方法,可以依次确定航行数据中的多个航点对应的转向角是否大于角度阈值,如果存在对应的转向角大于角度阈值的航点,则可以在该航点相邻的两个航点之间添加航点,进而降低该航点对应的转向角。可见采用本技术,能够使各航点对应的转向角小于设置的角度阈值,从而可以避免飞行器在航行的过程中因转向角过大而出现翻转等危险情况,提高了飞行器在航行过程中的安全性。
[0094]
图4是本技术实施例提供的一种控制飞行器航行的方法流程图。该方法可用于在基准航点序列中的两个航点之间添加至少一个航点,参见图4,该方法包括:
[0095]
步骤401、确定过基准航点以及与基准航点相邻的两个航点的目标曲线。
[0096]
在实施中,可以确定一条过基准航点、在基准航点序列中与基准航点相邻的两个航点的目标曲线。例如该目标曲线可以是过基准航点、与基准航点相邻的两个航点的圆弧,或者可以是通过其他确定曲线的方式确定的平滑曲线等。
[0097]
步骤402、基于转向角和角度阈值,确定在两个航点之间添加航点的目标数目。
[0098]
如图5所示,在曲线上选取的航点越密集,则各航点对应的转向角就越小,不过选取的航点越多,无人机在飞行时需要处理的数据量也就越大。所以在本技术中提供了一种确定在曲线上选取航点个数的方法,可以通过无人机在基准航点的转向角以及技术人员设置的角度阈值,确定在基准航点相邻的两个航点之间添加航点的目标数目。
[0099]
可选的,可以确定转向角和角度阈值的目标比值,基于目标比值以及预先设置的比值与数目的对应关系,确定在两个航点之间添加航点的目标数目。
[0100]
由图5可知,添加的航点越多,各航点的转向角就越小,因此当基准航点的转向角
较大时,需要在与基准航点相邻的两个航点之间添加更多的航点,才能使基准航点对应的转向角小于预设的角度阈值。所以技术人员可以预先设置转向角与角度阈值的角度比值与添加航点数目的对应关系。例如,对应关系可如下表一所示。
[0101][0102]
表一
[0103]
在确定基准航点的转向角与角度阈值的目标比值后,可以根据预设的对应关系,确定在基准航点相邻的两个航点之间添加航点的目标数目。另外,需要说明的是,表一中的对应关系仅是一种示例性的说明,具体对应关系可由技术人员根据经验和无人机的飞行性能设定。
[0104]
步骤403、在目标曲线上均匀的选取目标数目个航点。
[0105]
在实施中,在确定目标曲线以及添加航点的目标数目后,则可以在确定的目标曲线均匀的选取目标数目个航点。例如,可以确定目标曲线的长度,然后根据目标数目和目标曲线的长度,对目标曲线进行均匀切分,其中每个切分点的位置即为选取的航点的位置。然后可以确定选取的航点的坐标,并按照步骤102中弧度制坐标和二维坐标系中对应的坐标值的转换公式,确定航点的弧度制坐标,然后再将航点的弧度制坐标转换为经纬度,得到选取的各航点的位置。
[0106]
步骤404、确定两个航点中在基准航点序列中相对靠前的第一航点,基于选取的各航点与第一航点在目标曲线上的距离、以及基准航点与第一航点在目标曲线上的距离,将选取的各航点依次添加到基准航点序列中的两个航点之间。
[0107]
在实施中,当确定添加到基准航点序列中的航点对应的位置后,还可以确定添加的各个航点在基准航点序列中的顺序。可以先确定两个航点中在基准航点序列中相对靠前的第一航点,并分别确定待添加到基准航点序列中的各个航点与第一航点在目标曲线上的距离、以及基准航点与第一航点在目标曲线上的距离。对于对应的距离小于基准航点与第一航点在目标曲线上的距离的各航点,可以按照对应的距离从小到大的顺序,将各航点添加到基准航点序列中第一航点和基准航点之间;对于对应的距离大于基准航点与第一航点在目标曲线上的距离的各航点,可以按照对应的距离从小到大的顺序,将各航点添加到基准航点序列中基准航点和第二航点之间,其中,第二航点为与基准航点相邻的两个航点中在基准航点序列中相对靠后的航点。如图6所示,在目标曲线上分别选取了航点d、航点e、航点f。由图6可知航点d与第一航点a的距离ad小于航点e与第一航点a的距离ae,距离ae大于第一航点a与基准航点b的距离ab,且小于航点f与第一航点a的距离af。在将航点d、航点e、航点f添加到基准航点序列后,在基准航点序列中的顺序可以为第一航点a、航点d、基准航点b、航点e、航点f、第二航点c。
[0108]
可选的,本技术还提供了一种确定曲线的方法,采用该方法可以通过三个参考点
唯一的确定一条曲线,其中,在这三个参考点中存在一个参考点在另外两个参考点连线的中垂线上,由三个参考点确定的曲线经过另外两个参考点。对于在另外两个参考点连线的中垂线上的参考点,在本技术中还可称为曲线定位点。例如三个参考点可分别为图7中的参考点a、参考点b与参考点c,其中,参考点b位于参考点a与参考点c连线的中垂线上(图中未示出)。如图7所示,对应通过三个参考点确定曲线的方法包括:
[0109]
在线段ab中选取一个移动点x,在线段bc中选取一个移动点y,其中,x的初始位置为参考点a的位置,y的初始位置为参考点b的位置。然后可使移动点x沿着线段ab向参考点b运动,可使移动点y沿着线段bc向参考点c运动。在移动的过程中,需要线段ax和线段ab的长度比值一直与线段by和线段bc的长度比值相等。同时可连接移动点x和移动点y,在线段xy中选取移动点z,移动点z的初始位置可以为参考点a的位置。在移动点x、y、z移动的过程中,保持线段ax和线段ab的长度比值、线段by和线段bc的长度比值以及线段xz与线段xy的长度比值相等。其中,图7中分别展示了移动点x分别移动到a、b、c位置时,对应的移动点y的位置(图7中的d、e、f位置)以及对应的移动点z的位置(图7中的g、h、i位置)。其中,z的移动轨迹即为由三个参考点确定的一条曲线s,且参考点a与参考点c连线的中垂线为该曲线s的对称轴。
[0110]
基于上述确定曲线的方法,确定过基准航点以及与基准航点相邻的两个航点的目标曲线的处理如下:
[0111]
可以将基准航点相邻的两个航点确定为三个参考点中的位于确定的曲线上的两个参考点,即图7中的参考点a和参考点c。基准航点是基准航点相邻的两个航点与另一未知的曲线定位点以图7中所示的方法确定的目标曲线上的一点。现在可以根据已知条件(与基准航点相邻的两个航点、基准航点为目标曲线上的一点、以及基准航点相邻的两个航点的连线为目标曲线的对称轴)确定曲线定位点的位置。然后根据求得的曲线定位点与基准航点相邻的两个航点,确定目标曲线。其中,可以根据如下方程组计算曲线定位点的坐标(x0,y0)。
[0112][0113]
如图8所示,其中,x0、y0为曲线定位点的坐标,x1、y1为基准航点的坐标,x2、y2为两个航点中在基准航点序列中相对靠前的第一航点的坐标,x3、y3为两个航点中在基准航点序列中相对靠后的第二航点的坐标,x4、y4为过基准航点的目标直线与第一线段的第一交点的坐标,x5、y5为目标直线与第二线段的第二交点的坐标,其中,第一线段的两个端点分别为第一航点和曲线定位点,第二线段的两个端点分别为第二航点和曲线定位点。
[0114]
方程组中前两个方程用于表示,第一航点和第一交点之间的第一距离与第一航点和曲线定位点的之间的第二距离的比值,等于,曲线定位点和第二交点之间的第三距离与曲线定位点和第二航点的之间的第四距离的比值,等于,第一交点和第三移动点之间的第五距离与第一交点和第二交点的之间的第六距离的比值。
[0115]
方程组中第三个方程用于表示,第一交点在第一航点与曲线定位点的连线上;方程组中第四个方程用于表示,第二交点在第二航点与曲线定位点的连线上;方程组中第五个方程用于表示,基准航点在第一交点和第二交点的连线上;方程组中第六个方程用于表示,曲线定位点在第一航点与第二航点连线的中垂线上。
[0116]
在通过以上方程组得到曲线定位点的坐标值后,可以根据曲线定位点和第一航点、第二航点确定对应的目标曲线,相应的处理如下:
[0117]
(1)在第一线段上选取第一移动点,其中,第一移动点的初始位置与第一航点的航点位置相同,在第二线段上选取第二移动点,其中,第二移动点的初始位置与曲线定位点的位置相同,在第三线段上选取第三移动点,其中,第三线段的两个端点分别为第一移动点和第二移动点,第三移动点的初始位置与第一移动点的初始位置相同。
[0118]
(2)分别控制第一移动点向曲线定位点移动,第二移动点向第二航点移动,第三移动点向第二移动点移动,确定第一移动点距第一航点的第一距离,第二移动点距第二航点的第二距离,第三移动点与第一移动点之间的第三距离。
[0119]
(3)在第一移动点、第二移动点以及第三移动点的移动过程中,保持第一航点和曲线定位点之间的距离与第一距离的第一比值、第二航点和曲线定位点之间的距离与第二距离的第二比值、以及第一移动点和第二移动点之间的距离与第三距离的第三比值相等。
[0120]
(4)在第一移动点移动至曲线定位点时,停止第一移动点、第二移动点、以及第三移动点的移动,并将第三移动点的移动轨迹确定为目标曲线。
[0121]
可选的,对应上述基于基准航点和与基准航点相邻的两个航点确定目标曲线的方式,本技术还提供了一种在目标曲线上确定航点的方法,如下:
[0122]
由图7可知目标曲线为移动点z的移动轨迹,并且移动点z满足线段xz与线段xy的距离比值,与线段ax和线段ab的距离比值以及线段by和线段bc的距离比值相等。移动点x是在线段ab上进行移动,可见线段ax和线段ab的比值k的范围为(0,1)。也就是说,线段xz与线段xy的比值k∈(0,1)。所以可以根据k的取值,确定移动点x在曲线上的位置,因此也可通过k的取值在曲线上选取待添加点,并将待添加点对应的位置确定为添加在基准航点相邻的两个航点之间的航点。例如,可以根据确定的在基准航点相邻的两个航点之间添加航点的目标数目,在0到1范围内,均匀的选取目标数目个数值,将对应的数值确定为k的不同取值,然后根据k对应的各个取值,在目标曲线中确定添加点的位置。例如,当确定添加在基准航点相邻的两个航点之间的航点的目标数目为3时,则可以分别在确定k的取值可分别为0.25、0.5、0.75,然后可以根据k的值分别0.25、0.5、0.75时,确定移动点z的位置,并将确定的位置作为待添加的航点的位置。
[0123]
本技术提供的控制飞行器航行的方法,可以依次确定航行数据中的多个航点对应的转向角是否大于角度阈值,如果存在对应的转向角大于角度阈值的航点,则可以在该航点相邻的两个航点之间添加航点,进而降低该航点对应的转向角。可见采用本技术,能够使各航点对应的转向角小于设置的角度阈值,从而可以避免飞行器在航行的过程中因转向角过大而出现翻转等危险情况,提高了飞行器在航行过程中的安全性。
[0124]
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
[0125]
图9是本技术实施例提供的一种控制飞行器航行的装置,该装置可以是上述实施例中的终端,如图9所示,该装置包括:
[0126]
获取模块910,用于将目标飞行器的航点序列设置为基准航点序列,在所述基准航点序列中,获取第二个航点,作为基准航点,其中,所述航点序列包括多个按航行顺序排列的航点;
[0127]
添加模块920,用于确定所述基准航点的转向角,如果所述转向角大于角度阈值,则基于所述基准航点、在所述基准航点序列中与所述基准航点相邻的两个航点、所述转向角和所述角度阈值,在所述基准航点序列中的所述两个航点之间添加至少一个航点,将添加航点后的基准航点序列,设置为基准航点序列,如果所述转向角小于或等于角度阈值,则保持所述基准航点序列不变;
[0128]
判断模块930,用于如果基准航点不是所述基准航点序列中的倒数第二个航点,则在所述基准航点序列中,将所述基准航点的下一个航点,设置为基准航点,转至执行所述确定所述基准航点的转向角;如果基准航点是所述基准航点序列中的倒数第二个航点,则基于所述基准航点序列,控制所述目标飞行器航行。
[0129]
可选的,所述添加模块920,用于:
[0130]
确定过所述基准航点以及与所述基准航点相邻的两个航点的目标曲线;
[0131]
基于所述转向角和所述角度阈值,确定在所述两个航点之间添加航点的目标数目;
[0132]
在所述目标曲线上均匀的选取所述目标数目个航点;
[0133]
确定所述两个航点中在所述基准航点序列中相对靠前的第一航点,基于选取的各航点与所述第一航点在所述目标曲线上的距离、以及所述基准航点与所述第一航点在所述目标曲线上的距离,将所述选取的各航点添加到所述基准航点序列中的所述两个航点之间。
[0134]
可选的,所述添加模块920,用于:
[0135]
确定所述转向角和所述角度阈值的目标比值;
[0136]
基于目标比值以及预先设置的比值与数目的对应关系,确定在所述两个航点之间添加航点的目标数目。
[0137]
可选的,所述添加模块920,用于:
[0138]
基于如下方程组确定曲线定位点,所述曲线定位点是用于确定所述目标曲线的参考点;
[0139][0140]
其中,x0、y0为曲线定位点的坐标,x1、y1为所述基准航点的坐标,x2、y2为所述第一航点的坐标,x3、y3为所述两个航点中在所述基准航点序列中相对靠后的第二航点的坐标,x4、y4为过所述基准航点的目标直线与第一线段的第一交点的坐标,x5、y5为所述目标直线与第二线段的第二交点的坐标,其中,所述第一线段的两个端点分别为所述第一航点和所述曲线定位点,所述第二线段的两个端点分别为所述第二航点和所述曲线定位点;
[0141]
基于所述曲线定位点、所述第一航点、所述第二航点确定所述目标曲线。
[0142]
可选的,所述添加模块920,用于:
[0143]
在所述第一线段上选取第一移动点,其中,第一移动点的初始位置与所述第一航点的航点位置相同,在所述第二线段上选取第二移动点,其中,第二移动点的初始位置与所述曲线定位点的位置相同,在所述第三线段上选取第三移动点,其中,所述第三线段的两个端点分别为所述第一移动点和所述第二移动点,所述第三移动点的初始位置与所述第一移动点的初始位置相同;
[0144]
分别控制所述第一移动点向所述曲线定位点移动,所述第二移动点向所述第二航点移动,所述第三移动点向所述第二移动点移动,确定所述第一移动点距第一航点的第一距离,所述第二移动点距所述第二航点的第二距离,第三移动点与所述第一移动点之间的第三距离;
[0145]
在所述第一移动点、所述第二移动点以及所述第三移动点的移动过程中,保持所述第一航点和所述曲线定位点之间的距离与所述第一距离的第一比值、所述第二航点和所述曲线定位点之间的距离与所述第二距离的第二比值、以及所述第一移动点和所述第二移动点之间的距离与所述第三距离的第三比值相等;
[0146]
在第一移动点移动至所述曲线定位点时,停止所述第一移动点、所述第二移动点、以及所述第三移动点的移动,并将所述第三移动点的移动轨迹确定为目标曲线。
[0147]
需要说明的是:上述实施例提供的控制飞行器航行的装置在控制飞行器航行时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的控制飞行器航行的装置与控制飞行器航行的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0148]
图10示出了本技术一个示例性实施例提供的计算机设备1000的结构框图。该计算机设备1000可以是上述实施例中的终端,比如:智能手机、平板电脑、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备1000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
[0149]
通常,计算机设备1000包括有:处理器1001和存储器1002。
[0150]
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0151]
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可
以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本技术中方法实施例提供的控制飞行器航行的方法。
[0152]
在一些实施例中,计算机设备1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头组件1006、音频电路1007、定位组件1008和电源1009中的至少一种。
[0153]
外围设备接口1003可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0154]
射频电路1004用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
[0155]
显示屏1005用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置在计算机设备1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在计算机设备1000的不同表面或呈折叠设计;在另一些实施例中,显示屏1005可以是柔性显示屏,设置在计算机设备1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light

emitting diode,有机发光二极管)等材质制备。
[0156]
摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光
灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
[0157]
音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。
[0158]
定位组件1008用于定位计算机设备1000的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件1008可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
[0159]
电源1009用于为计算机设备1000中的各个组件进行供电。电源1009可以是交流电、直流电、一次性电池或可充电电池。当电源1009包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
[0160]
在一些实施例中,计算机设备1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、指纹传感器1014、光学传感器1015以及接近传感器1016。
[0161]
加速度传感器1011可以检测以计算机设备1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。
[0162]
陀螺仪传感器1012可以检测计算机设备1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对计算机设备1000的3d动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
[0163]
压力传感器1013可以设置在计算机设备1000的侧边框和/或显示屏1005的下层。当压力传感器1013设置在计算机设备1000的侧边框时,可以检测用户对计算机设备1000的握持信号,由处理器1001根据压力传感器1013采集的握持信号进行左右手识别或快捷操作。当压力传感器1013设置在显示屏1005的下层时,由处理器1001根据用户对显示屏1005的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
[0164]
指纹传感器1014用于采集用户的指纹,由处理器1001根据指纹传感器1014采集到的指纹识别用户的身份,或者,由指纹传感器1014根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1001授权该用户执行相关的敏感操作,该敏感操
作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1014可以被设置在计算机设备1000的正面、背面或侧面。当计算机设备1000上设置有物理按键或厂商logo时,指纹传感器1014可以与物理按键或厂商logo集成在一起。
[0165]
光学传感器1015用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1015采集的环境光强度,控制显示屏1005的显示亮度。具体地,当环境光强度较高时,调高显示屏1005的显示亮度;当环境光强度较低时,调低显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1015采集的环境光强度,动态调整摄像头组件1006的拍摄参数。
[0166]
接近传感器1016,也称距离传感器,通常设置在计算机设备1000的前面板。接近传感器1016用于采集用户与计算机设备1000的正面之间的距离。在一个实施例中,当接近传感器1016检测到用户与计算机设备1000的正面之间的距离逐渐变小时,由处理器1001控制显示屏1005从亮屏状态切换为息屏状态;当接近传感器1016检测到用户与计算机设备1000的正面之间的距离逐渐变大时,由处理器1001控制显示屏1005从息屏状态切换为亮屏状态。
[0167]
本领域技术人员可以理解,图10中示出的结构并不构成对计算机设备1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0168]
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中控制飞行器航行方法。该计算机可读存储介质可以是非暂态的。例如,所述计算机可读存储介质可以是rom(read

only memory,只读存储器)、ram(random access memory,随机存取存储器)、磁带、软盘和光数据存储设备等。
[0169]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0170]
以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜