Repolode
gsilano

gsilano/CrazyS

A Gazebo Sim and ROS 2 simulator for the Crazyflie 2.x nano-quadcopter, with its flight controllers, ported from the ROS 1 RotorS-based CrazyS.

Stars
177
Forks
86
Open issues
0
Last commit
25 days ago

What is it?

CrazyS simulates the Crazyflie 2.x nano-quadcopter in Gazebo and provides the flight controllers that run against it. This branch targets ROS 2 Jazzy, Gazebo Harmonic and Ubuntu 24.04, and it reuses Gazebo Sim's multicopter motor model and ros_gz rather than custom plugins, so drone dynamics match the earlier ROS 1 simulator under the same motor commands.

The package offers launch files for hovering with the Crazyflie firmware controller, an Internal Model Controller following a quintic spline, and a Lee geometric controller with several trajectory types. It also includes swarm examples, joystick piloting, and a mode where you send motor speeds directly. Sensor topics for odometry and IMU, with optional MPU-9250 noise, are exposed under the drone's namespace.

The Mellinger controller, other RotorS vehicles and some ROS 1 tools are not ported to this branch. Other branches of the repository cover ROS Noetic, Melodic and Kinetic.

Key features

  • 01Simulates the Crazyflie 2.x quadcopter in Gazebo Sim (Harmonic) on ROS 2 Jazzy
  • 02Provides a hovering example using the Crazyflie firmware controller
  • 03Includes an Internal Model Controller and a Lee geometric controller with selectable trajectories
  • 04Offers swarm launch files for multiple drones and joystick piloting
  • 05Exposes odometry, IMU, and motor speed command topics under the drone namespace

Use cases

  • Testing flight control algorithms on a simulated Crazyflie before flying hardware
  • Developing and comparing trajectory tracking controllers for small quadcopters
  • Simulating multi-drone swarm behavior in Gazebo

Quick start

  1. 1

    Install ROS 2 Jazzy desktop from the official docs

  2. 2

    Install the Gazebo Harmonic integration and build tools

    sudo apt install ros-jazzy-ros-gz ros-jazzy-actuator-msgs ros-jazzy-xacro ros-jazzy-joy python3-colcon-common-extensions python3-rosdep
  3. 3

    Clone the dev/ros2-jazzy branch and build the workspace

    mkdir -p ~/crazys_ws/src && cd ~/crazys_ws/src && git clone -b dev/ros2-jazzy https://github.com/gsilano/CrazyS.git && cd ~/crazys_ws && rosdep install --from-paths src --ignore-src -y && colcon build && source install/setup.bash
  4. 4

    Run the hovering example in Gazebo

    ros2 launch rotors_gazebo crazyflie2_hovering_example.launch.py

Things to know

  • This branch targets only Ubuntu 24.04, ROS 2 Jazzy and Gazebo Harmonic.
  • The ROS 2 port has not been tested on a real Crazyflie.
  • The Mellinger controller is not ported.

In collections

Topics

#ros2#gazebo#crazyflie#drone-simulation#quadcopter#flight-control#robotics#crazyflie-drone#gazebo-simulator#gazebosim

FAQ

What is CrazyS?
A Gazebo Sim and ROS 2 simulator for the Crazyflie 2.x nano-quadcopter, with its flight controllers, ported from the ROS 1 RotorS-based CrazyS. CrazyS simulates the Crazyflie 2.x nano-quadcopter in Gazebo and provides the flight controllers that run against it. This branch targets ROS 2 Jazzy, Gazebo Harmonic and Ubuntu 24.04, and it reuses Gazebo Sim's multicopter motor model and ros_gz rather than custom plugins, so drone dynamics match the earlier ROS 1 simulator under the same motor commands.
Is CrazyS free to use? What license does it have?
CrazyS is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is CrazyS still maintained?
Actively maintained. The last commit to CrazyS was on Oct 13, 2026.
What can I use CrazyS for?
Testing flight control algorithms on a simulated Crazyflie before flying hardware Developing and comparing trajectory tracking controllers for small quadcopters Simulating multi-drone swarm behavior in Gazebo
How do I install CrazyS?
Install ROS 2 Jazzy desktop from the official docs Install the Gazebo Harmonic integration and build tools: sudo apt install ros-jazzy-ros-gz ros-jazzy-actuator-msgs ros-jazzy-xacro ros-jazzy-joy python3-colcon-common-extensions python3-rosdep Clone the dev/ros2-jazzy branch and build the workspace: mkdir -p ~/crazys_ws/src && cd ~/crazys_ws/src && git clone -b dev/ros2-jazzy https://github.com/gsilano/CrazyS.git && cd ~/crazys_ws && rosdep install --from-paths src --ignore-src -y && colcon build && source install/setup.bash Run the hovering example in Gazebo: ros2 launch rotors_gazebo crazyflie2_hovering_example.launch.py
Where can I get CrazyS?
The source code and installation instructions are on GitHub: https://github.com/gsilano/CrazyS

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects