Blog

We have spent most of our time working on the two way ranging in the Loco Positioning system lately, mainly on features that are not directly related to the actual ranging but such as making it easier to configure and upgrade the anchors. As a result we have not exercised the TDoA mode in a while, so on our Fun Friday we wanted to play a bit with that and try to fly a small swarm with some sort of coordinated autonomous flight.

Setup

We have a Loco Positioning system set up in the basement, we call it the flight lab to make it sound more fancy! The setup has been 6 anchors with three anchors in the ceiling and three on the floor, configured as triangles pointing in opposite directions. When using two way ranging that is fine as the positioning works pretty well outside the volume defined by the anchors. For TDoA on the other hand, the accuracy of the estimated position degrades rapidly when you go outside the convex hull. We decided to add two more anchors (to a total of eight) and arrange them as the corners of a box. A few hours and mounting/cabling later we were ready to try it out.

We modified the swarmSequence script to suite my (limited) space and set it up to fly four Crazyflies in a square, moving them to the next corner of the square every 5 seconds. Next problem was to find 4 working Crazyflies and Loco Positioning decks. We have a few Crazyflies lying around but a fair number of them have been modified in one way or another but finally we had the hardware we needed and could run the script. After a couple of failed tries (out of battery and such) we shot this video

Lessons learned

So what did we learn from this exercise? Adding two more anchors and changing anchor positions improved the positioning significantly. We have seen earlier that TDoA is less accurate than two way ranging, but better anchor positions reduces the problem. We could also fly the swarm using our example python script (not using ROS) without too much work and trouble, even though the TDoA mode still is very experimental.

In this flight we used the stock controller and just moved the set point to the next desired position for each copter. We are really looking forward to try out the improved controller and trajectory planning that we showed at Fosdem in combination with the TDoA mode, we think it will improve the performance a lot!

For the third year some of us from Bitcraze visited Fosdem, the biggest open-source European conference. Like the other years we enjoyed being there a lot and we had a great time hanging-out with community members like Fred.

Fred presented a great lightning talk about the news in the Crazyflie galaxy, the video and slide are already available. 

Arnaud talked about the Loco positioning system. The talk and the demo, went well. Unfortunately the video from the talk is not available yet, we will tweet it and add it to this post as soon as it is online.

The Loco Positioning talk was a great opportunity for us to test the most recent bleeding edge additions to the Crazyflie autonomous algorithms. We flew the new non-linear controller from Mike Hammer using trajectory generation from Marcus Greiff. The non linear controller uses setpoints not only of position but also of velocity and acceleration to control the Crazyflie. This is where trajectory generation is useful: if you can generate a trajectory and calculate position, velocity and acceleration over time, you can feed all this information to the controller and the controller will be able to do a much better job following your trajectory. This enabled us to fly the Crazyflie fairly aggressively the week before the FOSDEM talk:

In this video the Crazyflie is accelerating to about 2g continuously to keep the trajectory. We were a bit concerned to fly such aggressive maneuvers in public without more testing so we designed a slightly safer demo the night before the talk in our hotel room:

This trajectory was successfully flown in the demo and shows the performance of this new controller. There has been a lot happening with the Crazyflie control algorithms lately: Marcus, Mike and Wolfgang have all made new controllers and Marcus has developed an on-board trajectory generator. There is still some work required in the firmware architecture to merge these into Master, but we hope this can be done in the coming weeks. Follow the Crazyflie firmware commits and github tickets if you are interested in the progress.

During the fall of 2016 fashion designer Maartje Dijkstra have in collaboration with music producer Beorn Lebenstedt (Newk) and engineer Erik Overmeire been working with the creation “TranSwarm Entities”, a dress made out of 3D prints accompanied by autonomously flying Crazyflies. The project was made during the Fashion Fusion Lab, a three-month workshop in which selected teams got to work on their fashion concepts. Maartje and her team used our Loco positioning system to enable 4 Crazyflies to do a “dance” around the dress during the show.

 

Copyright Fashion Fusion

Here is how Maartje describes the creation:

“The sculptural high fashion dress is totally build up out of small fragments (bird skulls), like cells building an organism.The parts are manual 3D printed and after printing all connected together by hand with polyester wires and green leather. The technology part is integrated in a special way. 4 small drones, that have given the same black 3D printed appearance as the dress, fly up from places inside so it looks like parts of the dress are flying away.The drones fly on the beats and melodies of music producer Newk around the model creating a little swarm. The shoes are digital 3D printed but finished manually.”

The finalists from the Fashion Fusion Lab got to compete during the Berlin Fashion Week at the “Fashion Fusion Challenge” and we are happy to announce that Maartje together with her team got the third place

We at Bitcraze are very happy for Maartje and her team and think it’s very exciting to see the Crazyflie 2.0 and the Loco positioning system being used in such a different context. It shows again the potential for future applications and how versatile the Crazyflie and the Loco positioning system is. 

