Parrot Anafi AI无人机介绍.上

2021-07-23 12:24:04 浏览数 (1)

法国无人机厂商Parrot将在下半年发布全新无人机“Anafi AI",快来看看吧!

代码语言:javascript复制
https://mp.weixin.qq.com/s/rP4MWUhVXd0Sfdt3iOdJGg

Parrot全新的无人机是这个样子的,个人感觉很酷

特别的,融入了仿生学的设计理念

全速飞行的样子

换个视角你就会发现它是一个螳螂,重点就是这个摄像头

中间这个是全新设计的云台相机

旁边两个相机是避障使用的相机,看型号是使用的黑白相机


这个全新的避障系统“能探测到所有方向的障碍物”,而且这两个摄像头显然能做到这一点,这要归功于它能够独立于主摄像头旋转311度。

这意味着,你飞上,下,或向后,立体避障系统将能够旋转,以提供在这个方向的障碍回避。请注意,并不是所有的方向,也不是所有的方向同时进行,但这是一种创新的方法,可以减少质量、成本和计算开销。如果想研制新的无人机,我觉得是个新的思路和方向。

代码语言:javascript复制
https://www.parrot.com/us/drones/anafi-ai

主要的资料都在官网了~

首先它创新的一点是4G的联网能力

看着牛逼,不过现在无人机这个拉跨的续航能力。。。。

后面的说明书写的是35分钟的续航

看特性,翻译也不是那么鬼畜

可以看到LTE还是主打的功能

这是现实生活中的工作流程,可以看到4G的运行确实将适用环境变大

首先说自己机器的频段支持好,中国卡,非洲卡,插上就可以用!

然后就是通信链路的动态测量,WiFi控制质量差的时候切换到4G


这里出现了有效吞吐量,那就研究一下~

代码语言:javascript复制
https://tools.ietf.org/pdf/rfc5166.pdf

这个是我查到的一个论文,上面也提供了链接

从翻译的结果来看,这个goodput就是纯的有用流量

接着这段介绍还是对上面的重连功能的说明,只不过有了更多的即使细节

代码语言:javascript复制
VOIP SIP协议

这个协议其实是个语音的协议


会话初始协议(Session Initiation Protocol)SIP 是一种信令协议,用于初始、管理和终止网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个或多个参与者之间的会话。SIP的业务模式是一个点对点协议,其中有两个要素——SIP用户代理和SIP网络服务器。

代码语言:javascript复制
SIP与许多其它的协议协同工作,仅仅涉及通信会话的信令部分(control message)。

说白了就是信号不好的时候,自动拨号

这个SIP只管连接这些工作,后面的工作是其它协议工作

无人机不在Wi-Fi范围内30秒以内连接4G遥控器,在Wi-Fi范围内15秒以内。

而且人家也做了这些的设计

翻译鬼畜

看原文吧


意思是高性能的视频流:

WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。

代码语言:javascript复制
https://webrtc.org/

一个网络API


在 WebRTC 中,为了保证媒体传输的安全性,引入了 DTLS 来对通信过程进行加密。DTLS 的作用、原理与 SSL/TLS 类似,都是为了使得原本不安全的通信过程变得安全。它们的区别点是 DTLS 适用于加密 UDP 通信过程,SSL/TLS 适用于加密 TCP 通信过程,正是由于使用的传输层协议不同,造成了它们实现上面的一些差异。

总之就是启用了一个具有加密等级的加密协议。我都有这能力了,我会去日你的飞机?不过也不是不可能。

这个是全新设计的天线系统,总之就是信号好

我这个对天线理论不熟悉

下面这些也是为了飞机的连接平稳性做出的努力

带宽越宽,速率越高。这个话我就相当于回答后的问题了。增强了灵敏度。但是物理上面的解释我说不上来,我太菜了。┭┮﹏┭┮

STBC-空时分组码是一种在无线通信中使用的技术,用于在多个天线上发送数据流的多个副本,并利用各种接收的数据版本来提高数据传输的可靠性。传输信号必须穿过具有散射,反射,折射等的潜在困难环境,然后可能被接收器中的热噪声进一步破坏,这意味着一些接收到的数据副本将比其他更好。这种冗余导致能够使用一个或多个接收到的副本来正确解码接收信号的机会更高。实际上,空时编码以最佳方式组合所接收信号的所有副本,以尽可能多地从每个副本中提取信息。

