Time ago I posted some videos about my work for rotorcraft swarm but they were just some simulations in X-Plane... until last week! We took four rotorcraft and interfaced them as a single vehicle with a gamepad. Although this is just a first experiment, we are quite happy with the preliminary results. This setup will be available soon for the general public in the Paparazzi autopilot project.

Finally, this is a collaboration between ENAC-Toulouse in France and TU-Delft in the Netherlands. The video was filmed in the Cyberzoo at TU-Delft.

August is not a very busy month and allows one to have some spare time. I decided to create a video showing the status of Paparazzi for some formation flight capabilities. Just in case somebody is interested and wants to stop by, part of this work will be presented in the upcoming IROS conference in Vancouver.

The Cyfoam is a hybrid vehicle developed at ENAC Drone Lab. The aircraft is a foamy, with a 3D printed fuselage, version of the composite-made Cyclone, i.e., before risking the expensive one, we committed the first flights with this foamy version.

The vehicle is powered by the new Paparazzi autopilot board Chimera! which executes the control algorithm for transition flight developed at Delft MAV Lab.

Still figuring out what is the most convenient way for taking off and landing in a total autonomous way this kind of hybrid vehicle. Stay tuned :P.

We have recently developed and tested a formation control algorithm for fixed-wings in Paparazzi. The position of an arbitrary number of vehicles can be controlled in a circular path. In fact, we are not restricting ourselves to circles but to any closed orbit, such as ellipses, thanks to the guidance vector field that guides the planes.

The algorithm is under more tests, but it should be soon available for the general public. It is quite easy to employ, the user has to declare only the IDs of the planes, the communication topology (neighbors' relationships) and the desired inter-angles.

In the following video the planes exchange positions every second. Delays, out-of-date positions (GPS delays), packet losses, etc are expected to be (and actually they are) present. It is quite interesting to remark how robust the algorithm is. According to our calculations the impact of such nasty things are not very important (ofc up to a certain point) for the convergence of the algorithm.

The work will be submitted to the next IROS conference. Once the paper is ready, I will also post it here just in case somebody is curious about the details.

I have written with my friend Yuri Kapitanyuk (the main idea was from him) an algorithm for solving the problem of tracking smooth curves by an unmanned aerial vehicle travelling with a constant airspeed and under a wind disturbance. Basically, if the trajectories are twice differentiable, i.e., they are continuous, without "spikes", etc. then the algorithm is capable to construct an attractive vector field around the trajectory in order to guide the vehicle.

The algorithm has been successfully tested on different fixed wings and it is available in Paparazzi. It has been written as an independent module there, so it should be easy to port to other platforms if somebody is interested. In fact, the code of the algorithm has been split in two parts there.

The first one is the core of the algorithm and it is transparent for the user that wants to include its own custom trajectories.

The second one corresponds to the trajectories, where the user has to provide the equations of the trajectory, its gradient and its Hessian (the gradient of the gradient).

That makes the algorithm very modular. As an examples (in the gif) I have already implemented in Paparrazi ellipses (they cover the case of circumferences) and sinusoidals (they also cover the particular case of straight lines a.k.a. zero frequency).

If one is interested in the details and how the algorithm works, I have written a more detailed post in my blog http://dobratech.com .

We have presented this video to the kids during our open days a couple of weeks ago at ENAC, Toulouse. It is just one application of a guidance algorithm that we have developed and later implemented in Paparazzi. I was actually surprised about the performance since the planes only exchange information once per second (even we allow some drops and the guys are still robust). I guess somewhere within next week I will write the "how to" in my blog, and together with code, people should be able to port it to other autopilots if they want to. Once it is ready, I will post it here too :P.

Wrapping up more results from my thesis. In this video I show how with a single (guidance) control law a team of drones can intercept an independent target. The team is able to estimate the unknown velocity of the target and to orbit around it with a prescribed shape. The main idea behind is about exploiting (controlled) discrepancies to the distances that the drones want to maintain between each other.

The algorithm sets the accelerations to be tracked by the drone. This is accomplished by just controlling the corresponding attitude angles. The only information needed by the algorithm is just the relative positions (in arbitrary frame of coordinates) between neighboring drones, i.e. there are not relative or absolute velocities involved.

I still have to edit some videos more, next time I will choose happier music :P.

In the following video I show how a single control law for a team of drones can achieve simultaneously a desired shape, orientation and translational motion. By single I mean no cascade or different controllers. In fact it is just a single line of code.

The required information is very minimal. The drones can work in their own frames of coordinates, they do not need to share (communication) information, and they only interact locally with their neighbors but still achieve a global goal.

All the mathematical stuff, proofs, algorithm, etc can be found in the manuscript of the thesis.

Sorry for the resolution of the video, but I was running four instances of X-Plane at the same time in my computer xD.

I have recently been to a conference where there was a common tool for everyone, the Kalman filter. The point is that I was a bit shocked when I saw that many people there see some of its steps as black magic.

I decided to write a (yet another) detailed guide about the Kalman filter. In particular, I have tried to be rigorous enough with the math but trying at the same time to explain with plain words what is going on at every single step. Therefore, after reading it, it should be easy (hopefully) to others to understand and implement a Kalman filter in its simplest version, the Discrete Linear one.

An example about how to calibrate the accelerometers or gyroscopes of an IMU is considered as an illustration throughout the guide. In fact, I have written a small Python script and generated some animations in order to be more illustrative. The aim of the example, together with the guide, is to understand why in the following figure, the states of position, velocity and accelerometer's bias converge around the true values.