声明:该设计资料来源于网友eeworld-lb8820265的开源分享,仅供学习参考,不可用途商业用途。
你是否也和我一样有这样的疑惑:论文中那么多四旋翼控制算法和姿态解算算法,为何在开源四旋翼平台中见不到?控制算法都是PID,姿态解算都是mahony和EKF。
但现在四旋翼控制还存在很多问题,例如:抗干扰能力和鲁棒性有待继续提高,变重心变质量情况下的控制效果不佳,起飞不稳定,室内自主悬停控制不够理想,惯性导航和室内导航精度低等。可研究的内容还很多,任重而道远。会发现当仿真通过后,却找不到一个趁手的四旋翼平台进行验证。
目前适合研究的四旋翼平台:
Pixhawk功能强大,可扩展性好。但是也存在着如下的问题:
- 1. 编译复杂,开发环境不是IDE,无法在线debug
- 2. Nuttx操作系统复杂,而且实时性有待提高,传感器数据读取到最后控制输出的时间过长
- 3. 很多代码用matlab生成,不利于阅读,没有利用F4的Dsp核,效率低下,且代码结构复 杂,不利于二次开发
- 4. 数传速度低,只有1Hz,不能实时分析
- 5. IMU没有减震,需要整个飞控加减震
- 6. 修改程序到成功烧录过程繁琐,且不支持无线更新
大疆的M100和guidance是不错的开发平台,但是却主要用来开发视觉算法。控制算法和姿态解算给封装了。
其他:某宝上面的各种飞控,元器件性能低下,无操作系统,控制算法和姿态解算算法性能低,接口少,作为玩具还可以,作为科研那就呵呵了。Ascending Technologies公司的四旋翼开发平台倒是经常被各个科研院校和比赛使用,但是价格摆在那里。
因此越来越感受到拥有一个适合研究的四旋翼平台的重要性,无奈我个人的精力和能力有限,因此开贴聚拢志同道合的朋友共同学习,只有开源才能促进技术的进步。
初步设想的四旋翼具有如下的特点:
- 1. 具有先进的控制和姿态解算算法
- 2. 程序模块化设计,方便各种算法的实现
- 3. 提供Matlab仿真和理论支持
- 4. 高速数传,数据波形实时查看和分析
- 5. 高性能MCU和IMU
- 6. 优化代码,充分利用DSP核
- 7. 支持无线更新
- 8. 使用IDE编写、编译、调试和烧录
- 9. 采用简单高效的操作系统,充分减少控制延时
- 10. IMU放到有减震海绵的铝盒子里,接口形式可更换不同方案
- 11. 提供多种常见接口,也提供以太网接口,方便连接机载电脑
根据我个人的优势和技术的特点,初步确定四旋翼软硬件如下:
MCU+GPS+IMU盒子方案一:
元器件 |
型号 |
MCU | STM32F746ZGT6 |
GPS+Mag | 3DR GPS |
Acc+Mag | LSM303AGR |
Gro | L3GD20H |
Acc+Gro | LSM6DSM |
气压计 | LPS22HB |
IMU盒子方案一全部采用ST最新的高性能元器件,有现成的驱动,和Pixhawk一样采用双陀螺仪加速度计冗余设计。MCU 采用高性能F746,可以运行复杂算法。 IMU盒子方案二:
元器件 | 型号 |
Acc | ADXL354 |
Gro | ADXRS642 ×3 |
气压计 | MS5803 |
IMU盒子方案二采用ADI高性能惯性传感器和高性能气压计,满足更高性能需求。
飞控软件相关:
部分 |
具体 |
操作系统 | FreeRTOS |
文件系统 | FatFs |
通信协议 | Mavlink |
开发环境 | Keil+QT |
协同工作 | Github |
开源协议 | BSD3-clause |
四旋翼飞控的主板,IMU,元器件和主控板第一代实物截图:
过一番探讨,决定第一版硬件采用三部分组成,核心版采用Nucleo F767,主板固定在机架上,IMU做成减震盒子。
主板上接口与硬件:PWM遥控接口,PPM遥控接口,8个电机控制接口,1个PWM用户接口,
3DR GPS的接口,SD卡接口,电源管理,Flash,三色LED灯,F450机架接口。
IMU上硬件与接口:LSM6DSM,LPS22HB,LSM303AGR,ICM20608,2W加热电阻,3.3V电源,14pin的排线接口。
IMU上采用了很多冗余器件,例如LSM6DSM与ICM20608功能重合,主要是为了测试性能。
说明:
EEDrone开源四旋翼从零开始详细的制作步骤,详见“相关文件”超链。