Applying Robotics to Everyday Scenarios
Microsoft's Robotics Development SDK could affect you in various ways you may not suspect.
Robotics probably seems an esoteric subject to most down-in-the-trenches corporate developers. There's no question that the field of robotics boasts a high coolness factor, and it's fun to imagine that you might be able to buildrobots on company time. But it's a stretch to think you could get buy-in from your bosses to build robot-based solutions in your day job.
What isn't a stretch is that the work going on in robotics is likely to have a major impact on the lives of corporate developers everywhere. That's because the solutions to some of the problems faced in robotics translate well to more general programming issues. For example, the asynchronous programming model required when working with robotics maps extremely closely to the demands of working with multiple cores.
I recently had the chance to speak with Tandy Trower, general manager of the Microsoft Robotics Group, which oversees development of the Robotics Development SDK (RDS). We spoke about the ways in which his work on RDS is likely to bear fruit outside the more narrow discipline of robotics.
Trower pointed out that one of the limitations of robots, especially portable ones, is that their computing power is constrained by the raw processing power robots can carry around. You must include the robot's processing power on top of the servos, gears, power source, and other functionality your robot requires. Taken as a whole, these requirements can create a significant bottleneck in the capabilities of mobile-robotic platforms.
Today's manufacturing processes do enable you to miniaturize the mechanical components a robot requires much more so than was possible in the past, but there are limits even now to how small you can make something, and improving on the size/performance ratio increases the cost, sometimes dramatically. For example, today's most successful and widely used commercial robots, such as the domestic helper robots from iRobot, are relatively inexpensive, but the tradeoff is that they don't have much built-in processing power: Your washing machine probably has more processing power than these machines.
I'm not belittling what these devices do -- I think they're awesome -- I'm just pointing out that the computational power of these devices is somewhat crude and limited.
But imagine if you weren't constrained by having to build all the required processing power for a given robot into the mobile platform itself. Imagine if you could take advantage of the broadband capabilities of Bluetooth and/or Wi-Fi and leverage, not just the built-in processing cores of the robot, but also the processing cores of your home PC or even a network of PCs. Now you've expanded the processing power of a robot by extraordinary leaps and bounds. Even a tiny device could take advantage of highly sophisticated and nuanced commands that put to shame the current capabilities of the useful but primitive commercial-robotic devices of today.
To make such functionality easier to implement, the RDS team developed the Concurrency and Coordination Runtime (CCR) and Decentralized Software Services (DSS). Together, these technologies simplify using an asynchronous programming model in a loosely coupled environment. In addressing this problem, Microsoft has created a roadmap for working with the multiple core scenarios that will be increasingly common in the years to come. For example, the challenges faced by programming these kinds of robots aren't dissimilar to what you face when trying to process data across a large data network.
Today, CCR and DSS are part of RDS, but Trower indicated that the embedded programming team is looking at incorporating these technologies in the near future, and that Microsoft is considering integrating CCR directly into the .NET Framework. Whether the Framework team adopts CCR and DSS specifically, or draws on the lessons learned from them to implement something else, all .NET developers are likely to benefit from this technology, whether or not they devise and program robots themselves.
Talk Back: What do you think the future of robots holds for us in both the near and long term? What practical applications do you hope to see or program? Tell me at [email protected] or [email protected].
Patrick Meader is editor in chief of Visual Studio Magazine.