有很多零件对于多旋翼无人机来说,是可选的

科普 SDR 原理

软件无线电,即 Software Defined Radio(SDR)通俗来讲,SDR 就是基于通用的硬件平台上用软件来实现各种通信模块。

由通用计算平台来处理信号,只要硬件支持这个频率就可以收发任何的信号,可以用这个来实现任何无线的通信

发送端:

sdr send

接收端:

sdr recv

可以参考这篇:

软件无线电 SDR技术原理深入解析 USRP收发原理

全球导航卫星系统 Global Navigation Satellite System(GNSS)

GPS 显然已经成了 GNSS 的代名词,很多人提及 GPS,就想到卫星导航,实质上这是对 GPS 的一个误解,同样也是对 GNSS 的混淆。 GPS 是由美国国防部研制建立的一种具有全方位、全天候、全时段、高精度的卫星导航系统,能为全球用户提供低成本、高精度、有差别的 PNT(Positioning, Navigation and Timing) 服务

GPS 是美国的卫星导航系统,类似的还有中国的 BeiDou(北斗) ,欧盟的 Galileo (伽利略),俄罗斯的 GLONASS 印度的 NavIC 和 日本的 QZSS

单点定位

gnss detail

这样就可以解出所在位置

使用卫星数 定位 备注
0  
1 可以授时 UTC 时间和日期
2  
3 2D Fixed 经纬度,没有海拔
4 3D Fixed 经纬度海拔
>4 DGPS 需要其他频段,接收伪距信号
     

GNSS 搜星越多定位越精确,上表不是绝对的,搜星数不等于解算时的使用数

GNSS 解算可以参照这位推友(相对论会影响 GNSS 解)

误差是怎么来的

https://ardupilot.org/copter/_images/atmospheric_effects.gif

  • 电离层误差:0~30 米,由于电离层对GPS信号的干扰,在不同的电离层情况下,误差在一定范围内波动
  • 对流层误差:0~30 米,由于对流层对GPS信号的干扰,在不同的对流层情况下,误差在一定范围内波动
  • 卫星时钟误差:0~3 米,也叫 satellite clock bias
  • 接收时钟误差:0~10 米,也叫 receiver clock bias
  • 多路径和非视距信号(multipath/NLOS):0~100米

GNSS/GPS RTK定位 (手机,无人车定位,无人驾驶,因子图优化)

GNSS 精度可参考 mavlink 协议对于 GPS 的定义 (mavlink 是开源飞控定义的一种通信协议)

GNSS 解 精度 备注
2D position 十几米  
3D position 米级  
DGPS/SBAS aided 3D position 亚米级 Differential GPS, RTD
RTK float 分米级  
RTK fixed 厘米级  

伪距差分 Real Time Differential(RTD)

差分全球定位系统(Differential GNSS (DGNSS),不过一般都叫 DGPS 或 差分 GNSS )

差分 GNSS 有两种:一种是 RTD,一种是 RTK,在没有 RTK 以前,只有 RTD,所以一般差分 GNSS (DGPS)都是特指 RTD

https://ardupilot.org/copter/_images/gps_differential_corrections.jpg

RTD,伪距差分。基准站上,观测所有卫星,根据基准站已知坐标和各卫星的坐标,求出每颗卫星每一时刻到基准站的真实距离。再与测得的伪距比较,得出差分改正数,将其传输至用户接收机,提高定位精度。从而实现亚米级定位。

一篇关于GPS定位写得最详实清晰的文章(上)

GPS - How it Works - Copter documentation

载波差分 Real Time Kinematic(RTK)

RTK(Real Time Kinematic,实时动态)载波相位差分技术,是实时处理两个测量站载波相位观测量的差分方法,将基准站采集的载波相位发给用户接收机,进行求差解算坐标。 这是一种新的常用的卫星定位测量方法,以前的静态、快速静态、动态测量都需要事后进行解算才能获得厘米级的精度,而 RTK 是能够在野外实时得到厘米级定位精度的测量方法,它采用了载波相位动态实时差分方法,是 GNSS 应用的重大里程碑

RTK 需要自己架设一个基站,和 GNSS 连接,把差分数据发送给 GNSS

rtk

RTK 在测绘领域用的很多,有一个大家都知道的场景就是考驾照科目三,考试车就是使用 RTK 定位的

即時動態定位系統之整合與驗證測試

网络 Network RTK (NRTK)

由于 RTK 要自己建也给 RTK 基站(base),可以自己架设一个 RTK base 然后给很多 GNSS 使用,在传输数据时可以使用互联网

ntrip

使用的 draw.io 绘制的,源文件在这里,可以随意使用 ntrip.drawio

