Decentralised Inter-communicating Swarm

Firmware/software/electronics/mechanics
Post Reply
Ghost2010
Beginner
Posts: 4
Joined: Tue Jun 05, 2018 9:48 am

Decentralised Inter-communicating Swarm

Post by Ghost2010 » Fri Jun 08, 2018 10:05 am

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

arnaud
Bitcraze
Posts: 1827
Joined: Tue Feb 06, 2007 12:36 pm

Re: Decentralised Inter-communicating Swarm

Post by arnaud » Mon Jun 11, 2018 2:23 pm

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.

Ghost2010
Beginner
Posts: 4
Joined: Tue Jun 05, 2018 9:48 am

Re: Decentralised Inter-communicating Swarm

Post by Ghost2010 » Sun Jun 24, 2018 1:35 pm

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?

malintha
Beginner
Posts: 17
Joined: Thu Dec 07, 2017 4:58 pm

Re: Decentralised Inter-communicating Swarm

Post by malintha » Mon Jun 25, 2018 1:32 am

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

Ghost2010
Beginner
Posts: 4
Joined: Tue Jun 05, 2018 9:48 am

Re: Decentralised Inter-communicating Swarm

Post by Ghost2010 » Mon Jun 25, 2018 5:29 am

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?

Post Reply