<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-336127893477976601</id><updated>2011-07-28T15:53:47.101-07:00</updated><category term='yield'/><category term='arbiter'/><category term='Mindstorms'/><category term='publications'/><category term='DataMember'/><category term='Corrections'/><category term='MRDS'/><category term='events'/><category term='MSRS Tutorials'/><category term='poll'/><category term='service'/><category term='HTTP'/><category term='MSDN'/><category term='Lego NXT'/><category term='entities'/><category term='push'/><category term='message'/><category term='service handlers'/><category term='Ramblings'/><category term='Documentation'/><category term='yield return'/><category term='kudos'/><category term='trianglemeshenvironment'/><category term='Products'/><category term='changes'/><category term='code generation'/><category term='simulation'/><category term='choice'/><category term='Sara Morgan'/><category term='Useful information'/><category term='cogmation'/><category term='i-sobot'/><category term='definitions'/><category term='snake robot'/><category term='definition'/><category term='Modular'/><category term='state'/><category term='work around'/><category term='channel 9'/><category term='autonomy'/><category term='problems'/><category term='hardware to simulation'/><category term='tutorials'/><category term='VPL'/><category term='messages'/><category term='PursuitCamera'/><category term='Masters'/><category term='Paul Roberts'/><category term='Random'/><category term='Introduction'/><category term='contract'/><category term='dll'/><category term='proxy'/><category term='DSSP'/><category term='CCR'/><category term='meshes'/><category term='Comparison'/><category term='excuses'/><category term='forums'/><category term='CTP'/><category term='new release'/><category term='ports'/><category term='assembly'/><category term='architechture'/><category term='grammar'/><category term='VPL Tutorial 4'/><category term='explanations'/><category term='VSE'/><category term='Trevor Taylor'/><category term='textures'/><category term='services'/><category term='simulation environment'/><category term='service handler'/><category term='operation'/><category term='helpful tips'/><category term='service tutorials'/><category term='MSRS User Guide'/><category term='REST'/><category term='maze'/><category term='manifest'/><category term='MRDS Tutorials'/><category term='universities'/><category term='communication'/><category term='Fun'/><category term='join'/><category term='Lego'/><category term='toys'/><category term='arbiter class'/><category term='C#'/><category term='SOAP'/><category term='cool'/><category term='This week in robotics'/><category term='Attributes'/><category term='biorobotics'/><category term='namespace'/><category term='writers block'/><category term='Other simulators'/><category term='Personal Entry'/><category term='weekly'/><category term='DDS'/><category term='DSS'/><category term='robotics institute'/><category term='Books'/><category term='XInput Controller'/><title type='text'>robotexodus</title><subtitle type='html'>Exploring the emerging world of robotics and simulation. I'll blog my experience with the Microsoft Robotics Development Studio (MRDS) framework. Please note this is for academic purposes.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-1274007969923031966</id><published>2011-06-20T03:31:00.000-07:00</published><updated>2011-06-20T03:32:16.908-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>This week in Robotics</title><content type='html'>This week is going better than last week. I think Mondays are my new days for "this week" :)&lt;br /&gt;&lt;br /&gt;&lt;li&gt;This breakfast making bot is all the rage on Monday morning! &lt;a href = "http://www.engadget.com/2011/06/12/robots-make-breakfast-for-scientists-bide-time-video/"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://spectrum.ieee.org/automaton/robotics/humanoids/pr2-robot-gets-help-from-german-rosie-makes-classic-bavarian-breakfast?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://robots.net/article/3187.html"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Food-oriented robots seem to be in news this week - first a bot which can cook a meal, and now a cookie baking bot!  &lt;a href = "http://gizmodo.com/5811056/a-robot-that-can-bake-chocolate+chip-cookies"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://spectrum.ieee.org/automaton/robotics/home-robots/pr2-learning-to-bake-cookies-humanity-surrenders-to-yumminess?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Dexter has two entries this week expanding the Lego mindstorms technology: &lt;a href = "http://www.pr.com/press-release/330911"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://www.pr.com/press-release/330895"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;More on the Japanese-built flying ball project from last week: &lt;a href = "http://www.engadget.com/2011/06/10/japanese-ball-drone-knows-how-to-make-an-entrance-video/"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://robots.net/article/3186.html"&gt;[REF]&lt;/a&gt;  AND &lt;a href = ""&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Robotic surgeons seem to be taking a backseat and rather are being used to train human surgeons:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/medical-robots/using-robots-to-train-the-surgeons-of-tomorrow?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Here's another one for swarm robots:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/kilobots-are-cheap-enough-to-swarm-in-the-thousands?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://www.engadget.com/2011/06/16/harvards-kilobot-project-does-swarm-robots-on-the-cheap-video/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Actually, this is my greatest fear in robotics - actually equipping robots with weapons. I do not believe that AI will ever get to the point of 'revolt,' but just the potential of people using it to harm others.... &lt;a href = "http://spectrum.ieee.org/automaton/robotics/military-robots/libyan-rebels-making-armed-robots-from-power-wheels-toys?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Exoskeletons are cool - and they help people. Thank you Berkley! &lt;a href = "http://robots.net/article/3188.html"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Unitil next week, keep making friends!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-1274007969923031966?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/1274007969923031966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=1274007969923031966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/1274007969923031966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/1274007969923031966'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/06/this-week-in-robotics_20.html' title='This week in Robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-6298404994662289870</id><published>2011-06-13T03:42:00.001-07:00</published><updated>2011-06-13T03:43:36.594-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>This week in Robotics</title><content type='html'>The last week has been slow in robotics, again, sorry for the delay :(&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Robotic helpers for the disabled:  &lt;a href = "http://www.engadget.com/2011/06/05/newest-kinect-hack-a-grocery-cart-that-loyally-follows-disabled/"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://gizmodo.com/5808674/a-kinect-hack-that-lets-the-disabled-shop-with-ease"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;It looks like the Mars rover Opportunity is not taking any chances, but is still going strong:  &lt;a href = "http://science.slashdot.org/story/11/06/04/1158226/Mars-Rover-Opportunity-Surpasses-30km-Driving?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://robots.net/article/3184.html"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Robots all over the world are jumping for joy as this little bot only uses one motor to jump. Unfortunately this is due to a shapely design for natural correction, so it's not like every robot can actually jump. &lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/brilliant-little-jumping-robot-only-needs-one-motor?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Thos C-Shaped legs have been quite popular on ground-bots, but now they are being further improved with springy-ness:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/running-hexapod-gets-fancy-new-tunable-legs?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Robots are better than us at sports, no doubt. I really would classify this next entry as "slow newsweek" &lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/robots-make-shuffleboard-a-slightly-more-interesting-sport-to-watch?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;The Japanese are certainly making strides in the spherical robotics market:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/military-robots/japanese-ministry-of-defense-spends-1000-on-flying-robot-soccer-ball?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;This is not robotics but is newsworthy: MIT has developed a semi-solid battery that has the potential for greatness:  &lt;a href = "http://www.engadget.com/2011/06/08/new-semi-solid-battery-for-evs-could-recharge-as-fast-as-pumpi/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Until next week - keep making friends!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-6298404994662289870?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/6298404994662289870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=6298404994662289870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/6298404994662289870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/6298404994662289870'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/06/this-week-in-robotics_3291.html' title='This week in Robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5937632850483650928</id><published>2011-06-13T03:42:00.000-07:00</published><updated>2011-06-13T03:43:02.750-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>This week in Robotics</title><content type='html'>The last week has been slow in robotics, again, sorry for the delay :(&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Robotic helpers for the disabled:  &lt;a href = "http://www.engadget.com/2011/06/05/newest-kinect-hack-a-grocery-cart-that-loyally-follows-disabled/"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://gizmodo.com/5808674/a-kinect-hack-that-lets-the-disabled-shop-with-ease"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;It looks like the Mars rover Opportunity is not taking any chances, but is still going strong:  &lt;a href = "http://science.slashdot.org/story/11/06/04/1158226/Mars-Rover-Opportunity-Surpasses-30km-Driving?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://robots.net/article/3184.html"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Robots all over the world are jumping for joy as this little bot only uses one motor to jump. Unfortunately this is due to a shapely design for natural correction, so it';s not like every robot can actually jump. &lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/brilliant-little-jumping-robot-only-needs-one-motor?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Thos C-Shaped legs have been quite popular on ground-bots, but now they are being further improved with springy-ness:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/running-hexapod-gets-fancy-new-tunable-legs?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Robots are better than us at sports, no doubt. I really would classify this next entry as "slow newsweek" &lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/robots-make-shuffleboard-a-slightly-more-interesting-sport-to-watch?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;The Japanese are certainly making strides in the spherical robotics market:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/military-robots/japanese-ministry-of-defense-spends-1000-on-flying-robot-soccer-ball?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;This is not robotics but is newsworthy: MIT has developed a semi-solid battery that has the potential for greatness:  &lt;a href = "http://www.engadget.com/2011/06/08/new-semi-solid-battery-for-evs-could-recharge-as-fast-as-pumpi/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Until next week - keep making friends!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5937632850483650928?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5937632850483650928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5937632850483650928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5937632850483650928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5937632850483650928'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/06/this-week-in-robotics_13.html' title='This week in Robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-3173061364868586532</id><published>2011-06-04T00:40:00.000-07:00</published><updated>2011-06-04T00:41:14.177-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>This week in Robotics</title><content type='html'>The robot uprising has not too much in serious news this week. Again, apologies for the delay...&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Professor Martin Mason wrote an indepth article on how to build a specific kind of robot chassis, bypassing the "middle men" &lt;a href = "http://www.funnyrobotics.com/2011/05/turtlebot-clones-war.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+RobotBlogg+%28FunnyRobotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Robots used as amusement park rides:  &lt;a href = "http://gizmodo.com/5806349/these-8-robocoasters-are-the-most-fun-you-can-have-sitting-down"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Clearly juggling robots are in... I have no ide why:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/juggling-robots-get-fancier?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://www.engadget.com/2011/06/01/robots-master-delicate-art-of-juggling-prep-for-clown-college/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Rubiks-cube solving robot, what's new? How fast it is... What's not new? How original it is, how helpful it is...  &lt;a href = "http://gizmodo.com/5807184/human-beings-still-kick-the-fastest-rubiks-cube+solving-machines-ass"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://gizmodo.com/5807344/circuses-of-the-future-should-have-juggling-robots"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;I haven't seen this small birdie-bot in action, but it looks pretty cool:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/military-robots/darpa-concludes-nano-air-vehicle-program-we-wonder-whats-next?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://robots.net/article/3182.html"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Automatic drug dispensers may make your queue at the local pharmacy a thing of the past. &lt;a href = "http://gizmodo.com/5807630/robots-will-someday-dispense-all-your-medicines"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;The robots are surveying the land: &lt;a href = "http://www.engadget.com/2011/06/03/microdrones-flying-robot-films-african-wildlife-finds-peace-wi/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;This pool playing bot displays that while a task may not be useful, it is news when you get a robot to do it:  &lt;a href = "http://spectrum.ieee.org/automaton/robotics/humanoids/german-robot-plays-pool-throws-down-robot-pool-gauntlet?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Blame it on the tele-operated bot: A small explosion is credited to a mistake on a human-controlled robot&lt;b&gt;IC&lt;/b&gt; machine:   &lt;a href = "http://spectrum.ieee.org/automaton/robotics/industrial-robots/robotic-construction-machine-causes-explosion-at-fukushima?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;I think cellbots are a great idea, considering that cellphones have what we need in terms of computational ability. &lt;a href = "http://www.engadget.com/2011/06/03/simple-diy-cellbot-ditches-arduino-jousts-poorly-video/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Billbot actually saves bills :) Thanks MIT! &lt;a href = "http://robots.net/article/3183.html"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://www.robotspodcast.com/podcast/2011/06/robots-the-bilibot-project/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;Remember, keep making friends!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-3173061364868586532?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/3173061364868586532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=3173061364868586532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3173061364868586532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3173061364868586532'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/06/this-week-in-robotics.html' title='This week in Robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-8663288911124335156</id><published>2011-05-28T00:56:00.001-07:00</published><updated>2011-05-28T00:59:34.755-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>This week in Robotics</title><content type='html'>Good day boys and girls - I hope you are ready for another exciting week in robotics!&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Dinsey is working on swarm robotics - probably just to make them dance around. &lt;a href = "http://spectrum.ieee.org/automaton/robotics/industrial-robots/disney-working-on-artistic-robot-swarms?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;NXT Robots can now be controlled with a smart phone. &lt;a href = "http://www.funnyrobotics.com/2011/05/kleekbots-in-beta-nxt-bots-controlled.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+RobotBlogg+%28FunnyRobotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;In health news, nanotech is being used to repair heart tissue. &lt;a href = "http://www.robotic-lab.com/en/2011/05/20/nanotechnology-provides-patch-to-regenerate-heart-tissue/"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://www.gizmag.com/nanopatch-regenerates-heart-cells/18689/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Congratulations to the inventor of Nao, Bruno Maisonnier, who won the Invention and Entrepreneurship Award at the2011 IEEE International Conference on Robotics &amp; Automation (ICRA)  &lt;a href = "http://robotland.blogspot.com/2011/05/french-humanoid-entrepreneur-wins-icra.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+blogspot%2FKoqL+%28Robotland%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;A real potential and needed area for robotics is in the disaster recovery area. There is a great need for these types of bots. &lt;a href = "http://robotland.blogspot.com/2011/05/disaster-robots-2011-report-from-japan.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+blogspot%2FKoqL+%28Robotland%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;I don't know about you, but I thought autonomous vehicles created their own maps for navigation. Turns out only this one does. &lt;a href = "http://www.engadget.com/2011/05/23/zmp-robocar-ditches-driver-creates-own-map-video/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;It is great to see new things, no matter how weird they may be. Corkscrew legs in a triad formation: cool. &lt;a href = "http://www.gizmag.com/ominidirectional-rover-robot/18699/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;This cool bot can stick to walls using streaming air:  &lt;a href = "http://www.google.com/reader/view/#stream/feed%2Fhttp%3A%2F%2Ffeeds.feedburner.com%2FIeeeSpectrumRobotics"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://gizmodo.com/5805121/spiders-must-be-crazy-jealous-of-these-robots-that-climb-walls-without-touching-them"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://www.engadget.com/2011/05/25/climbing-robot-can-scale-walls-on-a-supersonic-stream-of-air-wo/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;In Netherlands - medical nanobots are getting funding: &lt;a href = "http://www.robotic-lab.com/en/2011/05/23/new-grants-to-fund-molecular-machine-research-in-the-netherlands/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;I think I may have been right about the Android-powered android: This reletively inexpensive ADK board is coming out June 20th: &lt;a href = "http://www.funnyrobotics.com/2011/05/fairly-priced-android-development-kit.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+RobotBlogg+%28FunnyRobotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Mark Stark is making prostectics that move relative to shoulder shrugs. Am I the only one who noticed that there is a guy with the name of Stark working in robotics? &lt;a href = "http://gizmodo.com/5805016/prosthetic-hand-isnt-electric-but-performs-just-like-it-is"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Who wants to see the futuristic world of Wall-e come to life? It all starts in the library, where people are official;ly too lazy to get the books themselves. &lt;a href = "http://news.slashdot.org/story/11/05/24/2232224/Robots-Retrieve-Your-Books-At-U-Chicagos-81-Million-Library?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;This little robot is sick of the water and will now summersault into your living room:  &lt;a href = "http://www.google.com/reader/view/#stream/feed%2Fhttp%3A%2F%2Ffeeds.feedburner.com%2FIeeeSpectrumRobotics"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://www.engadget.com/2011/05/26/amphibious-aquapod-might-be-the-clumsiest-robot-ever-video/"&gt;[REF]&lt;/a&gt;  AND &lt;a href = "http://io9.com/5805523/aquatic-robot-conquers-land-and-sea-while-looking-like-a-space-invader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Nasa's rover 'Spirit' has been damaged and has lost contact over the Martian winter. It will be listened to, but just in case:  &lt;a href = "http://www.engadget.com/2011/05/25/nasa-abandons-mars-rover-spirit-chooses-to-remember-the-good-ti/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Medi-bots are now helping surgiacal students by holding their hand while they operate:  &lt;a href = "http://gizmodo.com/5806003/hand+holding-robot-teaches-novice-surgeons-to-move-like-the-masters"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Roomba has a new-improved cousin. It also climbs stairs and navigates really well. It's just the price! &lt;a href = "http://gizmodo.com/5805505/roomba-770-it-might-be-time-to-sell-your-vacuum-grandpa"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;MIT Researchers have a made a robot that divides it's tasks into sub-tasks. Believe it or not, plan sub-division is a huge element in artificial intelligence, and things like opening a door are not ass simple as one might first consider. &lt;a href = "http://www.gizmag.com/improving-robots-planning-abilities/18730/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Water powered window bot! Seriously cool! &lt;a href = "http://spectrum.ieee.org/automaton/robotics/industrial-robots/geckoinspired-window-washing-robot-is-powered-entirely-by-water?utm_source=feedburner-robotics&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Finally: The most useless robot: &lt;a href = "http://www.robotic-lab.com/en/2011/05/26/ultimate-useless-machine-the-robotic-version/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;Until next time: Keep making friends!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-8663288911124335156?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/8663288911124335156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=8663288911124335156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/8663288911124335156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/8663288911124335156'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/05/this-week-in-robotics_28.html' title='This week in Robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5935522459353031186</id><published>2011-05-20T04:40:00.001-07:00</published><updated>2011-05-20T04:41:50.518-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>This week in robotics</title><content type='html'>This 'week' has been quiet - do to the blogger outage last week I posted last weeks post this week and included the weekend. So I hope you are not too disappointed. Here goes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Spybots can now roll and fly:&lt;a href = "http://www.engadget.com/2011/05/16/rolling-robot-learns-to-fly-plots-escape-from-human-captors-vi/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Robots are learning from human mistakes - be careful, there is a lot of ground to cover...&lt;a href = "http://www.engadget.com/2011/05/19/tenacious-robot-ashamed-of-creators-performance-shows-mankind/"&gt;[REF]&lt;/a&gt; and &lt;a href = "http://gizmodo.com/5803276/this-robot-teaches-itself-to-one-up-you"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A number of reporters are gasping at a towel-folding robot... show me a clothes folding robot, heck, show me maid-bot!&lt;a href = "http://gizmodo.com/5803495/every-house-should-come-equipped-with-a-towel+folding-robot"&gt;[REF]&lt;/a&gt; and &lt;a href = "http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/treebot-learns-to-autonomously-climb-trees?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Lingodroids, an Australian created robot, has been developed to generate a language of it's own.&lt;a href = "http://robots.net/article/3177.html"&gt;[REF]&lt;/a&gt; and &lt;a href = "http://www.engadget.com/2011/05/18/lingodroid-robots-develop-their-own-language-quietly-begin-plot/"&gt;[REF]&lt;/a&gt; and &lt;a href = "http://gizmodo.com/5802666/streuth-aussie-robots-are-being-taught-their-very-own-spoken-language"&gt;[REF]&lt;/a&gt; and &lt;a href = "http://hardware.slashdot.org/story/11/05/18/1534258/Robots-Successfully-Invent-Their-Own-Language?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Swarm robots for mapping hazardous areas and finding survivors: I wish there was more of this in the nes.&lt;a href = "http://www.engadget.com/2011/05/17/rescue-robots-map-and-explore-dangerous-buildings-prove-theres/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Chinese researchers have developed a robot capable of climbing, using tactile feedback in it's gripping claws to aid in directional navigation.&lt;a href = "http://gizmodo.com/5803263/treebot-will-find-you-no-matter-how-high-you-climb"&gt;[REF]&lt;/a&gt; and &lt;a href = "http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/highspeed-robot-hands-fold-a-towel-in-04-second?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Good nes everyone! Bionic apenditures seem to be making inroads!&lt;a href = "http://tech.slashdot.org/story/11/05/18/170242/Man-Demonstrates-His-New-Bionic-Hand?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Using weight-shifting, bipedal robots are being made to turn more effectibvely&lt;a href = "http://www.engadget.com/2011/05/16/bipedal-robots-learn-to-shuffle-evolve-toward-doing-the-twist/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A student uses an exoskeleton to walk at his graduation.&lt;a href = "http://www.engadget.com/2011/05/16/paralyzed-student-uses-robotic-exoskeleton-to-walk-at-college-gr/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Lego NXT can be programmed in pure English - Google Science Fair Semi-Finalist!&lt;a href = "http://thenxtstep.blogspot.com/2011/05/programming-nxt-in-pure-english-vote.html"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The new IEEE Transactions on Robotics is available&lt;a href = "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=8860"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Reading robot's in the natural environment will make their life a lot easier.&lt;a href = "http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/pr2-learns-to-read-cant-pronounce-robot?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Lastly, there is a robot film fesitival in New York City this July, but I imagine only robotsa will be interested&lt;a href = "http://spectrum.ieee.org/automaton/robotics/diy/next-month-robot-film-festival-in-ny?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+IeeeSpectrumRobotics+%28IEEE+Spectrum%3A+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Until next week: keep making friends!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5935522459353031186?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5935522459353031186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5935522459353031186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5935522459353031186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5935522459353031186'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/05/this-week-in-robotics_20.html' title='This week in robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-6673477861726926986</id><published>2011-05-15T23:39:00.000-07:00</published><updated>2011-05-15T23:54:27.138-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>This week in Robotics</title><content type='html'>Well, I started writing this a week ago (weird – I typed this a week ago but am referring to the present in the past tense...) because I realised that my "This week in Robotics" posts would require me to write during the week rather than at the end. Also, I have learnt, that news is always happening, so as soon as I post my weekly report I would have to start on the next one.&lt;br /&gt;&lt;br /&gt;I think there are definitely some really good summary points that I would like to make:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What makes something a robot? Please take note I think there is a subtle difference between robots and &lt;i&gt;robotics&lt;/i&gt;. Please take the poll I posted (top right).&lt;/li&gt;&lt;li&gt;Google is definitely up to something regarding robotics. Watch this space.&lt;/li&gt;&lt;li&gt;Microsoft is busy &lt;a href = "http://www.geekosystem.com/microsoft-buying-skype/"&gt;[buying a brand]&lt;/a&gt; and not so busy doing robotics… or so I thought. I mailed one of MRDS lead devs, &lt;a href = "http://www.microsoft.com/presspass/exec/de/Chrysanthakopoulos/default.mspx"&gt;[George Chrysanthakopoulos]&lt;/a&gt; (this guy is my hero). This is what he had to say:&lt;br /&gt;&lt;blockquote&gt;" RDS is alive and well. We will soon announce updates to it, with exciting new stuff. Stay tuned!"&lt;/blockquote&gt; He took about 5 seconds to respond. What a great guy! He and &lt;a href = "http://channel9.msdn.com/blogs/jodonnell/microsoft-robotics-developer-studio-update-with-trevor-taylor"&gt;[Trevor Taylor]&lt;/a&gt; are my two favourite people in the world. Don’t tell my fiancée I said that…&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Otherwise, here is the news:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Robots have developed the trait of "altruism" (sharing) – Swiss researchers have found that even robots can learn that sharing is caring. &lt;a href = "http://www.engadget.com/2011/05/06/robots-learn-to-share-try-to-repair-bad-rep-video/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://www.georgiarobotics.com/"&gt;Georgia Robotics&lt;/a&gt; has a small cohort of loveable (but not loving) robots that coordinate and spell. &lt;a href = "http://www.engadget.com/2011/05/07/robots-learn-to-march-spell-still-not-capable-of-love-video/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The University of Pennsylvania is creating robotic swarms &lt;a href = "http://www.engadget.com/2011/05/09/grasp-lab-quadrocopters-learn-to-follow-the-leader-and-fly-in-fo/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The Chinese are getting better and better at autonomous flight, with their autonomous helicopter doing very well &lt;a href = "http://gizmodo.com/#!5800049/v750-unmanned-helicopter-can-rival-us-counterparts"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://robodynamics.com"&gt;RoboDynamics&lt;/a&gt;, a telepresence robotics company, are coming out with a $1000.00 production line, called Luna. &lt;a href = "http://www.engadget.com/2011/05/11/robodynamics-luna-the-5-foot-tall-personal-robotic-platform-tha/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;I do believe the more accessible robots &lt;i&gt;feel&lt;/i&gt; to the end user the more people may actually realise there is nothing of which to be scared. Google and Hasbro have joined forces in making a really simple little bot – who knows – maybe one day we will have an &lt;b&gt;Android supported android&lt;/b&gt;? &lt;a href = "http://www.engadget.com/2011/05/11/hasbros-experimental-nexus-powered-robot-toy-hands-on-at-google/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Google is pushing robotics for some reason, and I don’t think telerobotics is the only reason… &lt;a href = "http://www.engadget.com/2011/05/12/google-and-irobot-team-up-to-put-android-apps-on-ava-telepresenc/"&gt;[REF]&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Psssst! Google is attempting to get Nevada to legally allow autonomous vehicles on the road. &lt;a href = "http://tech.slashdot.org/story/11/05/12/038201/Google-Lobbies-Nevada-To-Allow-Self-Driving-Cars?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;In a recent poll, engineering’s "next big thing" will in fact be quite small: Illness defeating Nanobots &lt;a href = "http://www.robotic-lab.com/en/2011/05/10/medical-nanorobots-win-poll-on-engineerings-next-big-thing/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The sandswimming robot could be useful in disaster situations. &lt;a href = "http://www.robotliving.com/robot-research/sand-swimming-robot/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The Cornell Ranger robot walked 40.5 miles with no charge. That’s pretty good! &lt;a href = "http://robots.net/article/3174.html"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;So this is the latest (but not so greatest) news, do to the fact that I had to post AFTER the weekend:&lt;br /&gt;&lt;b&gt;TOP NEWS FOR THE WEEK:&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;According to an announcement, Aldebaran Robotics (creators of Nao) is planning to make a "significant portion" of their software open source. &lt;a href = "http://hardware.slashdot.org/story/11/05/15/040233/Aldebaran-Robotics-To-Open-Source-Nao-Robot-Control-Software?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt; and &lt;a href = "http://robots.net/article/3175.html"&gt;[REF]&lt;/a&gt; This might be really great news, as we could import the bot back into MRDS.&lt;/li&gt;&lt;li&gt;An external party, called Dexter Industries, is manufacturing a Thermal Infrared Sensor for the Lego NXT. &lt;a href = "http://www.dexterindustries.com/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;And the rest of it:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Will music made by robots ever have the emotion or flair of that of their human equivalents? Time will only tell as musical machines are introduced &lt;a href = "http://www.engadget.com/2011/05/14/robot-orchestra-marries-music-and-machines-video/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt; This robot has learnt to use a hammer. Make sure you only give it nail shaped problems. &lt;a href = "http://www.engadget.com/2011/05/13/robot-arm-learns-to-use-hammer-mocks-pathetic-humans-attempt-t/"&gt;[REF]&lt;/a&gt; and &lt;a href = ""&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Smart wheelchairs are helping the vision-impaired: &lt;a href = "http://www.engadget.com/2011/05/13/robotic-wheelchair-uses-3d-imaging-to-see-for-visually-impaire/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Head movements may be capable of controlling robot swarms in the near future. &lt;a href = "http://gizmodo.com/5801822/the-army-may-soon-be-able-to-control-a-herd-of-robots-with-their-heads"&gt;[REF]&lt;/a&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Until next week – keep making friends!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-6673477861726926986?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/6673477861726926986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=6673477861726926986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/6673477861726926986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/6673477861726926986'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/05/this-week-in-robotics_15.html' title='This week in Robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5264347844785020557</id><published>2011-05-14T00:25:00.000-07:00</published><updated>2011-05-14T00:29:19.824-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='excuses'/><category scheme='http://www.blogger.com/atom/ns#' term='This week in robotics'/><title type='text'>Excuses, Excuses....</title><content type='html'>Look, I'm sorry ok - I know all three people who read my blog have an expectation for me to deliver and I was really ready for yesterday's post - I really was... And then blogger went down for a record 40 hours or something. A lot of posts were lost blah blah blah.&lt;br /&gt;&lt;br /&gt;Basically here is the story - Usually I write my blogs in an e-mail and then e-mail it home to be posted. I could've done that I will admit - but I was in such a rush to leave on Friday I made an honest mistake and I forgot. &lt;br /&gt;&lt;br /&gt;Long story short: "This week in robots" will be appearing on Monday morning - and it's a doozy - so watch this space :)&lt;br /&gt;&lt;br /&gt;-Q&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5264347844785020557?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5264347844785020557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5264347844785020557' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5264347844785020557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5264347844785020557'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/05/excuses-excuses.html' title='Excuses, Excuses....'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-121367578680216485</id><published>2011-05-09T22:13:00.000-07:00</published><updated>2011-05-09T22:19:05.077-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cool'/><category scheme='http://www.blogger.com/atom/ns#' term='Modular'/><category scheme='http://www.blogger.com/atom/ns#' term='toys'/><title type='text'>I know what I want for Christmas...</title><content type='html'>I have one word for you: &lt;a href = "http://www.modrobotics.com/"&gt;cubelets&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;These are awesome little squares that you plug together to make modular (reactive) robotic entites. They are ultra cool - a simplistic design with no developer experience required. This is the kind of tool that I would love to add to my collection of THINGS. Watch their teaser &lt;a href = "http://www.modrobotics.com/"&gt;[HERE]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sometimes I think things are cool even when I have no practical use for them. Though they do cost $300.00, so perhaps I may have to wait for a few Christmas' to go by :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-121367578680216485?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/121367578680216485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=121367578680216485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/121367578680216485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/121367578680216485'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/05/i-know-what-i-want-for-christmas.html' title='I know what I want for Christmas...'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5950602235924516686</id><published>2011-05-07T04:58:00.000-07:00</published><updated>2011-05-07T05:18:29.404-07:00</updated><title type='text'>Simulator Spectacular</title><content type='html'>When I started my Masters back in 2007, I really struggled to find a decent simulator for robotics and AI. There were lists, but no real downloads. 4 Years later and I can actually offer some advice to users.&lt;br /&gt;&lt;br /&gt;Obviously, I am a huge fan of the &lt;a href = "http://www.microsoft.com/robotics/"&gt;Micrsoft Robotics Developer Studio&lt;/a&gt; - it has everything a boy could ask for - the CCR, DSS along with managed code (C#) and not having to change operating systems was a huge plus for me.&lt;br /&gt;&lt;br /&gt;But then I learnt of &lt;a href = "http://www.ros.org/wiki/"&gt;ROS&lt;/a&gt; - the Robot Operating System. This was quite a shocker for me, finding out that most robotocists use this software on linux. I have yet to get Linux on my home PC, but at my old work PC - I struggled with getting ROS going. However that may have been proxy server issues. I'm still going to give it a bash [linux pun].&lt;br /&gt;&lt;br /&gt;Today I found out about another simulator - &lt;a href = "http://simspark.sourceforge.net/"&gt;SimSpark&lt;/a&gt;. This is a simulation environment whose purpose is to aid developers in various speheres of reality (2d, 3d, I even think it may help data-driven environments) with a generic linux/windows platform. &lt;a href = "http://sourceforge.net/projects/simspark/"&gt;[DOWNLOAD]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are others available, so please comment and list your favorite ones - I think all readers can benefit :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5950602235924516686?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5950602235924516686/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5950602235924516686' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5950602235924516686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5950602235924516686'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/05/simulator-spectacular.html' title='Simulator Spectacular'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-200878516920751175</id><published>2011-05-06T00:02:00.000-07:00</published><updated>2011-05-08T04:21:25.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weekly'/><title type='text'>This week in Robotics</title><content type='html'>Welcome to a new series of mine - I really do not want my blog to die, so resurrection is in order! I hope to post once a week (on a friday) on some of the more interesting articles in robotics. This is to keep my interest and research alert!&lt;br /&gt;&lt;br /&gt;As for me, I am currently picking up the pieces of my PhD. I've had quite a rough time getting back into the habit after trying to leave the field - so I am a year behind where I should be, now that I am here. Don't get me wrong - I love robots and I love MRDS - lets just say my exodus was more locale oriented... BRING ON THE BOTS!&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Car manufacturer Dodge is trying to dodge the future saying autonomous vehicles take the fun out of driving. Evan Ackerman disagrees &lt;a href = "http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/dodge-shouldnt-be-scared-of-robot-cars"&gt;[REF]&lt;/a&gt;, saying that for most of us, driving is a chore. I for one welcome our new robotic overlords &lt;a href = "http://knowyourmeme.com/memes/i-for-one-welcome-our-new-x-overlords"&gt;[:)]&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The University of Cincinnati is developing nano-tech that may be able to hinder the reproduction of cancer using RNA nano-bots &lt;a href = "http://www.robotic-lab.com/en/2011/05/02/protein-rna-dna-nanotechnology-finds-a-multitude-of-paths-to-attack-cancer-cells/"&gt;[REF]&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;New military robots: &lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;The Boeing Phantom ray is capable of quite a lot, and is completely autonomous, I'm told &lt;a href = "http://spectrum.ieee.org/automaton/robotics/military-robots/boeing-phantom-ray-ucav-makes-first-flight"&gt;[REF]&lt;/a&gt;. While this is not the first Unmanned Combat Air System, it is far better than it's predecessor, whose creators where just happy it didn't crash &lt;a href = "http://www.botjunkie.com/2011/02/07/robot-fighter-jet-makes-first-flight/"&gt;[REF]&lt;/a&gt; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;A spy robot that climbs walls. Even better - just throw it at the wall! &lt;a href = "http://spectrum.ieee.org/automaton/robotics/military-robots/new-recon-scout-throwbot-can-climb-ship-hulls-spy-on-pirates"&gt;[REF]&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;li&gt;Festo, a European robotics company have developed a robotic seagull. This natural immitation is a great leap forward in understanding the actual flight of birds. &lt;a href = "http://robotzeitgeist.com/2011/03/robotic-seagull-takes-flight-in-europe.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+ArtificialIntelligenceAndRobotics+%28Artificial+Intelligence++and+Robotics%29&amp;utm_content=Google+Reader"&gt;[REF]&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;James Floyd Kelly is leaving &lt;a href = "http://thenxtstep.blogspot.com"&gt;thenxtstep&lt;/a&gt; - a great blog about lego nxt. &lt;a href = "http://thenxtstep.blogspot.com/2011/05/great-five-years.html"&gt;[REF]&lt;/a&gt;. Wishing him well.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-200878516920751175?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/200878516920751175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=200878516920751175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/200878516920751175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/200878516920751175'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2011/05/this-week-in-robotics.html' title='This week in Robotics'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7677774441210152934</id><published>2010-05-05T10:22:00.000-07:00</published><updated>2010-05-06T05:08:43.662-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='writers block'/><title type='text'>What kind of problems would you like a robot to solve?</title><content type='html'>I need help. I am trying to brainstorm the types of problems I would like a robot to solve. But here's the kicker: it must be simple yet able to be divided into sub-problems. I need an EXAMPLE, just something that would look cool on a diagram. &lt;br /&gt;&lt;br /&gt;Here's what I &lt;b&gt;don't&lt;/b&gt; want:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;A one step problem like "Do an A* search"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A problem that does not have a physical manifestation, like "Solve a theorem"&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A problem that over-emphasizes the physical&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;I suppose something like solving a rubiks cube is a &lt;b&gt;good&lt;/b&gt; example, but it's been done.&lt;br /&gt;&lt;br /&gt;The winner of this competition recieves a lifetime supply of my gratitude :)&lt;br /&gt;&lt;br /&gt;&lt;B style = "color:red;"&gt;UPDATE 06 MAY 2010:&lt;/B&gt;&lt;br /&gt;I am trying to think along the same lines as a programmer. As if you had to write a program to create the game of minesweeper:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;First you come up with data representation (variables)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now, you can do the representation for the user&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now allow user to input&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Create game loop and exit conditions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Clean up&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Now - is there a problem like that for a robot (other than writing a computer programming robot)?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7677774441210152934?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7677774441210152934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7677774441210152934' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7677774441210152934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7677774441210152934'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2010/05/what-kind-of-problems-would-you-like.html' title='What kind of problems would you like a robot to solve?'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-497838591482830463</id><published>2009-11-18T22:43:00.000-08:00</published><updated>2009-11-18T23:06:19.053-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ramblings'/><title type='text'>He's baaaaack...</title><content type='html'>Now all of a sudden my supervisor doesn't mind me continuing in the field of simulated robotics... It only took a whole year of misdirected study. I had two supervisors leave me (they went to work in industry - recession and all) before I went back to the old one. The problem is I picked up a lot of their idea's on the way. So I need to shake off the excess and now plunge forward.&lt;br /&gt;&lt;br /&gt;As I am going to continue in this field, I just hope that I have not fallen too far behind, of course I will be blogging in order to keep me fresh. Needless to say I have to go back and read my own blog again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-497838591482830463?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/497838591482830463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=497838591482830463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/497838591482830463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/497838591482830463'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2009/11/hes-baaaaack.html' title='He&apos;s baaaaack...'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-2394769779262023614</id><published>2009-02-25T01:33:00.000-08:00</published><updated>2009-02-25T01:40:15.289-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal Entry'/><title type='text'>Update</title><content type='html'>It's been a while since I have updated here... Sorry - I am currently working on unofficial PhD work: I have handed in my masters but have not (officially) received a mark. So I can't register for anything - which is good - because that means I can whack out publications.&lt;br /&gt;&lt;br /&gt;I have not been permitted to continue studying in robotics (apparently the engineering department doesn't like computer science guys doing robotics). However, I will continue developing in MRDS because I do enjoy it. But it will be purely as a hobby. But that won't stop me from trying to publish ;)&lt;br /&gt;&lt;br /&gt;I am waiting for an official response to my masters and the end of March, then I will start developing again. Also I have to wait to get a better computer. I will try to create a robot to solve a real problem. I'll start off with toy problems and move on from there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-2394769779262023614?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/2394769779262023614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=2394769779262023614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2394769779262023614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2394769779262023614'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2009/02/update.html' title='Update'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-2175516402621082196</id><published>2008-11-05T01:24:00.001-08:00</published><updated>2008-11-05T01:29:17.104-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSS'/><category scheme='http://www.blogger.com/atom/ns#' term='CCR'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><title type='text'>CCR and DSS are now distinct from MRDS</title><content type='html'>Microsoft have finally separated the CCR and DSS libraries into individual toolkits for applications other than robotics. Check it out &lt;a href = "http://www.microsoft.com/ccrdss/"&gt;[here]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;These two libraries are really useful, and I believe they will change the manner in which programmers code. They are extremely powerful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-2175516402621082196?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/2175516402621082196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=2175516402621082196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2175516402621082196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2175516402621082196'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/11/ccr-and-dss-are-now-distinct-from-mrds.html' title='CCR and DSS are now distinct from MRDS'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7517389083837187036</id><published>2008-10-16T01:21:00.000-07:00</published><updated>2008-10-16T02:16:50.158-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Masters'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation environment'/><title type='text'>Just to be current</title><content type='html'>I just thought that I would show you what I have been working on. What's more important is what is going on in the background. I coded the robot in C&lt;sup&gt;#&lt;/sup&gt; and designed the environment in the VSE. Then I connected it via the manifest editor. But like I said, it's more about what's going on in the background.&lt;br /&gt;&lt;CENTER&gt;&lt;object width = '384px' height = '290px'&gt;&lt;br /&gt;&lt;param name="movie" value="http://qjaybee.googlepages.com/pursuit_small.swf"&gt;&lt;br /&gt;&lt;embed src="http://qjaybee.googlepages.com/pursuit_small.swf" width = '384px' height = '290px'&gt;&lt;br /&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/CENTER&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7517389083837187036?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7517389083837187036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7517389083837187036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7517389083837187036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7517389083837187036'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/10/just.html' title='Just to be current'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5404339440000801477</id><published>2008-08-14T20:50:00.000-07:00</published><updated>2008-08-14T21:01:43.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='publications'/><category scheme='http://www.blogger.com/atom/ns#' term='CCR'/><title type='text'>Microsoft© CCR getting you down?</title><content type='html'>In my research, which is almost complete, I have come across the first paper that was written regarding the CCR. No doubt changes have been made to it, but it would be a useful read for those who wish to understand it in more depth.&lt;br /&gt;&lt;br /&gt;Here it is, and another one:&lt;br /&gt;&lt;a href = "https://urresearch.rochester.edu/handle/1802/2105"&gt;An Asynchronous Messaging Library for C&lt;sup&gt;#&lt;/sup&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href = "http://portal.acm.org/citation.cfm?id=1370097&amp;jmp=cit&amp;coll=GUIDE&amp;dl=GUIDE"&gt;Developing a concurrent service orchestration engine in ccr&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5404339440000801477?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5404339440000801477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5404339440000801477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5404339440000801477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5404339440000801477'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/08/microsoft-ccr-getting-you-down.html' title='Microsoft&lt;sup&gt;&amp;copy;&lt;/sup&gt; CCR getting you down?'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-1597340707089646795</id><published>2008-07-31T23:38:00.000-07:00</published><updated>2008-08-01T00:03:16.776-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DSS'/><category scheme='http://www.blogger.com/atom/ns#' term='messages'/><category scheme='http://www.blogger.com/atom/ns#' term='explanations'/><category scheme='http://www.blogger.com/atom/ns#' term='CCR'/><title type='text'>Custom messages using the PortSet</title><content type='html'>I am not sure whether this is in the tutorials, but I thought I would highlight it anyway. Making custom messages in MRDS is really easy. Also you can pass state information through them. This post should also give you insight into how the request operations on hardware works.&lt;br /&gt;&lt;br /&gt;To create a custom message, the first step is to create the request class. This request class can contain data that you want to send through. It is declared in the &amp;lt;dss_name&amp;gt;Types.cs file. Remember that all properties need to be Serializable. That means (a) the class needs to be a [DataContract] and (b) the properties need to be ints, bools, strings, etc ([DataMember]). I do not recommend customizable objects, since these services are actually designed to pass between computers, what good is a local definition? So create the message of the structure you want:&lt;br /&gt;&lt;pre class = 'c#' name = 'code'&gt;[DataContract]&lt;br /&gt;public class NewMessageRequest&lt;br /&gt;{&lt;br /&gt;    private bool _input;&lt;br /&gt;&lt;br /&gt;    [DataMember]&lt;br /&gt;    public bool Input&lt;br /&gt;    {&lt;br /&gt;        get { return _input; }&lt;br /&gt;        set { _input = value; }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Then create a class in the &amp;lt;dss_name&amp;gt;Types.cs that inherits from the Update portset:&lt;br /&gt;&lt;pre class = 'c#' name = 'code'&gt;public class NewMessage : &lt;br /&gt;    Update&amp;lt;NewMessageRequest, &lt;br /&gt;      PortSet&amp;lt;ReturnType, Fault&amp;gt;&amp;gt;&lt;br /&gt;{&lt;br /&gt;    public NewMessage() : &lt;br /&gt;         base(new NewMessageRequest()) { }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;What is awesome is you can specify the return type. I kinda guessed this behaviour from navel gazing at the code. That means you can post state changes directly back or whatever information you wish. I went for the state, so that the DSS is still 'responsible' for the output it gives. Then you need to write the handler for the request. This occurs in the &amp;lt;dss_name&amp;gt;.cs file:&lt;br /&gt;&lt;pre class = 'c#' name = 'code'&gt;[ServiceHandler&lt;br /&gt;  (ServiceHandlerBehavior.Exclusive)]&lt;br /&gt;public IEnumerator&amp;lt;ITask&amp;gt; &lt;br /&gt;    NewMessageHandler(NewMessage msg)&lt;br /&gt;{&lt;br /&gt;    if (beh.Body.Input)&lt;br /&gt;    {&lt;br /&gt;        //perform certain changes&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;        //perform other changes&lt;br /&gt;    }&lt;br /&gt;    msg.ResponsePort.Post&lt;br /&gt;      (/*ReturnType instance*/);&lt;br /&gt;    yield break;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;In this manner, you can create customized messages and defer computation to other services, rather than focusing all computation in one service. This is really distributable computing, making use of DSS and CCR.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-1597340707089646795?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/1597340707089646795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=1597340707089646795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/1597340707089646795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/1597340707089646795'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/07/custom-messages-using-portset.html' title='Custom messages using the PortSet'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5561130002525972808</id><published>2008-07-22T22:59:00.000-07:00</published><updated>2008-07-23T08:05:11.397-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paul Roberts'/><category scheme='http://www.blogger.com/atom/ns#' term='Corrections'/><category scheme='http://www.blogger.com/atom/ns#' term='PursuitCamera'/><category scheme='http://www.blogger.com/atom/ns#' term='trianglemeshenvironment'/><category scheme='http://www.blogger.com/atom/ns#' term='VSE'/><title type='text'>The pursuit camera</title><content type='html'>Paul Roberts (&lt;a href = "http://blogs.msdn.com/pollrobots/"&gt;blog&lt;/a&gt;), the author of the pursuit camera,  pointed out that the pursuit camera in fact does follow the bot (&lt;a href = "http://robotexodus.blogspot.com/2008/07/new-ctp-version-of-mrds-just-be-careful.html"&gt;I feel ashamed! I was mistaken, I did cross it out...&lt;/a&gt;)&lt;sup&gt;1&lt;/sup&gt;. It just needs to be set in the constructor (See his post - done in code: &lt;a href = "http://blogs.msdn.com/pollrobots/archive/2008/04/11/pursuit-camera-service.aspx"&gt;[Pursuit Camera Service]&lt;/a&gt;). But since I prefer the VSE (I have my reasons), I wanted to find out how to set it up from there. I realised what I was doing wrong.&lt;br /&gt;&lt;br /&gt;When you create the PursuitCamera, a form pops up with the constructor, just like the TriangleMeshEnvironment entity. You can either set the 'target' property (before creation) or set the TargetName property (after creation).&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.23.july.2008.1.big.JPG"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.23.july.2008.1.small.JPG"/&gt;&lt;/a&gt;&lt;br /&gt;Just type in the name of the bot you wish to pursue, and it does the rest. It is quite nifty! Just don't set it's parent!&lt;br /&gt;&lt;br /&gt;&lt;sup&gt;1&lt;/sup&gt; Firstly, I am so sorry for being over-critical before doing my research! It will not happen again. Secondly, thank you for reading a blog as humble as mine. Thirdly: Please keep up the excellent work! I love this framework. If I had children, regardless of their age and gender, they would be programming robots.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5561130002525972808?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5561130002525972808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5561130002525972808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5561130002525972808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5561130002525972808'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/07/pursuit-camera.html' title='The pursuit camera'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-88934669604413219</id><published>2008-07-21T02:38:00.000-07:00</published><updated>2008-07-23T08:02:58.092-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CTP'/><category scheme='http://www.blogger.com/atom/ns#' term='problems'/><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='forums'/><category scheme='http://www.blogger.com/atom/ns#' term='textures'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='changes'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS Tutorials'/><title type='text'>New CTP version of MRDS - just be careful</title><content type='html'>There is a new version of MRDS out. Read all about it here: &lt;a href = "http://msdn.microsoft.com/en-za/robotics/cc470038(en-us).aspx"&gt;[Welcome to July CTP of Microsoft Robotics Developer Studio 2008]&lt;/a&gt;. It is available for download here: &lt;a href = "http://www.microsoft.com/downloads/details.aspx?FamilyId=57CE326B-2125-4163-A33F-ED2F69E03B56&amp;displaylang=en"&gt;[Download MRDS CTP July 2008]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have checked it out and I like the interface for the dssnewservice. It looks really good. Let's hope it fixes some of the other known issues:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tutorials for the manifest editor: Yes! Now my triumph a couple of weeks ago is literally nothing. Of course you have to &lt;b&gt;know&lt;/b&gt; to use the manifest editor, which I think was my problem in the first place. My hassle was there were no projects dedicated to simulated &lt;b&gt;and&lt;/b&gt; real robots.&lt;/li&gt;&lt;li&gt;Meshes being walls in the FloorPlan entity: See next point.&lt;/li&gt;&lt;li&gt;Texturing (FloorPlan and TriangleMeshEnvioronment Entities): Nope, no fixes. My 'quick and dirty' method won't even work since the FloorPlan is now limited to walls &lt;i&gt;only&lt;/i&gt;, meaning no meshes. The TriangleMeshEnvironment allows for everything, but textures are still not working.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I also noticed there are less project options. The DSS hosing template has been taken out. In fact you can only create a service. But that is a topic for another day.&lt;br /&gt;&lt;br /&gt;I like the fact that the simulation environment can be embedded in forms, but I think that was there before, it just didn't work so nicely (I still don't know how to use it, so I'm no authority here). I have vague recollections 2 years ago trying to create a form with a robotics simulation on it. Back then help was scarce...&lt;br /&gt;&lt;br /&gt;What is really good is the DSS Manifest Editor loads really quickly! Also if you stop the VSE without stopping a manifest, the manifest editor just runs a shutdown rather than throwing errors. The VSE is (more) amazing - they have at least removed the editable options that did not change dynamically. It used to be that, when you clicked on an entity in the tree, you could 'edit' the entity in the left menu. The problem was, none of those changes would take effect. You had to click 'Edit Entity' and change the properties there. At least now you aren't fooled into thinking you have made changes. &lt;br /&gt;&lt;br /&gt;The only hassle is when you do that with a Camera entity is creates a new camera. Annoying. I know for a fact it didn't do that in the older CTP. At least it effects both cameras and so it's just a matter of deleting the duplicate. Also when you load a previously edited VSE manifest is resets the camera to a high weird position.&lt;br /&gt;&lt;br /&gt;They also added a pursuit camera... Which is a great idea, &lt;strike&gt;but not really useful. I was hoping for a 'third person' view. It seems it looks behind, and it is really static in terms of its relation to the parent object.&lt;/strike&gt; &lt;a href = "http://robotexodus.blogspot.com/2008/07/pursuit-camera.html"&gt;[23 JULY 2008: CORRECTION]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In code, a lot of the references have changed. Not in terms of names, but location and namespace, so it's just the DLLs in the references that need updating:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ccr.Core is now Microsoft.Ccr.Core&lt;/li&gt;&lt;li&gt;DssBase is now Microsoft.Dss.Base&lt;/li&gt;&lt;li&gt;DssEnvironment is now Microsoft.Dss.Environment&lt;/li&gt;&lt;li&gt;DssRuntime is now Microsoft.Dss.Runtime&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This change is for the best, at least you know whose DSS and CCR you are using :) Be careful because I suspect there are a lot more than that.&lt;br /&gt;&lt;br /&gt;I noticed in the tutorials some of the pictures are missing. The Robotics Introductory Course is missing all images. That could hinder. The simulation tutorials need to be re-numbered. I know that 3 and 6 are somewhere else, but really... how disturbing! Simulation Tutorials 3 and 6 are language independent.&lt;br /&gt;&lt;br /&gt;I got my main project working in the new version in a matter of minutes. So at least there are no changes that are going to drastically affect or hinder progress.&lt;br /&gt;&lt;br /&gt;Remember that CTP stands for &lt;b&gt;C&lt;/b&gt;ommunity &lt;b&gt;T&lt;/b&gt;echnical &lt;b&gt;P&lt;/b&gt;review, which means that it is not an official release, but is up for technical revision. So get on the forums and make comments! But I think that Microsoft Robotics are coming closer and closer to a very squeaky-clean package that is going to take robotics to the next level.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-88934669604413219?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/88934669604413219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=88934669604413219' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/88934669604413219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/88934669604413219'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/07/new-ctp-version-of-mrds-just-be-careful.html' title='New CTP version of MRDS - just be careful'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7561791982656218584</id><published>2008-07-20T23:51:00.000-07:00</published><updated>2008-07-21T00:24:55.213-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='work around'/><category scheme='http://www.blogger.com/atom/ns#' term='REST'/><category scheme='http://www.blogger.com/atom/ns#' term='state'/><category scheme='http://www.blogger.com/atom/ns#' term='operation'/><title type='text'>A word to the wise: careful of your types for DataMembers</title><content type='html'>I was getting a pretty strange error in MRDS. I was trying to use the REST (representational state transfer) to transfer an array of objects, when it failed on compilation:&lt;pre class = 'c#' name = 'code'&gt;private object[] _list;&lt;br /&gt;&lt;br /&gt;[DataMember]&lt;br /&gt;public object[] List&lt;br /&gt;{&lt;br /&gt;    get { return _list; }&lt;br /&gt;    set { _list = value; }&lt;br /&gt;}&lt;/pre&gt;It throws an error:&lt;blockquote class = "error" style="text-align: center"&gt;&lt;p&gt;Error 1 Unable to Clone System.Object    at Microsoft.Dss.Services.ContractManager.TransformUnit.WriteTransformMethod(TextWriter w, String prefix, DssClassType dssClass, CopyK ...\Microsoft Robotics Dev Studio 2008\projects\&amp;lt;ServiceName&amp;gt;1\EXEC &amp;lt;ServiceName&amp;gt;&lt;br /&gt;&lt;br /&gt;Error 2 The command ""...\Microsoft Robotics Dev Studio 2008\bin\dssproxy.exe" /dll:"...\Microsoft Robotics Dev Studio 2008\bin\&amp;lt;ServiceName&amp;gt;.Y200#.M##.dll" /vstarget:VS2008 /proxyprojectpath:"...\Microsoft Robotics Dev Studio 2008\projects\&amp;lt;ServiceName&amp;gt;\Proxy " /keyfile:"...\Microsoft Robotics Dev Studio 2008\samples\mrisamples.snk"   /binpath:". " /referencepath:"...\Microsoft Robotics Dev Studio 2008\bin\ " /referencepath:"...\Microsoft Robotics Dev Studio 2008\bin\ " " exited with code 10. &amp;lt;ServiceName&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;If you compile it again, it seems fine. &lt;b&gt;It's not fine&lt;/b&gt;. Remove it. I also got an error, which revealed the problem, when trying a similar move with an ArrayList object:&lt;pre class = 'c#' name = 'code'&gt;private ArrayList _list;&lt;br /&gt;&lt;br /&gt;[DataMember]&lt;br /&gt;public ArrayList List&lt;br /&gt;{&lt;br /&gt;   get { return _list; }&lt;br /&gt;   set { _list = value; }&lt;br /&gt;}&lt;/pre&gt;&lt;blockquote class = "error" style="text-align: center"&gt;&lt;p&gt;Error 1 Invalid [DataMember] field. ...\Microsoft Robotics Dev Studio 2008\projects\&amp;lt;ServiceName&amp;gt;\EXEC &amp;lt;ServiceName&amp;gt;&lt;br /&gt;&lt;br /&gt;Error 2 The command ""...\Microsoft Robotics Dev Studio 2008\bin\dssproxy.exe" /dll:"...\Microsoft Robotics Dev Studio 2008\bin\&amp;lt;ServiceName&amp;gt;.Y200#.M##.dll" /vstarget:VS2008 /proxyprojectpath:"...\Microsoft Robotics Dev Studio 2008\projects\&amp;lt;ServiceName&amp;gt;\Proxy " /keyfile:"...\Microsoft Robotics Dev Studio 2008\samples\mrisamples.snk"   /binpath:". " /referencepath:"...\Microsoft Robotics Dev Studio 2008\bin\ " /referencepath:"...\Microsoft Robotics Dev Studio 2008\bin\ " " exited with code 20. &amp;lt;ServiceName&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;The right way to deal with this kind of situation is to use the Array object. You set the array by using the Array.CreateInstance method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7561791982656218584?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7561791982656218584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7561791982656218584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7561791982656218584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7561791982656218584'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/07/word-to-wise-careful-of-your-types-for.html' title='A word to the wise: careful of your types for DataMembers'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-1390272343050480723</id><published>2008-07-10T03:48:00.000-07:00</published><updated>2008-07-10T07:27:37.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entities'/><category scheme='http://www.blogger.com/atom/ns#' term='work around'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation environment'/><category scheme='http://www.blogger.com/atom/ns#' term='trianglemeshenvironment'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><title type='text'>Quick and dirty textures for TriangleMeshEnvironment entities</title><content type='html'>I have not found a nice way of doing this yet. So this blog is subject to serious revision. If you want a texture applied to a TriangleMeshEnvironment entity, I recommend you create the TriangleMeshEnvironment entity as described &lt;a href = "http://robotexodus.blogspot.com/2008/07/create-neat-3d-customizable-maze-for.html"&gt;[HERE]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You will notice you can't load a mesh. But I did find one way. Create a new floorplan entity. Then click 'Edit Entity' &lt;b&gt;(YOU MUST CLICK IT)&lt;/b&gt; --&gt; Edit the Entity state and select the &lt;b&gt;same&lt;/b&gt; mesh ('.obj' file) as you did for the TriangleMeshEnvironment entity and also the texture you want. Then just click on the 'Wall' button and the 'Ok' button. I created the FloorPlan 10m higher so I can tell the difference between the two.&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.10.july.2008.1.big.JPG"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.10.july.2008.1.small.JPG"/&gt;&lt;/a&gt;&lt;br /&gt;Then all I did was remove the FloorPlan entity. The TriangleMeshEnvironment entity keeps the texture. But it will not reload properly. For now I recommend sticking with just the effects.&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.10.july.2008.2.big.JPG"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.10.july.2008.2.small.JPG"/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-1390272343050480723?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/1390272343050480723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=1390272343050480723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/1390272343050480723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/1390272343050480723'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/07/quick-and-dirty-textures-for.html' title='Quick and dirty textures for TriangleMeshEnvironment entities'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5397307891892603782</id><published>2008-07-07T21:44:00.000-07:00</published><updated>2008-07-10T04:55:30.731-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trevor Taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='explanations'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation environment'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='trianglemeshenvironment'/><category scheme='http://www.blogger.com/atom/ns#' term='maze'/><title type='text'>Create a neat 3D customizable maze for MRDS/MSRS</title><content type='html'>For my masters, I want to create a maze environment for the robots to navigate through. I found that I could not use all of &lt;a href = "http://www.promrds.com/Downloads.htm"&gt;[Trevor Taylor's code]&lt;/a&gt;, because there were some errors. They probably have something to do with using C# 2008 and the latest MRDS framework. So I just modified it so that it can be used. The error I got when I tried to run the original code was:&lt;blockquote class = "error" style="text-align: center"&gt;&lt;p&gt;&lt;b&gt;Could not load file or assembly 'DssCmdArgs, Version=2.0.730.3, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;So I took the code I needed and removed the DssCmdArgs reference and the corresponding namespace&lt;pre class = 'c#' name = 'code'&gt;using Microsoft.Dss.Tools.CommandLine;&lt;/pre&gt;&lt;br /&gt;I also took the Maze generation code from Chapter 9 and made the solution a complete package. So now I have a maze mesh generation tool. It's awesome. Another change you will notice is that it is in black and white only. The generation code as described in &lt;a href = "http://www.amazon.com/Professional-Microsoft-Robotics-Developer-Programmer/dp/0470141077/ref=pd_bbs_sr_2?ie=UTF8&amp;s=books&amp;qid=1214641045&amp;sr=8-2"&gt;Professional MRDS&lt;/a&gt; does not seem to work well with colours. I was getting a maze mesh with a 'roof' on it - exactly what I do not want. &lt;br /&gt;&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.07.july.2008.1.big.JPG"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.07.july.2008.1.small.JPG"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So the first thing you'll want is the program. It uses all code from Trevor Taylor and Kyle Johns, who in turn modified a Depth First Search algorithm implemented &lt;a href = "http://www.gamespp.com/c/generatingMazes.html"&gt;[HERE]&lt;/a&gt;. I put it all together and modified it as described. It may not be the most elegant, but it works well. Click &lt;a href = "http://qjaybee.googlepages.com/bmp2mesh.zip"&gt;[HERE]&lt;/a&gt; to download the complete code. It draws the maze and the 'generate' button will create a '.obj' file type for you.&lt;br /&gt;&lt;br /&gt;To see the maze in the simulation environment is fairly simple. Generate a mesh using bmp2mesh (or you can create an load your own - click "Browse") and make sure you remember where you saved the .obj file. The program automatically allocates a name to the same location as the image.&lt;br /&gt;&lt;br /&gt;Next load a simulation environment. To load the mesh, you want a new entity. Choose a &lt;i&gt;TriangleMeshEnvironmentEntity&lt;/i&gt; entity. Once you have returned to the normal edit screen select the TriangleMeshEnvironmentEntity. Then click ok, but do not be concerned about the errors (you could just paste the entire path of the '.obj' file if you are that concerned about seeing errors). You must click 'Edit Entity.' Modify the EntityState and select the '.obj' file you created using my program. I &lt;b&gt;strongly&lt;/b&gt; recommend you apply an effect, like Terrain.fx. I am still working on textures.&lt;br /&gt;&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.07.july.2008.2.big.JPG"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.07.july.2008.2.small.JPG"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It may take a few seconds, but the mesh should load. You will be interested to know, the entity itself generates a '.bos' file for you. The mesh is actually sitting below the floor, so you can raise it if you want the walls higher.&lt;br /&gt;&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.07.july.2008.3.big.JPG"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.07.july.2008.3.small.JPG"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are several reasons why I prefer my solution:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Complete: It works neatly and in one package&lt;/li&gt;&lt;li&gt;Error-free: There are no unnecessary dependencies in the code&lt;/li&gt;&lt;li&gt;Usability: The form doesn't re-size for every maze generated, rather, it just stretches the maze image&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The main limitation of my program is that you may only use bitmap images. The code may be modified and extended to support other file formats, but it is unnecessary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5397307891892603782?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5397307891892603782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5397307891892603782' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5397307891892603782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5397307891892603782'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/07/create-neat-3d-customizable-maze-for.html' title='Create a neat 3D customizable maze for MRDS/MSRS'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-3602977223403154051</id><published>2008-07-03T23:52:00.000-07:00</published><updated>2008-08-08T00:08:30.395-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simulation environment'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware to simulation'/><title type='text'>Using MRDS/MSRS to create simulated hardware entities</title><content type='html'>My goal is to use a hardware differential drive on a simulated bot. Now the problem was I could not seem to connect the bot to the hardware drive I programmed in. As you can imagine it was a frustrating WEEK that I wasted trying to get it to work, however, thanks to the personal effort of Trevor Taylor, the author of &lt;a href="http://www.amazon.com/Professional-Microsoft-Robotics-Developer-Programmer/dp/0470141077/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1214641045&amp;amp;sr=8-2"&gt;"Professional Microsoft Robotics Development Studio"&lt;/a&gt;, I managed to figure out the problem.&lt;br /&gt;&lt;br /&gt;Here are the forums I used:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://p2p.wrox.com/topic.asp?TOPIC_ID=72143"&gt;[WROX Forum (Trevor Taylor)]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=1426&amp;amp;SiteID=1"&gt;[MSDN MRDS Forum: "Microsoft Robotics - Simulation"]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3377761&amp;SiteID=1"&gt;[MSDN MRDS Forum: "How to configure a Diff Drive in a service?"]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3548111&amp;amp;SiteID=1&amp;amp;mode=1"&gt;[MSDN MRDS Forum: "Convert project from Hardware to Simluation - specifically with the differential drive"]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3570655&amp;amp;SiteID=1&amp;amp;mode=1"&gt;[MSDN MRDS Forum: "Use the differential drive in a simulation"]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Firstly, create the program that controls your robot. I called mine Actuator (my creative team is on holiday and I will have a better name soon), and all it has is the differential drive. So far, I have only imported RoboticsCommon.Proxy and the only namespace is:&lt;pre class="c#" name="code"&gt;using drive =&lt;br /&gt;Microsoft.Robotics.Services.Drive.Proxy;&lt;/pre&gt;&lt;br /&gt;Then I created a perform method of type IEnumerator&amp;lt;ITask&amp;gt;, in which all actions can be spawned. Be careful, however, that you time the robots actions appropriately when calling the methods in this fashion. If you travel a long distance, make the timeout operation longer. I think it is more effective that actuators react based on sensor information, but the point of this blog is to get you to a certain point and let you figure out the rest.&lt;br /&gt;&lt;br /&gt;&lt;pre class="c#" name="code"&gt;private IEnumerator&amp;#060;ITask&amp;#062; perform()&lt;br /&gt;{&lt;br /&gt;   //drive a set distance&lt;br /&gt;   SpawnIterator&amp;#060;double, double&amp;#062;&lt;br /&gt;    (2.0, 1.0, driveRobotDistance);&lt;br /&gt;   //wait&lt;br /&gt;   yield return Arbiter.Receive&lt;br /&gt;    (false, TimeoutPort(2000),&lt;br /&gt;     delegate(DateTime t) { });&lt;br /&gt;   //turn&lt;br /&gt;   SpawnIterator&amp;#060;double, double&amp;#062;&lt;br /&gt;    (90.0, 1.0, turnRobot);&lt;br /&gt;   //wait&lt;br /&gt;   yield return Arbiter.Receive&lt;br /&gt;    (false, TimeoutPort(2000),&lt;br /&gt;     delegate(DateTime t) { });&lt;br /&gt;   //drive again&lt;br /&gt;   SpawnIterator&amp;#060;double, double&amp;#062;&lt;br /&gt;   (2.0, 1.0, driveRobotDistance);&lt;br /&gt;&lt;br /&gt;   yield break;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private IEnumerator&amp;#060;ITask&amp;#062; driveRobotDistance&lt;br /&gt;(double distance, double power)&lt;br /&gt;{&lt;br /&gt;   drive.DriveDistanceRequest driveRequest =&lt;br /&gt;    new drive.DriveDistanceRequest&lt;br /&gt;    (distance, power);&lt;br /&gt;&lt;br /&gt;   yield return Arbiter.Choice&lt;br /&gt;   (&lt;br /&gt;     _drivePort.DriveDistance(driveRequest),&lt;br /&gt;     delegate&lt;br /&gt;      (DefaultUpdateResponseType response)&lt;br /&gt;     {&lt;br /&gt;     },&lt;br /&gt;     delegate(Fault fault)&lt;br /&gt;     {&lt;br /&gt;         LogError&lt;br /&gt;          (null,&lt;br /&gt;           "Unable to drive robot",&lt;br /&gt;           fault);&lt;br /&gt;     }&lt;br /&gt;   );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private IEnumerator&amp;#060;ITask&amp;#062; turnRobot&lt;br /&gt;(double angle, double power)&lt;br /&gt;{&lt;br /&gt;   drive.RotateDegreesRequest request =&lt;br /&gt;    new drive.RotateDegreesRequest&lt;br /&gt;                     (angle, power);&lt;br /&gt;&lt;br /&gt;   yield return Arbiter.Choice(&lt;br /&gt;    _drivePort.RotateDegrees(request),&lt;br /&gt;    delegate&lt;br /&gt;     (DefaultUpdateResponseType response)&lt;br /&gt;    {&lt;br /&gt;    },&lt;br /&gt;    delegate(Fault fault)&lt;br /&gt;    {&lt;br /&gt;        LogError&lt;br /&gt;         (null,&lt;br /&gt;          "Unable to turn robot",&lt;br /&gt;          fault);&lt;br /&gt;    }&lt;br /&gt;   );&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;That's all there is to this drive. But the point remains that &lt;b&gt;in code&lt;/b&gt; some &lt;i&gt;physical&lt;/i&gt; differential drive is being told to drive &lt;u&gt;and we can see in what manner to make other physical entities work,&lt;/u&gt; as well as react.&lt;br /&gt;&lt;br /&gt;Well, that's all there is on this side. Now we need to create an environment. Go to the visual simulation editor and create entities in the same manner as I describe in my post on how to create a custom simulation environment &lt;a href="http://robotexodus.blogspot.com/2008/06/creating-custom-simulation-is-mrds.html"&gt;[HERE]&lt;/a&gt;. There are a few changes though: &lt;ol&gt;&lt;li&gt;Make sure that the lego has the &lt;b&gt;Simulated&lt;/b&gt; differential drive contract (not actually a change, just a reminder. Don't try make it the physical drive.)&lt;/li&gt;&lt;li&gt;(I left this out the last time - how embarrassing!) Make sure that you add &lt;b&gt;wheels&lt;/b&gt; to the LegoNXTTribot. You must edit the Left and Right wheel's entity state and load a mesh:&lt;br /&gt;&lt;a href="http://qjaybee.googlepages.com/blog.4.july.2008.1.big.JPG"&gt;&lt;img src="http://qjaybee.googlepages.com/blog.4.july.2008.1.small.JPG" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Save the manifest, but make sure you know where the manifest is stored. Then load up the DSS Manifest Editor. This is the power of MRDS / MSRS. You have created a hardware project. You have created a simulated 'version' of the hardware's environment. Now to plug them into each other.&lt;br /&gt;&lt;br /&gt;In the manifest editor, load the manifest of the simulation environment. It should look something like this:&lt;br /&gt;&lt;a href="http://qjaybee.googlepages.com/blog.4.july.2008.2.big.JPG"&gt;&lt;img src="http://qjaybee.googlepages.com/blog.4.july.2008.2.small.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;What you should notice is that the simulated differential drive actually has an entity: the LegoNXTTribot. I am still not sure in what manner we can do this in code, but at least the entity is there, and we can modify it with the VSE.&lt;br /&gt;&lt;br /&gt;Now drag and drop the Actuator file on top of the &lt;i&gt;simulated differential drive&lt;/i&gt;, &lt;b&gt;not the entity&lt;/b&gt;. This creates an instance of the Actuator for the &lt;u&gt;whole&lt;/u&gt; manifest. (To make sure it is not added to the entity, click the entity, it should not highlight any relationships). Then either: drag and drop the existing simulated differential drive on to the Actuator's DRIVE object, or you can just drag a simulated differential drive object from the services section and make sure it is the same one as previously loaded. It should look like this:&lt;br /&gt;&lt;a href="http://qjaybee.googlepages.com/blog.4.july.2008.3.big.JPG"&gt;&lt;img src="http://qjaybee.googlepages.com/blog.4.july.2008.3.small.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;Then you can either save the manifest over the manifest for your Actuator application and run from code, or you can run the manifest from the editor by pressing F5. But that is the basics of loading a simulation environment and then plugging in your hardware devices. Happy Botting&lt;sup&gt;&amp;copy;&lt;/sup&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-3602977223403154051?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/3602977223403154051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=3602977223403154051' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3602977223403154051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3602977223403154051'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/07/using-mrdsmsrs-to-create-simulated.html' title='Using MRDS/MSRS to create simulated hardware entities'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5464660928966343090</id><published>2008-06-20T03:32:00.000-07:00</published><updated>2008-06-20T04:52:03.624-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='explanations'/><category scheme='http://www.blogger.com/atom/ns#' term='Useful information'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Random'/><title type='text'>C# Windows Forms: Enabling users to resize components at run time</title><content type='html'>This has nothing to do with the topic of this blog. The only way it relates is the C# aspect. I have been surfing for 2 days and could not find the solution to this problem. I am creating a user control, but the user needs to be able to resize it. Go on, search the net, but you'll find rubbish.&lt;br /&gt;&lt;br /&gt;The manner in which I solved the problem is very simplistic. I made the control the "background" to the "main" control (can be a panel) which is smaller and offset to the background. That forms a border, so when you click on the background, it allows you to drag resize. Then all you have to do is fit the contents. I'm pretty sure this is how Microsoft does it.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create the variables you'll need for maintaining: &lt;br /&gt;&lt;pre class="c#" name="code"&gt;//MouseMove is used in conjunction&lt;br /&gt;private bool _mouseDown; &lt;br /&gt;//remember the mouse's original point.&lt;br /&gt;private Point _orig;&lt;br /&gt;//for storing the mouse difference&lt;br /&gt;private Point _diff;&lt;br /&gt;//the original size of the object&lt;br /&gt;private Point _size;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Now create a MouseDown method. Insert this code: &lt;br /&gt;&lt;pre class = "c#" name= "code"&gt;    _mouseDown = true;&lt;br /&gt;    _orig = Cursor.Position;&lt;br /&gt;    _size = new Point(Width, Height);&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Create a MouseUp method and insert:&lt;br /&gt;&lt;pre class="c#" name="code"&gt;    _mouseDown = false;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Next create a MouseMove method and insert&lt;br /&gt;&lt;pre class = "c#" name= "code"&gt;    if (_mouseDown)&lt;br /&gt;    {&lt;br /&gt;       //get the difference&lt;br /&gt;       _diff.X = Cursor.Position.X - _orig.X;&lt;br /&gt;       _diff.Y = Cursor.Position.Y - _orig.Y;&lt;br /&gt;&lt;br /&gt;       //change the width and height, &lt;br /&gt;       //relative to the old size&lt;br /&gt;       Width = _size.X + _diff.X;&lt;br /&gt;       Height = _size.Y + _diff.Y;&lt;br /&gt;                &lt;br /&gt;       //modify the inner object&lt;br /&gt;       innerPan.Width = Width - 8;&lt;br /&gt;       innerPan.Height = Height - 8;&lt;br /&gt;    }&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;I recommend you give the background a darker colour so that you can see the difference. Also change the cursor using this.Cursor = Cursors.[whatever];&lt;br /&gt;&lt;br /&gt;I really hope that you find this via a high-ranking google search. I hate it when websites give &lt;b&gt;bad&lt;/b&gt; advice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5464660928966343090?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5464660928966343090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5464660928966343090' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5464660928966343090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5464660928966343090'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/c-enabling-users-to-resize-components.html' title='C# Windows Forms: Enabling users to resize components at run time'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7160232606217980927</id><published>2008-06-18T06:02:00.000-07:00</published><updated>2008-10-13T21:39:07.036-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simulation environment'/><category scheme='http://www.blogger.com/atom/ns#' term='meshes'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='contract'/><category scheme='http://www.blogger.com/atom/ns#' term='VPL'/><title type='text'>Creating a custom simulation is MRDS</title><content type='html'>Today I finally cracked the nut open! I think this may be my first blog of use to someone else. Today I am covering the means by which a programmer can load a custom environment using the simulator and connect it to a program designed in the VPL. I'm doing it really simply so there shouldn't be any tricks.&lt;br /&gt;&lt;br /&gt;One thing I noticed is that you can't just define a scene and load it in the VPL. What you need to do is define a scene with all the components that you will be using in the Simulation Editor (right down to the differential drive 'entities') and then load the manifest for the Simulation Environment 'on top' of those components. So it will feel like you are loading the environment several times, when in reality you are just connecting a piece of your robot to that simulation. That's why you tell it to use existing if it has been loaded beforehand.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start up the "Basic Simulation environment" change the mode to edit and add / remove the entities you wish. They are quite straight forward. I decided to keep the basic entities like the skybox and the floor. I added a the Lego NXT bot, which looks like a box. You can probably load a ton of meshes and get it looking nice, but that is not the point of today. I also added a table, just to see that I could. &lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.18.june.2008.1.jpg"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.18.june.2008.1.small.bmp"/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Now select the NXTTribot in the editor and expand the "Misc" category. Under the  "ServiceContract" field type (or select) "http://schemas.microsoft.com/robotics/simulation/services/2006/05/simulateddifferentialdrive.html"&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.18.june.2008.2.jpg"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.18.june.2008.2.small.bmp"/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;(Optional) To get the Tribot looking good, select the Tribot and click "Edit Entity". &lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.18.june.2008.4.jpg"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.18.june.2008.4.small.bmp"/&gt;&lt;/a&gt; Then click the elipses "..." in the "EntityState" property. In the "EntityState" window, click the elipses under the mesh property and select the LegoNXTTribot.bos file. You can make your robot look like anything you like with this.&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.18.june.2008.5.jpg"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.18.june.2008.5.small.bmp"/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Save your manifest file. Give it a unique name and preferrably include the date. I saved it under "Samples\Config" since many of them are there.&lt;/li&gt;&lt;li&gt;Now design your VPL language. Obviously I just used one that has a GenericDifferentialDrive. Then you can load the manifest by changing the configuration of the drive to "Use a manifest" and then import your custom manifest.&lt;sup&gt;[1]&lt;/sup&gt;&lt;br /&gt;&lt;a href = "http://qjaybee.googlepages.com/blog.18.june.2008.3.jpg"&gt;&lt;img src = "http://qjaybee.googlepages.com/blog.18.june.2008.3.small.bmp"/&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Run the program. Mine worked well!&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;sup&gt;[1]&lt;/sup&gt; This is not possible if you did not load the right &lt;b&gt;ServiceContract&lt;/b&gt; The robots are just meshes until you plug that guy in. So the best way to do it is to load a pre-existing SE and then see what contracts are used.&lt;br /&gt;&lt;br /&gt;I hope this helps!&lt;br /&gt;&lt;br /&gt;&lt;FONT color = 'red'&gt;UPDATE:&lt;/FONT&gt; &lt;ol&gt;&lt;li&gt;If you struggle with the entity (like getting wheels), then check out &lt;A href = "http://robotexodus.blogspot.com/2008/07/using-mrdsmsrs-to-create-simulated.html"&gt;THIS POST&lt;/A&gt;&lt;/li&gt;&lt;li&gt;Please also be aware that I wouldn't actually recommend you create robotic entities from scratch unless they are &lt;b&gt;really simple&lt;/b&gt;. When creating a Pioneer 3DX robot with a LRF, I found that the existence of the LRF made a collision point, making the robot fly off in a random direction. Rather, just edit existing scenes with the robot that you want to use&lt;/li&gt;&lt;li&gt;Comments are welcome on this blog, but please keep in mind you get what you pay for here, I'm trying to help. If you have a question, I'm all ears and I'll do my best. I will not tolerate insults on this blog, that's what my other blog is for.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7160232606217980927?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7160232606217980927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7160232606217980927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7160232606217980927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7160232606217980927'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/creating-custom-simulation-is-mrds.html' title='Creating a custom simulation is MRDS'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-8861710826630256028</id><published>2008-06-17T05:24:00.000-07:00</published><updated>2008-06-25T01:19:43.347-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simulation environment'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='VPL'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation'/><title type='text'>Simulation</title><content type='html'>This is one of the key areas of Microsoft Robotics, for people like me. The simulator achieves one of the design goals of MRDS: to allow programmers to work on a robot synchronously, while not running the risk of damaging hardware or having to take turns in making use of the hardware.&lt;br /&gt;&lt;br /&gt;This is what makes .Net languages so useful in robotics. Microsoft has kept it's eyes on team-based development software throughout their architecture. Most notably (for me) was the invention of &lt;i&gt;partial&lt;/i&gt; classes.&lt;br /&gt;&lt;br /&gt;Anyway, Sara Morgan defines a simulation for us: "A simulation is a mathematical model that is used to represent one or more physical objects. Data is fed into the model, and the result may or may not be rendered to create a visual three-dimensional image."&lt;br /&gt;&lt;br /&gt;The biggest disadvantage from the simulation is the problem of &lt;i&gt;abstraction from reality&lt;/i&gt;. What this is saying is that the robot lacks the 'fuzziness' that it would get in the real world. For example, floors are never perfectly flat, however, a plane in a simulator &lt;i&gt;is&lt;/i&gt;. Sensor input may also be too clean and the robot may demonstrate strange behaviour in the real world.&lt;br /&gt;&lt;br /&gt;What I am really interested in is running a custom simulation through the VPL. I assume this would include loading a manifest file that had my pre-defined simulation engine set as a partner service in the manifest file. I took a look at the Lego tribot in the VPL that provides a SE (under "\Microsoft Robotics Dev Studio 2008\samples\Config\LEGO.NXT.Tribot.Simulation.manifest.xml") and there is a partner service there to "LEGO.NXT.Tribot.SimulationEngineState.xml." Looking at that file it is easy to see how you get your simulation environment included in the VPL. But it's going to take some time for me to figure out the details.&lt;br /&gt;&lt;br /&gt;First, I assume you are going to have to define the simulation environment and your robot's components in .Net MRDS code, then in the component code add the simulation as a partner service. Then take your robots components and add them (or their equivalent components) in a VPL and then load using a manifest. I'm still uncertain about autonomy, but this is a big step for me. When I do an example, I'll show you how.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-8861710826630256028?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/8861710826630256028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=8861710826630256028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/8861710826630256028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/8861710826630256028'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/simulation.html' title='Simulation'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7807261727864269495</id><published>2008-06-14T10:48:00.000-07:00</published><updated>2008-06-14T10:49:19.769-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XInput Controller'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='VPL Tutorial 4'/><category scheme='http://www.blogger.com/atom/ns#' term='VPL'/><category scheme='http://www.blogger.com/atom/ns#' term='join'/><category scheme='http://www.blogger.com/atom/ns#' term='code generation'/><category scheme='http://www.blogger.com/atom/ns#' term='autonomy'/><title type='text'>The VPL tutorials</title><content type='html'>Just starting on the VPL (Visual Programming Language). I thought this thing was for kids. When I was checking out Lego Mindstorms RCX at the beginning of my studies, one of the main reasons I did not go for it was the provided VPL and lack of support with other languages. Obviously since then, the support has grown and VPLs still exist. What is nice is that I can use Microsoft's VPL and not be confined to the Lego's VPL.&lt;br /&gt;&lt;br /&gt;The VPL, as far as I can tell, acts as a 'pleasant' gateway into building a project without having to define every service using code. As far as I am aware, a VPL programmed bot can be ported to a C# (or any other .Net language). That would make my autonomous robots very nice indeed.&lt;br /&gt;&lt;br /&gt;If you want to see about code generation: in the VPL, click help --&gt; contents and then click on code generation under the user guide for VPL. There are a few scary things there, but I'm hoping for the best.&lt;br /&gt;&lt;br /&gt;I think it's rather unnecessary that Sara did the example with a physical Boe-Bot. I would rather say use the simulation envioronment - that's what it's there for. Not everyone has a Boe-Bot lying around at home while reading the book.&lt;br /&gt;&lt;br /&gt;It was at this point that I put Sara's book down and looked at the VPL Introductory tutorials. They do not require any hardware and therefore better suite my purposes.&lt;br /&gt;&lt;br /&gt;It's probably better not to ue the XInput controller, since you'll learn a little more about the inputs and controls. Joins are there just to compound data, sort of a struct. The reason forwards, backwards and stop are the same values is that the differential drive will apply the same values to each wheel when performing these operations.&lt;br /&gt;&lt;br /&gt;The real power comes in where you don't actually add a simulation environment component, it all depends on what manifest you load. Very cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7807261727864269495?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7807261727864269495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7807261727864269495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7807261727864269495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7807261727864269495'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/vpl-tutorials.html' title='The VPL tutorials'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-5552356120984401677</id><published>2008-06-14T10:47:00.000-07:00</published><updated>2008-06-19T03:56:11.494-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='explanations'/><category scheme='http://www.blogger.com/atom/ns#' term='choice'/><category scheme='http://www.blogger.com/atom/ns#' term='CCR'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='join'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='architechture'/><category scheme='http://www.blogger.com/atom/ns#' term='arbiter'/><title type='text'>MRDS Architechture</title><content type='html'>I watched the Architecture video about MRDS and &lt;b&gt;wow&lt;/b&gt; it cleared up a few things. I learned what the choice arbiter is for and learned about the join arbiter. I am starting to see why these guys are so wound up about the CCR. This thing is going to break &lt;i&gt;huge&lt;/i&gt; boundaries for the future!&lt;br /&gt;&lt;br /&gt;The arbiter is a way of &lt;i&gt;waiting&lt;/i&gt; for a response from another service. What make it so cool is that it can execute code once this has been done. Further coolness is added by the fact that the &lt;i&gt;sender&lt;/i&gt; can have code that needs to be executed. I really wanted to know what all that arbiter stuff in the tutorials was about! I guess just hearing someone explain it makes it so much easier!&lt;br /&gt;&lt;br /&gt;The &lt;u&gt;choice&lt;/u&gt; arbiter is waiting for one event to happen, while the &lt;u&gt;join&lt;/u&gt; arbiter waits for a combination of messages, in any order, to be received. There are other arbiters, but George explains them much better than I do. &lt;br /&gt;&lt;br /&gt;Another thing that I haven't mentioned before: Although the CCR is event-based, it is not polling based. This is awesome why? Because you don't have to sit and wait for a result, rather results are &lt;i&gt;pushed&lt;/i&gt; back to you. This means you don't waste computation cycles polling - you receive it when you receive it. This makes robotics cool how? Now I just get these messages informing me of different events occurring on the robot, not dealing with the ones I don't have to!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-5552356120984401677?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/5552356120984401677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=5552356120984401677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5552356120984401677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/5552356120984401677'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/msrs-architechture.html' title='MRDS Architechture'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-3942770354610359916</id><published>2008-06-14T10:46:00.000-07:00</published><updated>2008-07-01T06:36:39.470-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='definition'/><category scheme='http://www.blogger.com/atom/ns#' term='helpful tips'/><category scheme='http://www.blogger.com/atom/ns#' term='yield return'/><title type='text'>Service Tutorials</title><content type='html'>Today(with my lifestyle it took 4 days) I'm blasting through the service tutorials one more time. I'm going through them step by step just to make sure I have it down. I want to be really sure before I dive into the next part, either today or tomorrow (sigh).&lt;br /&gt;&lt;br /&gt;Once again, they are located in "...\Microsoft Robotics Dev Studio 2008\documentation\MsrsUserGuide.chm" under "Decentralized Software Services" --&gt; "DDS Service Tutorials" --&gt; "C#." I'm surprised to see that it's still C# 2005 based. I'm using 2008 now.&lt;br /&gt;&lt;br /&gt;Caution: Don't use underscores in your project name. If you did, just pretend that you didn't...&lt;br /&gt;&lt;br /&gt;Wow - let me say the service tutorials have been improved &lt;i&gt;by far&lt;/i&gt;. So far I remember having such problems and not understanding - they even give links and tips (for things like attributes). The only thing they missed is when you use the dsshost, you first need to do a "cd.." in the command prompt.&lt;br /&gt;&lt;br /&gt;Tutorial 1 and 2 can be completed fairly quickly with no bumps. Just read before you code. I made a few mistakes by getting ahead of myself.&lt;br /&gt;&lt;br /&gt;Tutorial 3 reveals a tastey piece of information: &lt;blockquote&gt;&lt;p&gt;"Returning a task with yield return causes the handler to enter a wait state until the task completes. This allows you to create sequences of asynchronous operations."&lt;/p&gt;&lt;/blockquote&gt; That's what I need!&lt;br /&gt;&lt;br /&gt;Just a note for service tutorial 5: it gets a little odd. I just recompiled the service tutorial 4 given and then added that reference instead - it is a little different though. The advantage of that is if there is a mistake, you can recompile the service tutorial and make changes.&lt;br /&gt;&lt;br /&gt;Also, tutorial 5, last section - I had a bit of trouble because I was progressively using the same file for all the tutorials. I had huge compilation errors with the &lt;i&gt;IncrementTick&lt;/i&gt; class being defined in the fifth tutorial. So I just commented out the class and any relating methods, then it worked fine. So I ended up commenting out: &lt;ol&gt;&lt;li&gt;class IncrementTick&lt;/li&gt;&lt;li&gt;class IncrementTickRequest&lt;/li&gt;&lt;li&gt;void TimerHandler&lt;/li&gt;&lt;li&gt;public IEnumerator&lt;ITask&gt; IncrementTickHandler&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;I'm stopping at tutorial 5 - I would still recommend tutorial 6 but for now I want to move on with other videos and with the textbooks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-3942770354610359916?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/3942770354610359916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=3942770354610359916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3942770354610359916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3942770354610359916'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/service-tutorials.html' title='Service Tutorials'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-3200727700584838641</id><published>2008-06-12T00:25:00.000-07:00</published><updated>2008-06-12T00:44:03.729-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='universities'/><category scheme='http://www.blogger.com/atom/ns#' term='snake robot'/><category scheme='http://www.blogger.com/atom/ns#' term='robotics institute'/><category scheme='http://www.blogger.com/atom/ns#' term='biorobotics'/><title type='text'>Snakes in the desert?</title><content type='html'>Check out this agile robot from the robotics institute:&lt;br /&gt;&lt;a href = "http://download.srv.cs.cmu.edu/~biorobotics/projects/modsnake/"&gt;[Biorobotics Laboratory]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It really is quite amazing.&lt;br /&gt;&lt;br /&gt;It got me looking elsewhere:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href = "http://birg.epfl.ch/"&gt;[Biologically inspired robotics group]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://www.ri.cmu.edu/"&gt;[Carnegie Mellon]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://download.srv.cs.cmu.edu/~biorobotics/"&gt;[Carnegie Mellon BioRobotics Lab]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://biorobots.cwru.edu/"&gt;[Case Western Reserve University]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://www.3me.tudelft.nl/live/pagina.jsp?id=8c6c48e9-ed24-4ae5-91db-6de01d476968&amp;lang=en"&gt;[Delft BioRobotics Lab]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://www3.ntu.edu.sg/mae/centres/rrc/Biorobotics/biorobotics.htm"&gt;[Nanyang Technological University BioRobotics group]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://darbelofflab.mit.edu/node/2"&gt;[MIT Robotics Laboratory]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://brl.ee.washington.edu/"&gt;[University of Washington]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-3200727700584838641?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/3200727700584838641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=3200727700584838641' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3200727700584838641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/3200727700584838641'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/snakes-in-desert.html' title='Snakes in the desert?'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-571439469747631305</id><published>2008-06-10T21:41:00.000-07:00</published><updated>2008-06-19T04:01:36.234-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Comparison'/><category scheme='http://www.blogger.com/atom/ns#' term='Products'/><category scheme='http://www.blogger.com/atom/ns#' term='Mindstorms'/><category scheme='http://www.blogger.com/atom/ns#' term='Lego'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='toys'/><title type='text'>Lego: Education or Base?</title><content type='html'>I have compiled a list (free for download, compiled by me) of differences between the Lego Mindstorms NXT and Lego Mindstorms NXT Education set. The main idea is to see which one I would rather buy, since they are both within the same price range. I would like to sell my biases from the start: I like the look of the base kit, it looks more serious. The education kit comes with far more 'standard' Lego pieces and, for reasons beyond me, a surfer dude. A surfer dude? Yes a surfer dude. It puzzles me so much.&lt;br /&gt;&lt;br /&gt;That said, the education kit comes with something really nifty: a rechargeable battery. Now I remember being a kid and trying to suck batteries out of my parents, which leads me to believe that they might become expensive. So a rechargeable battery is somewhat of a major plus. But the vote may not sway one one component alone, rather get the cheaper one and make up the difference. I'm going to give you my requirement: I want to build cool Lego robots, make them autonomous and get my monies worth. I have many spare bits of Technic Lego from back in my day, and plenty normal Lego blocks from &lt;i&gt;way&lt;/i&gt; back in my day.&lt;br /&gt;&lt;br /&gt;So here is the approach: I'm going to pretend to unpack this kit and tell you what I get that Billy doesn't (Billy is my exact opposite who gets the Education kit) and tell you how it makes me feel.&lt;br /&gt;&lt;br /&gt;The first thing I notice is the Compact Disk for the NXT, which Billy does not have. Billy will have to pay R500.00za (+-$60.00us) to get this. But what does it contain? Just the software for the NXT. I am going to be using C# and MRDS, so really this does not concern me or Billy at the moment.&lt;br /&gt;&lt;br /&gt;Now looking at what Billy doesn't have - there are these Bionicle pincer thingies, which I noticed as the 'most important' missing objects. To be quite fair there is useful stuff Billy is missing, but nothing that cannot be duplicated with my pre-existing Lego. If I want pincers I can make them! All in all there are 30 categories missing from Billy's set, with the total number of pieces being 143. But lets be frank: Billy has 86 pieces that I don't (in 33 categories), but I beat him in total number of pieces: 587 to 434. He wins in total categories by three, I have 90.&lt;br /&gt;&lt;br /&gt;Ok so I am a bit upset that there is nothing that cannot be made out of my existing Lego to beat Billy's set. It seems like it's just useful pieces that are missing from his set. These things can be collected from raiding a good Technic set (to be honest the same goes for Billy's unique pieces). This is reflected even more so when going down into the overlap. Billy seems to have less pieces overall, but still has quite a few. The standard set seems to be a lot more serious in nature and  number of parts, the significant ones are those that have twenty or more pieces, which I do like to have. The one thing I notice is that Billy has one more touch sensor. That annoys me.&lt;br /&gt;&lt;br /&gt;Then, looking at what I didn't get: the first fifteen pieces cause me to laugh at Billy, he got some extra bricks. Nothing special. But then I see that (queue heavenly choir) rechargeable battery. I have to have that, no question. The next piece confuses me, the 'electric light and sound brick' which doesn't seem to be too significant.&lt;br /&gt;&lt;br /&gt;The conversion cable is for a RCX brick, the sort of 'beta' to the NXT. I laugh at Billy for wasting his money, he in turn laughs at my CD and test pad. The rest of the stuff is pretty standard, but again, I did not get it. Plates are always nice to have, but I have previous Lego. All in all it is the battery alone I want out of that lot. &lt;br /&gt;&lt;br /&gt;After consideration I am happy that Billy got what he got, but I'll stick with mine. I have a serious set that may lack a bit here and a bit there, but the girliest thing I got was manly stickers for the Lego. Billy got a surfer dude (and a girl head - why such big hair?) and some unnecessary plates and bricks. The rubber bands hardly qualify for envy. On the other hand, Billy got that &lt;i&gt;glorious&lt;/i&gt; battery (takes a 9v charger - easy to find), an extra touch sensor and the electric light and sound brick. &lt;br /&gt;&lt;br /&gt;The extra touch sensor really means nothing when you consider the intelligent brick still takes the same number of inputs - only consider this if you (a) really need two touch sensors and (b) are willing to give up one sensor in order to make room.&lt;br /&gt;&lt;br /&gt;The CD may become significant when considering that I might need drivers, or just want to make sure the thing works.&lt;br /&gt;&lt;br /&gt;In addition Billy's kit comes in a very nice case, but that hardly sways my mind. All Lego is subject to entropy, chaos always reigns the Lego bin eventually.&lt;br /&gt;&lt;br /&gt;Additional goodies to think about is the Vernier NXT Sensor adapter, infra-red link sensor, angle sensor, temperature sensor and the USB BlueTooth dongle. I would say I would prefer the base kit to the education kit, but would not argue with Santa either way if it were Christmas. It is really difficult to tell because they do not say at whom the kits are guided. I know the education is based at ages 8+, and I have a sneaky suspicion that the base kit is for 10+. &lt;br /&gt;&lt;br /&gt;I would conclude that the education kit is for school students, whereas the base kit is more for general purpose. After saying all of that I know one thing is sure: no matter what kit I buy, I'm going to be raiding the Technics stuff, and visiting a store that sells Technics soon! I still lean towards the base kit though.&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href = "http://www.peeron.com/inv/sets/8527-1"&gt;[Peeron: Lego NXT Base Set]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://www.peeron.com/inv/sets/9797-1"&gt;[Peeron: Lego NXT Education Set]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://qjaybee.googlepages.com/lego-comparison.pdf"&gt;[My compiled differences list]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://en.wikipedia.org/wiki/Lego_NXT"&gt;[Wikipedia: Lego NXT]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-571439469747631305?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/571439469747631305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=571439469747631305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/571439469747631305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/571439469747631305'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/lego-education-or-base.html' title='Lego: Education or Base?'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-9008820706369679447</id><published>2008-06-09T01:12:00.000-07:00</published><updated>2008-06-19T03:59:43.398-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Other simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='cogmation'/><title type='text'>Competitors</title><content type='html'>As someone who is simply dying to get into this field of robotics, I am keeping an eye open for robotics simulators. One I found (that can be compared to Microsoft's Robotics Development Studio) is the Cogmation Robotics suite. It works with Ageia PhsyX and has a 3-Dimensional simulation environment. The only problem is that it is R600.00za ($70.00us) more than MRDS, which is free.&lt;br /&gt;&lt;br /&gt;Other problems are supported robots, the thing about MRDS is that you can actually support your own robots. I have to say I am sticking to MRDS. I have done research previously and found a nice list of simulators for robotics, but none even come close to MRDS.&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;a href = "http://www.cogmation.com/robotSim.php"&gt;[Cogmation Robotics Suite "robotSuite"]&lt;/a&gt;&lt;br /&gt;&lt;a href = "http://www.robotcafe.com/dir/Software/Simulators/"&gt;[Simulators]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-9008820706369679447?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/9008820706369679447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=9008820706369679447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/9008820706369679447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/9008820706369679447'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/competitors.html' title='Competitors'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-2684142812735449190</id><published>2008-06-08T22:06:00.000-07:00</published><updated>2008-06-19T04:00:40.406-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSDN'/><category scheme='http://www.blogger.com/atom/ns#' term='i-sobot'/><category scheme='http://www.blogger.com/atom/ns#' term='toys'/><title type='text'>A neat toy</title><content type='html'>You have to check out the i-Sobot by Tomy! This tiny little guy has 17 servo's and is apparently remarkable! As far as I can tell he can be programmed by MRDS, but I all I have as evidence at the moment is a VSE discussion on MSDN forums. &lt;a href= "http://www.thinkgeek.com"&gt;Thinkgeek&lt;/a&gt; has stock of these little dudes and is very impressed by them.&lt;br /&gt;&lt;br /&gt;I would say that programming would be easy if you played the role of the remote control rather than the robot itself. However that becomes wildly absurd when you consider that you would need the sensor information to program autonomy into it. I'll have to do some more digging!&lt;br /&gt;&lt;br /&gt;I'm still pro-LEGO, since the robotics can be re-assembled. But the i-Sobot is definitely something I'd love to play with! Also the non-assembly feature of the i-Sobot may be better suited to beginners like me!&lt;br /&gt;&lt;br /&gt;Links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href = "http://www.isobotrobot.com/eng"&gt;[i-Sobot]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3161550&amp;SiteID=1"&gt;[MSDN Forums]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://www.thinkgeek.com/geektoys/rc/9520/"&gt;[ThinkGeek: i-SOBOT Micro Humanoid Robot]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href = "http://www.amazon.com/Tomy-7365-I-SOBOT-Robot/dp/B000US3SVA/ref=pd_bbs_sr_1?ie=UTF8&amp;s=toys-and-games&amp;qid=1212988443&amp;sr=8-1"&gt;[Amazon]&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-2684142812735449190?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/2684142812735449190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=2684142812735449190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2684142812735449190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2684142812735449190'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/neat-toy.html' title='A neat toy'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7168187275274879250</id><published>2008-06-08T05:25:00.000-07:00</published><updated>2008-06-19T04:02:49.525-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poll'/><category scheme='http://www.blogger.com/atom/ns#' term='services'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='channel 9'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='service tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='communication'/><category scheme='http://www.blogger.com/atom/ns#' term='yield return'/><category scheme='http://www.blogger.com/atom/ns#' term='message'/><category scheme='http://www.blogger.com/atom/ns#' term='push'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Services cont'd to end.</title><content type='html'>Still in chapter 2, I have discovered a semi-useful definition:&lt;br /&gt;"yield return allows [the programmer] to iterate through objects returned by a method call." (Sara Morgan)&lt;br /&gt;&lt;br /&gt;Then moving on in services, I am reminded (and feel it important to report) that in MRDS, the events that occur around the sensors are &lt;i&gt;pushed&lt;/i&gt; through the system, rather than servers having to poll sensors for state changes. This is an awesome feature in MRDS, since polling takes up considerable computation. I learned that from the first channel 9 video on MRDS.&lt;br /&gt;&lt;br /&gt;Subscriptions are the means by which services are made aware of events. There are two parties involved in a subscription: the &lt;i&gt;publisher&lt;/i&gt; and the &lt;i&gt;subscriber&lt;/i&gt;. We need to remember that only certain operations create events (&lt;i&gt;Delete&lt;/i&gt;, &lt;i&gt;drop&lt;/i&gt;, &lt;i&gt;insert&lt;/i&gt;, &lt;i&gt;replace&lt;/i&gt;, &lt;i&gt;update&lt;/i&gt; and &lt;i&gt;insert&lt;/i&gt;), whereas &lt;i&gt;Get&lt;/i&gt; and &lt;i&gt;Query&lt;/i&gt; do not.&lt;br /&gt;&lt;br /&gt;To configure a publisher:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add the SubscriptionManager service (&lt;i&gt;Using Microsoft.DSS.Services.SubscriptionManager;//some use an alias like submgr&lt;/i&gt;). This service maintains the list of subscribers and forwards the notifications to that list.&lt;/li&gt;&lt;li&gt;Create a port that acts as a partner service between the two services.&lt;/li&gt;&lt;li&gt;Create a subscribe message that supports the &lt;i&gt;SubscribeRequestType&lt;/i&gt; and &lt;i&gt;SubscribeResponseType.&lt;/i&gt;*&lt;/li&gt;&lt;li&gt;Add the message to the list of supported PortSet operations&lt;/li&gt;&lt;li&gt;A service needs to be created for the subscribe operation&lt;/li&gt;&lt;li&gt;Make sure that when the state is changed that the notifications are sent to the subscribers.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Then the subscriber needs to be configured:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Reference the proxy assembly file for the publisher service (this requires building the subscriber). Click &lt;i&gt;add reference&lt;/i&gt; and add the ___.proxy.dll file. Proxy files are the means by which services communicate.&lt;/li&gt;&lt;li&gt;Make sure that your code will always reference the correct assembly by changing the &lt;i&gt;'Copy Local'&lt;/i&gt; and &lt;i&gt;'Specific Version'&lt;/i&gt; properties to &lt;b&gt;false&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;Add a namespace {alias} declaration to the subscribers implementation class.&lt;/li&gt;&lt;li&gt;Now add the a partner declaration, similar to the one in the publisher.&lt;/li&gt;&lt;li&gt;Add code that invokes the Subscribe operation.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;I cannot stress the significance of the service tutorials enough. They really will help when you get to understanding this stuff.&lt;br /&gt;&lt;br /&gt;*I have significant evidence now to confirm that messages are in fact classes declared in the {service_name}Types.cs file, then added to the list of avalable operations in the PortSet operations. I know I'm slow... that's why the blog exists.&lt;br /&gt;&lt;br /&gt;The next chapter is the VPL. This excites me because the VPL can be used to create an environment and then edited in code. It is probably in this chapter that I will get some autonomy in some kind of robot. That's what I'm hoping for. I'm also hoping to get the Lego Mindstorms NXT at the end of the month, because I have to play around with this stuff more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7168187275274879250?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7168187275274879250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7168187275274879250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7168187275274879250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7168187275274879250'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/services-contd-to-end.html' title='Services cont&apos;d to end.'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7696448162390904525</id><published>2008-06-07T12:20:00.000-07:00</published><updated>2008-06-07T12:22:05.344-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ports'/><category scheme='http://www.blogger.com/atom/ns#' term='grammar'/><category scheme='http://www.blogger.com/atom/ns#' term='messages'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='service handler'/><category scheme='http://www.blogger.com/atom/ns#' term='CCR'/><category scheme='http://www.blogger.com/atom/ns#' term='arbiter class'/><category scheme='http://www.blogger.com/atom/ns#' term='kudos'/><category scheme='http://www.blogger.com/atom/ns#' term='operation'/><category scheme='http://www.blogger.com/atom/ns#' term='VSE'/><category scheme='http://www.blogger.com/atom/ns#' term='MSRS User Guide'/><title type='text'>State Management</title><content type='html'>This is a separate blog because I feel that internal state posting (and other state handling operations) may have significant relavance to AI programmers such as myself. Again, this is a summary for academic purposes and is taken from Sara Morgan's great book "Programming Microsoft Robotics Studio." Buy it.&lt;br /&gt;&lt;br /&gt;To post the state internally, the steps are as follows:&lt;br /&gt;1. Declare the necessary state variables for internal storage.&lt;br /&gt;2. Create an additional Port. It is a generic called Port, Sara uses a {string} example.&lt;br /&gt;3. Create a message which is derived from the &lt;i&gt;Update&lt;/i&gt; generic class. (b)This will require a new operation type and service handler (for the operation)&lt;br /&gt;4. Add the operation to the operations list in the PortSet declaration&lt;br /&gt;5. Create an exclusive message handler for the new message. (Would have to add code to poll the HTTP port for requests)&lt;br /&gt;6. In order to actually post the data, the CCR Arbiter class needs to be utilized&lt;br /&gt;&lt;br /&gt;Unfortunately Sara does not go into too much detail in describing the actual process of doing it yourself, yet. Code fragments are given, but only 3 (out of the 6 stages) and the placement is not clearly defined. As an assumption, I would say that since this is a state declaration, step one and two goes into {service_name}.cs. Since messages need to be managed, step 3 goes into {service_name}Types.cs, the same going for steps four and five since it deals with the portset operations. Finally step 6 I would guess goes in {service_name}.cs since it is associated with step 2, by means of posting data to the port. I did not attempt it as I have no idea how to poll the HTTP port just yet.&lt;br /&gt;&lt;br /&gt;I would recommend revising the service tutorials. In fact, I will be going there now. It appears in the 2008 version the tutorials are quite separate. There are two files in the "Microsoft Robotics Dev Studio 2008\documentation" folder: MsrsUserGuide.chm and VseHelp.chm. The VSE is for simulation and the user guide contains the service tutorials under Decentralized Software Services --&gt; DSS Service Tutorials. Just a note: I think it's wrong to call it DSS Service, since 'Service' is included in the acronym. Just a thought. &lt;br /&gt;&lt;br /&gt;The service tutorials are &lt;b&gt;way&lt;/b&gt; better than when I did them. Go Microsoft! But I cannot find what I am looking for (because it isn't there), so I will continue in slight ignorance and hope that a useful example will come my way when we get into it properly. I assume the most important thing here is to make note of what needs to happen. I think I should carefully indicate my concerns at this point:&lt;br /&gt;1. State variables? What state variables? An example would be much needed for the whole thing if step one is vague.&lt;br /&gt;2. Here code is given, and I can work out where that goes. But in terms of flow I am quite lost by this point.&lt;br /&gt;3. Message? Is this an HTTP or DSSP message? That would mean it goes in {service_name}Types.cs. I hope I'm right, because I assume that this message is the operation that is being spoken of in step four. The message must be a class (due to the fact that it derives), but how am I supposed to know what gets added, considering I even doubt it's position? I am right, it must be similar to the &lt;i&gt;Get&lt;/i&gt; class in {service_name}Types.cs, but after declaring &lt;b&gt; :Update &lt;/b&gt; I have no idea what values to assume for TBody and TResponse. I compared to &lt;i&gt;Get&lt;/i&gt;, but all I learned is that TBody and TRequest are "new() Update operation(s)." I assume that is where step three (b) comes in, but how am I supposed to do that?&lt;br /&gt;4. Easy, that has been covered everywhere and is very clear in the service tutorials.&lt;br /&gt;5. Polling, as I said, the HTTP port is something I still require to learn. Message handlers are covered in the service tutorials, if I am not mistaken.&lt;br /&gt;6. Covered in the book, but placement will be difficult.&lt;br /&gt;&lt;br /&gt;That said, I have thought it through and await an answer in the Next we consider state persistence using files.&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;CCR is required in order to avoid threading conflicts when handling inbound requests.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7696448162390904525?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7696448162390904525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7696448162390904525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7696448162390904525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7696448162390904525'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/state-management.html' title='State Management'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-8714024293391048583</id><published>2008-06-07T12:17:00.000-07:00</published><updated>2008-06-19T04:04:35.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='service'/><category scheme='http://www.blogger.com/atom/ns#' term='DataMember'/><category scheme='http://www.blogger.com/atom/ns#' term='state'/><category scheme='http://www.blogger.com/atom/ns#' term='yield'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='MSRS Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='assembly'/><category scheme='http://www.blogger.com/atom/ns#' term='definitions'/><category scheme='http://www.blogger.com/atom/ns#' term='dll'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='DSSP'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='namespace'/><category scheme='http://www.blogger.com/atom/ns#' term='contract'/><category scheme='http://www.blogger.com/atom/ns#' term='service handlers'/><category scheme='http://www.blogger.com/atom/ns#' term='manifest'/><category scheme='http://www.blogger.com/atom/ns#' term='Attributes'/><title type='text'>Services</title><content type='html'>Today's blog content is found in Sara Morgan's book. You ought to buy it since I can't (and won't) re-publish it here for free. Today is a summary of services. Everything here is out of that book. I really recommend you do the service tutorials - it would provide deeper understanding and insight into what is mentioned. This is a summary for academic purposes.&lt;br /&gt;&lt;br /&gt;Some terms:&lt;br /&gt;&lt;b&gt;Manifest&lt;/b&gt; - is an XML document which stores the services that are to be started.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Contract&lt;/b&gt; - Information that other DSSs need so that they may use the service. &lt;a href = "http://msdn2.microsoft.com/library/bb64876"&gt;[MORE INFORMATION]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;DSS Proxy&lt;/b&gt; - Provides stubs for communicating with the services, rather than allowing other services to directly communicate with one another&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Transform&lt;/b&gt; - The DSS proxy exposes the service contract, the transform acts between the service and the proxy, making communication possible&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Partner&lt;/b&gt; - "...represents a service that is tied to another service"&lt;br /&gt;&lt;br /&gt;And then some useful C#&lt;br /&gt;When you make a method that has the DATAMEMBER attribute, an intrinsic attribute in Microsoft.DSS.Core.Attributes.DataMember, it is indicating that that the public property must be serialized as XML.&lt;br /&gt;&lt;br /&gt;The ServicePort attribute defines the URL of the service! This is where you will be accessing the state information, so make a mental note! It is found where the _mainPort (the type of which is your operations class) is declared.&lt;br /&gt;&lt;br /&gt;I also need to learn about the yield keyword in c#. &lt;a href = "http://msdn.microsoft.com/en-us/library/9k7k7cf0(VS.80).aspx"&gt;[MSDN]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Useful tidbits&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure, in the service tutorials, that you add the name of the operation in the {service_name}Operations PortSet list. It's something I missed the first time&lt;/li&gt;&lt;li&gt;Change the prefix of the namespace. It is found in the {service_name}Types.cs and in the manifest file. It ensures successful DSS in more distributed environments.&lt;/li&gt;&lt;li&gt;The auto generated assemblies: There are three created per service: the service, proxy and transform. The naming standard is as follows: {service_name}.Y{year "yyyy"}.M{month "MM"}.{blank, "Proxy" or "Transform"}.dll&lt;/li&gt;&lt;li&gt;The ServicePort attribute defines the URL of the service (found in the {service_name}.cs file)&lt;/li&gt;&lt;li&gt;Page 29-30 Table 2-3 has the list of DSSP operations (you may write your own, but these are the povided ones)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Messages in services consist of three parts:&lt;br /&gt;1. Action - "Typically ... informs the runtime of an action to be performed." (eg. HTTP &lt;i&gt;GET&lt;/i&gt;)&lt;br /&gt;2. Body - &lt;b&gt;&lt;i&gt;"...represents the XML found in the Microsoft.ServiceModel.Dssp.GetRequestType instance."&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;3. Response port - Informs the user of where to send response messages.&lt;br /&gt;&lt;br /&gt;I am looking for the place where the ServiceHandlers are, if anyone has found them in the C# 2008 MRDS version. I would imagine it would have to be defined in the {service_name}.cs file (in the {service_name}Service class), since that is where the _state variable is declared. I inserted the code that Miss Morgan said was created by the VS Template (since I could not find it), and it worked fine. Well, fine in that no errors were thrown, I cannot say that just because no errors were thrown it actually worked...&lt;br /&gt;&lt;br /&gt;But regardless, Service Handlers' behaviour can be set to one of five settings: Concurrent (does &lt;i&gt;not&lt;/i&gt; modify state), Default (A kind of auto-detect), Exclusive (for state modification service handlers),  Independant (will execute concurrently to &lt;b&gt;all&lt;/b&gt; behaviours) or TearDown (marks the handler as a one-time operation, after which the service will be shut down).&lt;br /&gt;&lt;br /&gt;The partnerships are pretty well covered in service tutorials four and five. I was really scared to run mine, but it worked like a charm!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Extra reading:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href = "http://msdn2.microsoft.com/library/bb727264"&gt;[More information on SOAP and HTTP interacting with services]&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-8714024293391048583?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/8714024293391048583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=8714024293391048583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/8714024293391048583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/8714024293391048583'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/services.html' title='Services'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-7426632808530119292</id><published>2008-06-06T00:21:00.000-07:00</published><updated>2008-06-19T04:06:48.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sara Morgan'/><category scheme='http://www.blogger.com/atom/ns#' term='Trevor Taylor'/><category scheme='http://www.blogger.com/atom/ns#' term='Useful information'/><category scheme='http://www.blogger.com/atom/ns#' term='Books'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='MSRS Tutorials'/><category scheme='http://www.blogger.com/atom/ns#' term='Documentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Attributes'/><title type='text'>For beginners like me</title><content type='html'>Just in case you are wondering...&lt;br /&gt;&lt;br /&gt;All you need to install is the Microsoft Express Studio (or professional edition) of your choice (C#, VB .NET, Iron Python, etc.) and the Robotics Studio. Don't get bogged down downloading DirectX, XNA or Ageia Physx until you need it. You should get all you need from two (rather large) downloads.&lt;br /&gt;&lt;br /&gt;&lt;a href = "http://www.andrew.cmu.edu/course/15-491/setup.html"&gt;[Tutorial]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also I would seriously recommend getting up to date with C#. There are many important little things that really need to be considered. The smallest thing is attributes. These bad boys are used throughout the code, but are thankfully not too necessary to understand when working through the tutorials. I still haven't figured them out, but I think it's more a time issue than a lack of resource issue.&lt;br /&gt;&lt;br /&gt;Here are some sites I am reading on attributes:&lt;br /&gt;&lt;a href = "http://www.codeproject.com/KB/cs/attributes.aspx"&gt;[CODEPROJECT: Attributes in C#]&lt;/a&gt;&lt;br /&gt;&lt;a href = "http://www.csharphelp.com/archives/archive119.html"&gt;[C# HELP: Usage of Attributes in C#]&lt;/a&gt;&lt;br /&gt;&lt;a href = "http://www.c-sharpcorner.com/UploadFile/PatrickSmacchia/attributes02022006132738PM/attributes.aspx?ArticleID=ff3a7d9b-4196-4a09-938a-2189fb3c2f53"&gt;[C# CORNER: Attributes in C#]&lt;/a&gt;&lt;br /&gt;&lt;a href = "http://oreilly.com/catalog/progcsharp/chapter/ch18.html"&gt;[PROGRAMMING C#: Chapter 18]&lt;/a&gt;&lt;br /&gt;&lt;a href = "http://msdn.microsoft.com/en-us/library/z0w1kczw.aspx"&gt;[MSDN C# DEVELOPER CENTER: Attributes(C#)]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The next issue is services. I would recommend writing a service and testing it out. Especially if you use VISTA (which adds complications). Here is a tutorial that works perfectly (I wrote an SMS service in VISTA - and the tutorial is meant for XP, so it is good) &lt;a href = "http://arcanecode.wordpress.com/2007/05/21/windows-services-in-c-getting-started-part-1/"&gt;[ARCANE CODE: Windows Services in C#: Getting started]&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The tutorials. Yes. Go through them. They are useful, the service and simulation are the ones I went through. They are installed on your computer when you install the robotics studio but can be found equally easily online. One tip - be careful of names and locations. When I did the first tutorial it generated my files in a different location to what the tutorial said. So don't give up, a butterfly mist force it's way out of the cocoon, otherwise it dies.&lt;br /&gt;&lt;br /&gt;I completed all the tutorials successfully, so there is no problem there. The problem with MRDS at the moment is that there is very little documentation, but that is being rectified. Also the tutorials do not cover the much needed "Start from square one" case. That is one thing I will cover on this blog. But so far I have not come across such a tutorial.&lt;br /&gt;&lt;br /&gt;Then do some reading. That is where I am. I need to figure out attributes in C# while I do that. Currently I am reading Sara Morgan's book &lt;a href = "http://www.amazon.com/Programming-Microsoft%C2%AE-Robotics-Studio-Morgan/dp/0735624321/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1212739764&amp;sr=8-1"&gt;"Programming Microsoft® Robotics Studio"&lt;/a&gt;. I am on chapter 1 and it is choc-full of good and useful information. But get caught up with DSS and CCR, as well as DDSP. She covers them but also recommends extra study.&lt;br /&gt;&lt;br /&gt;I have had a good discussion with Trevor Talor (Author of the brand-spanking-new &lt;a href = "http://www.amazon.com/gp/product/0470141077"&gt;"Professional Microsoft® Robotics Developer Studio"&lt;/a&gt;) over at &lt;a href = "http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2404614&amp;SiteID=1"&gt;[MSDN Forums]&lt;/a&gt;. I would recommend reading the discussion, it has a few useful links and information (for example C# Express and "Start External Program").&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-7426632808530119292?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/7426632808530119292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=7426632808530119292' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7426632808530119292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/7426632808530119292'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/for-beginners-like-me.html' title='For beginners like me'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-4549344707182888061</id><published>2008-06-05T23:33:00.000-07:00</published><updated>2008-06-19T04:12:43.111-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDS'/><category scheme='http://www.blogger.com/atom/ns#' term='Masters'/><category scheme='http://www.blogger.com/atom/ns#' term='CCR'/><category scheme='http://www.blogger.com/atom/ns#' term='Lego NXT'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><title type='text'>More about me</title><content type='html'>I am currently at the end of my masters in Artificial Intelligence. When I began in Jan 2006, I really wanted to build a robot. I had a look at &lt;a href = "http://mindstorms.lego.com/eng/Japan_Osaka_Destination/Default.aspx"&gt;LEGO's Mindstorms&lt;/a&gt; but back then it was incredibly basic and fairly unheard of.&lt;br /&gt;&lt;br /&gt;So my supervisor convinced me to do simulated robotics. I had no idea what was ahead of me for the next two years. I developed a graphics engine in &lt;a href = "http://msdn.microsoft.com/en-us/directx/default.aspx"&gt;DirectX&lt;/a&gt;, but that got as far as a sky box with a floating tiger mesh.&lt;br /&gt;&lt;br /&gt;Well, it was a relief to see that Microsoft has now done all the work that I need not do. I have looked all over the show and trust me - there is one way to go, at least for now. This is free for academics, ready for rapid development (.NET framework) and is cutting edge.&lt;br /&gt;&lt;br /&gt;Anyway, my topic is, in a nutshell: Developing specialized software to enable generic intelligence objects to be embedded inside simulated robotic agents, within a multi-agent context. It gets me no where with the ladies ;P&lt;br /&gt;&lt;br /&gt;So the robots are not the most important part. However the very architecture of the MRDS is suited to my topic. The DSS and CCR runtimes both deal with distributed asynchronous objects, which I am going to apply to objects that enable intelligence. My masters is pretty large.&lt;br /&gt;&lt;br /&gt;But I am close to finishing. I have all the theory on paper and I am now beginning the practical leg. I am hoping that by learning the MRDS framework that I am opening new doors for myself academically. My hope is to open a door in my lecturing career (and possibly PhD).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-4549344707182888061?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/4549344707182888061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=4549344707182888061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/4549344707182888061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/4549344707182888061'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/more-about-me.html' title='More about me'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-336127893477976601.post-2906087202576663022</id><published>2008-06-05T22:54:00.000-07:00</published><updated>2008-06-19T04:13:28.180-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Masters'/><category scheme='http://www.blogger.com/atom/ns#' term='MRDS'/><category scheme='http://www.blogger.com/atom/ns#' term='Introduction'/><title type='text'>Welcome to robotexodus!</title><content type='html'>This blog is my journey into robotics. I am currently a Lecturer at the University of Johannesburg. I have always been involved in software development (I am finishing off a 6 month industry 'spat'), but prefer the Academic side to things.&lt;br /&gt;&lt;br /&gt;I am trying to finish off my masters in computer science. I started off with no knowledge in robotics, but thanks to &lt;a href = "http://msdn.microsoft.com/en-us/robotics/default.aspx"&gt;Microsoft's Robotics Development Studio (MRDS)&lt;/a&gt;, I will hopefully be able to finish off in style and 3D.&lt;br /&gt;&lt;br /&gt;This blog is a reference blog for those wishing to learn MRDS. I will detail my experiences (when I can), so that my mistakes need not be repeated. I also need a repository for the information I collect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/336127893477976601-2906087202576663022?l=robotexodus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robotexodus.blogspot.com/feeds/2906087202576663022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=336127893477976601&amp;postID=2906087202576663022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2906087202576663022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/336127893477976601/posts/default/2906087202576663022'/><link rel='alternate' type='text/html' href='http://robotexodus.blogspot.com/2008/06/welcome-to-readrobot.html' title='Welcome to robotexodus!'/><author><name>Quintin</name><uri>http://www.blogger.com/profile/12679191256211053171</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp2.blogger.com/_d6tTHaGEjsU/SHrfso5skKI/AAAAAAAAAHQ/7hkJ7kTtJDg/S220/scan0014.jpg'/></author><thr:total>0</thr:total></entry></feed>