双向数据通讯模式下,用户需要向数据处理中心发播自己的概率位置。数据处理中心根据用户的概率位置选择最优的参考站,计算相应的误差改正数或生成虚拟观察值,然后回发给用户。用户根据数据处理中心回发的误差改正数进行计算改正

自建网络 RTK 服务

nunojpg/ntripcaster

网络服务商:千寻位置(阿里投资的)

也不是打广告,这个目前还找不到第二家同类的服务商(这是个创业方向,快!就差个程序员了)

千寻在全国建了非常多的基站,需要一个土豪金主在背后支撑

GNSS 天线

为什么要写天线?事情起因是因为做天线的厂家天天打电话推销天线,就稍微了解一下

如果你要厘米级精度的话,天线位置还真的有讲究,如果你有一根十厘米长的天线,整根天线都可以接收信号,光误差就超了厘米,而且天线位置和飞机的几何中心也要考虑进去

天线有好多种,用到 GNSS 的基本上只有:陶瓷天线和四臂螺旋天线

比较廉价的飞机用这种陶瓷天线

ceramic antenna

四臂螺旋天线(quadrifilar helix antenna)

四臂螺旋天线具有心形方向图、良好的前后比及优异的宽波束圆极化特性,十分适合用作卫星定位系统的接收天线

这比较高,最终是一个圆柱型(无人机最上方凸起的圆柱就是这个天线)

quadrifilar helix antenna

如果对天线有兴趣可以去看这个: 天线理论与设计

外置磁罗盘

电子磁罗盘(或者说三轴磁力计,上一篇文章讲过),接收地磁信号。容易被干扰

罗盘(磁力计)应该安装在尽可能远离通过大电流的线缆的位置,因为大电流诱发的磁场会干扰罗盘的读数。

如果没有办法磁罗盘无法远离动力线缆,那可以使用补偿算法,磁罗盘读数与油门杆位与/或电池电流有强相关性

https://docs.px4.io/master/assets/img/corrupted_mag.3142e358.png

还有一种办法是,把磁罗盘放到不会被干扰的地方。一般情况下有两个罗盘。飞控(内置罗盘)和 GNSS(外置罗盘)

GNSS 比较容易收到干扰,要信号好要放在最高点,所以就把 GNSS 和 磁罗盘 放在一起,远离其他模块,飞机上突出的小蘑菇头就是 GNSS 模块和磁罗盘

最常用的模块是:Ublox 的 m8p 和 f9p

双 RTK yaw 方向判断

有些时候 GNSS 不止有一个,两个 GNSS 模块的飞机

因为 RTK 可以实现厘米级精度,所以可以在飞机上安装两个,来得知 yaw 方向(位置差来判断)

在手动控制中使用中 yaw 方向偏差是很危险的,没有经过训练的人,掌握对头飞行控制还是有难度的(面对飞机头,pitchroll 是完全相反的)

还有最丧心病狂的 DJI M600 pro 用了 三个 GNSS,三重冗余

综合之上的情况:干扰,双 GNSS,一般都 把 GNSS 放到机臂上(机臂里面是三项交流电,电流干扰补偿)

如何 hack GNSS

GNSS 本质是接收卫星信号,可以使用 SDR 模拟一个 GNSS 信号,伪造任何位置 https://github.com/osqzss/gps-sdr-sim

GNSS 的信号到达地面上已经很弱了。可以用 GNSS 的频段干扰器,干扰正常的 GNSS 信号。当然 GNSS 可能同时使用 GPS,BeiDou(北斗) , Galileo 等,干扰一个是不够的,要全频段干扰

传输模块

图像和数据是分开的,图像传输是个新东西,本来就是可选模块,无人机航拍的兴起之后,好像变成了是个飞机都要有图传

数据传输模块大部分都是双向的,原本是为了查看飞机状态和使用地面站控制飞机

数据传输模块

也叫电台,数传,为了无人机超视距全自动飞行而设计,配合地面站来使用(先记住这个模块,地面站这个东西之后有文章会重点讲)

大家应该都知道串口,不用过多解释,tx, rx, vcc, gnd (是一个双向通信,可以拿来传输数据)。数据传输模块本质上其实就是一个走了特殊频段的串口透传模块

433MHz 频段的比较多,也有 2.4G 和其他频段的。可以通过这样一个模块和电脑连着一起,通过地面站程序来直接控制飞机

2.4G wifi ESP8266

有相关背景的,看到 ESP8266 这东西是干什么用的了。飞机开机释放热点,手机连接上,开 APP ,看到飞机摄像头图像,控制飞机的这种(距离很近)

