CN101251385B - 一种应用在无人机上的航点实时装订与处理方法 - Google Patents
一种应用在无人机上的航点实时装订与处理方法 Download PDFInfo
- Publication number
- CN101251385B CN101251385B CN2008101023274A CN200810102327A CN101251385B CN 101251385 B CN101251385 B CN 101251385B CN 2008101023274 A CN2008101023274 A CN 2008101023274A CN 200810102327 A CN200810102327 A CN 200810102327A CN 101251385 B CN101251385 B CN 101251385B
- Authority
- CN
- China
- Prior art keywords
- destination
- period
- waypoint
- inject
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Navigation (AREA)
Abstract
本发明公开了一种应用在无人机上的航点实时装订与处理方法,利用数组与链表相结合的存储方式,以航点结构变量为基本数据元素,实现多条航线上大量航点的实时规划操作,定义航点结构类型二维数组,数组的每个元素对应一个航点,第一维对应线号,第二维对应点号;将数组中每条航线都构造成一个双向链表,链表中结点的先后顺序对应航线中航点的先后顺序;可实现的航点操作有:航点装订、航点修改、航点插入、航点查询、航点删除、航线查询、设置起点、航点推移等。利用本发明能满足目前对无人机的航线航点的各种实时操作需求;程序实现简单;静态分配航线存储空间,提高了对航点操作的可靠性与快捷性。
Description
技术领域
本发明属于航空自动化控制领域,具体涉及一种应用在无人机上的大量航点实时可靠装订与处理方法。
背景技术
无人机在执行任务前,通常预先装订航线。飞机起飞后,先从设置的起点切入航线,然后沿着航线飞行。飞行过程中,可能任务发生变化,需重新装订新航线,并设置起点将飞机快速引导到新航线。或者,需对飞行中的航线进行调整,比如航点修改、航点删除、航点插入等。有时,也需对机上的航线或航点进行核对和确认,比如航点查询、航线查询。
对于航时长、航程大的无人机,需要多条航线大量航点的装订和实时可靠的操作。航点数据本身也很复杂,包括航点经度、航点纬度、航点高度位置信息及其它程控信息。而现有的采用数组或单一的链表方式进行的航点装订和处理方法难以满足大量航点的快速、实时、准确及可靠的操作。
发明内容
本发明提供一种应用在无人机上的大量航点实时装订与处理方法,利用数组与链表相结合的存储方式,以航点结构变量为基本数据元素,集合数组、链表、结构类型的优点,从而实现大量航点实时、可靠、灵活快速的装订与处理。在机上软件中,每一命令操作只用短短几条语句,大大简化程序实现,也提高了执行效率。
本发明的大量航点实时可靠装订与处理方法可地面遥控装订多条航线,可用于飞行前静态预规划和实时可靠的动态规划。静态预规划是在地面做航线规划操作,动态规划是在机上飞行控制程序已经启动、飞机已沿航线飞行的情况下进行航线规划操作。静态预规划和动态规划的航点装订、航点修改、航点删除、航点插入、航点查询、航线查询、设置起点等操作相同。
本发明所述的一种应用在无人机上的航点实时装订与处理方法首先定义航点结构类型,然后定义航点结构类型的二维数组,之后再进行航点装订和处理。
所定义的航点结构类型包括航点的线号、点号、前向指针、后向指针、航点经度、航点纬度、航点高度等。所述的结构类型二维数组为[m+1,n+1]。程序运行初始化时为航线数组静态分配存储空间,航线数组中包含每个可能的航点分配固定内存空间,可以为无人机上飞控计算机准确可靠存取数据提供保障。当地面遥控发送航点装订指令时,伴随该装订指令的注入数据包含WAY_POINT结构中的全部航点信息。根据注入线号、注入点号,直接将航点信息解码后存放到数组相应位置。
应用本发明提供的航点处理方法,可以方便快速对航线进行航点装订、航点修改、航点删除、航点插入、航点查询、航线查询、设置起点等操作。
本发明的优点在于:
1)能满足无人机对航线航点的各种实时操作需求;
2)所述的航点处理方法实现简单,每个操作只需执行几条语句;
3)静态分配航线存储空间,提高了对航点操作的可靠性与快捷性。
附图说明
图1为航点在数组中的存储示意图;
图2为航线链表中的单一结点示意图;
图3为大量航点装订后形成的航线链表示意图;
图4a为航点修改前的链表状态示意图;
图4b为删除某一航点i的链表示意图;
图4c为在航点i前插入一新航点的链表示意图;
图5a为某一航线上由航点形成一链表的实例示意图;
图5b为在图5a所示的航点4前插入一新航点的实例示意图。
具体实施方式
下面结合附图对本发明的一种应用在无人机上的航点实时装订与处理方法进行详细说明。
本发明是一种应用在无人机上的大量航点实时装订与处理方法,通过定义航点结构类型及航点结构类型二维数组,航点装订以及对航点修改、航点删除、航点插入、航点查询、航线查询、设置起点的处理操作,实现了无人机对航线航点的各种实时操作需求。
本发明首先定义一个航点结构类型WAY_POINT,所述的航点结构类型WAY_POINT包括前向指针、后向指针、线号、点号、装订标志、经度、纬度、高度等信息,所述的航点结构类型定义代码如下:
typedef struct{
WAY_POINT*FPoint; //前向指针
WAY_POINT*BPoint;//后向指针
int LineN; //线号
int PointN; //点号
BYTE Bind; //装订标志,0为未装订,1为已装订
double L; //经度
double B; //纬度
float H; //高度
DWORD ProCtrlWord; //程控字
}WAY_POINT;
根据航点结构类型中所描述的信息,定义一个WAY_POINT类型的二维数组:WAY_POINT SkyWay[m+1][n+1];//m+1为最大航线数,n为每条航线的最大航点数。
在机上软件运行初始化时,将为航线存储分配连续线性内存空间,如图1所示。图1中,每条航线0、航线1……航线m上所装订的航点的线号0~m分别与该条航线0、航线1……航线m相对应;航点0、航点1……航点n对应着航点在链表中的位置。每个航点有唯一线号、点号,数组第一维下标为线号,数组第二维下标为点号。如果定义一个(m+1)×(n+1)的二维数组,那么机上最多能装m+1条航线,每条航线最多装有n个航点,则线号为0~m,点号为1~n,点号为0的位置存放链表头。其中m、n均为从0开始的整数。
图1中,航点i(0, a)表示航线0的航线链表中,第a个航点,其数组下标为(0,a),相应的该航点i(0, a)的线号为0、点号为a。数组第二维下标为0时,存放链表头,链表头的后向指针指向第一个航点。图2中结点的类型定义为WAY_POINT,图2中所示的每一个结点都有前向指针、后向指针和数据域,其中数据域包含航点位置信息及程控字;每一个结点的前向指针指向前一个航点,每一个结点的后向指针指向后一个结点。图1中每一个数据单元存放一个图2表示的结点。
当地面遥控发送航点装订指令时,伴随该装订指令的注入数据包含WAY_POINT结构中除装订标志外的全部航点信息。根据注入线号、注入点号,直接将航点信息解码后存放到数组相应位置。如果在某航线上装订的是第一个点(航点1),则航点1的前向指针指向链表头,链表头的后向指针指向该点。当装订该航线上第二个航点(航点2)时,航点2的前向指针指向航点1,航点1的后向指针指向航点2。依此类推,所有该航线上装订的航点连成图3所示的双向链表。然后可对航线上的航点进行航点修改、航点删除、航点插入、航点查询、航线查询的操作,也可对航线继续做航点装订操作。
对于在无人机上实时可靠装订的大量航点,可以进行如下的一些处理方法,包括:
1)航点修改
当地面遥控修改某个航点时,以注入线号和注入点号为数组下标,若该航点已装订,用注入航点信息更新该航点。
2)航点删除
当地面遥控删除某个航点时,以注入线号和注入点号为数组下标,若该航点已装订,将其航点信息清零,将其在链表中的前一结点与后一结点联接起来,这样该航点就被从链表中删除。举例如下:
图4a表示航线k上3个依次联接的点,航点i-1(k,a)、航点i(k,b)、航点i+1(k,c)。k为非负整数,k≤m;a、b、c为≤n的任意正整数。
图4b表示删除航点i(k,b)。如果要执行航点删除操作,删除航点i(k,b),直接将航点i-1(k,a)的后向指针修改指向航点i+1(k,c),航点i+1(k,c)的前向指针修改指向航点i-1(k,a)。这时航点i+1(k,c)的序号前移1,标识改为航点i(k,c),原来的航点i(k,b)被删除。
3)航点插入
当地面遥控插入某个航点时,以注入线号和注入点号为数组下标,首先判断该航点是否已装订,若已装订则不进行插入操作;若该航点未装订将注入航点信息存入相应位置。根据注入插入点号确定该点将在链表中的后一结点,将该点插入链表中后一结点前。举例如下:
依然以图4a所示的链表作为初始装订链表,图4c表示在航点i(k,b)前插入新航点。如果新插入点的是线号k,点号d(d为≤n的任意正整数),插入位置点号为b。那么,新插入点的序号变为i,即航点i(k,d);原航点i(k,b)、航点i+1(k,c)的序号后移,改为航点i+1(k,b)、航点i+2(k,c)。执行航点插入操作时,将新插入的航点i(k,d)的前向指针指向航点i-1(k,a),航点i(k,d)的后向指针指向航点i+1(k,b),而航点i-1(k,a)的后向指针修改指向航点i(k,d),航点i+1(k,b)的前向指针修改指向航点i(k,d)。
4)航点查询
当地面遥控查询某个航点时,以注入线号和注入点号为数组下标,若未装订该航点,则此次航点查询无效;若该航点已装订,直接取该点的航点信息编码后回报给地面。
5)航线查询
当地面遥控查询某条航线时,根据航线号,从航线链表头的后一点即第一个航点开始回报给地面,直到回报完航线上最后一个航点。
6)设置起点
当地面遥控设置起点时,以注入线号和注入点号为数组下标,若该航点已装订,直接取该点的航点信息更新到点信息,飞机就从当前点向新的到点切入航线;若该航点没有装订,则此次设置起点指令操作无效。所述的起点是飞机切入某航线的初始点,到点是指当前飞机的目标点。
7)航点推移
无人机在巡航过程中,如果是正航,直接对链表操作当前到点的后向结点将是后一到点;如果是返航,直接对链表操作当前到点的前向结点将是后一到点。
由于根据线号、点号索引,因此很容易定位航点在数组中的存放位置,航点修改、航点查询指令、设置起点指令可立即执行,不必对整条航线进行搜索。
此外,航线具有链表的存储结构,将数组中存储在不同数据单元的离散结点联接起来,很容易实现航点删除操作、航点插入操作、航线查询操作、以及飞行过程中的航点推移。使得本发明的大量航点实时装订和处理方法应用在无人机上时,可以方便无人机实时实现各种任务操作。
现以航点插入操作为例来具体说明本发明的航点处理方法。表1中列出了航线5上待装订航点的线号、点号及数组下标。当地面遥控装订表1中航点到航线5上,航线5上所有航点的线号为5,点号与数组第二维下标相同,机上将按对应数组下标值存放航点信息,并形成图5a所示链表。
表1
名称 | 序号 | 线号 | 点号 | 数组下标 |
航点1 | 1 | 5 | 3 | (5,3) |
航点2 | 2 | 5 | 9 | (5,9) |
航点3 | 3 | 5 | 5 | (5,5) |
航点4 | 4 | 5 | 2 | (5,2) |
航点5 | 5 | 5 | 18 | (5,18) |
航点6 | 6 | 5 | 20 | (5,20) |
图5a中数组的第二维下标为0的位置存放链表头,其余航点顺序装订形成航线5的链表。在执行航点插入操作时,图5a所示,在航线5中的航点4(5,2)前插入点号为13的航点,先将新插入点的航点信息存放到下标(5,13)的存储单元,再取下标(5,2)定位链表中的插入位置,按图4中插入操作将点(5,13)插入链表。那么从新插入点开始,后面的航点序号依次推移,新插入点为航点4(5,13),原航点4(5,2)及其之后的航点序号加1,形成一新的航线5链表,如图5b所示,航线5上的航点由原来的6个变成插入后的7个。
本发明中利用数组与链表相结合的存储方式,将复杂的航点信息封装成一个结点,使航点操作程序实现清晰简洁,又能满足大量航点实时装订或航线调整。
Claims (1)
1.一种应用在无人机上的航点实时装订与处理方法,其特征在于:首先定义航点结构类型WAY_POINT及航点结构类型二维数组[m+1,n+1],所述的航点结构类型WAY_POINT包括前向指针、后向指针、线号、点号、装订标志、经度、纬度、高度信息,每一个航点具有唯一的线号和点号,所述的二维数组[m+1,n+1]的第一个下标为线号,第二个下标为点号,点号为0的位置存放链表头;当地面遥控发送航点装订指令时,注入数据包含航点结构类型WAY_POINT中的前向指针、后向指针、线号、点号、经度、纬度、高度信息的航点信息,根据注入线号、注入点号,直接将航点信息解码后存放到数组相应位置,调整前向指针和后向指针使所装订的航线形成一个双向链表,然后能够对航线上的航点进行航点修改、航点删除、航点插入、航点查询、航线查询的操作,也能够对航线继续做航点装订操作;
具体为:
a)执行航点装订指令,根据线号、点号,无人机上将装订的航点信息放到数组中相应位置,形成一个航点的双向链表;执行航点修改指令,以注入线号和注入点号为数组下标,若该航点已装订,用注入航点信息更新该航点;
b)执行航点删除指令,以注入线号和注入点号为数组下标,若该航点已装订,将其航点信息清零,将其在双向链表中的前一结点与后一结点联接起来,这样该航点就被从双向链表中删除;
c)执行航点插入指令,以注入线号和注入点号为数组下标,首先判断该航点是否已经装订,若已装订则不进行插入操作,若该航点未装订,将注入航点信息存入相应位置,根据注入插入点的点号确定该航点将在双向链表中的后一结点,将该航点插入双向链表中后一结点前;
d)执行航点查询指令,以注入线号和注入点号为数组下标,若未装订该航点,则此次航点查询无效,若该航点已装订,直接取该航点的航点信息编码后回报给地面;
e)执行航线查询指令,根据航线号,从航线链表头的后一点开始回报给地面,直到回报完航线末点;
f)执行设置起点指令,以注入线号和注入点号为数组下标,若该航点已装订,直接取该航点的航点信息更新到点信息,无人机就从当前点向新的到点切入航线,若该航点没有装订,则此次设置起点指令操作无效;
g)执行航点推移指令,无人机在巡航过程中,如果是正航,直接对双向链表操作当前到点的后向结点将是后一到点,如果是返航,直接对双向链表操作当前到点的前向结点将是后一到点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101023274A CN101251385B (zh) | 2008-03-20 | 2008-03-20 | 一种应用在无人机上的航点实时装订与处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101023274A CN101251385B (zh) | 2008-03-20 | 2008-03-20 | 一种应用在无人机上的航点实时装订与处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101251385A CN101251385A (zh) | 2008-08-27 |
CN101251385B true CN101251385B (zh) | 2010-09-08 |
Family
ID=39954892
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101023274A Expired - Fee Related CN101251385B (zh) | 2008-03-20 | 2008-03-20 | 一种应用在无人机上的航点实时装订与处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101251385B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779154A (zh) * | 2012-05-25 | 2012-11-14 | 上海斐讯数据通信技术有限公司 | 数据库及其建立方法、数据检索方法 |
CN104914875A (zh) * | 2015-05-07 | 2015-09-16 | 余江 | 一种多飞行设备协同飞行的控制方法及控制装置 |
CN105425791B (zh) * | 2015-11-06 | 2019-01-29 | 武汉理工大学 | 一种基于视觉定位的群机器人控制系统及方法 |
CN105929847B (zh) * | 2016-06-24 | 2018-12-18 | 南京奇蛙智能科技有限公司 | 一种无人机跟随航点可靠性的判断方法 |
WO2018053742A1 (zh) * | 2016-09-22 | 2018-03-29 | 深圳市大疆创新科技有限公司 | 一种航点编辑方法、装置及地面飞行控制台 |
CN108521788B (zh) * | 2017-11-07 | 2022-02-25 | 深圳市大疆创新科技有限公司 | 生成模拟航线的方法、模拟飞行的方法、设备及存储介质 |
DE102018120010A1 (de) * | 2018-08-16 | 2020-02-20 | Autel Robotics Europe Gmbh | Routenanzeigeverfahren, -vorrichtung und -system, bodenstation und computerlesbares speichermedium |
CN109782805A (zh) * | 2019-01-04 | 2019-05-21 | 哈瓦国际航空技术(深圳)有限公司 | 激光雷达无人机规划航线的方法、装置、设备和存储介质 |
WO2021217303A1 (zh) * | 2020-04-26 | 2021-11-04 | 深圳市大疆创新科技有限公司 | 控制无人机的方法、装置和无人机 |
CN111752948A (zh) * | 2020-06-24 | 2020-10-09 | 深圳市道通智能航空技术有限公司 | 一种航点任务信息存储方法、读取方法及无人机 |
CN112215399A (zh) * | 2020-09-11 | 2021-01-12 | 中国航空工业集团公司成都飞机设计研究所 | 一种机载动态电子围栏的高确定数据结构设计方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201004174Y (zh) * | 2007-01-26 | 2008-01-09 | 青岛天骄无人机遥感技术有限公司 | 无人机地面监控系统 |
-
2008
- 2008-03-20 CN CN2008101023274A patent/CN101251385B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201004174Y (zh) * | 2007-01-26 | 2008-01-09 | 青岛天骄无人机遥感技术有限公司 | 无人机地面监控系统 |
Non-Patent Citations (4)
Title |
---|
张俊涛.无人直升机飞行仿真、任务轨迹规划软件设计与实现研究.中国优秀硕士学位论文全文数据库 2006年第10期.2006,(2006年第10期),38-50. * |
施建珍等.带头结点的双向链表算法讨论.现代计算机 177.2003,(177),66-68. * |
朱洋波等.航空遥感任务规划系统设计及航线设计方法研究.测绘通报 2007年第8期.2007,(2007年第8期),16-19. * |
耿国华等.数据结构-C语言描述.高等教育出版社,2005,54-56. * |
Also Published As
Publication number | Publication date |
---|---|
CN101251385A (zh) | 2008-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101251385B (zh) | 一种应用在无人机上的航点实时装订与处理方法 | |
US7272492B2 (en) | Path planning for mine countermeasures | |
CN105589471B (zh) | 无人机飞行轨迹绘制方法、装置以及系统 | |
CN101162149B (zh) | 一种联网车载导航终端实现远程快速更新地图导航数据的方法 | |
JP5017142B2 (ja) | 最適ルート探索装置、方法及びプログラム | |
JP6012777B2 (ja) | 経由地点設定装置及び経由地点設定プログラム | |
EP3040855B1 (en) | Updating navigational map data organized in lists | |
CN110083668B (zh) | 一种高精度地图的数据管理系统、管理方法、终端和存储介质 | |
CN102004852A (zh) | 一种机场场面航空器滑行路由自动解算方法 | |
CN103914385A (zh) | 面向安全苛刻系统并行测试的测试细则可视化动态构建方法 | |
Schulz | Timetable information and shortest paths. | |
CN104570787B (zh) | 用于影响控制器的控制程序的方法 | |
US11692846B2 (en) | Map presentation device | |
CN101526358A (zh) | 触控式导航装置及其方法 | |
US7296228B2 (en) | Document editing by blocks and groups | |
CN105430078B (zh) | 一种海量数据的分布式存储方法 | |
CN110647162B (zh) | 一种导游无人机路径规划方法、终端设备及存储介质 | |
CN103049324A (zh) | 一种基于优先级位图的AUTOSAR NvM读写任务的管理方法 | |
CN101630441A (zh) | 一种导航设备及其电子眼管理方法 | |
CN101319912A (zh) | 导航系统的客户端、服务端、及其进行地图更新的方法 | |
Corey et al. | Discrete event simulation of object movement and interactions | |
CN104634355A (zh) | 导航方法及导航设备 | |
CN103270392A (zh) | 具有基于xml路径语言重复的栏位排列机制的导航系统及其操作方法 | |
Eele et al. | Rapid updating for path-planning using nonlinear branch-and-bound | |
Almeida et al. | Optimization of Urban Semaphore Times Turning into JSSP. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100908 Termination date: 20120320 |