大疆社区

标题: 关于SDK,我有些想法想拿出来和各位探讨一番 [打印本页]

作者: movieqiu    时间: 2015-8-14
标题: 关于SDK,我有些想法想拿出来和各位探讨一番
说明一下,小弟在监控领域做集成系统快10年了,可能会有思维惯性,另外,毕竟接触大疆的SDK不久,若有理解的不准确的地方,欢迎大家批评指正。

首先我对于大疆开放SDK的理解,应该是希望通过这种方式,丰富自己的产品的使用方式,培养足够多的下游产业。

应该说想法非常好,大疆也花了不少心思做了很多实实在在的事情。
比如mobile的SDK,提供了iOS版本和Android版本,能够视频、拍照、飞行控制、参数配置等常用功能,板载的onboard SDK也提供了一些核心控制功能。

但是,这样做真的对于大疆是利益最大化的吗?我不这么认为,基于以下几个方面。

1、操作系统的选择范围。比如虽然提供了iOS和Android版本SDK,但是工控领域最大的两个操作系统平台windows和Linux就这么被遗忘了。不能因为大家现在的手机、平板是这两个操作系统,就忘记了我们现在的ATM机、地铁闸机、工厂里面的工控机还有成千上万的工作用设备是被他们霸占的。真要培养下游,不应该放弃这些操作系统。


2、SDK的开发效率和维护成本。比如我刚刚进开发者社区,就看到一个帖子叫做“Full of bug SDK”,里面的内容我也是会心一笑,大疆的软件工程师们估计也鸭梨山大吧。再想象一下将来,如果无人机上能集成的功能增多了,SDK能运行的操作系统平台多了,iOS和Android的版本也不停升级、要考虑兼容性问题了。未来,开发SDK的工程师队伍要花多大的精力去维护他们,这个问题必须认真想想。

3、未来的产品线、下游行业的想象力。我是这样来解读目前的SDK功能的,基础部分包括了配置、飞行数据、遥控器等功能,就是能让无人机飞的;云台、照片、视频则是进阶的附属功能。如果按照这种分类方式,比较容易在未来联想到其他的附属功能大类,比如各种传感器、比如一些机械控制装置、比如雷达(开一下脑洞哈)。如果混在一起,那么大家的想象空间可能就会受到极限,觉得大疆的飞机只能用来拍个照录个视频了。

4、大疆的核心竞争力。在我一个外行人看来,大疆的飞行控制技术、产品设计和生产能力是最核心的,必须牢牢把握,并且加强加强再加强。要不断追求载重更重,飞得更快更稳。那些相对来说,其他的非核心竞争力——至少目前不是主要竞争力的地方——就可以适当放开一些。不是不做,而是怎么做,请接着看。

5、附属功能的封闭性和开放性考量。据我搜索了一些社区的帖子,看到官方的一个说法是“遥控器和飞机都内置了高清图传设备,使用的是高清图传设备进行传输。使用的内部协议无法进行公开,望见谅”,就令我有些费解。如果说飞行控制是核心技术,部分协议封闭是可以理解的,那么图像部分也必须封闭就有待商榷了,包括视频解码。现在主流的视频编码芯片就那么几家:TI、安霸、海思,编码格式mpeg/.264/.265之类,解码更是基本上逃不脱ffmpeg。也就是说在图像这一块,按照个人浅见,大疆是不可能另起炉灶全部重新来过的。既然如此,是不是可以考虑更加开放一些,甚至支持某些标准协议,比如视频监控领域的onvif、GB28181。那么,以后再支持类似的标准协议,modbus也好、SNMP也罢,都顺理成章。核心+不同附属功能的组合,产生不同定位的产品。

6、
创造力和下游的开发想象空间。比起开放式的协议,SDK的限制会更大一些。举个简单的例子,在一台设备里面做16路高清1080p的同时解码,这是目前监控行业一个卖点级功能,需要在特定的平台、CPU上,在特定的解码和渲染环节做优化。如果是SDK的方式,很有可能在某些环节由于被封装了,导致无法实现、或者实现了效率也很差,完全无法商业化。而协议级别的开放,对于有能力做这些功能的厂商来说,完全可以使用自己行业特有的方法来完成任务。