那些在路边几百块买的玩具无人机用的就是这种方案,就和家用 WIFI 模块一样

模拟图传

模拟图像传送是指对时间(包括空间)和幅度连续变化的模拟图像信号作信源和信道处理,通过模拟信道传输或通过模拟记录装置实现存储的过程。一般用扫描拾取图像信息和压缩频带等信源处理方法得到图像基带信号,再用预均衡、调制等信道处理方法形成图像通带信号。

模拟信号,原来的电视上用的那种信号,黄色的 AV 口的那种。也是传统的图传,优点就是延时低,距离远,一般是 5.8G 图传

穿越机比赛就是用的模拟图传 FPV(First-person view)这个延时超低,可以做到 50ms 以下(大疆的新数字图传可以和延时快和模拟图传一样了)

超远距离也是模拟图传,传输几十公里的那种

数字图传

图像数字传送是指数字化的图家信号经信源编码和信道编码,通过数字信道(电缆、微波、卫星和光纤等)传输,或通过数字存储、记录装置存储的过程。数字信号在传输中的最大特点是可以多次再生恢复而不降低质量。还具有易于处理、调度灵活、高质量、高可靠、维护方便等优于模拟传输的其他特点。

这个可以分成两种, HDMI 透传 和 网络透传

可以直接吧图像数字编码直接传回来。模拟图传,HDMI 透传 有个共同特点,数据是单向传输的

由于 HDMI 透传 的实现复杂,所以目前大部分都是使用 网络透传 来模拟 HDMI 透传

网络透传。不就是一个释放 WI-FI 一个连接上吗?当然家用 WI-FI 的距离太近,把无线通信部分改一下,不过这样就和普通的 WI-FI 不兼容了,这就是私有协议了。或者我把无线部分都换成自己其他的通信模块。这样可以使通信距离很远

AR9344 路由方案:就是 MIPS 芯片的那款路由器改装的

mircohard 的路由器方案:这个把通信部分全改了。标准的 openwrt 路由器接口

如果可以使用网络通信,那就顺便把串口透传也集成进来吧(串口转 Socket,这个甚至有 RFC2217 文档。ser2net 就是一个不错的实现)大部分数传和图传一体化的就是基于网络透传改的

大疆的图传 (基于 SDR)

做无线通信要受制于供应商,要用其他频率,连硬件都很难获得。大疆的图传真的是比同行高太多了,是用 SDR 来做的,这样就可以自己定制通信了

传输模块的天线

图传上能看到的天线有大概有三种:棒状天线,蘑菇头天线,平板天线

antenna 1

棒状天线,一般家用路由器上就是这种,棒状天线上下是没有信号的

whip antenna

蘑菇头天线是整个蘑菇头都是有信号的(除了下面)。也称全向天线

antenna 2

平板天线是一种定向天线,要平板正对着信号才好,这个距离也是最远的

antenna 3

根据平板天线的特点,可以把平板天线放到三轴云台上,根据信号自动调整角度,定向追踪天线(这也是个创业方向,快!投资人打钱)

基于这个思路:可以使用电路来实现,如果可以控制对不同角度的发射信号,一样也可以信号追踪。

先弄很多天线,组成一个阵列。我们知道它发出的是电磁波,那么可以利用它波的特性,用相位不同的波相互干涉,来实现定向的信号增强。这个东西早就有了,叫 波束赋形

beamforming.png

有些高端的路由器支持 MIMO 就是这个原理,还有就是 5G 技术也用了波束赋形

相机和摄像头

相机这个实现有意思:先从最基本的情况开始

快门硬件改装

先来看一种最基础的情况:

  1. 遥控器可以输出 PWM 信号,把一个通道给一个电路模块,使占空比高是通电,占空比低时断电
  2. 这样就有了一个开关透传(将遥控器开关映射成飞机上开关的通断)
  3. 之后把相机的拆解,把快门按钮引出两个线出来(快门本质上就是开关触发),把这两个线接到开关透传上,这样就可以使用遥控器控制相机

相机控制都是基于这一原理

不同的是 PWM 转开关可以让飞控来做,飞控里面支持的航线可以扩展出相机控制(开关通断),这样就有了飞航线自动拍照

有些相机可以支持 API 来控制拍照(Go Pro 就可以),可以软件来控制拍照

大部分都是使用运动相机改装的,Go Pro,山狗,小蚁运动相机

增稳云台

稳定平台,对于任务设备来说太重要了,是用来给相机增稳的部分,不然拍出的效果可能很糟糕

一般是两轴的云台,和三轴云台。比如大疆有些机型为了简化控制使用两轴的云台(没有 yaw 方向的自由度)。云台还是比较容易弄到的,也有完全开源的实现

