All Projects → FirmamentPilot → Fmt_firmware

FirmamentPilot / Fmt_firmware

Licence: apache-2.0
Embedded Code of FMT Autopilot

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Fmt firmware

Mavgcl
In-Flight Analysis for PX4
Stars: ✭ 96 (+95.92%)
Mutual labels:  drone, autopilot
Px4 Autopilot
PX4 Autopilot Software
Stars: ✭ 5,090 (+10287.76%)
Mutual labels:  drone, autopilot
Autonomous Drone
This repository intends to enable autonomous drone delivery with the Intel Aero RTF drone and PX4 autopilot. The code can be executed both on the real drone or simulated on a PC using Gazebo. Its core is a robot operating system (ROS) node, which communicates with the PX4 autopilot through mavros. It uses SVO 2.0 for visual odometry, WhyCon for visual marker localization and Ewok for trajectoy planning with collision avoidance.
Stars: ✭ 87 (+77.55%)
Mutual labels:  drone, autopilot
Dronin
The dRonin flight controller software.
Stars: ✭ 238 (+385.71%)
Mutual labels:  drone, autopilot
ZeroPilot-SW
Software for WARG custom autopilot
Stars: ✭ 13 (-73.47%)
Mutual labels:  drone, autopilot
xefis
Qt-based EFIS and EICAS
Stars: ✭ 19 (-61.22%)
Mutual labels:  drone, autopilot
FMT-Firmware
FMT Autopilot Embedded System
Stars: ✭ 207 (+322.45%)
Mutual labels:  drone, autopilot
Ardupilot
ArduPlane, ArduCopter, ArduRover, ArduSub source
Stars: ✭ 6,637 (+13444.9%)
Mutual labels:  drone, autopilot
Autopilot Deno
🚀 Cross-platform desktop automation library for Deno.
Stars: ✭ 341 (+595.92%)
Mutual labels:  autopilot
Drone
🍰 The missing library manager for Android Developers
Stars: ✭ 512 (+944.9%)
Mutual labels:  drone
Quadrotor
Quadrotor control, path planning and trajectory optimization
Stars: ✭ 331 (+575.51%)
Mutual labels:  drone
Openmvg
open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
Stars: ✭ 3,902 (+7863.27%)
Mutual labels:  drone
Onboard Sdk
DJI Onboard SDK Official Repository
Stars: ✭ 669 (+1265.31%)
Mutual labels:  drone
Profit Trailer Settings
Place to store and stay up to date with configs & strategies from the CryptoGnome Group
Stars: ✭ 335 (+583.67%)
Mutual labels:  autopilot
Dig Into Apollo
Apollo notes (Apollo学习笔记) - Apollo learning notes for beginners.
Stars: ✭ 903 (+1742.86%)
Mutual labels:  autopilot
Odm
A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷
Stars: ✭ 3,340 (+6716.33%)
Mutual labels:  drone
Drone Slack Blame
Drone plugin to send build status blames via Slack
Stars: ✭ 18 (-63.27%)
Mutual labels:  drone
Dronesploit
Drone pentesting framework console
Stars: ✭ 473 (+865.31%)
Mutual labels:  drone
Dragon Iss Docking Autopilot
Autopilot in Go for docking the SpaceX Dragon capsule in the simulator
Stars: ✭ 276 (+463.27%)
Mutual labels:  autopilot
Flask Restful Example
flask后端开发接口示例,利用Flask开发后端API接口。包含基本的项目配置、统一响应、MySQL和Redis数据库操作、定时任务、图片生成、项目部署、用户权限认证、报表输出、无限层级生成目录树、阿里云手机验证码验证、微信授权、Celery、单元测试、Drone等模块。
Stars: ✭ 429 (+775.51%)
Mutual labels:  drone

FMT

GitHub license

中文页 |

Overview

Firmament Autopilot (FMT) is the first open source autopilot based on Model-Based Design (MBD). The FMT project is developed from the Starry Pilot open source flight control system, including an embedded flight control system FMT Firmware mainly implemented in C language and an algorithm model library with simulation framework FMT Model developed based on Matlab/Simulink .