也就是通过多根天线发送同一数据的多份拷贝,提高数据传输的可靠性。数据流通过无线传输时,可能因干扰或信号衰减导致部分数据丢失,而通过在多根天线发送同一数据流的不同拷贝,接收端可将不同拷贝整合成一份最优的数据流,使无线信号的传输更加稳定,并能够满足更远距离的无线传输。相当于一种多天线的方案。

上面这个协议的子集,我也回答不上来多少,但是按照我的理解,相当于动了一些底层参数的设计,比如更快的重新连接速度,因为飞机不能在任何的时候都处于不可控的状态。比如传输的速率可能是在距离,强度,带宽上面的综合值这样的。

这个4HZ是一秒吗?我也不太清楚

流媒体的参数,很不错啦!


实现的视频流优化算法(图传算法):

Parrot Gen4 Streaming(第 4 代)

“错误隐藏”

该算法减少了损失对网络的视觉影响,并实现了所有解码器的互操作性,同时确保了句法完整的流:丢失的图像部分被重建为跳过的部分,与参考图像的相同。

因此,毛刺包含在受损耗影响的区域内,不会扩散到整个图像。

下图说明了解码宏块的成功率,网络丢失率为 5% - 有和没有 ANAFI Ai 的高级流功能。该算法确保对 75% 的宏块进行正确解码。这些使用户能够继续执行他的任务,而不会出现屏幕冻结或流媒体丢失的情况。

希望它公开这个算法,看参数很不错

是一种补偿类的算法

特别的,飞行器还有可编程性。

mate数据是明文的

4千八百万的相机

看参数就觉得很牛逼,干啥不行

而且重要的还有变焦,数值的?插值的?

HDR10开启

4K60fps

毕竟机器人家也没有发布,我就给视频截图看看吧

我有点不敢相信这是直出的片子,有点美

这是对传感器的一个渲染,底的话。不是太大。

不过体积在哪儿,不可能太大了

哈哈哈,二次特写

更加的好看嗷!

它使用 Quad Bayer 滤色器阵列,其中 4 个相邻像素的组具有相同的颜色。通过添加来自四个相邻像素的信号,可以在照片和视频模式下获得实时 HDR 捕获。其动态范围是传统传感器的4 倍,具有规则的拜耳矩阵。即使是困难的场景,也能以最小的高光溢出或阴影细节丢失来捕捉。

所谓Quad-bayer排列,是指四个同色像素排在一起(这叫quad),如果我们把每种颜色的四个小像素作为一个整体来看的话,又是经典的bayer(RGGB)排列。重点想说的是,这样排列的初衷是因为应用于手机的图像传感器受到面积限制,一般单个像素size 在1um(正方形边长)附近。面积小导致低光场合进光量小,也就是光电变换激发的电子少,最终我们得到的图像偏暗。也就是说,这样的小尺寸决定了其夜景拍摄表现糟糕。为了解决单1um尺寸像素夜景能力较差这一现状,Quad排列产生了。很明显,最大实现了同色2um(边长)的尺寸,夜景表现大大提高。代价也很显然,图像的解析度变成了标准模式的1/4。这就是为什么我们最近常看到的4800万解析度的手机,夜景的时候只有1200万的原因。铺垫了这么多说正题,其实就一句话。相机的单像素尺寸一般都在3um以上,并不需要像手机采用Quad排列提升夜景表现力。

代码语言:javascript复制
作者:FAR0001
链接:https://www.zhihu.com/question/321136048/answer/1309788401

ANAFI Ai 镜头专为 Parrot 设计。它集成了 6 个非球面镜片,并针对低光学眩光进行了优化。

该镜头在标准视频模式下提供 68° HFoV,在标准照片模式下提供 64.6° HFoV。 水平视野,相当于是眼睛的角度~

HFOV:水平视角

VFOV: 垂直的视野

DFOV: 显示字段的视图

以下是 HFOV、 VFOV 和 DFOV 公式。

不同的镜头的视场角︰

实际测试图片︰

代码语言:javascript复制
https://www.jianshu.com/p/b56a6420c953?utm_campaign=maleskine

这个HDR的事情,我也没有太研究

这是参数表

上面的参数是摄像头本身的素质,但是这个是给我们的遥控器回传的视频流

他们使用的APP就是这个样子,有点好看

这个是HDR开启的对比效果

拍照模式

这些看看就行,飞行的时候也不讲究这么多

破案了,是数值变焦

6 倍变焦

变焦适用于所有照片和视频模式。

结合 48 兆像素传感器,即使使用 6 倍数码变焦,精确的锐化算法也能实现高清静止图像。

ANAFI Ai 用户现在可以在 75 m 处看到1 cm 的细节

高像素数还允许将 4K 视频裁剪为 1080p,几乎没有任何质量损失。

