Tuesday, August 31, 2010



Sometimes when you work in a complex robotic project you face the question: Should I build myself a certain part or should I buy a manufactured one?

Recently I faced that question, the robot ITINERA needs a new circuit to control 2 DC motors because the old one is malfunctioning. Then it came to my mind that some years ago I implemented such a circuit by using a self-made PCB board,  an L298 integrated circuit and some other components (diodes, resistors, etc...)

So now I could build it again and use it, but lets think about it... if I buy all the components I would spend about 15€ and it would take me about 2 hours to build it. Time is money, so if we translate two hours of work into money, lets say that is equivalent to 40€. In total: 55€ (Not taking into account the time spent going to the store and getting the components)

In the other hand, performing a quick search on Internet you can find products matching your needs. In my case an  L298 h-bridge with a price of 12,42€

I think, in this case, the answer to the question raised at the beginning of this post is pretty clear: Do not reinvent the wheel!!! 

By the way, the circuit in the last picture is the one that will replace the faulty motor controller of ITINERA.

Saturday, August 28, 2010



Well, ever since I started writing this blog and about ITINERA, I always said that it is a "handmade" robot. But somethings in the robot are too "handmade",  you know what I mean?

Let me put an example:

Yeah... that was the power switch of the robot, it was not a "handmade" job, it was a clumsy job (shame on me xD). So I decided to fix it.

I took a fancy power switch from an old computer, a couple of LEDs and attached it to the structure of the robot.

Then connected the power switch to the PC's mother board and one of the LEDs to the Power LED bay. The other LED is connected to the  motor's power source to indicate whether it is ON or OFF.

This is the result:

Looks much better :D

Tuesday, August 24, 2010



In our world time is something we cannot fight. It goes by for everybody, even for robots.

So after all these years of inactivity and reusing components for other projects, the time has come to evaluate the damage caused to the robot.

Here is a list of the robot's components and its status:

Control PC BoardMissing
Mini SSC IIWorking
Serial Motor InterfaceWorking
H-Bridge Motor controllerPartially Working - Can't move both motor wheels at the same time
FireWire InterfaceMissing
Ethernet InterfaceWorking
Wireless InterfaceMissing
Sound InterfaceMissing
Hard DriveMissing
Control PC Power SourceMissing
Motors Power SourceWorking
Stereo CameraWorking
Panoramic CameraMissing

Poor guy, almost half of the components were missing. Fortunately those components were easy to replace and some of them were not even needed. So, right now this is how ITINERA looks:

And thanks $DEITY: IT IS ALIVE!!

Friday, August 20, 2010



Here is a video that shows a little bit about the making of this robot.

First it was designed by using the software Virtual Robot Simulator (http://robotica.isa.upv.es/virtualrobot). This software is similar in some ways to Microsoft's Robotic Developer Studio, the difference is that VRS was developed by the robotics group of UPV some years before MRDS and it is OpenSource.

After the digital design was approved, the actual assembly of the robot began... you should forgive me... I am a Computer Science Engineer not an Industrial or Mechanical Engineer, so the look was very "handmade" and the details not so polished... but, hey it works! It is not that bad :P 

Monday, August 16, 2010



In this post I am going to roughly describe what the robot was able to do just before it was abandoned.

As mentioned in a previous post, the aim of the robot was to display the technology developed by ITI. Thanks to that technology the robot was able to perform several tasks related to speech recognition, speech synthesis, computer vision, biometry and navigation. But there was no specific task to be solved by the robot, it was just an exotic platform to display new technology.

The most basic task was to move around, this robot is a differential vehicle; it means  that it has two wheels set in the same axis and powered by independent motors. So, if both motors are set to the same speed and the same direction the robot will move straight forward (or backward depending on the direction of the motors). But, if both motors are set to the same speed and opposite directions then the robot will spin over itself. This vehicle configuration has been widely studied and its control is very simple. Based on this configuration I implemented a very simple layer of software to control the movements of the robot.

To complement the moving task, the robot had a series of bumpers and infrared beams that allowed it to detect collisions

Mounted on the top of the robot's head there was a camera pointing to an hyperbolic mirror. This mirror allowed the robot to see a 360 degrees picture of the scene. The purpose of this camera was to detect movements and then follow them.

In order to detect movements, first the image was flattened by using the Bresenham's algorithm. After that, the motion was detected by simple image subtraction (yeah, it is naive, but it was good enough).

This is the result of flattening the image and motion detection (you can see a vertical white line pointing out that I was moving in front of the robot)

Then there was the stereo camera. It was meant to be used to extract 3D information, but in fact only one of the images (eyes) was used. That eye was used to locate and identify faces, that means that the robot was able to know the identity of the person standing in front of it and track it.

Almost all the interaction with the robot was performed using a voice interface. That interface was implemented using ATROS (Automatically Trainable Recognition of Speech), a software developed by the PRHLT group of ITI. Thanks to this software (maybe someday ITI will release it under GPL license) it was easy to define a list of commands to be understood by the robot and associate an action to perform, for example:

  • move forward, move backward, move left, move right

  • follow me, who am I?

  • tell me the weather forecast, tell something funny

  • ....

The ability to speak was given by the Festival Speech Synthesizer. The Spanish voice was quite depressive but that made it funnier when you asked the robot's name and it answered   I tell you if you rub my hard drive

All the funny sentences and jokes came from Unix Fortune, a program that displays a random sentence from a database.

And that is pretty much it. Check this previous post if you want to see it in action.

Monday, August 9, 2010



ITINERA was the robot that I built as Degree Project five years ago at ITI (Instituto Tecnológico de Informática). The aim of this robot was to integrate all the technology developed at ITI in subjects like Speech Recognition, Computer Vision and so on.

The thing you should keep in mind when looking at ITINERA is that it was a low cost project and handmade.

Basically it is a regular PC with an aluminum structure, motors, wheels, cameras,some control circuits and software.

Here you can see ITINERA in action (thanks to Luis for the video):

It was taken to several events and it claimed the attention of a lot of people. Unfortunately I was assigned to other projects and ITINERA was abandoned :(

Now, five years later, I have a couple of months free and I wanted to rescue that robot and do some upgrading. I talked to the people of ITI and they, very gently, lend it to me so I could work with it at home.

After all this years of being in a corner it was in really bad shape. Now I started to repair and reprogramme it (I am ashamed of the software I wrote 5 years ago xD).

Monday, August 2, 2010



This is the first post in this blog. You see, I have always been an enthusiast of robotics, computers and technology and I always wanted to share that enthusiasm with the rest of the world.

Recently I rescued a robot that I built five years ago (2005). While restoring the robot it came to my mind that this could be the motivation I needed to start a blog, describe the project as it grows and talk a little bit about things related to the world of robotics, computer vision, artificial intelligence and technology.

So, here it is. If you'd like to, you are more than welcome to come and visit this site anytime.