Simulation environment for testing trajectory tracking controllers on a Crazyflie 2.1 nano-quadrotor using ROS2 Humble and Gazebo Classic 11.
| Software | Version |
|---|---|
| Ubuntu | 22.04 LTS |
| ROS2 | Humble Hawksbill |
| Gazebo Classic | 11.x |
| Python | 3.10.x |
- Ubuntu 22.04 with ROS2 Humble installed
- Git configured with your name and email
git clone https://github.com/YOUR_USERNAME/crazyflie_trajectory_ws.git ~/crazyflie_control_ws
cd ~/crazyflie_control_wschmod +x scripts/setup_dependencies.sh
./scripts/setup_dependencies.shThis script:
- Installs all apt and Python dependencies
- Creates the Python virtual environment
- Clones
crazyswarm2andmotion_capture_tracking - Builds the complete workspace
source ~/crazyflie_control_ws/scripts/activate_crazyflie_ws.shTerminal 1:
source ~/crazyflie_control_ws/scripts/activate_crazyflie_ws.sh
ros2 launch cf_trajectory_controller cf1_full_simulation.launch.pyTerminal 2 (after 10 seconds):
source ~/crazyflie_control_ws/scripts/activate_crazyflie_ws.sh
ros2 run cf_trajectory_controller cf_trajectory_plotterEdit one line in the config file:
nano src/cf_trajectory_controller/config/controller_params.yamlactive_controller: "cascaded_pid" # cascaded_pid | conventional_smc | ...
active_trajectory: "figure8" # figure8 | circle | helix | hovercrazyflie_control_ws/ ├── src/ │ ├── crazyflie_gazebo_sim/ # Gazebo world, SDF model, C++ plugin │ └── cf_trajectory_controller/ # Controllers, trajectories, ROS2 nodes ├── scripts/ │ ├── activate_crazyflie_ws.sh # Source this every session │ └── setup_dependencies.sh # Run once on fresh system ├── docs/ │ ├── crazyflie_sim_guide.md # Complete replication guide │ └── architecture_doc.md # Software architecture reference └── logs/ # Plots and metrics (gitignored)
| Controller | Status | RMS 3D Error |
|---|---|---|
| Cascaded PID | ✅ Working | 0.055 m |
| Conventional SMC | 🔄 In progress | — |
| Super Twisting SMC | 🔄 Planned | — |
| NS Terminal SMC | 🔄 Planned | — |
- IMRCLab/crazyswarm2
- Silano et al., CrazyS: A Software-in-the-Loop Simulation Platform for the Crazyflie 2.0, ROBOT 2017 (arXiv:1811.03557)