Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >大疆无人机飞行感知技术有什么用途

大疆无人机飞行感知技术有什么用途

作者头像
机器人网
发布于 2018-07-23 08:57:28
发布于 2018-07-23 08:57:28
1.3K0
举报
文章被收录于专栏:机器人网机器人网

无人机的飞行感知技术主要用作两个用途,其一是提供给飞行控制系统,由于飞行控制系统的主要功能是控制飞机达到期望姿态和空间位置,所以这部分的感知技术主要测量飞机运动状态相关的物理量,涉及的模块包括陀螺仪、加速度计、磁罗盘、气压计、GNSS模块以及光流模块等。另一个用途是提供给无人机的自主导航系统,也就是路径和避障规划系统,所以需要感知周围环境状态,比如障碍物的位置,相关的模块包括测距模块以及物体检测、追踪模块等。

陀螺仪

目前商用无人机普遍使用的是MEMS技术的陀螺仪,因为它的体积小,价格便宜,可以封装为IC的形式。MEMS式陀螺仪常用来测量机体绕自身轴旋转的角速率,常用的型号有6050A(Invensense),ADXRS290(ADI),衡量陀螺仪性能的指标包括测量范围(量程)、灵敏度、稳定性(漂移)以及信噪比等。

上面是一个陀螺仪温度漂移测试结果图,测试的环境是从25℃升温至50℃,整个过程保持陀螺仪静止不动,陀螺仪的准确输出应该是一个固定的数值。但从结果来看,两款传感器的实际输出都受到温度变化影响。相比而言,ADXRS290(ADI)的输出数值变化幅度较小,基本上在0.5左右。

加速度计

加速度计测量的是机体运动的线加速度,但由于地球引力,测量值中还会包含重力加速度分量,在某些使用情况下需要把这部分减去。常用的MEMS加速度计传感器型号有6050A(Invensense)和ADXL350(ADI)。部分传感器生产商为了提高芯片集成度,会将陀螺仪和加速度计封装在一起,称为六轴传感器,例如6050A(Invensense)。

磁罗盘

磁罗盘测量的物理量是地球磁场强度沿机体轴的分量,并依此计算出机体的航向角。常用的MEMS磁罗盘传感器型号有HMC5983L(Honeywell)和QMC5883L(矽睿),两者性能相近,其中前者目前已经停产。磁罗盘主要的性能参数包括灵敏度、稳定性(漂移)等。

气压计

气压计测量的物理量是大气压值,根据该数值可计算出绝对海拔高度。常用的气压计传感器型号包括MS5611(MEAS)、MS5607(MEAS)以及BMP180(Bosch)。气压计在使用过程中存在的问题是,在近地面飞行时,“地面效应”的存在会导致飞机周围气体的气压分布与静止状态下的大气不同,使得无法用气压计来测算出高度。通常的解决办法是在起飞或降落时使用其他传感器,比如超声波传感器或激光测距仪。

GNSS模块

GNSS模块测量的物理量相对比较丰富,主要包括地理坐标(经纬度)、海拔高度、线速度以及航向角(RTK系统)。常用的GNSS模块生产商包括瑞士的U-BLOX和加拿大的NOVATEL。在使用GNSS模块时,卫星信号接收天线的放置需要要注意电磁干扰的屏蔽,部分有实力的整机生产厂商会根据飞机型号专门定制卫星信号接收天线。

光流模块

光流模块是一个比较特殊的模块,既可以用来感知机体的运动状态,如测量水平方向的位移速度,也可以用来感知周围的环境,用作避障的用途。比较常见的光流模块是开源的PX4FLOW。光流模块通常在室内使用,主要是为了解决室内卫星信号不佳的问题,另外对于拍摄的地面需要有一定纹理图案。

周围环境状态感知

测距模块

这里列举五个常用的测距模块:超声波、红外TOF、激光、毫米波雷达、深度感知摄像头。

超声波和红外TOF各方面性能比较相似,比如测量距离都比较近,像超声波测量的距离一般在4米左右。另外这两种传感器的使用范围都容易受到实际环境的限制,比如红外TOF是向被测物体表面发射红光并反射,如果遇到红光反射率不高的物体像玻璃就会失效。但这两种传感器有一个最大的优势就是成本低,另外模块体积也比较小,所以在消费类无人机上得到了广泛使用。

激光雷达测距一般都比较远,大多数产品都可以达到100米以上,但是大雨大雾的天气环境会影响其测量结果。另外的劣势在于成本比较高: 在激光雷达行业实力最强的是Velodyne,它的一款适用于无人机使用的小型化产品VLP-16价格也达到了1000美元以上,对于商用无人机来说成本还是比较高。

