YOUR FEEDBACK
Jeremy Geelan wrote: In response to inquiries and suggestions from readers this lexicon has recently...


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP THREE LINKS YOU MUST CLICK ON


MAX: A Java-Based Personal Robot Platform
MAX: A Java-Based Personal Robot Platform

When you mention the word "robot," most people think of either large industrial bots that do heavy work on factory floors, suicidal bots doing battle on TV, fanciful R&D bots gracing the labs of universities, or simple hobby bots of the LEGO Mindstorms ilk. Don't get me wrong, all such creations are deeply fascinating to me and embody tremendous ingenuity and engineering craftsmanship. However, I want a robot that I can make do a variety of things around the house or place of business, one that won't cost a small fortune and is flexible and evolvable enough that I'm not stuck with a robot constrained to accomplishing a single task. Essentially, I want something that doesn't exist. I want the "Personal Robot."

Despite what may have been perceived as blind fantasy, a few years ago I set about pursuing the construction of a personal robot. I had a formal background in all of the requisite engineering skills including robotics and AI, but they were festering on my brain's vines of unused knowledge. My years spent doing work that actually generates rather than consumes money thrust me into the world of more commercially viable enterprise technologies and products. However, I began to see more and more of a possibility of fusing the commercial-grade work I was doing with my robotics R&D to yield a robotics platform that was cheap yet sophisticated. I wouldn't need to mortgage my house to buy a platform that only the wealthiest of companies or agencies could afford, and I wouldn't be stuck with a constrained hobby bot that could maybe flicker a few lights and fall down the stairs. Instead, I'd commence building a platform that was based on open source and commercial-grade products, be able to integrate with an assortment of underlying useful mechanical hardware components, and provide myself with an open sandbox and playground in which I could develop a wide variety of robotics apps.

I scrambled to give this platform a name and requisite acronym and could only muster the three letters M-A-X. MAX stands for Mobile Autonomous X-Bot. The mobile and autonomous part should be obvious, but the X-Bot represents the fact that the bot would be a generic platform atop of which I could do cool things. X is a variable. Get it? Just plug whatever application you want into the MAX platform and that is what X becomes. Armed with a name and an acronym, I was ready to crank up the R&D a notch and began forming a company around said efforts.

There is a plethora of hardware components on the market useable in robots ranging from the capriciously cheap to the stylishly pricey. To create MAX in such a way that would make it easy to work with this varied hardware, we defined a Java-based abstraction layer to interface with such devices. This was a key design feature since as you create or load different robotics applications into MAX, you may also require different robotics hardware to support your application. Our design thus called for plug-and-playability achieved by either custom configuration of a few generic drivers or by creating drivers specific to the hardware device being utilized.

As a Java zealot, everything I aim to do is in Java. If I could Java-enable my nose-hair trimmer, I'd do it. Blind loyalty to programming languages aside, I naturally think there are genuinely good reasons for using Java to build robotics applications. Apart from its simplicity as well as operating system (OS) and computing hardware independence, the wide range of built-in, commercial, and open source tools readily available make it an attractive and low-cost platform for cranking out robotics apps. Thus, we were hell-bent to try and use a standard J2SE runtime operating on Linux (or any other OS) running on a standard CPU for our underlying platform. In fact, this standard JOC (i.e., Java-OS-CPU) platform is indeed the only platform required by MAX for a wide range of robotics applications.

With a standard JOC platform, MAX communicates with external robotics hardware devices via Java-based interfaces to standard parallel, serial, and USB computer ports. For certain devices like digital cameras, the physical connectivity is easy since most cameras plug directly into a USB port. To interface with certain other sensor and actuator types, such as IR sensors and DC motor-driven wheeled bases, a few extremely simple and low-cost hardware connectors are used to bridge between standard computer ports and external robotics hardware.

