MultiWii飞控

纵观使得无人机得以实现的三大突破—电机、电池、控制系统 , 我发现控制系统是最有意思的 。 也许是写代码的职业生涯给我带来的偏见 , 但好歹我也是带有些人情味的 。 当然 , 也有些人有真实的关于开发我们的电机和电池的故事 , 但是这些故事都被深埋在那些享有专利的公司之中 。 不过我们在这儿寻找的那些飞行控制器基本上都是些开放资源 , 所以关于他们自主开发的故事也将被公之于众 。
我们将寻找几个关于无人机控制系统的项目 。 这些项目都已开发了可以在无人机上运行的软件 , 用以控制无人机并使无人机稳定飞行 。 同时 , 许多项目也已经包含了地面控制台软件来监控以及调整无人机 , 甚至是开放式资源的硬件规范 。 我们将追溯每个项目的历史 , 并找出一个选择该系统而不是其他系统的理由 。
MultiWii
MultiWii飞控
文章图片
MultiWii有着出色的稳定控制性能
MultiWii是一个用于控制多旋翼模型的通用方案 。 最初 , 它只是开发用于支持搭载陀螺仪和加速度计的NintendoWii控制手柄 , 目前已经支持多种传感器类型 。
结尾处的这两个“i”是参考了任天堂的电视游戏系统 。 当固态陀螺仪第一次被用于商业产品时 , 最早使用它们的一种产品正是Wii控制器 。 在当时 , 不计其数的Wii控制器被拆解开 , 就因为这是得到芯片最可靠的方法 。 同时 , 一个使用从Wii控制器里得到的陀螺仪开发出来的完整的控制系统被连接到Arduinos用来控制多轴飞行器 。 这个项目就以MultiWii这个名字而被知晓 。

MultiWii飞控
文章图片
MultiWii飞控】MultiWii是基于Arduino的开源项目 , 能为各种平台提供自稳控制 , 被广泛的用于多轴飞行器与航拍 。 除飞控以外 , 该项目当前还包含有适用于自己通讯协议的的视频叠加方案 , 地面站配置工具 , 以及一个第三方的基于Arduino的I2C接口的GPS导航模块 。

MultiWii飞控
文章图片
任何人都可以在Arduino平台上开发
最原始的Wii控制器只有加速度计并没有陀螺仪 , 所以它不足以控制飞行 。 使用运动扩展或者是双节棍就可以使一个控制器有3个陀螺转子 。 一些最早的MultiWii控制器没有加速度计 , 因此没有绝对的参考标准 。 但是使无人机摇晃、倾斜、偏航变得稳定的比率提供了有效的控制使其飞行 。
也许有人会说 , MultiWii飞控早就过时了 , 说的没错 , 但是对开发者来说 , 它有着相当重要的入门意义 。 相比浩如烟海的APM源码库来说 , MultiWii飞控的代码量算是相当的小 , 有基本编程经验的人 , 花不多时间就能理顺整个飞控的控制流程;同时MultiWii飞控的功能也是简洁可靠 , 用于飞行器的自稳控制并不比其他当前主流飞控差;虽然当前基于GPS的飞行模式还不够成熟 , 但是其GPS导航模式已经可以可靠工作 。 所以 , 挖掘其中的价值还是很有意义的 。

MultiWii飞控
文章图片
可以编写MWC的板子
MultiWii的发展已经像无人机控制器一样成熟了 , 也正因为如此使得许多分支项目诞生了 。 这包括了其中最著名的Baseflight和Cleanflight , 之后我们将在本章加以介绍 。 这项技术的成熟意味着将产生各种程序支持 。 MultiWiiConf , 这个主要配置程序已经可以在所有的主要桌面和手机平台上使用了 。 因为一些分支项目已经以MultiWii串行协议(MSP)维护了兼容性用以交流沟通 , MultiWiiConf和许多MultiWii支持程序同样也可以用其他控制系统了 。
当MultiWii支持GPS稳定性时也有许多面向最新传感器的实验版本 , 这确实有它自己的局限性 。 MultiWii这个名字中的“Multi”意味着它是用于多轴飞行器 。 的而不是用于直升机的 , 当然也不是用于固定翼飞机的 。 它也不能完成一些复杂的、自主的任务 。 (后者正是我们寻找下一代无人机控制系统的动力 。 )
第一架MultiWii三轴飞行器第一架使用MultiWii的飞行器是AlexandreDubus在2010年制造的一架三轴飞行器(见图) 。 它只有一个陀螺仪(没有加速度计) , 所以它并没有什么参考价值 。 不过 , 据报道这架三轴飞行器飞行得却非常棒 。

MultiWii飞控
文章图片
第一架使用MultiWii的三轴飞行器