Open source robotics simulator with physics, 3D rendering, sensor models and a graphical interface, the latest version of Gazebo.
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
Install ROS 2 Jazzy desktop from the official docs
- 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
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
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
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
An abstract C++ physics interface for robot simulation that lets applications swap between different physics engines through a plugin system.
Lightweight 2.5D dynamics simulator for wheeled mobile robots and vehicles, usable standalone, via ROS 1/2, or from C++ and Python.
A simulation environment built on Gazebo and ROS 2 for testing unmanned surface vehicles in marine scenarios, based on RobotX competition tasks.
An open-source ROS 2 Jazzy and Gazebo Harmonic simulation stack for autonomous mobile robots, covering mapping, localization and Nav2 navigation.
PyBullet-based Gymnasium environments for training single and multi-agent reinforcement learning controllers for quadcopters.