基于视觉的无人机控制方法、装置、电子设备和存储介质与流程

文档序号:33713790发布日期:2023-04-01 02:43阅读:47来源:国知局
基于视觉的无人机控制方法、装置、电子设备和存储介质与流程

1.本技术涉及基于视觉的无人机控制方法技术领域,具体而言,涉及基于视觉的无人机控制方法、装置、电子设备和存储介质。


背景技术:

2.无人机编队飞行是各国科研工作者一直以来就追求的技术。其关键技术问题,主要包括队形设计、气动耦合、队形的动态调整、航迹规划、信息互换以及编队飞行控制策略等问题,这正是各个无人机研发强国的研究热点。
3.现有技术中,多旋翼无人机编队多采用leader-follower编队策略。在该编队策略中,多数采用分布式信息交互或者集中式信息交互。无论何种交互方式,都需要在无干扰或者干扰弱的地方进行飞行,大大降低了无人机编队对环境的适应性。


技术实现要素:

4.有鉴于此,本技术实施例的目的在于提供基于视觉的无人机控制方法、装置、电子设备和存储介质,能够在通信拒止的情况下保持队形,继续飞行。
5.第一方面,本技术实施例提供了一种方法,包括:
6.获取与前机的双目测距距离和当前速度;
7.对所述双目测距距离进行滤波处理,得到滤波后的双目测距距离;
8.对所述当前速度进行滤波处理,得到滤波后的当前速度;
9.将所述滤波后的双目测距距离和所述当前速度输入到串级pid算法,得到期望姿态;
10.基于期望姿态进行飞行。
11.在上述实现过程中,当前的无人机不需要和前机之间进行通信交互,只需要基于自身测得的双目测距距离获取期望姿态,根据所述期望姿态进行无人机飞行的控制,能够使得无人机在通信较差的情况下保持队形。同时,对双目测距距离进行滤波,能够避免从机在飞行过程中存在明显的振荡和过冲现象。
12.进一步地,所述对所述双目测距距离进行滤波处理,得到滤波后的双目测距距离的步骤,包括:
13.根据所述双目测距距离获取出前一状态的双目测距距离;
14.根据所述双目测距距离获取前一状态的误差协方差;
15.根据所述前一状态的双目测距距离和前一状态的误差协方差获取增益系数;
16.根据增益系数和所述前一状态的双目测距距离获取所述滤波后的双目测距距离。
17.进一步地,所述对所述当前速度进行滤波处理,得到滤波后的当前速度的步骤,包括:
18.根据所述双目测距距离获取出前一状态的速度;
19.根据所述双目测距距离获取前一状态的误差协方差;
20.根据所述前一状态的当前速度和前一状态的误差协方差获取增益系数;
21.根据增益系数和所述前一状态的速度获取所述滤波后的当前速度。
22.进一步地,所述串级pid算法包括:外环回路和内环回路;
23.所述外环回路的输出为所述内环回路的输入值;
24.所述外环回路的输入为期望距离;
25.所述外环回路的反馈值为所述双目测距距离;
26.所述内环回路的反馈值为当前无人机的测量速度;
27.所述内环回路的输出为所述期望姿态。
28.进一步地,所述内环回路和所述外环回路均为位置式pid回路。
29.进一步地,所述测量速度通过以下方法获取:
30.获取上一状态对应的历史双目测距距离;
31.根据所述历史双目测距距离和所述双目测距距离获取所述测量速度。
32.进一步地,所述获取与前机的双目测距距离的步骤,包括:
33.获取双目相机基于目标无人机的视差;
34.获取所述双目相机的参数;
35.根据所述视差和所述双目相机的参数获取所述双目测距距离。
36.第二方面,本技术实施例提供一种基于视觉的无人机控制装置,包括:
37.距离获取模块,用于获取与前机的双目测距距离和当前速度;
38.滤波模块,用于对所述双目测距距离进行滤波处理,得到滤波后的双目测距距离;对所述当前速度进行滤波处理,得到滤波后的当前速度;
39.结果获取模块,用于所述将滤波后的双目测距距离和所述当前速度输入到串级pid算法,得到期望姿态;
40.飞行模块,用于基于所述期望姿态进行飞行。
41.第三方面,本技术实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法的步骤。
42.第四方面,本技术实施例提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面任一项所述的方法。
43.本技术公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本技术公开的上述技术即可得知。
44.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
45.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
46.图1为本技术实施例提供的无人机边编队的结构示意图;
47.图2为本技术实施例提供的pid串行算法的结构示意图;
48.图3为本技术实施例提供的基于视觉的无人机控制方法的流程示意图;
49.图4为本技术实施例提供的双目测距的原理示意图;
50.图5为本技术实施例提供的基于视觉的无人机控制装置的结构示意图;
51.图6为本技术实施例提供的电子设备的结构示意图。
具体实施方式
52.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
53.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
54.实施例1
55.参见图1,为本技术实施例提供的无人机编队的示意图。其中,无人机中最前的无人机称为领航机,其他无人机称为从机。每架从机上都安装有双目测距仪以及控制单元。
56.1号机作为领航机,其他无人机作为从机,跟随1号机进行飞行。2、3号识别1号机位置、4、5号机识别2、3号机位置,6号机识别4、5号无人机位置。
57.在飞行的过程中,从机开启相机,检索目标,判断前方视野中是否存在无人机。如果存在无人机,利用双目视觉测距算法计算无人机的水平距离和速度,对例如,2、3号机获取其本身于1号机的位置。4、5号无人机分贝机获取其与2、3号无人机之间的双目测距距离。在获取了双目测距距离之后,对双目测距距离进行滤波处理,得到滤波后的双目测距距离。
58.在一可能的实施例中,从机通过以下方式对双目测距距离和当前速度进行滤波处理。1.向前推算状态变量:2.向前推算误差协方差:3.计算卡尔曼增益:4.由观测变量zk更新估计:5.更新测量误差:观测变量为双目测距距离和当前速度。
59.其中a∈rn×n表示上一状态到当前状态的转换矩阵,b∈rn×1表示控制输入到当前状态的转换矩阵,q∈rn×n表示过程噪声的协方差矩阵,r∈rm×m表示测量噪声的协方差矩阵。h∈rm×n表示当前状态到测量状态的转换矩阵。为向前推算状态变量;为k时刻的状态变量;pk为卡尔曼增益;zk为观测变量;i为单位矩阵。上述的转换矩阵、过程噪声的协方差矩阵、测量噪声的协方差矩阵,当前状态到测量状态的转换矩阵都是预先标定的。
60.本技术实施例每隔预设时间采集变量,上一状态为距离当前状态预设时间的状态。
61.上述方法中采用了一阶卡尔曼滤波方法对距离和速度进行滤波,减少白噪声对获取的期望速度和期望姿态的影响。其中,当前的速度由当前的距离和上一状态的距离差值除以当前时刻和上一时刻的时间差值得到。
62.之后,将滤波后的双目测距距离输入到串级pid算法中,得到期望姿态。
63.参见图2,串级pid算法包括:外环回路和内环回路,外环回路的输出为内环回路的
输入值;外环回路的输入为期望距离;外环回路的反馈值为双目测距距离;内环回路的反馈值为当前无人机的测量速度;内环回路的输出为期望姿态。
64.姿态包括无人机的俯仰角和横滚角。期望位置就是无人机在导航坐标系下的三维位置。
65.无人机的测量速度的获取方式如下:获取上一状态对应的历史双目测距距离;根据历史双目测距距离和双目测距距离获取测量速度。
66.由于水平位置控制引入速度换作为内环控制器,不仅可以提升无人机位置控制的效果,使其飞行稳定性得到进一步提高,而且减少无人机在飞行时出现的振荡、过冲等问题,同时也加强了系统的鲁棒性。
67.在上述实现过程中,当前的无人机不需要和前机之间进行通信交互,只需要基于自身测得的双目测距距离获取期望姿态,根据期望姿态进行无人机飞行的控制,能够使得无人机在通信较差的情况下保持队形。同时,对双目测距距离进行滤波,能够避免从机在飞行过程中存在明显的振荡和过冲现象。
68.实施例2
69.参见图3,本技术实施例一种基于视觉的无人机控制方法,包括:
70.s301:获取与前机的双目测距距离;
71.具体地,s301包括要以下步骤:获取双目相机基于目标无人机的视差;获取双目相机的参数;根据视差和双目相机的参数获取双目测距距离。
72.例如,参见图4,无人机上的双目相机由两个完全相同的摄像头组成。由于摄像头位置不同,所采集的图像会存在像素位置差异,这个位置称之为视差。
73.参见图4,图中,点p(x,y)为空间中的测量目标点,点p(x
l
,y
l
)和点p(xr,yr)分别为点p(x,y)到左、右摄像头成像的平面点。o
l
和or分别为左右摄像头的光心,且处于同一水平线上,b表示基线长度。左右摄像头的光轴互相平行,且成像都处于同一平面,f为摄像头焦距。点p(x,y)到双目相机基线的直线距离就是测量点p(x,y)与双目相机之间的距离。
74.根据相似三角形定理可得:
[0075][0076]
其中,x
r-x
l
为点p(x,y)投影到左右摄像头成像平面上的位置差。因此,距离z可得:
[0077][0078]
在进行s301之前,还包括:立体校正程序,理想情况下,要求左右图像精确处于同一平面并且行对准。但由于装配和硬件的不同,导致采集到的图像存在畸变,左右图像无法保证行对准。因此,在进行测量之前,根据标定的结果对采集的左右图像进行转化,即对左右图像进行立体校正。经过立体校正后,可以消除镜头畸变的影响并达到左右图像对在同一平面上并且行对准的效果。
[0079]
s302:对双目测距距离进行滤波处理,得到滤波后的双目测距距离,对所述当前速度进行滤波处理,得到滤波后的当前速度;
[0080]
具体地,s302包括以下步骤:根据双目测距距离获取出前一状态的双目测距距离/
速度,该步骤对应的公式为:根据双目测距距离/速度获取前一状态的误差协方差,该步骤对应的公式为:根据前一状态的双目测距距离/速度和前一状态的协方差获取增益系数,该步骤对应的公式为:根据增益系数和前一状态的双目测距距离获取滤波后的双目测距距离/速度,该步骤对应的公式为:在获得滤波后的双目测距距离/速度之后,还需要通过以下公式更新测量误差:
[0081]
该步骤中,还包括基于双目测距距离获取当前从机的飞行速度,基于从机的飞行速度进行滤波,得到滤波后的飞行速度。速度的滤波方法和双目测距距离的方法相同,这里不再进行赘述。
[0082]
s303:将滤波后的双目测距距离输入到串级pid算法,得到期望姿态;
[0083]
参见图2,串级pid算法包括:外环回路和内环回路;外环回路的输出为内环回路的输入值;外环回路的输入为期望距离;外环回路的反馈值为双目测距距离;内环回路的反馈值为当前无人机的测量速度;内环回路的输出为期望姿态。其中,期望距离是指该无人机与前机保持的距离的设定值或者说是指该无人机与前机期望保持的距离。
[0084]
在水平位置控制中,设期望位置为pd,测量位置为p,期望姿态为θd。
[0085]
其中:
[0086]
其中,k
p
表示pid控制器的比例项系数,ki表示pid控制器的积分项系数,kd表示pid控制器的微分项系数,xd为期望横坐标,yd为期望纵坐标,为期望俯仰角,θ为期望滚转角。
[0087]
若要使e
p
(t)为t时刻的距离误差,就水平位置控制模型而言(p为当前时刻的测量位置,v为当前时刻的速度),则水平内环控制器的期望速度输入
[0088]
上述k
pki
kd∈r
2*2
。若使即则水平内环控制器的输出的期望姿态为:
[0089]
在一可能的实施例中,为了减少静态误差,和溢出影响。
[0090]
将水平外环控制器的期望速度输入vd转换为位置式pid:
[0091][0092]
其中,e
p
(k)为当前时刻的距离误差,e
p
(k-1)为上一时刻的距离误差。
[0093]
水平内环控制器的输出的期望姿态为θd转换为位置式pid:
[0094][0095]
s304:基于期望姿态进行飞行。
[0096]
在上述实现过程中,当前的无人机不需要和前机之间进行通信交互,只需要基于自身测得的双目测距距离获取期望距离和期望姿态,根据期望距离和期望姿态进行无人机飞行的控制,能够使得无人机在通信较差的情况下保持队形。同时,对双目测距距离进行滤波,能够避免从机在飞行过程中存在明显的振荡和过冲现象。
[0097]
实施例3
[0098]
参见图5,本技术实施例提供一种基于视觉的无人机控制装置,包括:
[0099]
距离获取模块1,用于获取与前机的双目测距距离和当前速度;
[0100]
滤波模块2,用于对双目测距距离进行滤波处理,得到滤波后的双目测距距离;对所述当前速度进行滤波处理,得到滤波后的当前速度;
[0101]
结果获取模块3,用于将滤波后的双目测距距离和当前速度输入到串级pid算法,得到期望距离和期望姿态;
[0102]
飞行模块4,用于基于期望距离和期望姿态进行飞行。
[0103]
在上述实现过程中,当前的无人机不需要和前机之间进行通信交互,只需要基于自身测得的双目测距距离获取期望距离和期望姿态,根据期望距离和期望姿态进行无人机飞行的控制,能够使得无人机在通信较差的情况下保持队形。同时,对双目测距距离进行滤波,能够避免从机在飞行过程中存在明显的振荡和过冲现象。
[0104]
在一种可能的实施方式中,滤波模块2还用于根据所述双目测距距离获取出前一状态的双目测距距离;
[0105]
根据所述双目测距距离获取前一状态的误差协方差;
[0106]
根据所述前一状态的双目测距距离和前一状态的误差协方差获取增益系数;
[0107]
根据增益系数和所述前一状态的双目测距距离获取所述滤波后的双目测距距离。
[0108]
在一种可能的实施方式中,滤波模块2还用于根据所述双目测距距离获取出前一状态的速度;
[0109]
根据所述双目测距距离获取前一状态的误差协方差;
[0110]
根据所述前一状态的当前速度和前一状态的误差协方差获取增益系数;
[0111]
根据增益系数和所述前一状态的速度获取所述滤波后的当前速度。
[0112]
在一种可能的实施方式中,串级pid算法包括:外环回路和内环回路;
[0113]
外环回路的输出为内环回路的输入值;
[0114]
外环回路的输入为期望距离;
[0115]
外环回路的反馈值为双目测距距离;
[0116]
内环回路的反馈值为当前无人机的测量速度;
[0117]
内环回路的输出为期望姿态。
[0118]
在一种可能的实施方式中,内环回路和外环回路均为位置式pid回路。
[0119]
在一种可能的实施方式中,滤波模块2还用于获取上一状态对应的历史双目测距距离;
[0120]
根据历史双目测距距离和双目测距距离获取测量速度。
[0121]
本技术还提供一种电子设备,请参见图6,图6为本技术实施例提供的一种电子设备的结构框图。电子设备可以包括处理器61、通信接口62、存储器63和至少一个通信总线64。其中,通信总线64用于实现这些组件直接的连接通信。其中,本技术实施例中电子设备
的通信接口62用于与其他节点设备进行信令或数据的通信。处理器61可以是一种集成电路芯片,具有信号的处理能力。
[0122]
上述的处理器61可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器61也可以是任何常规的处理器等。
[0123]
存储器63可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。存储器63中存储有计算机可读取指令,当计算机可读取指令由处理器61执行时,电子设备可以执行上述方法实施例涉及的各个步骤。
[0124]
可选地,电子设备还可以包括存储控制器、输入输出单元。
[0125]
存储器63、存储控制器、处理器61、外设接口、输入输出单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通信总线64实现电性连接。处理器61用于执行存储器63中存储的可执行模块,例如电子设备包括的软件功能模块或计算机程序。
[0126]
输入输出单元用于提供给用户创建任务以及为该任务创建启动可选时段或预设执行时间以实现用户与服务器的交互。输入输出单元可以是,但不限于,鼠标和键盘等。
[0127]
可以理解,图6所示的结构仅为示意,电子设备还可包括比图6中所示更多或者更少的组件,或者具有与图3所示不同的配置。图6中所示的各组件可以采用硬件、软件或其组合实现。
[0128]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当指令在计算机上运行时,计算机程序被处理器执行时实现方法实施例的方法,为避免重复,此处不再赘述。
[0129]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0130]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0131]
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储
在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0132]
以上仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0133]
以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
[0134]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1