深度感知摄像头根据测量技术可以分为三种,立体摄像头,也叫双目视觉技术,代表产品就是大疆的精灵4;结构光技术,代表产品有微软的Kinect;时差测距技术(TOF),由于生产厂家较少而且成本较高,因此在无人机上的应用很少。深度感知摄像头在使用时也存在局限性,双目视觉技术的缺点是在低光环境下无法正常工作,而结构光技术则与之相反,在强光下无法正常工作。因此有的厂家把两种技术进行组合,弥补彼此的缺陷,扩大其适用的环境范围。

提高测量精度的方法

传感器校准

传感器校准,包括精校准和粗校准。精校准效果比较好,但需要昂贵的标定设备;粗校准则不需要借助外部设备,只对传感器本身进行操作即可。

以磁罗盘的粗校准为例,由于地球上任意位置的地磁场强度在较长时间跨度内都可视为是恒定的,当转动磁罗盘时,根据相对运动可假设磁罗盘固定不动,而地磁场矢量随之在转动,其矢量端点在空间的轨迹应为一个标准的球体,但由于传感器存在误差,实际测出的数据并不严格都在球体的表面,这时候就需要根据测量出来的数值以及已知的准确值来计算两者之间的换算关系,也就是该款磁罗盘的误差模型。在以后使用该款磁罗盘时就可以根据粗校准得出的误差模型来处理测量值,使得测量值的误差减小。

磁罗盘校准(SGB sbgcenter)

多种传感器数据融合

不同类型的传感器数据融合方法有多种,在业内用的比较普遍而且效果也比较好的是EKF,也就是扩展卡尔曼滤波。

以计算飞机姿态角的融合方法为例,EKF更新过程主要分为两个部分,预测更新和量测更新。预测更新主要利用陀螺仪更新预测状态量,同时计算该状态量的协方差矩阵。在量测更新中先会计算滤波增益,然后使用滤波增益融合预测状态量、加速度计以及磁罗盘的数据,成为一个融合状态量,同时计算融合状态量的协方差矩阵,在下一次更新周期的计算中使用。

计算姿态角的融合方法流程

传感器冗余设计

