RasPerras del Infierno in FormulaPi

Last August I found out about Formula Pi Kickstarter campaign by @pi_borg: Self driving robot cars programmed in a Raspberry Pi (Pi Zero). I liked the idea so I backed the project and asked friends to join. @hombrenieve1983 was the most enthusiast: “I’m in!”.

Our team was called RasPerras del Infierno, as a reference to our programming contests team. Each team could draw the top part of the robot and send it back to identify each robot in the races. Here’s our team logo:

RasPerras del Infierno logo

In Formula Pi the robots use the camera information to drive around the track. You get a base code that you can modify as you like to develop your own strategy for the races. It can be from as easy as “follow the center lane” to as complex as you want. There’s a simulator to test the code and there were a few testing rounds before the real races started. All races are streamed live in twitch, and they are fun to watch even when your team is not running that day.

Our idea was to use machine learning to drive the car. We are writing here about the full process during the competition, but we found it harder than we expected to get a machine learning version running in the Pi Zero.

To train the machine learning we needed to generate many images and tell what we would want the car to do in each case. To do that we integrated the race code with the wiimote (cwiid) and played in the simulator: This way we stored the simulated camera images and the position of the wiimote as desired driving direction. It was even fun!


When we had enough images we started training a scikit-learn neural network. We started our tests with a fully connected neural network with one hidden layer. We did some changes to the wiimote driving code to train it to recover when it went out of the ideal path in the track. We run our code and the simulator in our laptop and it looked promising 🙂 We sent that for the first tests but some issues with the library, not compiled for the Raspberry Pi Zero made our robot stay in the starting line 🙁

In the first race we had the library properly installed and so the neural network was going to drive the robot. This time the robot moved but our robot kept crashing against the walls, and in the recover movements it managed to do one full lap… in reverse! At least there was one other robot that did 5 laps in reverse :p

From the logs and images we got, our theory is that the Pi Zero took too long for processing each image with our code. This means it applied the driving directions to late and during too long. If it decided to turn, then turning for a full second meant driving into the walls.

For the next races we changed back to a simpler racing code: Follow the lane one right from the center.

