Simulators

The folder /simulator_files/contain files that enables the simulators to fly a crazyflie in a particular simulator.

Webots

In the folder /simulator_files/webots there are the following folders:

  • /protos/
  • /worlds/
  • /controllers/

See each section for the explanation

protos

/protos/This contains the source file of the PROTO of the crazyflie in Webots. A PROTO node (fileformat is *.proto) is a description framework for objects in that simulator. This contains the Crazyflie basics, like propperor actuation and IMU, as well as a ground truth position, camera and multiranger.

worlds

/worlds/ This contains world files in the format *.wbt and it an file that describes the webots world with all objects in it with certain initalization variables for the physics.

  • crazyflie_world.wbt only contains a floor with one Crazyflie.
  • crazyflie_apartement.jpg contains a Crazyflie initialized in an apartement with interactable walls and objects.

controllers

/controllers/ contain all the controller files of the webots simulator for the Crazyflie, which acts likes wrappers around the files of /controllers_shared/, such that only webots specific functions exist in that wrapper.

  • crazyflie_controller_c: wraps around /controllers_shared/c_based with simple keybased velocity reference input.
  • crazyflie_controller_py: wraps around /controllers_shared/python_based with simple keybased velocity reference input.
  • crazyflie_controller_py_firmware_pid: wraps around crazyflie-firmware pythonbindings. Check out the controller page.
  • crazyflie_controller_py: wraps around /controllers_shared/python_based with an wall following state machine giving the reference velocity based on multiranger data.

Gazebo

This folder contains crazyflie controllers, source and world files for Gazebo (not gazebo classic). This simulator is still underdeveloped so the controllers can only rotate the propellers for now.

  • crazyflie This folder contains the .sdf file that describes the crazyflie. This relies on the collada files in \meshes.
  • worlds This contains only an empty world with a floor and a Crazyflie model.
  • controllers This contains the source files and cmake file for the Crazyflie to rotate the propellers based on an ign transport message.