There are a number of libraries springing up to support communication with LEGO NXT Mindstorms "bricks" remotely. Popular ones include a transport layer for communicating with the brick. Communication general is channeled through bluetooth or a hardwired USB connection.
Using an API the developer can query information on attached sensors, both LEGO sensors and third party sensors, like those developed by HiTechnic, or activate any connected servos. The remote APIs unbind developers from the confines of using the packaged limiting graphical builder (NXG), a micro amount of disk space (128KB) and volatile memory (32K). The APIs also permit access to external data stores, use of processor intensive computations/AI as well as many other things.
A number of popular APIs are written in C#, Java, Perl and another written in Python. Microsoft even have integrated support in the Robotics Studio.
- C# - http://lego.fokke.net/index.php?option=com_content&task=view&id=1&Itemid=2
- Java - http://lejos.sourceforge.net/
- Perl - http://nxt.ivorycity.com/
- Python - http://home.comcast.net/~dplau/nxt_python/index.html
A project for a group at ETH would no only include writing such an API but also building a cross-platform library for communicating using Bluetooth and USB. EiffelStudio could then be extended to deploy a compiled project to the NXT brick, after a successful compilation. EiffelStudio could also be extended to support running and aborting programs on the brick, via the Run and Stop EiffelStudio commands.