Here is a video showing the dress:

In this beginning of 2017 we are proud to announce that there are two new decks for the Crazyflie 2.0.

The first one has been in the works for quite some time, it is the Micro SD card deck. It enables read and write access to a SD-Card from the Crazyflie firmware (where we have also implemented FAT filesystem support). Our first use case for this deck has been to implement high speed logging of the IMU sensors: the SD-Card has much higher bandwidth than the radio so it allowed us to log all the sensor values for later analysis. Another use-case could be to read an autonomous sequence from a file on the SD-Card and implement fully autonomous sequencing in the Crazyflie when used in the Loco Positioning System for example. The SD-Card deck is already available on Bitcraze web-shop.

The Second deck is the Z-Ranger deck, it is a laser time-of-flight ranging deck that measures the distance to the ground. We talked about this deck in a previous post. The manufacturing of the deck should be finished soon and so it will be available in our shop shortly. When using this new deck, the altitude hold stability between 0 and 1.5 to 2m height is greatly improved.

On a final note, FOSDEM 2017 is this coming up this weekend and we are looking forward to meet you there. There will be two presentations related to the Crazyflie, if you want to meet us come at these presentations or get in touch in the comment or by mail. The two presentations are:

We hope to see you there!

This week we got an email from David Gómez, a research scientist at Multi-Agent Autonomous Systems Lab, Intel Labs. He and his team have done some cool work on trajectory planning in cluttered environments that we think needs to be shared. For their research they used the Crazyflie 2.0 which we think is even cooler :-). Watch the video to see how the Crazyflie 2.0 find its way though narrow corridors and obstacle dense environments.
 

 

If you are interested in the full paper, “A Hybrid Method for Online Trajectory Planning of Mobile Robots in Cluttered Environments”, you can find it under Crazyflie 2.0 publications in the research section.

Quite a lot has happened in the community in the latest month so we though we would dedicate this Monday post to you :-).

On the firmware side, the loco positioning system has sparked a lot of contribution. Most prominently is the Extended Kalman Filter by Mike Hammer and later improvement by multiple contributors. The Crazyflie is getting more stable and capable week after week which is awesome. Wolfgang from USC has also pushed enhancement coming from its CrazySwarm which will one day gives to everyone the capability to fly big Crazyflie swarm more easily.

On the clients side, we just pushed a new version of the iOS app to the app-store. The main improvement is the new tilt control mode implemented by EMart002 and beta-tested by a community member.

There has also been a new release of the Android client by Fred. This new version adds support for log and param using the Crazyradio. This way it is possible to get telemetry from the Crazyflie like the battery voltage and there is an experimental implementation of altitude-hold when using gamepad.

Running a beta (test-flight) version for the iOS client has been a good experience as it allowed to get direct feedback on functionalities. If there is interest we could release and announce beta versions for both Android and iOS in the future.

Finally last but not the least, there will be a new Crazyflie client in town: The Crazyserver created by Mike Hamer and written in go. It is a cross-platform, install-less, dependency-less server for a fleet of Crazyflies. It exposes a language-independent API, an HTTP rest API, to be able to connect and control any number of Crazyflie from any programming language. It will also include sockets (UDP, TCP and Websockets) to carry real-time data like setpoint and telemetry. It is still very much work in progress and not ready for real-world usage but if you are curious and/or would like to help check the code is on github.

 

For the third year we will be at FOSDEM on Saturday 4 and Sunday 5 February 2017 in Brussels. The last two years we have been present and Fred, the Android client maintainer, has had a lightning talk about the Crazyflie.

This year Fred will present a lightning talk about “News from the Crazyflie universe” and Arnaud will have a talk about the Loco Positioning System in the embedded dev-room. The LPS talk will contain a demo of one or more autonomous Crazyflies.

If you are planing at being at FOSDEM and want to meet with us just tell us in the comment, we would be really happy to meet Crazyflie users. There will be almost all of the Bitcraze team and we will have Crazyflie and a Loco Positioning System so it might even be possible to do some flight or demo on the side.

Why change the old logo?

During the year it have become apparent that a new company logo was needed. The reason for this has been that the we didn’t really have a unified agreement over exactly what logo to use. Different versions of the old logo or just the company name appears here and there which in the end becomes very fragmented to say the least. So instead of just deciding on what version to use we took the opportunity to start fresh and create a new Bitcraze logo.

 

What is a logo?

Even though a logo can come in all colors and shapes or maybe just being a font or the company initials, it is important to understand that it is only one part of the company brand puzzle. The logo isn’t made to increase sales, win design awards or to get more customers, it is solely an identifier. Of course a nice side-effect could be increased sales but the purpose when creating a new logo should be to reflect the brand not to increase business. In stating that a logo is just an identifier doesn’t mean that it is unimportant or pointless to put any thought into the design process, on the contrary the branding of a company together with things like having clear company values are part of the core communication with the outside world. 

 