这个真不错,就是不知道具体效果怎么样了~~~

这个图片是全文最有科技感,里面装有安全芯片

查了一下是一个专门的无人机安全芯片公司

具体就是在这个飞行器里面加了安全芯片

启用4G时的安全连接

4G安全配对和强认证

当用户启用 4G 通信时,初始 WiFi 连接首先用于安全配对过程。在此过程中,用户安全地证明他已连接到特定的无人机。多亏了ANAFI Ai Secure Element,他无需在无人机内部配置任何密码即可做到这一点。然后,Parrot 服务器注册用户和无人机之间的关联。当用户与无人机之间的Wi-Fi连接丢失时,ANAFI Ai自动连接4G。ANAFI Ai 使用存储在安全元件上的私钥在 Parrot 服务器上进行强身份验证。Parrot 服务器会查找关联用户并启用 ANAFI Ai 和 Skycontroller 4 之间的配对。

使用 4G,ANAFI Ai 执行强身份验证以登录 Parrot 服务器。这种强身份验证意味着存储在安全元件中的客户端证书和唯一的私有 ANAFI Ai 密钥。

ANAFI Ai 支持 TLS、DTLS 和 SRTP 协议,以保护无人机控制和视频流到 Skycontroller 4。对于中国哈,需要考虑是不是还需要VPN访问Parrot服务器。啊这,头秃头秃起来。。。

这个是最牛逼的的地方,就是为无人机拍摄的照片视频都加了数字水印

代码语言:javascript复制
https://www.yeswehack.com/fr/

特别的,和这个安全公司合作。一起要挖掘无人机的方方面面的漏洞

这个飞行时间有30分钟,不够现在dji的机型也是这个参数

至于下面的参数,我觉得中规中矩

ANAFI Ai 螺旋桨叶片的 CFD 视图,右上角的ANSYS哈哈哈哈

确实一样呀

仿生学设计的新型仿生螺旋桨叶片采用类似于座头鲸鳍形状的前缘。

这允许更好的推进效率。对于相同的转速,推力增加。该效果相当于转子直径的增大。声学噪声也降低了,尤其是来自前缘的音调噪声。

因此,ANAFI Ai [1m 处为 71.5 dBSP (A)] 比 Skydio 2 [1m 处为 76.4 dBSP (A)] 更安静。

飞行参数,不过看了这些

确实感觉这个螺旋桨有点厉害

还是流体力学仿真图

这个是机载的传感器

一定有一个陀螺仪,融合制导使用

磁力计和GPS辅助使用

定高使用

居然没有北斗卫星

这个我研究了很久也不知道是哪个,大概率是主相机旁边的两个

代码语言:javascript复制
http://www.icbase.com/File/PDF/ONS/ONS85241911.pdf

在这里

通过找传感器,和参数倒是差不多

大概连接情况就是这样的,传感器的数据经过一个采集器,就是电压的收集器,接着就是DSP解算,变成我们日常使用的各种视频流

Tof也有安装,但是我不知道安装在了哪里

和相机搭配使用的也有一个陀螺仪,不知道装的几个

传感器融合算法结合所有传感器的数据来估计 ANAFI Ai 的姿态、高度、位置和速度。状态估计对于无人机的正常运行至关重要。当飞行控制器处于开环状态时,四旋翼本质上是不稳定的;为了轻松驾驶它们,更不用说自主操作它们了,有必要通过闭环控制算法来稳定它们。这些算法计算并向电机发送 ANAFI Ai 达到所需轨迹所需的命令。在室内飞行的时候,其实就是没有 GPS 信号的情况下,ANAFI Ai 主要依靠垂直相机测量来估计速度和位置。

室内飞行的时候有两种算法来定位:

1.用于速度估计的光流

2.位置估计的关键点检测和匹配

由于 ANAFI Ai 配备了一对位于垂直相机旁边的 LED 灯,垂直相机算法仍然能够在低光照条件下运行。这些使无人机能够保持稳定性,特别是在室内飞行或在 GPS 拒绝的环境中飞行时,距离地面低于 5 m。LED 灯功率会根据算法的需要自动调整。这个很好,不过是低飞的时候有效。

自主飞行必不可少,接下来来说明它的实现

3D 环境感知是实现自主飞行的关键能力,尤其是在障碍环境中。它是保证障碍物检测和避障的条件,可以减轻无人机操作人员的监管负担,提高任务成功率,保证飞行器的安全。需要一种高效的感知解决方案来释放飞行相机的全部潜力,使其能够在各个方向自由平移和旋转而不受约束。特别是,感知系统必须允许在与平移飞行运动一致的方向上捕捉周围环境的信息——无论相机的方向如何。

