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

<channel>
	<title>Temple University Neural Instrumentation Lab &#187; Projects</title>
	<atom:link href="http://www.obeidlab.com/category/lab-personnel-only/projects/feed" rel="self" type="application/rss+xml" />
	<link>http://www.obeidlab.com</link>
	<description>“Integrating hardware, software, and algorithm research in pursuit of brain-machine interface instrumentation”</description>
	<lastBuildDate>Thu, 22 Oct 2009 02:37:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pneumatic Arm</title>
		<link>http://www.obeidlab.com/pneumatic-arm</link>
		<comments>http://www.obeidlab.com/pneumatic-arm#comments</comments>
		<pubDate>Wed, 29 Oct 2008 15:57:00 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[Multi-Tuned Neuron Project]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.obeidlab.com/?p=516</guid>
		<description><![CDATA[This article provides complete documentation for purchasing, constructing, programming, and operating a Pneumatic Arm Truss. The PAT supports a two-degree FOM pneumatic arm for inclusion in the BMI Workbench.
System Operation
Startup

Inspect T-35HD Air Compressor Filter. Rinse with soap &#38; water as necessary.
Inspect T-35HD air tank for water (valve on bottom of tank). Tilt tank and drain [...]]]></description>
			<content:encoded><![CDATA[<p>This article provides complete documentation for purchasing, constructing, programming, and operating a Pneumatic Arm Truss. The PAT supports a two-degree FOM pneumatic arm for inclusion in the BMI Workbench.</p>
<h1 id="toc-system-operation">System Operation</h1>
<h2 id="toc-startup">Startup</h2>
<ol>
<li>Inspect T-35HD Air Compressor Filter. Rinse with soap &amp; water as necessary.</li>
<li>Inspect T-35HD air tank for water (valve on bottom of tank). Tilt tank and drain if necessary. Ensure valve is closed prior to use. (Stem will be at its longest when closed.)</li>
<li>Inspect LFR-D-MIDI &amp; LF-D-5M-MIDI regulators for condensate. Release condensate if it is within 10mm below filter element by opening the lower blue plugs during system operation.</li>
<li>Adjust the LFR-D-MIDI regulator. Pull blue pressure setting button upwards to unlock it (away from housing). Turn pressure setting button in the &#8216;-&#8217; direction as far as possible.</li>
<li>Place T-35HD power switch in auto position. The pump will automatically maintain between 100 &#8211; 140 PSIG.</li>
<li>Turn the LFR-D-MIDI pressure setting button in the &#8216;+&#8217; direction until the desired pressure is shown on its manometer. (Note: The input pressure must be at least 1 bar greater than the output pressure.)</li>
<li>Press the the LFR-D-MIDI pressure setting button down to secure it against unintentional turning.</li>
</ol>
<h2 id="toc-operation">Operation</h2>
<ol>
<li>To Be Completed.</li>
</ol>
<h2 id="toc-shutdown">Shutdown</h2>
<ol>
<li>Remove supply pressure. Adjust the LFR-D-MIDI regulator. Pull blue pressure setting button upwards to unlock it (away from housing). Turn pressure setting button in the &#8216;-&#8217; direction as far as possible.</li>
<li>Power OFF compressor</li>
<li>Release compressor tank pressure and excess condensate via drain valve.</li>
<li>Power OFF setpoint voltage</li>
<li>Power OFF supply voltage</li>
</ol>
<h1 id="toc-schematics">Schematics</h1>
<p><a href="http://www.obeidlab.com/wp-content/uploads/base_schematic_v1.jpg" rel="lightbox[516]"><img class="size-medium wp-image-589 alignnone" title="Base Schematic" src="http://www.obeidlab.com/wp-content/uploads/base_schematic_v1-231x300.jpg" alt="" width="231" height="300" /></a></p>
<h1 id="toc-software">Software</h1>
<h2 id="toc-videoinput">videoInput</h2>
<ul>
<li><a href="http://www.muonics.net/school/spring05/videoInput/" target="_blank">http://www.muonics.net/school/spring05/videoInput/</a></li>
<li>a free windows video capture library</li>
</ul>
<h2 id="toc-autocad">AutoCAD</h2>
<ul>
<li> <a href="http://www.3dcontentcentral.com/parts/supplier/80%2020-Inc.aspx">8020 Parts</a></li>
</ul>
<h2 id="toc-ni">NI</h2>
<ul>
<li><a href="http://www.kxcad.com/ni-daqmx-c-functions-2" target="_blank">daqmx C functions</a></li>
<li><a href="http://www.obeidlab.com/wp-content/uploads/ad-interface-card-driver-functions-appendixd.pdf" target="_blank">NI DAQ A/D Interface Card Functions &#8211; Appendix D</a></li>
</ul>
<h1 id="toc-hardware">Hardware</h1>
<h2 id="toc-festo">Festo</h2>
<ul>
<li><a title="Festo Home Site" href="http://www.festo.com/cms/en-us_us/index.htm" target="_blank"> http://www.festo.com/cms/en-us_us</a></li>
<li>1.847.759.2600</li>
<li>Account #20344983</li>
<li>Customer Service: 1.800.993.3786</li>
<li>Our Representative: Pat Sabharwal 1.847.759.2629 (Cell: 630.487.0479)</li>
<li>Tech Support: 1.866.463.3786</li>
</ul>
<table border="1">
<tbody>
<tr>
<th width="100">Component Name</th>
<th width="100">Part #</th>
<th width="100">Pubs</th>
<th>Notes</th>
</tr>
<tr>
<td>LFR-1/4-D-MIDI Filter/Regulator</td>
<td>186481</td>
<td><a href="http://www.obeidlab.com/wp-content/uploads/lfr-d-midi.pdf" target="_blank">Specifications</a></td>
<td>
<ul>
<li>Regulates the compressed air supplied to the set working pressure and compensates for fluctuations in pressure.</li>
<li>Cleans the compressed air of dirt particles and condensed water.</li>
<li>Filters to 40µm particles</li>
</ul>
</td>
</tr>
<tr>
<td>LF-D-5M-MIDI Filter</td>
<td>186460</td>
<td><a href="http://www.obeidlab.com/wp-content/uploads/lfr-d-midi.pdf" target="_blank">Specifications</a></td>
<td>
<ul>
<li>Filters to 5µm particles</li>
<li>Max 230 PSI (16 bar)</li>
</ul>
</td>
</tr>
<tr>
<td>VPPM-6F-L-1-F-0L10H-V1N-S1 Proportional Pressure Regulator</td>
<td>543432</td>
<td><a href="/wp-content/uploads/vppm-6f-l-1-f-0l10h-v1n-s1.pdf" target="_blank">Specifications</a></td>
<td>
<ul>
<li>24 VDC</li>
</ul>
</td>
</tr>
<tr>
<td>VABM-P1-SF-G18-4-P3 Sub-base</td>
<td>542254</td>
<td>See VPPM-6F-L-1-F-0L10H-V1N-S1 Proportional Pressure Regulator</td>
<td> </td>
</tr>
<tr>
<td>Sub-base Blanking Plug</td>
<td>3570</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>D-3/8I-1/2A Reducing Nipple</td>
<td>3585</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>DMSP-10-360N(or 240N) RM-RM Fluidic Muscles</td>
<td>541403</td>
<td><a href="/wp-content/uploads/dmsp-mas_enus.pdf" target="_blank">Manual</a></td>
<td>
<ul>
<li>Max Pressure: 116 PSI (8 bar)</li>
<li>Normal Operating Range: 0 -15% contraction</li>
<li>Max Operating Range: 0 &#8211; 25% contraction</li>
<li>Max Diameter (@ contraction): 22mm</li>
<li>Connecting Thread: M8</li>
<li>541403 W908 Connectors</li>
<li>Should be inspected every 500,000 strokes for cracks and blistering</li>
<li>Service life can be increased if pressure is exhausted on opposing end from input</li>
</ul>
</td>
</tr>
<tr>
<td>QSL-H-1/8-1/4-U-M Push-in/threaded L-fitting</td>
<td>533235</td>
<td><a href="http://www.obeidlab.com/wp-content/uploads/festo-533235.pdf" target="_blank">Specifications</a></td>
<td>
<ul>
<li>Size 	Standard</li>
<li>Nominal size 	4.5 mm</li>
<li>Type of seal on screw-in stud 	coating</li>
<li>Working pressure 	-0.95 &#8211; 10 bar</li>
<li>Ambient temperature 	0 &#8211; 60 °C</li>
<li>Max. tightening torque 	7 Nm</li>
<li>Product weight 	14.7 g</li>
</ul>
</td>
</tr>
<tr>
<td>QS-H-3/8-1/4-U-M Push-in fitting</td>
<td>533222</td>
<td><a href="http://www.obeidlab.com/wp-content/uploads/festo-533222.pdf" target="_blank">Specifications</a></td>
<td>
<ul>
<li>Size Standard</li>
<li>Nominal size 4.2 mm</li>
<li>Type of seal on screw-in stud coating</li>
<li>Working pressure -0.95 &#8211; 10 bar</li>
<li>Ambient temperature 0 &#8211; 60 °C</li>
<li>Max. tightening torque 22 Nm</li>
<li>Product weight 26.5 g</li>
</ul>
</td>
</tr>
<tr>
<td>QS-H-1/4-1/4-U-M Push-in fitting</td>
<td>533219</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>DMSP Blanking Plug</td>
<td>3568</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>ESK-1/4-1/4 Double Nipple</td>
<td>151521</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>PUN-1/4X3/64-U-BL Polyurethane Tubing</td>
<td>546584</td>
<td> </td>
<td>
<ul>
<li>150 PSI (10 bar)</li>
</ul>
</td>
</tr>
<tr>
<td>SIM-M12-8GD-5-PU Plug Socket with Cable</td>
<td>525618</td>
<td> </td>
<td>
<ul>
<li>VPPM 5m Control Cable</li>
<li>$30.11 each</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2 id="toc-8020">8020</h2>
<ul>
<li><a href="http://www.8020.net/" target="_blank">http://www.8020.net/</a></li>
<li>Distributer: TECO, <a href="http://www.tecoinc.com/" target="_blank">tecoinc.com</a>, 800.521.3285</li>
<li>Salesman: Jim Gordon, jgordon@tecoinc.com</li>
</ul>
<table border="1">
<tbody>
<tr>
<th width="100">Component Name</th>
<th width="100">Part #</th>
<th width="150">Pubs (Page #)  <br />
<a title="8020 Interactive Catalog" href="http://www.8020.net/interactive-catalog.html" target="_blank">8020 Interactive Catalog</a></th>
<th>Notes</th>
</tr>
<tr>
<td>3060 T-Slotted Aluminum</td>
<td> 1515</td>
<td>46</p>
<p><a href="http://www.obeidlab.com/wp-content/uploads/3060-t-slotted-profile.jpg" target="_blank" rel="lightbox[516]">Specifications</a></td>
<td>
<ul>
<li>Used for arm&#8217;s base</li>
<li>15 Series Profile Material (Based on fractional distance between grooves.)</li>
<li>3.0&#8243; x 6.0&#8243;</li>
</ul>
</td>
</tr>
<tr>
<td>3320 5/16-18 x 11/16 Flanged BHSCS &amp; Economy T-Nut</td>
<td>3320 </td>
<td> 120</td>
<td> </td>
</tr>
<tr>
<td>15-Series Base Plate</td>
<td> 2130</td>
<td> 303</td>
<td> </td>
</tr>
<tr>
<td>Economy Anti-Vibration Mounts</td>
<td> 2207</td>
<td> 308</td>
<td> </td>
</tr>
<tr>
<td>8 Hole Inside Corner Bracket</td>
<td>4304 </td>
<td> 127</td>
<td> </td>
</tr>
<tr>
<td>6 Hole Inside Corner Bracket</td>
<td> 4311</td>
<td> 125</td>
<td> </td>
</tr>
<tr>
<td>6 Hole Inside Corner Bracket</td>
<td> 4301</td>
<td> 123</td>
<td> </td>
</tr>
<tr>
<td>4 Hole Tee Joining Plate</td>
<td> 4341</td>
<td> 143</td>
<td> </td>
</tr>
<tr>
<td>1515 End Cap with Fasteners</td>
<td> 2030</td>
<td> 266</td>
<td> </td>
</tr>
<tr>
<td>1530 End  Cap with Fasteners</td>
<td> 2045</td>
<td> 266</td>
<td> </td>
</tr>
<tr>
<td>Pivot Joint</td>
<td> 14017</td>
<td> 998</td>
<td> </td>
</tr>
<tr>
<td>5/16-18 x 1&#8243; Socket Head Cap Screws</td>
<td> 3122</td>
<td> 101</td>
<td> </td>
</tr>
<tr>
<td>2 Hole Inside Corner Bracket</td>
<td> 4302</td>
<td> 121</td>
<td> </td>
</tr>
<tr>
<td>Top Mount Bearing Pads</td>
<td> 6898</td>
<td>337 </td>
<td> </td>
</tr>
<tr>
<td>#10 x 5/6 Pad Screw</td>
<td> 40-3628</td>
<td> 976</td>
<td> </td>
</tr>
<tr>
<td>1/4&#8243; Black Haircell ABS Panel</td>
<td> 2313</td>
<td> 251</td>
<td> </td>
</tr>
<tr>
<td>3&#8243; Single Panel Retainer</td>
<td> 7150</td>
<td> 397</td>
<td> </td>
</tr>
<tr>
<td>1.5&#8243; Single Panel Retainer</td>
<td> 2434</td>
<td> 242</td>
<td> </td>
</tr>
<tr>
<td>Velcro Fastener</td>
<td> 3273</td>
<td> 281</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="toc-national-instruments">National Instruments</h2>
<ul>
<li>See <a href="/data-sheets">here</a>.</li>
</ul>
<h2 id="toc-thomas">Thomas</h2>
<h3 id="toc-ultra-air-pac-t-35hd-electric-air-compressor">Ultra Air-Pac T-35HD Electric Air Compressor</h3>
<ul>
<li>3 gallon air storage</li>
<li>Pressure switch maintains 100 PSIG (689.5 KPa) -140 PSIG (861.9 KPa)</li>
<li>Air Displacement: 4.5 CFM (127 LPM) @ 0 PSI</li>
<li>Air Delivery: 2.9 CFM @ 50 PSI (83.5 LPM @ 345 KPa)</li>
<li>2.55 CFM @ 100 PSI (72.22 LPM @ 689.5 KPa)</li>
<li>115V, 60Hz, 10A (@ working pressure), 15A fuse</li>
<li>Weight: 48 lbs</li>
<li>Requires no lubrication (do not apply oil or damage may result)</li>
<li>Motor is equipped with thermal overload protector. If protector trips, the user should manually turn the pump motor off and let the system cool for 5 minutes.</li>
</ul>
<h1 id="toc-relevant-papers">Relevant Papers</h1>
<ul>
<li><a href="http://www.obeidlab.com/wp-content/uploads/boblan-et-al-2007-a-human-like-robot-torso-zar5-with-fluidic-muscles-toward-a-common-platform-for-embodied-ai.pdf">(Boblan et al 2007) A Human-Like Robot Torso ZAR5 with Fluidic Muscles: Toward a Common Platform for Embodied AI</a></li>
<li><a href="http://www.obeidlab.com/wp-content/uploads/boblan-et-al-2004-a-human-like-robot-hand-and-arm-with-fluidic-muscles-biologically-inspired-construction-and-functionality.pdf"></a><a href="http://www.obeidlab.com/wp-content/uploads/boblan-et-al-2006-a-human-like-robot-torso-with-fluidic-muscles-biologically-inspired-engineering.pdf">(Boblan et al 2006) A human-like robot torso with fluidic muscles Biologically inspired engineering</a></li>
<li><a href="http://www.obeidlab.com/wp-content/uploads/dmsp-mas_enus.pdf"></a><a href="http://www.obeidlab.com/wp-content/uploads/boblan-et-al-2004-a-human-like-robot-hand-and-arm-with-fluidic-muscles-biologically-inspired-construction-and-functionality.pdf">(Boblan et al 2004) A Human-Like Robot Hand and Arm with Fluidic Muscles: Biologically Inspired Construction and Functionality</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/pneumatic-arm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Closed-Loop BMI Model : Development</title>
		<link>http://www.obeidlab.com/closed-loop-bmi-model-development</link>
		<comments>http://www.obeidlab.com/closed-loop-bmi-model-development#comments</comments>
		<pubDate>Thu, 08 May 2008 20:31:50 +0000</pubDate>
		<dc:creator>Krigelman</dc:creator>
				<category><![CDATA[Closed-Loop BMI Model]]></category>
		<category><![CDATA[Obeid Personal]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://obeidlab.com/closed-loop-bmi-model-development</guid>
		<description><![CDATA[
Overview

Components

Camera (Logitech QuickCam Pro 9000)
Robot Arm (custom built, Lynxmotion Hi-Tec 645MG)
Servo Control Board (Yost Engineering, Servo Center, Full Package, USB model)
Software (Custom built using some open source libraries for the visual processing)

Software
The software is mostly custom built C. We make use of some open source libraries for the visual processing.
Code Block Diagram

Major Variables

pf: parallel fiber [...]]]></description>
			<content:encoded><![CDATA[<div class="post_content">
<h1 id="toc-overview" id="toc-overview">Overview</h1>
<p style="text-align: center;"><a href="http://obeidlab.com/wp-content/uploads/bmimodeloverview.png" rel="lightbox[282]"><img class="size-medium wp-image-337 aligncenter" title="bmimodeloverview" src="http://obeidlab.com/wp-content/uploads/bmimodeloverview.png" alt="" width="640" height="253" /></a></p>
<h1 id="toc-components" id="toc-components">Components</h1>
<ol>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16826104074" target="_blank">Camera</a> (Logitech QuickCam Pro 9000)</li>
<li><a href="http://www.lynxmotion.com/Category.aspx?CategoryID=38" target="_blank">Robot Arm</a> (custom built, Lynxmotion Hi-Tec 645MG)</li>
<li><a href="http://tech.yostengineering.com/servoFolder" target="_blank">Servo Control Board</a> (Yost Engineering, Servo Center, Full Package, USB model)</li>
<li>Software (Custom built using some open source libraries for the visual processing)</li>
</ol>
<h1 id="toc-software" id="toc-software">Software</h1>
<p>The software is mostly custom built C. We make use of some open source libraries for the visual processing.</p>
<h2 id="toc-code-block-diagram" id="toc-code-block-diagram">Code Block Diagram</h2>
<p style="text-align: center;"><a href="http://obeidlab.com/wp-content/uploads/bmi-system-code-diagram.png" rel="lightbox[282]"><img class="size-medium wp-image-338 aligncenter" title="bmi-system-code-diagram" src="http://obeidlab.com/wp-content/uploads/bmi-system-code-diagram-400x300.png" alt="" width="400" height="300" /></a></p>
<h2 id="toc-major-variables" id="toc-major-variables">Major Variables</h2>
<ul>
<li><strong>pf</strong>: parallel fiber signals &#8211; nCenters x 1</li>
<li><strong>w1,w2</strong>: synapse weights &#8211; each is nCenters x 1 &#8211; initialize to zeros</li>
<li><strong>xa,ya</strong>: actual robot arm position <em>[units will probably be in pixels]</em> &#8211; each is 1×1</li>
<li><strong>xd,yd:</strong> desired robot arm position &#8211; each is 1×1</li>
<li><strong>xc,yc:</strong> correction factors for robot arm position &#8211; each is 1×1</li>
<li><strong>m1,m2:</strong> servo motor angles, in radians &#8211; each is 1×1</li>
<li><strong>l1Est,l2Est</strong>: estimated lengths for robot arm segments &#8211; each is 1×1</li>
<li><strong>xErr,yErr:</strong> position error between actual and desired arm position &#8211; each is 1×1</li>
<li><strong>c:</strong> structure that contains the radial basis function description for the virtual cerebellum. It consists of:
<ul>
<li><strong>c1</strong> &#8211; pointer to x-positions of rbf centers &#8211; nCenters x 1</li>
<li><strong>c2</strong> &#8211; pointer to y-positions of rbf centers &#8211; nCenters x 1</li>
<li><strong>sigma</strong> &#8211; rbf standard deviation &#8211; 1×1</li>
<li><strong>nCenters</strong> &#8211; the number of rbf elements -1×1</li>
<li><strong>receptiveField</strong> &#8211; receptive field size of the rbf &#8211; 1×1</li>
</ul>
</li>
</ul>
<ul>
<li><strong>servo1, servo2:</strong> structures containing the servo calibration constants:
<ul>
<li><strong>servoMin</strong> &#8211; minimum servo position (servo units)</li>
<li><strong>servoMax</strong> &#8211; maximum servo position (servo units)</li>
<li><strong>degreesMin</strong> &#8211; degrees corresponding to servoMin, measured according to the “Arm Calibration” diagram below</li>
<li><strong>degreesMax</strong> &#8211; degrees corresponding to servoMax, measured according to the “Arm Calibration” diagram below</li>
</ul>
</li>
</ul>
<h2 id="toc-visual-tracking-settings" id="toc-visual-tracking-settings">Visual Tracking Settings</h2>
<ul>
<li>In RoboRealm:
<ul>
<li>Color Threshold = {170-255} for red, green, and blue</li>
</ul>
<ul>
<li>Center of Gravity</li>
</ul>
</li>
</ul>
<ul>
<li>In camera “settings” tab, default settings, then set manual focus to about 2/3 between left &amp; right</li>
</ul>
<ul>
<li>Room lights need to be off</li>
</ul>
<ul>
<li>Black fabric might be needed to deaden remaining glare spots</li>
</ul>
<h2 id="toc-arm-calibration" id="toc-arm-calibration">Arm Calibration</h2>
<p><a href="http://obeidlab.com/wp-content/uploads/servodiagram.ppt">servodiagram</a></p>
<h2 id="toc-pixels-per-cm" id="toc-pixels-per-cm">Pixels Per cm</h2>
<div id="attachment_345" class="wp-caption aligncenter" style="width: 410px"><a href="http://obeidlab.com/wp-content/uploads/camera-calibration.png" rel="lightbox[282]"><img class="size-medium wp-image-345" title="camera-calibration" src="http://obeidlab.com/wp-content/uploads/camera-calibration-400x300.png" alt="" width="400" height="300" /></a><p class="wp-caption-text">(camera set to 640 x 480)</p></div>
<h1 id="toc-code-versions" id="toc-code-versions">Code Versions</h1>
<h3 id="toc-bmi-code" id="toc-bmi-code">BMI Code</h3>
<p><a title="07_08_31_bmicode.zip" href="http://obeidlab.com/wp-content/uploads/07_08_31_bmicode.zip">v070831</a> Working cerebellum code with virtual arm; c &amp; matlab</p>
<p><a href="http://obeidlab.com/wp-content/uploads/controlcode.zip" target="_blank">v070902</a> Same as ver 1 with additional code for driving the servos in open loop</p>
<p><a href="http://obeidlab.com/wp-content/uploads/07_09_04bmicodetar.gz" target="_blank">v070904</a> Same as ver 2 with a small bugfix (write 6 bytes, not 5 in “moveservo”) &#8211; verified to work using fedora linux, serial cable, portnum 1 (/dev/ttyS0) on “Market”</p>
<p><a href="http://obeidlab.com/wp-content/uploads/07_09_05_bmicodetar.gz" target="_blank">v070905</a> Calibration code started</p>
<p><a href="http://obeidlab.com/wp-content/uploads/computer_visiontar.gz">v070919</a> First fully functioning version &#8211; complete system</p>
<p><a title="070920.zip" href="http://obeidlab.com/wp-content/uploads/070920.zip">v070920</a></p>
<p><a title="070921.zip" href="http://obeidlab.com/wp-content/uploads/070921.zip">v070921</a> Includes data and video</p>
<p><a title="071010.zip" href="http://obeidlab.com/wp-content/uploads/071010.zip">v071010</a> This version includes an initial attempt to calibrate the camera/arm interaction.</p>
<p><a title="v071018" href="http://obeidlab.com/wp-content/uploads/071018.zip">v071018</a> Camera calibration code has been tested and added.</p>
<h3 id="toc-computer-vision" id="toc-computer-vision">Computer Vision</h3>
<p><a title="07_09_05_vision.zip" href="http://obeidlab.com/wp-content/uploads/07_09_05_vision.zip">v070905</a> Working vision tracking</p>
<p><a title="07_09_17_vision.zip" href="http://obeidlab.com/wp-content/uploads/07_09_17_vision.zip">v070917</a> Lightened version of vision tracking</p>
<h1 id="toc-how-to-run-the-code" id="toc-how-to-run-the-code">How to Run the Code</h1>
<p>Go to D:\Jesse\Computer_Vision</p>
<p>Double click on Computer_Vision.sln “solution” file</p>
<p>We are only considering the “Robot Arm” project</p>
<p>Build -&gt;  Build Robot Arm</p>
<p>Debug -&gt;  Start w/o Debugging</p>
<p>If it asks, “Never Automatically Apply RightLight Technology”</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/closed-loop-bmi-model-development/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Closed-Loop BMI Model : Software</title>
		<link>http://www.obeidlab.com/closed-loop-bmi-model-software</link>
		<comments>http://www.obeidlab.com/closed-loop-bmi-model-software#comments</comments>
		<pubDate>Thu, 08 May 2008 20:24:25 +0000</pubDate>
		<dc:creator>Krigelman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://obeidlab.com/closed-loop-bmi-model-software</guid>
		<description><![CDATA[To run the software, download it from the svn server:



GUI
http://south.temple.edu/svn/robot_code/branches/gui


COMMAND LINE
http://south.temple.edu/svn/robot_code/trunk



GUI Edition is not complete and will not yet drive the servos, but would not take much effort to get there. The effort in this code is to focus on making the different parts of the system modular. It was the goal of the original [...]]]></description>
			<content:encoded><![CDATA[<p>To run the software, download it from the svn server:</p>
<table border="0" align="center">
<tbody>
<tr>
<td>GUI</td>
<td>http://south.temple.edu/svn/robot_code/branches/gui</td>
</tr>
<tr>
<td>COMMAND LINE</td>
<td>http://south.temple.edu/svn/robot_code/trunk</td>
</tr>
</tbody>
</table>
<p><strong>GUI Edition</strong> is not complete and will not yet drive the servos, but would not take much effort to get there. The effort in this code is to focus on making the different parts of the system modular. It was the goal of the original author to make it so that brain control, motor control and image processing would be done by separate DLL files. This would make it so that other methods could be inserted to make the system function as intended. So lets say that the current project is used to operate a single robot arm. The next project used two robotic arms. A new brain control module would be written to replace the existing one to allow the use of two arms. But this would mean that the current image processing methods would no longer be viable. So the image processing module would be rewritten to work in the system. Later in the week, someone comes and is interested in the old system. It would only than be a matter of swapping out the new DLLs for the old ones. It is highly advised that it is made certain that the project is compiled without .NET dependencies. This decreases the compatibility of the program with the operating system. This version uses <a title="VidCapture Official Webpage" href="http://www.codevis.com/vidcapture/" target="_blank">VidCapture</a> lib version to handle all of the video capturing. Another option would be to tear up the DirectInput demos that contain video capturing or do the actual process of setting up a video stream, however, these are very tedious tasks and is not advised. The brain module from the Command Line Edition could be used in the GUI Edition to drive the servos and do the correct brain processing. It would be advised to make it so the servo arm can be serviced to go to specific angular setting so that coordinates can be picked off for de-skewing.</p>
<p><strong>COMMAND LINE Edition</strong> is completed and working for the most part. To prepare the software reporting to the arm to move to be fully extended and pointing towards 0 degrees, 90 degrees and 180 degrees with the LED and software running the coordinates received can be added to the brain control constructor for automatic de-skewing the images. The de-skewing algorithm can use a little extra work, but it does preform relatively well, more so than having now de-skewing. This version uses <a title="OpenCV" href="http://opencvlibrary.sourceforge.net/" target="_blank">OpenCV</a>, a DLL, which is not the most ideal video capture handler. This was used though because it produced the image in a window automatically.</p>
<h1 id="toc-how-to-compile">How to Compile</h1>
<p>To compile either version of the project the project should be downloaded from the SVN. To download from the SVN server the following instructions could be followed for either version.</p>
<ol>
<li>Create a new folder if one does not yet exist.</li>
<li>Enter the folder and right-click the white space in the folder.</li>
<li>Select &#8220;SVN Checkout&#8230;&#8221; and make the URL of repository either one of the following links:
<ul>
<li>For the GUI: http://192.168.100.2/svn/robot_code/branches/gui</li>
<li>For the Command window: http://192.168.100.2/svn/robot_code/trunk</li>
</ul>
</li>
<li>Press OK and wait for the SVN client to download all related files to the folder you created.</li>
</ol>
<p>After the project is downloaded there should be a folder or solution in the top level that relates to the particular version of Visual Studio that you are using. If there is no solution or you must create one the steps for creating a new project are as follows.</p>
<ol>
<li>Create a subdirectory and name it after the version of visual studio that you are using. Such as VS2008.</li>
<li>Open Visual Studio and create a new project from File-&gt;New Project and select an Empty Project</li>
<li>Give the name of RobotArm or something appropriate as the executable will be named after the Project Name. The location should be directed to the directory that was just created. The Create directory for solution option should be unchecked.</li>
<li>The Solution Explorer should be on the side of the screen or press Ctrl+Alt+L to make it appear. Right click Header Files and include in all the header files in the projects folders, Right click Source Files and include in all the source files(.cpp,.c), Right click Resource Files and include any resource type files(.rc).</li>
<li>Typical settings for the project should be set by Right clicking the project name and selecting properties.</li>
<li>Some properties of interest that should be set to avoid issues are
<ul>
<li>General-&gt;Character Set=Use Multi-Byte Character Set</li>
<li>C/C++-&gt;General-&gt;Additional Include Directories=Any directories that have header files that are not included with the project, this may include OpenCV if compiling the Command version of the code.</li>
<li>C/C++-&gt;Code Generation-&gt;Runtime Library=non-DLL versions of Multi-threaded because if the executable is run on a computer other than your own, there will be driver conflicts.</li>
<li>Linker-&gt;General-&gt;Additional Library Directories=Any additional lib files used, this is required for OpenCV version of Command</li>
<li>Linker-&gt;Input-&gt;Additional Dependencies may need kernel32.lib, this is missed in a few versions of Visual Studio and causes issues.</li>
</ul>
</li>
<li>If using the GUI version the only requirement is that you install DirectX SDK which is on the server and should be installed if it has not been done so on the computer you are using.</li>
</ol>
<h1 id="toc-setting-up-the-arm">Setting up the Arm</h1>
<p>To set up the arm for usage the camera should be put into the end of the extension that sits above the robot arm. It aims down towards the arm with the pivot point of the arm at the bottom center of the screen while the camera is running.</p>
<p>Last time checked, the motors seemed to be suffering from degradation. This is most likely from people looking at it by manually moving the arm around whenever they come into the lab. So the motors will need to be recalibrate to achieve the proper angles specified. However, since the servo system is being swapped out for a pneumatic system this should not be an issue that needs to be dealt with.</p>
<p>When using the system it may be noticed that the image appears washed out or overly bright. The QuickCam tool bar that pops up on screen at the opening of a video capture session feels it knows what settings are best and locks the gain and exposure in automatic settings. It may be required of the user to go into the advanced settings, web cam settings and RightLight settings to disable automatic settings. After disabled the settings can be changed to make the table look black again and the floors not look like halogen projectors. In the best case scenario the LED could be turned on and the settings can be adjusted to make the LED the brightest object. The GUI version of the program will update with the same settings as were seen in the QuickCam setup program.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/closed-loop-bmi-model-software/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>McKibben Arm &#8211; Notes</title>
		<link>http://www.obeidlab.com/mckibben-arm-notes</link>
		<comments>http://www.obeidlab.com/mckibben-arm-notes#comments</comments>
		<pubDate>Wed, 20 Feb 2008 00:54:32 +0000</pubDate>
		<dc:creator>iobeid</dc:creator>
				<category><![CDATA[Lab Personnel Only]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://obeidlab.com/mckibben-arm-notes</guid>
		<description><![CDATA[University of Washington Biorobotics Lab

Chou CP, Hannaford B. Study of Human Forearm Posture Maintenance With a Physiologically Based Robotic Arm and Spinal Level Neural Controller, Biol Cybern. 76(4), 1997

McKibben muscles have many properties in common with the human arm
Feedback is provided by mechanical muscle spindles (see Marbot &#38; Hannaford 1993) and force sensors which mimic [...]]]></description>
			<content:encoded><![CDATA[<h2 id="toc-university-of-washington-biorobotics-lab">University of Washington <a href="http://brl.ee.washington.edu/" target="_blank">Biorobotics Lab</a></h2>
<ul>
<li>Chou CP, Hannaford B. <a href="http://obeidlab.com/wp-content/uploads/chou-hannaford-1997.pdf" target="_blank">Study of Human Forearm Posture Maintenance With a Physiologically Based</a> Robotic Arm and Spinal Level Neural Controller, Biol Cybern. 76(4), 1997
<ul>
<li><span style="color: #808000;">McKibben muscles have many properties in common with the human arm</span></li>
<li><span style="color: #808000;">Feedback is provided by mechanical muscle spindles (see Marbot &amp; Hannaford 1993) and force sensors which mimic Golgi tendon organ which are attached in parallel to the antagonistic muscle pair</span></li>
<li><span style="color: #808000;">Ability to differentiate between Ia and Ib afferent feedback<br />
</span></li>
<li><span style="color: #808000;">Muscles exhibit hysteresis</span></li>
<li><span style="color: #808000;">Muscle attachment points are chosen to be biologically plausible</span></li>
<li><span style="color: #808000;">There is a discussion of the limitations</span></li>
<li><span style="color: #808000;">There is a discussion of why a mechanical model is superior to a computational model</span></li>
<li><span style="color: #808000;">Arm is controlled by a biologically inspired neural network programmed into a real-time DSP</span></li>
<li><span style="color: #808000;">Single DOF</span></li>
<li><span style="color: #808000;">Responses of model arm are compared to observed values for a human arm</span></li>
<li><span style="color: #808000;">Spinal cord mediated reflexs are modelled </span></li>
</ul>
</li>
<li>Hannaford B, Winters JM, Chou CP, Marbot PH. <a href="http://obeidlab.com/wp-content/uploads/hannaford-et-al-1995.pdf" target="_blank">The Anthroform Biorobotic Arm: A System for the Study of Spinal Circuits</a>, Ann Biomed Eng. 23(4), 1995
<ul>
<li><span style="color: #808000;">This paper details the development of the Biorobotic arm used in subsequent UWashington experiments</span></li>
<li><span style="color: #808000;">Interesting Introduction giving the motivation for Biorobotic research<br />
</span></li>
<li><span style="color: #808000;">Bones are modeled on human bones, including size, weight, and density. Built out of fiberglass</span></li>
<li><span style="color: #808000;">Elbow and shoulder joints were actual artificial joints donated by a medical device company</span></li>
<li><span style="color: #808000;">Ligaments made from knit fabrics</span></li>
<li><span style="color: #808000;">Fifteen McKibbens for all the muscles plus one 2&#215;2 grid each for biceps and triceps</span></li>
<li><span style="color: #808000;">McKibbens are custom built &#8211; authors claim they can be easily constructed in less than 20 minutes</span></li>
<li><span style="color: #808000;">Equations are given for McKibben muscle response</span></li>
<li><span style="color: #808000;">Controlled by network of artificial neurons communicating on a 1ms timescale. Spinal cord time delays of 1ms are created in software using buffering.</span></li>
<li><span style="color: #808000;">Introduce the concept of artificial muscle spindles &#8211; I need to read up and see if there is anything more up-to-date. </span></li>
</ul>
</li>
<li>Marbot PH, Hannaford B. <a href="http://obeidlab.com/wp-content/uploads/marbot-hannaford-1993.pdf" target="_blank">The mechanical spindle: a replica of the mammalian muscle spindle</a>. IEEE Conf Eng Med Biol, 1993</li>
<li>Chou CP, Hannaford B. <a href="http://obeidlab.com/wp-content/uploads/chou-hannaford-1996.pdf" target="_blank">Measurement and Modeling of Mckibben Pneumatic Artificial Muscles</a>, IEEE Trans Robot Automat. 12(1), 1996
<ul>
<li><span style="color: #808000;">I didn&#8217;t read this one &#8211; but it basically justifies that McKibben is a reasonable model of a variety of properties of human arm and arm muscle</span></li>
</ul>
</li>
<li>Klute GK, Czerniecki JM, Hannaford B. <a href="http://obeidlab.com/wp-content/uploads/klute-et-al-2002.pdf" target="_blank">Artificial Muscles: Actuators for Biorobotic Systems</a>, Int J Robot Res. 21(4), 2002</li>
</ul>
<h2 id="toc-university-of-illinois">University of Illinois</h2>
<ul>
<li>Hesselroth T, Sarkar K, Vandersmagt PP, Schulten K. <a href="http://obeidlab.com/wp-content/uploads/hesselroth-et-al-1994.pdf" target="_blank">Neural-Network Control of a Pneumantic Robot Arm</a>, IEEE Trans Syst Man Cybern. 24(1), 1994
<ul>
<li><span style="color: #808000;">Good description of the mechanics of constructing the McKibbens</span></li>
<li><span style="color: #808000;">90 PSI compressed air source</span></li>
<li><span style="color: #808000;">compressed air dryer</span></li>
<li><span style="color: #808000;">12 gallon buffer tank (to even out fluctuations)</span></li>
<li><span style="color: #808000;">regulator to reduce to 75 PSI &#8211; arm draws a max of 60 PSI, so there is some leeway built in</span></li>
<li><span style="color: #808000;">Servo Drive Units take RS-232 commands and convert into current sources &#8211; one for each of the joint&#8217;s two actuators</span></li>
<li><span style="color: #808000;">Servo Valve Units take current and produce a proportional pressure in the McKibben tube</span></li>
<li><span style="color: #808000;">Two cameras are mounted at 90 degree angles to provide visual feedback. They track a light at the arm&#8217;s tip</span></li>
<li><span style="color: #808000;">Pair of parallel antagonistic muscles with free ends connected together by a chain that passes over a sprocket mounted at the joint</span></li>
<li><span style="color: #808000;">Joints can be controlled in either Position Control Mode (PID/feedback to desired posn) or Pressure Control Mode (essentially open loop)</span></li>
</ul>
</li>
<li>van der Smagt P, Groen F, Schulten K. <a href="http://obeidlab.com/wp-content/uploads/vandersmagt-et-al-1996.pdf" target="_blank">Analysis and Control of a Rubbertuator Arm, Biol Cybern</a>.75(5), 1996</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/mckibben-arm-notes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Closed-Loop BMI Model &#8211; Pneumatic</title>
		<link>http://www.obeidlab.com/closed-loop-bmi-model-pneumatic</link>
		<comments>http://www.obeidlab.com/closed-loop-bmi-model-pneumatic#comments</comments>
		<pubDate>Wed, 13 Feb 2008 19:25:12 +0000</pubDate>
		<dc:creator>Krigelman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://obeidlab.com/closed-loop-bmi-model-pnumatic</guid>
		<description><![CDATA[Readings and Videos
Cricket V5
Festo Robot Arm &#8211; Airic&#8217;s Arm Video


Source
Airic&#8217;s Arm Description

Assad et al 2005
Kingsley Dissertation (CWRU) 2005
Chou 1997 [Study of human forearm posture maintenance with a physiologically based robotic arm and spinal level neural controller]
I assume that Braided Pneumatic Actuators is the name of the actuator type you were talking about. Looks promising. The [...]]]></description>
			<content:encoded><![CDATA[<h1 id="toc-readings-and-videos">Readings and Videos</h1>
<p><a href="http://biorobots.cwru.edu/Projects/robotv/" target="_blank">Cricket V5</a></p>
<p><a href="http://www.youtube.com/watch?v=liicZ_pvGiQ" target="_blank">Festo Robot Arm &#8211; Airic&#8217;s Arm Video<br />
</a></p>
<ul>
<li><a href="http://www.festo.com/INetDomino/coorp_sites/en/f80b717d05276ea2c12571b9002b0356.htm" target="_blank">Source</a></li>
<li><a href="http://obeidlab.com/wp-content/uploads/airics_arm_en.pdf" target="_blank">Airic&#8217;s Arm Description</a></li>
</ul>
<p><a href="http://obeidlab.com/wp-content/uploads/assad-et-al-2005.pdf" target="_blank">Assad et al 2005</a></p>
<p><a href="http://obeidlab.com/wp-content/uploads/kingsley-2005.pdf" target="_blank">Kingsley Dissertation</a> (CWRU) 2005</p>
<p><a href="http://obeidlab.com/wp-content/uploads/chou-hannaford-1997.pdf" target="_blank">Chou 1997</a> [Study of human forearm posture maintenance with a physiologically based robotic arm and spinal level neural controller]</p>
<p>I assume that Braided Pneumatic Actuators is the name of the actuator type you were talking about. Looks promising. The same guy that made the cricket is using this new type of actuator for a robot arm. By the way, the Cricket Robot V3 we saw was using double acting pneumatic cylinders.</p>
<hr />
<h1 id="toc-pneumatic-cylinders">Pneumatic Cylinders</h1>
<p>Double Acting Pneumatic  Cylinders are used to push and pull air. This means that we can control a component in both directions. A Single-Acting Pneumatic Cylinder is used when you want to push or pull air, but in the reverse direction is done by just blowing the load. The cylinders come in various diameters which help to produce a specified amount of force. Such as a 2.5mm cylinder is used to lift microchip components while 400mm diameter cylinder is used to lift a car. The force is related to the air pressure flowing into the cylinder times the cross sectional area of the cylinder.</p>
<p>In the application of the arm muscle is considered a rodless, single-acting actuator. The controller that connects to the arm would be in charge of how the air is delivered and received from the muscle. The company Festo provides these actuator types that can apparently be cut and fitted on site.</p>
<p><a href="https://enep.festo.com/irj/servlet/prt/portal/prteventname/Navigate/prtroot/festo.inner?NavigationTarget=ROLES://portal_content/com.festo.portal/sap40/v/cr/ssp/rl/com.festo.portal.sap40.v.cr.ssp.rl.ssp_pub/com.festo.portal.sap40.v.cr.ssp.ws.gnt_ssp_1/sho/cat/com.festo.portal.sap40.v.cr.ssp.iv.cat.cat&amp;j_user=ano_ep_customer_us" target="_blank">This link</a> is supposed to be the pneumatic muscle provided by Festo. This is the same company that was used by the robot arm I found on the web and used by the updated version of the cricket robot.</p>
<p align="right"><a href="http://www.about-air-compressors.com">About Air Compressors</a></p>
<hr />
<h1 id="toc-air-compressors">Air Compressors</h1>
<p>We need a specified amount of air pressure to designate the &#8217;strength&#8217; of the muscles of the arm.  This means we need an air compressor with more pressure than is required that has some type of regulator.  There are two sources we could look for air pressure. There are air lines in the lab that could be used to &#8216;power&#8217; our muscle. We need to find out what the expected output of the line is by the building manager and a regulator would need to be installed on the arm to make it possible to select the amount of pressure desired. The other option is to go with a high output, quiet compressor. Such as this <a href="http://www.homedepot.com/webapp/wcs/stores/servlet/ProductDisplay?storeId=10051&amp;langId=-1&amp;catalogId=10053&amp;productId=100520447" target="_blank">Huskey</a> offered at the <a href="http://www.homedepot.com" target="_blank">HomeDepot</a> which has its own regulator and sufficient pressure.</p>
<hr />
<h1 id="toc-air-control-valves">Air Control Valves</h1>
<p>There are multiple types of control valves and methods of control. The schema for the valves is V/P NO/NC. Where V is the number of valves offered where two is the minimum for air input and device output, three will add an exhaust or two device outputs. P is the number of positions where two is the minimum of push and release, three will add a third state which is variable depending on the type of valve purchased but is typically to hold the current air pressure. NO means normally open and NC means normally closed in the unactuated state.</p>
<p>The means of controlling a valve is by an actuator. This is an internal spring type which a spring will force the valve to its natural state when the external valve is open. An air pilot actuator can be used where air can be used to enable the air actuator. A solenoid actuator, also called <a href="http://www.about-air-compressors.com/solenoid-actuator.html" target="_blank">direct acting actuator</a>, is an actuator that is controlled electronically. These tend to be faster and is more along the lines of what we need for our project. These are meant for low pressure applications and tend to have some problems with getting gunked up if the air supply has a lot of moisture and dirt in it. In high pressure applications a direct acting actuator may not be enough and a <a href="http://www.about-air-compressors.com/solenoid-pilot.html" target="_blank">Solenoid Pilot Valve Actuator</a> may be needed. The problem with this type is that it has a minimum flow which would be determined by the manufacturer but is typically around 20 to 25PSI.</p>
<hr />
<h1 id="toc-manifolds">Manifolds</h1>
<p>One method of distributing are from one compressor to multiple outputs is the use of an Air Manifold. These have an inlet and one of many outputs that can connect to the external systems. A compressor system would need to provide sufficient air pressure to the system to not be taxed by the multiple devices connected to the outputs. Regulators used at the outputs can be used to regulate the appropriate air pressure to each of the subsystems.</p>
<hr />
<h1 id="toc-regulators">Regulators</h1>
<p>Regulators are as their name suggest. They regulate the air pressure that passes from the input to the output. Some regulators, filtered regulators, contain a filtration system within the regulator to help eliminate problems of dirty air passing to the more delicate air control valves.</p>
<hr />
<h1 id="toc-pneumatic-retailers">Pneumatic Retailers</h1>
<ul>
<li><a href="http://www.mfdpneumatics.com">MFD Pneumatics</a></li>
<li><a href="http://www.festo.com">Festo</a></li>
<li><a href="http://www.phdinc.com">PHD, Inc.</a></li>
<li><a href="http://www.boschrexroth.com/business_units/brp/en/products/index.jsp" target="_blank">Rexroth Pneumatics</a></li>
</ul>
<hr />
<h1 id="toc-micro-controllers">Micro Controllers</h1>
<p>The PICs are cheap, like 5 bucks, for the nicest one on the market. But then you are expected to purchase a demo board or some type of board for flashing the PIC. Can you not just use the PIC stand-alone by wiring it up to a serial port or is there some crazy configuration for programming the chips?</p>
<p>I found that there are $25 &#8220;plug-in modules&#8221;. This suggests that you have to plug it into another board to utilize it. They say that you have to plug it into the Explorer 16 Demo board. Explorer 16 demo board is $130.</p>
<p>There is an option to receive samples. I will read a little more what this entails but I believe we need to contact them what we plan to do and give them a little proposal. Then we need to show them that we are linking people from our project page to their page or mentioning them several times.</p>
<p>The plug-in module literally plugs into a location in the center of the board. The demo board has anything you can want. LCD display, telephony cables, usb, serial&#8230; something else&#8230; a small prototyping area.</p>
<p>I vote we just go for the best they have to offer. It is the same price and it looks like if the need arises we can control anything else we apply to the robot arm as a controller. The main criteria for me right now with in order is PC/serial communications, ADC and expandability. Expandability will be reading, sending signals to actuators.<a href="http://www.microchipdirect.com/" target="_blank"></a></p>
<p><a href="http://www.microchipdirect.com/" target="_blank">http://www.microchipdirect.com</a></p>
<p>DM240001  &#8211; Explorer 16 Demo Board &#8211; $130<br />
<a href="http://www.microchipdirect.com/productsearch.aspx?Keywords=DM240001"><img src="http://www.microchipdirect.com/images/devtools/DM240001.jpg" alt="" width="145" height="145" align="left" /></a>The Explorer 16 Development Board is a low-cost modular development system for Microchips new 16-bit microcontrollers. It supports devices from the PIC24F, PIC24H, and dsPIC33 families. It is capable of interfacing with 5V peripherals and also provides basic generic functionality with the added ability to expand to vertical markets via modular expansion.</p>
<p>MA320001  &#8211; PIC32MX 100P QFP TO 100P PLUG IN MODULE &#8211; $25<br />
<a href="http://www.microchipdirect.com/productsearch.aspx?Keywords=MA320001"><img src="http://www.microchipdirect.com/images/devtools/MA320001.jpg" alt="" width="145" height="145" align="left" /></a>This Plug-in Module enables PIC32 development on the Explorer 16 development board (DM240001 or DM240002) and supports the MPLAB Real ICE Trace kit (AC244006). A 72 Mhz PIC32MX360F512L with 512 KB of Flash, 32 KB of RAM, 4 channels of hardware DMA and instruction trace is installed on the plug-in module.</p>
<hr />
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/closed-loop-bmi-model-pneumatic/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robot Arm Abstract</title>
		<link>http://www.obeidlab.com/robot-arm-abstract</link>
		<comments>http://www.obeidlab.com/robot-arm-abstract#comments</comments>
		<pubDate>Mon, 28 Jan 2008 19:18:44 +0000</pubDate>
		<dc:creator>Krigelman</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://obeidlab.com/robot-arm-abstract</guid>
		<description><![CDATA[Abstract
Development of System-Level Infrastructure for a Biofeedback Robotic Device by Jesse Krigelman
The aim of this project was to develop a simulation environment for studying adaptive learning in human motor control. A system was designed, built, and tested that was comprised of a two degree-of-freedom robot arm controlled by an adaptive feedback loop. The goal of [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" align="center"><strong>Abstract</strong></p>
<p class="MsoNormal" align="center"><strong>Development of System-Level Infrastructure for a Biofeedback Robotic Device</strong> by <strong>Jesse Krigelman</strong></p>
<p>The aim of this project was to develop a simulation environment for studying adaptive learning in human motor control. A system was designed, built, and tested that was comprised of a two degree-of-freedom robot arm controlled by an adaptive feedback loop. The goal of the visually mediated feedback system was to learn to track a moving virtual target in real-time.</p>
<p>The arm was actuated by a pair of servo motors that were controlled by a servo control board operated remotely via PC software. Visual feedback was accomplished with a USB web camera; PC software was written to track the tip of the robot arm in real-time and to compare its position to that of the virtual target.  A custom software module was also developed to deskew camera images that were not precisely parallel to the plane of the robot arm. All code was written in C++ and executed in real-time on a dual-core Dell Dimension 9200 running at 2.13GHz with 2GB of RAM. The code was written in a modular fashion to facilitate future upgrades. The system was successfully demonstrated under a variety of conditions, specifically with different virtual target trajectories, learning rates, and servo speeds. Planned future improvements include accelerometers for modeling proprioceptive feedback and pneumatic actuators to replace the servos for more biologically accurate muscle movement.</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal">  Development of system-level infrastructure for a biofeedback robotic device</p>
<p>Brief intro<br />
-&gt; 2DOF robot arm<br />
-&gt; Visual feedback-mediated adaptive controller<br />
-&gt; Goal was for robot arm to learn to track a virtual target in real-time</p>
<p>System-Level Design<br />
-&gt; Servos<br />
-&gt; Servo Control<br />
-&gt; Software Control for Servos<br />
-&gt; Camera<br />
-&gt; Interfaced camera to software<br />
-&gt; Algorithm for camera deskew</p>
<p>Results/Discussion<br />
-&gt; System was successfully demonstrated under a variety of conditions<br />
-&gt; Future work to pursue proprioceptive (accelerometer) based feedback and pneumatic actuation to replace servos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/robot-arm-abstract/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neural Simulator Resources</title>
		<link>http://www.obeidlab.com/neural-simulators</link>
		<comments>http://www.obeidlab.com/neural-simulators#comments</comments>
		<pubDate>Mon, 17 Dec 2007 14:21:03 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[Neural Simulation Project]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Public]]></category>

		<guid isPermaLink="false">http://obeidlab.com/neural-simulators</guid>
		<description><![CDATA[The Society for Neuroscience (SfN) Neuroscience Database Gateway (NDG) provides extensive access to experimental data databases, knowledge bases, software tools for neuroscience, bioinformatics resources, providers of research materials, and
all neuroscience databases.
Databases


SenseLab
The SenseLab Project (hosted by Yale University) is a long term effort to build integrated, 						multidisciplinary models of neurons and neural systems, using the olfactory [...]]]></description>
			<content:encoded><![CDATA[<p>The Society for Neuroscience (SfN) <a href="http://ndg.sfn.org/">Neuroscience Database Gateway</a> (NDG) provides extensive access to <a href="http://ndg.sfn.org/eavObList.aspx?cl=81&amp;at=278&amp;vid=28872&amp;menu_item=dblist1">experimental data databases</a>, <a href="http://ndg.sfn.org/eavObList.aspx?cl=81&amp;at=278&amp;vid=28763&amp;menu_item=dblist2">knowledge bases</a>, <a href="http://ndg.sfn.org/eavObList.aspx?cl=81&amp;at=278&amp;vid=28769&amp;menu_item=dblist3">software tools for neuroscience</a>, <a href="http://ndg.sfn.org/eavObList.aspx?cl=81&amp;at=278&amp;vid=28984&amp;menu_item=dblist4">bioinformatics resources</a>, <a href="http://ndg.sfn.org/eavObList.aspx?cl=81&amp;at=278&amp;vid=28985&amp;menu_item=dblist5">providers of research materials</a>, and<br />
<a href="http://ndg.sfn.org/eavObList.aspx?cl=81&amp;menu_item=dblist">all neuroscience databases</a>.</p>
<h1 id="toc-databases">Databases</h1>
<ol>
<li>
<h2 id="toc-senselab"><a href="http://senselab.med.yale.edu/">SenseLab</a></h2>
<p>The SenseLab Project (hosted by Yale University) is a long term effort to build integrated, 						multidisciplinary models of neurons and neural systems, using the olfactory 						pathway as a model. This is one of a number of projects funded as part of the <a href="http://www.nimh.nih.gov/neuroinformatics/index.cfm" target="_blank"> Human Brain Project</a> whose aim is to develop neuroinformatics tools in support of neuroscience research. The project involves novel informatics approaches to constructing databases and database tools for collecting and analyzing neuroscience information, and providing for efficient interoperability with other neuroscience databases.</li>
<li>
<h2 id="toc-modeldb"><a href="http://senselab.med.yale.edu/ModelDB/default.asp">ModelDB</a></h2>
<p>ModelDB (a component of SenseLab) provides an accessible location for storing and efficiently 	retrieving computational neuroscience models. ModelDB is tightly coupled with <a href="http://senselab.med.yale.edu/NeuronDB"> NeuronDB</a>. Models can be coded in any language for any environment.     Model code can be viewed before downloading and browsers can be set to 	auto-launch the models. <a href="http://senselab.med.yale.edu/ModelDB/DwnldGuide.html">Click here for help on how to download and/or run models from Senselab&#8217;s Model Database.</a></li>
</ol>
<h1 id="toc-neural-simulators">Neural Simulators</h1>
<p>The following guide provides a synopsis provides a summary of some known open-source neural simulators.</p>
<ol>
<li>
<h2 id="toc-dstool">DSTOOL</h2>
<p>by John Guckenheimer, Cornell Univ., dynamical systems on Unix machines</li>
<li>
<h2 id="toc-genesis"><a href="http://www.genesis-sim.org/" target="_blank">GENESIS</a></h2>
<p>by Jim Bower, Cal. Tech., general purpose simulator for neural systems on Unix machines</li>
<li>
<h2 id="toc-nbc">NBC</h2>
<p>by Jean-Francois Vibert, Fac. de Med. St-Antoine, Paris, Network simulation and analysis on Unix and VMS machines</li>
<li>
<h2 id="toc-nemosys">NEMOSYS</h2>
<p>by John Tromp, Univ. Cal., Berkeley, complex single neurons on Unix machines</li>
<li>
<h2 id="toc-neurograph">NEUROGRAPH</h2>
<p>by Peter Wilke, Univ. Erlangen, Germany, Simulation of artificial neural networks on Unix, DOS, VMS machines</li>
<li>
<h2 id="toc-neuron"><a href="http://neuron.duke.edu/" target="_blank"> NEURON</a></h2>
<p>by Michael Hines, Duke Univ., Simulations of biologically realistic single neurons and small networks on PCs and Unix machine</p>
<p>NEURON is a simulation environment for developing and exercising models of neurons and networks of neurons. It is particularly well-suited to problems where cable properties of cells play an important role, possibly including extracellular potential close to the membrane), and where cell membrane properties are complex, involving many ion-specific channels, ion accumulation, and second messengers.</p>
<p>For more information NIL&#8217;s use of NEURON see our <a href="/neuron-simulator-programming-guide">NEURON Simulator Programming Guide</a>.</li>
<li>
<h2 id="toc-neuronc">NEURONC</h2>
<p>by Rob Smith, Univ. Penn., compartmental simulations of large neural circuits on Unix machines</li>
<li>
<h2 id="toc-nodus">NODUS</h2>
<p>by Eric De Schutter, Univ. Antwerp, Belgium, simulation of small networks of neurons on Macintosh machines</li>
<li>
<h2 id="toc-nsl">NSL</h2>
<p>by Alfredo Weitzenfeld, Univ. Sou. Cal., simulation of large networks on Unix machines</li>
<li>
<h2 id="toc-snnap">SNNAP</h2>
<p>by John Byrne, Univ. Texas, Houston, Simulator for neural networks on Unix machines</li>
<li>
<h2 id="toc-swim">SWIM</h2>
<p>by Orjan Ekeberg, Royal Inst. Tech., Stockholm, simulation of network of few compartment model neurons on Unix machines</li>
</ol>
<h1 id="toc-tool-sets">Tool Sets</h1>
<h2 id="toc-blue-brain-project"><a href="http://bluebrain.epfl.ch/" target="_blank">Blue Brain Project</a></h2>
<p>&#8220;In July 2005, EPFL and IBM announced an exciting new research initiative &#8211; a project to create a biologically accurate, functional model of the brain using IBM&#8217;s Blue Gene supercomputer. Analogous in scope to the Genome Project, the Blue Brain will provide a huge leap in our understanding of brain function and dysfunction and help us explore solutions to intractable problems in mental health and neurological disease.&#8221;</p>
<ul>
<li><a href="http://www.obeidlab.com/wp-content/uploads/markram-2006-the-blue-brain-project.pdf">Markram, H. (2006). The blue brain project.. Nat Rev Neurosci, 7, 153-60</a><a title="Markram, H. (2006). The blue brain project.. Nat Rev Neurosci, 7, 153-60." href="http://obeidlab.com/wp-content/uploads/the-blue-brain-project.pdf">.</a></li>
<li><a title="Migliore, M., Cannia, C., Lytton, W. W., Markram, H. &amp; Hines, M.L. (2006). Parallel network simulations with NEURON.. J Comput Neurosci, 21, 119-29." href="http://obeidlab.com/wp-content/uploads/parallel-network-simulations-with-neuron.pdf">Migliore, M., Cannia, C., Lytton, W. W., Markram, H. &amp; Hines, M.L. (2006). Parallel network simulations with NEURON.. J Comput Neurosci, 21, 119-29.</a></li>
</ul>
<h2 id="toc-neuronal-time-series-analysis-ntsa-workbench">Neuronal Time Series Analysis (NTSA) Workbench</h2>
<h3 id="toc-a-database-system-for-neuronal-pattern-analysis">A Database System for Neuronal Pattern Analysis</h3>
<p>&#8220;Biologically-detailed neural simulations of the type supported by software packages such as GENESIS (developed in Jim Bower&#8217;s laboratory at Cal Tech) and NEURON (developed by Michael Hines and John Moore at Duke) are typically used to generate time-series data of the same general form as data collected in neurophysiological experiments. The volume of time-series data produced in a typical simulation study is often comparable to, or in some cases much greater than, the amount of data yielded in physiological experiments. The uniform interface that NTSA Workbench presents to both experimental and simulated data greatly facilitates comparison of modeling results with experimental data.&#8221; <span style="color: #ff0000;">The status of this project is unknown as all links to the actual project are dead.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/neural-simulators/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NEURON Simulator Programming Guide</title>
		<link>http://www.obeidlab.com/neuron-simulator-programming-guide</link>
		<comments>http://www.obeidlab.com/neuron-simulator-programming-guide#comments</comments>
		<pubDate>Tue, 20 Nov 2007 16:38:25 +0000</pubDate>
		<dc:creator>Rich</dc:creator>
				<category><![CDATA[Neural Simulation Project]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Public]]></category>

		<guid isPermaLink="false">http://obeidlab.com/neuron-simulator-programming-guide</guid>
		<description><![CDATA[This programming guide is intended to be a primer for novices attempting to run the NEURON simulator.  Complete programming references, tutorials, and other documentation may be found on the author&#8217;s site.
Getting Started
NEURON may be downloaded from http://www.neuron.yale.edu/neuron/install/install.html for Linux, MSWin (95 and up), and Mac OS X 10.4. NIL is running NEURON within the [...]]]></description>
			<content:encoded><![CDATA[<p>This programming guide is intended to be a primer for novices attempting to run the NEURON simulator.  Complete programming references, tutorials, and other documentation may be found on the <a href="http://neuron.duke.edu/" target="_blank">author&#8217;s site</a>.</p>
<h1 id="toc-getting-started">Getting Started</h1>
<p>NEURON may be downloaded from <a href="http://www.neuron.yale.edu/neuron/install/install.html">http://www.neuron.yale.edu/neuron/install/install.html</a> for Linux, MSWin (95 and up), and Mac OS X 10.4. NIL is running NEURON within the Fedora Linux environment on the basis that of the available OSs, Linux requires the least computational resources and may be implemented cheaply and easily across multiple hardware systems.</p>
<p>NEURON is installed in Linux with the command</p>
<p><code>rpm  nrn-[...].i686.rpm</code></p>
<p>or installed versions may be upgraded with</p>
<p><code>rpm -Fvh nrn-[...].i686.rpm</code></p>
<p>For those operating on a non-Linux system I recommend installing the virtual os program VirtualBox. The program allows any OS (Mac, Win, or Linux) to be run as a virtual (guest) system on any host. Virtual systems have full network and host file system access. NIL is running with both pure and virtual Linux systems.</p>
<p>In recent years NEURON has been modified to interact with the object-oriented language Python. The language comes installed with most flavors of Linux (including Fedora) or may be obtained through their <a href="http://www.python.org/download/">download page</a>. Two additional libraries, &#8216;numby&#8217; and &#8217;scipy&#8217;, are also required and may be installed through the Linux package manager.</p>
<h1 id="toc-commands">Commands</h1>
<ul>
<li>nrnivmodl &#8211; compiles a downloaded model. Run the command within the model&#8217;s folder.</li>
<li>nrngui &#8211; executes the model. (i.e. nrngui mosinit.hoc)</li>
</ul>
<h1 id="toc-resources">Resources</h1>
<ul>
<li><a href="http://neuron.duke.edu/">NEURON home page</a></li>
<li><a href="http://www.neuron.yale.edu/neuron/about/what.html">What is NEURON</a> (by the software authors)</li>
<li><a href="http://www.neuron.yale.edu/neuron/docs/help/quick_reference.html">NEURON Quick Reference</a></li>
<li><a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/1nrn.html#classes">NEURON Instructions and Parameters</a></li>
<li><a href="http://www.oberlin.edu/OCTET/HowTo/NEURON/index.html">NEURON Tutorial</a></li>
<li><a href="https://www.neuron.yale.edu/phpBB2/index.php">The NEURON Forum<br />
</a></li>
<li><a href="neural-simulators">Neural Simulator Resources</a> (internal NIL link). Before continuing with the NEURON Simulator Programming Guide, I strongly recommend that the reader investigates the Database resources. The databases provide pre-built models for immediate gratification.</li>
<li>Performance Data &#8211; <a href="http://obeidlab.com/wp-content/uploads/parallel-network-simulations-with-neuron-2006.pdf" title="Parallel network simulations with NEURON">Parallel network simulations with NEURON</a> (pdf)<a href="http://obeidlab.com/wp-content/uploads/parallel-network-simulations-with-neuron-2006.pdf" title="Parallel network simulations with NEURON"><br />
</a></li>
</ul>
<h1 id="toc-other-projects-using-neuron">Other Projects Using NEURON</h1>
<ul>
<li><a href="http://bluebrain.epfl.ch/">Blue Brain Project</a> &#8211; Massive use of mNEURON (multiprocessor version).</li>
</ul>
<h1 id="toc-hoc-template">&#8216;.hoc&#8217; Template</h1>
<p>The following document outlines the sections necessary to program a structure within the neural simulator NEURON. Where possible, the first instances of keywords have been linked to reference documents for ellaboration.</p>
<pre>//**********************************************************************
//**********************************************************************
// TEMPLATE: Basic Neuron
// AUTHOR(s): Richard Friendlich
//   This file is a composite of various tutorials and books.
//   Primary contributors include Dr. N.T. Carnevale, Dr. M. L. Hines, Kevin E. Martin (martin@cs.unc.edu)
//   Additional authors are sited as necessary.
// PURPOSE:
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
// NOTES:
//   NEURON files are saved with the .hoc extension and may be executed via the nrngui command
//**********************************************************************
//**********************************************************************

<a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/general/function/ocfunc.html#load_file" target="_blank">load file</a>("nrngui.hoc")	// Loads GUI and standard runtime library

//**********************************************************************
// Procedure: celldef
// Author(s): Various
// PURPOSE: Implements modular approach to cell building
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
// NOTES: 'The NEURON Book' recommends dividing the cell description into: Topology, Geometry &amp; Biophysical Properties
//**********************************************************************
proc celldef() {
  topol()
  subsets()
  geom()
  biophys()
  geom_nseg()
}

<a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/neuron/topology.html#create" target="_blank">create</a> soma, apical, basilar, axon 

/*'create' is an nrniv command which creates a list of section names. Existing sections with the same names
are destroyed and recreated. The create statement may occur within procedures, but the names must have
been previously declared with a create statement at the command level.*/

//**********************************************************************
// Procedure: topol
// Author(s): Various
// PURPOSE: Connects basic cell structure. This represents the cells framework much like a skeleton.
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
//**********************************************************************
proc topol() { local i
  <a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/neuron/topology.html#connect" target="_blank">connect</a> apical(0), soma(1)
  connect basilar(0), soma(0)
  connect axon(0), soma(0)
  basic_shape()
}

//**********************************************************************
// Procedure: basic_shape
// Author(s): Various
// PURPOSE: Assigns 3d coordinates to structures defined in topol
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
// NOTES: The topology works fine with out pt3dadd. Upon creating a 'shape plot' NEURON creates and arbitrary 3d structure
//   if one has not been specifically designated.
//**********************************************************************
proc basic_shape() {
  soma {<a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/neuron/geometry.html#pt3dclear" target="_blank">pt3dclear</a>() <a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/neuron/geometry.html#pt3dadd" target="_blank">pt3dadd</a>(0, 0, 0, 1) pt3dadd(15, 0, 0, 1)} // Destroys the 3d location info in the currently accessed section
  apical {pt3dclear() pt3dadd(15, 0, 0, 1) pt3dadd(120, 0, 0, 1)} // and adds the 3d location and diameter point at the end of the
  basilar {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(-59, 45, 0, 1)} // current pt3d list.
  axon {pt3dclear() pt3dadd(0, 0, 0, 1) pt3dadd(-104, 0, 0, 1)}
}

<a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/general/oop.html#objref" target="_blank">objref</a> all, has_HH, no_HH
/*Object variables are labels (pointers, references) to the actual objects. Thus o1 = o2 merely states that o1 and o2 are labels
for the same object. Objects are created with the new statement. When there are no labels for an object the object is deleted.
The keywords objectvar and objref are synonyms.*/

//**********************************************************************
// Procedure: subsets
// Author(s): Various
// PURPOSE: Groups sections (made via 'create' command) into manageable units
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
// NOTES: Subsets a useful shorthand for assigning morphologies to groups of sections at a time.
//**********************************************************************
proc subsets() { local i
  objref all, has_HH, no_HH
  all = new SectionList()
    soma all.append()
    apical all.append()
    basilar all.append()
    axon all.append()

  has_HH = new SectionList()
    soma has_HH.append()
    axon has_HH.append()

  no_HH = new SectionList()
    apical no_HH.append()
    basilar no_HH.append()

}

//**********************************************************************
// Procedure: geom
// Author(s): Various
// PURPOSE: Specifies the geometric properties of the sections.
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
// NOTES:
//**********************************************************************
proc geom() {
  forsec all {  }
  soma {  L = 30  diam = 30  }
  apical {  L = 600  diam = 1  }
  basilar {  L = 200  diam = 2  }
  axon {  L = 1000  diam = 1  }
}

//**********************************************************************
// Procedure: geom_nseg
// Author(s): Various
// PURPOSE: Establishes required number of segments per section.
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
// NOTES:
//**********************************************************************
proc geom_nseg() {
  forsec all { nseg = int((L/(0.1*lambda_f(100))+.9)/2)*2 + 1  }
}

//**********************************************************************
// Procedure: biophys
// Author(s): Various
// PURPOSE: Inserts biophysical cell properties.
// PARAMETERS: None.
// VERSION HISTORY: 20 Nov 2007
// NOTES:
//**********************************************************************
proc biophys() {
  forsec all {
    Ra = 100
    cm = 1
  }
  forsec has_HH {
    <a href="http://www.neuron.yale.edu/neuron/docs/help/neuron/general/keywords/ockeywor.html#insert" target="_blank">insert</a> hh // insert is used to place distributed mechanisms (membrane properties)
      gnabar_hh = 0.12
      gkbar_hh = 0.036
      gl_hh = 0.0003
      el_hh = -54.3
  }
  forsec no_HH {
    insert pas
      g_pas = 0.0002
      e_pas = -65
  }
}
access soma

celldef()

//**********************************************************************
//**********************************************************************
/* Instrumentation
//**********************************************************************
//**********************************************************************

// Synaptic input
objref syn
soma syn = new AlphaSynapse (0.5)
syn.onset = 0.5
syn.tau = 0.1
syn.gmax = 0.5
syn.e = 0

// graphical display
objref g
g= new Graph()
g.size (0,5,-80,40)
g.addvar ("soma.v(0.5)",1,1,0.6,0.9,2)

//**********************************************************************
//**********************************************************************
/* Simulation Control
//**********************************************************************
//**********************************************************************

dt = 0.025
tstop = 5
v_init = -65

proc initialize(){
  finitialize(v_init)
  fcurrent()
}
proc integrate(){
  g.begin
  while(t<tstop){>
    fadvance()
    g.plot(t)
  }
  g.flush()
}
proc go(){
  initialize()
  integrate()
}
tstop()</tstop){></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/neuron-simulator-programming-guide/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Large-Scale Neural Simulation</title>
		<link>http://www.obeidlab.com/large-scale-neural-simulation</link>
		<comments>http://www.obeidlab.com/large-scale-neural-simulation#comments</comments>
		<pubDate>Tue, 13 Nov 2007 22:20:56 +0000</pubDate>
		<dc:creator>iobeid</dc:creator>
				<category><![CDATA[Lab Personnel Only]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://obeidlab.com/large-scale-neural-simulation</guid>
		<description><![CDATA[Intro
Here are a list of resources for large scale neural simulations. I am particularly interested in knowing if there is any value in trying to get the NEURON platform to run as a massively parallel job on an FPGA or even a family of interconnected FPGAs. It would seem like simulating large populations of neurons [...]]]></description>
			<content:encoded><![CDATA[<h1 id="toc-intro">Intro</h1>
<p>Here are a list of resources for large scale neural simulations. I am particularly interested in knowing if there is any value in trying to get the NEURON platform to run as a massively parallel job on an FPGA or even a family of interconnected FPGAs. It would seem like simulating large populations of neurons is an ideal project for parallelization. Feel free to add your thoughts. In addition to adding links, it would be helpful to add a few brief sentences under each tab giving your thoughts or a brief summary.</p>
<h1 id="toc-primary-resources">Primary Resources</h1>
<ul>
<li>A <a href="http://www.springerlink.com/content/rw27162113p7l685/" target="_blank">book </a>on parallel simulation of large scale neuronal clusters.</li>
<li>Research paper (2006): <a href="http://obeidlab.com/wp-content/uploads/mak2006.pdf" title="A Component-Based FPGA Design Framework for Neuronal Ion Channel Dynamics Simulations">A Component-Based FPGA Design Framework for Neuronal Ion Channel Dynamics Simulations</a></li>
<li>Research paper (2007): <a href="/wp-content/uploads/weinstein2007.pdf" target="_blank">Methodology and Design Flow for Assisted Neural-Model Implementations in FPGAs</a></li>
</ul>
<p>[From the Neurodudes link below] After 2007 paper [above], the first author, Randall K. Weinstein, became the co-founder and Chief Systems Architect of  <a href="http://neurodudes.com/2007/03/27/faster-neural-simulations-with-fpgas/Simatra%20Modeling%20Technologies">http://www.simatratechnologies.com/</a>. A search over NIH awarded grants reveals grant 1R43NS057859-01 for “A low-cost, high-speed platform for neural modeling”, which this page suggests may be worth on the order of $183,163 for 2007 (or maybe that’s the amount that has already been dispensed? or the amount left?). Description of the grant:</p>
<blockquote></blockquote>
<p><font color="#808000">Neural models, mathematical descriptions of neural behavior, are an invaluable tool for developing new medical treatments and understanding how the nervous system works. But as researchers discover more information about the nervous system, these models become more complicated. As a result, many modern neural models require powerful computer hardware, such as supercomputers, in order to be simulated and studied. Unfortunately, these systems are expensive and difficult to use. This project will create a low-cost, user-friendly, and computationally powerful system for neural modeling based on a technology called field-programmable gate arrays (FPGAs). This project will develop the user-friendly tools for creating neuron models on FPGAs, and the high-speed interface that will maximize the computational power of FPGAs.</font></p>
<blockquote></blockquote>
<ul>
<li><a href="http://neurodudes.com/2007/03/27/faster-neural-simulations-with-fpgas/" target="_blank">Faster neural simulations with FPGAs:</a> Post on Neurodudes Blog</li>
<li>Current performance measurements for NEURON: <a href="http://obeidlab.com/wp-content/uploads/parallel-network-simulations-with-neuron.pdf" target="_blank" title="Migliore, M., Cannia, C., Lytton, W. W., Markram, H. &amp; Hines, M.L. (2006). Parallel network simulations with NEURON.. J Comput Neurosci, 21, 119-29.">Migliore, M., Cannia, C., Lytton, W. W., Markram, H. &amp; Hines, M.L. (2006). Parallel network simulations with NEURON.. J Comput Neurosci, 21, 119-29.</a></li>
<li><a href="http://obeidlab.com/wp-content/uploads/brette2007.pdf" title="Simulation of networks of spiking neurons:review of tools and strategies">Simulation of networks of spiking neurons:review of tools and strategies</a> (Brette 2007)</li>
<li><a href="http://obeidlab.com/wp-content/uploads/guerrer2006.pdf" title="Programmable Logic Construction Kits for Hyper-Real-Time Neuronal Modeling">Programmable Logic Construction Kits for Hyper-Real-Time Neuronal Modeling</a> (Guerrer 2006)</li>
<li><a href="http://obeidlab.com/wp-content/uploads/morrison2005.pdf" title="Advancing the Boundaries of High-Connectivity Network Simulation with Distributed Computing">Advancing the Boundaries of High-Connectivity Network Simulation with Distributed Computing</a> &#8211; (Morrison 2005)</li>
</ul>
<h1 id="toc-other-relevant-resources">Other Relevant Resources</h1>
<ul>
<li>Rich&#8217;s post summarizing <a href="/neural-simulators">Neural Simulators</a></li>
<li>NIH Program Announcement for <a href="http://grants.nih.gov/grants/guide/pa-files/PAR-06-411.html#SectionIV3A" target="_blank"><span class="addtitle">Exploratory Innovations in Biomedical Computational     Science and Technology</span></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/large-scale-neural-simulation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Closed-Loop BMI Model : Development</title>
		<link>http://www.obeidlab.com/closed-loop-model-dev</link>
		<comments>http://www.obeidlab.com/closed-loop-model-dev#comments</comments>
		<pubDate>Fri, 31 Aug 2007 02:03:31 +0000</pubDate>
		<dc:creator>iobeid</dc:creator>
				<category><![CDATA[Lab Personnel Only]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://obeidlab.com/closed-loop-model-dev</guid>
		<description><![CDATA[Overview

Components

Camera (Logitech QuickCam Pro 9000)
Robot Arm (custom built, Lynxmotion Hi-Tec 645MG)
Servo Control Board (Yost Engineering, Servo Center, Full Package, USB model)
Software (Custom built using some open source libraries for the visual processing)

Software
The software is mostly custom built C. We make use of some open source libraries for the visual processing.
Code Block Diagram

Major Variables

pf: parallel fiber [...]]]></description>
			<content:encoded><![CDATA[<h1 id="toc-overview">Overview</h1>
<p><a href="http://obeidlab.com/wp-content/uploads/bmi-system-overview-01.ppt" target="_blank"><img src="http://obeidlab.com/wp-content/uploads/bmi-system-overview-01.png" alt="bmi-system-overview-01" /></a></p>
<h1 id="toc-components">Components</h1>
<ol>
<li><a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16826104074" target="_blank">Camera</a> (Logitech QuickCam Pro 9000)</li>
<li><a href="http://www.lynxmotion.com/Category.aspx?CategoryID=38" target="_blank">Robot Arm</a> (custom built, Lynxmotion Hi-Tec 645MG)</li>
<li><a href="http://tech.yostengineering.com/servoFolder" target="_blank">Servo Control Board</a> (Yost Engineering, Servo Center, Full Package, USB model)</li>
<li>Software (Custom built using some open source libraries for the visual processing)</li>
</ol>
<h1 id="toc-software">Software</h1>
<p>The software is mostly custom built C. We make use of some open source libraries for the visual processing.</p>
<h2 id="toc-code-block-diagram">Code Block Diagram</h2>
<p><a href="http://obeidlab.com/wp-content/uploads/bmi-system-code-diagram.ppt" target="_blank"><img src="http://obeidlab.com/wp-content/uploads/bmi-system-code-diagram.png" alt="bmi-system-code-diagram.png" /></a></p>
<h2 id="toc-major-variables">Major Variables</h2>
<ul>
<li><strong>pf</strong>: parallel fiber signals &#8211; nCenters x 1</li>
</ul>
<ul>
<li><strong>w1,w2</strong>: synapse weights &#8211; each is nCenters x 1 &#8211; initialize to zeros</li>
<li><strong>xa,ya</strong>: actual robot arm position <em>[units will probably be in pixels]</em> &#8211; each is 1&#215;1</li>
<li><strong>xd,yd:</strong> desired robot arm position &#8211; each is 1&#215;1</li>
<li><strong>xc,yc:</strong> correction factors for robot arm position &#8211; each is 1&#215;1</li>
<li><strong>m1,m2:</strong> servo motor angles, in radians &#8211; each is 1&#215;1</li>
<li><strong>l1Est,l2Est</strong>: estimated lengths for robot arm segments &#8211; each is 1&#215;1</li>
<li><strong>xErr,yErr:</strong> position error between actual and desired arm position &#8211; each is 1&#215;1</li>
<li><strong>c:</strong> structure that contains the radial basis function description for the virtual cerebellum. It consists of:
<ul>
<li><strong>c1</strong> &#8211; pointer to x-positions of rbf centers &#8211; nCenters x 1</li>
<li><strong>c2</strong> &#8211; pointer to y-positions of rbf centers &#8211; nCenters x 1</li>
<li><strong>sigma</strong> &#8211; rbf standard deviation &#8211; 1&#215;1</li>
<li><strong>nCenters</strong> &#8211; the number of rbf elements -1&#215;1</li>
<li><strong>receptiveField</strong> &#8211; receptive field size of the rbf &#8211; 1&#215;1</li>
</ul>
</li>
</ul>
<ul>
<li><strong>servo1, servo2:</strong> structures containing the servo calibration constants:
<ul>
<li><strong>servoMin</strong> &#8211; minimum servo position (servo units)</li>
<li><strong>servoMax</strong> &#8211; maximum servo position (servo units)</li>
<li><strong>degreesMin</strong> &#8211; degrees corresponding to servoMin, measured according to the &#8220;Arm Calibration&#8221; diagram below</li>
<li><strong>degreesMax</strong> &#8211; degrees corresponding to servoMax, measured according to the &#8220;Arm Calibration&#8221; diagram below</li>
</ul>
</li>
</ul>
<h2 id="toc-visual-tracking-settings">Visual Tracking Settings</h2>
<ul>
<li>In RoboRealm:
<ul>
<li>Color Threshold = {170-255} for red, green, and blue</li>
</ul>
<ul>
<li>Center of Gravity</li>
</ul>
</li>
</ul>
<ul>
<li>In camera &#8220;settings&#8221; tab, default settings, then set manual focus to about 2/3 between left &amp; right</li>
</ul>
<ul>
<li>Room lights need to be off</li>
</ul>
<ul>
<li>Black fabric might be needed to deaden remaining glare spots</li>
</ul>
<h2 id="toc-arm-calibration">Arm Calibration</h2>
<p><a href="http://obeidlab.com/wp-content/uploads/servodiagram.ppt" target="_blank"><img src="http://obeidlab.com/wp-content/uploads/servodiagram.png" alt="servodiagram.png" /></a></p>
<h2 id="toc-pixels-per-cm">Pixels Per cm</h2>
<p>(camera set to 640 x 480)</p>
<p><a href="http://obeidlab.com/wp-content/uploads/camera-calibration.ppt" target="_blank" title="camera-calibration.png"><img src="http://obeidlab.com/wp-content/uploads/camera-calibration.png" alt="camera-calibration.png" /></a></p>
<h1 id="toc-code-versions">Code Versions</h1>
<h3 id="toc-bmi-code">BMI Code</h3>
<p><a href="http://obeidlab.com/wp-content/uploads/07_08_31_bmicode.zip" title="07_08_31_bmicode.zip">v070831:</a> Working cerebellum code with virtual arm; c &amp; matlab</p>
<p><a href="http://obeidlab.com/wp-content/uploads/controlcode.zip" target="_blank">v070902:</a> Same as ver 1 with additional code for driving the servos in open loop</p>
<p><a href="http://obeidlab.com/wp-content/uploads/07_09_04bmicodetar.gz" target="_blank">v070904:</a> Same as ver 2 with a small bugfix (write 6 bytes, not 5 in &#8220;moveservo&#8221;) &#8211; verified to work using fedora linux, serial cable, portnum 1 (/dev/ttyS0) on &#8220;Market&#8221;</p>
<p><a href="http://obeidlab.com/wp-content/uploads/07_09_05_bmicodetar.gz" target="_blank">v070905:</a> Calibration code started</p>
<p><a href="http://obeidlab.com/wp-content/uploads/computer_visiontar.gz">v070919</a> First fully functioning version &#8211; complete system</p>
<p><a href="http://obeidlab.com/wp-content/uploads/070920.zip" title="070920.zip">v070920</a></p>
<p><a href="http://obeidlab.com/wp-content/uploads/070921.zip" title="070921.zip">v070921</a> Includes data and video</p>
<p><a href="http://obeidlab.com/wp-content/uploads/071010.zip" title="071010.zip">v071010</a> This version includes an initial attempt to calibrate the camera/arm interaction.</p>
<p><a href="http://obeidlab.com/wp-content/uploads/071018.zip" title="v071018">v071018</a>  Camera calibration code has been tested and added.</p>
<h3 id="toc-computer-vision">Computer Vision</h3>
<p><a href="http://obeidlab.com/wp-content/uploads/07_09_05_vision.zip" title="07_09_05_vision.zip">v070905: </a>Working vision tracking</p>
<p><a href="http://obeidlab.com/wp-content/uploads/07_09_17_vision.zip" title="07_09_17_vision.zip">v070917:</a> Lightened version of vision tracking</p>
<h1 id="toc-how-to-run-the-code">How to Run the Code</h1>
<p>Go to D:\Jesse\Computer_Vision</p>
<p>Double click on Computer_Vision.sln &#8220;solution&#8221; file</p>
<p>We are only considering the &#8220;Robot Arm&#8221; project</p>
<p>Build -&gt;  Build Robot Arm</p>
<p>Debug -&gt;  Start w/o Debugging</p>
<p>If it asks, &#8220;Never Automatically Apply RightLight Technology&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.obeidlab.com/closed-loop-model-dev/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
