Who says technology can't be fun? The kids in the FIRST LEGO League (FLL) competitions will surely not utter that statement. Many people consider this event to be the "Little League" of the FIRST Robotics Competition. It is a joint endeavor between the nonprofit For Inspiration and Recognition of Science and Technology (FIRST) Foundation and Lego's Mindstorms Robotics Invention System (http://mindstorms.lego.com).
How exactly do big kids—especially those with a software bend—have fun with technology? They create something called a JavaBot, which basically uses the same Lego Mindstorms system. With one slight hardware alteration, however, this platform becomes much more customizable. Essentially, a Java-based unit like JCX from Systronix (www.systronix.com/home.htm) is substituted for the standard Lego Mindstorms microcontroller.
JCX is based on Systronix's JSTAMP. It supports commonly used JCX devices, such as the standard Lego sensors, infrared rangers, and others. Using the JCX hardware package, programmers can write control programs for the JCX in a pure Java environment. They then load the program into the JCX unit's Flash memory. To date, students at the University of Utah and attendees at the 2002 JavaOne Developers Conference have used this technology. Few of them had any prior embedded-programming experience. Yet they developed applications ranging from a simple line-following robot to one that accepts voice commands.
What exactly is a JavaBot or—as it is now being called—TeamBot (www.teambots.org)? It is a collection of Java-based application programs and packages. These programs and packages are specifically geared toward developing and running multi-robot control systems—both on mobile robots and in simulations. JavaBot is freely distributable. It may be used for education and research without restriction.
As for the history of the JavaBot, Tucker Balch was its developer. Balch is an adjunct research scientist in Robotics at Carnegie Mellon University (CMU). He also is an assistant professor in the College of Computing at Georgia Tech's Intelligent Systems and Robotics Group (www.cc.gatech.edu/~tucker).
What can one do with a JavaBot? For one of its more popular uses, look to the robot sport known as JavaSoccer. Using small robots, this game simulates the dynamics and dimensions of a regulation RoboCup league game. Two teams of five robots compete on a ping-pong table by pushing and kicking an orange golf ball into the opponent's goal.
New JavaBots guarantee a growing number of games. To date, the most impressive JavaBot developed is the "JavaNator." Jim Wright and his colleagues at Sun Microsystems created this sumo-wrestling robot for the JavaOne 2002 conference. Using sonar sensors, the JavaNator can detect the opponent's robot. A photo sensor keeps it positioned within the sumo-wrestling ring. The JavaNator also has a wireless video camera that provides a "bots-eye view" of the contest.
The JavaNator implemented two major technology trends in embedded systems: real-time Java and the wireless Java phone. Many companies offer real-time solutions for Java. To name a few, they include aJile Systems, Esmertec, NewMonics, and Zucotto Wireless.
Several of these same companies also are pursuing wireless implementations in their Java-based systems. For example, Systronix has been steadily working on its open-source Java Infrared Data Association (IrDA) Project. It already demonstrated that IrDA's IrOBEX layer could be used to beam objects to a Palm operating-system (OS) device from both a JStamp and a STEP/SBX2 system. Palmtops, such as the Palm series and the Handspring Visor, were used because of their low cost and wide range of development tools. In addition, they support IrDA.
Like the FIRST Lego League Robotic competitions, JavaBot contests make technology fun and accessible. Devices like the Java-Nator demonstrate Java's versatility and richness in applications that require J2ME/real-time Java interfacing to real-world systems. The bottom line is that Java technology now covers a wide spectrum ranging from application servers, Web services, and wireless connectivity to embedded applications. It's no longer confined to the desktop computer.
Do you have any unique JavaBot applications—wireless or wired—or comments on this topic? If so, drop me a line at [email protected]