自 Tello 发布以来,许多 Tello 玩家将自己的 Tello 开发出更丰富的功能。有的玩家使用 Tello 搭载玩偶,有的玩家根据 Tello EDU 的编队功能进行炫酷展示,当然,也有一些开发者基于 Tello 的 SDK 功能开发出很多新奇好玩的功能。
aTelloPilot 是独立开发者 bluejune 基于 Tello SDK 开发出的适配 Tello 的安卓 App 应用,除了支持 Tello App基本功能之外,可以通过 APP 使用 Parrot FlyPad、Gyro 手柄等其他蓝牙手柄控制,并且支持人脸识别追踪、无头模式、航线地图、自动返航、飞行信息保存等新功能。
人脸识别展示
bluejune 从五年前就开始玩无人机,今年三月开始了解到 Tello,他觉得 Tello 不仅是一款很优秀的玩具无人机,更加是一款很棒的开源遥控无人机,因此,他基于之前为 MultWii 开发的BTcon4Drone 安卓 App,重新开发了 aTelloPilot,以下是访谈记录。 1.你的工作是什么?是否是独立开发者?
实际上我在一家手机芯片公司工作,但是我喜欢自己组装一些无人机以及开发一些软件,这些都算是我的业余爱好
2. 你玩无人机多久了,什么时候开始了解到 Tello 的?
大概五年了,但是比起玩无人机我更喜欢亲手组装他们,我在 3 月了解到 Tello,并且 Youtube 上看了 Tello 的评测,Tello 不仅稳定,而且画质比一般的玩具无人机更好,并且很平价。
3.为什么想到要给 Tello 开发一款软件,以及大约花了多长时间开发?
实际上我之前基于 MultiWii 这款开源无人机(MultiWii 有摄像头和一些传感器,并且在 Github 上有开源代码)制作过一款叫做 BTCon4Drone 的 App。 一开始我只是想简单的把 Tello 的一些功能整合到这个 App 里,但是我后来发现 Tello 的控制操作十分稳定,画质也非常好。和之前的 BTCon4Drone 只能手动控制飞行不太一样,所以我决定再单独给 Tello 做了 aTelloPilot 这款软件,并且加了很多新功能,基于原有开发的 App,大约花了三个半月开发 aTelloPilot。
4.在开发过程中你觉得最难的部分是哪里?哪个部分耗时最长?
在我开发的时候 Tello 还没有开放视频流,网上的 SDK 文档也都是一些很简单的命令,所以我开始研究移动设备和 Tello 之前的 Wifi 包,并且反编译 Tello App, 以此获取了一些线索,但是由于 App 包加密,所以还是比较困难。
5.这个 App 里你觉得最满意的功能是什么?用户最喜欢的功能又是什么呢?
用户最喜欢的是「人脸跟随」功能,因为 Tello APP 里不支持,实际上这个功能开发并不困难,因为Google 有很好的开源 face tracking 的库。 还有一个「自动返航」功能用户也很喜欢,我自己不怎么用,但是我在论坛上看到有一个用户使用WiFi 中继器,操控 Tello 飞行了 300 米,然后使用了「自动返航」功能飞回了 Tello,我看到这个还蛮开心的。
6. 能给我们的 SDK、软件以及硬件提供一些建议吗?
SDK 1.3 挺不错的,现在可以接受视频流,并且可以获取很多 Tello 的状态信息,但是当视频数据一旦发生损坏,就很难正确的翻译这些图像数据。(他可能用的是相对式的解码方式,然后有数据丢失的时候就对不齐了)
我建议最指南针传感器最好可以使用绝对方向(东南西北),现在飞机起飞前会认定起飞时候机头朝向作为初始朝向。另外,我希望 Tello 可以像 Parrot Mambo 一样加一些硬件的拓展接口,这样能拓展更多的 Tello 玩法,乐趣会更多,以及在 app 中可以控制这些配件,那就更好了!
Tello SDK 是Tello所开放的一套字符串格式的指令集,用户只要通过与Tello建立Wifi UDP连接,即可向Tello发送控制指令或查询接收数据,实现对Tello的交互和控制。 比方说,通过up,forward,flip等指令,你可以控制Tello的平移和旋转;通过battery?,speed?等指令,你可以查询Tello的电量和速度等信息;甚至,通过streamon,你可以接收到来自于Tello摄像头的实时视频流,通过对视频流进行图像识别和处理,结合Tello SDK里的运动控制指令,你可以创造出诸如手势控制,肢体控制和物体追踪等有趣的功能。 此外,在Tello SDK2.0中,新增了与mission pad相关的指令,可实现对Tello 的精准定位控制,还支持设置Tello进入station模式,从而使多架Tello组网并进行编队飞行成为可能。
更多关于 bluejane 的开发资料,请访问
|