传感器冗余设计主要是将多个同种传感器进行组合,处理方法是首先会剔除数据异常的传感器,然后再进行传感器的融合。冗余设计不仅可以提高测量精度也可以提高整套系统的可靠性,在某一个传感器失效的情况发生时,让整个系统能够继续正常工作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器人网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
安卓上传文件(绝对可以用)
说明:使用是httpclient+MultipartEntity,因此需要导入包:httpmime-4.1.1(这个包非常重要!务必导入!) 写在前面:我只是贴出核心代码,只是记录下我寻找上传功能的过程,我是一个PHPer,最近项目需要编写APP,因此就刚学习Android开发。如果你也正在学习Android可以一起交流一下~~ 上代码:(安卓客户端代码)直接贴出关键部分 /* * 图片上传 */ private void httpUpload() { HttpClient httpclien
苦咖啡
2018/05/08
1.8K0
安卓上传文件(绝对可以用)
Apache HttpComponents 之 Httpclient 参考
Apache HttpComponents 项目负责创建和维护一个基于 HTTP 和相关协议的底层 Java 组件工具集。
acc8226
2022/05/17
6570
Apache HttpComponents 之 Httpclient 参考
HttpClient4.x 文件上传
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163253.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/15
5090
java使用httpclient调用第三方接口
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/141981.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/01
9500
HttpClient 辅助类,简化调用
默认带有的INSTANCE 可以请求所有的HTTPS 和HTTP,使用带有证书的构造函数自己构建的client对象可以请求需要证书验证的HTTPS地址和HTTP。client对象为线程安全的,所以一个client允许在多个线程下使用。不要关闭client对象,否则多个线程使用同一个client就会有问题。
前Thoughtworks-杨焱
2021/12/08
8800
Android-上传图片(二)_HttpClient
上篇博文中记录了使用HttpURLConnection模拟HTTP请求上传文件到服务端 Android-上传图片(-)_HttpURLConnection 本篇博文中将使用Apache HttpClient实现相同的功能。 HttpClient官方quickstart文档
小小工匠
2021/08/16
3680
Java使用httpclient提交HttpPost请求(form表单提交,File文件上传和传输Json数据)
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。Java后台使用httpclient主要目的是为了模拟客户端的请求。
I Teach You 我教你
2023/07/18
4K0
Http接口Post方式传送File文件示例
对接的接口是MutipartFile的上传接口,后台用Http方式去调用,所以可以使用HttpClient或者用Spring框架封装的RestTemplate去后台http请求
SmileNicky
2022/05/07
3.2K0
Http接口Post方式传送File文件示例
java(优化21) httpClient使用详解
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。
Java架构师必看
2021/06/10
1.2K0
实战Kubernetes动态卷存储(NFS)
之前的《 Kubernetes持久卷实战两部曲》系列中,我们实战了先声明一个存储卷,再使用这个存储卷,这种方式要求每次都要提前申明存储,不是很方便,而动态卷存储不需要提前申明,而是使用时自动申明,今天我们就来一起实战;
程序员欣宸
2022/05/09
1.6K0
实战Kubernetes动态卷存储(NFS)
Kubernetes持久卷实战两部曲之一:极速体验
整个《Kubernetes持久卷实战》由以下两篇文章组成: 1. 极速体验静态持久化存储,也就是本章的内容; 2. 了解k8s的pod、service、pv、pvc的细节;
程序员欣宸
2019/05/30
8340
HttpClient详细解释
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。
全栈程序员站长
2022/11/16
1.5K0
android之JSON 进行网络数据交换「建议收藏」
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同一时候也易于机器解析和生成,很适合于server与client的交互。
全栈程序员站长
2022/07/07
4610
android之JSON 进行网络数据交换「建议收藏」
Android开发笔记(六十三)HTTP访问的通信方式
输入输出流在java中很常用,从文件读写到内存读写到网络通信都会用到。在之前的《Android开发笔记(三十三)文本文件和图片文件的读写》中,我们学习了文件流FileOutputStream和FileInputStream,以及缓存流BufferedOutputStream和BufferedInputStream。这些输入输出流都继承自InputStream和OutputStream,下面是它们的常用方法: InputStream的常用方法 available : 获取输入流的大小 read : 从输入流中读取数据 close : 关闭输入流 OutputStream的常用方法 write : 往输出流写数据 flush : 刷新输出流 close : 关闭输出流 java在进行http访问操作时,发送数据使用OutputStream,接收数据使用InputStream。如果采用HttpURLConnection,InputStream对象可从HttpURLConnection的getInputStream方法获得;如果采用HttpClient,InputStream对象可从HttpEntity的getContent方法获得。下面是http访问时与InputStream有关的加工操作: 1、从InputStream对象中读取字符串。首先把输入流的数据读到字节流ByteArrayOutputStream,然后调用字节流的toByteArray方法得到字节数组,最后调用String的构造函数根据指定编码从字节数组构造返回字符串; 2、从InputStream对象中读取图像。调用BitmapFactory的decodeStream方法即可返回Bitmap图像数据。 3、从InputStream对象中解压gzip压缩数据。引入GZIPInputStream从输入流构造解压流,然后再从解压流中读取数据。
aqi00
2019/01/18
1.2K0
UrlEncodedFormEntity
UrlEncodedFormEntity这个类是用来把输入数据编码成合适的内容,下面以注册的时候传递的参数为例:
wust小吴
2019/07/08
2.1K0
post上传和压缩、插件模拟请求
多张图片上传:写个循环,用键值,可以用BasicNameValuePair,也可以用file,循环添加,也可以用base64变成string上传
六月的雨
2022/01/12
6710
post请求百度网址内容和访问本地springmvc工程controller
springmvc工程的下载地址:http://download.csdn.net/download/csdnliuxin123524/10001431
全栈程序员站长
2022/06/30
2520
JavaUtil_06_HttpUtil_使用httpclient实现
一、简介 使用 appache 的 httpclient 来实现的 二、源码 package com.ray.weixin.gz.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.http.Consts; import org.apache.http.Header; import org.
shirayner
2018/08/10
9460
5.post上传和压缩、插件模拟请求
gzip gzip一种压缩方式,或者是文件形式,它主要用于网络传输数据的压缩 gzip压缩好不好用 浏览器:网速一定.内容越小.请求响应的速度是不是更快 手机server:返回数据类型是json/xml->文本-->压缩率会很高. gzip执行流程 //1. 告知服务器.客户端支持gzip解压 * get.addHeader("Accept-Encoding", "gzip"); //2. 根据响应头得知服务器知否进行了gzip压缩 * Header[] headers = respons
六月的雨
2018/05/14
2.3K0
httpclient上传文件方法的封装
本人使用 httpclient 进行接口测试的过程中,遇到了上传文件的接口,之前的文章已经完成了二进制流上传图片的代码,但是还没有封装成固定的使用方法,今天分享一下封装后的方法,供大家参考。
FunTester
2019/10/08
1.1K0
推荐阅读
相关推荐
安卓上传文件(绝对可以用)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档