Can't control more than 3 CFs with one radio

Post here to get support
Post Reply
estrategico
Beginner
Posts: 21
Joined: Mon Aug 13, 2018 3:20 am

Can't control more than 3 CFs with one radio

Post by estrategico »

We finally could flight a swarm with 15 drones but changing addresses avoiding that they were consecutive in the same radio and using 5 radios as you can see in this video:( the goal is a swarm of 16)

https://drive.google.com/file/d/1-Cp3o- ... sp=sharing

Some of them simply refuse to connect in particular addresses.

But checking the sequence in the bitcraze newsletter "LongsynchronizedSequence.py"
https://bitcraze.us13.list-manage.com/t ... 168a317638
I´m curious with the fact that he´s controlling 9 drones with only one radio same channel and consecutive addresses,
Was this made with an alternative firmware or crazyflie-lib-python or Did you find a solution to close the issue #118 reported?
https://github.com/bitcraze/crazyflie-l ... ssues/1188
victorcrazyflie
Beginner
Posts: 1
Joined: Wed Jul 17, 2019 2:48 pm

Re: Can't control more than 3 CFs with one radio

Post by victorcrazyflie »

Hi!
Glad to hear you could fly 15 drones.

I'm not sure whether the issue is closed or not but the sequence was done with the standard crazyflie-lib-python and the script running in the video is synchronizedSequence.py from https://github.com/bitcraze/crazyflie-l ... equence.py.
kimberly
Bitcraze
Posts: 1050
Joined: Fri Jul 06, 2018 11:13 am

Re: Can't control more than 3 CFs with one radio

Post by kimberly »

Just for clarification: yes victor only used one crazyradio for all 9.

Have you tried to do a 2.4GHz spectrum analysis of your environment?
estrategico
Beginner
Posts: 21
Joined: Mon Aug 13, 2018 3:20 am

Re: Can't control more than 3 CFs with one radio

Post by estrategico »

Is it posible to communicate with all the CFs (16 in my case) in a multicast way.

I mean in my particular case the content of the transmission is exactly the same for all, i don't need to connect to each one individually.

The trajectories are different but are already loaded in memory, all i send by radio are instructions of which trajectory to run, take off and land.
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: Can't control more than 3 CFs with one radio

Post by arnaud »

Yes it is possible, it requires upgrading the Crazyradio firmware but there is support in the Crazyflie for multicast. Though there is currently no support for it in the Crazyflie python lib.

Multicast packets are used extensively by Crazyswarm to send position of the drones in realtime for example. From the Crazyflie side, CRTP multicast packets are received exactly the same way as unicast packets, this means that one has to be careful with stateful commands (like setting up log blocks). Stateless things like sending setpoint should work fine though.

Currently the easiest way to use broadcast commands in that way would be to modify the Crazyflie ROS driver/crazyflie-cpp since it already handles it concurrently with normal connections. When using the python lib it would require either to connect for sending trajectories, disconnect all and then send manually backed broadcast packet directly with the radio. Or it would require quite extensive modification of the lib.
estrategico
Beginner
Posts: 21
Joined: Mon Aug 13, 2018 3:20 am

Re: Can't control more than 3 CFs with one radio

Post by estrategico »

arnaud wrote: Mon Nov 25, 2019 1:55 pm Currently the easiest way to use broadcast commands in that way would be to modify the Crazyflie ROS driver/crazyflie-cpp since it already handles it concurrently with normal connections. When using the python lib it would require either to connect for sending trajectories, disconnect all and then send manually backed broadcast packet directly with the radio. Or it would require quite extensive modification of the lib.
In my case most of the code and data is already loaded in memory, trajectories included.

So I turn on the drones then Run a python script that connects to each CF individually (with lot of problems) and send the same commands to all (in phyton Lib):
Take off, play a trajectories by number, and land.

Each CF has a different trajectory but is already loaded in its particular firmware.

So if i could send only just one signal to all (the content of the transmission is identical) maybe I can control the system without radio congestion and antena saturation, no interference with LPS, with just one channel and perhaps hundreds of drones simultaneously.

I wrote the code based on the python lib, your suggestion is to migrate to ROS and use crazyswarm platform instead?

Does crazyswarm support the multicast connection without any additional code?
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: Can't control more than 3 CFs with one radio

Post by arnaud »

Apparently yes Crazyswarm does support multicast: https://crazyswarm.readthedocs.io/en/la ... broadcasts. It even has a notion of "groupMask" which allows to send commands to one or many group of Crazyflies.

I do think that for your use-case, Crazyswarm has more mature functionalities than with cflib, and multicast is definitly something that will require major change to integrate in cflib. If you already have trajectories ready, it should be straightforwart to port the python code to Crazyswarm, but off course since Crazyswarm is based on ROS it have a learning threshold (though the doc is quite good!).
Post Reply