<?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>Abhinav Sood</title>
	<atom:link href="http://www.abhinavsood.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.abhinavsood.com</link>
	<description>Thinking Chamber</description>
	<lastBuildDate>Thu, 12 Jan 2012 20:48:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Humanoid Robot NAO performing Sun Salutation</title>
		<link>http://www.abhinavsood.com/2012/01/13/nao-humanoid-robot-surya-namaskar/</link>
		<comments>http://www.abhinavsood.com/2012/01/13/nao-humanoid-robot-surya-namaskar/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 20:48:31 +0000</pubDate>
		<dc:creator>Abhinav Sood</dc:creator>
				<category><![CDATA[Humanoid Robot]]></category>

		<guid isPermaLink="false">http://www.abhinavsood.com/?p=19</guid>
		<description><![CDATA[I had the opportunity to implement the Human Robot Interaction module on the NAO Humanoid Robot during my internship at Gade Autonomous Systems Private Limited in Hyderabad recently. As a part of it, I programmed the NAO humanoid robot to &#8230; <a href="http://www.abhinavsood.com/2012/01/13/nao-humanoid-robot-surya-namaskar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I had the opportunity to implement the Human Robot Interaction module on the NAO Humanoid Robot during my internship at Gade Autonomous Systems Private Limited in Hyderabad recently. As a part of it, I programmed the NAO humanoid robot to perform the <a title="Surya Namaskar" href="http://en.wikipedia.org/wiki/Surya_Namaskara" target="_blank">Surya Namaskar</a>, the traditional Indian practice of Sun salutation. The video is a bit shaky in the start but gets better in a few seconds. Watch it <a title="Humanoid Robot NAO performing Surya Namaskar" href="http://youtu.be/lW7kOrFa_8E" target="_blank">here</a>.</p>
<p><iframe width="480" height="360" src="http://www.youtube.com/embed/lW7kOrFa_8E" frameborder="0" allowfullscreen></iframe></p>
<p>The development environment used was <a title="Choreographe Suite" href="http://www.aldebaran-robotics.com/en/Discover-NAO/Software/choregraphe.html" target="_blank">Choreographe</a> by Aldebaran Robotics running on Ubuntu 11.10. Python was the primary programming language used. The behavior was simulated on <a title="NAOsim Simulator" href="http://www.aldebaran-robotics.com/en/Discover-NAO/Software/NAOsim.html" target="_blank">NAOsim</a> powered by Cogmation Robotics running remotely on a Windows 7 machine. The development of this behavior deliberately utilized all 3 methods that enable one to integrate motion into a behavior</p>
<ol>
<li>Using the Timeline Editor</li>
<li>Using the Recording Mode</li>
<li>Using the Motion API (ALMotion)</li>
</ol>
<p>Each of these methods have their own ups and downs. For example programming in the actuator position values using the Motion API gives you unparalleled precision but at the same time it is time consuming. The timeline panel or the motion editor as it maybe called lets you define frames and animations or behaviors in those frames in a snap. In the recording mode, you can manually move NAO&#8217;s body to a specific pose and record the actuator position values.</p>
<p style="text-align: center;"><a href="http://www.abhinavsood.com/wp-content/uploads/2012/01/naodevprog03.jpg"><img class="size-full wp-image-20 aligncenter" title="naodevprog03" src="http://www.abhinavsood.com/wp-content/uploads/2012/01/naodevprog03.jpg" alt="" width="476" height="224" /></a></p>
<p style="text-align: center;"><a href="http://www.abhinavsood.com/wp-content/uploads/2012/01/naodevprog04.jpg"><img class="size-full wp-image-21 aligncenter" title="naodevprog04" src="http://www.abhinavsood.com/wp-content/uploads/2012/01/naodevprog04.jpg" alt="" width="476" height="224" /></a></p>
<p>The experience in building this behavior for NAO humanoid robot gave valuable learning as to how the simulator NAOsim tightly interfaced with the development suite Choreographe and Telepathe to allow for testing behaviors in a virtual world with real physics before playing it on NAO in the real world. Development, in particular, improved the understanding of synchronous and asynchronous flows while programming using the APIs as well as using the box-based GUI.</p>
<p>The inspiration for building this particular behavior came from observing the locals performing their religious practices while I stayed there and ideas from my dad and (the founder) Sasi Gade&#8217;s mom.</p>
<div id="attachment_22" class="wp-caption aligncenter" style="width: 570px"><a href="http://www.abhinavsood.com/wp-content/uploads/2012/01/289878_234178159986874_110819962322695_590433_759608238_o.jpg"><img class="size-large wp-image-22 " title="289878_234178159986874_110819962322695_590433_759608238_o" src="http://www.abhinavsood.com/wp-content/uploads/2012/01/289878_234178159986874_110819962322695_590433_759608238_o-1024x768.jpg" alt="" width="560" height="420" /></a><p class="wp-caption-text">Me, teaching Surya Namaskar to NAO Humanoid Robot</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.abhinavsood.com/2012/01/13/nao-humanoid-robot-surya-namaskar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>pyblobs with OpenCV 2.1 on Ubuntu 11.10</title>
		<link>http://www.abhinavsood.com/2011/12/07/pyblobs-with-opencv21-ubuntu/</link>
		<comments>http://www.abhinavsood.com/2011/12/07/pyblobs-with-opencv21-ubuntu/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 08:08:49 +0000</pubDate>
		<dc:creator>Abhinav Sood</dc:creator>
				<category><![CDATA[Computer Vision]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[pyblobs]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.abhinavsood.com/?p=6</guid>
		<description><![CDATA[pyblobs is a Python interface for cvBlobsLib. To use it with OpenCV 2.1 on Ubuntu 11.10 follow these steps. Prerequisites The following dependencies are required to use pyblobs library: sudo apt-get install swig sudo apt-get install libcv-dev sudo apt-get install python2.7-dev &#8230; <a href="http://www.abhinavsood.com/2011/12/07/pyblobs-with-opencv21-ubuntu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/pyblobs/">pyblobs</a> is a Python interface for <a title="Blob extraction library" href="http://opencv.willowgarage.com/wiki/cvBlobsLib" target="_blank">cvBlobsLib</a>. To use it with OpenCV 2.1 on Ubuntu 11.10 follow these steps.</p>
<h3>Prerequisites</h3>
<p>The following dependencies are required to use <em>pyblobs</em> library:<br />
<code><br />
sudo apt-get install swig<br />
sudo apt-get install libcv-dev<br />
sudo apt-get install python2.7-dev<br />
sudo apt-get install python-opencv<br />
</code></p>
<p><em>If you are using Python 2.6, then use <code>sudo apt-get install python2.6-dev</code> instead.</em></p>
<h3>Getting the pyblobs library</h3>
<p>Use svn to grab the source code<br />
<code><br />
cd /path/to/Downloads/<br />
svn checkout http://pyblobs.googlecode.com/svn/trunk/ pyblobs-read-only<br />
</code></p>
<h3>Patching the files</h3>
<p>The code from the trunk as of now uses Python 2.5 (python2.5-dev) and not the <a title="Best way to load and link shared objects in Linux" href="http://rachid.koucha.free.fr/tech_corner/shared_libs_tests.html" target="_blank">best way to link shared objects</a> in the <strong>make_swig_shadow.sh</strong> file. There is another <a title="Issue on building pyblobs" href="http://code.google.com/p/pyblobs/issues/detail?id=1" target="_blank">issue</a> with building the pyblobs library to be used with OpenCV 2.1 in the file <strong>BlobExtraction.cpp</strong></p>
<p>Hence, I have created two patch files for the aforementioned files:</p>
<ul>
<li><a title="Patch for BlobExtraction.cpp" href="http://abhinavsood.com/wp-content/downloads/BlobExtraction.patch" target="_blank">BlobExtraction.patch</a></li>
<li><a title="Patch for make_swig_shadow.sh" href="http://abhinavsood.com/wp-content/downloads/make_swig_shadow.patch" target="_blank">make_swig_shadow.patch</a></li>
</ul>
<p>Download these to the same directory as the downloaded library (pyblobs-read-only) and then run the following commands in the terminal:<br />
<code><br />
cd /path/to/Downloads/pyblobs-read-only/<br />
patch make_swig_shadow.sh make_swig_shadow.patch<br />
patch BlobExtraction.cpp BlobExtraction.patch<br />
</code></p>
<p><em>If you are using Python 2.6, then after patching edit make_swig_shadow.sh and replace any occurennces of python2.7 with python2.6 .</em></p>
<h3>Installation</h3>
<p>To install<br />
<code><br />
make<br />
./make_swig_shadow.sh<br />
</code></p>
<p>To check your install, go to your Python shell and try the following imports:<br />
<code><br />
&gt;&gt;&gt; from blobs.BlobResult import CBlobResult<br />
&gt;&gt;&gt; from blobs.Blob import CBlob<br />
</code></p>
<p>If all goes well, you shouldn&#8217;t see any errors. Now you can work with pyblobs and OpenCV2.1 on Ubuntu 11.10!</p>
<p>That said, to get the example file demo.py working, you might need to modify it a little to use objects and methods from the newer <a href="http://opencv.willowgarage.com/documentation/python/genindex.html" title="OpenCV 2.1 Python Documentation" target="_blank">OpenCV Python API</a>. For example, in my programs I replace<br />
<code><br />
from opencv import cv<br />
from opencv import highgui<br />
</code><br />
with <code>import cv2.cv as cv</code> to use the new API as cv.MethodName() instead of cv.cvMethodName() or highgui.cvMethodName(). Makes life a lot easier!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.abhinavsood.com/2011/12/07/pyblobs-with-opencv21-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