What to consider

Creating a logo is a tricky task, the alternatives are literally infinite and the final decision of the new logo had to be something everybody in the team agrees and fell comfortable with. There is some basic consideration however that has been part of the discussion from the initial meeting. During the research phase I learned a few ground rules, I’m not sure they tell the whole story and there is certainly more considerations and angles to what makes a good logo, but I think in general they have worked as good guidance along the way. To illustrate these guidelines better I have used some examples from different more or less famous companies:

 

Simplicity:

Keeping it simple has been a key aspect in the process of creating a new logo. Above is a great example of how to use a simple shape in combination with a distinct color and a specific typeface to create a logo.

 

Not just a cool shape but has meaning:

 

Besides a very clever way to incorporate a symbol in the company name the shape of an arrow (between the “E” and the “x”) also tells something about the company, that FedEx is on the “move”.

 

Works everywhere:

Phones, tablets, smartwatches or t-shirts it doesn’t matter the logo should be made so that it works anywhere. This often means that the logo can’t have to many details or be to complex.

 

 Timeless:

If you are looking at creating a logo that last over time, it is important to design something that is independent of trends or a specific event. It all comes down to the context of why you are making the logo.

 

Not cliché

Just because you are selling coffee doesn’t mean that your logo should be a coffee cup, look at Starbucks they have a mermaid/siren as a logo. Using something that isn’t obvious can create interest and recognizability since it stands out among others.

 

Memorable:

There is two ways for a logo to be memorable, it can either be very simple and easy to remember or it can be engaging by making an impression of some sort.

 

One strong feature

Sticking to one strong feature keeps a logo clear and distinct. This has been a very important guideline during the process of making a new logo for Bitcraze, only keeping to one idea. 

 

The design process

The design process have consisted of recurring workshops and iterations where different alternatives and suggestions have been weighed against each other. A great design tool during this time has been Mood boards, visually illustrating an idea using collages is a very effective way to explain the background or inspiration to a design concept. Without going to much into detail about the whole process here is the Mood board that later evolved into the final design.

 

 

 

 

Final design

So here it is the new logo :-).

The inspiration, as you can see comes from the vias on a PCB. The core concept here is the love for development and being a hardware company making bleeding edge technology. An obvious choice would have been making something connected to flying and drones but since Bitcraze is more then just a drone company we chose another path.

We did however keep “Quantico”, the techy looking font that we have been using as it creates a nice contrast to the new logo. We have also been discussing different ideas of how to incorporate the logo onto our PCB:s, it would be kind of cool to have an actual via going through the logo right :-)?

It feels super exciting and a bit relieving that we managed to boil it down to a final design that we really like, and we hope that our community will like it as well.

So please write a comment and tell us what you think!

 

 

 

So you have opened your Christmas present and found your long wished-for Crazyflie. Congratulations! Or maybe you have had your Crazyflie for a while and want to play with it during the holidays? In this blog post we will give you some pointers on where to find information and inspiration.

 

Getting started

You can find all our getting started guides in the “Tutorials” menu on www.bitcraze.io. Take a look at “Getting started with the Crazyflie 2.0” to see how to assemble the kit and take off for your first flight. If you have an expansion deck you will also find a guide for how to install it.

Development

When you are comfortable flying the Crazyflie you might feel that it is time for the next step, to make use of the flexibility of the platform. After all it is designed to be modified!

Check out the “Getting started with development” tutorial to set up your development environment, build your first custom firmware and download it to the copter.

Maybe you want to add a sensor or some other hardware? Heat up your soldering iron and dive in to it! Find more information about the expansion bus on the wiki. The wiki is the place to look for all product and project documentation.

All source code is hosted on github.com/bitcraze and this is also where you will find documentation related to each repository. 

Projects

Looking for inspiration for a project? Take a look at hackster.io or read our blog postsThe video gallery contains some really cool stuff as well as our You Tube channel.

Contribute!

Open source is about sharing, creating something awesome together and contribute to the greater good! Whenever you do something that you think someone else could benefit from, please contribute it! If you were curious or confused about something, someone else probably will too. Help them by sharing your thoughts, insights and discoveries.

Why not

Need help?

Can not find the solution to a problem? Don’t understand how or what to do? Have you read all documentation and are still confused? Don’t worry, head over to the forum and check if someone else had the same problem. If not, ask a new question on the forum and get help from the community.

Happy hacking!

This year we decided to do a short Merry Christmas video. The video was done during one chaotic evening last week were both time and technology seemed to be against us. We are anyway happy with the result which we hope will spread some Christmas joy!
 

 
PS. All flights, except the first take-off, where autonomous using the loco positioning system. Code and documentation to come later ;-). DS

Merry Christmas from all of Bitcraze!