Report from the European Conference on Mobile Robotics 2017

[Manuel Lopez-Antequera] and I just returned from the 8th edition of ECMR held in Paris. It was a great experience with most contributed works centered on solution for UAVs. In this regard, my personal favorite key-session was that of [Scaramuzza]. It was not only very inspiring, but also introduced us to event based cameras, which have a extremely high refresh rate when compared with standard cameras.

All in all, it was a very great experience. The organization was excellent and we were very well received. Also, I liked that the conference was single track, meaning that we didn't miss a single contribution. As for [Manuel] and me, we presented the following works respectively:

Enhanced commercial multicopter for research in autonomous navigation

I just wanted to share with you a fully autonomous drone I built some time back for my degree in electornic engineering. It was a time when there were no fully autonomous drones, as the needed hardware was still too heavy to be flown piggyback all around your backyard. Still, I managed to pack everything I needed on top of a commercial RTF-Y6 hexacopter, including an RGD-D camera and an ARM computer.

If you feel like, take a look at the corresponding paper published during the 23th Mediterranean Conference on Control and Automation, 2015. Also, don't miss the video after the break.

Delete songs from HDD while listening to them on audacious

I digitalized my old CD music collection a (very) long time ago. And the other day ,listening to it, I stumbled over some tracks I did really not like. I used to simply ignore them (unless I was willing to stand up and press the next track on my Hi-Fi), but the time has come to... delete them!

In this post I want to share a small script that can be bound to any key combination on your keyboard. When a song comes up that you don't like, simply invoke it and it will not only move the current song to the trash (you don't want to listen to it forever, right?) but also delete it from Audaciou's playlist.

TMUX: useful key-bindings

Continuing my TMUX series, this post will show you some useful keybindings which will make you much more productive, not only when working with TMUX, but also while configuring it to your liking.

How to create tasks on FreeRTOS

FreeRTOS is a great tool for those of you who want to get the most out of their microcontrollers and do something more than blink a LED. It enables you to run several tasks concurrently (i.e. simultaneously, but no in parallel) and do things like, while one process is waiting for your I²C interface to finish (the task is blocked) let different process take advantage of the waiting time to do work.

In this post we will take a look at how to create two simple FreeRTOS tasks that run concurrently on Arduino, although this is perfectly applicable to any other microcontroller you have lying around.

Run FreeRTOS on Arduino UNO (ATMega328P)

On one hand we have FreeRTOS, an awesome tiny operating system you can run on almost any microcontroller in order to run concurrent processes. It is also great to learn how more complex operating systems, say Linux, work under the hood. And on the other hand we have Arduino, a small, low-cost and user-friendly microcontroller development board.

So, why not combine both? Let's have a look at it.

Supercapacitors VS Batteries
image by Adafruit

By now you have probably hear about supercapacitors and: an alternative to batteries, with ultra short charge times and high output-power peaks.Be assured that this is true, and that you can already buy supercapacitors for a relatively low price. 

However, supercapacitors are usually misunderstood, as they do not substitute batteries but offer a functionality for which most applications used to resort to them: short term (i.e. less than 1 minute) power  storage. Also, do not confuse supercapacitors with graphene-based ultracapacitors, which do in fact have the potential to make chemical batteries obsolete.

In this post I will cover the main differences between supercapacitors and batteries (e.g. lead-acid and LiPo/LiIon batteries), and show you a quick equivalence formula to compute how big a supercapacitor must be to replace a given battery.

How to program Arduino with Atmel Studio

Arduino is a fun entry point for those of you who want to program microcontrollers. It comes in two parts: the Arduino development board itself, and the Arduino IDE, a very easy to use notepad-like environment where you can write your code.The Arduino board itself is nothing more than a development board for an ATmega328P microcontroller with some nice extras, while the Arduino IDE takes care of making programming a microcontroller a kid's game.

However, the IDE can sometimes get in the way of a more advanced programmer, as it ads a lot of extra code we sometimes do not want (o prefer to do our self). The remedy is to program the ATmega328P with Ateml Studio 7, just as if it were a regular microcontroller. But for that, we first need to tell it how to "talk" to the Arduino to program it.

rsync: copy files the intelligent way

You probably heard about last Friday's massive cyber attack that affected millions of outdated machines that still run Windows XP, but also newer version. Luckily the pandemic got halted almost by sheer luck (read more at hackaday).

Anyway, it could have affected any of us (maybe dual-boot?), which alerted me of the fact that I had not backed up my files for quite some time now. This gave me two options. Either plug in my external backup HDD and copy everything with my file browser (overwriting old files), or do it the intelligent way: an incremental update to my backup with rsync to only copy modified files.

Guns Of Icarus Online: weapons chart

Guns of Icarus Online is a steampunk-themed video game based on a new concept of cooperation. You and your friends share an armed airship and have to fight enemy for fun and glory, but instead of controlling your vessel directly, you have to move to the different components to steer the ship (helm), keep your ship airborne (balloon, engines, etc) and run from turret to turret during intensive air battles and dogfights. The game is very fun and really stands out from other video games in the way it works on cooperative team playing.

Run Linux shell commands sequentially

It is possible to concatenate Linux shell commands using either && or || or ;.
  • && Run second command if the exit status of the first command is successful.
  • || Run second command if the exit status of the first command is not successful.
  • ; Run second command no matter what the exit status of the previous command.
As shown in the figure above, this can become very handy to concatenate Linux commands depending on their exit status, specially if the first command is rather slow and you do not want to wait for it to finish. For example, I use && all the time to compile some source code from the terminal and run it as soon as it finishes.

Note that you can run an arbitrary long number of commands sequentially, so go out and play while you leave your workstation finish a batch of commands.