To follow this blog by email, give your address here...

Friday, May 02, 2008

Open-Source Robots + Robot Simulators + Virtual Worlds + AI = ???

I’ve been reading up on the iCub open-source humanoid robot lately, and I think it’s pretty exciting. Given what open source has done for Web browsers, bioinformatics tools and other sorts of software, the possibility of harnessing the same development methodology for robot hardware and software development seems almost irresistably exciting.

I’m no roboticist, but I do know something about the AI software that robots need to understand the world and act in it – and I’ve been doing a lot of work lately on the use of AI to control simulated agents in virtual worlds. In this vein, this blog entry contains some follow-up thoughts about the possibility of building connections between the iCub and various other relevant open-source software systems relevant to AI and virtual worlds.

For starters: What if someone made a detailed simulation of iCub in Gazebo, an open-source 3D robot simulation platform? Then folks around the world could experiment with iCub without even building a robot, simply via writing software and experimenting with the simulation. Experiments with other robots and Gazebo have shown that the simulation generally agrees very closely with real-world robotic experience. And what if someone integrated Gazebo with OpenSim, the up-and-coming open-source virtual-world platform (which uses an improved version of Second Life’s user interface, but features a more sophisticatedly architected and flexible back end, and best of all it’s free)?

Furthermore, work is underway to integrate OpenSim with OpenCog, an open-source AI platform aimed at advanced machine cognition (yes, I’m one of the organizers of OpenCog); and OpenSim could similarly be integrated with OpenCyc, OpenNARS, and a host of other existing open-source AI platforms. Throngs of diversely customized, simulated iCubs controlled by various AI algorithms could mill around OpenSim, interacting with human-controlled avatars in the simulated world, learning and sharing their knowledge with each other. The behaviors and knowledge learned by the robots in the virtual world could then be transferred immediately back to their physically embodied brethren.

What stands between us and this vision is “just” some software integration work ... but of course, this kind of work isn’t easy and takes time and expertise. For various economic and cultural reasons, this sort of work has not been favored by any of the world’s major R&D funding sources – but the open-source approach seems to have increasingly high odds of getting it done. It seems at least plausible that iCub won’t go the way of OpenPINO and other prior attempts at open-source robotics, and will instead combine with other open-source initiatives to form a key part of a broadly-accepted, dynamically evolving platform for exploring physical and virtual humanoid robotics.

9 comments:

Just the fact that iCub is open source is to be welcomed, since most most academic robotics research in the past has not been. However the mere fact that the source code is available does not necessarily mean that this project will be any more successful than the large number of open source AI/robotics projects on Sourceforge.

Sadly at present if you want to get people involved in an open source robotics project it's going to be a mostly simulated affair. There is still no really affordable PC based robot platform, despite efforts by Tom Burick and a few others in the past, although I think it's only a matter of time before one appears (most robots are not much more than a PC on wheels after all). Once some sort of common platform is available that's when progress can really start happening with developers swapping code.

So, to make something like iCub a successful open source project I think they will need to put much effort into the simulation, making it as realistic as possible and also having an easy way for developers to connect to it and test their algorithms. One way to boost popularity might be to assign a certain amount of useage time on the real iCub to people whose simulations are judged to be the best, as a weekly or monthly competition. The developer then gets the thrill of seeing whether his simulated system really works.

> Sadly at present if you want to get people involved in an open source robotics project it's going to be a mostly simulated affair.

But it doesn't have to be a sad affair! If, as Ben suggests, something like Gazebo were properly integrated into something like Opensim (an open source version of the Second Life engine), people could play with this stuff and trade ideas easily without investing in the hardware.

The important bit is to know that you're simulating something that actually could exist in reality, or maybe does already at some price point. That would greatly reduce the investment cost of getting into robotics. Presently, if you're not an ace mecha/electro-hacker, you're pretty much limited to Lego, which is cool for what it does but no where near state of the art. On the other side, most robotics folks are (IMSHO) great at the mechanics and electronics, but almost Luddite in their attitude towards software. They see it as a necessary evil, not a boon to the field. They are also severely suspicious of simulation; they see it as a crutch or some sort of cop-out (or simply not realistic enough to be useful).

There is a simulator for the iCub (two in fact). If you grab the iCub source code, there's an ODE based simulator in src/iCubSimulation, and a webots simulator in src/webots. I work with the ODE one and it is coming along nicely. You can control either of the simulators (or the actual robot) using YARP or just a plain-text socket protocol.

The ODE simulator is easy to compile on Linux. On windows it is a bit awkward, but we release a compiled version of it (see the windows binaries link on the YARP home page).

There's a summer school call out for people who want to come work on the actual robot in July :-)

I think it's only a matter of time before one appears (most robots are not much more than a PC on wheels after all). Once some sort of common platform is available that's when progress can really start happening with developers swapping code

But it doesn't have to be a sad affair! If, as Ben suggests, something like Gazebo were properly integrated into something like Opensim (an open source version of the Second Life engine), people could play with this stuff and trade ideas easily without investing in the hardware.

The important bit is to know that you're simulating something that actually could exist in reality, or maybe does already at some price point. That would greatly reduce the investment cost of getting into robotics. Presently, if you're not an ace mecha/electro-hacker, you're pretty much limited to Lego, which is cool for what it does but no where near state of the art. On the other side, most robotics folks are (IMSHO) great at the mechanics and electronics, but almost Luddite in their attitude towards software. They see it as a necessary evil, not a boon to the field. They are also severely suspicious of simulation; they see it as a crutch or some sort of cop-out (or simply not realistic enough to be useful).best penis enlargement pillsOvernight Escorts