After our interview with the folks at Bitcraze, coming up in a future issue of Linux User & Developer, we received one of the elusive CrazyFlie’s in the post – one of the few protoype models the team had been using for development. Armed with the CrazyFlie, a CrazyRadio transmitter/receiver and a PS3 controller, we set about getting ready to fly.
Before we could do that, however, we had to get our system set-up to use the quadrotor. Currently, the preferred method to fly the CrazyFlie is a Xubuntu virtual machine that BitCraze has set-up to contain all the necessary development and control files. It’s fairly straightforward, everything is explained on the website and through read me files on the VMs desktop. The Linux kernel has drivers for the PS3 controller already integrated, so it’s a matter of telling Virtual Box to pass these USB devices through.
Once you’re in to the control app, you’re given some telemetry from the controller, and can then connect to your CrazyFlie. Having the basic telemetry for pitch, yaw, roll and thrust displayed to start with helps you make sure that your controller is properly connected, and this can all be tracked. It doesn’t just include how you’re manipulating the controller either, as once connected, it will know the actual parameters as used by the quadrotor.
Like any vehicle, you’re not going to be expertly whizzing the CrazyFlie around a room the moment you pick-up the controller. However, having said that, once you build up the confidence to actually get it into the air, the CrazyFlie is incredibly smooth and stable. The team suggest starting off with the CrazyFlie on the floor, and everyone that had a go with the quadrotor would initially have it scooting around the carpet for the first minute before launching it into a chest-height hover with surprising ease. It’s much more responsive and easy to fly that some of the popular, smart phone controlled quadrotors like the AR Drone and its ilk, and the software definitely helps with that. There are different flight settings, with some limiting the controls to make it more usable, while others give you full access to the parameters to create your own limits. In doors, we never discovered the need to allow for thrust to go over 80% of maximum, however this limiting did cause some minor control issues.
Currently, the limit creates a dead zone on the thrust axis over what the max thrust is. On a PS3 controller, the left stick is used for thrust and yaw by default, and this means that the full motion of the stick is not used. With something like the CrazyFlie that does require some precision, it would benefit from having a little finer control in that regards. It’s also a little tricky to yaw while keeping thrust at a steady level, however as it requires a full axis, it cannot be set to something like the analogue triggers.
All the code is written in python, so it’s easy to make your own modifications to the control program if you want. There’s plenty of control over the connection as well, with the ability to switch channels and data rate available to battle interfering radio and wireless signals, or to allow for more data to be received from added hardware.
The short battery is both a blessing and a curse. While it’s very durable, it’s still not indestructible, so short breaks are a good way to not break it. It also has just enough charge at a time that when it does run out, you’re not finished using it yet. While we don’t usually review products for their entertainment value in Linux User, this is definitely a fun piece of kit that rewards time spent using it.
We don’t usually recommend products on potential, however the CrazyFlie is being improved all the time with firmware and software updates. It’s amazingly fun to use, and very easy to develop, largely thanks to it being open source. Whatever you’d want to use it for, it’s definitely worth it.