基于上述原因,我提出如下建议,请大疆的各位兄弟考虑一下可能性:
1、以提供协议、而非特定SDK的形式对外开放。作为行业第一的企业,心胸要开阔、志向必须远大。无人机行业没有标准,行业第一当仁不让。将需求划分清楚、将功能细致归类以后,把非核心的协议,或者说就按照目前SDK能提供的功能、以标准协议的方式公开。这种制定标准的事情的收益,我想应该不必赘述了。


2、将SDK开源,让生态圈共同维护。目前的SDK肯定还有一些问题和bug存在,没有关系,放到github上去让大家一起维护,而不是仅仅提供几个Demo程序。github上现有的几个项目的star和fork的数量和大疆在业界的地位还不相称。应该想办法做到协议相对稳定,SDK则是更新及时、种类频繁。如果有人为了某些需要,愿意发起新的SDK,并且是一个潜在的方向的,更是应该给予一定的支持。


3、对附属功能进行更加清晰明确的划分和归类。虽然现在还没有,但是蓝图必须要有,未来的发展规划要想好。然后逐步公开和实施,引导产业链跟进。


以上只是一些个人浅见,即使有各位不认同的地方也没关系,只是希望中国的企业能够做大做强,衷心祝愿大疆能够更上一层楼。

ps,网站的页面规划感觉稍微有点乱,更新不及时,从SDK页面(http://dev.dji.com/cn/products/sdk/onboard-sdk/features)点击“社区”->“大疆社区”按钮,会被导到一个不存在的论坛(http://forum.dev.dji.com/forum-72-1.html),然后顺着点就回到英文论坛(http://forum.dev.dji.com/forum-90-1.html)了。“Full Of bug SDK”那个帖子就是在那里看到的。实际上对于中文开发者来说,论坛应该在这里,刚开始我也是被困扰了一下。




作者: siberiamark    时间: 2015-8-14
onboard SDK 不是已经出了吗
作者: movieqiu    时间: 2015-8-14
siberiamark 发表于 2015-8-14 09:30
onboard SDK 不是已经出了吗
我的理解,onboard SDK是通过自有硬件、以有线连接在无人机上进行控制的接口,和我提到的扩展能力、开放式接口是两回事。



作者: lanyusea    时间: 2015-8-14


0. 您一定是个非常好的产品经理(逃

1. onboard SDK 支持 windows 和 linux。
以及一个飞行器飞什么要培养 工厂、ATM机、地铁闸机 做下游?
mobile SDK的定义就是mobile,定向就是给手机开发者的。
DJI 家的飞机目前来看都是以航拍为主,航拍相关的应用都是在手机上运行。一是方便、二是效率、三是门槛低。
您做监控的自然看不惯这我理解,所以DJI才出了M100来试水更大的拓展平台。

2. 我之前也是这么吐槽的,直到我后来知道mobile SDK组只有4个人,统筹了整个ios android以及发布测试客服的功能。
我心里面就只有Orz了…
功能是一直在增加的,我从测试版 0.1 开始用起,一直用到前天刚刚发布的 2.3 ,你可以去看看release notes,每一版都在改bug,都在不停的新家功能。没有原地踏步,东西都在一点一点系统起来。
兼容性什么的,因为有DJI GO做后台资源,说实话不是大问题。

3. 现在就能做到。现在就是这么搞的,API分为1级和2级。
M100的传感器guidance有sdk。自己装的传感器,当然自己负责咯。啥都要连进 DJI 飞控你是有多懒…

4. 这不就是 M100 么。把稳定的飞控拿出来给你们做平台,自己想干啥就干啥。

5. 解码这方面就是H264裸码,这个早就公布了,拿到码流之后自己随便解。
但高清图传那东西真心不是随随便便就能公开的。我见识少,但就我所知,全世界能做到以公里为单位的高清图传我只知道两家公司,一个是DJI,另一个是一家以色列做监控的公司。
听说DJI搞高清图传说用了两三年才做到今天这样的,你看看X度X航遥控器信号就几百米,别说图传了…
图传协议能随意公开?别闹了哥哥…

6. 然而为什么一定要用无人机做监控… 即便要做以SDK的方式来搞肯定是鸡肋,你这条路就选错了,再拓宽也没用。


1. 恕我愚笨 SDK 不就是协议么…

2. 开源的事情已经在推了。底层涉及到固件的东西完全不可能给你开,飞机那面的接口闭源之外,onBoard协议部分完全开源,mobile SDK开源个人感觉一样不大,不如给一个完善的文档+一个打包好的library。但 DJI 他们也决定要推了(摊手)。
以及DJI不是互联网企业,不需要看github fork数…  搞无人机的用github为主要平台的一是ARDrone二是3DR,因为人家家的飞控就是开源的… 没可比性。

3. 作为一个经常和 SDK 组打交道的人我表示是有的。


以及论坛的事情我表示那个你进不去的论坛是存在的,不过正处在测试阶段。
将来会把SDK的论坛单独从社区里面拿出来,成为一个单独的讨论地。
所以你进不去很正常,lel~


说实话,这好几个月在论坛上看到的类似的帖子太多了,没什么冒犯的意思,但真心想感叹一句:

有 idea 和有想法的人太多了,这个世界真心缺的是做事情的人。

作者: movieqiu    时间: 2015-8-15
lanyusea 发表于 2015-8-14 12:00
0. 您一定是个非常好的产品经理(逃

1. onboard SDK 支持 windows 和 linux。
0、逃?你是轮子哥的粉丝吗?哈哈。多谢回复了那么多内容。其实我算不上标准的产品经理,也不知道属于什么类型,写过3年代码,管过3年项目,做过3年产品,带过更长时间的团队。说不准我的思维模式更偏开发还是产品。

1、ATM、闸机只是用来类比,我想应该能理解的。

2、误会主要是来自于对这两个词的理解,SDK和协议(protocol)是两码事啊。SDK是Software Development Kit的缩写,一般会指定自己运行的环境,就好像现在指定了在iOS和Android上运行一样。protocol则会更通用一些,比如指定了视频传输的方式是rtsp的,那么我不管是用VLC还是自己写软件,都可以在网络上获取码流进行播放。操作系统无关!

3、小弟不才,也算略懂软件开发。因此,我非常能够理解4个人做这些东西做的不要不要的感觉。我不是在责备他们的东西有bug,而是凭着个人的经验和直觉,想指出整体方向上可能就存在问题,亟需改变。我非常担心,随着操作系统升级带来的兼容要求、版本的分支和碎片化情况加剧,维护SDK的人要被活活拖死。

4、高清图传不了解,没有发言权,但是我认为只要想做,总归是有办法做到公开可以公开的协议但是不泄露商业核心的。

5、关于监控,真没说一定要用无人机做监控啊。没看我都在用“比如”、“举个例子”嘛。比起监控,我还想用无人机撒农药、用无人机测洋流、用无人机进行广域播音呢。请勿断章取义。况且本人现在也不在监控行业了,跳出来以后才有“不识庐山真面目,只缘身在此山中”的感受,才发现以前的专注是一把双刃剑。

6、大疆是实实在在做事的企业,我喜欢这种风格。但是,为了更上一层楼,需要有人站在更高的层面去看待一些问题、想办法去务一些虚的东西,例如行业标准。

7、所以如果真的有不少人提出了类似的看法,或许你也可以帮忙整理整理,反馈给大疆内部。立场不同,观点也许迥异。但是既然客户的声音都跑到家门口了,收集一下何乐而不为。

最后,言尽于此,该说的也说的七七八八了,就这样吧。忙其他事情去也,88~~~






欢迎光临 大疆社区 (https://bbs.dji.com/) Powered by Discuz! X3.2