In the Happy holidays video this year we are using the upcoming Lighthouse deck for positioning, the plan is that the Lighthouse deck will be available in our store the first quarter next year.
We hope you enjoy the video :-)!
2018-12-24 | Björn Mauritz | Leave a comment
In the Happy holidays video this year we are using the upcoming Lighthouse deck for positioning, the plan is that the Lighthouse deck will be available in our store the first quarter next year.
We hope you enjoy the video :-)!
2018-12-17 | Björn Mauritz | 1 Comment
A few weeks ago we wrote about the release of the Multi-ranging deck and the new STEM ranging bundle.
The STEM ranging bundle is a great addition in the classroom for a wide range of students. By combining the Flow deck v2’s time-of-flight distance sensor and optical flow sensor with the Multi-ranger deck’s ability to measure distance to objects, the Crazyflie gets position and spatial awareness.
We have shot a video that shows the bundle in action!
To get started with the STEM ranging bundle we have created a guide for the bundle with step-by-step instructions. The code for the demos in the video are available in the example directory of the crazyflie-lib-python project:
We love feedback so please leave some comments in the field below!
Even though we are getting closer to Christmas and hopefully some well deserved rest, there are lots of things going on at Bitcraze. This week we have collected news about various topics that we wanted to share with you.
Tobias and Marcus visited our Chinese manufacturer Seeed last week in Shenzen. We are trying to visit Seeed at least once a year to meet in person rather than only via the internet.
It is always a great experience to visit Shenzen and it seems as things are moving at blazing speed over there, with amazing changes from year to year. Such as that you can now paying with face recognition in the grocery store and park you car in automatic parking garages.
We are making progress on the Lighthouse front and we have a preliminary hardware design for the first version of the deck. There are still a lot of things to be done but we hope we will be able to order the first batch soon and that it will be available in our store the first quarter next year.
The Qi charger deck is compatible with the Qi V1 standard. Recently we have been testing the deck with a new off-the-shelf charger and discovered that the deck was not working with the new charger. After investigating we discovered that the Qi deck is not compatible with the new Qi V1.2 chargers. We started a redesign of the board and we have now started to produce a batch of Qi deck V1.2 that is compatible with Qi 1.2 chargers. The new Qi deck will be released early January.
The Roadrunner is our first stand alone Tag for the Loco Positioning System. It is in essence a Crazyflie with an integrated LPS deck but without motors and a different form factor, it was initially developed for an external project to track go-karts on a racing track. The Roadrunner can be fitted to anything that you want to track in a Loco Positioning System, a ground robot for instance. Since it is based on the Crazyflie, all the libraries and tools that are available in the Bitcraze eco-system are compatible. We plan to start selling the Roadrunner in our store in the beginning of next year.
2018-12-03 | Arnaud | Leave a comment
The Crazyflie Z-ranger and Flow decks share one sensor: the VL53 ranging sensor that provides mm-precision by measuring the time of flight of laser pulses. The manufacturer of this sensor has released an improved version, the VL53L1x that works for longer distances compare to the old one. The old sensor worked for distances up to 1 meter while the new one works up to 2 meters.
The Z-ranger deck interfaces a VL53 sensor facing downwards underneath the Crazyflie, it allows to implement very precise altitude-hold by using the ranging to the floor as absolute height.
The Flow deck has both a down-facing VL53 for height measurements as well as an optical flow sensor for position measurements that allows the Crazyflie to hold its height and fly at constant velocity.
We have released both the Z-ranger V2 and Flow V2 which allows to achieve accurate altitude hold and position hold at much higher heights. With the Flow V2 and Z-ranger V2 it is possible to fly almost all the way up to the ceiling in an ordinary room!
Both decks are available in the Bitcraze online store.
We’re happy to announce that the Multiranger and the STEM ranging bundle are now available! The Multiranger deck gives lots of exciting new possibilities when it comes to navigation and classroom activities. One of the features is that you can work with the Crazyflie more without getting into the hardcore control algorithms. Some ideas we’ve had are:
We’re still working on a nice video for presenting the product (like the STEM bundle video) but until it’s finished here’s a screenshot of using the STEM ranging bundle to map out a small course.
If you want to try out some of the Multiranger deck demos they are available in the example directory of the crazyflie-lib-python project (note they require the Flow deck as well):
If you have any other ideas that might be cool to try, make sure to leave them in the comments below!
2018-11-19 | Percy Jaiswal | 7 Comments
This week we have a guest blog post from Percy Jaiswal about quad rotor dynamics. Enjoy!
Force and Moments
Each rotating propeller produces two kind of forces. When a rotor rotates, it’s propeller produces upward thrust given by F=K_f * ω² (shown by forces F1, F2, F3 and F4 in Figure 2) where ω (omega) is rotation rate of rotor measured in radian / second. Constant K_f depends upon many factors like torque proportionality constant, back-EMF, Density of surrounding air, area swept by propeller etc. The values for K_f and K_m (mentioned below) are generally found empirically. We mount the motor and propeller on a load cell and measure the force and moment for different motor speeds. Refer “System Identification of the Crazyflie 2.0 Nano Quadrocopter” by Julian Forster for details regarding measurement of K_f and K_m.
Total upward thrust generated by all 4 propellers is given by summing all individual thrusts generated, for i= 1 to 4 its given by
F_i = K_f * ω²
Apart from upward force, a rotating propeller also generates an opposing rotating spin called Torque or Moment (shown by Moments M1, M2, M3 and M4 in Figure 2). For e.g. a rotor spinning in CW direction will produce a torque which causes the body of drone to spin in CCW direction. A demonstration of this effect can be seen here. This rotating torque is given by M=K_m * ω²
Moment generated by a motor is in opposite direction to its spinning, hence CW and CCW spinning motors generate opposite moments. And this is the reason why we have CW and CCW rotating motors so that in steady hover state, moments from 2 CW and 2 CCW rotating rotors negate each other out and drone doesn’t keeping spinning about its body axis (also called yaw).
Moments / Torques M1, M2, M3 and M4 are moments generated by individual motors. The overall Moment generated around drone’s z axis (Z_b in Figure 2) is given by summation of all 4 moments. Remember that CW and CCW moments will have opposite signs.
moment_z = M1 + M2 + M3 + M4, again CW and CCW moments will have opposite signs and hence in ideal condition (or whenever we don’t want any Yaw (rotation around z axis) movement) moment_z will be close to 0.
Contrary to moment_z, overall moment / torque generated around x and y axis’s calculations are little different. Looking at Figure 2, we can see that motor 1 and 3 lie on x axis of drone. So they won’t contribute to any moment / torque around x axis. However we can see that difference in forces generated by motor 2 and 4 will cause drone’s body to tilt around it’s x axis and this is what constitutes overall moment / torque around x axis, which is given by
moment _x = (F2 — F4) * L, where L is the distance from the axis of rotation of the rotors to the center of the quadrotor. By same logic,
moment _y = (F3 — F1) * L.
Summing it up, moment around all 3 axis can be denoted by below vector
moment = [moment_x, moment_y, moment_z]^T (^T for Transpose)
0, 0, 1 in values in last row and column indicate that z coordinates for rotated point (v’z) is same as original point’s z coordinate (vz). We will call this Z axis Rotation Matrix as Rz(β). Extrapolating same logic to rotations around x and y axis, we can get values for RX(β) and RY(β) as
And final value for 3D motion Rotation Matrix will just be cross multiplication of above three Rotation Matrices.
R = Rz(ψ) x Ry(θ) x Rx(φ), where psi (ψ), phi (φ,) and theta (θ) are rotation around z, y, and x axis respectively.
We derive the rotational equations of motion from Euler’s equations for rigid body dynamics. Expressed in vector form, Euler’s equations are written as
where ω = [p, q, r]^T is the angular velocity vector, I is the inertia matrix, and moment is a vector of external moment / torques developed in section 2. . Please don’t get confused with usage of ω (as angular velocity) in this section with it’s usage as propeller’s rotation rate. We will stick to usage of ω as rotation rate post this section. We can rewrite above equation as
Replacing ω with [p, q, r]^T, expanding moment vector and reshuffling above equation we get angular accelerations in body frame as
I would like to sincerely thanks Bitcraze team for allowing me to express myself on their platform. If you liked this post, Follow, Like, Retweet it on Twitter, it will act as encouragement for writing new posts as I continue my journey in becoming a complete Drone engineer.
Till next time….cheers!!
2018-11-12 | Tobias | Leave a comment
In August we got invited by Marion from ETH Zurich to help out with this years PolyHack, that is organized by Telejob, and which theme was about drones. We really like this kind of events but our reality is that we normally don’t have enough time to participate. For this occasion though we had the opportunity to both have fun and see how our products work when used during an event like this. Two birds with one stone and the decision was made. Together with one of the main sponsors ELCA, we organized the flying postman challenge:
Drones seem to be the future of post deliveries, but how is it going to work? Join us to reproduce a swarm of drones delivering parcels through a city to have a glimpse at this future!
The challenge the teams got was to deliver as many parcels within 5min in a miniature city, 4m x 4m, using Crazyflies. Since the Crazyflies can’t carry that much payload the parcels was just digital/imaginary but had to be picked up at a pick-up zone. They were allowed to use up to thee Crazyflies simultaneous to increase capacity. For more details checkout the challenge description.
To manage the challenge ELCA developed the CrazyServ which uses a REST API to control Crazyflies, wrapping the high level position commander, and to pick-up parcels. One nice benefit with a server is that it can keep track of which parcels has been picked up and been delivered making the scoring fully automatic.
Bitcraze part in the challenge was to bring drones, technical support and our loco positioning system to make up the 4m x 4m city. Or actually three of them, as there were going to be six teams competing for the victory. The initial information was that the three systems would be installed in separated rooms, far away, but we ended up having them side by side. That left us with some live-hacking, changing from TDoA-2 to TDoA-3 so the anchors would not interfere with each other. We ended up using 12 anchors in total which gave enough precision for the PolyHackers to complete their challenge.
The PolyHack was a success and we had a great time. The winning team in our challenge, Electek Innovation, managed to deliver 19 parcels during the 5min with the use of a “loop” system. Congrats and well done! If you get inspired by this hackaton the CrazyServ is available on github! Together with a e.g. swarm bundle it shouldn’t be to hard to reproduce.
Thanks Telejob for letting us take part of this great event!
2018-11-05 | Kristoffer Richardsson | Leave a comment
We have a collaboration with Qualisys, a Swedish manufacturer of top of the line motion capture systems. Similar to us they are a passionate about what they do, are working on high tech products and to make it even better, they are located in Gothenburg, just a couple of hours away by train. If you are not familiar with motion capture systems, it is a system that can track objects with reflective markers in space using high resolution cameras. The precision/accuracy is very good (sub millimeter) and can be used to track more or less anything such as the movements of a human body or the position of a robot, for instance a Crazyflie. The position of a Crazyflie is calculated by the MoCap system and by sending it to the drone via radio, it can fly autonomously.
We are super happy of getting the opportunity to work with MoCap systems and making it an integral part of the Bitcraze eco system. We have already added support in Crazyswarm for the Qualisys system and soon there will be a tab in the Crazyflie python client for basic autonomous flight using a Qualisys system. We will release a passive MoCap deck in the near future that will make it easy to attach reflective markers to a Crazyflie in a well known configuration, see this blog post for more information. Further more we are looking at making an active marker deck that utilizes Qualisys’ active marker technology to both position and identify an object at the same time.
Recently we spent a day in the large lab of Qualisys. We played with the LPS system in a larger set up and experimented with passive MoCap deck configurations and finally tried to fly a swarm.
Unfortunately we ran out of time and we tried to push the envelop a bit too far so we never managed to fly the full sequence without crashes, on the other hand, getting that close in a couple of hours is not too bad. Even though the full swarm did not work out we learned new things and had a lot of fun. Thanks Martin and everyone at Qualisys!
If you are looking for a motion capture system and want more information about Qualisys, please do not hesitate to contact us or Qualisys.
During the fall there’s been a lot of things going on in production. Like we wrote a couple of weeks ago we’re releasing lots of new hardware during the fall and in the meantime we’re of course continuing to manufacture batches of the previous products. Unfortunately things don’t always run smoothly as one would hope. We’ve hit a few bumps in the road and we wanted to share the latest status so you know what’s going on. As always the times stated below are our current best estimate, but we’re expecting the current issues to be sorted out within a couple of weeks.
Due to an issue with battery sourcing the last batch has been delayed for some time. This has now finally been solved and a both of these products should be available within a few weeks, and with them the bundles that depend on them (like the Swarm bundle).
Shortly after shipping the first units customers noticed issues due to the deck connector not fully connecting all the pins. After investigating this with our manufacturer we’ve found the source of the problem: The test rig where the final testing is done was actually deforming the metallic connectors inside the female connector on some of the units. Right now the factory is re-working the effected units and as soon as they are finished we will stock the deck again. Unfortunately there’s no update yet to when the re-worked decks will be available, but we’re estimating a couple of weeks. We will contact the customers that have gotten faulty boards shortly and organize a replacement.
Finally the multi-ranger deck has been manufactured and is undergoing final testing. The deck should be available within a couple of weeks.
2018-10-22 | Arnaud | Leave a comment
Last week we have been focusing on making a release for nearly all our firmware and software. This was done mainly to support the new products we will release this fall but it also contains a lot of other functionality that have been added since the previous release. In this blog-post we will describe the most important features of this release.
The Crazyflie firmware and Crazyflie client 2018.10 adds support for a range of new decks that are about to be released:
The Flow deck V2 is already available in our webstore. The Z-Ranger V2 and Multiranger will be available in the following weeks, stay tuned on the blog for updated information.
During the year, functionality implemented for the Crazyswarm project has been merged back to the Crazyflie firmware master branch. Practically it means that the Crazyflie firmware 2018.10 is the first stable version to support Crazyswarm. The main features implemented by Crazyswarm are:
A lot of work has been put in the Loco Positioning System (LPS) this summer. The result of this work is the creation of a new ranging mode: TDoA3. TDoA3 allows to fly as many Crazyflie as we want in the system and to add as many anchors are needed, see our previous blog-post for more information. With this release TDoA 3 is added as a stable ranging mode for LPS. The added features related to LPS are:
As usual the release build and release note is available on Github. The Crazyflie client and lib are also available as python pip package as cfclient and cflib.