Category: Random stuff

We attended Øredev last week and showed off our demo with an autonomous Crazyflie with a light and sound show. It was the same demo as we had in Maker Faire Berlin earlier this autumn that we wrote about last week. It is noticeable how much better the system has become since Maker Faire Berlin when it comes to performance, the Crazyflie is almost completely static when hovering in one spot now and the motions are much more snappy and exact. Hats off to the community that contributed the improvements!

 

At Øredev we met Ray Arkaei, the DJ that played at the party in the evening. When he realized that we used MIDI to control the position of the Crazyflie and the color of the LED-ring, he immediately offered to create his own sequence to a bit more contemporary music. This is what we love with events like Øredev, we meet people and exciting (and unexpected) events take place! He plugged in his machines and we set the goal of making a short sequence, film it and upload it to facebook. After just 10-20 minutes of experimenting (and recap from our side of how we had implemented the demo) Ray got going and soon he had had a pretty cool sequence going!

 

We shot this video with a phone

 

Ray Arkaei
Arkaei shot the sequence with his 4K camera (yes, we would love to have one too!) but unfortunately did not have time finish the editing. We are eagerly awaiting the final results and will publish a link here on the blog when it is live!

Thanks to Ray and Øredev for a memorable day!

Bitcraze forum

We have been discussing the information architecture on the Bitcraze forum after getting some really good feedback from Fred (derf) one of our forum members. Before starting to make changes to the forum we thought it would be a good idea to take the opportunity and ask all of our forum members for feedback about how the forum is structured. The forum should be easy to navigate and comprehensible for both new and old members so feedback from people actually using our forum is very valuable. So if you have any suggestions post a comment to this post or send us an email.

Öredev

Also this week on Thursday 10/11-16 we are going to the developer conference Öredev that is taking place here in Malmö. We are exhibiting the same demo as we did at Maker Faire Berlin so if you are going to the conference expect to see an autonomously flying Crazyflie 2.0 enabled by our Loco positioning system (code and doc for demo published here). We are there the whole day so come by and have a chat :-).

infographics-oredev

New Crazyflie 2.0 firmware release

We released a maintenance release of the Crazyflie 2.0 firmware last week. The new release improves the stand-by time for the Crazyflie 2.0 and doesn’t effect the Crazyflie 1.0. The release can be found here.

Progress on TDoA for Loco positioning

We’ve started working towards positioning using TDoA and last week we pushed updates to both the Loco positioning node and to the Crazyflie 2.0 firmware. The changes are still largely untested but we’ll be continuing the work during this week. We’re really excited about the possibilities this brings, virtually unlimited number of Crazyflie 2.0s being positioned at the same time!

Loco positioning system is still in Early access which means that things are moving fast. Since the release of the loco positioning system a Kalman filter has been contributed by Mike Hammer at ETH Zurich. The Kalman filter allows to calculate the position estimate in the Crazyflie and merges the Loco positioning system information with internal sensor to generate a much better estimate. We also worked on improving the anchor firmware, it is now ranging faster and we fixed a bug that was making the anchor hang sometime. Finally stephanbro on github pushed an improved position controller that improved the stability of flight a lot.

Because of all these changes we have decided to make a new video and to rewrite the documentation on the wiki a bit. Enjoy!


On the development side, we have extended the Loco Positioning system to position 2 concurrent Tags by using TDMA (Time Division Multiple Access) where each Tag is allocated a time slot to use to range to the anchors.

2crazyflies

This works fine for a few Tags, but does not scale very well for a larger numbers of tags. If you want to experiment by yourself there is some instruction in the git commit. Be aware that this is still experimental enough for us to break it without warning so keep track of the git commits when you pull the latest version of the firmware. Currently we are working on a TDoA (Time Difference Of Arrival) mode that will scale to concurrently position virtually an infinite number of tags, hopefully you will soon be able to see commits on that on our Github projects.

We have always been interested in controlling Crazyflie with various devices. For example we had the Leap Motion that enabled us to control the Crazyflie with our bare hand. Then we hacked a glove for Arduino day. At Maker faire Berlin 2016 we met the team from Specktr. Specktr is a midi glove and since our demo was controlled with midi we had to try connecting the Specktr with Crazyfile 2.0 flying using Loco Positioning System!

We met in the evening, after the faire was closed, and started hacking to map the midi messages transmitted by the glove to our midi to position ROS node. After a couple of mandatory crashes and crazy behavior (like setting the flight area way too big and sending the Crazyflie high speed away at the snap of a finger, too bad we have no video of that …) we had things working well and the glove could control the Crazyflie X position:

The second and last day of the faire we did a more proper connection where both X and Y could be controlled. The result is quite nice. It looks near magic, and quite fun, to control Crazyflie just by just moving the hand:

Speccktr is currently running a crowd funding campaign and we cannot wait to get ours to be able to hack more with it together with Crazyflie and Loco Positioning System.