Based on the FMT platform, the algorithm can be developed and verified more quickly. There is no need to manually write embedded codes anymore. You only need to graphically design the algorithm model in Simulink and then generate C/C++ code with one click. The generated code can be directly incorporated into the flight controller without modifying and writing any embedded code, which greatly improves the efficiency of algorithm development and verification.

Project homepage : https://github.com/FirmamentPilot

Architecture

FMT Firmware is the embedded part of the FMT autopilot. It adopts a hierarchical design mode, with loose coupling between layers and modules. Its architecture is shown in the figure below.

fmt_structure

It specifically includes the following parts:

  • Kernel layer: The kernel layer uses the real-time operating system RT-Thread, which provides multithread scheduling, semaphore, mailbox, message queue, memory management, timer, etc. DFS is the virtual file system provided by RT-Thread supporting with standard POSIX interface.
  • Driver layer: The driver layer provides hardware driver support, such as IMU, GPS, SD card, USB, etc and communication buses such as I2C, SPI, DMA, etc.
  • Hardware Abstraction Layer: HAL provides the unified read/write/control interfaces for the upper layer. It is convenient to add new device driver or port to different hardware platforms. At the same time, the hardware-independent driver logic can be implemented on the HAL layer, which simplifies the difficulty of driver development.
  • Module layer: The module layer provides most of the functions of the system. For example, the uMCN provides IPC functions based on the publish/subscribe model. The log module provides the functions of binary log, text log and boot log. The parameter module provides powerful parameter functions and supports command line/ground station online parameter tuning. And the parameters will also be saved in the log for the simulation model to read.
  • Task layer: Each Task is a separate thread (sub-threads can be created internally) to achieve independent functions. For example, the vehicle task will periodically execute INS, FMS and Controller to manipulate the vehicle.

Why FMT

Model-based design is a mathematical and visual method to design complex algprothms or other application in a graphical manner. The manual coding process has its advantages, but its disadvantages are becoming more and more obvious. Especially when the system becomes larger and larger, the function becomes more and more complicated, the algorithm module using handwriting becomes more and more difficult to maintain, and the security and portability of the code will inevitably become worse.

The core algorithm of FMT is developped on the Matlab/Simulink platform and inherits many advantages of the MBD development method, including:

  1. Greatly improve the efficiency of algorithm development, saving time and costs.
  2. Reduce errors in the manual coding process and improve system robustness.
  3. Greatly improve algorithm optimization and debug efficiency, simplify the system testing and verification procedures.
  4. Improve the maintainability and portability of the algorithm.

FMT Firmware is lightweight, easy to read and use, as well as excellent stability and real-time performance. In summary, the features of FMT Firmware include:

  • A lightweight flight control system written in C language, easier to use and secondary development.
  • Cross-platform development tool chain, supporting Windows/Linux/Mac OS.
  • Support MBD develop method, greatly improving the efficiency of development and testing.
  • Support the most popular open source flight control hardware.
  • Excellent real-time performance with time error < 1us.
  • Higher execution efficiency and lower CPU usage. Provide more space to improve the algorithm complexity and higher execution frequency.
  • Support Mavlink V1.0/V2.0 and ground station QGC, Mission Planner, etc.
  • Support hardware-in-the-loop simulation (HIl/SIH).
  • Highly modular, loosely coupled software architecture, easy to tailor and port to other hardware.

Supported Hardware

  • Pixhawk: FMUv2.
  • May support more hardwares in future.

Documentation

User Guide (CN)

Develop Environment

The following toolchain are needed for development.

  • Compiler: arm-none-eabi- toolchain (recommend: 7-2018-q2-update,other version are not well tested). download
  • Construction tool: Scons
    • Python 2.x (Python 2.7.x is preferable) is needed
    • Scons 2.x (Scons 2.3.6 is prederable) is needed: download
  • USB Driver (only needed for Windows): download

Build & Download Firmware

Please refer to the user guide.

Acknowledgement

Big thanks to these contributor:

Community

Wellcome to join our QQ Group

QR

License

Apache-2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].