For certain sensors and actuators, a more real-time interfacing approach is required; a standard JOC platform won't cut it here. Hence our MAX design required an augmentation to work with a J2ME-based, real-time Java embedded JOC platform. A few reasonably priced platforms on the market exist with some even built around the aJile Java-based processor core executing Java instructions in hardware.

For a certain range of applications, the embedded JOC platform and MAX profile will be all that is needed to perform a variety of basic robot functions. For other applications, a standard JOC platform and MAX profile will be required for more sophisticated applications that perhaps require access to large amounts of persisted data or communication with multiple distributed services, or need to implement more complex planning algorithms. Yet another alternative is to use a standard JOC MAX profile for the more complex data, communication, and planning operations and leverage use of the embedded JOC MAX profile for the sense-actuate functionality inside the same physical bot.

The MAX software and hardware bridges are designed with maximum flexibility for allowing a choice of underlying hardware while providing open and configurable interfaces for building robotics applications that use and drive such hardware. While a growing suite of MAX components is being built and prototyped with a mixture of hardware devices, the real test will come when we start shipping MAX hobbyist and developer's kits. Only then will we all see what sort of community grows to extend MAX and satisfy the "X equals to" equation, making bots and applications that do things we've always dreamed of and have yet to dream of doing for ourselves and organizations in an open, extremely low-cost, and constraintless fashion.

About Paul Perrone
Paul J. Perrone is an architect, author, and speaker on Java, J2EE, and XML via Assured Technologies, Inc. (www.assuredtech.com). Paul founded Assured Technologies in 1998 and has more recently founded Perrone Robotics, Inc., to focus attention on the vertical space of software for robotics.

YOUR FEEDBACK
Florence wrote: Hi Frank, This article is so rich and informative. Hats off to you. Hoping to see more articles with the same calibre.
aviraj wrote: send me the latest news
LATEST JAVA STORIES & POSTS
What's the key to team and individual developer productivity in maintaining and extending a large application? Let’s start by making the following assertions: A developer's knowledge of an application code base is likely the single biggest factor of individual productivity. Cor...
An applet, a Java program that runs in a browser, often has to access the client resources. However, the security manager prevents an applet from accessing client resources. To access client resources, the applet has to have the proper permission. With this permission the applet ...
Three-letter acronyms (TLAs) are hardly new in Information Technology: EAI, ESB, SOA, BPM, BAM, ETL, MDM; the list goes on and on. This article is about yet another three-letter acronym, EDA, which stands for Event-Driven Architecture. EDA is not a brand new technology, but rathe...
Furthering its dedication to providing Java developers productivity with choice, Oracle announced the Oracle Enterprise Pack for Eclipse, a new component of Oracle Fusion Middleware. This release marks the first free Eclipse 3.4 environment to support Oracle WebLogic Server 10g R...
Two of the biggest launches in Rich Internet Application history took place in 2007/2008 when Adobe launched AIR 1.0 in February '08 and Microsoft launched Silverlight (September '07). At the 6th International AJAXWorld RIA Conference & Expo in October SYS-CON Events is delighted...
Red Hat CTO Brian Stevens, Citrix CTO Simon Crosby, Egenera CTO Pete Manca, Allen Stewart, Group Manager, Windows Virtualization at Microsoft, and Brian Duckering, Sr. Director of Products and Alliances at Symantec were the top industry executives who joined Jeremy Geelan in the ...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

SPONSORED BY INFRAGISTICS
There are many forces that influence technological evolution. After a decade of building enterprise ...
2008 is going to be an important year for Rich Internet Applications. Most organizations are deliver...
The OpenAjax Alliance is developing an Ajax industry wishlist for future browsers, using a dedicated...
In every field of design one of the first things students do is learn from the work of others. They ...
Infragistics announced the availability of two Community Technology Preview (CTP) User Interface (UI...
The YUI development team has released version 2.5.2; you can download the new release from SourceFor...
ADS BY GOOGLE
BREAKING JAVA NEWS

SpringSource, a leading provider of infrastructure software and the company behind ...