January 9, 2010
We’re glad to present the first prototype of monoSLAM working inside jdeRobot platform.
MonoSLAM is for monocular Simultaneous Location And Mapping, a computer vision technique which permits to estimate in real-time the relative position of a moving camera with respect to several landmarks extracted from the environment, using only the image sequence that provides the camera.
It is potentially helpful in visual odometry for robots, specially for those whose mechanical odometry is poor (e.g. legged robotssuch as Nao). It can also be used for augmented reality systems and scene reconstruction from video sequences.
You will always find a video of the latest prototype by following this link:
December 11, 2009
Dr. Pilar Bachiller from Universidad de Extremadura has presented the system developed on her PhD in order to get the robot behavior based on visual attention for mobile robots. The design of a control architecture for a mobile robot involves seeking solutions to issues such as analysis and interpretation of sensory information provided about the environment, the limited scope of the sensors, the limited time to process image and maintenance of multiple behavioral objectives.
You can download the PDF slides and also you can see or download full recorded speech on .avi video here.
November 23, 2009
Today, it seem impossible that we can’t control anything from our mobile device. I’m using JDEROBOT software to create a video-surveillance system based in software libre and low cost hardware.
A good feature for this system is the total control from the mobile device. In this case, we use a Android device (HTC Magic) and our problem is connect both systems: JDEROBOT (linux) and SecurityApp (Android). There are many options for this as: rpc, webservice (xml+soap) or some distributed framework. We opted for ICE (Internet Communications Engine) that is a distributed system based in definition of interfaces language.
“The Internet Communications Engine (Ice) is a modern object-oriented toolkit that enables you to build distributed applications with minimal effort. Ice allows you to focus your efforts on your application logic, and it takes care of all interactions with low-level network programming interfaces. With Ice, there is no need to worry about details such as opening network connections, serializing and deserializing data for network transmission, or retrying failed connection attempts (to name but a few of dozens of such low-level details).”
· The Android/Java Code: We try show the image captured by webcam in the Android mobile.
Ice.Communicator communicator = Ice.Util.initialize();
Ice.ObjectPrx base =
communicator.stringToProxy("varcolorA:tcp -h 193.147.51.113 -p 9999");
// Varcolor and Image are interfaces defined by us.
if (base == null)
Log.e("Main","Could not create proxy");
else
{
VarColorPrx vprx = VarColorPrxHelper.checkedCast(base);
if (vprx != null) {
ImageData image;
image = vprx.getData();
// In image variable we obtain the image data.
}
}
Easy, right? 
· The Result: The next photo shows how the android mobile can show the image captured by webcam. The webcam is connected to laptop where JDEROBOT is running.

Test Android-JDEROBOT-ICE
June 26, 2009
jderobot is now able to load Python code with a new command “aload” allowing any kind of script to be loaded and executed inside an embedded interpreter. Thank you to the
Python/C API this task has been easier. Most of the code to do it can be found
here.
Now to load a Python script is as simple as:
jderobot $> aload hello.py
Loading hello.py…
Hello world!
jderobot $>
Future jderobot4.4 will be able to load schemas programmed in Python through
Swig wrappers. Almost all the API will be available within Python and schemas will be able to “talk” to other ones, no matter their programming language.
Go to Source
May 21, 2009
Today, Jose María Cañas and Julio Vega have given a talk about how to compile, link and debug C/C++ applications over Linux platform.
Maybe sometimes there are many problems about how to compile our applications with gcc (GNU C Compiler) or link them with dynamic libraries and how to check the correct linked. Moreover, we usually prefer to include all this process in a simple makefile. So they’ve explained how to build a makefile.
On the other hand, when we have perfectly build our application or executable, we want to know why our application doesn’t work fine… so we need to debug it. They’ve talked about two important tools: gdb (GNU Debugger) and valgrind. Gdb in order to check the internal structure of the program and valgrind, specially indicated to help us to check dynamic memory use.

You can download the PDF slides and also you can see or download full recorded speech on .avi video here.
April 30, 2009
Some days ago I gave a talk at the University of Málaga on jderobot, describing its main features as middleware for robot programming. I was invited by Cristina Urdiales, from the Robotics and Artificial Vision Group of the Department of Electronic Technology.
You can find here the slides that I used in the presentation (in Spanish) . They provide a good overview of the current state of the jderobot project, its principles, foundations and software design. They also present the collection of currently available drivers, developed components, sample applications, etc.

April 16, 2009
The new stable release of jderobot has been launched, it is the 4.3.0 release. You can find it here for download or simply install it from debian packages. Many bugs have been fixed, it includes many improvements and new features:
- Project code managed with AutoTools
- Debian packages created (for ubuntu-hardy, debian-lenny and debian-sid)
- Application name changed to JDEROBOT
- All the code is now licensed by GPL v3.0
- Improved shell
- New drivers: video4linux2, evi (for Sony VID30PTZ) and wiimote.
- New schemas: a camera calibrator, extrinsics, opencvdemo, wiioperator, etc.
Check its release notes for further details.
In addition, several development tools are now used: mediawiki web site, svn repository, trac…. A community has been gathered around the project. We mainly use two mailing lists for communication: jde-users@gsyc.es and jde-developers@gsyc.es.
Most of the developer team gathered at a pizza party on 2009/03/20 to celebrate the jderobot-4.3.0 launch.

Enjoy!
March 27, 2009
Some time ago I made some tests on dlopened modules, trying to find some simple autoloading mechanisms. The usual way we were using dlopen was followed by a dlsym calls collection. This way you can get functions defined inside the module. But this forces the application to know the searched symbols names.
An easy way to avoid this is letting the module to register itself, providing some registering mechanism, on loading time. So the only requirement is some kind of constructor called inmediatelly after dlopen call. gcc function atributes in C and variable initialization through functions in C++ are really easy ways to get this pourpouse.
More info can be found here.
March 3, 2009
In this talk José María Cañas will present the foundations of projective geometry for dealing with images:
(a) 2D projective geometry, points, lines, homogeneous coordinates.
(b) Image formation: from 3D reality to 2D images, projection matrix, 3D translations and rotations
(c) I will talk about Progeo, a C library used in many JDE applications to relate 2D image pixels with 3D space
(d) Camera calibration, different types of cameras.
Date: 2009/03/06, 17h
Place: Robotics Lab (room 117), Departamental-II, URJC, Móstoles

You can see or download full recorded speech on .avi video here
February 23, 2009
I’ve finished my Final Year Project, entitled “Visualizador 3D interactivo para laboratorios de análisis de marcha”. Our objectives were to develop a 3D interactive tool that could help the doctor in the treatments and analysis of patients with walking pathologies.
Concretely, I have programmed a 3D visualizer that shows skeleton figures with the movement captured previously on the real patient. My application reads the file with the position of the patient’s joints and it draw the moving skeleton on a virtual environment with this data.
I have made the application more ergonomic and interactive: there are Play/Pause buttons, a speed dial, a progress bar and some camera controls by the only use of the mouse. this way, the managing is more intuitive and ergonomic.
Finally, the application allows to show some graphics with the temporal evolution of the positions or primary rotation angles of any joint. You can select the choised joint by the upper menu or simply clicking in the joint inside the virtual world.
In this video, you can see the Skeleton Visualizer in all his brilliance:
Last Thursday, I defended my project with great success. I obtained a 10.
Thanks to all.
Link for more information:
http://jde.gsyc.es/index.php/Dmuelas_skeleton_visualizer