In race 2 we did better (it’s easy to do it better than -1 laps 😉 This time we managed to get nearly 10 laps for a second place in the heat, but that only gave us 1 point. First point though, yeah!

We kept testing and training neural networks, but we couldn’t get some of them to run in a Raspberry (after the issues in the test rounds we decided to test everything in a Raspberry Pi). Some libraries didn’t even run in the raspberry, and some other tests were too slow to properly drive the robot. Running some tests at lower robot speed, it looked really promising, but when driving full speed as you want to do in a race we didn’t find a working solution that didn’t crash into the walls.

We also tried convolutional neural networks. With neupy and a convolutional neural network that would fit in the Pi Zero it got many images right, but some others were giving wrong values and the robot would crash in the simulator.

In Race 3 we did even better! 16 laps and just a couple of meters away of house robot (which was surprisingly stopped). Our robot even passed the house robot a few seconds after the 15 minutes finished. 14 more points for RasPerras del Infierno 🙂

Race 4 was even better: First win for RasPerras del Infierno!! 22 laps even though we were stuck with other robot for a couple of minutes.

Race 5 start was very good but we crashed on a robot that went backwards for some time. Then there was a good competition and two other robots went over the 23 laps limit. A third place in the race, 11 points and one of the 10 places into the semifinal! (good luck the house robots are not going into the semifinal).

We are looking forward to the final rounds of this season! Who will win? What position will RasPerras del Infierno end?

Sign us up for the next season!

Three words a day for Appsfuel

Three Words A Day

Three Words A Day – Learn three new words in several languages

Three Words A Day is now available for your smartphone, both Android and iOS supported! And more languages can be played!

Get the Three Words A Day appsfuel application and learn three new words every day. With just a few minutes to play you will practice your vocabulary.

New languages available are English, Spanish, Italian, French and German. Let us know what language you want to learn next!

To download the application go to http://appsfuel.com/es/educacion/819/three-words-a-day and follow the steps.

If you have an Android smartphone you’ll need to download Appsfuel Organizer application if you don’t have it yet. Then scan the QR code to get the application.

If you have an iPhone or an iPad you’ll have to click on “Add to home” to the appsfuel application, log in, and add to home the Three Words A Day application.

The application was developed for the Fuel your Friday / Fly to Japan contest at Buongiorno. For a couple of months we could spend some time of our working hours developing our application. Now it’s time to see who has most downloads and can get a trip to Japan 😉 It’s a good way to do other things at the work.

Set your twitter and name on the configuration page and try to be the first on the ranking page. Will you beat your friends? Will you beat the developer?

Check it out and let us know here or at @threewordsaday.

Groupot at Firefox OS day

screenshot Last Friday I had the opportunity to attend the Firefox OS day in UPM organized by movilforum. Buongiorno, where I work, sent Javi and myself to learn about Firefox OS, how to develop apps and upload them to Firefox OS Marketplace. Thanks Carolina 🙂

Before lunch there were some talks. They explained all about Firefox OS, the new operating system for mobile phones that is just starting.

The objective of Mozilla and Telefónica, their partner in this project, is not to compete with the best Android and iOS devices, but to replace feature phones. At least for the moment.

The novelty in Firefox OS is that all the applications are developed like a web application. HTML5, javascript and CSS3 are all you need to know to create some app for Firefox OS. Even the system applications are done that way. The OS has a linux kernel to run on the phone, but native applications are just HTML5 applications. It’s important to say that this doesn’t mean you need to be connected to the internet for them to work. They can be installed and they will run with no connection just like an Android or iPhone application does.

After lunch there was a hackathon of Firefox OS apps. Working on teams we had to create some application for Firefox OS in one of the 5 categories for the contest. Our idea was Groupot, an application to manage the accounting in groups, and it only fitted in the Open Category.

It was possible to have some work done before the hackathon day, so we started the application the week before, but most of it was created during the 3 hours of the hackathon.

Groupot allows you to manage the accounting for groups. Instead of paying everything between everyone or putting money for a pot that is then used to pay, Groupot takes note of every payment and then sends a summary of all the expenses and the suggested payments to settle all the debts. Payments in a Groupot event can be for the whole group or just for a subset of the users.

After the 3 hours of the hackathon there was a demo of every project. At that point we had Groupot working with all the functionalities needed for an event: creating an event, adding users, adding payments and getting the summary and optimized payments to settle the debts. We still have a lot of work to do to improve it, but it already solves the problem it was created for! Groupot is open source, go check it out at https://github.com/buongiorno-ffos/groupot. We’ll share a link to the application in Firefox OS Marketplace and Appsfuel when they are published.

After all the projects were demoed the jury announced the prizes and Groupot won the Open Category :-D. I can’t remember the winners on all the categories, they will be in movilforum blog soon. There were a lot of good apps and ideas!

We won a Geeksphone Peak. I’ve been already testing it and I like the phone and I think the idea of using web applications for the OS is good. I still miss a lot of applications in the Marketplace, but they are just starting and that’s why they are doing these hackathons, to get developers doing apps for their Marketplace.

3 words a day – Spanish Chrome Web Store contest winners!

We haven’t posted yet about our latest project and we are already announcing that we won the Spanish Chrome Web Store contest 😀

3 words a day screenshot

The Chrome App is called 3 words a day and will help you learning 3 English words every day. Just 3 words every day so you can do it as soon as you get the notification.

It shows a word in Spanish and you have to use the microphone to say it in English or just write it. Once you get it right or fail three times you’ll be able to listen to the correct pronunciation using Text To Speak from Google Chrome.

You will have the list of all the previous words in the game to review them when you want.

The Spanish Chrome Web Store contest was announced during last November. For some time, specially during a trip to London we kept thinking of ideas to develop for the contest. There we thought about the idea of learning three words every day. Judith’s friends sent her 3 words every day that she had to translate, so we thought of doing it for the contest. With David and Mariade we kept thinking how to do it right.

Accessibility was a very important point of the contest, so we added the microphone input, the text to speak, notifications, focus management in the html form, and everything we could.

After several beta versions developed and tested the application was working fine. But it missed a good design. Many thanks to Jorge and Javi for their work there.

And finally, a good set of words provided by Guille was also needed to make it interesting. The test words were ok but just for that.

The application won the Education category and also the global prize. We got 6 Chromebooks (including the one I’m using to write this post 🙂 and 3 tickets to Google I/O 😀 We’ll be there this June!

Thanks to everyone who helped with the chrome app. I hope you enjoy the Chromebooks 😉

Linked User Feedback

LUF logoLinked User Feedback (LUF) is a prototype I led while in iSOCO, as part of our work on the SOA4All project.

The LUF service is basically a RESTful API that permits publishing and retrieving user-generated feedback in the forms of ratings, comments and tags. This information is semantically stored in an RDF repository following the Review Vocabulary and the Tag Ontology (as in revyu.com), and exposed as Linked Data. In SOA4All, we used it mainly interconnected with other components of the SOA4All Studio to provide feedback on services.

More technical stuff can be found at http://soa4all.isoco.net/luf/about/; I notice that the panel featuring ratings, comments and tags on the right may be crashing, though. 😉

We opensourced the code into GitHub, and we also used it in the Web N+1 project, for ratings on Linked Data from El Viajero. Additionally, we also processed some ratings from the Linked Movie Data Base, and finally we also submitted the dataset to CKAN (now “the data hub”)…  and the happy end is that it is now part of the LOD cloud:

Linked Open Data Cloud

Ok, it will be difficult to find our bubble in there, but if you open the diagram, a hint is that we’re just at the Northern end. 🙂

Bottle Top Race for Android

Bottle Top Race promotional image

Bottle Top Race for Android is our new game in the Android Market. It is a racing game that is played by hitting the phone like if it was the bottle top. The harder you hit it, the longer the shot.

Check out the video to see how to play this game. First click on the screen to point where you want to move the bottle top, and then hit the phone at the bottom, like hitting a bottle top.

It is a multiplayer game for an unlimited number of players. Select the number of players in the game menu and race against your friends in one phone.

In this first version there are two different circuits: The basic circuit where you can train and learn how to play and the longer circuit that is more difficult.

You can configure the number of laps for the race, so you can decide how long the race will be.

You can download it for free in the Android Market. There are no annoying ads in the game. There’s a donation button inside the game with in-app billing if you feel like donating something for us to create more games and applications 😉

The game can be moved to the SD card of your Android phone, so you don’t have to worry about the space it will take.

If you like it then rate it and add your comments. Your feedback is welcome to improve our applications and games!

Note: We are not responsible if you hit your phone too hard and break it, or you hurt yourself :p


Bottle Top Race menu

Bottle Top Race menu

Bottle Top Race in-game screenshot

Bottle Top race in-game screenshot

Bottle Top Race - icon

Bottle Top Race icon

qr code - bottle top race

miKrow, project at iSOCO

miKrow logoNow that I have just left iSOCO (and joined Playence), I thought it was a good opportunity to describe in this blog a couple of the interesting projects I was involved while in there.

miKrow is an innovation prototype where we applied the microblogging approach to knowledge management. There’s plenty of information in http://mikrow.isoco.net so I won’t go into the technical details here. In a nutshell, it was a microblogging system able to understand which topics were mentioned by the users in their tweets short messages, providing them with relevant recommendations both of previous messages and of experts (automatically identified previously through the content they produced).

It all came from a contest for ideas within the company, after which we were able to develop a prototype that was tested in-house. A funny video by Carmen featuring some ants was also produced to explain our concept:

We published the results in a couple of conferences (Álvaro, G., et al. KMIS2010Penela, V., et al., ESWC2011), and we were lucky enough to obtain the “Best Semantic Web In-Use paper” award in the latter. Find below the slides I presented there:

It was great to participate in the development of this tool; I hope they keep the good work and wish them good luck in the following steps with the project!

Participation in the Trans Trash project

Once again, we’ve had the opportunity to work with our cousin @numeroteca, in another collaboration with Basurama in the context of their Trans Trash project (“Understanding waste streams”) and exhibition. As he says, it’s great that our work has been displayed no less than at MIT!

In particular, we’ve helped out in the Trash-o-meter tool (“How much waste do you buy, take away and trash?”), a simple calculator used to measure the quantity of waste generated in MIT events, meetings and lectures. The aim of the project is “to pay attention to the amount of waste produced and address the irony of the so called ‘zero waste’ events”.

We have used the javascript plotting library flot in order to display graphs showcasing the amount of waste per person generated at a given event, based on the data provided by the user. (Trans Trash disclaimer: Waste formulas are work-in-progress, based on the research they are conducting.) These figures are also compared with the average, as shown in the following example:

We have to say we fully share the concern and aims of the project; we’re the kind of people who clean our coffee mug at work, instead of using a plastic cup every day. Indeed, while working on this, we couldn’t help but reminding these thoughts on plastic spoons and our society (via microsiervos.com).

Trans Trash activities keep going on, including a moving meipi map at the exhibition, and we wish the team best of luck with them.

Chameleon Color Picker for Android

Chameleon Color Picker logo

Our first Android application is already in the Android Market! It’s called Chameleon Color Picker and it displays the color of the objects you point the camera to. It also displays the RGB and hexadecimal codes, so you can use that color in any other program.

The idea came from the 0,000001 Megapixels camera post from “No puedo creer que lo hayan inventado” (I can’t believe they invented it).

It’s a free application and it’s available for Android 2.2+ phones with a camera. You can download it from the Android Market or from the following QR code:


QR code for Chameleon Color Picker

And we thank again  for the logo design. 🙂

Also, keep an eye on the following link to see all our Android applications. We only have one for the moment, but have ideas for a few more!



Participation in the 6000km exhibition

In yet another collaboration between Meipi and Basurama (remember Spermola), we are glad to have participated in our way in the 6000km project, which uses meipi to geolocate the panoramic photographs taken to document “the huge extensions of territory consumption of the large cities in Spain”, and “the uncontrolled growth of cities and the consumption of resources such as land or soil”.

The 6000km project is currently running a exhibition at Huarte contemporary art centre, Navarra: “Paisajes después de la batalla” / “Spain: Landscapes after the battle”. The exhibition, in their own words (Dossier in English) rises some questions:

“What are the effects of the exorbitant growth on the territory? What landscapes have been left for us by this cycle of prolonged economic expansion whose collapse we are witnessing these days? Do we have the ability to reverse some of the disasters committed or at least not to repeat mistakes made during these years? The project’s goal is to explore these landscapes after the battle.”

meipi 6000km


Quite a few panoramic photographs all over Spain have been gathered so far (see map above or explore in meipi.org) along with other documentation. One of the things we have done for the project is improve an automatic script that automatically walks through those locations, which is currently being used in the exhibition. Check that out embedded here (or also in meipi.org):

We look forward to seeing how the exhibition goes; we’ll also be back with more news on 6000km and the Lamboratory participation!

2010 recap

Happy new year everyone! Just a quick post (and not four, like last year;) to sum up what we’ve been working at during 2010. Basically, we’ve kept working around the three big projects we had already running –meipi, tusiyu and tubegraph– and also played with new focused experiments. 🙂

MEIPI: During 2010, new interesting meipis have been created (there’s more than 11.000 entries in 600 meipis now), and the project has kept growing with features (we’re glad to note that even with external contributions🙂 and translations, such as Greek.

TUSIYU: We have included new functionalities such as the ability of subscribing to an event by mail or rss, or inviting people by facebook, polishing some other things too. We have participated in some contests and made some analysis on the created events. Still, during the last months we’ve been working on a bigger change, and soon it will be possible to edit the event or one’s vote. Stay tuned for news!

TUBEGRAPH: There’s not much to link about it at this stage, but we’ve been working on integrating our dynamic rating technology in other product… We’re looking forward to announcing it!

OTHER EXPERIMENTS: We played with Linked Data and created a movie quiz (Linked Data Movie Quiz); we also created a Google Chrome extension that gives information about users while you browse (Twitt… Who?) and an application able to process e-mails and automatically perform certain actions (AppEngine Mail Processor).

There’s also been time to tweet (j & g), though it seems that not so much time to post in this blog ;-), and to give some presentations. We hope to keep bringing news during 2011!

Web: based in blog.txt theme by Scott Allan Wallick modified by montera34