  This paper introduces CrazyChoir, a modular Python framework based on the
Robot Operating System (ROS) 2. The toolbox provides a comprehensive set of
functionalities to simulate and run experiments on teams of cooperating
Crazyflie nano-quadrotors. Specifically, it allows users to perform realistic
simulations over robotic simulators as, e.g., Webots and includes bindings of
the firmware control and planning functions. The toolbox also provides
libraries to perform radio communication with Crazyflie directly inside ROS 2
scripts. The package can be thus used to design, implement and test planning
strategies and control schemes for a Crazyflie nano-quadrotor. Moreover, the
modular structure of CrazyChoir allows users to easily implement online
distributed optimization and control schemes over multiple quadrotors. The
CrazyChoir package is validated via simulations and experiments on a swarm of
Crazyflies for formation control, pickup-and-delivery vehicle routing and
trajectory tracking tasks. CrazyChoir is available at
https://github.com/OPT4SMART/crazychoir.
