Page 1 of 1

Decentralised Inter-communicating Swarm

Posted: Fri Jun 08, 2018 10:05 am
by Ghost2010
Hey everyone!

I am an undergrad working on formation control of a swarm of crazyflie2.0. I wish to make the swarm decentralized and the quad-rotors inter-communicating. This inter-communication involves sharing local data like their own positions co-ordinates with one another. How can I accomplish this sharing or inter-communication between the quad-rotor systems without the involvement of the central node ie crazyradio PA.

Thanks

Re: Decentralised Inter-communicating Swarm

Posted: Mon Jun 11, 2018 2:23 pm
by arnaud
This can be achieved with the Crazyflie 2.0 hardware, though you will need to mofify the nRF51 and stm32 source code.

The nRF51 is currently programmed to act in PRX mode (in the nRF24L chip terminology), this means that the Crazyflie listens and only send packet to acknowledge a received packet. You will need to send packet to one another and to define the communication protocol (you should be able to use a new CRTP port in order to implement your communication with minimal modification of the firmware).

If you want to implement this, I suggest you start looking at how the current communication is implemented (nRF51 communicates with the stm32 using a protocol we called syslink) and to see how you can implement p2p packet tx. Do not hesitate to ask if you have questions about the architecture or the implementation.

Re: Decentralised Inter-communicating Swarm

Posted: Sun Jun 24, 2018 1:35 pm
by Ghost2010
Hey!!

Thank you for your reply. I am overwhelmed by the amount of code. Currently I am using the https://github.com/whoenig/crazyflie_ros package. The one I use sends some Command Velocities to the crazyflie_server which eventually sends these to the firmware and the drone somehow receives it. I want to learn about this process and want to send some custom information for example the current location of the drone. How should I proceed?

Re: Decentralised Inter-communicating Swarm

Posted: Mon Jun 25, 2018 1:32 am
by malintha
You can also checkout crazyswarm project[1] from Wolfgang et al. It is not exactly decentralized though, you can study the project as a reference. This tutorial [3] also has a lot of information on crazyflie_ros and crazyswarm projects.

You can send the external position to the drone via /external_position topic. Crazyflie_server will catch up your position values and send them to the CF through CRTP [2] protocol.

[1] https://github.com/USC-ACTLab/crazyswarm
[2] https://wiki.bitcraze.io/projects:crazyflie:crtp
[3] http://act.usc.edu/publications/Hoenig_ ... OS2017.pdf

Re: Decentralised Inter-communicating Swarm

Posted: Mon Jun 25, 2018 5:29 am
by Ghost2010
Thank you for your reply.

I am more concerned with modifying and developing on the crazyflie 2.0 firmware on board controller. I want to send custom data to it. Receive it there and do some useful functions with it. I want to shift the controller code from my server to the drones so that they compute their own velocity commands. In such a case I want to by pass the usage of controller present in my server node. All of this would only be possible if I know how the code on the onboard controller on crazyflie works. How do I start working on that?