Overview

Github Repository: https://github.com/UniAgent-CyberPhysicalAssets/cps.asset.crazyflie

Welcome to this tutorial on building and programming smart drone swarms using Crazyflie tiny drones.

A full-stack setup is provided for simulating and controlling autonomous Crazyflie collectives, from low-level motor commands to high-level swarm logic. It’s designed to support both research and practical experimentation in the perspective of drone coordination and spatial computing.

Technically, the tutorial is based on Gazebo, a physics simulator for robotics research, and some Python scripts to command drones via simple web endpoints.

At a later stage, this eventually enables programming drone swarms through algebraic equations.

You’ll learn how to:

  • Set up a simplified (i.e., a not yet very realistic) simulation environment using Gazebo with preset and custom worlds and the Crazyflie drone models.
  • Use Python with the Crazyflie firmware stack to issue control commands.
  • Define, control, and analyze collective behavior using a bigraph algebra, a formalism well-suited for modeling both connectivity and spatial configuration in dynamic systems.

Methodology

Overview of the UniAgent Programming Model

Reference:

Software Stack

The software stack employed in this tutorial:

  • sim_cf2 (Gazebo) (Simulation)
  • cf.PyControl (cflib/Python) (Controller)
  • Eclipse CDO (Database)
  • Bigraph Framework, BDSL, Spring Data CDO (Java) (Frameworks)

Everything is open source and provided through Docker images for easy installation and use.

Demo Video

Previous Next