One week ago we where presenting Crazyflie 2.0 and the Loco Positioning System at Maker Faire Berlin 2016. It was a lot of fun being there, we enjoyed it very much, and it also required a couple of weeks of preparation. The preparation was both mechanical and markerting: out booth was built with and outdoor tent frame and we featured the first roll-ups of Bitcraze history (almost felt a bit too ‘corporate’ for us :-).

On the technical side it was an opportunity to test Crazyflie and the Loco Positioning System in real event situation. This required stabilizing the system and testing it so that no bad surprises would happen during the faire. The result is pretty good: we flew more than 91% of the opening time, we had 2 fly-away the first day, fixed the problem and had none the second day. We were flying with 2 Crazyflie sequentially and had not broken any motor mount or other part during opening hours (some crazyness did happen after-hours though, maybe more on that on a later post ;-).

For our demo the Crazyflie was flying autonomously with the loco positioning system using the Kalman filter to fly towards a given x/y/z set-point. We made a midi-to-crazyflie bridge in ROS that allowed to give control of the Crazyflie position via a midi cable. We actually used a physical midi cable which was the safest and simplest. On the other side of the midi cable was a computer running a midi sequencer, lmms. Part of the sequence was playing actual music to make the Crazyflie dance and part was just silent movement. The setup looked like that:

Bitcraze Maker Faire Berlin 2016

Midi can encode notes pitch (ie. where in the piano you play) and velocity (ie. how hard you press the piano key). The midi track contained 4 tracks: X, Y, Z and LED-ring. In X, Y, Z tracks the note pitch converted into a position and we don’t use the velocity. The led ring track maps the note pitch to a color and the velocity to a brightness. It looks like that:

llms_mfb

This setup was a bit of a test, we found it to be very reliable. Some functionality were implemented on-site after Friday morning experience: automatic landing when the battery was low and reconnect on take-off to allow taking off without restarting anything in the PC just at a press of a button. The midi link worked well even though it feels a bit hackish to setup a choreography like that. If you have any better idea what to use to make a Crazyflie dance please tell us!

Last but not the least we have share all the codes, files and documentation for this demo on github so that you can run it yourself with an loco positioning system. We also made a short video showing the demo in action:

We are just back from the Maker Faire Berlin where we have met lot of interesting people and shown the loco positioning system. We have calculated that Crazyflie 2.0 has flown for more than 91% of the faire thanks to the autonomous flight with Loco Positioning System.

Our neighbor at the Maker Faire was Gerhard Fließ from Deskbreeze and he was presenting a mini desktop wind-tunnel:

deskbreeze_gerhard

This was a great opportunity for us to test the Crazyflie in a wind-tunel. The result is really impressive slow motion videos:

The wind-tunnel is mainly designed for education. The wind goes at 1 m/s which is apparently too slow for aerodynamic study but nevertheless we can see some interesting effects. Then the propeller pulls the air, we can see the lines getting tighter just before the propeller, this is a sign of higher speed flow and lower pressure. The difference of pressure between the bottom and the top of the propeller is what makes the Crazyflie fly. When the Crazyflie pushes the airflow, simulating a descent, we can see an oscillation of the air flow. This is most likely what can cause instability when descending fast.

We will post more about the Maker Faire Berlin and our autonomous flight demo in the following weeks so stay tuned. Thanks to all we have met, it is awesome to meet and talk about the Crazyflie in person. A mostly great thanks to Fredg (derf on the forum ;), that was there to help us during the whole week end.

icon_Berlin_dt-150x150@2x

Maker Faire Berlin 2016 is coming up and we will be there to show of the latest and greatest from our lab. The plan is to show:

  • the Loco Positioning system and autonomous flight
  • a (small) swarm – we hope to get more than one Crazyflie in the air at the same time, even though the space is very limited
  • there are ideas of some sort of synchronized sound- and light show with an autonomous Crazyflie, all controlled from a MIDI sequencer
  • a virtual cage to stop a Crazyflie from escaping when flown manually
  • a preview of the Arduino based controller to fly the Crazyflie
  • a Loco Positioning tag that can be used to track other devices/robots than the Crazyflie
  • ROS integration with the Crazyflie and Loco Positioning system

We’re not sure we will succeed with them all, but let’s hope for the best. Is there anything special you are interested in? Please let us know!

Maker Fair Berlin is Sept 30 to Oct 2 at Station Berlin. You will find us in hall 3, stand 149.

We love your feedback and are looking forward to meeting you all and talk about your projects, what we do and future ideas.

See you in Berlin!

 

 

Summertime is a good time to get outside and play :-). For a long time we have been having an assembled Turnigy tylon frame here at the office just lying around and it was time to put a camera on it and test its wings. It is not really a frame built to host a camera, and the least to put a gimbal on it but the size supports it so why not. So that is what I did, which included plenty of tape, zip-ties, drilling etc. Wouldn’t really recommend this frame and maybe that is why they quickly made a new version. I had a really hard time fitting the motors to the mounts which required getting some motor mount adapters and drilling into the aluminium mount to make them fit. To make the gimbal fit I made some wood extensions of the legs, as that was what I could find lying around. Anyway the result wasn’t that bad so I decided to give it a go. The first flight is always a bit nervous and especially with bigger quads so I took a lot of precautions and triple checked important things. The flight went well without any crash and I just used the stock PID settings when building the firmware. I flew it with the python client and a PS3 gamepad as I normally fly the CF2 and a was watching the signal strength carefully when getting far away. It will not survive a drop from 50m as the CF2 might. The basic functionality of the BiqQuad deck works well but I must admit that there are plenty more to implement before it has a rich feature set.