ANAFI Ai依靠独特的基于两个机械云台的技术方案来解耦主摄像头和感知系统的方向:

1.主摄像头安装在俯仰-滚转-偏航 3 轴云台上,使其 3D 方向独立于无人机的方向

2.感知系统安装在一个单轴俯仰万向节上——结合无人机的偏航运动,它可以朝任何方向定向

两个云台的俯仰轴共线合并,实现超紧凑设计


通过这种解决方案,可以将主摄像头和感知系统指向两个不同的方向。这种设计避免了在无人机的侧面、顶部、底部和背面使用昂贵的摄像头,同时仍然为感知系统提供了一个大的可访问视野。


这些相机在一条水平轴上

两个小的相机在主相机的两边

就看倒数第三个,两个摄像头是sync变化的

双云台

主摄像头云台为俯仰-横滚-偏航三轴云台,规格如下:

  • 俯仰限位器:-116°/ 176°
  • 滚动终点限位器: /- 36°
  • 偏航终点: /- 48°

感知系统云台为单轴俯仰云台,规格如下:

  • 俯仰限位器:-107°/ 204°
  • 从一个起点到另一个终点的时间:300 ms

感知系统受益于 311° 的行程(296° 被无人机机身揭开),允许向后感知。

ANAFI Ai感知系统的瞬时垂直视野和终点停止


1.螺旋桨叶片无法进入主摄像头的视野

2.主摄像头不会遮挡感知系统的视野

3.主摄像头和感知系统都可以完全向后倾斜以保护镜头,在存放期间或在飞行中遇到紧急情况时


ANAFI Ai感知系统的水平视野

ANAFI Ai 在完全倾斜位置后退飞行时的感知


自动飞行时会发生什么?

自主飞行周围3D环境的重建分两步进行:

1.从感知中提取深度信息,作为深度图

2.将深度图数据融合到 3D 占用网格中

两种方法用于从感知传感器生成深度图:

1.立体匹配的深度

2.运动深度

立体匹配深度

用于深度信息提取的主要方法依赖于感知系统的两个立体相机之间的视差。通过在同一方向但从两个不同位置拍摄环境,感知系统视野中的物体出现在两个摄像头拍摄的图片中的不同位置。物体越近,这种位置差异就越接近。

因此,该策略包括识别左右立体相机生成的图片中与感知系统视场中的相同特征相对应的点,并测量这些点在两张图片中的位置差异。这种差异称为视差,以像素数来衡量。

立体视觉原理图解——红色3D光斑出现在左右图像的不同位置


然后可以使用以下关系将视差与这些点中的每一个的深度联系起来, 深度 = 焦点 * 基线 / 视差 ,其中深度和基线以相同的单位表示,焦距和视差以像素数表示。

计算结果采用 176 x 90 像素深度图的形式,其中每个像素的值对应一个深度,以米为单位。深度图以 30 Hz 的频率更新。

ANAFI Ai感知系统右侧摄像头拍摄的图像示例(左)和立体匹配得到的对应深度(右)。颜色图从红色(更近)到紫色(远)——白色意味着“遥不可及”


一个直接的结果是通过这种方法测量的深度被离散化,因为视差只能采用离散值(像素数)。距离感知系统足够远的 3D 点会产生小于一个像素的理论视差,因此将被视为无限远,因为相应的实际离散视差将为 0。立体匹配方法的精度因此随着距离的增加而降低,尽管存在通过实现子像素离散化来减少这种现象的方法。

通过“立体匹配”与“真实深度”测量的离散深度

此外,视差随着深度接近零而发散。由于图像中像素的数量是有限的,因此视差的值也是有限的。因此,存在感知系统失明的最小深度。ANAFI Ai 的最小深度值为 36 厘米(14.2 英寸)。

关于校准:每对立体相机都经过工厂校准,以精确测量两个相机之间可能存在的轻微错位,并在板载深度计算中对其进行补偿。

用户还可以使用包装中提供的测试图案重新校准立体相机对。特别是,在某种程度上,无人机能够检测在其生命周期内可能发生的潜在校准错误。在这种情况下,无人机软件将尝试对其进行调整和补偿,否则,将出现要求重新校准的通知。

运动深度

还可以利用飞机的运动从不同的角度收集环境图像,从而重建深度信息。这种方法称为运动深度,或单目感知,因为单个移动相机足以收集深度信息。