云台相机一体化,大疆精灵三开始做了一体化云台,开源飞机的一体化云台没有什么好的选择方案。也没什么供应商可以选的(在我写本文的时候,很少有可以选的)

摄像头和协处理器

或许可以用摄像头自己做一个相机。不过如果要航拍的话,还是去使用专业的相机吧

一般可以用几个固定位置的摄像头去实现一些其他功能。看,大疆已经把六个面都装上摄像头了

一般都是使用上位机(比如 raspberry Pi ),来专门处理图像

计算机视觉避障

双目摄像头可以得知距离的(就像人有两只眼睛一样)。再配合一些算法,比如八叉树

octree

视觉里程

通过摄像头和惯性导航来的知飞行距离,有些特殊的场景下 GNSS 可能没有信号(比如:室内飞行)

视觉定点

都可以计算里程了,辅助定点当然是可行的

辅助定高

GNSS 可以解出高度,不过是绝对高度,但重要的相对高度,就是和地面的高度(一般来说是以起飞点作为 0M), GNSS 得到的绝对高度用处不大

要使用那种传感器来得知高度,还是要看使用场景

消费级无人机-我的高度你不懂 - KANZHAJI 看炸机-无人机资讯站

气压计

这个应该不用过多解释,通过气压来得知高度。 气压计在超低高度(低于 3 米)误差偏大,而随着高度升高,气压计精度逐步上升,大于 5 米后可以做到 +-30 厘米的精度,再辅以飞控内的加速度计做数据融合,大部分场景可以把高度漂移锁定在 +-20 厘米范围内

超声波

消费级无人机的超声波器件作用距离有限,只能在低空有效工作(超声波传感器的距离都在 10M 以下)。于是各厂家采用的高度逻辑是,只在低于特定气压高度时,才切换并启用超声波反馈提供的高度

而液体密度还对超声波精度有较大影响,尤其水面对超声波的吸收让正常反馈大量衰减,飞机误以为正在上升,从而降低油门输出。然后就飞机就下水了

激光雷达

如果使用激光雷达判读高度的话,特指固定在飞机某个下面的激光雷达,替代超声波的那种激光雷达(价钱也高出了好多)

虽然可以用激光雷达来避障,这里特指单条线的那种

毫米波雷达

毫米波穿透力比激光雷达强,距离比激光雷达近,在一些特殊场景下。比如农业植保,使用毫米波雷达判断离地面高度

突破大疆飞机限高

我们可以得知高度信息是通过 GNSS,和气压计,超声波等得出的,飞的比较高之后就只有 GNSS 和 气压计 是准确的,气压计作为主要高度信息

改装气压计,把气压计密封一下,就可以突破限制了,但还可以通过 GNSS 来判断高度。替换 GNSS 模块,因为这个模块的特性,上方不会有遮挡,可以把 GNSS 换成一个高度有问题的模块进去

当然从软件上下手更容易些,这些限制都是写在软件里的,反汇编,破解通信协议。总有一款适合你

空中交通避障

自动相关监视广播 Automatic Dependent Surveillance–Broadcast (ADS–B)

是一种飞机监视技术,飞机通过卫星导航系统确定其位置,并进行定期广播,使其可被追踪。空中交通管制地面站可以接收这些信息并作为二次雷达的一个替代品,从而不需要从地面发送问询信号。其他飞机也可接收这些信息以提供姿态感知和进行自主规避。

ADS-B

SDR 和 ADS-B 的妙用:探测家附近有多少飞机

目前民航也是用的 ADS-B 。这个信息是公开,无加密的。所以我可以去接受这个频段的信息。对,用 SDR 去接收消息,然后再地图上绘制出来

skyaware

RTL-SDR Tutorial: Cheap ADS-B Aircraft RADAR

UAS (Unmanned Aircraft Systems) Traffic Management (UTM)

UTM 是 美国国家航空航天局(NASA)的无人驾驶飞机系统(UAS)的避障系统。(无人机界的 ADS-B)

目前这还是个很新的东西(目前还是概念),也许不久的将来,这个就是每个无人机上都有的东西

utm-airspace7

Power Monitors

当然,电源监控是非常重要的,判断电压是不准的,工作时电源压降会很大。无人机上普遍使用电流计,更精确一些

系留多旋翼

不要电池了,把电池换成电线,试想一下,多旋翼拖着一根电线飞到天上。在天空中悬停,有一些特殊场景会需要这种东西

特殊的挂载

发挥想象力,可以挂载的东西有很多。比如特殊用途的挂载:高光谱相机,红外,喊话器,空气质量传感器。。。。还可以送外卖!