<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Robotfreak Blog &#187; MRDS</title>
	<atom:link href="http://www.robotfreak.de/blog/category/robotik/mrds/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robotfreak.de/blog</link>
	<description>Robotik, Elektronik, Arduino und mehr</description>
	<lastBuildDate>Mon, 23 Jan 2012 21:13:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Roomba 500 im MRDS Simulator</title>
		<link>http://www.robotfreak.de/blog/robotik/roomba-500-im-mrds-simulator/359</link>
		<comments>http://www.robotfreak.de/blog/robotik/roomba-500-im-mrds-simulator/359#comments</comments>
		<pubDate>Fri, 04 Jun 2010 12:06:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MRDS]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Roomba]]></category>
		<category><![CDATA[Microsoft Robotics Studio]]></category>
		<category><![CDATA[VSE]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=359</guid>
		<description><![CDATA[F&#252;r den Simulator (VSE) im Microsoft Robotics Developer Studio (MRDS) gibt es nun auch ein aktualisiertes Mesh File um einen Roomba 560 oder 625 anstelle des iRobot Create zu verwenden. Dazu mu&#223; lediglich das bestehende &#8216;iRobotCreate.bos&#8217; File ausgetauscht werden. Das physikalische Modell ist identisch, an den VSE Beispielen selbst mu&#223; nichts ge&#228;ndert werden. Google SketchUp [...]]]></description>
			<content:encoded><![CDATA[<p>F&#252;r den Simulator (VSE) im Microsoft Robotics Developer Studio (MRDS) gibt es nun auch ein aktualisiertes Mesh File um einen Roomba 560 oder 625 anstelle des iRobot Create zu verwenden. Dazu mu&#223; lediglich das bestehende &#8216;iRobotCreate.bos&#8217; File ausgetauscht werden. Das physikalische Modell ist identisch, an den VSE Beispielen selbst mu&#223; nichts ge&#228;ndert werden.<br />
<img src='http://farm5.static.flickr.com/4017/4668386061_39e7dc386e.jpg' alt='roomba560vse'/><br />
<span id="more-359"></span></p>
<h2>Google SketchUp</h2>
<p>Wie schon bei einigen anderen Modelle wurde das Roomba 500 Modell mit <a href="http://sketchup.google.com/intl/de/" class="liexternal">Google SketchUp</a> erzeugt und anschlie&#223;end mit dem <a href="http://sketchuptips.blogspot.com/2009/01/wavefront-obj-exporter-with-materials.html" class="liexternal">objconverter Plugin</a> exportiert. Das erzeugte .obj und .mtl File wird in den MRDS store/media Ordner kopiert. Anschlie&#223;end mit dem Obj2Bos Tool in das .bos Format konvertiert. </p>
<p>Leider entspricht das exportierte Modell nicht zu 100% dem SketchUp File. Es fehlt das iRobot Logo und die Beschriftung der Tasten ist spiegelverkehrt.</p>
<p><img src='http://farm5.static.flickr.com/4045/4668372009_c11356bc7e.jpg' alt='roomba560'/></p>
<p><img src='http://farm5.static.flickr.com/4023/4668371991_563cd63af0.jpg' alt='roomba625'/></p>
<p>Zwar erlaubt die SketchUp Version 7 den Export ins Collada Format. Das scheint aber nicht zu funktionierten. Zumal das Collada Format eher f&#252;r Landschaften und Umgebungs Bilder gedacht ist, weniger f&#252;r Roboter Modelle. </p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://sketchup.google.com/3dwarehouse/search?uq=15151886031596908117&#038;styp=c&#038;scoring=m" class="liexternal">Roomba Modelle in Google SketchUp</a></li>
<li><a href="http://www.flickr.com/photos/hmblgrmpf/sets/72157623882897143/" class="liexternal">Roomba Fotoalbum auf Flickr</a></li>
<li><a href="http://robotfreak.googlecode.com/files/roomba-media.zip" class="lizip">Roomba 560/625 Media Files</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/roomba-500-im-mrds-simulator/359/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roomba 500 und das Microsoft Robotics Developer Studio</title>
		<link>http://www.robotfreak.de/blog/robotik/roomba-500-und-das-microsoft-robotics-developer-studio/346</link>
		<comments>http://www.robotfreak.de/blog/robotik/roomba-500-und-das-microsoft-robotics-developer-studio/346#comments</comments>
		<pubDate>Wed, 26 May 2010 20:10:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MRDS]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Roomba]]></category>
		<category><![CDATA[Microsoft Robotics Studio]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=346</guid>
		<description><![CDATA[Die iRobot Roomba/Create Reihe wird seit Anbeginn vom Microsoft Robotics Developer Studio (MRDS) unterst&#252;tzt. Leider werden die neueren Modelle der 500 Serie nur unzureichend unterst&#252;tzt, besser gesagt es werden nur die gemeinsamen Features zwischen Create und Roomba500 unterst&#252;tzt. Zwar gibt es eine Portierung f&#252;r die Roomba 500 Reihe, allerdings nur f&#252;r MRDS V1.5. Inzwischen gibt [...]]]></description>
			<content:encoded><![CDATA[<p>Die <a href="http://www.irobot.de" class="liexternal">iRobot</a> Roomba/Create Reihe wird seit Anbeginn vom <a href="http://www.micosoft.com/robotics" class="liexternal">Microsoft Robotics Developer Studio</a> (MRDS) unterst&#252;tzt. Leider werden die neueren Modelle der 500 Serie nur unzureichend unterst&#252;tzt, besser gesagt es werden nur die gemeinsamen Features zwischen Create und Roomba500 unterst&#252;tzt. Zwar gibt es eine Portierung f&#252;r die Roomba 500 Reihe, allerdings nur f&#252;r MRDS V1.5. Inzwischen gibt es MRDS 2008 R3. Zudem bietet Microsoft das Developer Studio in der Vollversion zum Nulltarif an. Genug Gr&#252;nde, um sich an einer Portierung auf die aktuelle Version zu versuchen.<br />
<span id="more-346"></span><br />
Die Portierung befindet sich noch im Experimental Stadium. Da die SCI Schnittstelle bei meinem Roomba weiterhin defekt ist, kann ich die Software auch nicht testen (neues Mainboard aus USA ist unterwegs).<br />
Beim Start der TestRoomba500 Applikation sollte sich ein Windows Form &#246;ffnen. Bei jedem Druck auf die Clean Taste des Roombas, sollte in dieser Form dann ein neuer Befehl des Roomba 500 angezeigt und durchgef&#252;hrt werden.<br />
Im Control Panel erscheint als neues iRobot Modell der Roomba500.<br />
<img src='http://farm4.static.flickr.com/3350/4642441265_96053bbeda.jpg' alt='testroomba500-2'/><br />
Die erweiterten Sensoren des Roomba 500 findet man am Ende der Seite.<br />
<img src='http://farm5.static.flickr.com/4038/4643054068_0177fa5e1c.jpg' alt='testroomba500-3'/></p>
<h2>Bekannte Probleme</h2>
<p>Beim 1. Ausf&#252;hren des BuildRoomba.cmd Scripts gibt es Fehlermeldungen (Fehlt ein Assembly Verweis). Das liegt daran, das das TestRoomba500 Programm DLLs verwendet, die gerade erst erzeugt wurden. Evtl hilft ein erneutes Compilieren, Ansonsten die beiden User.iRobot DLL&#8217;s in Visual Studio von Hand neu einbinden (unter References bzw. Verweise).<br />
<img src='http://farm4.static.flickr.com/3359/4642441209_39e7965dff.jpg' alt='testroomba500-1'/></p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://robotfreak.googlecode.com/files/Roomba500_v301.zip" class="lizip">Roomba 500 Sources f&#252;r MRDS 2008 R3</a></li>
<li><a href="http://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf" class="lipdf">Roomba 500 OI Specification</a></li>
<li><a href="http://www.roboternetz.de/phpBB2/viewtopic.php?t=54316" class="liexternal">Roboternetz Thread zum Roomba 500 und MRDS</a></li>
<li><a href="http://channel9.msdn.com/playground/Sandbox/414590-Roomba-500-series-robots-in-Microsoft-Robotics-Studio/" class="liexternal">Channel9 Original Roomba 500 Sources f&#252;r MRDS 1.5</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/roomba-500-und-das-microsoft-robotics-developer-studio/346/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D Roboter Modelle in Microsoft RDS importieren</title>
		<link>http://www.robotfreak.de/blog/robotik/3d-roboter-modelle-in-microsoft-rds-importieren/82</link>
		<comments>http://www.robotfreak.de/blog/robotik/3d-roboter-modelle-in-microsoft-rds-importieren/82#comments</comments>
		<pubDate>Fri, 20 Feb 2009 22:38:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MRDS]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Asuro]]></category>
		<category><![CDATA[Google SketchUp]]></category>
		<category><![CDATA[Microsoft Robotics Studio]]></category>
		<category><![CDATA[Simulation]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[VSE]]></category>

		<guid isPermaLink="false">http://www.robotfreak.de/blog/?p=82</guid>
		<description><![CDATA[Die Erstellung von 3D Roboter Modellen  wurde bereits im Google SketchUp Tutorial beschrieben. Heute geht es nun darum, wie man diese Modelle von SketchUp aus exportiert und in das Microsoft Robotics Developer Studio (MRDS) importiert, damit sie korrekt im MRDS Simulator (VSE) dargestellt werden. Was wird ben&#246;tigt? Microsoft Visual C# 2008 Express Edition Microsoft Robotics [...]]]></description>
			<content:encoded><![CDATA[<p>Die Erstellung von 3D Roboter Modellen  wurde bereits im <a href="http://www.robotfreak.de/blog/robotik/google-sketchup-robotik-tutorial/52" class="liinternal">Google SketchUp Tutorial</a> beschrieben. Heute geht es nun darum, wie man diese Modelle von SketchUp aus exportiert und in das Microsoft Robotics Developer Studio (MRDS) importiert, damit sie korrekt im MRDS Simulator (VSE) dargestellt werden.</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3288812984/" class="flickr-image alignnone" title="RobotNo1 im VSE (visual mode)"><img src="http://farm4.static.flickr.com/3647/3288812984_08c8b322a6.jpg" alt="RobotNo1 im VSE (visual mode)" /></a></p>
<p><span id="more-82"></span></p>
<h2>Was wird ben&#246;tigt?</h2>
<ul>
<li><a href="http://www.microsoft.com/germany/express/product/visualcsharpexpress.aspx" class="liexternal">Microsoft Visual C# 2008 Express Edition</a></li>
<li><a href="http://go.microsoft.com/fwlink/?LinkID=134518" class="liexternal">Microsoft Robotics Developer Studio 2008 Express Edition</a></li>
<li><a href="http://sketchup.google.com/intl/de/" title="Google SketchUp" class="liexternal">Google SketchUp</a></li>
<li><a href="http://sketchuptips.blogspot.com/2009/01/wavefront-obj-exporter-with-materials.html" title="Wavefront obj Exporter script" class="liexternal">SketchUp Object Exporter Skript</a></li>
</ul>
<h2>Export aus Google SketchUp</h2>
<h3>Erste Fehlschl&#228;ge</h3>
<p>Es gabe einige Fehlschl&#228;ge bereits beim Export von Google SketchUp. Die kostenlose  Google SU Version bietet als Export Format nur das .kmz Format f&#252;r Google Earth Version 3 bzw. 4 an. F&#252;r die meisten Versuche wurde zudem noch <a href="http://www.blender.org" class="liexternal">Blender</a> ben&#246;tigt, da von SU aus &#252;ber ein drittes Format exportiert wurde, das dann zun&#228;chst in Blender importiert und anschlie&#223;end im .obj Format exportiert wurde.</p>
<p>1.Versuch mit dem <a href="http://sketchuptips.blogspot.com/2007/01/wavefront-obj-exporter.html" class="liexternal">obj_export SketchUp Plugin</a>. Das Modell ist viel zu gro&#223; und mu&#223; erst m&#252;hsam in Blender skaliert werden. Au&#223;erdem fehlen alle Farben und Texturen, da kein .mtl File erzeugt wird. <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>2. Versuch mit dem <a href="http://www.katsbits.com/htm/tutorials/sketchup_converting_import_kmz_blender.htm" class="liexternal">Collada V1.4 Import von Blender</a>. Das Google Earth V4 Format ist nichts anderes als ein gezipptes Collada File. Also einfach .kmz File in .zip File umbenennen und das Archiv extrahieren. Dann von Blender aus Import (als Collada V1.4) das .dae File ausw&#228;hlen. Auch hier stimmen die Dimensionen nicht und das Modell mu&#223; etliche Male herunterskaliert werden.</p>
<p>3. Versuch. F&#252;r das Google Earth 3 Format gibt es das <a href="http://jmsoler.free.fr/didacticiel/blender/tutor/py_import_kml-kmz_en.htm" class="liexternal">kmz/kml Python Blender Plugin</a>. Der Import funktioniert zwar inklusive Texturen und korrekten Dimensionen des Modells. Aber beim Export von Blender, gehen dann bei komplexen Modellen viele Fl&#228;chen verloren.</p>
<h3>Der Durchbruch</h3>
<p>Der Durchbruch gelang erst mit dem <a href="http://sketchuptips.blogspot.com/2009/01/wavefront-obj-exporter-with-materials.html" class="liexternal">Object Export Skript</a> von Marten van der Honing . Damit klappt es endlich. Sowohl die Dimensionen des Modells und auch die Materialien werden korrekt exportiert. Vor allem aber wird kein Blender Programm mehr als Zwischenstufe ben&#246;tigt. Das spart Zeit und Nerven. Einzig die korrekte Ausrichtung der Modelle vor dem Export mu&#223; man beachten, dann klappt der Import ins MRDS ohne Probleme. <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Chassis und R&#228;der getrennt exportieren</h3>
<p>Da sich in der Simulationsumgebung von MRDS die R&#228;der des Modells auch drehen sollen, m&#252;ssen die R&#228;der getrennt vom Chassis exportiert werden. Dabei gen&#252;gt es, ein einzelnes  Rad zu exportieren. Das MRDS f&#252;gt dann 2 R&#228;der bei einem 2-Rad Roboter ein. Das Chassis wird dann ohne R&#228;der exportiert. Vor dem Export m&#252;ssen die Modelle in SU korrekt  auf den 3 Achsen ausgerichtet werden. Das Chassis mu&#223; dazu folgenderma&#223;en ausgerichtet werden:</p>
<ul>
<li> durch den Mittelpunkt des Chassis geht die blaue Achse.</li>
<li>die  Front des Modells zeigt nach vorne</li>
<li>Das St&#252;tzrad ber&#252;hrt die gr&#252;ne Achse.</li>
</ul>
<p>So sollte das dann aussehen:</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3287996079/" class="flickr-image alignnone" title="RobotNo1 Chassis in Google SketchUp"><img src="http://farm4.static.flickr.com/3358/3287996079_b80aac2112.jpg" alt="RobotNo1 Chassis in Google SketchUp" /></a></p>
<p>F&#252;r die Antriebsr&#228;der gelten folgende Vorgaben:</p>
<ul>
<li>Der 0-Punkt liegt auf der Innenseite des Rades</li>
<li> Die rote Achse geht durch die Mitte des Rades</li>
<li>Die gr&#252;ne und blaue Achse ber&#252;hren die Innenseite des Rades.</li>
</ul>
<p>Ein Bild sagt mehr als 1000 Worte:</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3288812780/" class="flickr-image alignnone" title="RobotNo1 Rad in Google SketchUp"><img src="http://farm4.static.flickr.com/3516/3288812780_8b793bc6fa.jpg" alt="RobotNo1 Rad in Google SketchUp" /></a></p>
<p><strong>Hinweis:</strong> Es klappt nicht, wenn man die Achsen selbst an das Modell anpa&#223;t (mit dem <img class="alignnone size-full wp-image-102" title="achse1" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/achse1.jpg" alt="achse1" width="25" height="30" /> Symbol). Man mu&#223; schon das Modell selbst verschieben.</p>
<h3>Export Einstellungen</h3>
<p>Nachdem man das  <a href="http://sketchuptips.blogspot.com/2009/01/wavefront-obj-exporter-with-materials.html" class="liexternal">Object Export Skript</a>in das Google SU plugins Verzeichnis kopiert hat, findet man nach einem SU Neustart im Men&#252; unter Plugins den Eintrag Obj Exporter&#8230; Klickt man auf diesen Men&#252;punkt erscheint der folgende Dialog:</p>
<p><img class="alignnone size-medium wp-image-103" title="objexporterdialog" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/objexporterdialog-300x300.jpg" alt="objexporterdialog" width="300" height="300" /></p>
<p>Dort klickt man lediglich noch die beiden Optionen &#8216;Export front faces&#8217; und Export back faces&#8217; an und anschlie&#223;end den Export .obj File Button.  Bei komplexen Modellen dauert es schon ein Min&#252;tchen, bis das .obj File und .mtl File erzeugt werden.</p>
<h2>Import ins Microsoft Robotics Studio</h2>
<p>Der Import des 3D Modells geschieht &#252;ber das Kommandozeilen Tool obj2bos.exe. MRDS kann zwar auch das .obj Format direkt importieren, aus Performance Gr&#252;nden wird aber das hauseigene .bos Format empfohlen. Die zu importierenden Dateien, das .obj File und das .mtl File werden zun&#228;chst in den MRDS Unterordner store/media kopiert. Den obj2bos Konverter starte man vom DSS-Comand Prompt aus mit der folgenden Befehlszeile:</p>
<pre>obj2bos.exe /infile:.\store\media\RobotNo1Chassis.obj</pre>
<p>Das selbe wiederholt man f&#252;r das Rad:</p>
<pre>obj2bos.exe /infile:.\store\media\RobotNo1Wheel.obj</pre>
<h3>Anpassungen im Projekt</h3>
<p>Als Vorlage f&#252;r das Simulations Projekt wird das <a href="http://msdn.microsoft.com/de-de/magazine/cc546547.aspx" class="liexternal">MRDS Simulator Tutorial von Sara Morgan</a> aus dem MSDN Magazin verwendet. Urspr&#252;nglich wurde das Tutorial  f&#252;r den Boe-Bot von Parallax geschrieben. Ich habe es nur f&#252;r meinen RobotNo1 Roboter entsprechend dem Tutorial angepa&#223;t und neu aufgebaut. Auf das Tutorial werde ich hier nur kurz eingehen. 2 Dinge sind mir beim Nachbau aufgefallen:</p>
<p>1. Sobald man ein neues Projekt (Vorlage &#8216;DSS Service 2.0&#8242;) erstellt hat, sollte man als erstes unter Einstellungen den Referenz Pfad zum MRDS bin Ordner hinzuf&#252;gen und alle eigenen Projekte in einem neu erstellten Verzeichnis im MRDS Root Ordner ablegen. Bei Visual Studio Express kann man dan Pfad erst angeben, wenn man das Projekt speichert.</p>
<p><img class="alignnone size-full wp-image-105" title="projectpath" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/projectpath.jpg" alt="projectpath" width="563" height="386" /><span id="__caret">_</span></p>
<p>2. Man mu&#223; noch einige Referenzen (rechter Mausklick auf &#8216;References&#8217; im Solution Explorer) von Hand dem Projekt hinzuf&#252;gen, damit es sich korrekt &#252;bersetzen l&#228;&#223;t. Das folgende Bild zeigt dies:</p>
<p><img class="alignnone size-full wp-image-104" title="references" src="http://www.robotfreak.de/blog/wp-content/uploads/2009/02/references.jpg" alt="references" width="371" height="407" /></p>
<p>Am Programmcode selbst wurden nur einige kleinere &#196;nderungen gemacht, damit das 3D-Modell des RobotNo1 den Boe-Bot ersetzt. Da der Simulator eine Physik Engine (Ageia PhysX) besitzt, m&#252;ssen im Programm zudem die physikalischen Gr&#246;&#223;en (Gewicht, Abmessungen, Postition der Antriebsr&#228;der und des St&#252;tzrades) an das eigene Modell angepasst werden.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">MASS <span style="color: #008000;">=</span> 0<span style="color: #008000;">.</span>454f<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//in kilograms  (around 1 pound)</span>
<span style="color: #008080; font-style: italic;">// the default settings approximate the BoeBot chassis</span>
CHASSIS_DIMENSIONS <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Vector3<span style="color: #008000;">&#40;</span>0<span style="color: #008000;">.</span>10f, <span style="color: #008080; font-style: italic;">//meters wide</span>
0<span style="color: #008000;">.</span>05f,  <span style="color: #008080; font-style: italic;">//meters high</span>
0<span style="color: #008000;">.</span>16f<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//meters long</span>
FRONT_WHEEL_MASS <span style="color: #008000;">=</span> 0<span style="color: #008000;">.</span>01f<span style="color: #008000;">;</span>
CHASSIS_CLEARANCE <span style="color: #008000;">=</span> 0<span style="color: #008000;">.</span>020f<span style="color: #008000;">;</span>
FRONT_WHEEL_RADIUS <span style="color: #008000;">=</span> 0<span style="color: #008000;">.</span>034f<span style="color: #008000;">;</span>
CASTER_WHEEL_RADIUS <span style="color: #008000;">=</span> 0<span style="color: #008000;">.</span>010f<span style="color: #008000;">;</span>
FRONT_WHEEL_WIDTH <span style="color: #008000;">=</span> 0<span style="color: #008000;">.</span>007f<span style="color: #008000;">;</span>
CASTER_WHEEL_WIDTH <span style="color: #008000;">=</span> 0<span style="color: #008000;">.</span>008f<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//not currently used, but dim is accurate</span>
FRONT_AXLE_DEPTH_OFFSET <span style="color: #008000;">=</span> <span style="color: #008000;">-</span>0<span style="color: #008000;">.</span>02f<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// distance of the axle from the center of robot</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">base</span><span style="color: #008000;">.</span><span style="color: #0000FF;">State</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Name</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;RobotNo1&quot;</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">base</span><span style="color: #008000;">.</span><span style="color: #0000FF;">State</span><span style="color: #008000;">.</span><span style="color: #0000FF;">MassDensity</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Mass</span> <span style="color: #008000;">=</span> MASS<span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">base</span><span style="color: #008000;">.</span><span style="color: #0000FF;">State</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Pose</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Position</span> <span style="color: #008000;">=</span> initialPos<span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">base</span><span style="color: #008000;">.</span><span style="color: #0000FF;">State</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Assets</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Mesh</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;RobotNo1Chassis.bos&quot;</span><span style="color: #008000;">;</span>
<span style="color: #0600FF; font-weight: bold;">base</span><span style="color: #008000;">.</span><span style="color: #0000FF;">WheelMesh</span> <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;RobotNo1Wheel.bos&quot;</span><span style="color: #008000;">;</span></pre></div></div>

<h3>Visual Studio und VSE</h3>
<p>Danach kann man das Programm im VisualStudio neu &#252;bersetzt und falls keine Fehler entdeckt wurden, gestartet werden. Nach einer kleinen Weile erscheinen dann zun&#228;chst die DSS Host Console, dann das Simple Dashboard und schlie&#223;lich die Simulation (VSE Visual Simulation Environment) selbst. Dort sollte dann unser Modell und ein W&#252;rfel erscheinen. Mit der Maus und den Cursor Tasten der Tastatur kann man die Position der Kamera ver&#228;ndern. Die Darstellung des Modells kann man im Men&#252;punkt &#8216;Render&#8217; umschalten zwischen:</p>
<ul>
<li>&#8216;Visual&#8217; di f&#252;r uns Menschen normale Sichtweise mit Textturen Licht und Schatten</li>
<li>&#8216;WireFrame&#8217;, die Darstellung der Modelle als Drahtgitter</li>
<li>&#8216;Physics&#8217;, so, wie es der Computer sieht. Simple K&#246;rper mit Masse und Schwerpunkt</li>
<li>&#8216;Combined. Die Kombination zwischen Visual und Physics. Damit kann man kontrollieren, wie genau das gezeichnete Modell mit den Einstellungen im Programm &#252;bereinstimmt.</li>
</ul>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3288812894/" class="flickr-image alignnone" title="RobotNo1 im VSE"><img src="http://farm4.static.flickr.com/3344/3288812894_661481a6ff.jpg" alt="RobotNo1 im VSE" /></a></p>
<h3>Dashboard</h3>
<p>Steuern l&#228;&#223;t sich unser Modell &#252;ber das Dashboard. Dazu mu&#223; man:</p>
<ul>
<li>Verbindung zum VSE aufnehmen durch Eingabe von &#8217;50001&#8242; im Port Editierfeld.</li>
<li>Doppelklick auf den Service &#8216;[SimulatedRobotNo1]&#8230;&#8217;</li>
<li>Klick auf &#8216;Drive&#8217;</li>
<li>jetzt sollte sich der Roboter durch klicken und Ziehen an der Kugel in alle Richtungen bewegen lassen</li>
</ul>
<p>Alle Dashboard Einstellungen nochmal im Bild:</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3287996883/" class="flickr-image alignnone" title="MRDS Dashboard"><img src="http://farm4.static.flickr.com/3383/3287996883_7a5b7cdd9a.jpg" alt="MRDS Dashboard" /></a></p>
<p>auch ein virtueller Asuro tummelt sich bereits im MRDS Simulator.</p>
<p><a href="http://www.flickr.com/photos/hmblgrmpf/3287995647/" class="flickr-image alignnone" title="Asuro im VSE"><img src="http://farm4.static.flickr.com/3265/3287995647_56bf3b7c1b.jpg" alt="Asuro im VSE" /></a></p>
<p>das vollst&#228;ndige Projekt gibt es <a href="http://robotfreak.googlecode.com/files/RobotFreak.zip" class="lizip">hier</a> zum download. Das .zip Archiv wird einfach in den MRDS Ordner entpackt. Im Unterordner RobotFreak gibt es die beiden Projekte SimulatedAsuro und SimulatedRobotNo1. Bevor man selbst versucht, die Projekte zu &#252;bersetzen, mu&#223; das &#8216;setup.cmd&#8217; Script vom DSS Command Prompt gestartet werden. Damit werden die absoluten Pfadangaben in den Projekten an die lokalen Einstellungen angepasst.</p>
<h2>Wie geht es weiter?</h2>
<p>Zun&#228;chst werde ich mich n&#228;her mit der visuellen Programmiersprache VPL befassen. Das verspricht doch schnellere Erfolge, anstelle den virtuellen Roboter in C# zu coden.  Mit VPL lassen sich recht einfach Roboter Verhaltensprogramme realisieren.</p>
<p>Derzeit sind die Modelle noch blind wie die Maulw&#252;rfe, d.h. sie verf&#252;gen noch nicht &#252;ber irgendwelche Sensoren. Die m&#252;ssen ebenso simuliert werden, damit der Roboter nicht st&#228;ndig gegen irgendwelche virtuellen Hindernisse st&#246;sst. <img src='http://www.robotfreak.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Das Endziel wird ein selbst gebauter Roboter sein, der sich &#252;ber MRDS steuern l&#228;&#223;t. Dazu mu&#223; auf dem Roboter selbst kein Windows laufen. Allerdings funktioniert so ein Roboter nur dann, wenn ein Windows PC mitl&#228;uft. Denn nur auf dem Windows PC l&#228;uft das eigentliche Steuerprogramm.</p>
<h2>Weblinks</h2>
<ul>
<li><a href="http://msdn.microsoft.com/de-de/magazine/cc546547.aspx" class="liexternal">MRDS Simulator Tutorial von Sara Morgan</a></li>
<li><a href="http://robotfreak.googlecode.com/files/RobotFreak.zip" class="lizip">C# Projekte und SketchUp Files f&#252;r dieses Tutorials</a></li>
<li><a href="http://www.promrds.com" class="liexternal">ProMRDS </a>- das Standard Buch zum MRDS. Viele Tutorials und Programmierbeispiele online verf&#252;gbar</li>
<li><a href="http://social.msdn.microsoft.com/Forums/en-US/category/robotics/" class="liexternal">Microsoft Robotik Forum</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robotfreak.de/blog/robotik/3d-roboter-modelle-in-microsoft-rds-importieren/82/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

