Flapper Drones Documentation
Docs» Autonomous flight

Autonomous flight

Flight within an indoor positioning system

The simplest form of autonomous operation is a position-controlled flight within an indoor positioning system. Depending on the positioning system type this may require an additional sensor (read more about their integration here). The Flapper supports the Lighthouse Positioning System, various motion capture systems (Optitrack, Vicon, Qualisys, …), and experimentally also the Loco Positioning System (UWB).

When operating your Flapper within a positioning systems and using the examples scripts linked below, test the tracking performance of the positioning system first and make sure all the setpoints are within the tracked volume to prevent unnecessary crashes.

Indoor positioning systems supported

Lighthouse Positioning System

The Lighthouse is a low-cost positioning system with centimeter accuracy from Bitcraze AB, based on the VR base stations from HTC/Steam. It enjoys the best integration into the Crazyflie ecosystem and is recommended if you are getting started.

The instructions on how to connect the Lighthouse deck to the Flapper are here. The calibration procedure and remote operation from within cfclient is described by Bitcraze here.

Motion capture systems

Optical motion capture systems will give you the best accuracy at highest framerates. You can read more about their support within the Crazyflie ecosystem here. In the most common setup, the Flapper needs to be equipped with retro-reflective markers recommended by the motion capture system manufacturer. The tracked position can then be streamed to the Flappers using the motioncapture Python library. An example script for flying along a simple trajectory with mocap is here.

Loco Positioning System

The Loco Positioning System (LPS) is a UWB positioning system from Bitcraze AB. The default implementation will let you perform simple test flights, but the position estimates are not very accurate and might diverge in some scenarios. Thus, it is only recommended if you are willing to delve into sensor fusion algorithms of the firmware and optimize them for your use case. The potential advantages include a large tracking volume, no need of visual line of sight, and plug and play installation of the LPS deck on the Flapper. More information about the setup and calibration of this system can be found here.

Python API & example scripts

The crazyflie Python API gives access to high-level control of aerial vehicles powered by the crazyflie firmware, including the Flapper Nimble+.

The API documentation has three step-by-step guides that can guide you when getting started with:

  • The logging and parameter framework
  • The motion commander
  • The swarm interface

Should you prefer to start of from a ready made script, the Python API includes examples that let you control the Flapper:

  • Using the Commander framework
  • Via the High-level commander
  • Via the swarm framework
  • Inside a motion capture system, where the position is streamed from ground station.

Swarm operation software

Next to the Python API and its swarm library, you can control a swarm of Flappers (and crazyflies) using the following open-source software projects:

Skybrush Suite

Skybrush Suite is the leading open-source drone show software developed by CollMot Robotics Ltd., a pioneer in autonomous drone swarm technology inspired by nature that spun off from Eötvös University (Budapest, Hungary). Consult https://skybrush.io/ for more details.

skybrush.io_assets_images_modules_skybrush_live.jpg

Crazyswarm2 (ROS 2)

Crazyswarm2 is A ROS 2 stack allowing operation of aerial robot teams powered by crazyflie flight computers from Bitcraze AB. Next to our Flapper Nimble+, the supported vehicles include the Crazyflie 2.1(+), Crazyflie 2.1 Brushless, and custom drones built using the Crazyflie Bolt flight control board. The project is actively developed by Wolfgang Hönig (TU Berlin) and Kimberly N. McGuire (independent roboticist). For more details check the project website: https://imrclab.github.io/crazyswarm2/

Higher levels of autonomy

The flight controller board allows to connect your own sensors (time of flight, vision, …) and implement your own algorithms for fully autonomous flight. This already falls outside of the scope of this documentation, but should you need any assistance when selecting suitable sensors or with their integration we will be happy to assist. A clean way of adding your own functionality to the firmware without having to warry about the code merges etc. is using the App layer

Previous Next

Flapper Drones Documentation

Table of Contents

Table of Contents

  • Autonomous flight
    • Flight within an indoor positioning system
      • Indoor positioning systems supported
      • Lighthouse Positioning System
      • Motion capture systems
      • Loco Positioning System
    • Python API & example scripts
    • Swarm operation software
      • Skybrush Suite
      • Crazyswarm2 (ROS 2)
    • Higher levels of autonomy

FLAPPER NIMBLE+

GENERAL INFORMATION

  • Specifications
  • Components & accessories


GETTING STARTED

  • Battery charging & management
  • Pre-flight setup
  • Power-up & power-down
  • Remote controllers
  • Flying
  • Servicing


ADVANCED USE

  • Crazyflie Ecosystem
  • Software resources
  • PC client installation
  • Firmware update
  • Servo-trimming
  • Integrated features
  • Extra addon-decks & sensors
  • Motor mapping
  • State estimation & Control
  • Autonomous flight
  • Simulation resources
  • 3D CAD models
  • Scientific papers


SUPPORT/OTHER QUESTIONS?

support@flapper-drones.eu