Transforming a Laptop into a Robot 140
NathanZ writes "Evolution Robotics is selling what looks like a docking station on wheels as a way to transform a laptop into a robot. I'm not exactly sure how this can be useful since the "robot" has no arms. According to their website, "you can train your robot to do things like recognize objects and places, send email, take pictures and video, respond to voice commands, and more!". Yipee. At least it would give me something to do with that old Toshiba laptop sitting in the closet."
I don;t think your old Toshiba is going to hack it (Score:2, Informative)
Requirements for your laptop
(Not included with purchase)
Windows 98 or higher
Pentium II - 800 MHz or faster
256 MB RAM
50MB Hard disk space
2 USB ports
(directly on laptop or via hub
For $599.00 this is too much for it! Go Homebrew! (Score:2, Informative)
You need lots of Digital IO and lots of A/D and D/A ports if you want to build a real robot. I've
got sonar, and I'm going to use the CMU cam for vision recognition (http://www-2.cs.cmu.edu/~cmucam/). The embedded controller based robot also as a wireless 802.11b connection to my home LAN.
I wouldn't spend $599.00 for a robotic base that hooks up to a lpatop. I am guily of building the CMU pprk robot to be driven by a Palm Pilot http://www.acroname.com/robotics/parts/R91-PPRK-3
wanted to play more with a holonomic drive.
before you spend $599.00 do some research.
My next robotic platform is going to use the
Power wheels Wild thing as a base. I'll be taken a dremel tool to the toy. It will also use optical encoders to detect wheel position, Polaroid Sonar, IRPD, an embedded PC-104 controller, a homebrew A/D PC 104 card, a hombrew Digital IO card, a homebrew D/A PC104 card, a homebrew TPU card, a homebrew H-Bridge, and a homebrew servo controller. But I will be using the CMU Vision recognition system and DLINK USB->802.11b adapters.
Re:"Experiment" (Score:1, Informative)
Review of the Evolution Robotics Kit (Score:5, Informative)
I'm working on a robot project with the Stupid Fun Club [stupidfunclub.com], and we're going to build the Evolution laptop into a much bigger heavier duty robot body, to control it. [These people started the Robot Wars competition, but this particular robot is designed to be peaceful, even friendly and social.] The big friendly robot is still under construction, so I decided to assemble Evolution's cute smaller modular robot to see how it works.
It took an afternoon to put together the lego-like parts to build the Evolution robot kit. It included a bunch of aluminum beams, lots of ingenious modular plastic connectors, nuts and bolts, wheels and motors, bump and IR distance sensors, and some awesome ultra-heavy-duty velcro.
The IR distance sensors were somewhat tricky to attach, had flakey connectors, and don't all work; but everything else was quite straightforward and easy. I haven't had so much fun with legos in years!
We're using a laptop recommended and preconfigured by Evolution: an IBM Thinkpad type 2612-1bu. Most interesting is the software, which runs on Linux. Evolution has developed a "robotic operating system", which is written in C++ and configured with XML.
It has a visual behavior programming language for connecting together boxes (representing software behavior modules) with wires (representing data types of input and output parameters).
It's kind of like the "SimAntics [lushcreations.com]" language used to program The Sims, but much simpler, more general purpose, and extensible.
The behavior modules are implemented in C++ and compiled into dynamically linked libraries or built into the application. There's a C++ SDK for programming your own behavior modules, with which I've just started experimenting.
XML schema files describe the module interfaces (name, description, library, symbol, parameters, input and output ports with data types, etc). They're not standard XML-Schema, just Evolution's own special purpose behavior schema format, which is appropriate for the task.
XML behavior files assemble a bunch of modules and connect them together into high level behavior networks, which you can use to build even higher level behavior networks in a modular fashion.
There's a visual programming tool implemented in Java that lets you graphically construct networks of behavior modules, or you can simply type them in as XML in a text editor.
Unfortunately the behavior construction tool isn't integrated with the behavior execution engine, so you have to run them separately, so you can't actually edit the behaviors in place while they're running.
Other visual programming languages like SimAntics and Bounce [catalog.com] let you edit live programs while they are running, which is extremely useful.
The software side of the Evolution robotics kit includes modules for voice synthesis and voice recognition (IBM's ViaVoice libraries), as well as video capture, some simple image processing, sensor reading, motor control, network communication, teleoperation, a simple emotion engine and animated human face, and a bunch of other stuff.
But unfortunately the source code for many of the interesting modules is not included, so if they don't do exactly what you want you have to replace them from scratch.
For example, the human face emotion animation module doesn't support texture mapped faces. That's fine if your robot's face is Kermit the Frog, but I want to use face skins from The Sims. If Evolution decided to include more module source code with the SDK, programmers would be able to customize it more easily, instead of reinventing the wheel.
In summary, I like Evolution's modern and open architecture, and the code that I've seen so far is quite well designed and nicely written. But I'd like to see more code, please! One of the big problems in robotics is smoothly integrating many different pieces of software and hardware, and I think they've taken a good approach to that problem. Now they have to enable developers to easily integrate many different software and hardware modules, and let them all fight it out.
-Don