simondlevy/Hackflight

Minimalist flight-control toolkit for makers

它解决了什么问题

Hackflight 通过提供一个极简、可组合的工具包来构建多旋翼控制器和仿真器,解决了飞行控制固件的复杂性问题。它专为那些想要实验状态估计和 PID 控制内部原理,或教授这些概念,而不想翻阅数千行生产级飞行代码的人而设计。

它是如何工作的

Hackflight 在其代码与经典飞行控制数据流之间保持直接映射:方框是数据,椭圆是函数,反馈箭头代表有状态函数,如 PID 误差积分。它使用仅头文件的 C++ 类,避免宏、空指针、继承和修改,并偏好函数式风格。它依赖现有的 Arduino 库来处理传感器和执行器,因此你可以组合所需的部件。整个代码库少于 3000 行。

它面向谁

Hackflight 面向想要摆弄多旋翼飞行固件方面的爱好者、学生和教育者。它并非为 99% 只想要一个可用飞行器的用户设计——那些用户应该使用 Betaflight、ArduPilot 或 Crazyflie,这些还提供了 Hackflight 所缺乏的安全功能。

亮点

  • 少于 3000 行 C++ 代码——易于阅读和修改。
  • 仅头文件实现减少了构建和集成摩擦。
  • 使用函数式编程风格,提高清晰度和可组合性。
  • 与免费开源机器人仿真器 Webots 配合,进行安全测试。
  • 特定硬件支持(Teensy4.0、BMI088 IMU、基于 ESP32 的接收器/发射器)已有文档。

相关

  • 项目
  • 项目
  • 项目
  • 项目