<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>microsoft-robotics-studio &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/microsoft-robotics-studio/</link>
	<description>Feed of posts on WordPress.com tagged "microsoft-robotics-studio"</description>
	<pubDate>Sat, 05 Dec 2009 06:28:30 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Simulation 3D pour NXT]]></title>
<link>http://ubik75.wordpress.com/2009/06/03/simulation-3d-pour-nxt/</link>
<pubDate>Wed, 03 Jun 2009 20:30:56 +0000</pubDate>
<dc:creator>Thierry</dc:creator>
<guid>http://ubik75.wordpress.com/2009/06/03/simulation-3d-pour-nxt/</guid>
<description><![CDATA[SimplySim, une société française spécialisée dans la simulation en 3D, a utilisé Microsoft Robotics ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>SimplySim, une société française spécialisée dans la simulation en 3D, a utilisé Microsoft Robotics Studio pour créer des simulations 3D pour le Mindstorm NXT. Le package de simulation peut être téléchargé ici: <a href="http://www.simplysim.net/index.php?scr=scrViewGallery&#38;t=5&#38;idgal=28" target="_blank">SimplySim</a></p>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/nIVgnlG_ZUk&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/nIVgnlG_ZUk&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Microsoft Robotics Developer Studio 2008 ]]></title>
<link>http://dcselab.wordpress.com/2009/03/27/the-microsoft-robotics-developer-studio-2008/</link>
<pubDate>Fri, 27 Mar 2009 05:50:15 +0000</pubDate>
<dc:creator>dcselab</dc:creator>
<guid>http://dcselab.wordpress.com/2009/03/27/the-microsoft-robotics-developer-studio-2008/</guid>
<description><![CDATA[http://rapidshare.com/files/204194838/Microsoft.Robotics.Developer.Studio.2008.Standard.Edition-ZWTi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>http://rapidshare.com/files/204194838/Microsoft.Robotics.Developer.Studio.2008.Standard.Edition-ZWTiSO.part1.rar</p>
<p>http://rapidshare.com/files/204195275/Microsoft.Robotics.Developer.Studio.2008.Standard.Edition-ZWTiSO.part2.rar</p>
<p>http://rapidshare.com/files/204195753/Microsoft.Robotics.Developer.Studio.2008.Standard.Edition-ZWTiSO.part3.rar</p>
<p>http://rapidshare.com/files/204196204/Microsoft.Robotics.Developer.Studio.2008.Standard.Edition-ZWTiSO.part4.rar</p>
<p>http://rapidshare.com/files/204196533/Microsoft.Robotics.Developer.Studio.2008.Standard.Edition-ZWTiSO.part5.rar</p>
<p>Password www.area51warez.info</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[RoboChamps World Finals]]></title>
<link>http://alexreg.wordpress.com/2008/11/23/robochamps-world-finals/</link>
<pubDate>Sun, 23 Nov 2008 01:02:30 +0000</pubDate>
<dc:creator>Noldorin</dc:creator>
<guid>http://alexreg.wordpress.com/2008/11/23/robochamps-world-finals/</guid>
<description><![CDATA[About a month ago now I happened to receive a rather surprising email from Microsoft. Having read th]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>About a month ago now I happened to receive a rather surprising email from Microsoft. Having read that I was invited to the Microsoft <a href="http://www.robochamps.com/">RoboChamps</a> World Finals in Barcelona, I quite nearly dismissed it as spam until I read a bit further. It soon became obvious that it was in fact a real event for four &#8220;world finalists&#8221; to compete by programming robots to fight in a &#8220;Sumo ring&#8221; (essentially a physical version of the <a href="http://www.robochamps.com/rc/Common/challenge.aspx?id=Sumo">online Sumo challenge</a> from the same competition). My disbelief was mainly due to the fact that RoboChamps wasn&#8217;t something I had devoted a huge amount of time to before then. I had watched some videos on <a href="http://channel9.msdn.com/">MSDN Channel 9</a> and played around with a couple of the <a href="http://www.robochamps.com/rc/Common/challenge.aspx">challenges</a> downloaded from the website, but that was about it. Not before long I had encountered various bugs and issues in the SDK/challenges, quickly making me lose interest and move on to something completely new, as is often my tendency. (I might have anticipated the problems given that it <em>was</em> Microsoft beta software). Admittedly, the idea of programming robots in a simulated environment using the .NET framework sounded pretty cool, but I was busy enough at the time to (temporarily) forget about it. Back to my point: I soon found out that I had gained a wildcard place by my (comparatively) active participation in the forums, which at least clarified matters. So it came down to a free week-long holiday in the middle of the university term, simply to play around with robots (and win a guaranteed prize!) &#8211; how could I not accept such an opportunity?</p>
<p>I arrived in Spain late on Sunday after far too many hours travelling by aeroplane/train (and then getting lost and having to rely on my paltry knowledge of Spanish for directions to the hotel in the dark). Still, I did manage to arrive at the conference centre on time for the keynote (opening) speech of the yearly <a href="http://www.microsoft.com/emea/teched2008/">EMEA TechEd</a> developer conference, which was acting as host to the RoboChamps finals. Unfortunately I wasn&#8217;t able to attend any of the other talks given at the conference during the week. (The ones on the new F# language [see <a href="http://alexreg.wordpress.com/2008/10/23/learning-fsharp/">this post</a>] and the future of C# looked reasonably interesting, but as contestants we were coding and testing literally from sunrise to sunset some days!) The keynote itself was all about the next version of Visual Studio (VS 2010), including a few live demos, which overall looked very promising. I haven&#8217;t actually downloaded the CTP for it yet, so I won&#8217;t go into the details here. I may however wait for the next release, given that the IDE crashed within about 30 seconds after startup on the first demo &#8211; quite unsurprising really, but still rather amusing in what was essentially a big promotional talk.</p>
<p>The competition proper started that afternoon, when I met the three other contestants as well as the guy from Microsoft who was organising everything for us. They were Jackson, a professor of robotics from Brazil, David, and Doug, both two American engineers with many years of experience&#8230; I thought it would be difficult simply not to embarrass myself, but contrary to expectations the contest turned out to be surprisingly close (possibly due to the severe time constraints). We were firstly given our individual robots, two shared practice rings on which to test, a reference book for Microsoft Robotics Studio, and a brief explanation of how the event would be run before we then set to work. The robots were in fact just iRobot Create models (very similar to do the Roomba vacuum cleaner) with an embedded box running Windows CE and a webcam attached. In addition, since I was without a laptop, I was kindly given one to use throughout the course of the event, with nothing less than a pre-released version of Windows 7 installed. This ought to be the topic of another (short) post, but suffice to say now that I was quite impressed with some of the updates from Vista. I even hear that a slimmed-down version is being developed, which means people may have rather more luck running it on EEE PCs and other less powerful machines.</p>
<p>There were initially (that is the whole of the first two days) some horrible issues trying to run even the sample program on the robots. To start I had the bad fortune of being unable to deploy my program to the embedded box (which took rather long to realise and resolve with Visual Studio displaying a &#8220;Deploy Successful&#8221; message, despite my wondering why my program was still behaving like the sample one). Still, it seemed that everyone had their fair share of problems over the week, both hardware and software related. The fact that half of the robots were originally broken in some way (and some never fixed), together with the low charge on all the battery packs meant that I spent the first two days doing all too little. I should however mention that we did have plenty of assistance in trying to fix everything as soon as possible. (Microsoft <em>did</em> want a good contest after all, especially since the fight on Thursday was being publicised to any conference-goer who walked near.)</p>
<p>Eventually when I did get my program running, things turned out to be a lot of fun and it the challenge became one of strategy rather than debugging. I started by tweaking the code for the sample program and improving upon the vision processing, with a limited degree of success. My hopes to use the SIFT algorithm (its virtues preached to me by David [my aforementioned friend, not opponent]) for feature detection and estimating the location of the robot&#8217;s self/opponent immediately vanished once I had run a few speed tests on the embedded device, showing about a 100x slowdown compared to my moderately fast desktop. Noticing that my opponents were using relatively straightforward algorithms for machine vision was however a big relief. (SIFT was largely magic to me anyway, having tried to learn it only the previous week from Wikipedia and some of David&#8217;s old lecture notes.) I ended up taking the general structure and motor-control code from the sample program (as I believe the others did too) and using my own code for handling the sensor data, in particular the camera frames. The essence of my vision processing algorithm was some fine-tuned colour segmentation (using a flood fill function I ported from a previous project). I also updated the motor control code to use proportional feedback. Most else was quite trivial.</p>
<p>We finally came to the afternoon of the competition, with barely a day and a half of serious development behind me (and little more, if any, for the others). Despite the evidently enormous amount of work everyone put into the competition, it was great to be with such casual, open, and friendly competitors, and we were sharing ideas even until the last few hours. The format of the rounds was very simple: the winners of the two semi-finals progressed to the finals, and the losers played for 3rd place, where each round was the best of three 60 second bouts. The first semi-final between Jackson and Doug began at 1:00pm (see the video recording of it <a href="http://uk.youtube.com/watch?v=kUViNVaZ3ns">here</a>) and I was beginning to panic slightly, realising that the recent versions of my program were strangely intent on running the robot out of the ring by itself and not easily resolvable. (I had recently done some 3 or 4 hours coding without any testing, which would explain&#8230;) A bit foolishly, I also had no sort of version control on my code (unless you count the poor man&#8217;s version control of copying/pasting the source directory every so often). When it came to my semi-final round against David, his robot needed only to watch mine drive full speed out of the ring after about 15 seconds. Fail, indeed. Crucially I had a couple of hours before the 3rd place play-off, which meant I could at least revert to a backed-up version (of unknown behaviour in the ring) and do some tweaking/testing. This somehow won me the round against Doug (though my robot only succeeded in avoiding being pushed off) to finish 3rd overall. I did get the feeling that perhaps I would have faired rather much better on first round had I only been less intent on using my latest version, but I was nonetheless happy to settle for 3rd given the overall situation.</p>
<p>We had all agreed earlier in week that we would let the winner choose first whichever prize he wishes, followed by the others in rank order. (This was mainly due to the lack of fondness for the RoboDog, which was originally going to be the 1st place prize.) When it came to decision time Jackson was very generous in deferring his choice to the rest of us, which means I was lucky enough to receive one of the two laptops. I still am not aware of its precise specs, but hearing that it was a high-end Alienware gaming laptop was enough to sell me. The <a href="http://www.corobot.net/">Corobot</a> ended up going to Jackson and the RoboDog to Doug, but everyone seemed reasonably pleased (the robots were . In the end I don&#8217;t think I could have hoped for a better experience (minus the hardware issues perhaps). Now that it&#8217;s apparent this was both the first and last RoboChamps competition (it has already been merged with the <a href="http://imaginecup.com/">Imagine Cup</a>), I feel particularly fortunate to have been invited. (The Imagine Cup, inspite of being for students, seems to attract far too many Eastern European hackers to give many people a chance.)</p>
<p>On a final note to this absurdly long post, Microsoft Robotics Developer Studio 2008 has just been released. You can download the Express version <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=84c5b49f-0f9c-4182-a267-a951328d3fbd&#38;displaylang=en">here</a> for free, but there&#8217;s now also a commercial <em>Standard</em> version. I suppose the focus on hobbyists had to come to an end at some point, although the free version still looks quite capable. Also, I should point out that the release of the <a href="http://www.robochamps.com/rc/Common/challenge.aspx?id=Mars">Mars Rover challenge</a> (an especially interesting one) is now imminent in case anyone fancies giving RoboChamps a go &#8211; there will most likely be some pretty nice prizes for the winner/runners-up too, as with the previous challenges.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft Technology Summit 2008 - Day 2]]></title>
<link>http://jimbreen.net/2008/09/09/microsoft-technology-summit-2008-day-2/</link>
<pubDate>Tue, 09 Sep 2008 12:49:41 +0000</pubDate>
<dc:creator>jimbreen</dc:creator>
<guid>http://jimbreen.net/2008/09/09/microsoft-technology-summit-2008-day-2/</guid>
<description><![CDATA[These dated notes went missing for a while, but have been recovered.  Although their relevance is gr]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><em>These dated notes went missing for a while, but have been recovered.  Although their relevance is greatly diminished, I&#8217;m posting them anyway for anyone trying to find out what MTS is about.</em></p>
<p><em>This is my second post on the Microsoft Technology Summit which I attended on Microsoft&#8217;s Redmond campus.  This post is a summary of the Day 2 sessions.  My post about Day 1 can be found <a href="http://jimbreen.net/2008/04/08/microsoft-technology-summit-2008-day-1/" target="_self">here</a>.  MTS is a conference of technologists and bloggers invited by Microsoft to hear updates about various Microsoft products and initiatives and to provide feedback. Most of the attendees are experts in technologies and communities that aren&#8217;t closely, if at all, associated with Microsoft.  Full disclosure: Microsoft paid for my travel, lodging and food during the summit.</em></p>
<p><strong>Microsoft Open Source Software Lab</strong><br />
Annandeep Pannu, Senior Program Manager for Platform Strategy, gave an introduction to the Microsoft OSS Lab.  The lab&#8217;s mission is to foster mutual respect and understanding between MS and OS community such that both act responsibly toward each other.</p>
<p>Recent projects the lab has completed include:<br />
- Windows Media Player 11 Firefox interop<br />
- Silverlight/Moonlight firefox interop<br />
- SQL Server drivers Java/PHP interop<br />
- FastCGI Java/PHP/Python interop<br />
- Firefox on Vista<br />
- SAMBA interop with file and print services</p>
<p>Current projects include:<br />
- Hyper-V Linux interop<br />
- WS-Man compliance tool (system management)<br />
- PHP Pear/ADOB Abstraction (PHP interop)<br />
- ASF Technology Transfer (Apache interop)<br />
- cardspace relying party (Java/PHP/Ruby/C interop)<br />
- HPC Linux/Windows environment (identity integration, file server integration, resource manager interop)</p>
<p>In answer to an attendee&#8217;s question, Pannu stated that Microsoft has no plans to port Office apps to Linux.  It is a fundamental belief of the lab that Windows is the best OS.  As such, their efforts will always be focused on letting other systems integrate with Windows, not porting Windows applications to other systems.</p>
<p><strong>IIS7 Product Overview</strong><br />
<a title="Bill Staples' blog" href="http://jimbreen.net/2008/04/08/microsoft-technology-summit-2008-day-1/" target="_self">Bill Staples</a>, Principle Product Unit Manager of the IIS Product Division, went into a lot of detail on the new version of Microsoft&#8217;s web server, IIS7.</p>
<p>He was one of the few presenters that didn&#8217;t reuse their presentation from the MIX08 conference, instead opting to just demo the product.</p>
<p>Microsoft has been working on IIS7 for five years.  They decided that every IIS7 feature must be built on public APIs in order to have as little of the server built into the kernel.  I&#8217;m sure this was motivated by security concerns; the less server code running in the kernel, the fewer potential exploits that would provide kernel access.  To accomplish this, they added a slim request/response API with an extensibility model. All other features are modules that can be added/removed as needed, a la Apache.&#8221;  Also borrowing from Apache, the &#8220;configuration repository&#8221;  for the server is an XML file.</p>
<p>IIS7 is clearly a huge improvement over IIS6, but Staple&#8217;s audience grilled him on why they should be excited about this stuff considering Apache has done all of it for a long time.  Staples commented that Apache/Linux is a great solution and that now developers have a similarly modular option on Windows.  Apparently the company position is that Apache doesn&#8217;t run on Windows!  IIS7 only runs on Vista and Windows Server 2008.</p>
<p>One differentiator is the GUI admin tool that is built on top of the XML configuration file.  It&#8217;s pretty much what you&#8217;d expect from a Windows management interface.  All of the configuration can also be done from the command line apparently.  Site specific IIS config can be controlled via an XML web.config file located in the site&#8217;s root directory.</p>
<p>As a demo, Staples created a WordPress blog and served it with IIS and the FastCGI module.</p>
<p>Output caching allows dynamic content to be cached for period of time (eg 30 secs).  Staples showed how this dramatically improved IIS/FastCGI/WordPress performance.</p>
<p>By default, sites run in separate processes.  IIS7 will eventually include a new URL rewriting feature which has not yet been publicly released.</p>
<p>IIS7 does include a cool feature called Bandwidth Throttling.  A site can be configured to respond to a request for certain media types with a temporary burst of very high bandwidth for a few seconds, then continue with bandwidth throttled at a percentage (better be &#62;= 100) of the media file bitrate so that the downloading stays just ahead of the media player.  The point is to save bandwidth in the situations where a user only watches the first few seconds of a media clip by avoiding serving the entire clip during that time.  In the event of a network interruption, IIS increases bandwidth allocation.  Does Apache have this capability?</p>
<p>So IIS7 looks great compared to IIS6, and developers and sysadmins who have no choice but to use the Microsoft stack should be excited about it.  Those who use Apache probably don&#8217;t have any new motivation to switch, with the possible exception of the bandwidth throttling feature.</p>
<p><strong>The Microsoft Local Software Economy</strong><br />
John Fernandes, Director of International Business Development discussed Microsoft efforts to foster healthy local software economies in international communities.  Local governments have asked Microsoft what they can do to help with the local economies, and this program is the eventual answer.</p>
<p>Local Software Economy Initiative<br />
-builds self-sustaining ecosystems though local partnerships in 70+ countries<br />
-helps governments drive prosperity<br />
-grows competencies of local IT community<br />
-creates new businesses<br />
-focuses on students academics, government, ISVs and startups<br />
-drives long term growth opportunity for partners &#38; MS</p>
<p>Local software Economy Programs<br />
-skills &#38; capacity building<br />
-foster innovation &#38; ICT growth<br />
-enable ICT competitiveness</p>
<p>Microsoft Innovation Centers<br />
- provide environment for innovation<br />
- operated with government, university, industry organizations &#8211; not on a MS campus<br />
- 110 MICs in 60+ countries</p>
<p>Fernandes was asked bluntly if Microsoft&#8217;s goal in running the innovation centers was to train developers who are dependent on Microsoft technology, or to build a general local software economy that would payoff over the long term.  In other words, are they creating customers now or a market later?  Fernandes said it was the latter.</p>
<p>He took some flak for this from an attendee who said she has been in the training centers and there is nothing being taught except Microsoft products.  On one hand I think it&#8217;s unrealistic to criticize Microsoft for donating and teaching their own technology.  What do you expect?  Linux classes?  On the other hand, maybe a conflict of interest is too inherent in the Microsoft-only program, and a better way to work towards the stated goal of long term health of the local software economies would be to donate resources to or co-found a non-profit.</p>
<p><strong>IE8 Product overview</strong><br />
<a title="Chris Wilson's blog" href="http://blogs.msdn.com/ie" target="_self">Chris Wilson</a>, Internet Explorer Platform Architect talked about the major changes in IE8.  He first discussed the different consumers of the product, users and developers, and how these groups have different priorities.</p>
<p>Users want predictability, productivity, and power, while developers want productivity, power, and predictability, but those concepts mean different things to each group.</p>
<p>For users, predictability means security, compatibility, and reliability.  New IE8 features to address these needs include:<br />
-the site domain name is highlighted in address bar separately from rest of the URL<br />
-the Manage Add-Ons experience has been improved<br />
-ActiveX components can be installed per-user and per-site without admin rights<br />
-DEP/NX code execution prevention<br />
-users&#8217; sites and apps work in new browser version</p>
<p>Two new big features increase user productivity.  Activities provide a framework for plugins that can do something with data on a web page.  An example would be obtaining a map for an address selected on a page.  Activities are available via right-click and have a category, such as &#8220;Map&#8221;, that supports hierarchical navigation through the right-click menu.  Activities are defined with the OpenService format.</p>
<p>WebSlices allow a user to subscribe to a specific piece of content on a site.  the WebSlice format is based on hAtom, but extends it.  WebSlices support dynamic content while hAtom only supports static content.  WebSlice subscriptions get added to the Feeds platform.</p>
<p>Predictability for developers has conflicting definitions.  Should IE8 behave like the standard or like IE7?  Of course, this is a quandary of Microsoft&#8217;s own making by not supporting the standards as they emerged.  Microsoft considered having sites opt into IE8&#8217;s standards support, but they thankfully went the other way.  Instead, IE8 will default rendering according to the standards.  Sites that don&#8217;t render correctly in the standards mode can add a &#60;meta&#62; tag directing IE8 to render in IE7 mode.  This will allow them to make a small change to support IE8 if their site doesn&#8217;t look right by default, and then convert their site to standard HTML and CSS on their own schedule.  Users will also have an option to switch to IE7 mode for sites that don&#8217;t add the meta tag or convert to standards.  When in standards mode, IE8 now passes the ACID2 test.</p>
<p>IE8 also has a new layout engine with the goal of providing developers with predictable layout.  This layout engine has an improved typographic foundation and benefits from having CSS2.1 in hand while being designed &#8211; one of the problems with the prior engine.  This clean start is the end of hasLayout.</p>
<p>A few changes are intended to improve performance.  The parallel connection limit is increased from two to six unless the user is on a modem.  Also, there are javascript improvements and the pre-parser doesn&#8217;t block at script tags.</p>
<p>Finally, there are some improvements to increase developer productivity including better support for web history in Ajax applications, a debugger, a CSS selector API, and HTML 5 storage.</p>
<p><strong>Dynamic Languages @ Microsoft<br />
</strong>John Lam, Senior Program Manager for Visual Studio Managed Languages discussed the Dynamic Language Runtime.  In response to his own rhetorical question asking why Microsoft would support dynamic and open source languages on the .NET runtime, he listed the following reasons:<br />
- increased opportunity to get Microsoft technology used<br />
- clear trend to build stuff on OSS<br />
- developers want freedom to create stuff<br />
- developers want freedom to see the source code</p>
<p>The Microsoft Permissive License got changed to Microsoft Public License(MSPL), and got OSI approval.</p>
<p>The Dynamic Language Runtime(DLR) was refactored from the IronPython implementation. Common code and services that were needed for dynamic languages was extracted into a reusable framework.</p>
<p>Because the DLR is distributed as MSPL, anyone can port to other platforms.  So assemblies can run on Mono without changes.</p>
<p>Microsoft is hoping to have Rails running on the DLR by RailsConf 08.  John demoed Django today, but acknowledged having to make a few changes to the Django source to do so.  He also admitted that both IronRuby and IronPython have performance issues right now.</p>
<p><strong>Microsoft Robotics Studio</strong><br />
Tandy Trower and George Chrysanthakopoulos of R&#38;D Advanced Strategies presented on Microsoft&#8217;s robotics development tools, which include a general concurrency and distributed services solution.  Robotics Studio is a development platform for the robotics community supporting a wide variety of users, hardware, and application scenarios.  The tool is free for non-commercial use and $399 for commercial use.</p>
<p>The tool and technology looked cool, but it was the end of a second long day and I&#8217;m not a robotics guy so I don&#8217;t have much to say about it.  In summary, robots are big, big, big, and Microsoft has an IDE and simulation environment to develop and test robotic control.  If you are into such stuff, it definitely looked like it&#8217;s worth checking out.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Innovation in Robotics: Government Uses?]]></title>
<link>http://lewisshepherd.wordpress.com/2008/07/01/innovation-in-robotics-government-uses/</link>
<pubDate>Tue, 01 Jul 2008 16:03:07 +0000</pubDate>
<dc:creator>lewisshepherd</dc:creator>
<guid>http://lewisshepherd.wordpress.com/2008/07/01/innovation-in-robotics-government-uses/</guid>
<description><![CDATA[Fact: Last week&#8217;s Automatica 2008, the big international robotics and automation trade-show, h]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Fact: Last week&#8217;s </strong><a href="http://www.automatica-muenchen.de/" target="_blank"><strong>Automatica 2008</strong></a><strong>, the big international robotics and automation trade-show, had &#8220;over 30,000 trade visitors from around 90 countries,&#8221; visiting 900 exhibitors&#8217; booths, according to the conference wrap-up</strong>. </p>
<p><strong>Analysis:</strong> When I <a href="http://lewisshepherd.wordpress.com/2008/05/02/iarpa-and-the-virtual-long-tail/" target="_blank">spoke recently at an IARPA conference</a> in Orlando, and was asked to give a glimpse into Microsoft&#8217;s vision of R&#38;D trends, one of the possibly surprising areas I highlighted was robotics.  We&#8217;re making a major push in that area, for reasons that might not be intuitive based on an old-fashioned impression of what Microsoft offers in the government realm.  More on the intelligence community&#8217;s potential use below.</p>
<p><!--more-->If you missed Automatica this year, as I did, tough luck &#8211; it&#8217;s only held every two years, so we&#8217;ll have to wait until June 2010.  The trade-show combines old-school automation and new-wave robotics: &#8220;assembly and handling technology, robotics, machine vision and associated technologies, [in] the very first international event that brings together all branches of the robotics and automation industry under the same roof in a single event,&#8221; according to the agenda.  And the EU took the occasion to <a href="http://europa.eu/rapid/pressReleasesAction.do?reference=IP/08/910&#38;format=HTML&#38;aged=0&#38;language=EN&#38;guiLanguage=en" target="_blank">announce a new policy to boost European robotics</a>, doubling official EU investments between 2007 and 2010 with almost €400 million to support European robotics research.  The EU plans to foster stronger links between academia and industry, and will fund &#8220;widespread experimentation by academic researchers and industry.&#8221;</p>
<p>The reality is, though, robotics advance is driven less by government top-down investment, and more by the ROI recognized by industry. An <em>Economist</em> article last week (&#8220;<a href="http://www.economist.com/business/displaystory.cfm?story_id=11575170&#38;CFID=11531133&#38;CFTOKEN=15598312" target="_blank">Nothing to Lose but Their Chains</a>&#8220;) noted the bottom-line drivers in a report on Automatica:</p>
<blockquote><p>&#8220;Robotic blobs, arms and devices that resemble spiders will pave the way.  A lot more of these are coming to work in offices and homes, and some will do more than one thing&#8230; Four trends were on show: robots are rapidly becoming <em>more responsive, cheaper, simpler to program, and safer</em>.&#8221;</p></blockquote>
<p>I&#8217;m doubly upset I missed Automatica because the event was in Munich this year, one of my favorite cities, which is apparently a central hub of Europe&#8217;s robotics industry.  Microsoft has an R&#38;D center in Germany and if I had known earlier about Automatica I probably could have contrived a trip to cover it.</p>
<p>Microsoft was not an exhibitor at Automatica this year, but that may change in the next go-round. The change is best described by none other than Bill Gates himself, who wrote the cover story in <em>Scientific American&#8217;s</em> December 2006 issue (&#8220;<a href="http://www.sciam.com/article.cfm?id=a-robot-in-every-home" target="_blank">A Robot in Every Home: The leader of the PC revolution predicts that the next hot field will be robotics</a>&#8220;).  He described the state of play then: &#8220;The challenges facing the robotics industry are similar to those we tackled in computing three decades ago. Robotics companies have no standard operating software that could allow popular application programs to run in a variety of devices. The standardization of robotic processors and other hardware is limited, and very little of the programming code used in one machine can be applied to another. Whenever somebody wants to build a new robot, they usually have to start from square one.&#8221;</p>
<p>We&#8217;ve begun to address those challenges: <a href="http://msdn.microsoft.com/en-us/robotics/default.aspx" target="_blank">check here</a> for the latest release of free <img class="alignleft" style="border:0;" src="http://www.silicon.com/i/s4/illo/photos/2008/June/gates.jpg" border="0" alt="Bill Gates at Microsoft TechEd 2008, with robot version of CEO Steve Ballmer" width="360" height="288" />downloads of Microsoft Robotics Studio (MSRS), and a more robust Microsoft Robotics Developer Studio 2008, software development kits which simplify the creation of robotic applications using a wide range of programming languages (amateur to complex).  The SDK includes the Visual Simulation Environment, a cool simulation tool that lets robot builders test their applications in a 3D virtual environment before trying them out in the real world.  There are <a href="http://msdn.microsoft.com/en-us/library/bb483048.aspx" target="_blank">great tutorials and lots of information</a> to spark robotics innovation.</p>
<p><strong><em>Adoption of Robotics Platforms</em></strong></p>
<p>Gates described the goal with these SDK&#8217;s as a parallel to what Microsoft did in its earliest years with BASIC and MS-DOS: &#8220;to create an affordable, open platform that allows robot developers to readily integrate hardware and software into their designs.&#8221;  You can check out Bill&#8217;s enthusiasm for MSRS in a <a href="http://www.sciam.com/article.cfm?id=ces-special-a-chat-with-bill-gates" target="_blank"><span style="color:#0aa1dd;">Q&#38;A session</span></a>, <a href="http://www.sciam.com/podcast/episode.cfm?id=2C132E30-027A-22D8-FD80085D19858DC9" target="_blank"><span style="color:#0aa1dd;">podcast</span></a> and <a href="http://www.sciam.com/article.cfm?id=video-ces-sciam-sits-down" target="_blank"><span style="color:#0aa1dd;">video interview</span></a><em> </em>with <em>Scientific American Online</em> earlier this year.</p>
<p>There&#8217;s been some controversy. Gregory Dudek is a prominent blogger on robotics, and professor at the McGill Research Center for Intelligent Machines; he and some others greeted the introduction of the MSRS skeptically at first in 2007, worrying (wrongly) that it would drive out independent platforms and efforts.  <a href="http://www.dudek.org/blog//51" target="_blank">See here for a very interesting early post</a>, and note in the comments that Microsoft&#8217;s Tandy Trower (daddy of MSRS) responds with some thoughtful input.  Well, Dudek seems to have come around <a href="http://www.dudek.org/blog//128" target="_blank">and is now actively using MSRS for his own projects</a> on underwater and walking robot systems, winning a Microsoft Human Robot Interaction Award in the process for his Aqua robotic vehicle.</p>
<p>There&#8217;s a lot of commercial activity using this new platform, with uses as diverse as MySpace (network modeling simulation) and Tyco (facility access modeling). But my Institute is interested in government use (see <a href="http://www.informationweek.com/news/software/systems_management/showArticle.jhtml?articleID=208402125&#38;subSection=All+Stories" target="_blank">Information Week story here</a>). </p>
<p>Right off the bat, as far as the government &#38; public sector goes, there&#8217;s obvious utility in the education space.  Microsoft Research is a sponsor of the Institute for Personal Robots in Education (IPRE), which applies and evaluates robots as a context for computer science education, a joint effort between the Georgia Tech and Bryn Mawr College&#8217;s Computer Science Department.  (Their blog had <a href="http://blog.roboteducation.org/node/12" target="_blank">a great compilation of reaction</a> to the Gates article.)  Microsoft also works with education efforts like the <a href="http://asunews.asu.edu/20080624_roboticscamp" target="_blank">Arizona State Robotics Camp</a> for high school students.</p>
<p>Microsoft is also <a href="http://robotics.tmcnet.com/topics/robotics/articles/30026-microsoft-backed-robotics-project-facilitate-disaster-response.htm" target="_blank">sponsoring work on disaster response</a> with the University of Massachusetts Robotics Lab.  And there&#8217;s tremendous public-sector use for robotics in health-care: check out the enGadget <a href="http://www.engadget.com/2008/05/28/robosoft-shows-off-microsoft-robotics-studio-based-service-robot/" target="_blank">video of French robotics company Robosoft&#8217;s newest service robot</a> designed to help the elderly and disabled, a &#8220;24-hour monitoring bot, including daily reminders, remote teleconferencing abilities, scaring off of house pets, and alerts if the patient falls or is in trouble.&#8221;  It was designed virtually in MSRS and uses the software for control.</p>
<p><strong><em>Intelligence Analysts and Robotics</em></strong></p>
<p>When I spoke to IARPA&#8217;s &#8220;Incisive Analysis&#8221; conference in May, the focus was on better technologies for analyst use.  For example, MSRS allows the use of simulated hardware, physical entities, and included 3D terrain, so the robotics problem space is actually quite relevant to many problems in &#8220;an intelligent Intelligence Enterprise.&#8221; Both at their core are about services and orchestrations. Both share the need to be able to scale both up and down. Robotics simulation allows easy scenarios that would otherwise be difficult or impossible to provide to a broad audience, e.g.:</p>
<ul>
<li>a geosynchronous orbit-plane populated by multiple vehicles;</li>
<li>a city destroyed by a nuclear device or earthquake;</li>
<li>any indoor facility populated by robotic avatars.</li>
</ul>
<p>I also pointed out to the IARPA conference that, as a commercial and user-friendly parallel to the famous <a href="http://www.darpa.mil/grandchallenge/index.asp" target="_blank">DARPA Grand Challenge Race</a> for real robot vehicles, Microsoft has launched <a id="ctl00_mainContentContainer_ctl03" href="http://www.robochamps.com/" target="_blank"><span style="color:#0033cc;">RoboChamps</span></a>, a cool <em>simulated</em> <em>robotics league</em> open to academics, hobbyists, and developers from around the world. RoboChamps is built on top of Microsoft Robotics Developer Studio 2008 using the  immersive 3D simulation environments, and <a href="http://www.techradar.com/news/world-of-tech/future-tech/first-look-building-virtual-robots-with-microsoft-s-robochamps-381066" target="_blank">the best simulated robot teams can actually win real robots as prizes</a>. It&#8217;s wild!  An IARPA analogue focusing on analytic uses might be interesting&#8230;</p>
<p>If you&#8217;re interested in wider reading on robotics, for a fairly comprehensive list of resources that will keep you busy for a while check out the <em>Future of Engineering</em> blog&#8217;s &#8220;<a href="http://www.engineeringservicesoutsourcing.com/b/fe/2008/03/future-of-robotics-robots-uses-trends.html" target="_blank">Future of Robotics &#8211; Robots Uses, Trends, Applications</a>&#8221; from March 2008, highly recommended.   And the IPRE site is a great central resource for links on robotics news and developments.</p>
<p>Oh &#8211; and if you&#8217;re in the DC Beltway area and want to get elbow-deep in this stuff, check out the <a href="http://robotics.meetup.com/77/" target="_blank">Meetup group that&#8217;s formed for robotics enthusiasts</a>. </p>
<p>This moment in robotics really does have the spark of the very early days in personal computing software; <a href="http://www.truveo.com/The-Rise-of-Silicon-Valley-Part-1/id/151795244" target="_blank">watch this video of those days, with Jobs and Wozniak and Gates and the like</a>, and you&#8217;ll get the comparison.</p>
<p> <br />
<a href="mailto:?Subject=Interesting%20post%20on%20the%20Shepherds%20Pi%20blog&#38;Body=Thought you might enjoy this, http://lewisshepherd.wordpress.com/2008/07/01/innovation-in-robotics-government-uses/">Email this post to a friend</a></p>
<p><!-- AddThis Bookmark Button BEGIN --><span><a title="Bookmark using any bookmark manager!" href="http://www.addthis.com/bookmark.php" target="_blank"><span style="text-decoration:none;"><img src="http://s9.addthis.com/button1-share.gif" border="0" alt="AddThis Social Bookmark Button" width="125" /></span></a></span></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[VPL - Creando Bucles]]></title>
<link>http://jsantillan.wordpress.com/2008/06/20/vpl-creando-bucles/</link>
<pubDate>Fri, 20 Jun 2008 19:43:17 +0000</pubDate>
<dc:creator>JeffersOn</dc:creator>
<guid>http://jsantillan.wordpress.com/2008/06/20/vpl-creando-bucles/</guid>
<description><![CDATA[    Creamos un nuevo proyecto vamos a new en el menú File. Ahora en arrastramos un bloque de Variabl]]></description>
<content:encoded><![CDATA[    Creamos un nuevo proyecto vamos a new en el menú File. Ahora en arrastramos un bloque de Variabl]]></content:encoded>
</item>
<item>
<title><![CDATA[VPL - Hola Mundo !]]></title>
<link>http://jsantillan.wordpress.com/?p=41</link>
<pubDate>Thu, 12 Jun 2008 08:31:34 +0000</pubDate>
<dc:creator>JeffersOn</dc:creator>
<guid>http://jsantillan.wordpress.com/?p=41</guid>
<description><![CDATA[Este tutorial es la clásica introducción para la mayoría de lenguajes de programación que muestra la]]></description>
<content:encoded><![CDATA[Este tutorial es la clásica introducción para la mayoría de lenguajes de programación que muestra la]]></content:encoded>
</item>
<item>
<title><![CDATA[El acceso a un servicio]]></title>
<link>http://jsantillan.wordpress.com/2008/06/11/el-acceso-a-un-servicio/</link>
<pubDate>Wed, 11 Jun 2008 20:31:25 +0000</pubDate>
<dc:creator>JeffersOn</dc:creator>
<guid>http://jsantillan.wordpress.com/2008/06/11/el-acceso-a-un-servicio/</guid>
<description><![CDATA[  Escribir una aplicación que utiliza Microsoft Robotics Studio es una simple cuestión de orquestar ]]></description>
<content:encoded><![CDATA[  Escribir una aplicación que utiliza Microsoft Robotics Studio es una simple cuestión de orquestar ]]></content:encoded>
</item>
<item>
<title><![CDATA[VPL Introducción]]></title>
<link>http://jsantillan.wordpress.com/2008/06/10/vpl-introduccion/</link>
<pubDate>Tue, 10 Jun 2008 05:03:07 +0000</pubDate>
<dc:creator>JeffersOn</dc:creator>
<guid>http://jsantillan.wordpress.com/2008/06/10/vpl-introduccion/</guid>
<description><![CDATA[Lenguaje de Programación Visual ( VPL &#8211; Visual Programming Language) es un entorno de desarrol]]></description>
<content:encoded><![CDATA[Lenguaje de Programación Visual ( VPL &#8211; Visual Programming Language) es un entorno de desarrol]]></content:encoded>
</item>
<item>
<title><![CDATA[Introducción a Microsoft Robotics Studio]]></title>
<link>http://jsantillan.wordpress.com/2008/06/09/introduccion-a-microsoft-robotics-studio/</link>
<pubDate>Mon, 09 Jun 2008 06:42:34 +0000</pubDate>
<dc:creator>JeffersOn</dc:creator>
<guid>http://jsantillan.wordpress.com/2008/06/09/introduccion-a-microsoft-robotics-studio/</guid>
<description><![CDATA[  Microsoft Robotics Studio está basada en Windows paraprofesores, estudiantes ,aficionados y desarr]]></description>
<content:encoded><![CDATA[  Microsoft Robotics Studio está basada en Windows paraprofesores, estudiantes ,aficionados y desarr]]></content:encoded>
</item>
<item>
<title><![CDATA[Phidgets Robotics Programming in C#]]></title>
<link>http://dvanderboom.wordpress.com/2008/04/21/phidgets-robotics-programming-in-c/</link>
<pubDate>Tue, 22 Apr 2008 02:51:26 +0000</pubDate>
<dc:creator>Dan Vanderboom</dc:creator>
<guid>http://dvanderboom.wordpress.com/2008/04/21/phidgets-robotics-programming-in-c/</guid>
<description><![CDATA[Download the Source Bridgeware is the word you need to know for rapidly prototyping electronics and ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong><a href="http://danvanderboom.com/Examples/PanTiltCameraSystem.zip">Download the Source</a></strong></p>
<p><strong>Bridgeware</strong> is the word you need to know for rapidly prototyping electronics and robotics.&#160; These components bridge programs running on computers with electronic components such as sensors and motors.&#160; There&#8217;s a <a href="http://www.youtube.com/watch?v=E_gto3YIpT0">good video</a> about it by Trossen Robotics on You Tube.&#160; I bought my components from <a href="http://www.trossenrobotics.com/Phidgets.aspx">Trossen Robotics</a> online and I recommend them (they have a number of how-to videos).</p>
<h3>Day 1</h3>
<p>I got my Phidgets components in the mail, and went right to work assembling my pan-tilt camera mount, controlled with two servos from a controller board, and connected to my laptop from there by a USB cable.&#160; A tiny allen wrench was included, but not a phillips screwdriver, which you will also need.&#160; You can see the components assembled and connected in the picture below.</p>
<p><a href="http://dvanderboom.files.wordpress.com/2008/04/100-4156.jpg"><img style="border-width:0;" border="0" alt="Photo of robotics components" src="http://dvanderboom.files.wordpress.com/2008/04/100-4156-thumb.jpg?w=660&#038;h=500" width="660" height="500" /></a></p>
<p>The black thing in the back right corner is just a USB hub.&#160; This is connected to (on the right) an 8/8/8 controller (with lots of room for more components to plug in), and then to the mini joystick.&#160; The other USB connector plugs into a 4-servo controller, and then to the dual servos in the pan-tilt assembly in the back left of the picture.</p>
<p>On the software side, using the Phidgets .NET API was very easy.&#160; Just instantiate a Servo object, provide an event handler to run when a device is attached, and from there I was able to set each servo position or read the position back.&#160; The only confusing part was realizing that the servo controller board is represented by the Servo class, and the individual servos plugged into that controller are represented by the ServoServo class.&#160; (Was this API written in Bora Bora, perhaps?)&#160; I would have named them ServoController and Servo, respectively, but I got over it and moved on.</p>
<p>What you see visualized in the test application (see screenshot below) is a coordinate graph custom control that displays the position of both servos.&#160; When I hooked up the mini joystick, I made the mistake of mapping the joystick position to the graph, but then realized that my graph would be useless unless I was controlling everything with the joystick.&#160; I wanted to script out servo movements and replay the sequences and still have their position represented in the coordinate graph control, so I made that update (and ever since have been unable to calibrate the system to center itself).</p>
<p><a href="http://dvanderboom.files.wordpress.com/2008/04/image81.png"><img style="border-width:0;" border="0" alt="image" src="http://dvanderboom.files.wordpress.com/2008/04/image8-thumb.png?w=583&#038;h=506" width="583" height="506" /></a></p>
<p>Hooking up the hardware took only 15 minutes, and most of the application involving the Phidgets API took an hour or two at the most, but I spent the rest of the day creating the custom graph control and getting it to translate coordinate systems correctly.&#160; The joystick maps values from 0 to 1000 along each axis, the servos have a servo position range of -22 to 232 on one axis and something close to that on the other, and the graph control was 150 pixels wide.&#160; I made it general enough to work with any coordinate ranges on both axes.</p>
<h3>First Impressions</h3>
<p>I have to say that it&#8217;s really cool to see physical objects interacting with software that you write yourself.&#160; (It reminds me of fun I had with a hydraulic robotic arm I programmed in high school using an Apple 2c and low-level calls to the parallel port, but this is way more powerful).&#160; The bridgeware components are easy to connect, and the APIs are a breeze to use.&#160; Building the intelligence between inputs and outputs, however, is the really fun and challenging part.&#160; Even though this initial experiement was simple, I can already tell that coordinating a much more complicated set of inputs and outputs will require careful planning and the use of tools such as Microsoft Robotics Studio, which include the Concurrency &#38; Coordination Runtime and Decentralized Software Services Protocol.</p>
<p>Now that I&#8217;ve gotten my feet wet and have some confidence that I can build, connect, and interface with these components (and have a box full of other goodies like 3-axis accelerometers, light and temperature sensors, sliders, buttons, and switches), I have a bunch of ideas for at least one cool summer project that I hope to announce in the next month or two.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Introduction to Port-Based Asynchronous Messaging]]></title>
<link>http://dvanderboom.wordpress.com/2008/04/21/introduction-to-port-based-asynchronous-messaging/</link>
<pubDate>Tue, 22 Apr 2008 01:36:07 +0000</pubDate>
<dc:creator>Dan Vanderboom</dc:creator>
<guid>http://dvanderboom.wordpress.com/2008/04/21/introduction-to-port-based-asynchronous-messaging/</guid>
<description><![CDATA[&#8230;using terminology and examples from the Concurrency &amp; Coordination Runtime in C# &nbsp; P]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h4><font color="#0080c0">&#8230;using terminology and examples from the Concurrency &#38; Coordination Runtime in C#</font></h4>
<p>&#160;</p>
<h4>Port-Based Messaging</h4>
<p>Port-based messaging has been in practice for a long time.&#160; In the realm of low-level electronics, components have always been operating in parallel, hardware interface ports are designed around standards, and messages are posted to those ports, queuing up somewhere until the receiver is ready to process them.&#160; This pattern has worked extremely well in multiple domains for a long time, and its key characteristic is the decoupling of data flow from control flow.</p>
<p>In sequential programs, one statement runs after another each time it’s run, and the behavior is predictable and repeatable. Concurrency is difficult because you have to consider all possible interleavings of multiple simultaneous tasks, so the overall behavior is nondeterministic. Depending on the relative timings of concurrent tasks, you could get different results each time if you’re not careful to set the appropriate locks on shared resources.&#160; Port-based messaging architectures isolate islands of state across different execution contexts, and connect them with safe, atomic messages delivered through pre-defined ports.
<p><a href="http://dvanderboom.files.wordpress.com/2008/04/image5.png"><img style="border-width:0;" height="106" alt="Basic port-based asynchronous messaging" src="http://dvanderboom.files.wordpress.com/2008/04/image-thumb5.png?w=539&#038;h=106" width="539" border="0"></a></p>
<p>The posting of a message to a port, as shown in Figure 1, is followed by some handler method that is receiving and processing messages.&#160; What&#8217;s not evident in the diagram, however, is that while data flows into the port, that posting is a non-blocking call.&#160; The sender continues on doing other work, taking the time only to queue up a message somewhere.</p>
<p>Queuing is important because, even with large thread pools, we can&#8217;t guaranty that a receiver will be listening at the very moment a message arrives.&#160; Letting them queue up means the receiver doesn&#8217;t have to block on a thread to wait.&#160; Instead, the data waits and the thread checks messages on the port when it can.</p>
<p><a href="http://dvanderboom.files.wordpress.com/2008/04/image6.png"><img style="border-width:0;" height="175" alt="Port showing message queue" src="http://dvanderboom.files.wordpress.com/2008/04/image-thumb6.png?w=641&#038;h=175" width="641" border="0"></a></p>
<h4>What is a Port?</h4>
<p>So what exactly is a port?&#160; A port is a communication end point, but not in the sense of &#8220;a web service on a physical server&#8221;.&#160; Think much more fine grained than that, even more fine-grained than methods.&#160; With sequential programming, we commonly use try-catch blocks and handle both the exceptional and non-exceptional results of operations within a single method.&#160; In port-based programming, you post a message to a port, which results in some handler method running on the receiving end, and different results can be sent back on different callback ports depending on the type of message.&#160; Instead of calling a method that returns back to you when it ends, port-based programming is about always moving forward, and unwinding a call stack has very little meaning here.</p>
<p><a href="http://dvanderboom.files.wordpress.com/2008/04/image7.png"><img style="border-width:0;" height="384" alt="Sequence diagram of port-based messaging" src="http://dvanderboom.files.wordpress.com/2008/04/image-thumb7.png?w=580&#038;h=384" width="580" border="0"></a> </p>
<p>We can see in the sequence diagram above (Figure 3) a collection of services that communicate with and depend on each other.&#160; Starting from the top, the left-most service posts a message to port 1, and then goes on to do other work or surrenders its thread back to the dispatcher for other tasks that are waiting to run.&#160; A registered method on port 1 runs, and the logic there needs another service to complete it&#8217;s task, so it posts a message on port 2, and also continues processing without waiting.&#160; The path of solid blue arrow lines traces the message path for normal execution.&#160; If anything goes wrong, an exception can be posted to a different callback port, shown with a red outline in the diagram.</p>
<p>This diagram shows one possible composition of services and data flow.&#160; Port sets, which are simply a collection of related ports, are shown as callback receivers in pairs, but they can consist of any number of ports with any mixture of messages types, depending on the needs of the system being coordinated.&#160; In this example, if anything goes wrong in the handler methods at ports 2, 5, or 6, an exception message will be routed to port 6, where another handler method can compensate for or report on the error.&#160; Also note that while during startup this system may have to process data at port 4 before the logic at ports 5, 7, and 8 can run&#8230; once it gets going, there could be activity operating at many ports concurrently (not just one port per service).</p>
<h4>Arbiters, Dispatchers, and DispatcherQueues</h4>
<p>Now it&#8217;s time to peel away some of the layers of simplification presented so far.&#160; (It may help to have a beer or glass of wine at this point.)</p>
<p>An <strong>arbiter</strong> is a rule (or set of rules) about when and how to process messages for a specific port (or set of ports).&#160; (It is helpful to think of arbiter as a <strong><em>data flow </em></strong>or <strong><em>message flow coordinator</em></strong>.)&#160; Should messages be pulled off the queue as soon as they arrive?&#160; Should the software wait until 5 messages have arrived before processing them all as a group?&#160; Should messages be checked according to a timer firing every 20 seconds?&#160; Should logic be run only when two ports have messages waiting (a join)?&#160; What logic should be run when one of these conditions occurs?&#160; Can method handlers on three specific ports run concurrently until a message arrives on a fourth port, whose handler must run exclusively, and when done the other three can run again (interleave)?&#160; These are just a few of the many coordination patterns that can be expressed with different types of arbiters (and hierarchically nested arbiters, which are ingenious).</p>
<p><a href="http://dvanderboom.files.wordpress.com/2008/04/image57.png"><img style="border-width:0;" height="339" alt="Arbiters, Dispatchers, and DispatcherQueues" src="http://dvanderboom.files.wordpress.com/2008/04/image57-thumb.png?w=820&#038;h=339" width="820" border="0"></a></p>
<p>Figure 4 illustrates that an arbiter is associated with a port to monitor and a method to execute under the right conditions.&#160; The logic of the arbiter, depending on its type and configuration, determines whether to handle the message.&#160; It gets its thread from a thread dispatcher, which contains a thread pool.&#160; (Not the same as <strong>System.Threading.ThreadPool</strong>, though, as there can only be one of those per process.)</p>
<p>The next diagram (figure 5) could represent a join coordination.&#160; An arbiter waits for messages on two ports, and depending on how it&#8217;s defined, it may process messages from one port repeatedly, but as soon as it receives a message on the second port (it may be an exception port, for example), the whole arbiter might tear itself down so that no more handling on those port will occur.&#160; As you are probably starting to see, composition and attachment of arbiters are key to controlling specific patterns of coordination in arbitrarily powerful and flexible ways.</p>
<p><a href="http://dvanderboom.files.wordpress.com/2008/04/image8.png"><img style="border-width:0;" height="421" alt="Multiple DispatcherQueues and complex Arbiters." src="http://dvanderboom.files.wordpress.com/2008/04/image-thumb8.png?w=820&#038;h=421" width="820" border="0"></a></p>
<p>In the Concurrency &#38; Coordination Runtime, we can attach and detach these arbiters during runtime; we don&#8217;t have to define them statically at compile time.&#160; There has been some criticism towards this approach because dynamic arbitration rules are much more difficult to verify formally with analysis, and are therefore difficult to optimize compilation and thread management for, but the advantages of this flexibility are enormous and the performance (see <a href="http://www.google.com/url?sa=t&#38;ct=res&#38;cd=1&#38;url=http%3A%2F%2Fresearch.microsoft.com%2F~tharris%2Fscool%2Fpapers%2Fsing.pdf&#38;ei=lVkDSMX_MIjWefvrtboD&#38;usg=AFQjCNFuRiDoscEzwsv5UCnqEQFntmK8lw&#38;sig2=nKSoMouvnTxv-5YMEihmCw">this paper</a> by Chrystanthakopoulos and Singh) has been very impressive compared to conventional multithreading approaches.&#160; Ultimately, it&#8217;s not about whether we can guaranty 100% that nothing will go wrong using only the mathematical models currently in our repertoire, but whether we can be productive with these techniques to release software that meets acceptable quality standards across a broad range of application domains.</p>
<p>I don&#8217;t think we&#8217;re going to find a better set of strategies to work with anytime soon, and when we&#8217;ve pushed this technology hard enough, the tactics will be fine tuned and we can start absorbing some of these coordination concepts into languages themselves (without sacrificing the dynamism that a library of composable parts provides).&#160; People are going to attempt concurrent programming whether it&#8217;s safe or not, and using a library such as the CCR significantly reduces the risk of ad hoc multi-threading code.</p>
<h4>Cooperative Multitasking</h4>
<p>When mainstream operating systems like Windows took their first steps to support multi-tasking, cooperative versus preemptive multi-tasking was a common topic.&#160; The idea of an operating system depending on applications to surrender control in a well-behaved way was generally and rightfully considered a bad idea.&#160; Any kind of error or instability in software could easily bring down the entire operating system, and enforcing a quickly growing community of software vendors to share nicely wasn&#8217;t a realistic option.&#160; Being preemptive meant that the OS could forcefully stop an application from running after giving it a small, measured slice of time, and then switch the thread to a new context where another application could run for another time slice.&#160; Regardless of how poorly applications ran, as benevolent dictator, the OS could ensure a fair scheduling of processor time.</p>
<p>The solution encapsulated in the Concurrency &#38; Coordination Runtime is, on the other hand, a cooperative multi-tasking strategy.&#160; However, because it operates within the local scope of an individual process, and is isolated from other processes in the same OS, its risk of destabilizing the system is nonexistent.&#160; This deep level of cooperation, in fact, is what gives the CCR its great performance.&#160; When used correctly, which George Chrysanthakopoulos (in <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=143582">this video</a>) and his colleagues have brilliantly put within our reach in the CCR library, threads don&#8217;t sit around waiting on some resource or for long-running operations to complete; instead, control is freely surrendered back to the thread pool, where it is quickly assigned to a new task.</p>
<p>Finally, by surrendering threads freely instead of holding onto them, a continuous flow of threads through the different activities of the system is maintained, and there is therefore always an abundance of them to handle new messages waiting on ports.&#160; Existing threads are not wasted.&#160; As the <a href="http://en.wikipedia.org/wiki/Tao_Te_Ching">Tao Te Ching</a> says:</p>
<blockquote><p>If you want to accord with the Tao,<br />just do your job, then let go.</p>
</blockquote>
<h4>Control &#38; Data Flow: Sequential vs. Concurrent</h4>
<p>In sequential programs, stacks are used to unwind method calls and provide return values (return messages), and threads follow the data flow; whereas in port-based programming, threads are managed by one or more thread dispatchers that are capable of maximizing the use of that thread by making it available in a pool and sharing it with with many other (potentially unrelated) tasks.&#160; Data flows orthogonally and according to a different coordination strategy than control flow.&#160; This task-thread agnosticism (the opposite of thread-affinity) is similar to the statelessness of a web server such as IIS; one or more threads from a large pool are injected into the tasks of processing, rendering, and serving up huge numbers of web pages, after which those threads are recycled back into the thread pool for execution of other tasks for a highly concurrent and scalable service platform.</p>
<p>So herein lies the trick: in order to split this coupling between data flow and control flow, a different means is needed to compose the two coordination strategies.&#160; In C# and other popular imperative programming languages, methods implicitly pass thread control along with data arguments (the message), and the use of the stack for method calls asserts constraints on control flow, so making the CCR work involves some interesting patterns.</p>
<p>That&#8217;s why port-based programming is hard to get your head around.&#160; It&#8217;s such a large shift from common sequential logic and it requires some additional planning (and good visualizations).&#160; It&#8217;s obviously important to have a good set of tools for expressing that coordination, a simple set of conceptual primitives that allows us to compose arbitrarily-complex coordination patterns.&#160; These primitives, including Message, Port, PortSet, Dispatcher (thread pool), and others provide the building blocks that we can use to define these relationships.&#160; Once we define <strong>what</strong> we want to happen with these building blocks, the CCR can make it all happen.</p>
<p>This level of coordination is a level beyond the strategies used by most concurrent applications and frameworks in software today, primarily because there hasn&#8217;t been a pressing need for it until recently&#8211;processors had been growing phenomenally in speed for many years.&#160; Now, however, we&#8217;re told that processor speed has plateaued, that we now have to scale out to scale up, spreading the processing load across multiple cores.&#160; We are very fortunate that the work being done by researchers in fields like robotics can be applied in other service oriented architectures, and is a testament to the widespread use of the .NET Framework and the fantastic efforts of some very bright individuals.</p>
<h4>Where to Find Microsoft Robotics Studio</h4>
<p>Robotics Studio is a free download and can be found <a href="http://msdn2.microsoft.com/en-us/robotics/default.aspx">here</a>, and while it is full of other good stuff, it&#8217;s worth checking out for the Concurrency and Coordination Runtime alone.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[.NET Micro Framework vs. Microsoft Robotics Studio]]></title>
<link>http://dvanderboom.wordpress.com/2008/04/12/net-micro-framework-vs-microsoft-robotics-studio/</link>
<pubDate>Sat, 12 Apr 2008 18:15:20 +0000</pubDate>
<dc:creator>Dan Vanderboom</dc:creator>
<guid>http://dvanderboom.wordpress.com/2008/04/12/net-micro-framework-vs-microsoft-robotics-studio/</guid>
<description><![CDATA[The .NET Micro Framework is a compatible subset of the full .NET Framework, similar to how the Compa]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The <a href="http://msdn2.microsoft.com/en-us/embedded/bb267253.aspx">.NET Micro Framework</a> is a compatible subset of the full .NET Framework, similar to how the Compact Framework is a subset.&#160; But the Micro Framework can act as its own <a href="http://en.wikipedia.org/wiki/Real-time_operating_system">real time operating system</a> (RTOS) instead of loading the tiny CLR in a host operating system, and works with a variety of hardware devices, including those that don&#8217;t have their own memory management unit (MMU).&#160; The gist is that embedded applications as well as low-level drivers can now be written in managed code (a huge leap forward), and take advantage of garbage collection, strong-typing, and other nice features that are typically absent in embedded systems programming.&#160; This supposedly reduces errors, boosts productivity, and reduces development costs.</p>
<p>I&#8217;ve been watching videos <a href="http://msdn.microsoft.com/embedded/media/tutorials/netmf20.wmv">like this</a>, reading about the Micro Framework for the past few months, have pre-ordered <a href="http://www.amazon.com/Expert-NET-Micro-Framework/dp/159059973X/ref=sr_1_2?ie=UTF8&#38;s=books&#38;qid=1208020892&#38;sr=1-2">this book</a> from Amazon, and have been itching to get my hands on a hardware development kit to start experimenting.&#160; The only problem is that the interfaces for these embedded devices are so foreign to me (I2C, GPIO, etc.), and I&#8217;m not exactly sure what my options are for assembling components.&#160; What kinds of sensors are available?&#160; Do I have to solder these pieces together or is there a nice modular plug system similar to the SATA, IDE, and PCI connectors on modern computers (but on a smaller scale)?&#160; Do I have to write my own device drivers for anything I plug in, or is there some abstraction layer for certain classes of inputs and outputs?</p>
<p>The other issue that makes me hesitate is the thought of programming without language conveniences like generics on a more resource-constrained device than the Windows Mobile devices I&#8217;m already frustrated with (and have been for the past four years).</p>
<p>I&#8217;m not saying that I&#8217;m not excited about managed code on tiny embedded devices, and I&#8217;m not saying I won&#8217;t start playing with (and blogging about) this important technology sometime in the next few months, but I&#8217;ve discovered another platform for embedded device development with the ability to interact directly with the physical world that offers a much lower technical barrier for entry, so that&#8217;s where I&#8217;m starting.</p>
<p>What I&#8217;m referring to is <a href="http://msdn2.microsoft.com/en-us/robotics/default.aspx">Microsoft Robotics Studio</a>, which is by all accounts a phenomenal platform for more than just robotics, and seems to overlap somewhat with the Micro Framework&#8217;s reach (at the intersection of the computer-digital and physical-analog worlds).&#160; The two critical components of this architecture are the <a href="http://purl.org/msrs/dssp.pdf">Decentralized Software Services Protocol</a> (DSSP, originally named WSAP) and the <a href="http://msdn2.microsoft.com/en-us/magazine/cc163556.aspx">Concurrency &#38; Coordination Runtime</a> (CCR).&#160; Make sure you watch <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=143582">this video</a> on the CCR, and note how George emphasizes that &#8220;it&#8217;s not about concurrency, it&#8217;s about coordination&#8221;, which I found especially enlightening.&#160; These are highly robust and general purpose libraries, and <strong>both</strong> of them will run on Compact Framework!&#160; (I was very impressed when I read this.)</p>
<p>Without having studied them both in depth yet, the CCR seems to cannibalize on the <a href="http://msdn2.microsoft.com/en-us/magazine/cc163340.aspx">Task Parallel Library</a> (TPL), at least conceptually, offering a much more complete system of thread manipulation and synchronization than the original System.Threading types, all for a vertical industry that has much greater demands of a concurrency framework that must, for example, deliver massive concurrency and complex coordination rules in a highly-distributed system, all the while handling full and partial failures gracefully.&#160; Some of the patterns and idioms for making concurrency and synchronization operations easy to write and understand are masterfully designed by Henrik Nielsen and George Chrysanthakopoulos (and I thought Vanderboom was a long name!).</p>
<p>The fact that the CCR and DSSP were developed together is significant.&#160; Tasks running in parallel need to be manipulated, coordinated, and tracked regardless of whether they&#8217;re running on four processors in one computer or on 256 processors spread across a hundred devices, and distributed services need a dependable way of parallelizing their efforts on individual machines.&#160; This is a synergistic relationship, each subsystem enhancing the elegance and usefulness of the other.&#160; So why not use the CCR in every application instead of developing the TPL?&#160; Are these two teams actively collaborating, or have they been building the two frameworks in isolation?</p>
<p>I also have to make special mention of the decentralized software services, which as a protocol sits on top of HTTP in a <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTful</a> implementation.&#160; It supports composition of services by creating partnerships with other services, defining securely which partnerships are allowed, offering identification and discovery of services, and much more.&#160; In this assembly then, we have a robust library for building distributed, composable, decentralized services-oriented systems with event publication and subscription, with services that can be hosted on desktop and mobile computers alike.&#160; Wow, call me a geek, but that&#8217;s really frickin&#8217; cool!&#160; Some of the ideas I have for future projects require this kind of architectural platform, and I&#8217;ve been casually designing bits and pieces of such a system (and got so far as getting the communication subsystem working in CF).&#160; Now, however, I might be turning my attention to seeing if I can&#8217;t use the Robotics Studio APIs instead.</p>
<p>One thing to be clear about is that Robotics Studio doesn&#8217;t support Micro Framework, at least not yet.&#160; I wonder exactly how much value there would be to adding this support.&#160; With hardware options such as this <a href="http://www.windowsfordevices.com/news/NS8206400093.html">2.6&#8243; x 2.3&#8243; motherboard</a> with a 1.6 GHz Intel Atom processor, video support, and up to 1 GB of RAM, capable of running Windows XP or XP Embedded, and priced at $95 (or a 1.1 GHz version for $45), we&#8217;re already at a small enough form factor and scale for virtually any autonomous or semi-autonomous robotics (or general embedded) applications.&#160; There&#8217;s also the possibility for one or more Micro Framework devices to exchange messages with a hardware module that is supported in Robotics Studio, such as the tiny board just mentioned.</p>
<p>Where do we go next?&#160; For me, I just couldn&#8217;t resist jumping in with both feet, so I ordered about $500 in robotics gear from <a href="http://www.phidgets.com/">Phidgets</a>: USB interface boards, light and tempature sensors, a 3-axis accelerometer (think <a href="http://en.wikipedia.org/wiki/Wii_Remote">Wii controller</a>), motors and servos, an RFID reader with tags, LEDs, buttons, knobs, sliders, switches, and more.&#160; I plan to use some of this for projects at <a href="http://www.carsgofaster.com">CarSpot</a>, and the rest simply to be creative with and have fun.&#160; I also pre-ordered <a href="http://www.amazon.com/Professional-Microsoft-Robotics-Studio-Martin/dp/0470141077/sr=8-2/qid=1170439130/ref=sr_1_2/104-6784899-4561500?ie=UTF8&#38;s=books">this book</a>, but the publication date is set for June 10th, so by the time I get it, I may have already figured most of it out.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Tutoriel Microsoft Robotics Studio avec C++ ]]></title>
<link>http://gaubuali.wordpress.com/2008/03/21/tutoriel-microsoft-robotics-studio-avec-c/</link>
<pubDate>Fri, 21 Mar 2008 16:27:44 +0000</pubDate>
<dc:creator>gaubuali</dc:creator>
<guid>http://gaubuali.wordpress.com/2008/03/21/tutoriel-microsoft-robotics-studio-avec-c/</guid>
<description><![CDATA[Toaster Device Sample This sample provides a step by step guidance on how to integrate code between ]]></description>
<content:encoded><![CDATA[Toaster Device Sample This sample provides a step by step guidance on how to integrate code between ]]></content:encoded>
</item>
<item>
<title><![CDATA[RobotTurk with MSRS saving life]]></title>
<link>http://gaubuali.wordpress.com/2008/03/19/robotturk-with-msrs-saving-life/</link>
<pubDate>Wed, 19 Mar 2008 11:02:03 +0000</pubDate>
<dc:creator>gaubuali</dc:creator>
<guid>http://gaubuali.wordpress.com/2008/03/19/robotturk-with-msrs-saving-life/</guid>
<description><![CDATA[In 1999 northwestern Turkey was struck by a 7.4 magnitude earthquake which resulted in the deaths of]]></description>
<content:encoded><![CDATA[In 1999 northwestern Turkey was struck by a 7.4 magnitude earthquake which resulted in the deaths of]]></content:encoded>
</item>
<item>
<title><![CDATA[Roboparty &amp; Microsoft Robotics Studio]]></title>
<link>http://errorstream.wordpress.com/2008/03/17/roboparty-microsoft-robotics-studio/</link>
<pubDate>Mon, 17 Mar 2008 15:00:13 +0000</pubDate>
<dc:creator>Lino Silva</dc:creator>
<guid>http://errorstream.wordpress.com/2008/03/17/roboparty-microsoft-robotics-studio/</guid>
<description><![CDATA[No passado dia 15, sábado, comparecemos no campus de Azurém da Universidade do Minho nas palestras d]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://errorstream.wordpress.com/files/2008/03/hpim0055.jpg" target="_blank" title="hpim0055.jpg"><img src="http://errorstream.wordpress.com/files/2008/03/hpim0055.thumbnail.jpg" alt="hpim0055.jpg" align="left" border="9" height="165" width="212" /></a>No passado dia 15, sábado, comparecemos no campus de Azurém da <a href="http://www.uminho.pt" title="Universidade do Minho" target="_blank">Universidade do Minho</a> nas palestras dadas pelos oradores Zhou Changjiu, director do Centro de Robótica Avançada e Controlo Inteligente<font color="#333333" face="Arial" size="2"> <a href="http://www.robo-erectus.org/aricc.php" title="ARICC" target="_blank">(ARICC)</a></font> no Politécnico de Singapura, e Martin Calsyn, que trabalha no <a href="http://research.microsoft.com/" title="Microsoft Research Home" target="_blank">departamento de investigação da Microsoft</a> em Cambridge no contexto da RoboParty 2008, evento voltado para a aprendizagem em áreas de electrónica, mecânica, programação, todos os elementos para que se consiga criar em condições um robô minimamente funcional.</p>
<p><a href="http://errorstream.wordpress.com/files/2008/03/hpim0061.jpg" target="_blank" title="RoboParty 2008"><img src="http://errorstream.wordpress.com/files/2008/03/hpim0061.thumbnail.jpg" alt="RoboParty 2008" align="left" border="9" /></a>Ambos falaram na sua maior parte do tempo no <a href="http://msdn2.microsoft.com/pt-br/robotics/default(en-us).aspx" title="Microsoft Robotics Studio" target="_blank">Microsoft Robotics Studio</a>, programa que pode ser sacado &#8220;à borlix&#8221; do site do projecto. Todo o código-fonte do programa está também disponível para download, tudo sem nenhum custo adicional (os oradores fizeram bastante questão em frizar a parte do &#8220;<b>FREE</b>&#8220;). Como nada é dado, o programa só pode ser utilizado para fins pessoais, a partir do momento que se utiliza o programa para ganhar dinheiro é necessário pagar os <i>royalties</i> à Microsoft, que são cerca de 299 USD.</p>
<p><a href="http://errorstream.wordpress.com/files/2008/03/hpim0058.jpg" target="_blank" title="RoboParty 2008"><img src="http://errorstream.wordpress.com/files/2008/03/hpim0058.thumbnail.jpg" alt="RoboParty 2008" align="right" border="7" /></a>O que o programa oferece é uma maneira mais acessível de criar aplicações que interajam com dispositivos robóticos (não necessariamente robôs humanóides ou veículos telecomandados), o que faz com que o programa seja bastante flexível e compatível com uma enorme gama de hardware. É programável em basicamente todas as linguagens compatíveis com <a href="http://en.wikipedia.org/wiki/.NET_Framework" title=".Net Framework" target="_blank">.Net</a>, como <a href="http://en.wikipedia.org/wiki/C_Sharp_%28programming_language%29" title="C# - Wikipedia" target="_blank">C#</a>, <a href="http://en.wikipedia.org/wiki/C%2B%2B" title="C++ - Wikipedia" target="_blank">C++</a>, <a href="http://en.wikipedia.org/wiki/Visual_basic" title="Visual Basic - Wikipedia" target="_blank">VB</a>, <a href="http://en.wikipedia.org/wiki/Lisp_%28programming_language%29" title="Lisp - Wikipedia" target="_blank">Lisp</a> e afins.</p>
<p><a href="http://errorstream.wordpress.com/files/2008/03/hpim0059.jpg" target="_blank" title="RoboParty 2008"><img src="http://errorstream.wordpress.com/files/2008/03/hpim0059.thumbnail.jpg" alt="RoboParty 2008" align="left" border="7" /></a>Ambos os oradores fizeram demonstrações muito interessantes, tanto a nível de simulações (utilizando o motor <a href="http://www.ageia.com/" title="AGEIA" target="_blank"><b>AGEIA</b></a> <a href="http://en.wikipedia.org/wiki/PhysX" title="AGEIA PhysX" target="_blank">PhysX</a>, que funcionaram aquém do esperado, fazendo por exemplo que os robôs que iriam jogar futebol andassem às rodas por não encontrar a bola ou os lutadores de sumo fossem cada um para o seu canto, perdendo os dois o combate), quanto a nível de controlo dos robôs reais em tempo real, mostrando a potencialidade do programa, e a expansibilidade deste para outros tipos de hardware.</p>
<p><b>Screenshots da aplicação:</b><br />
(clique na imagem para ampliar)</p>
<p><a href="http://errorstream.wordpress.com/files/2008/03/image008.jpg" target="_blank" title="Microsoft Robotics Studio"><img src="http://errorstream.wordpress.com/files/2008/03/image008.thumbnail.jpg" alt="Microsoft Robotics Studio" /></a> <a href="http://errorstream.wordpress.com/files/2008/03/msrs_screenshot.gif" target="_blank" title="Microsoft Robotics Studio"><img src="http://errorstream.wordpress.com/files/2008/03/msrs_screenshot.thumbnail.gif" alt="Microsoft Robotics Studio" /></a><a href="http://errorstream.wordpress.com/files/2008/03/robotics.jpg" target="_blank" title="Microsoft Robotics Studio"><img src="http://errorstream.wordpress.com/files/2008/03/robotics.thumbnail.jpg" alt="Microsoft Robotics Studio" /></a></p>
<p><a href="http://www.robo-erectus.org/members/czhou/" title="Zhou Changjiu" target="_blank">Dr. Zhou Changjiu</a></p>
<p><a href="http://blogs.msdn.com/martinca/" title="Martin Calsyn" target="_blank">Martin Calsyn</a> @ <a href="http://blogs.msdn.com/" title="MSDN Blogs" target="_blank">MSDN Blogs</a></p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=73092FF6-E37B-45C6-8E5E-C23D5D632B1E&#38;displaylang=en" title="Microsoft Robotics Studio" target="_blank">Download do Microsoft Robotics Studio (Aprox. 87.5 MB)<br />
</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Démonstration de Robotics Studio]]></title>
<link>http://gaubuali.wordpress.com/2007/12/29/demonstration-de-robotics-studio/</link>
<pubDate>Sat, 29 Dec 2007 00:22:25 +0000</pubDate>
<dc:creator>gaubuali</dc:creator>
<guid>http://gaubuali.wordpress.com/2007/12/29/demonstration-de-robotics-studio/</guid>
<description><![CDATA[Ce sont des superbes démonstrations sur Microsoft Robotics Studio de Olivier&#8217;s Blog. Découvrez]]></description>
<content:encoded><![CDATA[Ce sont des superbes démonstrations sur Microsoft Robotics Studio de Olivier&#8217;s Blog. Découvrez]]></content:encoded>
</item>
<item>
<title><![CDATA[Kit de BoeBot avec Microsoft Studio Robotics]]></title>
<link>http://gaubuali.wordpress.com/2007/10/30/kit-de-boebot-avec-microsoft-studio-robotics/</link>
<pubDate>Tue, 30 Oct 2007 22:29:38 +0000</pubDate>
<dc:creator>gaubuali</dc:creator>
<guid>http://gaubuali.wordpress.com/2007/10/30/kit-de-boebot-avec-microsoft-studio-robotics/</guid>
<description><![CDATA[Voilà, après quelques recherches, j&#8217;ai trouvé que l&#8217;entreprise Parallax, qui fournit des]]></description>
<content:encoded><![CDATA[Voilà, après quelques recherches, j&#8217;ai trouvé que l&#8217;entreprise Parallax, qui fournit des]]></content:encoded>
</item>
<item>
<title><![CDATA[Parallax and Microsoft Team Up]]></title>
<link>http://gaubuali.wordpress.com/2007/10/15/parallax-and-microsoft-team-up/</link>
<pubDate>Mon, 15 Oct 2007 19:04:49 +0000</pubDate>
<dc:creator>gaubuali</dc:creator>
<guid>http://gaubuali.wordpress.com/2007/10/15/parallax-and-microsoft-team-up/</guid>
<description><![CDATA[Parallax and Microsoft have collaborated to combine the power of Microsoft® Robotics Studio with the]]></description>
<content:encoded><![CDATA[Parallax and Microsoft have collaborated to combine the power of Microsoft® Robotics Studio with the]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft to Develop Cricket Umpiring Technologies]]></title>
<link>http://jaycheerstolife.wordpress.com/2007/07/22/microsoft-to-develop-cricket-umpiring-technologies/</link>
<pubDate>Sun, 22 Jul 2007 10:40:00 +0000</pubDate>
<dc:creator>jaycheerstolife</dc:creator>
<guid>http://jaycheerstolife.wordpress.com/2007/07/22/microsoft-to-develop-cricket-umpiring-technologies/</guid>
<description><![CDATA[A bat is a bat, even if it flat, right? Microsoft seems to think so. Cricket officials have been rec]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img style="display:block;text-align:center;cursor:pointer;width:320px;margin:0 auto 10px;" src="http://gizmodo.com/gadgets/upload/2006/07/bowden.jpg" alt="" border="0" />A bat is a bat, even if it flat, right? <span class="tagautolink">Microsoft</span> seems to think so. <span class="tagautolink">Cricket</span> officials have been receiving criticism from the International Cricket Council because the Indian umpires weren&#8217;t too keen on international standards. This is where Microsoft steps in. Talks have began with Microsoft to develop a system that would raise umpiring standards for cricket across the globe. Matches would be recorded by six <span class="tagautolink">cameras</span> and then a special program would analyze the video to make sure everything is all standard-like. They are currently in the final stages of negotiations. Good news for the cricket community worldwide, too bad the sport hasn&#8217;t caught on in the states, yet.
<div class="blogger-post-footer"><a href='http://www.affiliatecurry.com/affiliate/trackingcode.php?aid=3929&#38;linkid=T51'><br />
                      Cash Ring</a></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Microsoft Robotics Studio]]></title>
<link>http://todomicrostamp.wordpress.com/2007/01/05/microsoft-robotics-studio/</link>
<pubDate>Fri, 05 Jan 2007 13:07:49 +0000</pubDate>
<dc:creator>todomicrostamp</dc:creator>
<guid>http://todomicrostamp.wordpress.com/2007/01/05/microsoft-robotics-studio/</guid>
<description><![CDATA[En Junio de este mismo año, Microsoft anunció el primer Community Technical Preview (CTP) del Micros]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><font size="2" face="Arial">En Junio de este mismo año, Microsoft anunció el primer Community Technical Preview (CTP) del <strong>Microsoft Robotics Studio</strong>, un nuevo ambiente basado en Windows que dispone de herramientas de programación visual para que aficionados, estudiantes, profesores y desarrolladores puedan crear fácilmente aplicaciones robóticas para una gran variedad de plataformas de hardware y que interactúe con lenguajes de terceros.</font><font size="2" face="Arial">Parallax fue una de las primeras empresas que se interesó por ofrecer un producto debidamente adaptado para iniciarse en este nuevo entorno de desarrollo: el <strong>Boe-Bot Kit for Microsoft Robotics Studio</strong>.</p>
<p></font><font size="2" face="Arial">Si quieres echar un vistazo al monográfico que hemos preparado, con motivo de este acontecimiento, accede al siguiente enlace: <a href="http://www.todomicrostamp.com/mrs.php"><strong><font color="#669922">http://www.todomicrostamp.com/mrs.php</font></strong></a></font></p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