其原理类似于立体视觉,但不是比较不同观察者同时获取的环境图像,而是比较同一观察者不同时间的环境图像。如果无人机在移动,将从不同角度获取来自这个独特观察者的图像。知道拍摄每一帧的姿势后,可以对不同图像中与相同特征相对应的点进行三角测量并放回 3D。

这会产生一个 3D 点云,其中包含多达 500 个 ANAFI Ai 点,以 10Hz 生成。

通过运动深度产生的点云示例 - 颜色图从红色(较近)变为紫色(较远)

ANAFI Ai 中的运动深度算法通常比立体匹配算法生成更少的信息(稀疏点云),并且需要无人机移动来收集信息。此外,该算法无法在准确的运动方向(至少对于直线平移)提取信息,因为在这个方向上,图像中的对象几乎是静止的(扩展焦点)。

但是,它具有比立体匹配方法更好的检测范围(理论上为无限范围)。

占用网格

来自立体和单目感知算法的深度信息被整合到一个占用网格中。该网格将 3D 周围环境离散为 3D 立方体,称为体素。每个体素被赋予一个被障碍物占据的概率,或者相反,没有障碍物的概率。

光线投射算法用于将深度信息集成到占用网格中。对于由立体匹配的深度生成的深度图的每个像素,转换为3D点,对于来自运动的深度的点云的每个点:

  • 从感知系统的位置到 3D 点的位置,在占用网格中投射一条射线。
  • 包含3D点的体素被占据的概率增加
  • 射线穿过的所有体素(除了包含 3D 点的体素)被占用的概率降低

Raycasting 原理——右边是立体匹配产生的深度图,左边是占据网格的二维切片。对于深度图的每个像素,一条光线从感知系统的位置投射到 3D 点,该 3D 点由感知系统视场中与该像素对应的方向及其相关深度给出。射线穿过的每个体素占据的概率降低,而在射线结束的体素中占据的概率增加。


因此,网格既可以作为深度信息的时间过滤器,吸收深度测量中的任何潜在噪声,也可以作为之前采集的记忆,即使没有连续的 360° 视野,也可以在复杂环境中导航。感知系统。

占用网格示例。占据高度置信度的体素叠加到右侧立体相机的视图中,颜色从红色(近)到紫色(远)。

代码语言:javascript复制
https://developer.parrot.com./

兜兜转转来到了我们最喜闻乐见的开发阶段

这个页面是独立于产品的网页的

代码语言:javascript复制
https://github.com/Parrot-Developers

老实讲,这个star不多

我已经翻的很靠下了,也没有

这个吧,还没有出来。。。开发中

渲染的样子就是这样,很大方的界面

这个倒是有个文档来着,不过很简陋

代码语言:javascript复制
https://developer.parrot.com./docs/groundsdk-android/overview.html

支持安卓7.0以上的版本

经过一番设置以后,就可以编译出来一个APP

主要是这三种组件

代码语言:javascript复制
https://github.com/Parrot-Developers/groundsdk-android

安卓开发的SDK,我们打开看看

比如我们对这个流感兴趣

可以看到。。。啥也没有,用到再说

这个把其实在安卓和苹果端都实现过一个我觉得较为小型的SDK引擎

这个应该是想包装成别的接口

ROS里面的玩意儿

这个可用

这里可以用!

Python接口,很丰富嗷

源码

需要用到的包

代码语言:javascript复制
https://developer.parrot.com/docs/sphinx/

以往的文档

可模拟飞行器

代码语言:javascript复制
https://developer.parrot.com./docs/olympe/arsdkng.html#messages-reference-documentation

SDK本质上是给飞行器发送这些命令

代码语言:javascript复制
# -*- coding: UTF-8 -*-

import olympe
import time
from olympe.messages.ardrone3.Piloting import TakeOff, Landing

DRONE_IP = "10.202.0.1"


def main():
    drone = olympe.Drone(DRONE_IP)
    drone.connect()
    assert drone(TakeOff()).wait().success()
    time.sleep(10)
    assert drone(Landing()).wait().success()
    drone.disconnect()


if __name__ == "__main__":
    main()

例如这个就是一个简单的起飞指令

代码语言:javascript复制
https://developer.parrot.com./docs/mavlink-flightplan/overview.html

这里插一下这个

兼容标准的MAVLink协议

代码语言:javascript复制
https://mavlink.io/en/file_formats/#mission_plain_text_file

上面的网站有详细的协议解读

可以给无人机设计配件

解压出一个文件,但我没有相应的编辑器就看不了了


文章的小尾巴在下篇文章中解决,敬请期待!

0 人点赞