Flying Multiple Crazyfiles
Posted: Fri Mar 12, 2021 12:11 pm
Hi all,
I am planning to implement high-level formation control for various purpose with multiple Crazyflies. So far, I have tested autonomous flying with one Crazyflie 2.1 by Python scripting using cflib. I have no problem getting data by creating logging configurations, and commanding the Crazyflie by different commander functions such as position setpoints, velocity setpoints and motion commander.
The next step of my research is to implement high-level formation control with less than 10 Crazyflies. The high-level formation control will take the position or attitude data of each Crazyflies as inputs and compute the control outputs as velocity or position commands at runtime. I am planning to use Flow Deck2 together with LPS. Now, I am not sure whether it is possible to achieve this by using the swarm class in cflib and just coding in Python script. Or do I have to use ROS platforms, such as Crazyswarm or Crazyflie ROS to fly multiple Crazyflies 2.1? I have no experience with Ubuntu and ROS. So I would prefer to code in Python script if possible.
Also, can someone explain what is the difference and the pros and cons between using cflib Python API, Crazyflie ROS and Crazyswarm?
Regarding Crazyswarm, I have several questions about the function of the simulation :
1. In the simulation, do you consider the dynamical model of the Crazyflie2.0? How about Crazyflie 2.1?
2. What is the controller used in the simulation, is it the same as the cascaded PID controller from Bitcraze?
3. I would like to use this simulation to test my high-level formation control if possible. When running the simulation, can we access the logging configuration, such as position, attitude data, etc.? If yes, is it possible that I can get the position and attitude data and use them as my high-level formation control input and send the formation control output as a velocity or position command to the Crazyflies at runtime in the simulation?
Other than simulation, I also have some questions about real hardware:
1. Can we use the cflib Python API from Bitcraze together with the Crazyswarm and fly a swarm of Crazylies by only Python scripts? Or is it somehow necessary to interact with ROS? (I don't have any experience with ROS, but I am comfortable programming Python script to fly Crazyflie by using cflib.)
2. I understand that we can create a logging configuration and get the data directly through the cflib Python API. How about Crazyswarm? Can we create a logging configuration and get the data through a Python script?
3. I have looked at the sample code of hello.world.py and niceHover.py. I understand that it is fairly easy to command multiple Crazyflies at the same time. But how do we create logging configurations? Is there a sample code regarding this?
Thank you in advance.
Yu-Hsiang
I am planning to implement high-level formation control for various purpose with multiple Crazyflies. So far, I have tested autonomous flying with one Crazyflie 2.1 by Python scripting using cflib. I have no problem getting data by creating logging configurations, and commanding the Crazyflie by different commander functions such as position setpoints, velocity setpoints and motion commander.
The next step of my research is to implement high-level formation control with less than 10 Crazyflies. The high-level formation control will take the position or attitude data of each Crazyflies as inputs and compute the control outputs as velocity or position commands at runtime. I am planning to use Flow Deck2 together with LPS. Now, I am not sure whether it is possible to achieve this by using the swarm class in cflib and just coding in Python script. Or do I have to use ROS platforms, such as Crazyswarm or Crazyflie ROS to fly multiple Crazyflies 2.1? I have no experience with Ubuntu and ROS. So I would prefer to code in Python script if possible.
Also, can someone explain what is the difference and the pros and cons between using cflib Python API, Crazyflie ROS and Crazyswarm?
Regarding Crazyswarm, I have several questions about the function of the simulation :
1. In the simulation, do you consider the dynamical model of the Crazyflie2.0? How about Crazyflie 2.1?
2. What is the controller used in the simulation, is it the same as the cascaded PID controller from Bitcraze?
3. I would like to use this simulation to test my high-level formation control if possible. When running the simulation, can we access the logging configuration, such as position, attitude data, etc.? If yes, is it possible that I can get the position and attitude data and use them as my high-level formation control input and send the formation control output as a velocity or position command to the Crazyflies at runtime in the simulation?
Other than simulation, I also have some questions about real hardware:
1. Can we use the cflib Python API from Bitcraze together with the Crazyswarm and fly a swarm of Crazylies by only Python scripts? Or is it somehow necessary to interact with ROS? (I don't have any experience with ROS, but I am comfortable programming Python script to fly Crazyflie by using cflib.)
2. I understand that we can create a logging configuration and get the data directly through the cflib Python API. How about Crazyswarm? Can we create a logging configuration and get the data through a Python script?
3. I have looked at the sample code of hello.world.py and niceHover.py. I understand that it is fairly easy to command multiple Crazyflies at the same time. But how do we create logging configurations? Is there a sample code regarding this?
Thank you in advance.
Yu-Hsiang