从代码自动生成谈起:论飞控软件设计的新模式——翼朝自动化开发与设计工具

        

1. 无人机系统集成不简单

  纵观近两年来国内外的无人机行业,除了大疆(DJI)这枚独秀,其他消费级领域的无人机企业大多处境艰难。零度事实上已被大疆收编;亿航一提起来只被人记得PR做的好;Yuneec新产品乏力、人才流失被讨债;法国Parrot公司的无人机部门大量裁员。在大疆强大的创新与研发能力面前,既便是最早推出娱乐多旋翼机的Parrot也败下阵来,其他没有扎实产品研发实力的公司更是被一步步逼入困境。

  无人机是一个技术驱动的产品,残酷的现实表明,即便在开源无人机技术普及的现在,即使有大额的资金和大量的人力资源投入,想研发一款性能优异的产品也是件困难的事情。近几年来,在农林植保、国土测绘、电力公安等各类行业需求的推动下,大量的无人机企业争相向市场提供工业级无人机产品,其中大多数竟然没有经历严苛、专业的无人机系统设计与研发环节,也没有高精尖工程师的开发工作介入,仅仅是按照DIY航模法拼装而成的!从行业角度看来,飞控系统开发环节的含金量不足,必然会在不断高涨的应用需求和市场竞争中败下阵来----因为无人机的系统开发与集成,一点都不简单。如果既不想寻求高精尖的人才,也不想采用高精尖的开发工具,那么,后面的内容,就与你无关了。

2. 无人机飞控系统设计与开发的重要性

        无人机也叫做飞行的机器人,是一种典型的软硬件结合、机电一体化的产品。无人机产品遵循一个准则:硬件决定性能边界、软件发挥硬件性能并定义无人机的行为。 不同的行业应用需求,要求无人机具备自主环境感知、运动规划、特定目标识别跟踪等复杂功能,这对软硬件都提出了更高的要求。国内外有十余家专门从事高性能芯片方案研发的企业,无人机生产商可以无差别的获取到同等级别的硬件方案,同时通过软件系统开发来实现无人机产品性能的差异化。类比手机行业的发展,依靠各芯片厂家提供的解决方案,小微企业也可以快速研发出一款手机,使得市场竞争迅速从蓝海进入红海。紧接着,首先被淘汰的是没有核心技术、性能缺乏竞争的产品,最终成功的手机厂商必然是通过优秀的系统设计和软件开发能力步入繁荣之道的。

无人机作为一种飞行的机器人,本质上是“Software-driven mechanical system”,是软件驱动的机电系统;任何一家想有所作为的无人机公司,都不会放弃定义自家产品行为和特性的机会。随着低成本激光雷达产品、具备深度学习能力的高性能飞控芯片方案、以及多种自动驾驶传感器产品的成熟,无人机飞控系统的软件开发难度和代码量级必然大幅增加。无人机企业需要借助更为高级的软件开发理念和工具,革新软件开发流程,确保完成海量飞控代码的编写和测试。

3. 什么是代码自动化生成

        代码自动化生成代表的是一种基于模型的设计方法。这种方法在汽车行业应用较为普遍,并且逐步在航空航天领域推广开来。在汽车电子行业,2010年之前,大多数控制软件,比如发动机控制软件,自动变速箱控制软件都是手写C代码实现。欧洲汽车行业使用很多外包公司来完成这项重复性极高的脑力劳动工作。一个大型软件比如发动机控制软件的开发, 需要超过上百个码农进行协同工作。2010年以后至今,汽车行业手写C代码的情况已经非常少了。根据英飞凌公司的分析,到2020年,手动C代码在整个汽车行业所占的比例会只剩下10%左右。

从代码自动生成谈起:论飞控软件设计的新模式——翼朝自动化开发与设计工具_第1张图片
图1 英飞凌公司对手写代码和自动生成代码比例的预测

以下图2和图3,对比了传统手写代码开发过程和自动化代码生成的开发过程。显而易见,自动化开发方式有以下优点:

(1)节省了编写文档、码农编码的时间,并且不需要大量的码农了。
(2)算法设计人员可以自主完成产品功能的修改和实现,不需要多位码农或者嵌入式工程师介入,简化了流程、提高了早期验证效率。
(3)软件一致性增强,不会因为人员流动影响代码质量。
(4)图形化设计,文档自动生成,便于交流和维护。
(5)生成的嵌入式代码经过自动优化,编码质量相当于5年经验的码农。
(6)适用于大规模软件开发管理。


从代码自动生成谈起:论飞控软件设计的新模式——翼朝自动化开发与设计工具_第2张图片
  图 2  传统手写代码开发流程
从代码自动生成谈起:论飞控软件设计的新模式——翼朝自动化开发与设计工具_第3张图片
图3 自动化代码生成开发流程

4. 飞控软件开发过程中的其他问题

        之前提到的代码自动生成方式,仅仅代表着基于模型的设计方法。将这种方式用在飞控软件的开发环节,必然是一个有效利器,但并不能解决飞控软件开发环节中面临的其他问题。比如:

(1)飞控系统的调试依赖于工程师的经验,而这些无边又无形的经验存储在工程师的大脑中,很少通过软件或代码的方式记录下来,无法工具化使用;
(2)市场上尚无针对无人机飞控系统算法开发的设计工具和测试工具,例如无人机系统辨识与建模工具,飞行性能评估工具等。
        
      那么,如果有了将专业知识和工程师经验模块化的自动化开发与设计工具,并且支持代码自动生成,无人机企业,你怎么看?

5. 翼朝无人机系统自动化开发与设计工具UADDT(UAV Automatic Development and Design Tools)

        翼朝无人机系统自动化开发与设计工具UADDT(UAV Automatic Development and Design Tools),为产品设计工程师和测试工程师提供了方便快速、基于测试数据的GNC系统(Guidance,navigation and control,导航、制导与控制系统)软件解决方案。提供经过工程验证的算法库和设计工具,提升研发效率,优化系统性能。
        翼朝无人机系统自动化开发与设计工具以MATLAB为平台,针对无人机飞控系统进行设计、分析和仿真,提供大量专业函数、GUI及设计工具。
(1)系统辨识与建模——基于实际试验数据,获取飞行器动态模型;通过系统辨识方法,建立精确的飞行器数学模型。
(2)控制性能评估与优化——基于实际试验数据,量化飞行性能;自动调整飞行控制系统参数,获得优化的飞行性能指标;集成多种控制器结构与先进控制算法,可以实现多种算法之间的切换。
(3)多传感器数据融合——基于实际试验数据,建立传感器数学模型,并完成数据预处理、数据融合等。支持IMU、气压计、超声波测距、激光测距、光流传感器、深度相机等常见传感器。数据融合结果提供飞行器姿态、位置信息,以及周围环境信息。
(4)自动生成可执行代码——利用matlab 工具,可以直接获得可以在嵌入式实时系统中使用的c语言代码,以及在ROS系统中使用的代码文件。

你可能感兴趣的:(从代码自动生成谈起:论飞控软件设计的新模式——翼朝自动化开发与设计工具)