<?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>Michele Manzotti &#187; robotics</title>
	<atom:link href="http://www.manzotti.eu/tag/robotics/feed" rel="self" type="application/rss+xml" />
	<link>http://www.manzotti.eu</link>
	<description></description>
	<lastBuildDate>Thu, 19 Jan 2012 09:56:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Microsoft Robitics Devoloper Studio</title>
		<link>http://www.manzotti.eu/microsoft-robitics-devoloper-studio</link>
		<comments>http://www.manzotti.eu/microsoft-robitics-devoloper-studio#comments</comments>
		<pubDate>Mon, 28 Jun 2010 16:00:48 +0000</pubDate>
		<dc:creator>manzotti.eu</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[accademic]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[edition]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[robotics]]></category>
		<category><![CDATA[spl]]></category>
		<category><![CDATA[studio]]></category>
		<category><![CDATA[vpl]]></category>

		<guid isPermaLink="false">http://manzotti.eu/?p=1613</guid>
		<description><![CDATA[All&#8217;inizio di dicembre ci era stato assegnato all&#8217;università un progetto sul controllo cinematico inverso da implementare mediante la piattaforma Microsoft Robotics Devoloper Studio. L&#8217;algoritmo in sè non sembrava essere particolarmente difficile da implementare: si trattava solamente di far seguire una traiettoria al robot e controllare ad ogni instante se la posizione corrente fosse corretta. In [...]]]></description>
			<content:encoded><![CDATA[<p>All&#8217;inizio di dicembre ci era stato assegnato all&#8217;università un progetto sul <strong>controllo cinematico inverso</strong> da implementare mediante la piattaforma <a href="http://msdn.microsoft.com/en-us/robotics/default.aspx"><strong>Microsoft Robotics Devoloper Studio</strong></a>.</p>
<p><a href="http://manzotti.eu/wp-content/uploads/2010/06/4406514585_d096398c02_m.jpg"><img src="http://manzotti.eu/wp-content/uploads/2010/06/4406514585_d096398c02_m.jpg" alt="" title="4406514585_d096398c02_m" width="240" height="189" class="aligncenter size-full wp-image-1703" /></a></p>
<p>L&#8217;algoritmo in sè non sembrava essere particolarmente difficile da implementare: si trattava solamente di far seguire una traiettoria al robot e controllare ad ogni instante se la posizione corrente fosse corretta. In caso positivo procedeva con la coordinata successiva, altrimenti in caso negativo effettuava la controreazione ovvero calcolava la differenza fra la posizione desiderata e quella corrente correggendo così la traiettoria.</p>
<p>Il problema principale è stato quello di far funzionare <strong>MRDS</strong> secondo le nostre esigenze. Inizio con il dire che la versione con la quale ho lavorato si tratta della <strong>MRDS 2008 R2 Accademic Edition</strong> presa direttamente dal <strong>MSDN</strong> dell&#8217;università. Tuttavia esiste anche una <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&#038;FamilyID=f9d8ddca-ab60-4c62-9770-2aaa87dfd01e"><strong>versione freeware</strong></a>, che però non ho mai testato.</p>
<p>Una volta installato l&#8217;eseguibile vi sono diverse modalità di sviluppo:</p>
<ul>
<li>VPL</li>
<li>C#</li>
<li>C++</li>
<li>VB.NET</li>
<li>Python</li>
</ul>
<p><strong>VPL</strong><br />
Inizialmente pensavamo di sviluppare il tutto tramite il linguaggio VPL, un linguaggio visuale che permette di programmare con dei blocchetti. La scelta di iniziare per questa via era stata dettata dal fatto che gli esempi in simulazione funzionavano correttamente, e per dei neofiti come noi sembrava un&#8217;ottima alternativa per incominciare a giocarci un po&#8217;. Tuttavia mi resi subito conto di due grosse problematiche:</p>
<p>+ la gestione degli array risultava improponibile;<br />
+ la localizzazione del robot ad ogni instante.</p>
<p><strong>C#</strong><br />
Pensammo così di iniziare a programmare in C# in modo da risolvere agevolmente il primo punto: quello degli array. Rimaneva però il problema della localizzazione del robot. Un punto molto difficile da risolvere poichè i robot testati non avevano alcun sensore che permettesse la localizzazione. Tra l&#8217;altro non vi era nessun esempio di quelli presenti con l&#8217;installazione che funzionasse. L&#8217;ambiente di simulazione non veniva creato e il run terminava con una bella serie di errori. Questo non ci ha permesso di capire le dinamiche che stanno alla base MRDS: la difficoltà stava nel capire come poter interagire con il robot e sopratutto come poter utilizzare servizi come il bumper, o il gps.</p>
<p><strong>SPL</strong><br />
La soluzione è arrivata grazie a <a href="http://www.helloapps.com/">SPL</a> il quale non è un linguaggio di programmazione ma bensì una estensione per MRDS che consente di scriptare il codice. In questo modo siamo riusciti a creare gli array necessari e soprattutto localizzare la posizione corrente del robot. Dopo aver inizializzato la traiettoria è stato così possibile risolvere l&#8217;algoritmo richiesto.</p>
<p>Vi lascio con i <a href="http://manzotti.eu/wp-content/uploads/2010/06/Progetto.zip">sorgenti del progetto</a> semmai potesse servire a qualcuno.</p>
<p>A presto!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manzotti.eu/microsoft-robitics-devoloper-studio/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

