Wow, did you know that Microsoft has a robotics group? I just noticed that they released a Microsoft Robotics Studio. I am downloading this technical preview now to check it out. This to me is a huge leap for the robotics industry. Putting the power of Microsoft development tools to build robotic applications is a win win solution. I finally can merge my two passions of software development with Microsoft technologies and building robots! I am very excited about this project. Make sure you check out the Channel 9 video about the group. Keep an eye open for your favorite robot somewhere in the background of the video.
Some projects the group is working on.
- Live.com gadgets to control a robot.
Key features of the platform
- Concurrency and Coordination Runtime (CCR) - An asynchronous messaging library that makes managing state changes easy to the developer.
- Robotic remote control via a web browser
- Scripting robotic commands via jscript to create complex robot movements
- Multiple hardware platforms. Currently supporting Lego Mindstorms (RSX and NXT) and fischertechnik.
- Support for 8, 16 and 32 bit processors
- Separating state from behavior
- DSS - A services layer
- Support for service contract programming where multiple input or output devices can be used by simply altering what device is bound to the contract. Example: A contract could be established that controls the robots movement. A keyboard device could be bound to the contract to provide the input that moves the robot. Or a joystick device could be bound to the contract to provide the input to move the robot. The point here is that support is in place for a pluggable architecture or re-usable components.
- Subscribe publish model that allows for a lot of autonomous agents to react to state changes. This promotes a decoupled environment. You can create a published event like bumper touched and later build a component that subscribes to that event and reacts to it. There can be multiple subscribers to the event.
- Model simulation - You can model your environment and run your software without any hardware.
- Since the applications are service based you could distribute services across multiple machines.
- Example if I create a service that monitors my door bell and expose the service to the public you could subscribe to my service and perform some action when my door bell is rung.
Well I could go on and on about this new platform but I want to get started on using it. I will first go through the tutorials to gain an understanding of how it works. Luckly I have a Lego Mindstorms RSX kit. After the tutorials are complete I will try extending the services to support a BX24 bassed hardware device.