Page 1 of 1

Can't control more than 3 CFs with one radio

Posted: Mon Jul 15, 2019 2:46 pm
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

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

Posted: Thu Jul 18, 2019 7:54 am
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.

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

Posted: Mon Jul 22, 2019 11:29 am
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?

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

Posted: Sat Nov 23, 2019 10:28 pm
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.

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

Posted: Mon Nov 25, 2019 1:55 pm
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.

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

Posted: Thu Dec 05, 2019 12:31 am
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?

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

Posted: Thu Dec 05, 2019 10:34 am
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!).