Unfortunately I’m not allowed to publish the onboard GoPro video I took as it captured some public areas (if I interpret the Swedish law correctly).

It is summer time and the tempo in the office is a somewhat slow as most of the Bitcrazers are on vacation recharging their batteries for future awesomeness. This weeks blog post will not contain any cool tech stuff but instead I will tell you a bit about how we work. This is a moving target as we are continuously changing and improving, but I can share a snapshot of how it works right now.

Basics

We have two basic principles that all our work is based on: self organization and continuous improvement.

Our take on self organization can be boiled down to the simple idea that no one in the company can decide what someone else must do. That is right, no one (or every one) is a boss! The result is that we have to find solutions that everyone can accept, this in turn requires complete trust and respect within the company.

Continuous improvement means that we try to become better at what we do. If we fail we try to understand why and find a better way next time. If we succeed we enjoy the success and then we try to understand why we were successful and find an even better way. The key ingredient is feedback, based on (again) respect and trust.

How we do it

Planning can be a useful tool but it can also be expensive when overused. Plans give a shared direction but the cost is that they take time to maintain, they tend to reduce agility and most likely they will be more or less wrong. We try to balance this by planning as little as possible and making long term plans less detailed. We consider planing to be a an opportunity for discussions and the actual plan as a documentation of the discussion. The discussion is more important than the plan it self.

Our long term direction is set by our purpose – the reason we go to work and invest all these hours into this project. We have tried to form one single sentence that captures this and the latest version is “Together we innovate and explore robotics”. The sentence it self is not that important but the discussions leading up to the sentence is what matters.

From the purpose we have tried to create a one year plan and a three year plan based on what we all would like to achieve in the coming years. This is very much a wish list, pretty vague. Every quarter we create a quarterly plan based on the one year plan. This is a list of areas we think are important to work with in the coming tree months, it usually does not contain very specific goals but gives us a good idea of what to do.

board

Björn at the whiteboard writing fake sticky note and looking busy

We kick off every week with a feedback and planing meeting. We look back at the previous week and investigate what we did, why we did it, the outcome and what we felt. When we have agreed on the past we turn to the future and decide what we think are the most important things to work on in the coming week. We also decide on a few experiments that we want to try out that we think will improve the way we work and increase our happiness.

We start every day with a short standup meeting to synchronise the team, understand how we can help each other and make sure we are doing the right thing.

The rest is just hard work :-)

Some inspiration

More about self organization. and what is motivating us?

 

aman_sharma

Going out of the norm for this week, this blog post is about my experience as an intern at Bitcraze. My name is Aman and I joined Bitcraze 8 weeks ago hoping to gain more experience and knowledge in quadcopter robotics while building some new connections.

Working at Bitcraze has been a breath of fresh air compared to all my previous internship experiences. From the work environment to the five brilliant guys that run this company, I believe everything was setup for me to have one of the best internship experiences. Someone was always available to help me with any concept I did not understand and even though I was just an intern, each of the guys made sure to include me in every part of the planning process. This type of inclusion, I believe, allowed me to see my role in the company and how I contributed to the overall goals.

While here, I mainly focused my work on the flight control software behind the Crazyflie. This included learning and understanding the framework behind the crazyflie, tweaking the existing firmware code to get location data, converting MATLAB code to Python that would provide location of all the anchors in a Loco Positioning setup by simply moving the crazyflie around, designing a filter that would provide more stability during flight operations during ‘Fun Fridays’ (definitely a great idea), etc. Also, with Arnaud’s help, I was able to learn how to juggle while I taught him how good peanut butter goes with bananas.

In my opinion, the reason for Bitcraze’s success and the reason it is such an amazing place to work is because of the way the company is setup. They follow a company structure called ‘self organizing’. Having never heard of it before or experienced it before, I was a bit thrown off when I first started working in this environment. Here at Bitcraze, there is no heirarchy, but, instead everyone is a leader of their own individual roles, a concept I believe allows them to solve even the most difficult of problems with ease. Once I acclimated to this, working for Bitcraze tenfolded in awesomeness. The only downside, though, you will never want to work anywhere else again.

During my experience here, I have gained a plethora of skills and have had many great experiences. Most importantly, however, I have built great relationships and learned that where you work and who you work with is just if not more important than what you work on.

PS: They love visitors here, so feel free to come and hangout with the guys!

–  Aman

Thanks!

We have enjoyed your internship a lot! You quickly adapted to our crazy way of working and became a natural member of the team, adding not only your technical skills but also your personality and new angles on what we do.

We hope we will see more of you in the future!

–  The rest of the Bitcraze team