What do Embedded Systems have to do with Second Life? More and more it seems. The possibilities are endless. SL supports communication with the outside world via http, XML RPC, and email protocols; they make RL/SL data representation and device control possible.
The
U.S. weather map on the NOAA sim is a prime example of how RL data can be visualized in SL; temperature and precipitation data is represented in near real-time for major metropolitan areas.
Here’s a link to an IBM “Master Inventor”, who’s doing a lot of embedded systems integration work with Second Life.
Sending LSLogo Commands to a Robot in RL
Last year I worked on a series of applications that link Bradford Russell’s LSLogo turtle to a device in RL. Using an earlier version of the LSLogo turtle, I send llHTTPRequests containing each turtle move to an ASP.NET WebServer/Bridge application (C#), which in turn relays the turtle moves as UDP packets to a UDP listener / Zigbee Server. The Zigbee Server application relays the LSLogo commands to a Rabbit Semiconductor
RCM4500W microcontroller board over a ZigBee (wireless) link.
Silverlight Version


The LSLogo Turtle’s code has been modified slightly, so that it doesn’t make its “next move” until it receives an http ACK from the http Bridge. Ultimately, LSLogo Turtle in SL shouldn’t proceed until the robot has completed its move.
Why bother? To learn new technologies—LSL, C#.NET, ASP.NET, VB.NET, the Zigbee protocol. Nothing about the architecture is optimal; I’m using UDP for now to deliberately reduce messaging complications between the WebServer and the ZigbeeServer, and Zigbee is a slow protocol, not at all suited for “real” robotics. But, the architecture is suitable for low bandwidth industrial control applications from Second Life. Eventually, the UDP link will be converted to TCP, and the ACKs will come from the Robot, not the WebServer. I hope to finally get the Zigbee board interfaced to the
iRobot Create; however, I may end up replacing the Zigbee link with a
Lantronix WiPort 802.11b connection.
Open Standards for Embedded Device Communication
Lately, I've been looking at the work being done by two different groups:(
OpenSpime.(
com/
org) /
xmpp.org) and (
Pachube.com /
eeml.org).
Both entities are working on protocols for embedded devices to share data with distributed devices over the Internet. I have yet to implement either protocol on a system; I'm still reading documentation & looking at examples.