About CrazyS Simulation and ROS

Firmware/software/electronics/mechanics
Post Reply
tunacici
Beginner
Posts: 1
Joined: Sun Apr 03, 2022 7:34 pm

About CrazyS Simulation and ROS

Post by tunacici »

Hey everyone! I'm with a team and we are working on a project about Swarm Drones.

Before we apply our algorithms in real Crazyflie drones we would like to test them in a simulation. We are thinking about using CrazyS with Gazebo. We have some question that we couldn't find answer anywhere. If you can answer some of them we would be forever in your debt.

1-) How should we 'connect' to the simulated drones. Do we use ROS or libraries like ' libcflie'?
2-) Does the CrazyS project runs the Crazyflies in SITL or are they just generic drones that have 3D Crazyflie models?
3-) If they are just some generic drones, is the ROS the only method to control them?
4-) When we want to test our algorithms in real Crazyflie drones, can we still use ROS without modifying the Firmware?

I know that these questions might be absurd. Pardon our explanations. We have experience with Linux, ROS, PX4-Autopilot and AirSim but not with Crazyflie and Gazebo. Also to make things clear, we want to test our algorithms in a simulation and deploy them in real Crazyflies without changing the code too much. We want to use C++ to design our algorithms and control the Crazyflie drones. We cannot use the wrapper functions like 'take_off()' in libraries such as 'cflib'. So, we need to understand how the simulation and the Crazyflie works under the hood. This is why we are asking you these questions.

We are looking forward to your answers. Thank you all in advance <3
kimberly
Bitcraze
Posts: 1050
Joined: Fri Jul 06, 2018 11:13 am

Re: About CrazyS Simulation and ROS

Post by kimberly »

Hi! Let me try to answer your questions as good as I can.

1) Yes you have to use ROS for that through the crazyS package. Please check out the readme of the project for instructions.
2) No CrazyS does not do SITL but has their own controllers based on the PID control of the crazyflie. Sim_CF has HITL and SITL but is no longer actively maintained and this needs a modfied firmware that is now branched off more than 2 years ago.
3) Currently for the above simulators you need ROS. I'm currently experimenting myself with ignition gazebo and webots in order to get that to run without ROS (see t his blog), but only have been truly successful with webots so far.
4) For Crazyswarm, you can use the latest firmware of the crazyflie which has a very simple point based simulation. The main control is again from python but the whole part backend of crazyswarm is written in c++. Both Webots and C++ have API for plugins and controllers written in C++.

So yeah, it seems that there is not really a standard yet for what you would like to do... but hopefully this will help you on the way. Perhaps you can give a go with mixing crazyswarm with the ROS integration of Webots?
Post Reply