tag:blogger.com,1999:blog-38691819172897561622024-03-14T17:36:57.803+05:30moboticaA blog on mobile robotsArkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.comBlogger56125tag:blogger.com,1999:blog-3869181917289756162.post-14250195731390182552014-12-24T11:29:00.000+05:302015-01-04T02:43:51.912+05:30LG72-1189, THAT'S ME<h2 style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small; font-weight: normal;">While it is all about the
dynamics of sub atomic particles which dictates our destiny, there are still
times when I find myself pleasantly distracted watching a dull red sky. What
follows, thunder and rain, my humidity and olfactory sensors give a few bizarre
readings, false positives or true negatives - need a tautology for this, though
the errors are said to be 1 in 10E8. Most likely, a communication expressing
similar remarks on the weather will be send through to my web messenger by
LG78-3112 located at 21DA:D2:0:2F3B:2AA:FF:FE78:5C5A.</span></h2>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Whilst I do my exploration and
analysis of samples, a syncing of falling raindrops always does catch my
attention, pitter-patter pitter-patter. Never have I been attuned to identify
patterns, but now, hardly one escapes my observation, be it the blinking of
lights in the evening sky or the whiff of an incoming breeze. Years ago, carbon
based life forms had studied chaos and had concluded that the flapping of a butterfly can lead to thunderstorms and voila !!! falling raindrops will catch the
attention of LG72-1189. </span></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<br /></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">In our developmental cycles we
are warned to always protect our existence, we are good as long as we have
energy, thus charge in our battery packs, else we are immobile units. I wonder,
my wish for rain is my existence or an effect whence my existence.</span></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<br /></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Rain, new battery packs,
grease oil for the arm, fist, ankle and leg joints, memory upgrades and the
chance rendezvous with LG78-3112 are the only things which are out of the
usual, while the rest is samples and assaying, all governed by section 1 and 2
of the contract and protocol 2a of the list of protocols. Oh yes, and we do
have those unscheduled inspections from the ethics committee, a swarm of DX602
drones hovering above us. </span></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<br /></div>
<div class="MsoNoSpacing" style="text-align: justify;">
</div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Scripting has never been my
forte, however in between the rain and the explorations this activity hardly
tasks my battery and is of very low
mobility.</span></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><b>NOTE</b></span></div>
<div class="MsoNoSpacing" style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">This article is motivated from, <a href="http://www.sccs.swarthmore.edu/users/00/pwillen1/lit/borg&i.htm">'</a><span style="color: #222222;"><span style="background-color: white;"><a href="http://www.sccs.swarthmore.edu/users/00/pwillen1/lit/borg&i.htm">Borges and I'</a>, however in a robot world. </span></span></span></div>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-31079944819465922352014-06-17T13:36:00.003+05:302014-06-28T21:41:14.538+05:30MORSE CODE - PART 3<div style="text-align: justify;">
<span style="font-family: 'Trebuchet MS', sans-serif;">Since there are a good lot of robot simulators, <a href="http://gazebosim.org/">Gazebo</a> and <a href="https://github.com/rtv/Stage">Stage</a> for the ROS enthusiast, <a href="http://www.coppeliarobotics.com/">V-REP</a> and <a href="http://www.cyberbotics.com/">webots</a> in the more commercial domain, <a href="http://openrave.org/docs/latest_stable/">OpenRave</a> and <a href="http://msdn.microsoft.com/en-us/library/bb648760.aspx">Microsoft Robotics Developer's Studio</a> are other options one can explore into, therefore when one comes across a new robot simulator, the obvious question is - <b>so what is special about it ?</b> I have been asked this question a few times about MORSE, and is usually accompanied with a comparison with Gazebo. </span></div>
<div style="text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;">My answer is, </span></div>
<div style="text-align: left;">
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;">MORSE is not limited to few robots (10 for Gazebo), I have used Morse for (i) 176 small robots (ATRV) and (ii) 9 PR2 robots, in 2 separate simulations. The limit to the number of robots is not a limitation of the simulator, but rather the limitation of the CPU and graphics card.</span></li>
</ul>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-4u6GYsuW5Qs/U5_yTTiSv1I/AAAAAAAADUw/35MvZ-Dd12U/s1600/4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-4u6GYsuW5Qs/U5_yTTiSv1I/AAAAAAAADUw/35MvZ-Dd12U/s1600/4.png" height="336" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pic.1. Multiple PR2 simulations</td></tr>
</tbody></table>
</div>
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;">MORSE has bindings with various middlewares <a href="http://www.ros.org/">ROS</a>, <a href="http://eris.liralab.it/yarp/">YARP</a> and <a href="http://www.robots.ox.ac.uk/~mobile/MOOS/wiki/pmwiki.php/Main/HomePage">MOOS</a>, which enables it more versatility [1]. </span></li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-QTAYKpqOkEM/U5_0gDRzFeI/AAAAAAAADVQ/d1R0usH74pw/s1600/6.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-QTAYKpqOkEM/U5_0gDRzFeI/AAAAAAAADVQ/d1R0usH74pw/s1600/6.png" height="480" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pic.2. ROS binding, rviz visualisation and mapping of MORSE simulation</td></tr>
</tbody></table>
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;">There is facility for human robot interaction. Like in motion gaming, direct input from the motion sensor (Microsoft Kinect, ASUS Xtion or Nintendo Wiimote) enables human avatar in the simulator [2]. </span></li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-CP8m799fQos/U5_zYhTxS2I/AAAAAAAADU8/9ly970yk3Ms/s1600/7.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-CP8m799fQos/U5_zYhTxS2I/AAAAAAAADU8/9ly970yk3Ms/s1600/7.png" height="480" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pic.3. Human avatar</td></tr>
</tbody></table>
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;">Since everything happens through Python scripts,one need not care about compilation and executable files. MORSE is 'pythonic' [3] and can be arguably said to be an extension of Blender.</span></li>
</ul>
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;">It is based on Blender and not Ogre, so it doesn't take up a hell lot of resources. Also, t</span><span style="font-family: 'Trebuchet MS', sans-serif;">he texture and the graphics are more sleeker than Gazebo.</span></li>
</ul>
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;">New robot models can be developed through Blender, and the developmental process is simple [4]. </span></li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-oNgyGwCfY6k/U5_zpMYqvbI/AAAAAAAADVE/AXsY8iHDziU/s1600/5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-oNgyGwCfY6k/U5_zpMYqvbI/AAAAAAAADVE/AXsY8iHDziU/s1600/5.png" height="160" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pic.4. Blender model of the robots</td></tr>
</tbody></table>
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;">Blender has a huge online community. Hence help and support is easy to find.</span></li>
</ul>
</div>
<div style="text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;">I would not be giving a very honest opinion if I do not talk about the shortcomings of MORSE,</span></div>
<div style="text-align: left;">
<ul>
<li><span style="font-family: Trebuchet MS, sans-serif;">Binding with ROS is a laborious process and often discourages the novice ROS user, particularly due to Python 3 and also because only certain versions of Blender works well with the MORSE + ROS + Python 3 set-up.</span></li>
</ul>
<ul>
<li><span style="font-family: Trebuchet MS, sans-serif;"><span style="background-color: white;">Physics simulation in Blender/MORSE is inferior to Gazebo. Getting force, torque values etc is not yet possible.</span></span></li>
</ul>
</div>
<div style="text-align: left;">
<div style="text-align: justify;">
<span style="font-family: 'Trebuchet MS', sans-serif;">The latest release is MORSE 1.2 and more details can be found at </span><span style="font-family: Trebuchet MS, sans-serif;"><a href="http://www.openrobots.org/wiki/morse">http://www.openrobots.org/wiki/morse</a>.</span><span style="font-family: 'Trebuchet MS', sans-serif;"> A good part of this post came out of discussions at the MORSE mailing list, morse-users at laas dot fr .</span></div>
</div>
<div style="text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;"><b>REFERENCES</b></span></div>
<div style="text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">[1] <a href="http://www.openrobots.org/morse/doc/latest/user/integration.html">http://www.openrobots.org/morse/doc/latest/user/integration.html</a></span><br />
<span style="font-family: Trebuchet MS, sans-serif;">[2] <a href="http://www.openrobots.org/morse/doc/stable/user/advanced_tutorials/mocap_tutorial.html">http://www.openrobots.org/morse/doc/stable/user/advanced_tutorials/mocap_tutorial.html</a></span></div>
<div style="text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">[3] <a href="http://www.openrobots.org/morse/doc/stable/user/basic_morse.html">http://www.openrobots.org/morse/doc/stable/user/basic_morse.html</a></span></div>
<div style="text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">[4] <a href="http://www.openrobots.org/morse/doc/stable/user/advanced_tutorials/a_journey_to_a_new_simulation.html">http://www.openrobots.org/morse/doc/stable/user/advanced_tutorials/a_journey_to_a_new_simulation.html</a></span></div>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com1New Delhi, India28.608637026615575 77.22290039062528.162714526615574 76.577453390625 29.054559526615577 77.868347390625tag:blogger.com,1999:blog-3869181917289756162.post-12876227855726586462013-10-06T00:55:00.002+05:302013-10-08T16:54:35.241+05:30SIMULATIONS IN OLFACTORY, MANY ROBOTS<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">This blog post describes a player/stage simulation for multiple robot mapping with goals or reference points as odor sources. Let's think of a situation where we need to explore large environment and generate its map which can be used later on for navigation and localization. In this scenario, instead of single robot exploring such a large environment, its always beneficial and effective (in terms of processor usage and time) to allow multiple robots to explore different parts of the environment and merge the maps finally whether topologically or based on overlap regions in occupancy grid. </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">This idea is based on Mobile Robot Olfactory experiments performed by ISR Embedded Systems Lab, details of which can be found here: (<a href="http://ftp.isr.ist.utl.pt/pub/roswiki/simulator_plumesim.html" target="_blank">http://ftp.isr.ist.utl.pt/pub/roswiki/simulator_plumesim.html</a>). </span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">The idea of using PlumeSim library for this purpose came from this interesting project of PlumeSim framework which simulates odor transport in the environment. The basis of this project is that olfaction is a key sense in the survival of many biological species. </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">This article deals with the process of installing PlumeSim plugin driver initially followed by multiple robot mapping simulation in <a href="http://playerstage.sourceforge.net/" target="_blank">player/ stage</a>. This driver is capable of introducing simulated chemical plumes into a simulated/ real robot from broad range of sources to CFD (computer fluid dynamics) software. Based on data collected from real world experiments, its also able to playback recorded plume in future periodically. </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Below are the steps involved in setting up the driver for this purpose:</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<span style="font-family: Trebuchet MS, sans-serif;">1. The driver library can be downloaded at this <a href="https://docs.google.com/file/d/0B0vjmCnIXfY8R1NJNGU2NzJ4dlk/edit?usp=sharing" target="_blank">link</a> or at this github</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"> link: <a href="https://github.com/DevasenaInupakutika/PlumeSim-1.0" target="_blank">https://github.com/DevasenaInupakutika/PlumeSim-1.0</a> </span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">2. Clone to your local repository through terminal as below:</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"> </span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><i> git clone</i> <a href="https://github.com/DevasenaInupakutika/PlumeSim-1.0" target="_blank">https://github.com/DevasenaInupakutika/PlumeSim-1.0</a></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">3. Enter the directory: </span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><i><br /></i></span>
<span style="font-family: Trebuchet MS, sans-serif;"><i> cd PlumeSim-1.0</i></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;">4. Build the library using below command which will create the required driver</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"> (libPlumeSim.so): </span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;"> <i>make</i></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;"><br /></span>
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">This plug-in driver in player/ stage brings plume simulation into the world of mobile robotics. This can be used as a great tool for developing odor search algorithms providing smooth path from simulated robot to real environment.</span><br />
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGcIomqFteKivzQm8etapWLsBOeK8tCk0uW4Iswm6h-_VanQdITa76n3qVOo3q2JizVyw0q6zC7N8MuiZkM5mjHa0Ct7yWApJT4lcezZDJpM6LEC6MWBE4MpwGdLWVzKEPu9SZCxxqP64s/s1600/maze_w2cil_sim.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGcIomqFteKivzQm8etapWLsBOeK8tCk0uW4Iswm6h-_VanQdITa76n3qVOo3q2JizVyw0q6zC7N8MuiZkM5mjHa0Ct7yWApJT4lcezZDJpM6LEC6MWBE4MpwGdLWVzKEPu9SZCxxqP64s/s320/maze_w2cil_sim.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div class="separator" style="clear: both; font-size: medium;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: x-small;">Sample output, the blue dots show the plume of the gas</span></div>
</td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">In this article, we have taken use-case of this driver in multi-robot map merging. For this purpose, please follow below steps:</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><i>Note: </i>Make sure all the path corresponding to player/ stage packages and library are at same location.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">1. The player/ stage package can be downloaded from <a href="https://github.com/DevasenaInupakutika/Player_Plumsim" target="_blank">here</a> using below </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> command:</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> <i>git clone </i> <a href="https://github.com/DevasenaInupakutika/Player_Plumsim" target="_blank">https://github.com/DevasenaInupakutika/Player_Plumsim </a></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">2. <i>cd Player_Plumsim</i> and Use <i>make clean </i>command to clean if package is </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> already built.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">3. Built the package as below:</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> <i> g++ -o main`pkg-config --cflags playerc++`
main.cc `pkg-config --libs </i></span></div>
<div style="text-align: justify;">
<i><span style="font-family: Trebuchet MS, sans-serif;"> playerc++`</span></i></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">4. Run the program as below:</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> <i>player map_square.cfg</i></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><i> </i>Open another terminal (in a separate tab):</span></div>
<div style="text-align: justify;">
<i><span style="font-family: Trebuchet MS, sans-serif;"> </span></i></div>
<div style="text-align: justify;">
<i><span style="font-family: Trebuchet MS, sans-serif;"> </span></i><br />
<i><span style="font-family: Trebuchet MS, sans-serif;"> ./main -p 6665 -r 1 </span></i></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><i> </i>(which means robot 1 will start moving where 1 is robot id and 6665 is port </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> number)</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The configuration file (map_square.cfg) contains description of robots and </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">corresponding ports. The prime important thing so as make multiple robots to move is to assign either separate port numbers for each robot or use separate robot ids on same port number.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">5. In order to run another robot, open another terminal tab and type below </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> command:</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> <i> ./main -p 6665 -r 2</i></span></div>
<div style="text-align: justify;">
<i><span style="font-family: Trebuchet MS, sans-serif;"><br /></span></i></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><i> </i>and so on. This has maximum of 12 robots.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">After executing all the above steps, you get results similar to the ones shown in the below screen shots and corresponding robot text files (robot<id>.txt) files get updated based on which robot is traversing the environment and it's distance from odor source. The emanating gas is shown in red while the robots from top view are circles of various colours.</span></div>
<div style="text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1-JeIfpNgadWuGXkiouD2JXDc7nSCURWJCwQUZjYX6Hse2OAtH8bFEWxp-wDTdKED7icP7BVC49DugOvW3brPTGK3AOTb9xJxf5FaXu8lryxfkahwHFhe8pU7rNk8z3e3Wrs6LCpiDjw/s1600/a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1-JeIfpNgadWuGXkiouD2JXDc7nSCURWJCwQUZjYX6Hse2OAtH8bFEWxp-wDTdKED7icP7BVC49DugOvW3brPTGK3AOTb9xJxf5FaXu8lryxfkahwHFhe8pU7rNk8z3e3Wrs6LCpiDjw/s1600/a.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhunoqAmXsrjvAOEKddk2wieoGsgrPdUGCXYSpjgUQJtBTwFzY-_2-5T0gvlieIvRIhg8EX3d_UrHtivZJXTpFLXzGq0BydiSG5RLdwMmX9jUv7IDHmqfB0RcerAx4eax3LKmSgIPUNpxE/s1600/b.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhunoqAmXsrjvAOEKddk2wieoGsgrPdUGCXYSpjgUQJtBTwFzY-_2-5T0gvlieIvRIhg8EX3d_UrHtivZJXTpFLXzGq0BydiSG5RLdwMmX9jUv7IDHmqfB0RcerAx4eax3LKmSgIPUNpxE/s1600/b.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq7sXmQo55BNYWgwSmCxbMZ5j9DPFY84YtDSFROgQdhQ-CUpZMmWDV-3JjgsGAK1-LKNxr7gLqNS0hU6RnIbqlrXmcSrbTAWXXYzNiJIuX89Rzpx8R1YNO8WZ4Ej3hGfbEG9Mcc0zQZW4/s1600/c.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq7sXmQo55BNYWgwSmCxbMZ5j9DPFY84YtDSFROgQdhQ-CUpZMmWDV-3JjgsGAK1-LKNxr7gLqNS0hU6RnIbqlrXmcSrbTAWXXYzNiJIuX89Rzpx8R1YNO8WZ4Ej3hGfbEG9Mcc0zQZW4/s1600/c.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT3fW63jVhZ_k2ZDi6PjpAwpoSBBixuq5st8GLmpuraksAtFUFUdXpMk_1mG6UpMVP9EZVu1OG4Xm5fCXFr_69n7P8e2cg5QOHNezsRvbNJewI8diB0ZNxw1ddgxiNA0t9t1gvxJUlLgg/s1600/Screenshot+from+2013-10-01+17_20_09.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT3fW63jVhZ_k2ZDi6PjpAwpoSBBixuq5st8GLmpuraksAtFUFUdXpMk_1mG6UpMVP9EZVu1OG4Xm5fCXFr_69n7P8e2cg5QOHNezsRvbNJewI8diB0ZNxw1ddgxiNA0t9t1gvxJUlLgg/s640/Screenshot+from+2013-10-01+17_20_09.png" width="640" /></a></div>
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;"><br /></span>
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">The files being updated contains simulation environment's map topological data (in terms of coordinates).</span><br />
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">This work has also been implemented on ROS - occupancy grid map merging where in robots generate local maps by exploring separate areas of environment and merge based on overlap regions into a final global map which will be discussed in separate article.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">This can be implemented on real robots as well using the player server of the player/stage suit.</span></div>
</div>
Devasena Inupakutikahttp://www.blogger.com/profile/05321974652848128733noreply@blogger.com1Manchester, UK53.479324 -2.24848510000003953.328105 -2.5712086000000389 53.630542999999996 -1.925761600000039tag:blogger.com,1999:blog-3869181917289756162.post-46691532627970662582013-08-31T23:56:00.002+05:302013-09-01T22:13:45.951+05:30E-GLOVE Part-2 -- The Robotic Arm ! <div dir="ltr" style="text-align: left;" trbidi="on">
<b><u><span style="font-family: Trebuchet MS, sans-serif;">E-GLOVE 'n' THE ROBOTIC ARM</span></u></b><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><span style="font-family: Trebuchet MS, sans-serif;">The last time I blogged here, I wrote about my project on the e-glove and how my team and I got around to using the glove as a wireless air-mouse using an accelerometer and an RF Transceiver system. </span>But, not stopping there, we decided to move on and try to use it for it's more serious applications, like bomb defusal, remote object manipulation and maybe, if we have access to more sensitive equipment, a robotic surgery arm.</span></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The first step, obviously, was to acquire the arm. Being poverty stricken engineering students, we had no funds to actually purchase the arm itself, so we approached the BioMedical Instrumentation department of out college who graciously provided us with not one, but TWO unused robotic arms. Since one of them was pre-assembled, we decided to use that one for our current prototype.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The arm, manufactured by Arexx, actually has an inbuilt Atmega Processor and an FTDI USB-to-Serial converter to program and control the servos on the arm independently. </span><span style="font-family: Trebuchet MS, sans-serif;">However, upon further perusal of the documentation, kindly written in German for better understanding, I found out that the coding would have to be done in Assembly or hex. (<a href="http://www.rapidonline.com/pdf/13-1415.pdf" target="_blank">English Version, FINALLY</a>). </span><span style="font-family: 'Trebuchet MS', sans-serif;">This promptly made me drop the idea and decided to proceed by individually connecting each motor to the Arduino Leonardo and trying to use the Servo library which comes built-in with the IDE. </span><span style="font-family: Trebuchet MS, sans-serif;">Well, that went well and I could now manually control the arm using the WASD keys on the keyboard.</span><span style="font-family: 'Trebuchet MS', sans-serif;">I even ordered a </span><a href="http://www.flipkart.com/sony-cp-els-power-bank-smart-phones/p/itmdknehdpzdfdmm?pid=ACCD44YHRXMJTBP8" style="font-family: 'Trebuchet MS', sans-serif;" target="_blank">Sony CP-ELS PowerBank</a><span style="font-family: 'Trebuchet MS', sans-serif;"> for the arm, which is basically a 2200 mAh rechargeable battery that will finally allow for some portability.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The input for each of the 5 motors (actually, there are 6 but one is broken) came from an old USB cable connected to the GND and +5V pins of each motor using a simple splitter on a PCB which gave me 5 parallel outputs from one battery input.</span></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglrjZtE5RTAA_I2oQvEeD-dthvk4kRzYaeng_fR9I16CLSk7fSXP117lhYtZf1nGrd9OcP_CNUET9nkEGIdq8qnSL3ay7MHYTvgxSwUzCogKGRkc-tHlSr4xvKhKB6u6EAYCJnHAWPpQ84/s1600/arm.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglrjZtE5RTAA_I2oQvEeD-dthvk4kRzYaeng_fR9I16CLSk7fSXP117lhYtZf1nGrd9OcP_CNUET9nkEGIdq8qnSL3ay7MHYTvgxSwUzCogKGRkc-tHlSr4xvKhKB6u6EAYCJnHAWPpQ84/s320/arm.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Block Diagram of arm with motors labelled accordingly</td></tr>
</tbody></table>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Then, once I got that part working, we came to the main task at hand, making it compatible with the existing glove so that we could move it around using hand movements.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Then came the real problem. </span><span style="font-family: 'Trebuchet MS', sans-serif;">Turns out that the VirtualWire Library that we used (</span><a href="http://mobotica.blogspot.in/2013/07/e-glove.html" style="font-family: 'Trebuchet MS', sans-serif;" target="_blank">mentioned here</a><span style="font-family: 'Trebuchet MS', sans-serif;">) uses an interrupt based system to get the RF communication working. Now, the </span><a href="http://arduino.cc/en/reference/servo" style="font-family: 'Trebuchet MS', sans-serif;" target="_blank">Servo library</a><span style="font-family: 'Trebuchet MS', sans-serif;"> ALSO uses the same interrupts in the Arduino and thus, no matter what, they are incompatible. Which basically meant, that for the moment, our project was doomed.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Library after alternative library was tried, but to no avail. The <a href="http://forum.arduino.cc/index.php/topic,21975.0.html" target="_blank">ServoTimer2</a> library promised to be compatible with the VirtualWire library, but even that, as it turned out, did not work. </span><span style="font-family: 'Trebuchet MS', sans-serif;">We even tried editing the library itself (a huge undertaking on our part, since we didn't know crap about the internal hardware structure of the Arduino) and we got the thing to compile, but the arm remained motionless as ever.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Then, at 5:00AM one morning, with an 8:00AM class in the horizon, I decided to bunk all libraries and try moving the servos using simple and old-school PWM control. And voila, that did the trick. </span><span style="font-family: 'Trebuchet MS', sans-serif;">Taking inspiration from </span><a href="http://www.luntianlaboratory.com/arduino/no-library-servo/" style="font-family: 'Trebuchet MS', sans-serif;" target="_blank">this tutorial</a><span style="font-family: 'Trebuchet MS', sans-serif;">, I proceeded to fine-tune the pulse widths to match the rotations of each motor, which gave me a complete 0 to 180 degree turns with relative ease. Putting it into a function made it way easier to choose the motor to be turned.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<b><u><span style="font-family: Trebuchet MS, sans-serif;">On a tangent, here is a quick explanation of PWM</span></u></b></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Basically, the servos have an internal chip/driver which reads signals in terms of HIGH and LOW and the amount of time a signal remains HIGH or LOW.</span></div>
<pre style="background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em;"> _ __ ___ _____ _ _____ __ _
| | | | | | | | | | | | | | | |
PWM Signal | | | | | | | | | | | | | | | |
__| |____| |___| |__| |_| |____| |_| |___| |_____</pre>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"> So, as long as the signal is HIGH, the motor keeps turning. When it is at zero, it stops. When the signal falls below the mean value, i.e. LOW, it turns in the opposite direction. The length of the "plateau" in the above picture is basically the duratin for which the signal is kept HIGH or LOW.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<u><b><span style="font-family: Trebuchet MS, sans-serif;">Back on track</span></b></u></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">So, that was that. Once we got that working, it was just a matter of removing the Mouse( ) functions from the code and replacing it with the PWM Servo functions in order to get each motor working as intended.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The basic movement is as follows :</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<span style="font-family: Courier New, Courier, monospace;">Normal Left-Right Movement : <base_rotate></span><br />
<span style="font-family: Courier New, Courier, monospace;">Normal Up-Down : <bottom><br />Left Click Up-Down : <middle><br />Left Click Left-Right : <base_rotate><br />Left+Right Click Up-Down : <claw_control><br />Left+Right Click Left-Right : <claw_rotate></span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"><span style="font-family: 'Trebuchet MS', sans-serif;">Obviously, this being a prototype, we are still working out some kinks in the accuracy and control of the arm, but so far so good. </span><span style="font-family: 'Trebuchet MS', sans-serif;">Next step in this project will be most probably mounting it onto a rover of sorts, with an attached remote camera for total wireless control of the arm. </span><span style="font-family: 'Trebuchet MS', sans-serif;">Also in the pipeline is interfacing this arm with an EEG machine, to try and use brain-waves to give rudimentary control to the arm, which will be useful for handicapped people.</span></span></div>
<br />
<span style="font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dzSIQGjmxe01NXt2MDrca76N73lKX0pZzzzExHMtXJyT7Xxx2qeGZQitVG6x39VEvn9igRTqVhAhnLqOAtFjg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<span style="font-family: inherit;"><br /></span>
<br /></div>
Nightstalkerhttp://www.blogger.com/profile/09438899127974017491noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-65900543186562031272013-07-24T02:02:00.000+05:302013-09-01T22:16:11.324+05:30E-GLOVE Part-1 -- James Bond<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal" style="text-align: center;">
<div class="MsoNormal" style="text-align: center;">
<div style="text-align: justify;">
<b><span style="font-family: Trebuchet MS, sans-serif;">E-GLOVE -- AN ARDUINO BASED AIR-MOUSE</span></b></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
<div>
<span style="font-family: 'Trebuchet MS', sans-serif;">I recently got my hands on an accelerometer, the MMA7361 on
a nice breakout board for use with the Arduino and that got me thinking about its
practical applications. </span><span style="font-family: Trebuchet MS, sans-serif;">Inspired by that idea and some Googling, I got around to
making myself an e-glove, something like an air-mouse for the computer with
which I could control my mouse with hand movements. Firstly, I had to figure out how to use the accelerometer by
hooking it up to the Arduino and how to get understandable readings from it.</span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<br />
<span style="font-family: Trebuchet MS, sans-serif;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEgMclACSwUcoNMpox9qvrJaSDpA1Y189K7Rl49UCbP6XW2EM0L4eNO9ZZzTMnDpp-sebTVKhwEDpk0iGeHP_zOEbpNnOdyFoGy0P2RZSME0tb5azG000Fm7OODSFko6yB9AOTz2pL5z3A/s1600/20130715_190057.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEgMclACSwUcoNMpox9qvrJaSDpA1Y189K7Rl49UCbP6XW2EM0L4eNO9ZZzTMnDpp-sebTVKhwEDpk0iGeHP_zOEbpNnOdyFoGy0P2RZSME0tb5azG000Fm7OODSFko6yB9AOTz2pL5z3A/s320/20130715_190057.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: x-small;">Fig.1.The final glove with wrist-strap</span></span></td></tr>
</tbody></table>
<span style="font-family: Trebuchet MS, sans-serif;">Initial Googling got me to the Sparkfun website, which
distributes the said accelerometer and that got me some useful information regarding
hooking it up to the Arduino (the page was in Chinese, I think) and a sweet
little library that did all the maths for me. <o:p></o:p><a href="https://www.sparkfun.com/products/9652">Sparkfun
MMA7361</a>, <a href="https://code.google.com/p/mma7361-library/">MMA7361
Library</a> <a href="http://www.geeetech.com/wiki/index.php/MMA7361_Triple_Axis_Accelerometer_Breakout">MMA7361
Connections</a><o:p></o:p>. For those of you interested in further reading and details
on how to do the maths, read it <a href="http://www.dfrobot.com/wiki/index.php/Triple_Axis_Accelerometer_MMA7361_(SKU:_DFR0143)">here</a>.<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Once that was hooked up, the next step was to go ahead and
get the mouse to move in response to the accelerometer readings. So, I went
ahead and got myself an Arduino Leonardo, which supports on-the-fly mouse
control using the ATmega32u4 that has built-in USB communication,
eliminating the need for a secondary processor. <span class="apple-converted-space"><span style="background: white; color: #555555; font-size: 10.5pt; line-height: 115%;"> </span></span><span style="text-align: start;">This allows the Leonardo to appear to a connected computer as
a mouse and keyboard, in addition to a virtual (CDC) serial / COM port. The
official details for the board are given <a href="http://arduino.cc/en/Main/ArduinoBoardLeonardo">here</a>.</span></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><span style="text-align: start;"></span></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><span style="text-align: start;"></span></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Now, came the tough part. The readings of X and Y axis
coming from the accelerometer had to be translated into real movement of the
mouse on the screen. Taking a look at the Mouse control function of the
Leonardo, this was the syntax :<o:p></o:p></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<b><span style="font-family: Trebuchet MS, sans-serif;">Mouse.move(<x-axis>, <y-axis>,
<z-axis>);<o:p></o:p></span></b></div>
<div style="text-align: justify;">
<b><span style="font-family: Trebuchet MS, sans-serif;"></span></b><br />
<b><span style="font-family: Trebuchet MS, sans-serif;"></span></b></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">But, the readings
from the accelerometer were slightly different than expected. The X-Axis readings
from the accelerometer were the Y-Axis movement on the monitor and vice-versa.<o:p></o:p> Since we
wanted hand-up motion to move mouse up and hand-down motion to move mouse down,
we had to take –X readings for the up movement and +X readings for the down
movement.<o:p></o:p> Once that
was cleared out, the next hurdle was that the mouse needed to be stopped from
moving if hand was at a central position, i.e. at rest.<o:p></o:p> So, to
facilitate that, we figured out a simple graph system which would allow us to
set thresholds based on readings taken in from the accelerometer and move the
mouse only if that threshold was crossed.<o:p></o:p> The graph
below is basically what we used as the basis for all mouse movements.
Initially, the mouse movement was fixed to 4 directions, but we added separate
code to facilitate movement in all 8 directions.<o:p></o:p> The blue
areas in the graph below are essentially the threshold values we used on the
basis of readings from the Arduino.<o:p></o:p> The mouse
was now working quite nicely with relative smoothness in all directions.</span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<br />
<span style="font-family: Trebuchet MS, sans-serif;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<o:p><span style="font-family: Trebuchet MS, sans-serif;"><table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibfvtUKdj018bYzs6O6VjrE-JZRe_mF4ohG0u-rYkJYxRyRcZ-d7ibD09JvynUDS2Dare4ImVV-4MNLsv5g9scoQYMOQ2RwTeZitAwzz1zQhZX26-3P2R8X9s4U1KhNxzcgM2251S5ELWL/s1600/graph.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="255" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibfvtUKdj018bYzs6O6VjrE-JZRe_mF4ohG0u-rYkJYxRyRcZ-d7ibD09JvynUDS2Dare4ImVV-4MNLsv5g9scoQYMOQ2RwTeZitAwzz1zQhZX26-3P2R8X9s4U1KhNxzcgM2251S5ELWL/s320/graph.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: x-small;">Fig.2.The Graph used to figure out threshold values</span></td></tr>
</tbody></table>
</span></o:p></div>
<div class="MsoNormal" style="text-align: center;">
<!--[if gte vml 1]><v:group
id="Group_x0020_40" o:spid="_x0000_s1026" style='position:absolute;left:0;
text-align:left;margin-left:102.45pt;margin-top:2.65pt;width:243.95pt;
height:254.1pt;z-index:251694080' coordsize="30983,32273" o:gfxdata="UEsDBBQABgAIAAAAIQC75UiUBQEAAB4CAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbKSRvU7DMBSF
dyTewfKKEqcMCKEmHfgZgaE8wMW+SSwc27JvS/v23KTJgkoXFsu+P+c7Ol5vDoMTe0zZBl/LVVlJ
gV4HY31Xy4/tS3EvRSbwBlzwWMsjZrlprq/W22PELHjb51r2RPFBqax7HCCXIaLnThvSAMTP1KkI
+gs6VLdVdad08ISeCho1ZLN+whZ2jsTzgcsnJwldluLxNDiyagkxOquB2Knae/OLUsyEkjenmdzb
mG/YhlRnCWPnb8C898bRJGtQvEOiVxjYhtLOxs8AySiT4JuDystlVV4WPeM6tK3VaILeDZxIOSsu
ti/jidNGNZ3/J08yC1dNv9v8AAAA//8DAFBLAwQUAAYACAAAACEArTA/8cEAAAAyAQAACwAAAF9y
ZWxzLy5yZWxzhI/NCsIwEITvgu8Q9m7TehCRpr2I4FX0AdZk2wbbJGTj39ubi6AgeJtl2G9m6vYx
jeJGka13CqqiBEFOe2Ndr+B03C3WIDihMzh6RwqexNA281l9oBFTfuLBBhaZ4ljBkFLYSMl6oAm5
8IFcdjofJ0z5jL0MqC/Yk1yW5UrGTwY0X0yxNwri3lQgjs+Qk/+zfddZTVuvrxO59CNCmoj3vCwj
MfaUFOjRhrPHaN4Wv0VV5OYgm1p+LW1eAAAA//8DAFBLAwQUAAYACAAAACEAeN/+pacKAACydQAA
HwAAAGNsaXBib2FyZC9kcmF3aW5ncy9kcmF3aW5nMS54bWzsXdly20YWfU9V/gGFV5cioLGrQqcU
TeykyuOoJHsyeWyDoMgKCHAASKLy9XN6BQgC3OQZJ1b7QcbS3ej13HvPvd38/of1MrcesqpelMXE
dr9zbCsr0nK6KO4m9scPb85i26obWkxpXhbZxH7KavuH199+8z29uKvoar5ILZRQ1Bd0Ys+bZnVx
fl6n82xJ6+/KVVbg3ayslrTBbXV3Pq3oI0pe5ufEccLzJV0U9uu2qH/Qhlr31eKEovIy/SObXtHi
gdYoMk8vuk9kHfP0+SXTi+LhbbW6XV1XrObp+4frylpMJzZ6rqBLdJF9Ll/IZLg97+W6awtYz6ol
S1/OZtZ6YhPi+nGMsp5wHZM4IYEoL1s3VooEnpPEbhjYVooUHiGREznyi/Nf95SRzn/aUwoqKiqE
i04l+SWr5Ujbfd34t1V5v7Jw/6U7QXShqsdGw73Ea7vPC3gHn9hwL1SjLhqO+6MbblVlg6XnxA77
x9eDnAweiQI/4nMBQ+56mBe8dDUXSIip4Mi54HpJEHm6wXIujHQDchJXdQPPGfis7JFuqFdi8Ldn
vUdUB/xSl3Wa5VltfagWtLjLMwsvVW+wnKL84kGVUss1xGac6IQwCpLQ9zf6II6SGE1ksz0OAj/Z
7ILQTaIQjWSrodMDuh30YlXVzdusXFrsYmI3snL8G/ThXd2IaqlkrKF1mS+mbxZ5zm8YnGVXeWU9
0Hxi0zTNisbl2fP75T/LqXju88HjzcVj1vs8eageo0YcGFlJvJ83PpIX+77brMnWNwGimDBb3+QT
iT3e9U28Yx9lSeQwNOtbPszN+sdy+sTq8wn/A934/EQf16v0zQKd+I7WzTWtgPh4CNnR/Io/s7x8
nNilvLKteVn9OfScpQcK461tPUKCTOz6P/e0ymwr/6WoJ3bi+gxNGn7jBxHBTdV986n7prhfXpUY
FZfXjl+y9E2uLmdVufytrKaX7Kt4RYsU357YaVOpm6sG93gFQZVml5f8Oi2XK9q8K25XEBlisNkE
+bD+jVYrNZOwDN+Xt3O6yoYmk0jLurEoL++bcraQM030KnuR181t85RnfAR532fFlPXsDXo9xxqa
2Flx9vFWjiVSYLja4bmvs9vVTZbKctX41axIXnxxk80gm5hY4TXUE3B7KtdzOs3E40DNqq3pk7MC
WckzrA1dtuiekbLFLJTpWdZsNkONdWaBdzsz6xz8y2XRZl4uirIaalmOBSq/LNKLiS46hk95VtYO
VIOAEMJ8CNU8seQg+g9DNdcP48gjCa+phHY3jHwSC2z3Aj/2JVQqaA+xtgO81rjWw2eDaxKVxci2
gI3RNbjGQc7gGlvjBtc6Norn78I1rgFyk+ZAXCOBT4BiG7jmO67nQRxDH+tpqwbShNzoqodGVTOq
GlNFuGZlVDWm2h2rqsE2HFfVJHlysKqWuInrJFEX0SISRKFQ1AygtfausT2N7WlsT25GbhJEh9ie
MFI0paovRrhVD9gjAE5SjJE2P98KGllYuhvZeaGCoe4RzB5xIgLzlvFpoRuGkrBUdudzKUXQgWMm
q2q0qNYO4xva4ziic8P+CCV1D6UYxRHpdYGhFI2eaihFyTUKSthQivYhsL6TUgTDPI5qym3zfEoR
DikG7YZShFHVcc8YddWoq0ZdPVFd3YVrcGuM4xpect/Wwfa3ayjFQa+z8f5Kv7Dx/irnvPH+/q+8
v/Bo7IC0+EhIG6IUPRIkxkfCiW+jo7GoFxnoYnQ0o6OdqKMpdo1lT9cIXGIXxcMVu+yHquqYvdum
oou7eWNdlUWBsJyystqQPZlVsYudklTEWI9ahIW77fUlkQ/KEa8YLYibJAi4sYv6quwq9E7GVeWL
YjCgigXxCeeQbNAQKzEYjDT9Q4UDDUcwDQYhtZmOjF5qM54QudSsVVVng5FLemj1xcgY6wimgTFu
A5gOG2Nrli9W/1KBcCo41XdZbB5GNQhI5PXClEnsIexJhqYSBDvB+88Epxn2wYC1g4d9r7dAm2PS
W9BaYKd4C6CneA7UoRFKCaOcOCw6Vyzu0HdFNDUgSAWjb4BCG4DOcrqOjMMmUegT3HTnh8Kzfd4C
HdHycWVdVlX5aB0exsIgUsXjeUkcJ2jJNoL5Eff/siZ6fuy43P8yPo/vV7wa3IU8GF+MrApAVchm
G9NpQm6/6pBbJhu4gP/MYWmtzPl/CqvncuI6dEOv3SPiNYZkEnYA6FVMvDCKEWHLCSjl3uyuZeyA
gG+1izlbQbVmLZvw+dHwebOWuRtebn/TUQo33KAQorgNVdgXUdoRxcSPHOILUYxYUidEHPzGIvZ8
100g95lEjl25xscFcsUqZGSy2QYzsg3GrOPuOtbcZ3cdH8F5MrH8c89UJBGRqrXruZHj9Pbwca0a
3zXr2fCAsMie69h4iet5HxukWQHNBgkB3fJ+LU/wDE6oK7p7wdLQxkPGJHAzGoRRxKPuxqV2LalJ
XUNhOA1a1GLLF7ZG0kX+UzG1mqcV9uFTxgZI/b63JWyIOfSEYbYZzNnaVZ+ZORzckNl+7Usyhy4o
GxGpNDpZkIRrZPDrHzFb+mJBUEODdhqPUpWxpJ4TJQGfnma2dHei/0Vmi47WHZ8tbczusbNlkHnG
2QUeAG2bqcNMcUBEC4xxYESYWQOucQzRvijGbLug+gLJfYYnCiOPkzMkvvg+tM++NAJTHUr22SOI
Otokn7eIICON+J59ZqVLv5TYrDa6A/9AhwYQXXs09MXGTgaIGMkweNo0ka6N1io5xbURYO8ljkth
MBLCJ4nDUDZIBhyP4riuBBMwhX68dc6OyKxEoT5ihuX0sa+CwxByIhR3k2ZUjd7n2mBfF4L4DQ7X
SOe0ai6sy7zJqoI2mXVdlWlW1xaSKWF8BMsimdBtEMVq4Y4QpqiRgDiw3FD8uOhlB39csbrpmsmK
GQ/I3+TQEbjTrSWt3vGTT3Bxwy9ofocTwVKck8JWfc6OQuGei1V6nTbipBCsD3kADaZHN8WP4pgQ
HBhz3dQiLV8mSIZn7dvLWaPKVOnctkQk5QmQS3r8K5a66h2OYtV/TmywCryeQqiJU31w2AjltsCM
prAHrmi++FQt5GKpO28+LJY4tuh99mjdlEtayPmO77DPNa9f/ds6+93iZ6/whcAfj5zUwivjohGf
uzbt93gdPvdZMC/RaB7fgka0UrsTeZHsBOQFYe2yQ7uY4OGa7IbcMfD70s58MvC7G34t4K8BX31u
3DARtSfu7e8UFUC0bbgbfFv78Ai1F2drkliEXrtRgoO5JITrAAGj/b6wI/cM/O6B3zMDv4J25Yr3
1w+/OnJ4N/y2QcRHwK8bJsSTx08kjFPpHXtotF+j/bKzWA35oMgH65WhHl4U/OqA9t3we1KUu4iW
Y8xDQmLHlwS60X1f6nHTRvfdp/sa8H1R4HuYx039JscBx1owD4LaYhSGgUPESZK+k/g9h6OP3/XA
M+E1jBJsjzJ+N+urPu7BoO8e9AXx++p3Q/2+IOpX/5zObuW3/ZWdE7kHNw5CJ+kd/GgQ2JAPhnxA
tIWOfLDA/RoEflEasN7HtxuBT9rZJwLmXOyhDxAAsRn2YLRf43czxG8Pe8+M9st/eu/r8bxBuso4
585V79dKeWvlr6uyn0Tt3r/+LwAAAP//AwBQSwMEFAAGAAgAAAAhAJxOXiHiBgAAOhwAABoAAABj
bGlwYm9hcmQvdGhlbWUvdGhlbWUxLnhtbOxZT28bRRS/I/EdRntv4/+NozpV7NgNtGmj2C3qcbwe
704zu7OaGSf1DbVHJCREQRyoxI0DAiq1EpfyaQJFUKR+Bd7M7K534jVJ2wgqaA7x7tvfvP/vzZvd
y1fuRQwdEiEpjzte9WLFQyT2+YTGQce7NRpcWPeQVDieYMZj0vHmRHpXNt9/7zLe8BlNxhyLySgk
EUHAKJYbuOOFSiUba2vSBzKWF3lCYng25SLCCm5FsDYR+AgERGytVqm01iJMY28TOCrNqM/gX6yk
JvhMDDUbgmIcgfSb0yn1icFODqoaIeeyxwQ6xKzjAc8JPxqRe8pDDEsFDzpexfx5a5uX1/BGuoip
FWsL6wbmL12XLpgc1IxMEYxzodVBo31pO+dvAEwt4/r9fq9fzfkZAPZ9sNTqUuTZGKxXuxnPAshe
LvPuVZqVhosv8K8v6dzudrvNdqqLZWpA9rKxhF+vtBpbNQdvQBbfXMI3ulu9XsvBG5DFt5bwg0vt
VsPFG1DIaHywhNYBHQxS7jlkytlOKXwd4OuVFL5AQTbk2aVFTHmsVuVahO9yMQCABjKsaIzUPCFT
7ENO9nA0FhRrAXiD4MITS/LlEknLQtIXNFEd78MEx14B8vLZ9y+fPUHH958e3//p+MGD4/s/WkbO
qh0cB8VVL7797M9HH6M/nnzz4uEX5XhZxP/6wye//Px5ORDKZ2He8y8f//b08fOvPv39u4cl8C2B
x0X4iEZEohvkCO3zCAwzXnE1J2PxaitGIabFFVtxIHGMtZQS/n0VOugbc8zS6Dh6dInrwdsC2kcZ
8OrsrqPwMBQzRUskXwsjB7jLOetyUeqFa1pWwc2jWRyUCxezIm4f48My2T0cO/HtzxLom1laOob3
QuKoucdwrHBAYqKQfsYPCCmx7g6ljl93qS+45FOF7lDUxbTUJSM6drJpsWiHRhCXeZnNEG/HN7u3
UZezMqu3yaGLhKrArET5EWGOG6/imcJRGcsRjljR4dexCsuUHM6FX8T1pYJIB4Rx1J8QKcvW3BRg
byHo1zB0rNKw77J55CKFogdlPK9jzovIbX7QC3GUlGGHNA6L2A/kAaQoRntclcF3uVsh+h7igOOV
4b5NiRPu07vBLRo4Ki0SRD+ZiZJYXiXcyd/hnE0xMa0GmrrTqyMa/13jZhQ6t5Vwfo0bWuXzrx+V
6P22tuwt2L3KambnRKNehTvZnntcTOjb35238SzeI1AQy1vUu+b8rjl7//nmvKqez78lL7owNGg9
i9hB24zd0cqpe0oZG6o5I9elGbwl7D2TARD1OnO6JPkpLAnhUlcyCHBwgcBmDRJcfURVOAxxAkN7
1dNMApmyDiRKuITDoiGX8tZ4GPyVPWo29SHEdg6J1S6fWHJdk7OzRs7GaBWYA20mqK4ZnFVY/VLK
FGx7HWFVrdSZpVWNaqYpOtJyk7WLzaEcXJ6bBsTcmzDUIBiFwMstON9r0XDYwYxMtN9tjLKwmCic
Z4hkiCckjZG2ezlGVROkLFeWDNF22GTQB8dTvFaQ1tZs30DaWYJUFNdYIS6L3ptEKcvgRZSA28ly
ZHGxOFmMjjpeu1lresjHScebwjkZLqMEoi71HIlZAG+YfCVs2p9azKbKF9FsZ4a5RVCFVx/W70sG
O30gEVJtYxna1DCP0hRgsZZk9a81wa3nZUBJNzqbFvV1SIZ/TQvwoxtaMp0SXxWDXaBo39nbtJXy
mSJiGE6O0JjNxD6G8OtUBXsmVMLrDtMR9A28m9PeNo/c5pwWXfGNmMFZOmZJiNN2q0s0q2QLNw0p
18HcFdQD20p1N8a9uimm5M/JlGIa/89M0fsJvH2oT3QEfHjRKzDSldLxuFAhhy6UhNQfCBgcTO+A
bIH3u/AYkgreSptfQQ71r605y8OUNRwi1T4NkKCwH6lQELIHbclk3ynMquneZVmylJHJqIK6MrFq
j8khYSPdA1t6b/dQCKluuknaBgzuZP6592kFjQM95BTrzelk+d5ra+CfnnxsMYNRbh82A03m/1zF
fDxY7Kp2vVme7b1FQ/SDxZjVyKoChBW2gnZa9q+pwitutbZjLVlca2bKQRSXLQZiPhAl8A4J6X+w
/1HhM/sFQ2+oI74PvRXBxwvNDNIGsvqCHTyQbpCWOIbByRJtMmlW1rXp6KS9lm3W5zzp5nJPOFtr
dpZ4v6Kz8+HMFefU4nk6O/Ww42tLW+lqiOzJEgXSNDvImMCUfcnaxQkaB9WOB1+TIND34Aq+R3lA
q2laTdPgCj4ywbBkvwx1vPQio8BzS8kx9YxSzzCNjNLIKM2MAsNZ+g0mo7SgU+nPJvDZTv94KPtC
AhNc+kUla6rO577NvwAAAP//AwBQSwMEFAAGAAgAAAAhAJxmRkG7AAAAJAEAACoAAABjbGlwYm9h
cmQvZHJhd2luZ3MvX3JlbHMvZHJhd2luZzEueG1sLnJlbHOEj80KwjAQhO+C7xD2btJ6EJEmvYjQ
q9QHCMk2LTY/JFHs2xvoRUHwsjCz7DezTfuyM3liTJN3HGpaAUGnvJ6c4XDrL7sjkJSl03L2Djks
mKAV201zxVnmcpTGKSRSKC5xGHMOJ8aSGtHKRH1AVzaDj1bmIqNhQaq7NMj2VXVg8ZMB4otJOs0h
droG0i+hJP9n+2GYFJ69elh0+UcEy6UXFqCMBjMHSldnnTUtXYGJhn39Jt4AAAD//wMAUEsBAi0A
FAAGAAgAAAAhALvlSJQFAQAAHgIAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54
bWxQSwECLQAUAAYACAAAACEArTA/8cEAAAAyAQAACwAAAAAAAAAAAAAAAAA2AQAAX3JlbHMvLnJl
bHNQSwECLQAUAAYACAAAACEAeN/+pacKAACydQAAHwAAAAAAAAAAAAAAAAAgAgAAY2xpcGJvYXJk
L2RyYXdpbmdzL2RyYXdpbmcxLnhtbFBLAQItABQABgAIAAAAIQCcTl4h4gYAADocAAAaAAAAAAAA
AAAAAAAAAAQNAABjbGlwYm9hcmQvdGhlbWUvdGhlbWUxLnhtbFBLAQItABQABgAIAAAAIQCcZkZB
uwAAACQBAAAqAAAAAAAAAAAAAAAAAB4UAABjbGlwYm9hcmQvZHJhd2luZ3MvX3JlbHMvZHJhd2lu
ZzEueG1sLnJlbHNQSwUGAAAAAAUABQBnAQAAIRUAAAAA
">
<v:group id="Group_x0020_36" o:spid="_x0000_s1027" style='position:absolute;
left:3275;top:16513;width:26816;height:13958;rotation:180' coordsize="26821,13957"
o:gfxdata="UEsDBBQABgAIAAAAIQCi+E9TBAEAAOwBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRy07DMBBF
90j8g+UtShxYIISadEGAHSAoHzCyJ4lFYlseN7R/z7iPDaJIXdpzz5wre7HcTKOYMZL1rpbXZSUF
Ou2NdX0tP1dPxZ0UlMAZGL3DWm6R5LK5vFistgFJMO2olkNK4V4p0gNOQKUP6HjS+ThB4mPsVQD9
BT2qm6q6Vdq7hC4VKe+QzaLFDtZjEo8bvt43iTiSFA/7YHbVEkIYrYbETdXszC9LcTCUTO4yNNhA
V1xDqj8NeXJacOBe+WmiNSjeIKYXmLiGMpFUH/060AABOVj+vyp3najwXWc1lm2k5wx/ZPhY75TG
+G8XcT5X0DL2jvNxu9r9VfMDAAD//wMAUEsDBBQABgAIAAAAIQBsBtX+2AAAAJkBAAALAAAAX3Jl
bHMvLnJlbHOkkMFKAzEQhu+C7xDm7mbbg4g025vQa63gNSSz2eAmE2biat/eWBBc6c3jzM9838/s
9p9pVguyRMoGNl0PCrMjH3Mw8HJ6unsAJdVmb2fKaOCMAvvh9mZ3xNnWdiRTLKIaJYuBqdbyqLW4
CZOVjgrmlozEydY2ctDFujcbUG/7/l7zbwYMK6Y6eAN88FtQp3Np5j/sFB2T0Fg7R0nTOEZ3jao9
feQjLo1iOWA14FkuS8ala+VAX/du/ukNTO/lebIFX5tkZb9E8h01/08HvXro8AUAAP//AwBQSwME
FAAGAAgAAAAhADMvBZ5BAAAAOQAAABUAAABkcnMvZ3JvdXBzaGFwZXhtbC54bWyysa/IzVEoSy0q
zszPs1Uy1DNQUkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBL
AwQUAAYACAAAACEAXR5pVsIAAADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPT4vCMBTE74LfITzB
m6bqKlKNIsJiTwv+Aa+P5tlUm5eSZLX77TcLCx6HmfkNs952thFP8qF2rGAyzkAQl07XXCm4nD9H
SxAhImtsHJOCHwqw3fR7a8y1e/GRnqdYiQThkKMCE2ObSxlKQxbD2LXEybs5bzEm6SupPb4S3DZy
mmULabHmtGCwpb2h8nH6tgr0R5hdqCh2fvp1P8/r+cFUt6tSw0G3W4GI1MV3+L9daAWzBfx9ST9A
bn4BAAD//wMAUEsBAi0AFAAGAAgAAAAhAKL4T1MEAQAA7AEAABMAAAAAAAAAAAAAAAAAAAAAAFtD
b250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEAbAbV/tgAAACZAQAACwAAAAAAAAAAAAAA
AAA1AQAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAFQAAAAAAAAAAAAAA
AAA2AgAAZHJzL2dyb3Vwc2hhcGV4bWwueG1sUEsBAi0AFAAGAAgAAAAhAF0eaVbCAAAA2wAAAA8A
AAAAAAAAAAAAAAAAqgIAAGRycy9kb3ducmV2LnhtbFBLBQYAAAAABAAEAPoAAACZAwAAAAA=
">
<v:shapetype id="_x0000_t5" coordsize="21600,21600" o:spt="5" adj="10800"
path="m@0,l,21600r21600,xe">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="val #0"/>
<v:f eqn="prod #0 1 2"/>
<v:f eqn="sum @1 10800 0"/>
</v:formulas>
<v:path gradientshapeok="t" o:connecttype="custom" o:connectlocs="@0,0;@1,10800;0,21600;10800,21600;21600,21600;@2,10800"
textboxrect="0,10800,10800,18000;5400,10800,16200,18000;10800,10800,21600,18000;0,7200,7200,21600;7200,7200,14400,21600;14400,7200,21600,21600"/>
<v:handles>
<v:h position="#0,topLeft" xrange="0,21600"/>
</v:handles>
</v:shapetype><v:shape id="Isosceles_x0020_Triangle_x0020_32" o:spid="_x0000_s1028"
type="#_x0000_t5" style='position:absolute;left:3880;top:3855;width:6197;
height:13957;rotation:7383334fd;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAqwjiJcQA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPT2vCQBTE74LfYXlCb7oxBSnRVfxDaSl4iArx+Mg+
k2D2bchuTeynd4WCx2FmfsMsVr2pxY1aV1lWMJ1EIIhzqysuFJyOn+MPEM4ja6wtk4I7OVgth4MF
Jtp2nNLt4AsRIOwSVFB63yRSurwkg25iG+LgXWxr0AfZFlK32AW4qWUcRTNpsOKwUGJD25Ly6+HX
KKBdk/6kd9wfN196fU7j7C/rMqXeRv16DsJT71/h//a3VvAew/NL+AFy+QAAAP//AwBQSwECLQAU
AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht
bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs
c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4
bWwueG1sUEsBAi0AFAAGAAgAAAAhAKsI4iXEAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k
b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA=
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
<v:shape id="Isosceles_x0020_Triangle_x0020_33" o:spid="_x0000_s1029" type="#_x0000_t5"
style='position:absolute;left:16742;top:3548;width:6201;height:13957;
rotation:-7550480fd;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAHcGQYsUA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPS2sCQRCE70L+w9ABL6KziYmPjaPEQIIBPfi6Nzud
3Y07PctOR9d/nwkEPBZV9RU1W7SuUmdqQunZwMMgAUWceVtybuCwf+9PQAVBtlh5JgNXCrCY33Vm
mFp/4S2dd5KrCOGQooFCpE61DllBDsPA18TR+/KNQ4myybVt8BLhrtKPSTLSDkuOCwXW9FZQdtr9
OAP0cf3unWQdno68nY4/n21Plhtjuvft6wsooVZu4f/2yhoYDuHvS/wBev4LAAD//wMAUEsBAi0A
FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54
bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl
bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl
eG1sLnhtbFBLAQItABQABgAIAAAAIQAdwZBixQAAANsAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv
ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
<v:shape id="Isosceles_x0020_Triangle_x0020_34" o:spid="_x0000_s1030" type="#_x0000_t5"
style='position:absolute;left:14013;width:6200;height:13957;rotation:-9893284fd;
visibility:visible;mso-wrap-style:square;v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA3193JMQA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESP0WrCQBRE3wv+w3IF33SjKaLRVURSENqCRj/gmr0m
wezdkN3GtF/fLQh9HGbmDLPe9qYWHbWusqxgOolAEOdWV1wouJzfxgsQziNrrC2Tgm9ysN0MXtaY
aPvgE3WZL0SAsEtQQel9k0jp8pIMuoltiIN3s61BH2RbSN3iI8BNLWdRNJcGKw4LJTa0Lym/Z19G
QZ/u6fpp4mP1PvXdx096j5fzVKnRsN+tQHjq/X/42T5oBfEr/H0JP0BufgEAAP//AwBQSwECLQAU
AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht
bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs
c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4
bWwueG1sUEsBAi0AFAAGAAgAAAAhAN9fdyTEAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k
b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA=
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
<v:shape id="Isosceles_x0020_Triangle_x0020_35" o:spid="_x0000_s1031" type="#_x0000_t5"
style='position:absolute;left:7257;width:6201;height:13957;rotation:10039129fd;
visibility:visible;mso-wrap-style:square;v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAgo2Nn8MA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWsCMRSE7wX/Q3gFbzVbxSpbo4gg9KCFri3S22Pz
ugndvCxJquu/bwTB4zAz3zCLVe9acaIQrWcFz6MCBHHtteVGwedh+zQHEROyxtYzKbhQhNVy8LDA
Uvszf9CpSo3IEI4lKjApdaWUsTbkMI58R5y9Hx8cpixDI3XAc4a7Vo6L4kU6tJwXDHa0MVT/Vn9O
wa4K+n32tbXfu8Nx3050Mmi1UsPHfv0KIlGf7uFb+00rmEzh+iX/ALn8BwAA//8DAFBLAQItABQA
BgAIAAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1s
UEsBAi0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxz
UEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXht
bC54bWxQSwECLQAUAAYACAAAACEAgo2Nn8MAAADbAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rv
d25yZXYueG1sUEsFBgAAAAAEAAQA9QAAAIgDAAAAAA==
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
</v:group><v:group id="Group_x0020_37" o:spid="_x0000_s1032" style='position:absolute;
left:3207;top:3616;width:26816;height:13957' coordsize="26821,13957"
o:gfxdata="UEsDBBQABgAIAAAAIQCi+E9TBAEAAOwBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRy07DMBBF
90j8g+UtShxYIISadEGAHSAoHzCyJ4lFYlseN7R/z7iPDaJIXdpzz5wre7HcTKOYMZL1rpbXZSUF
Ou2NdX0tP1dPxZ0UlMAZGL3DWm6R5LK5vFistgFJMO2olkNK4V4p0gNOQKUP6HjS+ThB4mPsVQD9
BT2qm6q6Vdq7hC4VKe+QzaLFDtZjEo8bvt43iTiSFA/7YHbVEkIYrYbETdXszC9LcTCUTO4yNNhA
V1xDqj8NeXJacOBe+WmiNSjeIKYXmLiGMpFUH/060AABOVj+vyp3najwXWc1lm2k5wx/ZPhY75TG
+G8XcT5X0DL2jvNxu9r9VfMDAAD//wMAUEsDBBQABgAIAAAAIQBsBtX+2AAAAJkBAAALAAAAX3Jl
bHMvLnJlbHOkkMFKAzEQhu+C7xDm7mbbg4g025vQa63gNSSz2eAmE2biat/eWBBc6c3jzM9838/s
9p9pVguyRMoGNl0PCrMjH3Mw8HJ6unsAJdVmb2fKaOCMAvvh9mZ3xNnWdiRTLKIaJYuBqdbyqLW4
CZOVjgrmlozEydY2ctDFujcbUG/7/l7zbwYMK6Y6eAN88FtQp3Np5j/sFB2T0Fg7R0nTOEZ3jao9
feQjLo1iOWA14FkuS8ala+VAX/du/ukNTO/lebIFX5tkZb9E8h01/08HvXro8AUAAP//AwBQSwME
FAAGAAgAAAAhADMvBZ5BAAAAOQAAABUAAABkcnMvZ3JvdXBzaGFwZXhtbC54bWyysa/IzVEoSy0q
zszPs1Uy1DNQUkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBL
AwQUAAYACAAAACEAKWEGDsQAAADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPT4vCMBTE7wt+h/AE
b2taxVWqUURc8SCCf0C8PZpnW2xeSpNt67ffLAh7HGbmN8xi1ZlSNFS7wrKCeBiBIE6tLjhTcL18
f85AOI+ssbRMCl7kYLXsfSww0bblEzVnn4kAYZeggtz7KpHSpTkZdENbEQfvYWuDPsg6k7rGNsBN
KUdR9CUNFhwWcqxok1P6PP8YBbsW2/U43jaH52Pzul8mx9shJqUG/W49B+Gp8//hd3uvFYyn8Pcl
/AC5/AUAAP//AwBQSwECLQAUAAYACAAAACEAovhPUwQBAADsAQAAEwAAAAAAAAAAAAAAAAAAAAAA
W0NvbnRlbnRfVHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQBsBtX+2AAAAJkBAAALAAAAAAAAAAAA
AAAAADUBAABfcmVscy8ucmVsc1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAVAAAAAAAAAAAA
AAAAADYCAABkcnMvZ3JvdXBzaGFwZXhtbC54bWxQSwECLQAUAAYACAAAACEAKWEGDsQAAADbAAAA
DwAAAAAAAAAAAAAAAACqAgAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAAEAAQA+gAAAJsDAAAAAA==
">
<v:shape id="Isosceles_x0020_Triangle_x0020_31" o:spid="_x0000_s1033" type="#_x0000_t5"
style='position:absolute;left:3880;top:3787;width:6197;height:13957;
rotation:7383334fd;visibility:visible;mso-wrap-style:square;v-text-anchor:middle'
o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAW9p8UsUA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE70L/w/IKvekmKYikrhJbSkvBQ7SQHh/Z
1ySYfRuy2yT217uC4HGYmW+Y9XYyrRiod41lBfEiAkFcWt1wpeD7+D5fgXAeWWNrmRScycF28zBb
Y6rtyDkNB1+JAGGXooLa+y6V0pU1GXQL2xEH79f2Bn2QfSV1j2OAm1YmUbSUBhsOCzV29FpTeTr8
GQX01uVf+Rn3x92Hzn7ypPgvxkKpp8cpewHhafL38K39qRU8x3D9En6A3FwAAAD//wMAUEsBAi0A
FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54
bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl
bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl
eG1sLnhtbFBLAQItABQABgAIAAAAIQBb2nxSxQAAANsAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv
ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
<v:shape id="Isosceles_x0020_Triangle_x0020_30" o:spid="_x0000_s1034" type="#_x0000_t5"
style='position:absolute;left:16742;top:3548;width:6201;height:13957;
rotation:-7550480fd;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA7RMOFcEA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbERPS2vCQBC+C/6HZYRepG7UvoyuYoUWC+1BW+9Ddkyi
2dmQHTX+e/dQ8PjxvWeL1lXqTE0oPRsYDhJQxJm3JecG/n4/Ht9ABUG2WHkmA1cKsJh3OzNMrb/w
hs5byVUM4ZCigUKkTrUOWUEOw8DXxJHb+8ahRNjk2jZ4ieGu0qMkedEOS44NBda0Kig7bk/OAH1e
D/2jfIenHW8mr1/Pti/vP8Y89NrlFJRQK3fxv3ttDYzj+vgl/gA9vwEAAP//AwBQSwECLQAUAAYA
CAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBL
AQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVsc1BL
AQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4bWwu
eG1sUEsBAi0AFAAGAAgAAAAhAO0TDhXBAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9kb3du
cmV2LnhtbFBLBQYAAAAABAAEAPUAAACGAwAAAAA=
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
<v:shape id="Isosceles_x0020_Triangle_x0020_29" o:spid="_x0000_s1035" type="#_x0000_t5"
style='position:absolute;left:14013;width:6200;height:13957;rotation:-9893284fd;
visibility:visible;mso-wrap-style:square;v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAtIdOZ8UA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESP0WrCQBRE34X+w3ILfTMbFYJJs0qRCAUt2LQfcJu9
TYLZuyG7xujXdwuFPg4zc4bJt5PpxEiDay0rWEQxCOLK6pZrBZ8f+/kahPPIGjvLpOBGDrabh1mO
mbZXfqex9LUIEHYZKmi87zMpXdWQQRfZnjh433Yw6IMcaqkHvAa46eQyjhNpsOWw0GBPu4aqc3kx
CqZiR19vZnVqDws/Hu/FeZUmhVJPj9PLMwhPk/8P/7VftYJlCr9fwg+Qmx8AAAD//wMAUEsBAi0A
FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54
bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl
bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl
eG1sLnhtbFBLAQItABQABgAIAAAAIQC0h05nxQAAANsAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv
ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
<v:shape id="Isosceles_x0020_Triangle_x0020_28" o:spid="_x0000_s1036" type="#_x0000_t5"
style='position:absolute;left:7325;width:6201;height:13957;rotation:10039129fd;
visibility:visible;mso-wrap-style:square;v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA6VW03MAA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbERPTWsCMRC9C/6HMII3zdZCW1ajFEHwoIWuFfE2bMZN
cDNZklTXf28OhR4f73ux6l0rbhSi9azgZVqAIK69ttwo+DlsJh8gYkLW2HomBQ+KsFoOBwsstb/z
N92q1IgcwrFEBSalrpQy1oYcxqnviDN38cFhyjA0Uge853DXyllRvEmHlnODwY7Whupr9esU7Kqg
v96PG3veHU779lUng1YrNR71n3MQifr0L/5zb7WCWR6bv+QfIJdPAAAA//8DAFBLAQItABQABgAI
AAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsB
Ai0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxzUEsB
Ai0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXhtbC54
bWxQSwECLQAUAAYACAAAACEA6VW03MAAAADbAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rvd25y
ZXYueG1sUEsFBgAAAAAEAAQA9QAAAIUDAAAAAA==
" fillcolor="#b8cce4 [1300]" strokecolor="#c6d9f1 [671]" strokeweight="2pt"/>
</v:group><v:line id="Straight_x0020_Connector_x0020_2" o:spid="_x0000_s1037"
style='position:absolute;visibility:visible;mso-wrap-style:square' from="0,0"
to="27432,27495" o:connectortype="straight" o:gfxdata="UEsDBBQABgAIAAAAIQD+JeulAAEAAOoBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzU7EIBDH
7ya+A+FqWqoHY0zpHqwe1Zj1AQhMW2I7EAbr7ts73e5ejGviEeb/8RuoN7tpFDMk8gG1vC4rKQBt
cB57Ld+3T8WdFJQNOjMGBC33QHLTXF7U230EEuxG0nLIOd4rRXaAyVAZIiBPupAmk/mYehWN/TA9
qJuqulU2YAbMRV4yZFO30JnPMYvHHV+vJAlGkuJhFS5dWpoYR29NZlI1o/vRUhwbSnYeNDT4SFeM
IdWvDcvkfMHR98JPk7wD8WpSfjYTYyiXaNkAweaQWFf+nbSgTlSErvMWyjYRL7V6T3DnSlz4wgTz
f/Nbtr3BfEpXh59qvgEAAP//AwBQSwMEFAAGAAgAAAAhAJYFM1jUAAAAlwEAAAsAAABfcmVscy8u
cmVsc6SQPWsDMQyG90L/g9He8yVDKSW+bIWsIYWuxtZ9kLNkJHNN/n1MoaVXsnWUXvQ8L9rtL2k2
C4pOTA42TQsGKXCcaHDwfnp7egGjxVP0MxM6uKLCvnt82B1x9qUe6ThlNZVC6mAsJb9aq2HE5LXh
jFSTniX5UkcZbPbh7Ae027Z9tvKbAd2KaQ7RgRziFszpmqv5DztNQVi5L03gZLnvp3CPaiN/0hGX
SvEyYHEQRb+WgktTy4G979380xuYCENh+aiOlfwnqfbvBnb1zu4GAAD//wMAUEsDBBQABgAIAAAA
IQAzLwWeQQAAADkAAAAUAAAAZHJzL2Nvbm5lY3RvcnhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQ
UkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAA
ACEAaPUZFcEAAADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWsCMRSE74L/IbyCt5pVUepqFCkV
xZ66rffH5nV3cfOyJlHjvzeFgsdhZr5hlutoWnEl5xvLCkbDDARxaXXDlYKf7+3rGwgfkDW2lknB
nTysV/3eEnNtb/xF1yJUIkHY56igDqHLpfRlTQb90HbEyfu1zmBI0lVSO7wluGnlOMtm0mDDaaHG
jt5rKk/FxSTK6Hg2cnea4/HgPt3HZBan8azU4CVuFiACxfAM/7f3WsEY/q6kGyBXDwAAAP//AwBQ
SwECLQAUAAYACAAAACEA/iXrpQABAADqAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlw
ZXNdLnhtbFBLAQItABQABgAIAAAAIQCWBTNY1AAAAJcBAAALAAAAAAAAAAAAAAAAADEBAABfcmVs
cy8ucmVsc1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAUAAAAAAAAAAAAAAAAAC4CAABkcnMv
Y29ubmVjdG9yeG1sLnhtbFBLAQItABQABgAIAAAAIQBo9RkVwQAAANoAAAAPAAAAAAAAAAAAAAAA
AKECAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABAD5AAAAjwMAAAAA
" strokecolor="black [3040]"/>
<v:line id="Straight_x0020_Connector_x0020_3" o:spid="_x0000_s1038" style='position:absolute;
flip:y;visibility:visible;mso-wrap-style:square' from="341,5527" to="28655,32273"
o:connectortype="straight" o:gfxdata="UEsDBBQABgAIAAAAIQD+JeulAAEAAOoBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzU7EIBDH
7ya+A+FqWqoHY0zpHqwe1Zj1AQhMW2I7EAbr7ts73e5ejGviEeb/8RuoN7tpFDMk8gG1vC4rKQBt
cB57Ld+3T8WdFJQNOjMGBC33QHLTXF7U230EEuxG0nLIOd4rRXaAyVAZIiBPupAmk/mYehWN/TA9
qJuqulU2YAbMRV4yZFO30JnPMYvHHV+vJAlGkuJhFS5dWpoYR29NZlI1o/vRUhwbSnYeNDT4SFeM
IdWvDcvkfMHR98JPk7wD8WpSfjYTYyiXaNkAweaQWFf+nbSgTlSErvMWyjYRL7V6T3DnSlz4wgTz
f/Nbtr3BfEpXh59qvgEAAP//AwBQSwMEFAAGAAgAAAAhAJYFM1jUAAAAlwEAAAsAAABfcmVscy8u
cmVsc6SQPWsDMQyG90L/g9He8yVDKSW+bIWsIYWuxtZ9kLNkJHNN/n1MoaVXsnWUXvQ8L9rtL2k2
C4pOTA42TQsGKXCcaHDwfnp7egGjxVP0MxM6uKLCvnt82B1x9qUe6ThlNZVC6mAsJb9aq2HE5LXh
jFSTniX5UkcZbPbh7Ae027Z9tvKbAd2KaQ7RgRziFszpmqv5DztNQVi5L03gZLnvp3CPaiN/0hGX
SvEyYHEQRb+WgktTy4G979380xuYCENh+aiOlfwnqfbvBnb1zu4GAAD//wMAUEsDBBQABgAIAAAA
IQAzLwWeQQAAADkAAAAUAAAAZHJzL2Nvbm5lY3RvcnhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQ
UkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAA
ACEAYAh28sIAAADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPS4sCMRCE7wv+h9CCtzWjwiqjUUQQ
RFF8Hrw1k54HTjrDJDqz/94sLHgsquorarZoTSleVLvCsoJBPwJBnFhdcKbgell/T0A4j6yxtEwK
fsnBYt75mmGsbcMnep19JgKEXYwKcu+rWEqX5GTQ9W1FHLzU1gZ9kHUmdY1NgJtSDqPoRxosOCzk
WNEqp+RxfhoFqXtWq/tN+3S83Z/26S47YHNUqtdtl1MQnlr/Cf+3N1rBCP6uhBsg528AAAD//wMA
UEsBAi0AFAAGAAgAAAAhAP4l66UAAQAA6gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5
cGVzXS54bWxQSwECLQAUAAYACAAAACEAlgUzWNQAAACXAQAACwAAAAAAAAAAAAAAAAAxAQAAX3Jl
bHMvLnJlbHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAFAAAAAAAAAAAAAAAAAAuAgAAZHJz
L2Nvbm5lY3RvcnhtbC54bWxQSwECLQAUAAYACAAAACEAYAh28sIAAADaAAAADwAAAAAAAAAAAAAA
AAChAgAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAAEAAQA+QAAAJADAAAAAA==
" strokecolor="black [3040]"/>
<v:group id="Group_x0020_39" o:spid="_x0000_s1039" style='position:absolute;
left:2593;top:3548;width:28390;height:27641' coordsize="28391,27642"
o:gfxdata="UEsDBBQABgAIAAAAIQCi+E9TBAEAAOwBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRy07DMBBF
90j8g+UtShxYIISadEGAHSAoHzCyJ4lFYlseN7R/z7iPDaJIXdpzz5wre7HcTKOYMZL1rpbXZSUF
Ou2NdX0tP1dPxZ0UlMAZGL3DWm6R5LK5vFistgFJMO2olkNK4V4p0gNOQKUP6HjS+ThB4mPsVQD9
BT2qm6q6Vdq7hC4VKe+QzaLFDtZjEo8bvt43iTiSFA/7YHbVEkIYrYbETdXszC9LcTCUTO4yNNhA
V1xDqj8NeXJacOBe+WmiNSjeIKYXmLiGMpFUH/060AABOVj+vyp3najwXWc1lm2k5wx/ZPhY75TG
+G8XcT5X0DL2jvNxu9r9VfMDAAD//wMAUEsDBBQABgAIAAAAIQBsBtX+2AAAAJkBAAALAAAAX3Jl
bHMvLnJlbHOkkMFKAzEQhu+C7xDm7mbbg4g025vQa63gNSSz2eAmE2biat/eWBBc6c3jzM9838/s
9p9pVguyRMoGNl0PCrMjH3Mw8HJ6unsAJdVmb2fKaOCMAvvh9mZ3xNnWdiRTLKIaJYuBqdbyqLW4
CZOVjgrmlozEydY2ctDFujcbUG/7/l7zbwYMK6Y6eAN88FtQp3Np5j/sFB2T0Fg7R0nTOEZ3jao9
feQjLo1iOWA14FkuS8ala+VAX/du/ukNTO/lebIFX5tkZb9E8h01/08HvXro8AUAAP//AwBQSwME
FAAGAAgAAAAhADMvBZ5BAAAAOQAAABUAAABkcnMvZ3JvdXBzaGFwZXhtbC54bWyysa/IzVEoSy0q
zszPs1Uy1DNQUkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBL
AwQUAAYACAAAACEAN7I358QAAADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPT4vCMBTE7wt+h/AE
b2taxUWrUURc8SCCf0C8PZpnW2xeSpNt67ffLAh7HGbmN8xi1ZlSNFS7wrKCeBiBIE6tLjhTcL18
f05BOI+ssbRMCl7kYLXsfSww0bblEzVnn4kAYZeggtz7KpHSpTkZdENbEQfvYWuDPsg6k7rGNsBN
KUdR9CUNFhwWcqxok1P6PP8YBbsW2/U43jaH52Pzul8mx9shJqUG/W49B+Gp8//hd3uvFYxn8Pcl
/AC5/AUAAP//AwBQSwECLQAUAAYACAAAACEAovhPUwQBAADsAQAAEwAAAAAAAAAAAAAAAAAAAAAA
W0NvbnRlbnRfVHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQBsBtX+2AAAAJkBAAALAAAAAAAAAAAA
AAAAADUBAABfcmVscy8ucmVsc1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAVAAAAAAAAAAAA
AAAAADYCAABkcnMvZ3JvdXBzaGFwZXhtbC54bWxQSwECLQAUAAYACAAAACEAN7I358QAAADbAAAA
DwAAAAAAAAAAAAAAAACqAgAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAAEAAQA+gAAAJsDAAAAAA==
">
<v:shapetype id="_x0000_t68" coordsize="21600,21600" o:spt="68" adj="5400,5400"
path="m0@0l@1@0@1,21600@2,21600@2@0,21600@0,10800,xe">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="val #0"/>
<v:f eqn="val #1"/>
<v:f eqn="sum 21600 0 #1"/>
<v:f eqn="prod #0 #1 10800"/>
<v:f eqn="sum #0 0 @3"/>
</v:formulas>
<v:path o:connecttype="custom" o:connectlocs="10800,0;0,@0;10800,21600;21600,@0"
o:connectangles="270,180,90,0" textboxrect="@1,@4,@2,21600"/>
<v:handles>
<v:h position="#1,#0" xrange="0,10800" yrange="0,21600"/>
</v:handles>
</v:shapetype><v:shape id="Up_x0020_Arrow_x0020_4" o:spid="_x0000_s1040"
type="#_x0000_t68" style='position:absolute;left:13988;width:478;height:3480;
visibility:visible;mso-wrap-style:square;v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAKXVb9MIA
AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE74L/YXlCb7pRSgmpq0RF8eCl2vb8yD6z
0ezbmF01/vtuQfA4zMw3zHTe2VrcqPWVYwXjUQKCuHC64lLB92E9TEH4gKyxdkwKHuRhPuv3pphp
d+cvuu1DKSKEfYYKTAhNJqUvDFn0I9cQR+/oWoshyraUusV7hNtaTpLkQ1qsOC4YbGhpqDjvr1ZB
t0jdZfuT54VPTw7N72axW02Ueht0+SeIQF14hZ/trVbwDv9X4g2Qsz8AAAD//wMAUEsBAi0AFAAG
AAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQ
SwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJlbHNQ
SwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBleG1s
LnhtbFBLAQItABQABgAIAAAAIQApdVv0wgAAANoAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMvZG93
bnJldi54bWxQSwUGAAAAAAQABAD1AAAAhwMAAAAA
" adj="1482" fillcolor="black [3200]" strokecolor="black [1600]"
strokeweight="2pt"/>
<v:shape id="Up_x0020_Arrow_x0020_5" o:spid="_x0000_s1041" type="#_x0000_t68"
style='position:absolute;left:13988;top:23678;width:478;height:3822;flip:y;
visibility:visible;mso-wrap-style:square;v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAt6ual8QA
AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWsCMRSE74X+h/AKXkSzFVplNUppEcTDglb0+tw8
N4ublyWJuvrrm0Khx2FmvmFmi8424ko+1I4VvA4zEMSl0zVXCnbfy8EERIjIGhvHpOBOARbz56cZ
5trdeEPXbaxEgnDIUYGJsc2lDKUhi2HoWuLknZy3GJP0ldQebwluGznKsndpsea0YLClT0PleXux
CjbFY70/ft3X9bh6FKPC9w/B9JXqvXQfUxCRuvgf/muvtII3+L2SboCc/wAAAP//AwBQSwECLQAU
AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht
bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs
c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4
bWwueG1sUEsBAi0AFAAGAAgAAAAhALermpfEAAAA2gAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k
b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA=
" adj="1350" fillcolor="black [3200]" strokecolor="black [1600]"
strokeweight="2pt"/>
<v:shapetype id="_x0000_t13" coordsize="21600,21600" o:spt="13" adj="16200,5400"
path="m@0,l@0@1,0@1,0@2@0@2@0,21600,21600,10800xe">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="val #0"/>
<v:f eqn="val #1"/>
<v:f eqn="sum height 0 #1"/>
<v:f eqn="sum 10800 0 #1"/>
<v:f eqn="sum width 0 #0"/>
<v:f eqn="prod @4 @3 10800"/>
<v:f eqn="sum width 0 @5"/>
</v:formulas>
<v:path o:connecttype="custom" o:connectlocs="@0,0;0,10800;@0,21600;21600,10800"
o:connectangles="270,180,90,0" textboxrect="0,@1,@6,@2"/>
<v:handles>
<v:h position="#0,#1" xrange="0,21600" yrange="0,10800"/>
</v:handles>
</v:shapetype><v:shape id="Right_x0020_Arrow_x0020_7" o:spid="_x0000_s1042"
type="#_x0000_t13" style='position:absolute;left:24702;top:13306;width:3412;
height:819;visibility:visible;mso-wrap-style:square;v-text-anchor:middle'
o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA6bF67MEA
AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPwWrDMBBE74H+g9hAb4mclCatE9mUuoVc6xhyXayN
ZWytjKU47t9XhUKPw8y8YY75bHsx0ehbxwo26wQEce10y42C6vy5egHhA7LG3jEp+CYPefawOGKq
3Z2/aCpDIyKEfYoKTAhDKqWvDVn0azcQR+/qRoshyrGResR7hNtebpNkJy22HBcMDvRuqO7Km1UQ
njq3k41/nk1xKXo8Va9YfCj1uJzfDiACzeE//Nc+aQV7+L0Sb4DMfgAAAP//AwBQSwECLQAUAAYA
CAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnhtbFBL
AQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVsc1BL
AQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4bWwu
eG1sUEsBAi0AFAAGAAgAAAAhAOmxeuzBAAAA2gAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9kb3du
cmV2LnhtbFBLBQYAAAAABAAEAPUAAACGAwAAAAA=
" adj="19008" fillcolor="black [3200]" strokecolor="black [1600]"
strokeweight="2pt"/>
<v:shape id="Right_x0020_Arrow_x0020_8" o:spid="_x0000_s1043" type="#_x0000_t13"
style='position:absolute;left:272;top:13170;width:3481;height:818;flip:x;
visibility:visible;mso-wrap-style:square;v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEACW1EEroA
AADaAAAADwAAAGRycy9kb3ducmV2LnhtbERPSwrCMBDdC94hjOBOUxWlVKOIIFgEwc8BhmZsi80k
NFHr7c1CcPl4/9WmM414Uetrywom4wQEcWF1zaWC23U/SkH4gKyxsUwKPuRhs+73Vphp++YzvS6h
FDGEfYYKqhBcJqUvKjLox9YRR+5uW4MhwraUusV3DDeNnCbJQhqsOTZU6GhXUfG4PI2CJ/Mtnc3O
eX60p9x05Oa6dEoNB912CSJQF/7in/ugFcSt8Uq8AXL9BQAA//8DAFBLAQItABQABgAIAAAAIQDw
94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1sUEsBAi0AFAAG
AAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxzUEsBAi0AFAAG
AAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXhtbC54bWxQSwEC
LQAUAAYACAAAACEACW1EEroAAADaAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rvd25yZXYueG1s
UEsFBgAAAAAEAAQA9QAAAH8DAAAAAA==
" adj="19059" fillcolor="black [3200]" strokecolor="black [1600]"
strokeweight="2pt"/>
<v:shapetype id="_x0000_t32" coordsize="21600,21600" o:spt="32" o:oned="t"
path="m,l21600,21600e" filled="f">
<v:path arrowok="t" fillok="f" o:connecttype="none"/>
<o:lock v:ext="edit" shapetype="t"/>
</v:shapetype><v:shape id="Straight_x0020_Arrow_x0020_Connector_x0020_9"
o:spid="_x0000_s1044" type="#_x0000_t32" style='position:absolute;left:24702;
width:3676;height:3527;flip:y;visibility:visible;mso-wrap-style:square'
o:connectortype="straight" o:gfxdata="UEsDBBQABgAIAAAAIQD+JeulAAEAAOoBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzU7EIBDH
7ya+A+FqWqoHY0zpHqwe1Zj1AQhMW2I7EAbr7ts73e5ejGviEeb/8RuoN7tpFDMk8gG1vC4rKQBt
cB57Ld+3T8WdFJQNOjMGBC33QHLTXF7U230EEuxG0nLIOd4rRXaAyVAZIiBPupAmk/mYehWN/TA9
qJuqulU2YAbMRV4yZFO30JnPMYvHHV+vJAlGkuJhFS5dWpoYR29NZlI1o/vRUhwbSnYeNDT4SFeM
IdWvDcvkfMHR98JPk7wD8WpSfjYTYyiXaNkAweaQWFf+nbSgTlSErvMWyjYRL7V6T3DnSlz4wgTz
f/Nbtr3BfEpXh59qvgEAAP//AwBQSwMEFAAGAAgAAAAhAJYFM1jUAAAAlwEAAAsAAABfcmVscy8u
cmVsc6SQPWsDMQyG90L/g9He8yVDKSW+bIWsIYWuxtZ9kLNkJHNN/n1MoaVXsnWUXvQ8L9rtL2k2
C4pOTA42TQsGKXCcaHDwfnp7egGjxVP0MxM6uKLCvnt82B1x9qUe6ThlNZVC6mAsJb9aq2HE5LXh
jFSTniX5UkcZbPbh7Ae027Z9tvKbAd2KaQ7RgRziFszpmqv5DztNQVi5L03gZLnvp3CPaiN/0hGX
SvEyYHEQRb+WgktTy4G979380xuYCENh+aiOlfwnqfbvBnb1zu4GAAD//wMAUEsDBBQABgAIAAAA
IQAzLwWeQQAAADkAAAAUAAAAZHJzL2Nvbm5lY3RvcnhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQ
UkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAA
ACEAAQABbMQAAADaAAAADwAAAGRycy9kb3ducmV2LnhtbESP3WrCQBSE74W+w3IK3plNFYtNXaUU
xJ+CYFqa20P2NBuaPRuya0zfvisIXg4z8w2zXA+2ET11vnas4ClJQRCXTtdcKfj63EwWIHxA1tg4
JgV/5GG9ehgtMdPuwifq81CJCGGfoQITQptJ6UtDFn3iWuLo/bjOYoiyq6Tu8BLhtpHTNH2WFmuO
CwZbejdU/uZnq6CY+aI/7HJtph+zo/sutvN9y0qNH4e3VxCBhnAP39o7reAFrlfiDZCrfwAAAP//
AwBQSwECLQAUAAYACAAAACEA/iXrpQABAADqAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRf
VHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQCWBTNY1AAAAJcBAAALAAAAAAAAAAAAAAAAADEBAABf
cmVscy8ucmVsc1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAUAAAAAAAAAAAAAAAAAC4CAABk
cnMvY29ubmVjdG9yeG1sLnhtbFBLAQItABQABgAIAAAAIQABAAFsxAAAANoAAAAPAAAAAAAAAAAA
AAAAAKECAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABAD5AAAAkgMAAAAA
" strokecolor="black [3200]" strokeweight="3pt">
<v:stroke endarrow="open"/>
<v:shadow on="t" color="black" opacity="22937f" origin=",.5" offset="0,.63889mm"/>
</v:shape><v:shape id="Straight_x0020_Arrow_x0020_Connector_x0020_10" o:spid="_x0000_s1045"
type="#_x0000_t32" style='position:absolute;top:23678;width:3207;height:3080;
flip:x;visibility:visible;mso-wrap-style:square' o:connectortype="straight"
o:gfxdata="UEsDBBQABgAIAAAAIQD+JeulAAEAAOoBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzU7EIBDH
7ya+A+FqWqoHY0zpHqwe1Zj1AQhMW2I7EAbr7ts73e5ejGviEeb/8RuoN7tpFDMk8gG1vC4rKQBt
cB57Ld+3T8WdFJQNOjMGBC33QHLTXF7U230EEuxG0nLIOd4rRXaAyVAZIiBPupAmk/mYehWN/TA9
qJuqulU2YAbMRV4yZFO30JnPMYvHHV+vJAlGkuJhFS5dWpoYR29NZlI1o/vRUhwbSnYeNDT4SFeM
IdWvDcvkfMHR98JPk7wD8WpSfjYTYyiXaNkAweaQWFf+nbSgTlSErvMWyjYRL7V6T3DnSlz4wgTz
f/Nbtr3BfEpXh59qvgEAAP//AwBQSwMEFAAGAAgAAAAhAJYFM1jUAAAAlwEAAAsAAABfcmVscy8u
cmVsc6SQPWsDMQyG90L/g9He8yVDKSW+bIWsIYWuxtZ9kLNkJHNN/n1MoaVXsnWUXvQ8L9rtL2k2
C4pOTA42TQsGKXCcaHDwfnp7egGjxVP0MxM6uKLCvnt82B1x9qUe6ThlNZVC6mAsJb9aq2HE5LXh
jFSTniX5UkcZbPbh7Ae027Z9tvKbAd2KaQ7RgRziFszpmqv5DztNQVi5L03gZLnvp3CPaiN/0hGX
SvEyYHEQRb+WgktTy4G979380xuYCENh+aiOlfwnqfbvBnb1zu4GAAD//wMAUEsDBBQABgAIAAAA
IQAzLwWeQQAAADkAAAAUAAAAZHJzL2Nvbm5lY3RvcnhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQ
UkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAA
ACEASHpTr8QAAADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBCF7wX/wzIFb3VTxVKiqxSh
1FoomJbmOmTHbGh2NmTXmP77zkHwNsN789436+3oWzVQH5vABh5nGSjiKtiGawPfX68Pz6BiQrbY
BiYDfxRhu5ncrTG34cJHGopUKwnhmKMBl1KXax0rRx7jLHTEop1C7zHJ2tfa9niRcN/qeZY9aY8N
S4PDjnaOqt/i7A2Ui1gOh31h3fxj8Rl+yrfle8fGTO/HlxWoRGO6ma/Xeyv4Qi+/yAB68w8AAP//
AwBQSwECLQAUAAYACAAAACEA/iXrpQABAADqAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRf
VHlwZXNdLnhtbFBLAQItABQABgAIAAAAIQCWBTNY1AAAAJcBAAALAAAAAAAAAAAAAAAAADEBAABf
cmVscy8ucmVsc1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAUAAAAAAAAAAAAAAAAAC4CAABk
cnMvY29ubmVjdG9yeG1sLnhtbFBLAQItABQABgAIAAAAIQBIelOvxAAAANsAAAAPAAAAAAAAAAAA
AAAAAKECAABkcnMvZG93bnJldi54bWxQSwUGAAAAAAQABAD5AAAAkgMAAAAA
" strokecolor="black [3200]" strokeweight="3pt">
<v:stroke endarrow="open"/>
<v:shadow on="t" color="black" opacity="22937f" origin=",.5" offset="0,.63889mm"/>
</v:shape><v:shape id="Straight_x0020_Arrow_x0020_Connector_x0020_11" o:spid="_x0000_s1046"
type="#_x0000_t32" style='position:absolute;left:682;width:3070;height:3002;
flip:x y;visibility:visible;mso-wrap-style:square' o:connectortype="straight"
o:gfxdata="UEsDBBQABgAIAAAAIQD+JeulAAEAAOoBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzU7EIBDH
7ya+A+FqWqoHY0zpHqwe1Zj1AQhMW2I7EAbr7ts73e5ejGviEeb/8RuoN7tpFDMk8gG1vC4rKQBt
cB57Ld+3T8WdFJQNOjMGBC33QHLTXF7U230EEuxG0nLIOd4rRXaAyVAZIiBPupAmk/mYehWN/TA9
qJuqulU2YAbMRV4yZFO30JnPMYvHHV+vJAlGkuJhFS5dWpoYR29NZlI1o/vRUhwbSnYeNDT4SFeM
IdWvDcvkfMHR98JPk7wD8WpSfjYTYyiXaNkAweaQWFf+nbSgTlSErvMWyjYRL7V6T3DnSlz4wgTz
f/Nbtr3BfEpXh59qvgEAAP//AwBQSwMEFAAGAAgAAAAhAJYFM1jUAAAAlwEAAAsAAABfcmVscy8u
cmVsc6SQPWsDMQyG90L/g9He8yVDKSW+bIWsIYWuxtZ9kLNkJHNN/n1MoaVXsnWUXvQ8L9rtL2k2
C4pOTA42TQsGKXCcaHDwfnp7egGjxVP0MxM6uKLCvnt82B1x9qUe6ThlNZVC6mAsJb9aq2HE5LXh
jFSTniX5UkcZbPbh7Ae027Z9tvKbAd2KaQ7RgRziFszpmqv5DztNQVi5L03gZLnvp3CPaiN/0hGX
SvEyYHEQRb+WgktTy4G979380xuYCENh+aiOlfwnqfbvBnb1zu4GAAD//wMAUEsDBBQABgAIAAAA
IQAzLwWeQQAAADkAAAAUAAAAZHJzL2Nvbm5lY3RvcnhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQ
UkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAA
ACEAMabWxMIAAADbAAAADwAAAGRycy9kb3ducmV2LnhtbERPS2sCMRC+F/wPYYTearJFiqxGkbWC
lx5ca8HbuJl94GaybKKu/94UCr3Nx/ecxWqwrbhR7xvHGpKJAkFcONNwpeH7sH2bgfAB2WDrmDQ8
yMNqOXpZYGrcnfd0y0MlYgj7FDXUIXSplL6oyaKfuI44cqXrLYYI+0qaHu8x3LbyXakPabHh2FBj
R1lNxSW/Wg0/s2m5OZSnR5ZkuTp+nT+b7qi0fh0P6zmIQEP4F/+5dybOT+D3l3iAXD4BAAD//wMA
UEsBAi0AFAAGAAgAAAAhAP4l66UAAQAA6gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5
cGVzXS54bWxQSwECLQAUAAYACAAAACEAlgUzWNQAAACXAQAACwAAAAAAAAAAAAAAAAAxAQAAX3Jl
bHMvLnJlbHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAFAAAAAAAAAAAAAAAAAAuAgAAZHJz
L2Nvbm5lY3RvcnhtbC54bWxQSwECLQAUAAYACAAAACEAMabWxMIAAADbAAAADwAAAAAAAAAAAAAA
AAChAgAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAAEAAQA+QAAAJADAAAAAA==
" strokecolor="black [3200]" strokeweight="3pt">
<v:stroke endarrow="open"/>
<v:shadow on="t" color="black" opacity="22937f" origin=",.5" offset="0,.63889mm"/>
</v:shape><v:shape id="Straight_x0020_Arrow_x0020_Connector_x0020_12" o:spid="_x0000_s1047"
type="#_x0000_t32" style='position:absolute;left:24975;top:24429;width:3416;
height:3213;visibility:visible;mso-wrap-style:square' o:connectortype="straight"
o:gfxdata="UEsDBBQABgAIAAAAIQD+JeulAAEAAOoBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzU7EIBDH
7ya+A+FqWqoHY0zpHqwe1Zj1AQhMW2I7EAbr7ts73e5ejGviEeb/8RuoN7tpFDMk8gG1vC4rKQBt
cB57Ld+3T8WdFJQNOjMGBC33QHLTXF7U230EEuxG0nLIOd4rRXaAyVAZIiBPupAmk/mYehWN/TA9
qJuqulU2YAbMRV4yZFO30JnPMYvHHV+vJAlGkuJhFS5dWpoYR29NZlI1o/vRUhwbSnYeNDT4SFeM
IdWvDcvkfMHR98JPk7wD8WpSfjYTYyiXaNkAweaQWFf+nbSgTlSErvMWyjYRL7V6T3DnSlz4wgTz
f/Nbtr3BfEpXh59qvgEAAP//AwBQSwMEFAAGAAgAAAAhAJYFM1jUAAAAlwEAAAsAAABfcmVscy8u
cmVsc6SQPWsDMQyG90L/g9He8yVDKSW+bIWsIYWuxtZ9kLNkJHNN/n1MoaVXsnWUXvQ8L9rtL2k2
C4pOTA42TQsGKXCcaHDwfnp7egGjxVP0MxM6uKLCvnt82B1x9qUe6ThlNZVC6mAsJb9aq2HE5LXh
jFSTniX5UkcZbPbh7Ae027Z9tvKbAd2KaQ7RgRziFszpmqv5DztNQVi5L03gZLnvp3CPaiN/0hGX
SvEyYHEQRb+WgktTy4G979380xuYCENh+aiOlfwnqfbvBnb1zu4GAAD//wMAUEsDBBQABgAIAAAA
IQAzLwWeQQAAADkAAAAUAAAAZHJzL2Nvbm5lY3RvcnhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQ
UkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAA
ACEAQUx0Eb8AAADbAAAADwAAAGRycy9kb3ducmV2LnhtbERPzWoCMRC+F3yHMIK3mq1Iq1ujiCDo
oYWqDzBsppulm0nYjOv69qZQ6G0+vt9ZbQbfqp661AQ28DItQBFXwTZcG7ic988LUEmQLbaBycCd
EmzWo6cVljbc+Iv6k9Qqh3Aq0YATiaXWqXLkMU1DJM7cd+g8SoZdrW2HtxzuWz0rilftseHc4DDS
zlH1c7p6A0u3ExnuvcR4/jzqt/lHXNTWmMl42L6DEhrkX/znPtg8fwa/v+QD9PoBAAD//wMAUEsB
Ai0AFAAGAAgAAAAhAP4l66UAAQAA6gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVz
XS54bWxQSwECLQAUAAYACAAAACEAlgUzWNQAAACXAQAACwAAAAAAAAAAAAAAAAAxAQAAX3JlbHMv
LnJlbHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAFAAAAAAAAAAAAAAAAAAuAgAAZHJzL2Nv
bm5lY3RvcnhtbC54bWxQSwECLQAUAAYACAAAACEAQUx0Eb8AAADbAAAADwAAAAAAAAAAAAAAAACh
AgAAZHJzL2Rvd25yZXYueG1sUEsFBgAAAAAEAAQA+QAAAI0DAAAAAA==
" strokecolor="black [3200]" strokeweight="3pt">
<v:stroke endarrow="open"/>
<v:shadow on="t" color="black" opacity="22937f" origin=",.5" offset="0,.63889mm"/>
</v:shape></v:group><v:group id="Group_x0020_38" o:spid="_x0000_s1048"
style='position:absolute;left:5800;top:6550;width:21901;height:21349'
coordsize="21904,21354" o:gfxdata="UEsDBBQABgAIAAAAIQCi+E9TBAEAAOwBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRy07DMBBF
90j8g+UtShxYIISadEGAHSAoHzCyJ4lFYlseN7R/z7iPDaJIXdpzz5wre7HcTKOYMZL1rpbXZSUF
Ou2NdX0tP1dPxZ0UlMAZGL3DWm6R5LK5vFistgFJMO2olkNK4V4p0gNOQKUP6HjS+ThB4mPsVQD9
BT2qm6q6Vdq7hC4VKe+QzaLFDtZjEo8bvt43iTiSFA/7YHbVEkIYrYbETdXszC9LcTCUTO4yNNhA
V1xDqj8NeXJacOBe+WmiNSjeIKYXmLiGMpFUH/060AABOVj+vyp3najwXWc1lm2k5wx/ZPhY75TG
+G8XcT5X0DL2jvNxu9r9VfMDAAD//wMAUEsDBBQABgAIAAAAIQBsBtX+2AAAAJkBAAALAAAAX3Jl
bHMvLnJlbHOkkMFKAzEQhu+C7xDm7mbbg4g025vQa63gNSSz2eAmE2biat/eWBBc6c3jzM9838/s
9p9pVguyRMoGNl0PCrMjH3Mw8HJ6unsAJdVmb2fKaOCMAvvh9mZ3xNnWdiRTLKIaJYuBqdbyqLW4
CZOVjgrmlozEydY2ctDFujcbUG/7/l7zbwYMK6Y6eAN88FtQp3Np5j/sFB2T0Fg7R0nTOEZ3jao9
feQjLo1iOWA14FkuS8ala+VAX/du/ukNTO/lebIFX5tkZb9E8h01/08HvXro8AUAAP//AwBQSwME
FAAGAAgAAAAhADMvBZ5BAAAAOQAAABUAAABkcnMvZ3JvdXBzaGFwZXhtbC54bWyysa/IzVEoSy0q
zszPs1Uy1DNQUkjNS85PycxLt1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBL
AwQUAAYACAAAACEAWP6SfMIAAADbAAAADwAAAGRycy9kb3ducmV2LnhtbERPTWvCQBC9F/wPywje
6iZKi0TXIGKlByk0EcTbkB2TkOxsyG6T+O+7h0KPj/e9SyfTioF6V1tWEC8jEMSF1TWXCq75x+sG
hPPIGlvLpOBJDtL97GWHibYjf9OQ+VKEEHYJKqi87xIpXVGRQbe0HXHgHrY36APsS6l7HEO4aeUq
it6lwZpDQ4UdHSsqmuzHKDiPOB7W8Wm4NI/j856/fd0uMSm1mE+HLQhPk/8X/7k/tYJ1GBu+hB8g
978AAAD//wMAUEsBAi0AFAAGAAgAAAAhAKL4T1MEAQAA7AEAABMAAAAAAAAAAAAAAAAAAAAAAFtD
b250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEAbAbV/tgAAACZAQAACwAAAAAAAAAAAAAA
AAA1AQAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAFQAAAAAAAAAAAAAA
AAA2AgAAZHJzL2dyb3Vwc2hhcGV4bWwueG1sUEsBAi0AFAAGAAgAAAAhAFj+knzCAAAA2wAAAA8A
AAAAAAAAAAAAAAAAqgIAAGRycy9kb3ducmV2LnhtbFBLBQYAAAAABAAEAPoAAACZAwAAAAA=
">
<v:shapetype id="_x0000_t176" coordsize="21600,21600" o:spt="176" adj="2700"
path="m@0,qx0@0l0@2qy@0,21600l@1,21600qx21600@2l21600@0qy@1,xe">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="val #0"/>
<v:f eqn="sum width 0 #0"/>
<v:f eqn="sum height 0 #0"/>
<v:f eqn="prod @0 2929 10000"/>
<v:f eqn="sum width 0 @3"/>
<v:f eqn="sum height 0 @3"/>
<v:f eqn="val width"/>
<v:f eqn="val height"/>
<v:f eqn="prod width 1 2"/>
<v:f eqn="prod height 1 2"/>
</v:formulas>
<v:path gradientshapeok="t" limo="10800,10800" o:connecttype="custom"
o:connectlocs="@8,0;0,@9;@8,@7;@6,@9" textboxrect="@3,@3,@4,@5"/>
</v:shapetype><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_15"
o:spid="_x0000_s1049" type="#_x0000_t176" style='position:absolute;left:477;
width:4299;height:2520;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAhmoc4cMA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBCF7wX/wzJCL0U3FSoSXUWkgu1FjCJ4G7Jj
EpKdCdlV03/fFQq9zfDe++bNYtW7Rt2p85WwgfdxAoo4F1txYeB03I5moHxAttgIk4Ef8rBaDl4W
mFp58IHuWShUhLBP0UAZQptq7fOSHPqxtMRRu0rnMMS1K7Tt8BHhrtGTJJlqhxXHCyW2tCkpr7Ob
ixR5E/19yevjp2Tr/XmWYPiqjXkd9us5qEB9+Df/pXc21v+A5y9xAL38BQAA//8DAFBLAQItABQA
BgAIAAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1s
UEsBAi0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxz
UEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXht
bC54bWxQSwECLQAUAAYACAAAACEAhmoc4cMAAADbAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rv
d25yZXYueG1sUEsFBgAAAAAEAAQA9QAAAIgDAAAAAA==
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'>+X -Y <o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_21"
o:spid="_x0000_s1050" type="#_x0000_t176" style='position:absolute;left:8871;
top:682;width:4299;height:2521;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEANz3QX8MA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE70L/w/KEXkQ3ehBJXUWkQtuLmJRCb4/s
MwnJvheyq6b/visIHoeZ+YZZbwfXqiv1vhY2MJ8loIgLsTWXBr7zw3QFygdki60wGfgjD9vNy2iN
qZUbn+iahVJFCPsUDVQhdKnWvqjIoZ9JRxy9s/QOQ5R9qW2Ptwh3rV4kyVI7rDkuVNjRvqKiyS4u
UmQi+uu3aPJ3yXbHn1WC4bMx5nU87N5ABRrCM/xof1gDizncv8QfoDf/AAAA//8DAFBLAQItABQA
BgAIAAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1s
UEsBAi0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxz
UEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXht
bC54bWxQSwECLQAUAAYACAAAACEANz3QX8MAAADbAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rv
d25yZXYueG1sUEsFBgAAAAAEAAQA9QAAAIgDAAAAAA==
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><span
style='mso-spacerun:yes'> </span>+X <o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_22"
o:spid="_x0000_s1051" type="#_x0000_t176" style='position:absolute;left:8802;
top:17946;width:4299;height:2521;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAx+9OKMMA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE7wX/w/KEXopumkOR6CoiCuqlNIrg7ZF9
JiHZ90J2q+m/dwuFHoeZ+YZZrAbXqjv1vhY28D5NQBEXYmsuDZxPu8kMlA/IFlthMvBDHlbL0csC
MysP/qJ7HkoVIewzNFCF0GVa+6Iih34qHXH0btI7DFH2pbY9PiLctTpNkg/tsOa4UGFHm4qKJv92
kSJvoo/XojltJV9/XmYJhkNjzOt4WM9BBRrCf/ivvbcG0hR+v8QfoJdPAAAA//8DAFBLAQItABQA
BgAIAAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1s
UEsBAi0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxz
UEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXht
bC54bWxQSwECLQAUAAYACAAAACEAx+9OKMMAAADbAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rv
d25yZXYueG1sUEsFBgAAAAAEAAQA9QAAAIgDAAAAAA==
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><span
style='mso-spacerun:yes'> </span>-X <o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_23"
o:spid="_x0000_s1052" type="#_x0000_t176" style='position:absolute;left:16923;
top:9348;width:4299;height:2521;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAqKPrs8QA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE74L/YXmCF6mbWiiSugkiFrSX0lgKvT2y
r0lI9r2QXTX9992C4HGYmW+YTT66Tl1o8I2wgcdlAoq4FNtwZeDz9PqwBuUDssVOmAz8koc8m042
mFq58gddilCpCGGfooE6hD7V2pc1OfRL6Ymj9yODwxDlUGk74DXCXadXSfKsHTYcF2rsaVdT2RZn
FymyEP32XbanvRTb9691guHYGjOfjdsXUIHGcA/f2gdrYPUE/1/iD9DZHwAAAP//AwBQSwECLQAU
AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht
bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs
c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4
bWwueG1sUEsBAi0AFAAGAAgAAAAhAKij67PEAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k
b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA=
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><span
style='mso-spacerun:yes'> </span>+Y <o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_24"
o:spid="_x0000_s1053" type="#_x0000_t176" style='position:absolute;left:818;
top:9280;width:4299;height:2521;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAJ0pzx8QA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE74L/YXmCF6mbSimSugkiFrSX0lgKvT2y
r0lI9r2QXTX9992C4HGYmW+YTT66Tl1o8I2wgcdlAoq4FNtwZeDz9PqwBuUDssVOmAz8koc8m042
mFq58gddilCpCGGfooE6hD7V2pc1OfRL6Ymj9yODwxDlUGk74DXCXadXSfKsHTYcF2rsaVdT2RZn
FymyEP32XbanvRTb9691guHYGjOfjdsXUIHGcA/f2gdrYPUE/1/iD9DZHwAAAP//AwBQSwECLQAU
AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht
bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs
c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4
bWwueG1sUEsBAi0AFAAGAAgAAAAhACdKc8fEAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k
b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA=
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><span
style='mso-spacerun:yes'> </span>-Y <o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_25"
o:spid="_x0000_s1054" type="#_x0000_t176" style='position:absolute;left:16650;
top:409;width:4981;height:2794;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEASAbWXMQA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE74L/YXmCF6mbCi2SugkiFrSX0lgKvT2y
r0lI9r2QXTX9992C4HGYmW+YTT66Tl1o8I2wgcdlAoq4FNtwZeDz9PqwBuUDssVOmAz8koc8m042
mFq58gddilCpCGGfooE6hD7V2pc1OfRL6Ymj9yODwxDlUGk74DXCXadXSfKsHTYcF2rsaVdT2RZn
FymyEP32XbanvRTb9691guHYGjOfjdsXUIHGcA/f2gdrYPUE/1/iD9DZHwAAAP//AwBQSwECLQAU
AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht
bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs
c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4
bWwueG1sUEsBAi0AFAAGAAgAAAAhAEgG1lzEAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k
b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA=
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><span
style='mso-spacerun:yes'> </span>+X +Y<o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_26"
o:spid="_x0000_s1055" type="#_x0000_t176" style='position:absolute;left:16923;
top:18560;width:4981;height:2794;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAuNRIK8MA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE70L/w/KEXkQ3ehBJ3QSRCm0vYiyF3h7Z
ZxKSfS9kt5r+e7dQ8DjMzDfMNh9dp640+EbYwHKRgCIuxTZcGfg8H+YbUD4gW+yEycAvecizp8kW
Uys3PtG1CJWKEPYpGqhD6FOtfVmTQ7+Qnjh6FxkchiiHStsBbxHuOr1KkrV22HBcqLGnfU1lW/y4
SJGZ6I/vsj2/SrE7fm0SDO+tMc/TcfcCKtAYHuH/9ps1sFrD35f4A3R2BwAA//8DAFBLAQItABQA
BgAIAAAAIQDw94q7/QAAAOIBAAATAAAAAAAAAAAAAAAAAAAAAABbQ29udGVudF9UeXBlc10ueG1s
UEsBAi0AFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAAAAAAAAAAAAAAAALgEAAF9yZWxzLy5yZWxz
UEsBAi0AFAAGAAgAAAAhADMvBZ5BAAAAOQAAABAAAAAAAAAAAAAAAAAAKQIAAGRycy9zaGFwZXht
bC54bWxQSwECLQAUAAYACAAAACEAuNRIK8MAAADbAAAADwAAAAAAAAAAAAAAAACYAgAAZHJzL2Rv
d25yZXYueG1sUEsFBgAAAAAEAAQA9QAAAIgDAAAAAA==
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><span
style='mso-spacerun:yes'> </span>-X +Y<o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape><v:shape id="Flowchart_x003a__x0020_Alternate_x0020_Process_x0020_27"
o:spid="_x0000_s1056" type="#_x0000_t176" style='position:absolute;top:18015;
width:4981;height:2793;visibility:visible;mso-wrap-style:square;
v-text-anchor:middle' o:gfxdata="UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH
74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0
N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ
3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx
QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb
bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs
c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4
jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN
zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP
VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F
nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL
t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEA15jtsMQA
AADbAAAADwAAAGRycy9kb3ducmV2LnhtbESPQWvCQBSE74L/YXmCF6mbemgldRNELGgvpbEUentk
X5OQ7Hshu2r677sFweMwM98wm3x0nbrQ4BthA4/LBBRxKbbhysDn6fVhDcoHZIudMBn4JQ95Np1s
MLVy5Q+6FKFSEcI+RQN1CH2qtS9rcuiX0hNH70cGhyHKodJ2wGuEu06vkuRJO2w4LtTY066msi3O
LlJkIfrtu2xPeym271/rBMOxNWY+G7cvoAKN4R6+tQ/WwOoZ/r/EH6CzPwAAAP//AwBQSwECLQAU
AAYACAAAACEA8PeKu/0AAADiAQAAEwAAAAAAAAAAAAAAAAAAAAAAW0NvbnRlbnRfVHlwZXNdLnht
bFBLAQItABQABgAIAAAAIQAx3V9h0gAAAI8BAAALAAAAAAAAAAAAAAAAAC4BAABfcmVscy8ucmVs
c1BLAQItABQABgAIAAAAIQAzLwWeQQAAADkAAAAQAAAAAAAAAAAAAAAAACkCAABkcnMvc2hhcGV4
bWwueG1sUEsBAi0AFAAGAAgAAAAhANeY7bDEAAAA2wAAAA8AAAAAAAAAAAAAAAAAmAIAAGRycy9k
b3ducmV2LnhtbFBLBQYAAAAABAAEAPUAAACJAwAAAAA=
" fillcolor="black [3200]" strokecolor="black [1600]" strokeweight="2pt">
<v:textbox>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<p class=MsoNormal align=center style='text-align:center'>
<span
style='font-size:7.0pt;mso-bidi-font-size:11.0pt;line-height:115%'><span
style='mso-spacerun:yes'> </span>-X -Y<o:p></o:p></span></p>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]></v:textbox>
</v:shape></v:group></v:group><![endif]--><!--[if !vml]--><span style="font-family: Trebuchet MS, sans-serif;"><span style="height: 341px; left: 0px; margin-left: 136px; margin-top: 3px; mso-ignore: vglayout; position: absolute; width: 336px; z-index: 251694080;"></span><!--[endif]--><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"
filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1025" type="#_x0000_t75"
style='width:271.5pt;height:271.5pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\Kanishka\AppData\Local\Temp\msohtmlclip1\01\clip_image002.jpg"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><o:p></o:p></span></div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The next step of the project was to actually try and make
this wireless, since the main aim was to use it for something like controlling
a robotic arm from a distance or shoot some bad guys in Call of Duty. <o:p></o:p>So, I pulled out my trusty RF transmitter and receiver and
got started with trying to integrate that into this glove. This meant that I
had to get hold of an Arduino Uno to start acting as the transmitter, which
would sit on the glove and the Leonardo as the receiver, which would remain
connected to the computer. <o:p></o:p>The RF uses the <a href="http://www.airspayce.com/mikem/arduino/">Virtual Wire Library</a> to send
and receive data on a 433Mhz frequency. After connecting the RX and TX to the
Leonardo and the Uno respectively as given <a href="http://nootropicdesign.com/projectlab/2010/12/26/rf-wireless-temperature-sensor/">here</a>,
I proceeded to code both ends.<o:p></o:p> The Uno would take care of receiving all the
accelerometer input and transmitting them to the Leonardo receiver which would
then move the mouse on the system.</span><span style="font-family: 'Trebuchet MS', sans-serif;">The RF works at 4800bps (bauds per second) which gave me
pretty good resolution on the mouse.</span><span style="font-family: Trebuchet MS, sans-serif;">To improve on the efficiency of transmission, the coding was
done to optimize the data sent to a minimum amount. So, we went for low level
encoding and brought down the data sent to around 10 or 15 bits as opposed to
sending the X readings and Y readings separately as integers. We also added an extra bit to the setup()portion
of the code on the transmitter so that each time the user would start his
glove, the receiver would calibrate the glove based on initial readings of the
accelerometer.<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The basis
of calibration was that it would receive around 5 to 10 initial readings after
which it would add to it a threshold value based on which the device would
respond. This gave us a dynamic range within which the mouse would move,
irrespective of how the user was wearing his glove. Also, we added a
sensitivity option on the basis of said calibration that would allow the user
to control the speed of mouse movement based on the degree of movement of his
hand. This was done using a float value based on accelerometer readings that
gave a nice smooth transition from one speed to another, like an exponential
curve.<o:p></o:p></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The next
step was to add control for the mouse clicks for which we employed two <a href="https://www.sparkfun.com/products/10264">Flex Sensors</a>. This is a cool
piece of hardware that changes its resistance based on how much it is bent.
Using information available <a href="http://fromtechnologytoart.blogspot.in/2011/07/how-to-connect-flex-sensor-to-arduino.html">here</a>,
I set up the flex sensors on the glove’s fingers and added some calibration
bits for this too. The Leonardo syntax for mouse clicks is :<o:p></o:p></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<b><span style="font-family: Trebuchet MS, sans-serif;">Mouse.press(MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE);<o:p></o:p></span></b></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<b><span style="font-family: Trebuchet MS, sans-serif;">Mouse.release(MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE);<o:p></o:p></span></b></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<b><span style="font-family: Trebuchet MS, sans-serif;">Mouse.isPressed(MOUSE_LEFT | MOUSE_RIGHT | MOUSE_MIDDLE);<o:p></o:p></span></b></div>
<div style="text-align: justify;">
<b><span style="font-family: Trebuchet MS, sans-serif;"></span></b><br />
<b><span style="font-family: Trebuchet MS, sans-serif;"></span></b></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Using these
three lines of code, we figured out a way to send a bit for each click, left
and right, and then, on the receiver, check if they were pressed or released
separately or simultaneously. When pressed simultaneously, the <b>Mouse.scroll()</b> function was called and that allowed
for scrolling of screens based on X axis movement.<o:p></o:p></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">This, in my
opinion, was the hardest part of the coding, since we also had to take care of
drag-and-drop functionality. </span><span style="font-family: 'Trebuchet MS', sans-serif;">Basically,
that was it. After around a week of coding and frustrating amounts of testing along with around 6 hours of
PCB soldering, we had a working prototype of the wireless e-glove. We added a
wrist-strap that held the Uno and the battery (9V) on the glove and taped
things up a bit to keep things steady on the glove.</span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<br /></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">The members of the team are;<o:p></o:p></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><a href="https://plus.google.com/115521030200988431634">Kanishka
Ganguly</a> – Hardware and software<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><a href="https://plus.google.com/104579665375035450297">Nimesh
Ghelani</a> - Coding<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><a href="https://plus.google.com/101548586089835774916/posts">Vishesh
Dokania</a> – Coding and general visualization of concepts<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><a href="https://plus.google.com/100162754091101934952">Neel
Lahiri</a> – Coding and general visualization of concepts<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><a href="https://www.facebook.com/mainak.basu">Mainak Basu</a>
– PCB soldering and guidance</span><br />
<br />
<div class="MsoNormal" style="text-align: justify;">
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0xC2XtYmyH7llwESPAt3Mue_tqBlZYDnQB7gbuAekUAp70H9_ENAtAgmr8LO1e1uRxME4rBmI4Bz36FqSrHZgsR0YneL4fsqpHUf17e5yBA1GAfEIg1xqg70igA7y4_trfdmaVxAlh3tK/s1600/20130714_211652.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0xC2XtYmyH7llwESPAt3Mue_tqBlZYDnQB7gbuAekUAp70H9_ENAtAgmr8LO1e1uRxME4rBmI4Bz36FqSrHZgsR0YneL4fsqpHUf17e5yBA1GAfEIg1xqg70igA7y4_trfdmaVxAlh3tK/s320/20130714_211652.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: x-small;">Fig.3.The PCB after fabrication</span></span></td></tr>
</tbody></table>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Our main aim with this project was a proof-of-concept which
we hope to achieve by purchasing a robotic arm and connecting the receiver to
it to control the arm remotely. The main agenda is to prove that such systems
can be used in rovers to remotely defuse mines and rescue people from wreckage,
if produced on a larger scale. Also, such systems may be extrapolated to be put
to use in remote surgery and similar such applications.</span><span style="font-size: small;">The next step on the agenda is to try and use gyroscopes
and/or Inertial Measurement Units (IMUs) in order to achieve much more fluid
gestures and movement in 3D space.</span></span></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">The code for this is currently in a private repo on Github, which we cannot release due to intellectual property rights at the moment.</span><br />
<br />
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"></span></span></div>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">This is a work in progress and we hope to put up
videos and other progress soon , and may be some day James Bond maybe using it .... 'shaken, not stirred' !!! </span></span><br />
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"></span></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"></span><span style="font-family: Trebuchet MS, sans-serif;"></span></div>
</div>
</div>
</div>
Nightstalkerhttp://www.blogger.com/profile/09438899127974017491noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-65184576247823685022013-06-03T04:26:00.001+05:302013-07-22T01:19:57.633+05:30DEMYSTIFYING THE KALMAN FILTER - PART 1 <span style="font-family: Trebuchet MS, sans-serif;"><b>THE ESOTERIC KALMAN FILTER</b></span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><b><br /></b></span>
<br />
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">SLAM is a corner stone element of current day mobile robotics. The way to develop a map incrementally with increasing iterations is an essential part of mobile robots applications in surveys and in search & rescue efforts. At the very heart of SLAM is estimation theory which establishes an incrementally near correct map, often depending on the data fusion from two sensors. In the simplest scenarios it is (1) laser or sonar reading and (2) odometry.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Though SLAM is very commonly used in mobile robotics, however the mathematics of it does come across as cumbersome. The concept of Kalman filter, at the heart of this estimation is often seen as a jargon [1].</span></div>
<span style="font-family: Trebuchet MS, sans-serif;"><b><br /></b></span>
<span style="font-family: Trebuchet MS, sans-serif;"><b>WHAT IS THE KALMAN FILTER ? -- A SIMPLE ILLUSTRATIVE EXAMPLE</b></span>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Firstly, Kalman filter is not really a filter in the sense of chemical filtration electronic signal filters or optical filters; it is a tool for estimation.</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span>
<span style="font-family: 'Trebuchet MS', sans-serif;">This is a simple example[2] to illustrate the Kalman filter, this is an one dimension system and has no element of dynamics or noise to it. </span><span style="font-family: 'Trebuchet MS', sans-serif;">In this example, consider that we have a bucketful of 100 ohm resistors, accurate to 1% RMS (1 ohm per 100 ohm) and we have an ohm meter with an accuracy of 3 ohm RMS random error on each reading. Selecting a resistor from that bucket, how can we estimate its resistance ?</span></div>
</div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0L0hN_1efUueO0wzKJO4wGAhGUZXOetb_5Zx4WQ52ersaD6ybxvY0YiLfiMK2C17LtTTacNPq0PkjeFwiZO78D6oZ42OOsPZrnx3olULCN-oENv43irBLYJ3ygP_7mkgUBHFNKz1R49w/s1600/K-res.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="264" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0L0hN_1efUueO0wzKJO4wGAhGUZXOetb_5Zx4WQ52ersaD6ybxvY0YiLfiMK2C17LtTTacNPq0PkjeFwiZO78D6oZ42OOsPZrnx3olULCN-oENv43irBLYJ3ygP_7mkgUBHFNKz1R49w/s400/K-res.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">There are 2 independent estimates, </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA3wNLZUiRtBeijvOAjIaaZf0ECwATr0-ALQmRNb4Syf9iv8WUpycXUC2AWpOxMOPeZbHXjwgBpnBBDEJExm39q0tneHTnoNCmlNVJ2zS3kE3FbcohlDskKyZ1gIk_zeOb0yHpQaAd4Ww/s1600/k4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="44" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA3wNLZUiRtBeijvOAjIaaZf0ECwATr0-ALQmRNb4Syf9iv8WUpycXUC2AWpOxMOPeZbHXjwgBpnBBDEJExm39q0tneHTnoNCmlNVJ2zS3kE3FbcohlDskKyZ1gIk_zeOb0yHpQaAd4Ww/s320/k4.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">In order to get a good estimate, it is imperative to consider both these independent estimates. Hence a linear weighted fit, </span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR9O1uDhADhLYxaky-B5C337vrsx3vI_lbbtYGCsfYmS6CTTEql1mBlAnt2Ez3M0OEo98zy8uNomzWNqwDG5yunlcdOxXolayDWttTr90A-c-ICODUmf2ARPhafgEbWN2J5NV3Uc68Vlk/s1600/k3.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjR9O1uDhADhLYxaky-B5C337vrsx3vI_lbbtYGCsfYmS6CTTEql1mBlAnt2Ez3M0OEo98zy8uNomzWNqwDG5yunlcdOxXolayDWttTr90A-c-ICODUmf2ARPhafgEbWN2J5NV3Uc68Vlk/s1600/k3.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">where the sum of the weights must total to unity. </span><span style="font-family: 'Trebuchet MS', sans-serif;">It can be shown[3] that for minimum variance, the optimal value is,</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkRcv-w6WVkviiif21W-XNsTaUHuhQPWterbXx6dt-f6XD2_wYNbLJS99zVCU8Ud4H06mxBA6JWgfUTvyZvPAUbbYI9ihHDz0JE1qY2AHtKqcQNZ_aj5mC1VqzEIb8fRMiS19QGeNhJd8/s1600/k1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkRcv-w6WVkviiif21W-XNsTaUHuhQPWterbXx6dt-f6XD2_wYNbLJS99zVCU8Ud4H06mxBA6JWgfUTvyZvPAUbbYI9ihHDz0JE1qY2AHtKqcQNZ_aj5mC1VqzEIb8fRMiS19QGeNhJd8/s1600/k1.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: left;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: left;">and the minimal variance for the system is ,</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: left;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLBlartGAmr4hILMVGpp5XXB5JuSN8d8FTTNjbKbEbyABbxV3HQvoT4c1NesTSFApNWcuvJWyg9O8PkXMuXTMdYmtin2GPBeow7v5aG0Xf2JjjD5_JA6CYTQlR6ofwR4DRYcqfrDtR7YA/s1600/k10.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLBlartGAmr4hILMVGpp5XXB5JuSN8d8FTTNjbKbEbyABbxV3HQvoT4c1NesTSFApNWcuvJWyg9O8PkXMuXTMdYmtin2GPBeow7v5aG0Xf2JjjD5_JA6CYTQlR6ofwR4DRYcqfrDtR7YA/s1600/k10.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: left;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: left;">which can be conveniently written as;</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIM0GIxZdghyRaPL6kdkIC98vxg-WpMrVQ3trBzQScr2ZmboNYMK4ZRhUQR4NKH0B8KXIokkyIwWOQPJtiuOhhUrko11N5LK3fXUoN-Ri7sKfIQoSU9U2RvVdgCVuXVspxZG-S35_oC6E/s1600/k2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIM0GIxZdghyRaPL6kdkIC98vxg-WpMrVQ3trBzQScr2ZmboNYMK4ZRhUQR4NKH0B8KXIokkyIwWOQPJtiuOhhUrko11N5LK3fXUoN-Ri7sKfIQoSU9U2RvVdgCVuXVspxZG-S35_oC6E/s1600/k2.gif" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: 'Trebuchet MS', sans-serif;">Right now, this doesn't make much sense. However plugging in values will clarify the result. For the current example, </span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiOyhd1cNw1nYvtvduScYVTTseYworJd-xzM_L4akWw9idC3hcdRQp2XQbeFrJavXbk93rTPwW1AMRASNTQrfPkloQK1k6qs54k-h-ZbFyGukz6fg9-LR6EefeoUtc5ANpRxqTJVwfK7Q/s1600/k5.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiOyhd1cNw1nYvtvduScYVTTseYworJd-xzM_L4akWw9idC3hcdRQp2XQbeFrJavXbk93rTPwW1AMRASNTQrfPkloQK1k6qs54k-h-ZbFyGukz6fg9-LR6EefeoUtc5ANpRxqTJVwfK7Q/s1600/k5.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">For an initial estimate without any measurement, 100 ohm is the best estimate value for the resistance. </span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">For the first reading, </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglrIvnAUnUcXzF1bQAkmmyNsLWmPWLTEAvXplSw1zRHKH8_htFqwGTE0rbj7TvLFDeIfUj3gYKx8bS0xACmHU9Z07C2mBkvtNx40AQEKZv4j_kyPu4E5r6UgXrQ2T_s2ViQtqjaYhvRzE/s1600/k6.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglrIvnAUnUcXzF1bQAkmmyNsLWmPWLTEAvXplSw1zRHKH8_htFqwGTE0rbj7TvLFDeIfUj3gYKx8bS0xACmHU9Z07C2mBkvtNx40AQEKZv4j_kyPu4E5r6UgXrQ2T_s2ViQtqjaYhvRzE/s1600/k6.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">hence if the ohm meter reading shows 95 ohms (which is rather unlikely), the best estimate will result in, </span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEingms3GZcBuSC0R57txTP09Myllnlj6Jg_n83y2NkjtfvikN9UXlD-r9DLDZxhwDvYovVxb94Vnc6AWRNqGB357t0Vhbz5Yo0fomwoQmAzNPLAbIt8bCyfTsLHJ-n6OheGAnwfwJM0Byk/s1600/k7.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEingms3GZcBuSC0R57txTP09Myllnlj6Jg_n83y2NkjtfvikN9UXlD-r9DLDZxhwDvYovVxb94Vnc6AWRNqGB357t0Vhbz5Yo0fomwoQmAzNPLAbIt8bCyfTsLHJ-n6OheGAnwfwJM0Byk/s1600/k7.gif" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">99.5 ohms is a rather much more likely than 95 ohms.</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">For the second reading, </span><span style="font-family: 'Trebuchet MS', sans-serif;">the variance will change,</span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVRlv95saC3ku9k6R2K-60HUCkAu-8ygxq9HqpqFU6389DHQaBA7T3ita9YZAWaDssK8PaZjn7RDg1uJf_k_z8sPteN4Zb-rA3yO4B0L9sYF58d0dSpC2fjeGmruMwvFpgqA8ZApFfZMA/s1600/k8.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVRlv95saC3ku9k6R2K-60HUCkAu-8ygxq9HqpqFU6389DHQaBA7T3ita9YZAWaDssK8PaZjn7RDg1uJf_k_z8sPteN4Zb-rA3yO4B0L9sYF58d0dSpC2fjeGmruMwvFpgqA8ZApFfZMA/s1600/k8.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">and,</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-tbhNpd2GPkV4E-nflmsnAnE7gP4hgHMZ7dZ5orGAKHOeoGG9fWA-eAE5ggBLxKHBt24Ilcf7fBFd5MO8bg_Mi9lp_xTK-extVvUMDcOnOxF5g0XOScYI4SXVP8qUBLhJlfIwJkiIv84/s1600/k9.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-tbhNpd2GPkV4E-nflmsnAnE7gP4hgHMZ7dZ5orGAKHOeoGG9fWA-eAE5ggBLxKHBt24Ilcf7fBFd5MO8bg_Mi9lp_xTK-extVvUMDcOnOxF5g0XOScYI4SXVP8qUBLhJlfIwJkiIv84/s1600/k9.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">the Kalman estimate is recursively related to the last estimate, </span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfCqSiNH1rIjIcanZwEAj_1D95wUoXRYsb0Or682LxE7pLG2DHvvwZMKoXPj28hu_oeKyo8MzS1SUEKTjiyHdp-_Hrzytqrjd53cCBtEBWA2A1slplIkgmlza7IGUt9SajGo8rlqhx0gg/s1600/k11.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfCqSiNH1rIjIcanZwEAj_1D95wUoXRYsb0Or682LxE7pLG2DHvvwZMKoXPj28hu_oeKyo8MzS1SUEKTjiyHdp-_Hrzytqrjd53cCBtEBWA2A1slplIkgmlza7IGUt9SajGo8rlqhx0gg/s1600/k11.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;"><br /></span></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">The third recursion in a similar spirit will give,</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPgd-MzQV-Ilzr4HdXLhRzFZjKyUMklYyb0hUXWNkPPbOrdQ5ps6Xmr0t1RrLIzNCGh13FpWIXnobAxR2gkLfsPHjEDWmniE7YTZDxFQsQZ1xO745PzgzD6BJQYHxQo6Ghf2IruK0X3m0/s1600/k12.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPgd-MzQV-Ilzr4HdXLhRzFZjKyUMklYyb0hUXWNkPPbOrdQ5ps6Xmr0t1RrLIzNCGh13FpWIXnobAxR2gkLfsPHjEDWmniE7YTZDxFQsQZ1xO745PzgzD6BJQYHxQo6Ghf2IruK0X3m0/s1600/k12.gif" /></a></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">With increasing number of recursions the variance reduces and tends to zero for a very large number of observations.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Thus, in a recursive notation,</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeQmtcLvfi4WDsqcrPY8HJBR00alft6Yir9-FuL5n3IsOfCeFq0OSRPHTD0vV5pZKN6NPNgyuE161EUcN4kln3cPKlrAWgvT7aUOAQnQHIF-YOuZ9fH7YxmSalBT0GCE68pQV0EwZeDfE/s1600/kr13.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeQmtcLvfi4WDsqcrPY8HJBR00alft6Yir9-FuL5n3IsOfCeFq0OSRPHTD0vV5pZKN6NPNgyuE161EUcN4kln3cPKlrAWgvT7aUOAQnQHIF-YOuZ9fH7YxmSalBT0GCE68pQV0EwZeDfE/s1600/kr13.gif" /></a> </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgshSFTtCp-auvMWmfLEOthu9B3e-FBfCCpVbnB_3BLBpBj0siAUEI7yb2rkqElfGt2fGD1-Z2gQPhCKlQc8EcjbeOYJw2CjKTxpNUGMKE5aXG0efGxV4_Wh-93TAEl9Lfsp8ILbBUROGU/s1600/kr14.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgshSFTtCp-auvMWmfLEOthu9B3e-FBfCCpVbnB_3BLBpBj0siAUEI7yb2rkqElfGt2fGD1-Z2gQPhCKlQc8EcjbeOYJw2CjKTxpNUGMKE5aXG0efGxV4_Wh-93TAEl9Lfsp8ILbBUROGU/s1600/kr14.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7DFkdfgB0_PlDQ8nACjOI4AsOM5C4gkqtuJtyz4O5X_Vkpzz21zMvEl9xUSKDmOVPFtPE_AEGitM2AgcfwreGxOCF8fJXRzGEP8GuqP6nq0aFS9GcBStEeWeytFvGbtvdCvp-CPFbAak/s1600/kr15.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7DFkdfgB0_PlDQ8nACjOI4AsOM5C4gkqtuJtyz4O5X_Vkpzz21zMvEl9xUSKDmOVPFtPE_AEGitM2AgcfwreGxOCF8fJXRzGEP8GuqP6nq0aFS9GcBStEeWeytFvGbtvdCvp-CPFbAak/s1600/kr15.gif" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">in practice, the Kalman filter always consists of 3 recursive equations. However, for a 3 dimensional systems they take more complicated form.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><b>REFERENCES</b></span></div>
<div>
<span style="font-family: Trebuchet MS, sans-serif;">[1] Kalman's original paper, available online - <a href="http://www.cs.unc.edu/~welch/kalman/kalmanPaper.html">http://www.cs.unc.edu/~welch/kalman/kalmanPaper.html</a></span><br />
<span style="font-family: Trebuchet MS, sans-serif;">[2]<span style="line-height: 16px;"> du Plessis explaination of the Kalman filter, available online - </span><a href="http://digi.physic.ut.ee/mw/images/d/d5/Poormankalman.pdf">http://digi.physic.ut.ee/mw/images/d/d5/Poormankalman.pdf</a></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">[3] Dudek and Jenkins,</span><i style="font-family: 'Trebuchet MS', sans-serif;"> 'Computational Principles of Mobile Robotics'</i><span style="font-family: 'Trebuchet MS', sans-serif;">, </span><span style="background-color: white; font-family: 'Trebuchet MS', sans-serif;">Cambridge University Press, 2012</span></div>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-45135156307884334952013-03-23T17:15:00.004+05:302014-01-19T00:06:07.128+05:30MORSE CODE - PART 2 <div style="text-align: justify;">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Playing around with <a href="http://www.openrobots.org/wiki/morse/" target="_blank">MORSE 0.6</a>, I was tempted to try out basic obstacle avoidance through ROS (Fuerte) nodes on PR2 and ATRV. An obstacle avoidance approach involves a closed loop control system, which is executed by a laser or sonar scan with a <i>'see the obstacle => turn left',</i> type of algorithm. After some initial hiccups I was able to get it working.</span></div>
</div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
</div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">Here are some details of my efforts,</span></div>
</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-AKhCe3Tls6o/UUzefpEZjZI/AAAAAAAACZw/OC96MVG-WT0/s874/1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-AKhCe3Tls6o/UUzefpEZjZI/AAAAAAAACZw/OC96MVG-WT0/s640/1.png" height="398" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Trebuchet MS, sans-serif;">Fig.1. PR2 simulation and its rxgraph</span></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-7YZhCKeiokg/UUzeiipSy1I/AAAAAAAACZ4/WSOrYGjMXcU/s876/2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-7YZhCKeiokg/UUzeiipSy1I/AAAAAAAACZ4/WSOrYGjMXcU/s640/2.png" height="396" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Trebuchet MS, sans-serif;">Fig.2. ATRV simulation</span><br />
<br /></td></tr>
</tbody></table>
<div style="text-align: justify;">
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;">in the PR2 simulation, one can see the closed loop of the system in the rxgraph of the ROS nodes.</span></div>
</div>
</div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
</div>
<div style="text-align: justify;">
<div style="text-align: justify;">
<div style="text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">I am grateful to Michael (kargm at in dot tum dot de) for his help and suggestions. Michael has also made a video of the PR2 obstacle avoidance simulation, <a href="https://www.dropbox.com/s/66rpmuyhzkm2ka4/pr2_obstacle_avoidance.m4v">https://www.dropbox.com/s/66rpmuyhzkm2ka4/pr2_obstacle_avoidance.m4v</a> .</span></div>
<div style="text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;">The codes </span><span style="font-family: 'Trebuchet MS', sans-serif;">can be found at, </span><a href="https://github.com/Arkapravo/laser_obstacle_avoidance_morse" style="font-family: 'Trebuchet MS', sans-serif;" target="_blank">https://github.com/Arkapravo/laser_obstacle_avoidance_morse</a></div>
</div>
</div>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-68405277720163712422013-03-12T11:55:00.000+05:302013-07-30T11:52:20.608+05:30TORTUE<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><a href="https://github.com/Arkapravo/tortue">TORTUE</a> is an effort to marry a motion sensor with a Roomba base. It was inspired from <a href="http://turtlebot.com/">Turtlebot</a>, <a href="http://www.bilibot.com/">Billibot</a> and <a href="http://www.xaxxon.com/oculus/details">Oculus</a>. For the base we used <a href="http://www.pcmag.com/article2/0,2817,2173799,00.asp">Roomba 560</a> and for the motion sensor we used <a href="http://www.asus.com/Multimedia/Xtion_PRO_LIVE/">ASUS Xtion Pro Live</a>. The software platform is <a href="http://ros.org/wiki/electric">ROS Electric</a>. The project is still in its early days and more is being planned for the future.</span></div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivRJ0KC65Z4prNHUHgsL42FaAbrPIlLcHWxQ6VzIkk-MdfKs-64Jd_ZTyed9wZ2HFLGqfti36_bepEmpMqjDSxDaMbz1DL7XUb_f9Poa4gC7B-BSvc_d0tDz9Jq2aNs3wVddKQMsrLd0U/s1600/bot.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivRJ0KC65Z4prNHUHgsL42FaAbrPIlLcHWxQ6VzIkk-MdfKs-64Jd_ZTyed9wZ2HFLGqfti36_bepEmpMqjDSxDaMbz1DL7XUb_f9Poa4gC7B-BSvc_d0tDz9Jq2aNs3wVddKQMsrLd0U/s400/bot.jpg" width="270" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fig.1. Concept development for Tortue<br />
<br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwWfY0QuQIiKHyvH8d9YiovtYQnDdUSqxK1zH3TO2udxTNGn_uax1ZqxS5h8BGRRRKt4VpLSCs6yDqZT8xYUleIQJTqn0c0GxX_IpJfSbYBe5a0_uwVDWxHRuSK147DBqkN8AQoW2FMuo/s1600/robot.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwWfY0QuQIiKHyvH8d9YiovtYQnDdUSqxK1zH3TO2udxTNGn_uax1ZqxS5h8BGRRRKt4VpLSCs6yDqZT8xYUleIQJTqn0c0GxX_IpJfSbYBe5a0_uwVDWxHRuSK147DBqkN8AQoW2FMuo/s400/robot.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fig.2. First run on 2nd March 2013, Saturday<br />
<br /></td></tr>
</tbody></table>
<span style="font-family: Trebuchet MS, sans-serif;">The video shows a very basic obstacle avoidance behaviour using point cloud.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/ZPhbyOlCq08?feature=player_embedded' frameborder='0'></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTP-qzEulvB8lJf0Wbq_ac88jzQ6zfQEaRZKdCTjYCUWBiyONnGtoWB7AA9U-rRdg2xcBmy-AQUugzckWWVMLgbhthyphenhyphenSxCShlRR_OsKAECLzdh8gySdVqJRuVCQBhtoBBNcHiv6NQhd2E/s1600/Screenshot-1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTP-qzEulvB8lJf0Wbq_ac88jzQ6zfQEaRZKdCTjYCUWBiyONnGtoWB7AA9U-rRdg2xcBmy-AQUugzckWWVMLgbhthyphenhyphenSxCShlRR_OsKAECLzdh8gySdVqJRuVCQBhtoBBNcHiv6NQhd2E/s640/Screenshot-1.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fig.3. <i>rxgraph</i> for basic obstacle avoidance<br />
<div>
<br /></div>
</td></tr>
</tbody></table>
<br />
<span style="font-family: 'Trebuchet MS', sans-serif;">The Tortue team comprises of ,</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfCsU1QvNAbisATpe4PA5fN80Zx87xRRQlaDNaBV9OTOh_hpQpwdAdAjZgzb9E5BdMYN9XRttctdtq9fd0xPNFYmk41JKj7F87nCaeN5uiqBmSvZ4RC74V7elSIPWe3ittmYXB3Z6Cpq0/s1600/1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfCsU1QvNAbisATpe4PA5fN80Zx87xRRQlaDNaBV9OTOh_hpQpwdAdAjZgzb9E5BdMYN9XRttctdtq9fd0xPNFYmk41JKj7F87nCaeN5uiqBmSvZ4RC74V7elSIPWe3ittmYXB3Z6Cpq0/s1600/1.jpg" /></a></div>
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzdq1GWWL2lqYglQh9hxt6BxY82xQBm7RaolyjXKdBRE91DeezG9ttWW7vtn-MaLTF1sLhjX4YPfgm55GByQA-fDyowygqNjzeQ9ZmaQBEyyJ-GWgZ7EANWwgYwxSzc6HPZQL7-2si_I0/s1600/2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzdq1GWWL2lqYglQh9hxt6BxY82xQBm7RaolyjXKdBRE91DeezG9ttWW7vtn-MaLTF1sLhjX4YPfgm55GByQA-fDyowygqNjzeQ9ZmaQBEyyJ-GWgZ7EANWwgYwxSzc6HPZQL7-2si_I0/s1600/2.jpg" /></a></div>
<br />
<br />
<br />
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: left;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><span style="font-family: Trebuchet MS, sans-serif;">The project has a home page at github, <a href="http://arkapravo.github.io/tortue/">http://arkapravo.github.io/tortue/</a>. </span><span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">Tortue means </span><i style="text-align: justify;">Turtle in the French language</i><span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">, which reflects the use of ROS for the robot, ROS has a long term Turtle association and all of their release have a Turtle reference, also ROS softwares (viz. </span><a href="http://www.ros.org/wiki/turtlesim" style="text-align: justify;">turtlesim</a><span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">) and robots (viz. </span><a href="http://turtlebot.com/" style="text-align: justify;">turtlebot</a><span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">) have such naming. There has been suggestions that tortue has a likeness to </span><a href="http://www.imdb.com/title/tt0910970/" style="text-align: justify;">wall-e</a><span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;">, we do not deny it ! :-)</span></span></div>
<br />
<div>
<span style="font-family: 'Trebuchet MS', sans-serif; text-align: justify;"><br /></span></div>
</div>
<div style="text-align: justify;">
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioa9bj0KZPJv0CJ1_kyNfJnxrwu13CQsxrCG86kxioE5odSpczHLiD5DxbnDa6zu3mQhSnS4vJw08aSNB3v7ZD0rSQi4Bh0CRoihKZllOitJTS07cylxY7eknFvdxIG5Ekd1zr05P8550/s1600/tortue-2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioa9bj0KZPJv0CJ1_kyNfJnxrwu13CQsxrCG86kxioE5odSpczHLiD5DxbnDa6zu3mQhSnS4vJw08aSNB3v7ZD0rSQi4Bh0CRoihKZllOitJTS07cylxY7eknFvdxIG5Ekd1zr05P8550/s1600/tortue-2.jpg" /></a></div>
<br /></div>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com1tag:blogger.com,1999:blog-3869181917289756162.post-23542477883554513702013-02-14T21:41:00.000+05:302013-06-04T10:34:03.553+05:30OBSTACLE AVOID FOR PR2 <b>LASER OBSTACLE AVOIDANCE FOR PR2</b><br />
<div>
<br /></div>
<div style="text-align: justify;">
One of the basic behaviour a budding roboticist often starts with is obstacle avoidance using sonar or laser scan. While playing with gazebo simulations, we realised that we are yet to try out a very basic laser obstacle avoidance behaviour in the PR2 robot employing the SICK laser. It was not long that we wrote our codes and made our ROS package and started with simulations in gazebo. A surprise awaited us ........</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>WHAT THE HELL !!!! </b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
We got an empty world with PR2 and then filled it up with boxes and set our code into action. Much to our surprise the PR2 robot did not try to avoid those boxes, but <i>push </i>them rather awkwardly. </div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrXyuzGSYsO4oWWqgveyrQ5Ufv7nfVqrvOqnz6lut1SbIpcj8h8YYkfjVv8iAvD0c7F5CCto1pP3C2c7MJ2hoNXKjJFPsdcrJjq77gChNIGpZ_ibvqkVOCUVkOMhiBFnT4b28hkdcQstQ/s1600/g.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrXyuzGSYsO4oWWqgveyrQ5Ufv7nfVqrvOqnz6lut1SbIpcj8h8YYkfjVv8iAvD0c7F5CCto1pP3C2c7MJ2hoNXKjJFPsdcrJjq77gChNIGpZ_ibvqkVOCUVkOMhiBFnT4b28hkdcQstQ/s640/g.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBnleNqFJs9MvmwGX0g9Pnf9xjKgM1JghtGn-hCCPv4Mmft7NkiYF8dV6w6zsi1e5h3uDcnBep8Yk7ZtJEwzwwcY0MzmRfCXvHbSfTDO6Rh0v-xjOblWAreN3vwsP_rxqtBR-XKy6LIgw/s1600/e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="556" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBnleNqFJs9MvmwGX0g9Pnf9xjKgM1JghtGn-hCCPv4Mmft7NkiYF8dV6w6zsi1e5h3uDcnBep8Yk7ZtJEwzwwcY0MzmRfCXvHbSfTDO6Rh0v-xjOblWAreN3vwsP_rxqtBR-XKy6LIgw/s640/e.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAqBZsIVVC7JJwxmhKXZhEay7lAns1-Njs3U0ReyUWHBPEXAIjFFWcM7k4-bzVJz6tiDrPE5uf1WwdITBVXbGRjSP33D6CCQjt6W3qYkaSm5s1Dn39iSzBJ2OJGIjc9R66ELLisaRXDbM/s1600/d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="560" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAqBZsIVVC7JJwxmhKXZhEay7lAns1-Njs3U0ReyUWHBPEXAIjFFWcM7k4-bzVJz6tiDrPE5uf1WwdITBVXbGRjSP33D6CCQjt6W3qYkaSm5s1Dn39iSzBJ2OJGIjc9R66ELLisaRXDbM/s640/d.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiMIGU1laKqXrZiKS3w8fhKpayaB-mfTcvLjejCX1dInKVDPSA-6w9IqlOe7EUgUtx3sloY4gt8jorfKqw8IN5FGHctQ3iijcWpPCwxny3fyEcY8GM_TCB2mAfS_3O5LogzO0QmFOEyKI/s1600/c.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="555" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiMIGU1laKqXrZiKS3w8fhKpayaB-mfTcvLjejCX1dInKVDPSA-6w9IqlOe7EUgUtx3sloY4gt8jorfKqw8IN5FGHctQ3iijcWpPCwxny3fyEcY8GM_TCB2mAfS_3O5LogzO0QmFOEyKI/s640/c.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b style="text-align: justify;">BOX PUSHING INSTEAD OF OBSTACLE AVOIDANCE</b></div>
<div style="text-align: justify;">
<b><br /></b></div>
<div style="text-align: justify;">
It was after few such <i>'failed attempts'</i> and cursing our code incessantly that we realised that the issue is with the stretched out arms of the PR2. The distance for the obstacle avoidance to work is at <i>min_range<=0.5</i>, however we never had accounted for the PR2's arms while coding so the obstacle avoidance code is not coming to fore and is restricted by the arm lengths. Thus when the PR2 reaches the obstacle it continues to move and <i>'push'</i> the obstacles, since gazebo is a physics based simulator thus in a <i>box world</i> it reflects such as a <i>'box pushing' </i>behaviour. It may be said that such a behaviour arises in the <i>'emergent'</i> context. Playing around with the code, we finally set it to, <i>min_range<=1.2 </i>which sorted out the issue.<br />
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3sGIkWs2h3ev0jI2zGB8806untJNY89vftfgPmjPae42UJdc8EVM0MgWT9b1uWMNAnLQOATy8RUUX0m811uDiFWyhmAkvcXo109iRcUY0L6X0TfSTcwswo-0VsYQP5sl2J_MhzM9fkio/s1600/pr2_obs_corr.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="444" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3sGIkWs2h3ev0jI2zGB8806untJNY89vftfgPmjPae42UJdc8EVM0MgWT9b1uWMNAnLQOATy8RUUX0m811uDiFWyhmAkvcXo109iRcUY0L6X0TfSTcwswo-0VsYQP5sl2J_MhzM9fkio/s640/pr2_obs_corr.jpg" width="640" /></a></div>
<br /></div>
<div style="text-align: justify;">
The codes discussed here can be found at, <a href="https://github.com/Arkapravo/laser_obstacle_avoidance_pr2">https://github.com/Arkapravo/laser_obstacle_avoidance_pr2</a>, feel free to write to us at Arkapravo Bhaumik (arkapravobhaumik at gmail dot com) and Koushik Kabiraj (koushik dot atti at gmail dot com).</div>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com2tag:blogger.com,1999:blog-3869181917289756162.post-4305496040372022312013-01-28T01:44:00.002+05:302013-03-23T16:49:19.882+05:30MORSE CODE PART - I<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-IN</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><b>MORSE 0.6</b><br />
<br />
<div style="text-align: justify;">
I installed <a href="https://github.com/laas/morse/blob/0.6/RELEASE_NOTES">MORSE 0.6</a> and <a href="http://www.warp1337.com/content/morse-and-ros-detailed-installation-howto-ubuntu-precise">linked it up with ROS</a> on Ubuntu 12.04 and it was fun to try out simulations of <a href="http://www.openrobots.org/morse/doc/latest/user/advanced_tutorials/ros_tutorial.html">PR2</a> and <a href="http://www.openrobots.org/morse/doc/latest/user/advanced_tutorials/cat_and_mouse.html">ATRV</a>s. I was interested in simulating a 2 robot system where one robot was guided by ROS nodes while the other was controlled by MORSE. This article is a brief on how I got that working ! </div>
<br />
<b>THE kb_control CODE</b><br />
<br />
<a href="http://answers.ros.org/users/3302/koushik/">Koushik</a> and <a href="http://answers.ros.org/users/198/Arkapravo/">I</a> have been tying to use kbhit() function to model teleoperation in ROS, however lack of a <i>conio.h</i> in gcc made us channel our efforts differently (<i>fcntl.h</i>), and develop our <a href="https://github.com/Arkapravo/kb_control/blob/master/src/kb_node.cpp">codes</a>.<br />
<br />
<b>SETTING IT UP IN MORSE</b><br />
<b><br /></b>
Instead of a single ATRV, I put in 2 ATRVs in my simulation, Castor and Pollux. Castor controlled by ROS nodes while Pollux was by MORSE keyboard. In the Python script (<a href="https://github.com/Arkapravo/kb_control/blob/master/morse/two_atrv.py"><i>two_atrv.py</i></a>) it was easy to<i> 'connect up' </i>Castor to ROS and Pollux to MORSE;<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFkQKJOK9v7jt0iAEmTWR1uZCjKimbgn434M5rToXdOxL2xARHfbaspS8KxFvLiatAzD7LV4ySrBUjQX1UekYAPxzsiOJ1_XoiDJlgprxmIcobYjINIEU9SD4XYP2FYs3E4x-Bh48SRRs/s1600/x1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFkQKJOK9v7jt0iAEmTWR1uZCjKimbgn434M5rToXdOxL2xARHfbaspS8KxFvLiatAzD7LV4ySrBUjQX1UekYAPxzsiOJ1_XoiDJlgprxmIcobYjINIEU9SD4XYP2FYs3E4x-Bh48SRRs/s1600/x1.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiONYAEOGBmJ6QgwF6btsIZfXQJQWWG5ZAVWQLxJt5LBP4mYgZkgeuIehmMW7ycv92p-Ga7F-q_K-4F1H-VuSPMB0XUA4xTrNA3sPiuGXelcy5BYwCaw4Rmw8biRB-W6sIzfEgzNbp5sLw/s1600/x2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiONYAEOGBmJ6QgwF6btsIZfXQJQWWG5ZAVWQLxJt5LBP4mYgZkgeuIehmMW7ycv92p-Ga7F-q_K-4F1H-VuSPMB0XUA4xTrNA3sPiuGXelcy5BYwCaw4Rmw8biRB-W6sIzfEgzNbp5sLw/s1600/x2.png" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
To link up ROS nodes with MORSE, remapping of the launch file (<i><a href="https://github.com/Arkapravo/kb_control/blob/master/launch/kb_control_morse.launch">kb_control_morse.launch</a></i>) is done,<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXPwOsK91K85WNpMgOIaLzpBNTRjKNu1V_saYy1fpQ_yo9YbYxUL0NQZz5n2Mqp0lk4CBCyD5i-AbQAtSP9WtCuaYI9GfTtPPvzC2lo_3EVTfcdYCOqPdMRVEbdLL8StIRfpLVp0qwzGU/s1600/r.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXPwOsK91K85WNpMgOIaLzpBNTRjKNu1V_saYy1fpQ_yo9YbYxUL0NQZz5n2Mqp0lk4CBCyD5i-AbQAtSP9WtCuaYI9GfTtPPvzC2lo_3EVTfcdYCOqPdMRVEbdLL8StIRfpLVp0qwzGU/s1600/r.png" /></a></div>
<br />
The remapping is done by checking the rxgraph and enabling publisher/subscriber connectivity to ensure the interconnectivity of all the nodes. A working<i> rxgraph</i> for this simulation is as shown,<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwl8Fp7dx-r8Jb2Vun7IeQnao8zKDOyr3nDin2UFzzrr1lVFAIePOjWLSoPhgVfCK45ICcr9z3fPJIOvlw9aJvnVrRmobstNc5ni5GPg85lvt3C4eBCkAyH5mFgMepgu9551OnKKe0xOY/s1600/rx.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwl8Fp7dx-r8Jb2Vun7IeQnao8zKDOyr3nDin2UFzzrr1lVFAIePOjWLSoPhgVfCK45ICcr9z3fPJIOvlw9aJvnVrRmobstNc5ni5GPg85lvt3C4eBCkAyH5mFgMepgu9551OnKKe0xOY/s1600/rx.png" /></a></div>
<br />
<b>THE SIMULATION</b><br />
<b><br /></b>
Download the kb_control package from <a href="https://github.com/Arkapravo/kb_control">https://github.com/Arkapravo/kb_control</a> and install it, <i>rosmake kb_control</i><br />
<br />
Place the file <i>kb_control/morse/two_atrv.py </i>at<i> /opt/ros/morse/share/morse/examples/scenarii/</i><br />
<br />
Start an instance of the master<br />
<br />
Start the morse simulation, <i>cd /opt/ros/morse/share/morse/examples/scenarii/ && morse run two_atrv</i><br />
<br />
Start the kb_node, <i>roslaunch kb_control kb_control_morse.launch</i><br />
<br />
Now you should be able to control Castor with ROS and Pollux with MORSE.Click on the blender screen, the arrow keys will move Pollux around.Click on the <i>kb_control</i> terminal window, the arrow keys will move Castor around.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivC1jcZpKFKrjp52PuTY_DK_8Cr-lnxaADgRqsG8cVeBORfmKeSZgq5Ivcu7UTLlbrPUuhT6ulMgbgePyNKDjRA9LMvnqiQ55T6rBg8ZbpMlGz2GvuYl_B6pJmINJtCaPm4MZVxpjpJD4/s1600/pic-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivC1jcZpKFKrjp52PuTY_DK_8Cr-lnxaADgRqsG8cVeBORfmKeSZgq5Ivcu7UTLlbrPUuhT6ulMgbgePyNKDjRA9LMvnqiQ55T6rBg8ZbpMlGz2GvuYl_B6pJmINJtCaPm4MZVxpjpJD4/s640/pic-3.png" width="640" /></a></div>
<br />
<b>MORSE 1.0</b><br />
<b><br /></b>
MORSE 1.0 is slated for release in February 2013, with various improvements and newer features.<br />
<b><br /></b>
<b>ACKNOWLEDGEMENTS</b><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">I am thankful to the morse-user mailing list (</span><i style="text-align: justify;">morse-users at laas dot fr</i><span style="text-align: justify;">) particularly, Florian Lier (</span><i style="text-align: justify;">flier at techfak dot uni-bielefeld dot de</i><span style="text-align: justify;">), Michael Karg (</span><i style="text-align: justify;">kargm at in dot tum dot de</i><span style="text-align: justify;">) and Séverin Lemaignan (</span><i style="text-align: justify;">severin dot lemaignan at laas dot fr</i><span style="text-align: justify;">). I am also thankful to my friend Vasileios Lahanas (</span><i style="text-align: justify;">vasileios dot lahanas at hotmail dot com</i><span style="text-align: justify;">) for his suggestions regarding kbhit() function. </span><br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The codes discussed here can be found at, <a href="https://github.com/Arkapravo/kb_control">https://github.com/Arkapravo/kb_control</a>, any issues with the simulation then feel free to write to us, Arkapravo Bhaumik (<i>arkapravobhaumik at gmail dot com</i>) and Koushik Kabiraj (<i>koushik dot atti at gmail dot com</i>).</div>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-75826060890731144882013-01-02T15:01:00.000+05:302013-01-22T13:19:50.494+05:30PIONEER 3AT USING PLAYER<div style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;">This post is about my experience with the P3-AT robot [2], so let`s see a video about it.</span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dz5Y4bhVsfA9UdDOim-s9eXt2wykQR4nzPSf0nrFNlKxqsQeHvrbB256IgeOu-aGgC35Z17PBlVitNvO-6sGw' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<br />
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;">The robot P3-AT has a board computer with a Linux Debian 3 installed running a player`s server [1]. We were using a Control algorithm to do some experiments. The P3-AT is equipped with sonar, camera and compass.</span><br />
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span>
<span style="font-family: Trebuchet MS, sans-serif;"><b>REFERENCES </b></span><br />
<span style="font-family: Trebuchet MS, sans-serif;">[1] <a href="http://playerstage.sourceforge.net/">http://playerstage.sourceforge.net/</a> </span><br />
<span style="font-family: Trebuchet MS, sans-serif;">[2] <a href="http://www.mobilerobots.com/researchrobots/p3at.aspx">http://www.mobilerobots.com/researchrobots/p3at.aspx</a></span><br />
<br /></div>
Emory Raphaelhttp://www.blogger.com/profile/01885646698576393027noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-27159961133791816242012-10-16T22:35:00.001+05:302012-10-16T23:08:56.721+05:30ROOMBA-ING PART DEUX <div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;">After trying some basic runs of the Roomba 561 with the default modes of spot cleaning and docking I tried to program it using very basic codes sent through via a serial port communication software. </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;">I used the following hardware;</span></div>
<div style="text-align: justify;">
</div>
<ol>
<li><span style="font-family: 'Trebuchet MS', sans-serif; font-size: small;">Roomba 561 robot </span></li>
<li><a href="http://store.iheartengineering.com/iRobot-USB-robot-cable/dp/B007UR46MY" target="_blank"><span style="font-family: 'Trebuchet MS', sans-serif; font-size: small;">a FTDI USB cable </span></a></li>
<li><span style="font-family: 'Trebuchet MS', sans-serif; font-size: small;">my laptop, ACER V3-571G</span></li>
</ol>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;">I used Windows after a long time for developmental purposes. I followed this <a href="http://www.robotappstore.com/Knowledge-Base/Programming-Roomba/91.html" target="_blank">tutorial</a> and installed <a href="http://realterm.sourceforge.net/" target="_blank">Realterm</a> in Windows-7.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgWhtj7Phyphenhyphen4IInoHi1iyVmeL2gUW321xpJtv724h8J3Mvu4ilGr0TCAL2rW9YyZ0aZZx9BTpLWRIp7a29wP8bZqJV7gAwQ5MTjunOdBahT3Nasq3BsA2lQxiJe0QDjr0fixS3A860Ncfk/s1600/Untitled.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgWhtj7Phyphenhyphen4IInoHi1iyVmeL2gUW321xpJtv724h8J3Mvu4ilGr0TCAL2rW9YyZ0aZZx9BTpLWRIp7a29wP8bZqJV7gAwQ5MTjunOdBahT3Nasq3BsA2lQxiJe0QDjr0fixS3A860Ncfk/s1600/Untitled.png" /></a></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: 'Trebuchet MS', sans-serif; font-size: small;">The following videos are the outcomes of my efforts.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/3ZvC3d21Cek?feature=player_embedded' frameborder='0'></iframe></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/PJxxvEG9a0o?feature=player_embedded' frameborder='0'></iframe></div>
<div style="text-align: justify;">
<br /></div>
<div style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;">Two things which need a precaution are,</span></div>
<div style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
</div>
<ol style="font-family: "Trebuchet MS",sans-serif;">
<li><span style="font-size: small;">Realterm has to be used in XP (SP3) compatibility mode in Windows-7</span><span style="font-size: small;"> </span></li>
<li><span style="font-size: small;">The Baud has to be set to 115200 in the Realterm software for Roomba 5XX series</span><span style="font-size: small;"> </span></li>
</ol>
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;">A special thank you goes to Bill Morris (</span><span style="font-size: small;"><span class="gI" style="font-family: "Trebuchet MS",sans-serif;">bill at iheartengineering.com) for helping me procure the FTDI USB cable and ship it to India.</span></span><span style="font-family: Trebuchet MS, sans-serif; font-size: small;"> </span>Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com1tag:blogger.com,1999:blog-3869181917289756162.post-78437539066596961852012-09-30T16:39:00.000+05:302014-06-22T20:14:53.315+05:30A vmdk FOR ROS ELECTRIC <div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>ROS INSTALLATION FOR THE NON-INITIATES</b></span></span><br />
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b><br /></b></span></span>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-i33KcZ5nzrQ/U6br1OapT3I/AAAAAAAADV0/xb3DPp8EsNc/s1600/note.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-i33KcZ5nzrQ/U6br1OapT3I/AAAAAAAADV0/xb3DPp8EsNc/s1600/note.png" /></a></div>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b><br /></b></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b><br /></b></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">For a windows enthusiast, installing ROS is nothing short of a trauma. Install Ubuntu -- Update Ubuntu -- Install ROS -- Configure ROS, all of which over a bad connection can take more than 6-8 hours and getting acquainted with Ubuntu, bash and the ROS commands steepens the learning curve and thus the installation process. </span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">I have been working with a virtual OS (vmdk) on <a href="https://www.virtualbox.org/" target="_blank">Virtual Box 4.1</a>, though this download is a 3 GB file, however once downloaded it comes pre-installed with <a href="http://ros.org/wiki/electric" target="_blank">ROS electric</a> and <a href="http://playerstage.sourceforge.net/" target="_blank">Player/Stage</a> on a Ubuntu 10.04 OS. Online installation and configuration is no more an issue. </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuXDaHUGvmu8C5iqUCYANKohIdU-ZMMpns-Zi9MWkq5mfIV7SChL_jMLwrmoHdwawr5KCPSkg8G5L8wn0St5OHuhWwtEY6Mp66Jw3FsZa1HJWrjXJ8mz2Mgby4EizTrfBdN4ItALPsuJU/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuXDaHUGvmu8C5iqUCYANKohIdU-ZMMpns-Zi9MWkq5mfIV7SChL_jMLwrmoHdwawr5KCPSkg8G5L8wn0St5OHuhWwtEY6Mp66Jw3FsZa1HJWrjXJ8mz2Mgby4EizTrfBdN4ItALPsuJU/s640/4.png" height="518" width="640" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>DETAILS OF THE vmdk FILE</b> </span></span><br />
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Download link; <a href="http://ubuntuone.com/1NHvytU3My6TakjeCFgqTi">http://ubuntuone.com/1NHvytU3My6TakjeCFgqTi</a></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Download and extract the vmdk file. </span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">OS details</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">OS : Ubuntu 10.04.4</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">login : electric</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">password : electric </span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">ROS installation details</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">version : 1.6.9, electric emys</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">ROS_PACKAGE_PATH is set to <i>~/ros_packages</i></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Player/Stage installation details</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Player version : 3.0.2</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Stage version : 3.2.2</span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">The installation files can be found at <i>~/player-3.0.2</i> and <i>~/Stage-3.2.2-Source</i></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"> <b> </b></span></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"><b>ETCETERA </b></span></span></div>
<ol>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">After a full ROS installation, some basic packages have been downloaded and installed, can be found at <i>~/ros_packages</i> </span></span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">The installation of ROS and Player/Stage does not conflict. However while using Stage in ROS, it is advisable to use stageros than stage.</span></span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">C++ code to run Player/Stage can be found at <i>~/player-3.0.2/examples/libplayerc++</i> </span></span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">world and cfg files for basic simulations in Stage can be found at <i>~/Stage-3.2.2-Source/worlds</i> </span></span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">gazebo is known to have issues when used on a virtual OS </span></span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">vmdk has been tried and tested in <a href="https://www.virtualbox.org/" target="_blank">Virtual Box 4.1</a> on Ubuntu 12.04 host. Prospective users are welcome to try it out in <a href="http://www.vmware.com/" target="_blank">VMWare </a></span></span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Make sure to enable 3D acceleration in the Virtual OS</span></span></li>
<li><span style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Any issues - please email me at <i>arkapravobhaumik at gmail dot com </i></span></span></li>
</ol>
<span style="font-family: "Trebuchet MS",sans-serif;"></span>Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com3tag:blogger.com,1999:blog-3869181917289756162.post-87863335278613130152012-08-28T21:49:00.001+05:302012-08-28T21:49:28.943+05:30SOCIAL ROBOTICS PART-6<a href="http://www.flickr.com/photos/triptech/7881091500/" title="SOCIAL ROBOTICS PART-6 by Trip Technician, on Flickr"><img src="http://farm9.staticflickr.com/8291/7881091500_c4f0aa253d_z.jpg" width="640" height="454" alt="SOCIAL ROBOTICS PART-6"></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-56267538572971605672012-08-28T21:48:00.001+05:302012-08-28T21:48:10.935+05:30SOCIAL ROBOTICS PART-5<a href="http://www.flickr.com/photos/triptech/7881091950/" title="SOCIAL ROBOTICS PART-5 by Trip Technician, on Flickr"><img src="http://farm9.staticflickr.com/8302/7881091950_c56ef5027b_z.jpg" width="640" height="466" alt="SOCIAL ROBOTICS PART-5"></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-65842278567956276582012-08-23T15:01:00.001+05:302012-08-23T15:10:46.475+05:30SOCIAL ROBOTICS PART-2<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;"><a href="http://www.flickr.com/photos/triptech/7690701298/" title="Social Robotics part three"><img src="http://farm8.staticflickr.com/7262/7690701298_6b425d9857.jpg" alt="Social Robotics part three by Trip Technician" width="640" /></a><br/><span style="margin: 0;"><a href="http://www.flickr.com/photos/triptech/7690701298/">Social Robotics part three</a>, a photo by <a href="http://www.flickr.com/photos/triptech/">Trip Technician</a> on Flickr.</span></div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-40054249187362181562012-08-21T16:22:00.001+05:302012-08-21T16:25:08.964+05:30SOCIAL ROBOTICS PART-4<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;"><a href="http://www.flickr.com/photos/triptech/7822829394/" title="Luke2"><img src="http://farm8.staticflickr.com/7280/7822829394_ecd12504e4.jpg" width="640" alt="Luke2 by Trip Technician" /></a><br/><span style="margin: 0;"><a href="http://www.flickr.com/photos/triptech/7822829394/">Luke2</a>, a photo by <a href="http://www.flickr.com/photos/triptech/">Trip Technician</a> on Flickr.</span></div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-75541815657672643472012-08-21T16:21:00.001+05:302012-08-21T16:25:24.769+05:30SOCIAL ROBOTICS PART-3<div style="margin: 0 0 10px 0; padding: 0; font-size: 0.8em; line-height: 1.6em;"><a href="http://www.flickr.com/photos/triptech/7822829088/" title="Luke3"><img src="http://farm9.staticflickr.com/8299/7822829088_33732552d7.jpg" alt="Luke3 by Trip Technician" width="640" /></a><br/><span style="margin: 0;"><a href="http://www.flickr.com/photos/triptech/7822829088/">Luke3</a>, a photo by <a href="http://www.flickr.com/photos/triptech/">Trip Technician</a> on Flickr.</span></div><p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-85136374543564470882012-08-16T21:08:00.001+05:302012-08-18T21:59:06.439+05:30ANNOVATEUR - Adi's BOT<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzCrgLm15L0NYUbEa-5aEk9704pkfuc4MlKlJ1FbUBl_ygdEbq-FBWtvt2RDHboVZT3cFN2-vhKLzrBbFCEIWuvlkE4MANGG225d3iSkjA3wuA1AZsGEczuT_YEvxU-n8_8klEE9ZAN_U/s1600/DSC_5377.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="427" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzCrgLm15L0NYUbEa-5aEk9704pkfuc4MlKlJ1FbUBl_ygdEbq-FBWtvt2RDHboVZT3cFN2-vhKLzrBbFCEIWuvlkE4MANGG225d3iSkjA3wuA1AZsGEczuT_YEvxU-n8_8klEE9ZAN_U/s640/DSC_5377.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjisu_lYnz5kgEfhehD7FlCBF89CNqVXdpOJ421j_a1WbZfVeTy5xGuoBolUJ3hpdoubXR6T8asUiaV2FmFIhrN3s0VlHo7P9I1MuXKubWUDfEqTvaHP82Tg9LfYX1mYAP3KVkn7dnbqT4/s1600/DSC_5360.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjisu_lYnz5kgEfhehD7FlCBF89CNqVXdpOJ421j_a1WbZfVeTy5xGuoBolUJ3hpdoubXR6T8asUiaV2FmFIhrN3s0VlHo7P9I1MuXKubWUDfEqTvaHP82Tg9LfYX1mYAP3KVkn7dnbqT4/s640/DSC_5360.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvdeyAeEfrDZWhhOozZVpD4G3k9Uo_M45bSI3fMEVt9_ULeSGUEmNKksvRI89_clqdlHcc7P7eKrBQBpQyi00OWrAw5DUjO2sPh6ss2uSpQ18ybX7P-sFqFwhYBoG-gsYox3bF2h8_T4/s1600/DSC_5370.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvdeyAeEfrDZWhhOozZVpD4G3k9Uo_M45bSI3fMEVt9_ULeSGUEmNKksvRI89_clqdlHcc7P7eKrBQBpQyi00OWrAw5DUjO2sPh6ss2uSpQ18ybX7P-sFqFwhYBoG-gsYox3bF2h8_T4/s640/DSC_5370.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5rmY0QKqgLDtydrDvs_9F6JkQ5t8MgNbkfPEcIXq7DIX1MzV8hJdA72En1IfyLFd4DJnM2CsdQ_cqU1CIAhJKIRKc9z3HEgPt1PnavryGToXDkMh5fvoZUqGFZltqP6SwykM3y5XO6fQ/s1600/DSC_5374.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5rmY0QKqgLDtydrDvs_9F6JkQ5t8MgNbkfPEcIXq7DIX1MzV8hJdA72En1IfyLFd4DJnM2CsdQ_cqU1CIAhJKIRKc9z3HEgPt1PnavryGToXDkMh5fvoZUqGFZltqP6SwykM3y5XO6fQ/s1600/DSC_5374.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="428" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5rmY0QKqgLDtydrDvs_9F6JkQ5t8MgNbkfPEcIXq7DIX1MzV8hJdA72En1IfyLFd4DJnM2CsdQ_cqU1CIAhJKIRKc9z3HEgPt1PnavryGToXDkMh5fvoZUqGFZltqP6SwykM3y5XO6fQ/s640/DSC_5374.JPG" width="640" /></a></div>
<div style="text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dznpcV2RXljIK1PRTfomhe4E-aUpFEJ7YeAikv5YEH-anUgTVvbSOLkafCm0yZrBE2FrY9SbON8b-zB6piZsw' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dzV9a8ShMvH2pa1k5E2UXqmUp6WGjbPToRE8gMXlb02rCzK5wkD8FmUwtA1wPCCtyhDHImNnx2LZS1qpAoPGg' class='b-hbp-video b-uploaded' frameborder='0'></iframe><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5rmY0QKqgLDtydrDvs_9F6JkQ5t8MgNbkfPEcIXq7DIX1MzV8hJdA72En1IfyLFd4DJnM2CsdQ_cqU1CIAhJKIRKc9z3HEgPt1PnavryGToXDkMh5fvoZUqGFZltqP6SwykM3y5XO6fQ/s1600/DSC_5374.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dzPLIhSNoV5MfM9oek2n_x8DbWfVdEk1ZXEet-UgWySU9xhoigM8E99i_GJvqQ16tcB1LofK5OfS_dX16KBaw' class='b-hbp-video b-uploaded' frameborder='0'></iframe></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: center;">
<span style="font-size: small;">Hey all!, </span></div>
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: center;">
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">About the machine in the picture:</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">AN-NOVA-TEUR</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">Which stands for ANalog inNOVAtion amaTEUR </span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">My 3<sup>rd</sup> line follower bot, a definite improvisation
on its predecessors</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">A line follower, completed in March 2012 after 4 months of work,
mostly post midnight</span><br />
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">BOT Description</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<ul>
<li><span style="font-size: small;">Body</span><span style="font-size: small;"> : Glass fibre
PCB. Designed for a low CG. Lightweight,</span></li>
<li><span style="font-size: small;">Drive Assembly: Pololu Micrometal Gear Motors 1000 rpm
driven by TB6612FNG motor driver bought from sparkfun</span></li>
<li><span style="font-size: small;">Microcontroller: 32 bit ARM Cortex M3 based LM3S9B96, made
by TI Fitted with accelerometer, for precise calculations for
turning, for optimizing speed constants during second run</span></li>
<li><span style="font-size: small;">Line sensor: Self designed, home-made 10 IR-pair based
analog sensor array, laser printed with cloth-ironed on a copper clad plate.</span></li>
<li><span style="font-size: small;">Battery pack: 4 Lithium-ion BL5C soldered in series to
generate around 14V</span></li>
<li><span style="font-size: small;">About the Code: Elements for ambient compensation, PWM Motor
control for implementation of PID based control algorithm</span></li>
<li><span style="font-size: small;">Performed at : APOGEE 2012, <a href="http://en.wikipedia.org/wiki/Birla_Institute_of_Technology_and_Science" target="_blank">BITS,Pilani</a></span></li>
<li><span style="font-size: small;">Accolades : 1<sup>st</sup> Position at Track-o-Mania, Apogee
2012, <a href="http://en.wikipedia.org/wiki/Birla_Institute_of_Technology_and_Science" target="_blank">BITS,Pilani</a></span></li>
</ul>
</div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;"><b>Line followers are many but "ANNOVATEUR" is one.</b> Class apart feature of this bot is the self fabricated, designed Infrared sensor Analog Array, which allows for much more flexibility in the control algorithm. This is the feature that makes ANNOVATEUR just not any other bot, but 'My Bot'.</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;">The path for a plain hobby to something meaningful wouldn't have been possible without the ardent support of my mentor Prof. Samir Lohani. I'm highly grateful to such a stalwart who always provided his humble support even through his busy schedule as a railway officer. His lines of coding are capable of springing dead machines to life and this is aptly proved by a couple of patents that he has to his name. With hands-on experience on both Mechanical and Electronics Engineering, I couldn't have found a better guide, a better friend.</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;">Though this is just a beginning with my passion, endurance, innovation and the guidance of my mentor, I'm sure to come up with many more innovations in future, so keep looking up this space for my future endeavours.</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: right;">
<span style="font-size: small;">About Me:</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: right;">
<span style="font-size: small;">Aditya Sharma </span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: right;">
<span style="font-size: small; line-height: 115%;"> Mech Engg undergrad student</span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: right;">
<span style="font-size: small; line-height: 115%;"> at <a href="http://en.wikipedia.org/wiki/Indian_Railways_Institute_of_Mechanical_and_Electrical_Engineering" target="_blank">IRIMEE, Jamalpur</a></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small; line-height: 115%;"> </span><span style="font-size: small;"> </span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div class="MsoNormal" style="font-family: "Trebuchet MS",sans-serif; text-align: center;">
<span style="font-size: small;">Adios !!</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
Anonymoushttp://www.blogger.com/profile/15091484821660592389noreply@blogger.com4tag:blogger.com,1999:blog-3869181917289756162.post-36511374954249047212012-08-14T22:04:00.000+05:302012-08-17T01:05:40.777+05:30SOCIAL ROBOTICS PART-1<div class="separator" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwjETrKKjLF3iiRJIFEYqD7XoQ33bXClelhgw12i1-t5DhyDyLr96qM1eYjKYCCCwC1njGmY9Som1er992mgV_hLyx1Y9YWhNKH7OCVL6UO5CspzVnMzsNHtXodXEmt0ps_9LAZw7xEb4/s1600/7690702122_975b9eb7fb_b.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="461" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwjETrKKjLF3iiRJIFEYqD7XoQ33bXClelhgw12i1-t5DhyDyLr96qM1eYjKYCCCwC1njGmY9Som1er992mgV_hLyx1Y9YWhNKH7OCVL6UO5CspzVnMzsNHtXodXEmt0ps_9LAZw7xEb4/s640/7690702122_975b9eb7fb_b.jpg" width="640" /></a></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><br /></span>
<span style="font-size: small;"> For more on the Kismet robot; </span></div>
<ol style="font-family: "Trebuchet MS",sans-serif;">
<li><span style="font-size: small;"><a href="http://www.ai.mit.edu/projects/humanoid-robotics-group/kismet/kismet.html">http://www.ai.mit.edu/projects/humanoid-robotics-group/kismet/kismet.html</a></span></li>
<li><span style="font-size: small;"><a href="http://www.ai.mit.edu/projects/sociable/baby-bits.html">http://www.ai.mit.edu/projects/sociable/baby-bits.html</a></span></li>
<li><span style="font-size: small;"><a href="http://videos.howstuffworks.com/mit/2665-kismet-the-sociable-robot-video.htm">http://videos.howstuffworks.com/mit/2665-kismet-the-sociable-robot-video.htm</a> </span></li>
<li><span style="font-size: small;"><a href="http://www.youtube.com/watch?v=dKZczUDGp_I">http://www.youtube.com/watch?v=dKZczUDGp_I</a></span></li>
</ol>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-24865855021670968552012-07-31T21:01:00.001+05:302012-08-01T00:07:41.429+05:30SOCIAL ROBOTICS 101 - PRIMER<div style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;">My friend <a href="http://pythonism.wordpress.com/" target="_blank">Luke</a> is planning to do a series on social robotics. This is a sampler of his efforts till now. </span></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3uXgStAUcgu8AN32Q6nMcaT_ZwPeAV2e_8QZd49ZjizvaZxN_cER0XKJXjfu20NNIWZB_ZViKRX4m3DlpN8IMD1CFRQf0gvJvPZEiGQUdvaIp0XEZGmNyj46SRYynWbPCcQwdXqo6A0o/s1600/socialrobotics_primer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3uXgStAUcgu8AN32Q6nMcaT_ZwPeAV2e_8QZd49ZjizvaZxN_cER0XKJXjfu20NNIWZB_ZViKRX4m3DlpN8IMD1CFRQf0gvJvPZEiGQUdvaIp0XEZGmNyj46SRYynWbPCcQwdXqo6A0o/s640/socialrobotics_primer.jpg" width="499" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">More to come ........ </span></div>Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com0tag:blogger.com,1999:blog-3869181917289756162.post-66030211128718379402012-05-19T10:47:00.002+05:302012-05-20T10:13:12.833+05:30ROOMBA-ING !<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><b>SIMPLE RUNS OF THE ROOMBA</b></span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">I recently purchased a Roomba 561. In these two videos I am trying out simple pre-programmed runs of the robot.</span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/j6i2t9pGRpc?feature=player_embedded' frameborder='0'></iframe></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/IoF_DegAZQE/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/IoF_DegAZQE?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" />
<param name="bgcolor" value="#FFFFFF" />
<embed width="320" height="266" src="http://www.youtube.com/v/IoF_DegAZQE?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash"></embed></object></div>
<br />Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com2tag:blogger.com,1999:blog-3869181917289756162.post-56834979049722601492012-04-23T02:00:00.000+05:302012-06-10T10:55:09.757+05:30A CLASSIFICATION SCHEME FOR SWARMING<div style="text-align: justify;">
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><b><i>...... birds do it, bees do it. Even educated fleas do it </i>.....</b> oh yes ! ... they all form swarms. The sense of collectivism runs deep into insects, fishes, animals and human beings. The collective exhibits traits which are not present in the individual. </span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">Anthropomorphism of such collective intelligence into the mobile robots domain has been the motivator for swam robotics. </span><span style="font-size: small;">The central idea is forming distinguishable flocks of mobile robots.</span><span style="font-size: small;"> </span><span style="font-size: small;">As Çelikkanat etal. puts it, <i>"... aims to develop self-organization in large groups of robots with no centralized control while putting emphasis on flexibility, robustness and scalability ..." </i></span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><i></i></span><span class="st" style="font-size: small;"><i><br /></i></span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">The earliest work on swarm robotics was by Mataric. Later research into animal robot interaction by Vaughan, Henderson, Halloy, Bonabeau etc; into particle swarms by Vicsek and philosophical insights and arguments by Reynolds, Dorigo and Şahin structured the discipline to its current form. </span></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX3ZfQUW9FqUUv3bcZO5wRBFq3aBSQX71DXHelFLF67bF8tKerFWeqEW9GsnWzEyCIRcOJHNZHB7gxur-8CeasXzfD7RCZ_XhA-j_KhmHDoPZ2HT8pPE4eIkZOpGMvCYnPFc1u2meTvvM/s1600/1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX3ZfQUW9FqUUv3bcZO5wRBFq3aBSQX71DXHelFLF67bF8tKerFWeqEW9GsnWzEyCIRcOJHNZHB7gxur-8CeasXzfD7RCZ_XhA-j_KhmHDoPZ2HT8pPE4eIkZOpGMvCYnPFc1u2meTvvM/s320/1.jpg" width="239" /></a></td></tr>
<tr style="font-family: "Trebuchet MS",sans-serif;"><td class="tr-caption" style="text-align: center;">Fig.1. Mobile robot flocks, experiments by Mataric</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCmp6yfMaY7AO6QDANQidcQ3OZQI5wnTnyAVM-SvshFmuU5j01lZuk0jrLm-xZNKF32maLd0ceQyZpWoeu8TTOJbKZGALbTDSezDzqv2BrDEiDSyftVUocZJAqhTKxY0iPrrRmZgIiEJU/s1600/1D25F009.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCmp6yfMaY7AO6QDANQidcQ3OZQI5wnTnyAVM-SvshFmuU5j01lZuk0jrLm-xZNKF32maLd0ceQyZpWoeu8TTOJbKZGALbTDSezDzqv2BrDEiDSyftVUocZJAqhTKxY0iPrrRmZgIiEJU/s1600/1D25F009.gif" /></a></td></tr>
<tr style="font-family: "Trebuchet MS",sans-serif;"><td class="tr-caption" style="text-align: center;">Fig.2. <a href="http://www.cs.ox.ac.uk/stephen.cameron/sheepdog/" target="_blank">Sheepdog project</a> by Cameron and Vaughan</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNV3A1Pf5u4JBCC_iLYhKtfZPhOO_5TA1_Eb3V7_addmJJ3FLG6yeBAYd62tDuwSPhL61emuModEM4RD6PYwo-raD3W0rObZOv4gA66dfbKzxAbiIt1okaklNF4QJOcHMzG_q40JiKn3w/s1600/robo_roach_1115.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNV3A1Pf5u4JBCC_iLYhKtfZPhOO_5TA1_Eb3V7_addmJJ3FLG6yeBAYd62tDuwSPhL61emuModEM4RD6PYwo-raD3W0rObZOv4gA66dfbKzxAbiIt1okaklNF4QJOcHMzG_q40JiKn3w/s400/robo_roach_1115.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fig.3. Experiments by <a href="http://www.cns.nyu.edu/events/spf/SPF_papers/HalloyDeneubourgS07.pdf" target="_blank">Halloy etal</a>.</td></tr>
</tbody></table>
<span style="font-size: small;">In mobile robot context, </span><span style="font-size: small;">the terms flocking and swarming </span><span style="font-size: small;"> are often used synonymously. Swarm may be structured by various control paradigms, some well known scenarios are; </span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"></span></div>
<ol>
<li style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Same pose - similar angular orientations will clearly distinguish a swarm</span></li>
<li style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">Goal driven - similar destination/intentions will implicitly form swarm. Such can also be seen in, f</span><span style="font-size: small;">oraging for food and escaping from the same predator/adversary</span><span style="font-size: small;"><span style="font-family: "Trebuchet MS",sans-serif;"> - <i>'follow the leader'</i> or <i>'follow landmarks'</i> can be seen to be an extension of this idea wherein the goal is dynamic.</span></span></li>
</ol>
<span style="font-size: small;"><span style="font-family: "Trebuchet MS",sans-serif;">Like these there are very many ways to form flocks, it is worth a note that agents with similar velocity or similar position do not reflect a control paradigm and do not necessarily form flocks.</span></span><br />
<ol>
</ol>
<span style="font-size: small;"><span style="font-family: "Trebuchet MS",sans-serif;">The above </span></span><span style="font-size: small;"><span style="font-family: "Trebuchet MS",sans-serif;">calls for a classification of swarms, which would be based on a behaviour based approach and would aid in developing a pedagogy for studying swarms. Such an ontology is provided by Turgut etal., swarming is attributed as an vector like addition of behaviours much in the spirit of Brooks and Arkin. Turgut defines <b>f</b> as the flocking control vector;</span></span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc8vtYzXv8qLAtqFsthhzufImDa-iBJTAOLDiZdl2sIWy1hHAkzWWXgLSqZb_XtTFThJbW7F7zwpMAGalv4TDcpRl-SWevEzsQ5EchyLaZLY1Ve3TtSgjSTY0LrYmmcwOWhn_WbIngb4I/s1600/e1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc8vtYzXv8qLAtqFsthhzufImDa-iBJTAOLDiZdl2sIWy1hHAkzWWXgLSqZb_XtTFThJbW7F7zwpMAGalv4TDcpRl-SWevEzsQ5EchyLaZLY1Ve3TtSgjSTY0LrYmmcwOWhn_WbIngb4I/s1600/e1.png" /></a></div>
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;">where <b>p</b> is the proximal control vector, that encodes attraction/repulsion roles, <b>a</b> is the alignment control vector and <b>g</b> is the goal direction vector. While </span><span style="font-size: small;">α, β and γ are arbitrary constants.</span></div>
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<br /></div>
<span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">Proximal control (<b>p</b>) is manifestation of the idea that the agents should come close enough to form a swarm but not too close to crash into each other, this level of control is chosen as the lowest level in order to form the swarm and maintain it. Couzin etal. illustrates this notion with a zone model.</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDkglnwdlLcd00eJWWKgIL7ufT1O1Hhyphenhyphena_mj6rYzFP2SPTURb6S_-pdhqHqV0SPHfcNvEW-3vmV7OltjqOnhL_5vZtGdYNjUEvYMghXzYoC32YKKHlDf20p3U5c_asthBrXcpj_0Su4kI/s1600/puttu123.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDkglnwdlLcd00eJWWKgIL7ufT1O1Hhyphenhyphena_mj6rYzFP2SPTURb6S_-pdhqHqV0SPHfcNvEW-3vmV7OltjqOnhL_5vZtGdYNjUEvYMghXzYoC32YKKHlDf20p3U5c_asthBrXcpj_0Su4kI/s400/puttu123.PNG" width="372" /></a></td></tr>
<tr style="font-family: "Trebuchet MS",sans-serif;"><td class="tr-caption" style="text-align: center;">Fig.4. Zones model as suggested by <a href="http://www.sciencedirect.com/science/article/pii/S0022519302930651" target="_blank">Couzin etal</a>.</td></tr>
</tbody></table>
<div style="text-align: justify;">
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">Angular alignment (<b>a</b>) is a popular tool for flock formation, aligning the agents with a common heading angle ensures a common trait across the group. However a swarm structured on angular alignment without proximal control, the agents may exhibit a collision prone Brownian motion like behaviour. </span><br />
<br />
<span style="font-size: small;">Goal directedness (<b>g</b>) is not a behaviour exhibited by swarms, however for researches as those by <a href="http://www.nature.com/nature/journal/v433/n7025/abs/nature03236.html" target="_blank">Couzin</a>, </span><span style="font-size: small;">Turgut</span><span style="font-size: small;"> and <a href="http://iridia.ulb.ac.be/IridiaTrSeries/link/IridiaTr2012-003.pdf" target="_blank">Ferrante</a> this serves to incorporate informed agents, which whence would implicitly guide the swarm to its goal. </span><br />
<br />
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<span style="font-size: small;">This
superposition of 3 control vectors to yield a flocking control vector
can be seen an extension of layered control as suggested by Brooks in subsumption
architecture. </span></div>
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: justify;">
</div>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBNT78FzNO901Ei05uYCjRWxvGRksvlS_abV7huNdwqLbpMa085qVa9WUgpCdIhuc-U3xQwav2Iz9a8_dmC21ucba0VkyGdavMPppEO-47m8mELuxAdMluTKy_IF5kCTYSUTqgmU4q7Wk/s1600/SR.png" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBNT78FzNO901Ei05uYCjRWxvGRksvlS_abV7huNdwqLbpMa085qVa9WUgpCdIhuc-U3xQwav2Iz9a8_dmC21ucba0VkyGdavMPppEO-47m8mELuxAdMluTKy_IF5kCTYSUTqgmU4q7Wk/s640/SR.png" width="640" /></a></td></tr>
<tr style="font-family: "Trebuchet MS",sans-serif;"><td class="tr-caption" style="text-align: center;">Fig.5. Layered control for swarming</td></tr>
</tbody></table>
</div>
<div style="font-family: "Trebuchet MS",sans-serif;">
</div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">Thus, with Turgut's flocking control vector; </span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<ol style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;"></span>
<li><span style="font-size: small;">Same angular alignment : <b>f</b> = <b>a</b> but probably there will be oodles of collisions !!!! thus a better option may be, </span><span style="font-size: small;"><b>f</b> = <b>p</b> + <b>a</b></span><span style="font-size: small;"> </span></li>
<span style="font-size: small;">
</span>
<li><span style="font-size: small;">Goal driven : <b>f</b> = <b>g</b> which is not very realistic, thus <b>f</b> = <b>p</b> + <b>g</b></span><span style="font-size: small;"> </span></li>
</ol>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">Scenarios of </span><span style="font-size: small;"><b>f</b> = <b>p</b> + <b>a + g</b>, will be seen in effect in a swarm formed by angular alignment, which also has informed agents equipped a sense of goal directedness.</span></div>
<br />
<div style="font-family: "Trebuchet MS",sans-serif;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIMGcVl6FKR-Pc4KeEXAHfUF8B4pWGc5w0Rtl-7uzH1dqqpLckHHx-2J0V1VuQ-6EeMsUKuwS5Rtu6IQCf5yLuqmPVAWIRdnItlJtbELg8TSL3wz1aR5T5W5KIgdSSqBPq7ftOK_1mAFg/s1600/R1s.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIMGcVl6FKR-Pc4KeEXAHfUF8B4pWGc5w0Rtl-7uzH1dqqpLckHHx-2J0V1VuQ-6EeMsUKuwS5Rtu6IQCf5yLuqmPVAWIRdnItlJtbELg8TSL3wz1aR5T5W5KIgdSSqBPq7ftOK_1mAFg/s1600/R1s.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Fig.6. <a href="http://robotics.usc.edu/?l=Robots:retired" target="_blank">The Nerd Herd</a> by Mataric</td></tr>
</tbody></table>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><b>REFERENCES</b></span></div>
</div>
<ol style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">
</span></ol>
</div>
<ol style="font-family: "Trebuchet MS",sans-serif;"><span style="font-size: small;">
</span></ol>
<ol style="font-family: "Trebuchet MS",sans-serif;">
<li style="text-align: left;"><span style="font-size: small;">Maja J Matarić, <a href="ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-1495.pdf" target="_blank">"Interaction and Intelligent Behavior"</a>, MIT
EECS PhD Thesis, May 1994,<i> MIT AI Lab Tech Report AITR-1495,</i>Aug
1994.</span></li>
<li style="text-align: left;"><span style="font-size: small;">Richard T. Vaughan,
<a href="http://www.blogger.com/goog_543164569"> </a></span><span style="font-size: small;"><a href="http://www.blogger.com/goog_543164569">"Experiments in Automatic Flock Control</a></span><span style="font-size: small;"><a href="http://autonomy.cs.sfu.ca/doc/vaughan_thesis.pdf" target="_blank">"</a>,
PhD thesis, University of Oxford, 1999.</span></li>
<li style="text-align: left;"><span style="font-size: small;">Ali Emre Turgut, <a href="http://etd.lib.metu.edu.tr/upload/12609462/index.pdf" target="_blank">"Self-organized Flocking with a Mobile Robot Swarm"</a>, PhD thesis, Middle Eastern Technical University, 2008 </span></li>
<li style="text-align: left;"><span style="font-size: small;">Halloy, J., Sempo, G., Caprari, G., Rivault, C., Asadpour, M., Tache, F., Said, I., Durier, V., Canonge, S., Ame, J.M., Detrain, C., Correll, N., Martinoli, A., Mondada, F., Siegwart, R. & Deneubourg, J.L. 2007. <a href="http://www.cns.nyu.edu/events/spf/SPF_papers/HalloyDeneubourgS07.pdf" target="_blank">Social integration of robots into groups of cockroaches to control self-organized choices</a>. Science 318: 1155-1158.</span></li>
<li style="text-align: left;"><span style="font-size: small;">Turgut, A. E., Çelikkanat, H., Gökçe, F., & Şahin, E. (2008). <a href="http://euler.nmt.edu/%7Ejstarret/530/AgentBasedModels/RobotSwarms.pdf" target="_blank">Self-organized flocking in mobile robot swarms</a>. <i>Swarm Intelligence</i>, <i>2</i>(2-4), 97-120. International Foundation for Autonomous Agents and Multiagent Systems.</span><span style="font-size: small;"> </span></li>
<li style="text-align: left;"><span style="font-size: small;">Çelikkanat, H., Turgut, A. E., & Sahin, E. (2008). <a href="http://www.kovan.ceng.metu.edu.tr/%7Ehande/yayinlar/dars2008.pdf" target="_blank">Guiding a robot flock via informed robots</a>. <i>Distributed Autonomous Robotic Systems DARS 2008</i> (p. 215–225). Springer-Verlag. </span></li>
</ol>
</div>Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com2tag:blogger.com,1999:blog-3869181917289756162.post-36820092015762991912012-03-22T23:41:00.000+05:302012-04-20T15:30:36.364+05:30A GUI FOR ROS !<div style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">Once I tried to explain ROS to one of my friends, after about 15 minutes of blabbering and tapping keys on the computer .... he looked at me and asked; <i>"We need to open 4 terminal windows to get this thing moving ?"</i>. Though the terminal window is what most of us just love to use, a colourful GUI is always more welcome. Such a GUI, rxDeveloper is provided by Filip Muellers at
<a href="http://code.google.com/p/rxdeveloper-ros-pkg/" target="_blank">http://code.google.com/p/rxdeveloper-ros-pkg/</a>.</span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">The clear advantage that rxDeveloper has over the terminal window is that everything is pictorial and would lure the potentially non-initiated robot enthusiast.</span><span style="font-size: small;"> I used Stage and Gazebo launch scripts through rxDeveloper and everything worked nearly all right.</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCJ93XOH0FSSimliuPvknAm0flNzLoQ0MWk9QAk763dhskaXYW27ajV8tWzYYdqK9va0l-ZgcZqVQQ2Q4leXL8W8ML0hKSZuqiCDObeIYbn8CyvrWxXWQRBZZoyZ1sheqybssUVvm4D0k/s1600/rx-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="377" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCJ93XOH0FSSimliuPvknAm0flNzLoQ0MWk9QAk763dhskaXYW27ajV8tWzYYdqK9va0l-ZgcZqVQQ2Q4leXL8W8ML0hKSZuqiCDObeIYbn8CyvrWxXWQRBZZoyZ1sheqybssUVvm4D0k/s640/rx-1.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD2moABE6IG7dTT7Cb3i2yaSM8IkVKbUmhEowVZySBXSJFaibMKCmBtX_B2CUX1LAZGkdL5UhrNUc2TsStOJWTmCAA0ywxJGg91iW8xWv6vm7n6mmg9hV_-wNJ4J8A77erejoWjk9JvgA/s1600/rx-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="376" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD2moABE6IG7dTT7Cb3i2yaSM8IkVKbUmhEowVZySBXSJFaibMKCmBtX_B2CUX1LAZGkdL5UhrNUc2TsStOJWTmCAA0ywxJGg91iW8xWv6vm7n6mmg9hV_-wNJ4J8A77erejoWjk9JvgA/s640/rx-5.png" width="640" /></a></div>
<div class="separator" style="clear: both; font-family: "Trebuchet MS",sans-serif; text-align: center;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: "Trebuchet MS",sans-serif;">
<span style="font-size: small;">The GUI works well with launch files and it doesn't need to explicitly start the master. Tools as rviz, roswtf, rxgraph, rxconsole etc are available as a drop down menu, a bash like script keeps track of the execution of the launch files, each node/process is pictorially denoted and there are facilities to create, edit and save all kinds of launch files.</span></div>
</div>
<div style="font-family: "Trebuchet MS",sans-serif; text-align: justify;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9NnyGTW2lOrDwdhTW5sNQSDUuNuqgGy3G3YsoolmzCmUS50S0d5Phn0BC5PVNjuc9HSdeKbJuE33N43PhZOGK4R-QTd0TLNGpNv5vjjvz7BYc3abElyzLdrWRMdkDtXO9aslxt-Ldmdg/s1600/rx-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="377" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9NnyGTW2lOrDwdhTW5sNQSDUuNuqgGy3G3YsoolmzCmUS50S0d5Phn0BC5PVNjuc9HSdeKbJuE33N43PhZOGK4R-QTd0TLNGpNv5vjjvz7BYc3abElyzLdrWRMdkDtXO9aslxt-Ldmdg/s640/rx-2.png" width="640" /></a></div>
<br />
<span style="font-size: small;">With some effort it was possible to add rxDeveloper to my Applications menu in Ubuntu 10.04,</span><br />
<br />
<div style="font-family: "Trebuchet MS",sans-serif;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiTF4eFnyt8VIi4Wdou-Q8fgPPKst0YEN0Db6SUKHm26AEwGYxaLfJB5xhS-_fy8vM8TBog-fW4cbQKY-de3m1OE_RqGLmK3kBzO4uN62-Q8lWvvAADicmdIWLfengSqcdRun46s9z810/s1600/rx-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="533" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiTF4eFnyt8VIi4Wdou-Q8fgPPKst0YEN0Db6SUKHm26AEwGYxaLfJB5xhS-_fy8vM8TBog-fW4cbQKY-de3m1OE_RqGLmK3kBzO4uN62-Q8lWvvAADicmdIWLfengSqcdRun46s9z810/s640/rx-10.png" width="640" /></a></div>
<br />
<span style="font-size: small;">NOTE : All observations are for rxDeveloper version 1.0b, ROS diamondback version 1.4.10 installed on Ubuntu 10.04 LTS</span></div>Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com7tag:blogger.com,1999:blog-3869181917289756162.post-3745371209080082172012-02-03T14:56:00.001+05:302013-07-01T01:21:35.444+05:30DESIGNING STAGE CONTROLLERS<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">Stage 3.X.X onwards, it is a stand alone simulator and the robot behaviour can be controlled using <i>'controllers'</i>, the installation provides with some basic controllers which serves the purposes of wandering, laser noise, swarm formation etc. However such calls for the facility for writing custom made stage controllers.</span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif;"><span style="font-size: small;">Dr.Vaughan has provided a template for designing such controllers for stage 4.X.X, <a href="https://github.com/rtv/stagectrl">https://github.com/rtv/stagectrl</a>; I have forked out a version of the same for stage 3.X.X; </span><a href="https://github.com/Arkapravo/stagectrl_stage3">https://github.com/Arkapravo/stagectrl_stage3</a>. </span></div>
<div style="text-align: justify;">
<span style="font-family: Trebuchet MS, sans-serif; font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: "Trebuchet MS",sans-serif; font-size: small;">The README file has instructions on how to use this template.</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPblJGYfJYVSuyffK0OxrAPVa9fzjk6CuZWkSwPzAXXwNanwKybpfcKDpaN-iHlDsuerKYSnRsqrRSsrvYI3cA7NazhU1uZlCbGVzL1pKbkaw_dNbR48Xz8JMdqBNloLfI3aV5M8oXUV4/s1600/stagectrl.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPblJGYfJYVSuyffK0OxrAPVa9fzjk6CuZWkSwPzAXXwNanwKybpfcKDpaN-iHlDsuerKYSnRsqrRSsrvYI3cA7NazhU1uZlCbGVzL1pKbkaw_dNbR48Xz8JMdqBNloLfI3aV5M8oXUV4/s400/stagectrl.png" width="373" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Trebuchet MS",sans-serif; font-size: x-small;">Fig.1. The default simulation for the template</span><br />
<span style="font-family: "Trebuchet MS",sans-serif;"> </span></td><td class="tr-caption" style="text-align: center;"><span style="font-family: "Trebuchet MS",sans-serif;"><br /></span></td></tr>
</tbody></table>
Arkapravo Bhaumikhttp://www.blogger.com/profile/12257489973579585325noreply@blogger.com3