User Tools

Site Tools


drone_programming

Drone Programming

Flight Controller (FC) Firmware

Open Source FC firmware, onboard

Name fork* FPV Autonomous
Betaflight Yes Yes No Most popular, much supported hardware, many users.
Cleanflight Yes Yes No Ancestor of betaflight, now the same as.
Flight One No Yes No Latest version: FalcoX. Easy setup.
KISS No Yes No Hardware specific KISS hardware, pricey.
EmuFlight Yes Yes No
INAV Yes Yes Yes Autonomous flight on Betaflight hardware.
Ardupilot No No Yes Not good for small drones.
Silverware No Yes No Specific for Tiny Hoops.

* originaly forked from Betaflight. This means it runs on all the same hardware as Betaflight.

Comparative Review, Josha Bardwell
https://www.youtube.com/watch?v=xTurdXkSJsg

Comparative Review, Pawel Spychowski
https://quadmeup.com/what-is-the-best-flight-controller-firmware-betaflight-ardupilot-or-inav/

PID Tuning

ArduPilot

hardware : Pixhawk 4 mini, and GPS module

First Experience https://www.youtube.com/watch?v=0DnflN9C3cc

Mission Planner software to configure ArduPilot

development began on Arduino

Ardupilot FPB with DJI
How to setup Arduino
https://www.youtube.com/watch?v=k8GC1UFGVos

with DJI F745, F765, or F405

4S lithium ion

ArduPilot used MAVLink

Tracer and Crossfire

INAV loiter is really good, but ArduPilot is better

surveilance

EKF 3, Extended Kalman Filter

INAV and Betaflight have horizon inertial drift, ArduPilot does not

receiver, crossfire, MAVLink

motor mixer

5 inch drone

autotune

PID tune

OSD = on screen display, telemetry data laid over the video feed, similar to HUD

CRSF = crossfire, proprietary two-way radio by Team Blacksheep, from controller to drone

Intro

How do you fly a drone from a program?

Onboard, in the FC or an attached microcomputer.l

Offboard, from a computer on the ground.

inav firmware on the fc. Does it have an API?

Arduino outputs PWM codes. What kind of codes does the radio controller transmit?

RC cars receive PWM codes.

https://www.instructables.com/id/Computer-Controlled-Quadrotor-the-Easiest-Way/

Platforms

Ground off-board

  • Linux
  • Windows
  • Mac
  • Android
  • iOS

UAV onboard

  • FC
  • Arduino
  • Raspberry Pi
  • Jetson Nano (Nvidia)
  • Manifold 2 (DJI)

dronekit

https://www.jetsonhacks.com/2016/04/11/gtc-2016-flying-robot-demo/

FrSky makes

  • Taranis RC which runs
  • OpenTX firmware which embeds
  • Lua scripting language

OpenCV, computer vision, 2500 algorithms, mostly non-neural-net

SciKit, a python library, the name stems from the notion that it is a “SciKit” (SciPy Toolkit), a separately-developed and distributed third-party extension to SciPy. features various classification, regression and clustering algorithms including support vector machines, random forests, gradient boosting, k-means and DBSCAN.

  • Real-time Image stitching
  • Object detection
  • Navigation
  • Controlling the aircraft

Parrot

  • Ground SDK Mobile, iOS or Android
  • PDrAW, video player pipeline
  • OLYMPE, python SDK for drone and simulator
  • SPHINX, simulator based on Gazebo engine
  • 3D Model, a blender model of the ANAFI drone
  • Freeflight, Android app to pilot your drone from your phone

Gazebo, open source robotics simulator

ArduPilot, open source autopilot software for any kind of vehicle

MAVLink, micro aerial vehicle link

  • lightweight open source messaging protocol for communicating with drones. Enables both offboard and onboard communications (e.g. between a GCS and drone, and between drone autopilot and MAVLink enabled drone camera).
  • follows a modern hybrid publish-subscribe and point-to-point design pattern.
  • runs on numerous microcontrollers/operating systems (including ARM7, ATMega, dsPic, STM32 and Windows, Linux, MacOS, Android and iOS).
  • Allows up to 255 concurrent systems on the network (vehicles, ground stations, etc.)

Tello, demo with reading the camera, object detect, and fly the drone, in python. https://m.youtube.com/watch?v=vDOkUHNdmKs

CoDrone

  • As in “code drone”, from RoboLink, an educational drone designed to teach children to write code, no camera.
  • CoDrone,
  • CoDrone Mini, $80, comes with RC, program in Blocky language
  • CoDrone Lite, $130, comes with BLE board, code in Snap language
  • CoDrone Pro, $180, comes with RC and Arduino-“compatible” board, code in python on an Arduino

Dronecode, a Linux Foundation non-profit

  • PX4 Autopilot, open source flight control software
  • MAVLink, micro air vehicle communication protocol, open source
  • MAVSDK, open source MAVLink library with APIs for C++, Swift, and Python.
  • QGroundControl, open source GCS for Android, iOS, Windows, Mac, Linux.

QGroundControl

https://docs.qgroundcontrol.com/master/en/index.html

vehicle must be running ArduPilot or PX4

Robot Operating System (ROS)

https://www.ros.org/

Not to be confused with Real Time Operating System (RTOS), which refers to a category of OS designed for real-time, as opposed to time-sharing OS's like Linux.

RTOS is a category, ROS is a specific product.

DJI Software

Onboard

Manifold 2 - processor mounted on higher-end DJI drones

  • Released in Nov 2015
  • ARM chip plus Nvidia GPU
  • Runs Ubuntu Linux

SDK's

  • Payload SDK
    • evidently an extension of the Onboard SDK
    • “payload” refers to additional hardware attached to the drone for specific tasks:
      • camera and gimbal
      • spotlight
      • sensors and detectors
      • companion computer

Offboard

DJI Ground Control products run on Android and IOS.

SDK's

  • Mobile SDK
    • used for developing Ground Station apps for IOS and Android
    • as of 11 July 2022, discontinuing new dev for IOS, focusing on Android
    • includes UX SDK
  • UX SDK
    • included in Mobile SDK v4.0 and later
    • three components: Widget, Collection, Panel
  • Windows SDK
    • evidently a port of the Mobile SDK to Windows
    • supports only Mavic 2 and Mavic Air Wifi mode

Here is a video made by a company that builds custom apps using DJI SDKs. https://www.youtube.com/watch?v=2uy7j_3oTQA

software stack

  • Ground station
  • Autopilot ground
  • Communications
  • Autopilot onboard
  • FC firmware

distributed processing

Onboard

  • FC
  • Microcontroller

Offboard

  • GCS
  • RC
  • Vrx

Autopilot

  • Inputs: video, telemetry, human requests
  • Output: flight control commands

Aerial surveillance drone

drone_programming.txt · Last modified: 2022/09/29 08:36 by jhagstrand

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki