USC-ACTLab / crazyswarm

A Large Quadcopter Swarm
MIT License
319 stars 316 forks source link

Increase pose logging rate #717

Closed EceChaik closed 1 year ago

EceChaik commented 1 year ago

Hi,

We installed the crazyswarm package in our lab recently to take advantage of the capabilities relating to vicon and ICP and it works perfectly, thank you very much for this project.

An issue we are running into is that for some projects we need to read the pose of the crazyflies at a high rate. Back when using the crazyflie_ros package, I remember we were reading the poses of up to 5 crazyflies at 100 Hz each easily with one crazyradio. Now with crazyswarm we were getting close to 10Hz. I suspect this is an intensional bottleneck, by looking for example at Line 609 in the crazyswarm_server.cpp file. Is there currently any proper method for increasing the log rates without making knee-jerk alterations to the code such as changing the aforementioned line to 1 instead of 10?

Thank you

whoenig commented 1 year ago

In Crazyswarm(1), logging is only intended for debugging, not for real flights. The reason is that the communication backend doesn't prioritize the broadcast commands (as used for the motion capture) over other messages. Thus, if you configure many or high-frequency log topics, you might encounter instabilities. If you want to increase the frequency, you will need to change the code in the line intended and the frequency in which sendPing is called.

In Crazyswarm2, these issues are fixed - the frequency can be configured in the config file without code changes and the communication backend uses a priority queue.