<?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>Online Cortex &#187; Mindstorms</title>
	<atom:link href="http://www.huginn.com/knuth/blog/tag/mindstorms/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.huginn.com/knuth/blog</link>
	<description>Thoughts on Science and Technology</description>
	<lastBuildDate>Thu, 03 Jun 2010 04:26:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Matlab Package for LEGO Mindstorms</title>
		<link>http://www.huginn.com/knuth/blog/2008/03/09/matlab-package-for-lego-mindstorms/</link>
		<comments>http://www.huginn.com/knuth/blog/2008/03/09/matlab-package-for-lego-mindstorms/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 03:16:29 +0000</pubDate>
		<dc:creator>drknuth</dc:creator>
				<category><![CDATA[Computation]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Intelligent Systems]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[NXT]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[MATLAB]]></category>
		<category><![CDATA[Mindstorms]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Robot]]></category>

		<guid isPermaLink="false">http://www.huginn.com/knuth/blog/2008/03/09/matlab-package-for-lego-mindstorms/</guid>
		<description><![CDATA[I recently received a comment on my post on controlling NXT robots with Matlab that pointed me to the RWTH &#8211; Mindstorms NXT Toolbox for MATLAB®, which is a public domain Matlab package that enables one to interface with and control LEGO mindstorms.
The RWTH &#8211; Mindstorms NXT Toolbox for MATLAB® was developed as a student project in [...]]]></description>
			<content:encoded><![CDATA[<p>I recently received a comment on my post on <a target="_blank" href="http://www.huginn.com/knuth/blog/2007/03/30/controlling-lego-nxt-robots-with-matlab/">controlling NXT robots with Matlab</a> that pointed me to the RWTH &#8211; Mindstorms NXT Toolbox for MATLAB®, which is a public domain Matlab package that enables one to interface with and control LEGO mindstorms.</p>
<p>The <a href="http://www.mindstorms.rwth-aachen.de/">RWTH &#8211; Mindstorms NXT Toolbox for MATLAB®</a> was developed as a student project in the <a href="http://www.lfb.rwth-aachen.de/">Institute of Imaging and Computer Vision</a> at <a target="_blank" href="http://www.rwth-aachen.de/go/id/hi/">RWTH Aachen University</a> in Aachen Germany.  It provides a Matlab interface with the NXT brick that includes Bluetooth communication, sensor interface and motor interface.  It requires a working Matlab license, of course. </p>
<p>The package is very easy to set up.  It took me less than ten minutes to successfully test the example programs over Bluetooth.</p>
<p>There are some very nice motor features, such as motor synchronization and speed ramp-up and ramp-down.</p>
<p>I have yet to explore how easy it is to modify or extend the code, but it ought to be a straightforward matter.</p>
<p>The package can be downloaded from<br />
<a rel="nofollow" href="http://www.mindstorms.rwth-aachen.de/"><font color="#000066">http://www.mindstorms.rwth-aachen.de</font></a></p>
<p>Kevin Knuth<br />
Albany NY</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huginn.com/knuth/blog/2008/03/09/matlab-package-for-lego-mindstorms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>12 Output LEGO Motor Multiplexer</title>
		<link>http://www.huginn.com/knuth/blog/2007/08/23/12-output-lego-motor-multiplexer/</link>
		<comments>http://www.huginn.com/knuth/blog/2007/08/23/12-output-lego-motor-multiplexer/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 05:34:32 +0000</pubDate>
		<dc:creator>drknuth</dc:creator>
				<category><![CDATA[Inventions]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[creation]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[invention]]></category>
		<category><![CDATA[Mindstorms]]></category>
		<category><![CDATA[motor]]></category>
		<category><![CDATA[multiplexer]]></category>
		<category><![CDATA[NXT]]></category>

		<guid isPermaLink="false">http://www.huginn.com/knuth/blog/2007/08/23/12-output-lego-motor-multiplexer/</guid>
		<description><![CDATA[Some of the limitations of the LEGO NXT system are related to the fact that, without electronic multiplexers, one can only control three motors with the NXT brick.  This individual introduces a mechanical NXT multiplexer that uses two motors but provides 12 outputs! 

I have thought about linear designs of this sort, but a rotary design is [...]]]></description>
			<content:encoded><![CDATA[<p>Some of the limitations of the LEGO NXT system are related to the fact that, without electronic multiplexers, one can only control three motors with the NXT brick.  This individual <a target="_blank" href="http://www.youtube.com/watch?v=A0TpLKijRIs">introduces a mechanical NXT multiplexer</a> that uses two motors but provides 12 outputs! </p>
<p><object width="350" height="288"><param name="movie" value="http://www.youtube.com/v/A0TpLKijRIs"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/A0TpLKijRIs" type="application/x-shockwave-flash" wmode="transparent" width="350" height="288"></embed></object></p>
<p>I have thought about linear designs of this sort, but a rotary design is much more practical. Very nice.</p>
<p>An elegant <a target="_blank" href="http://nxtasy.org/2006/09/10/worm-gear-motor-multiplexer/">worm-gear multiplexer</a> submitted to <a target="_blank" href="http://nxtasy.org/">nxtasy.org</a> by Guy Ziv provides another solution in the event that your two outputs do not need to change direction.</p>
<p>Kevin Knuth<br />
Albany NY</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huginn.com/knuth/blog/2007/08/23/12-output-lego-motor-multiplexer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LEGO NXT Rocker-Bogie Suspension</title>
		<link>http://www.huginn.com/knuth/blog/2007/06/24/lego-nxt-rocker-bogie-suspension/</link>
		<comments>http://www.huginn.com/knuth/blog/2007/06/24/lego-nxt-rocker-bogie-suspension/#comments</comments>
		<pubDate>Sun, 24 Jun 2007 06:59:00 +0000</pubDate>
		<dc:creator>drknuth</dc:creator>
				<category><![CDATA[Exploration]]></category>
		<category><![CDATA[Intelligent Systems]]></category>
		<category><![CDATA[Inventions]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[NXT]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[invention]]></category>
		<category><![CDATA[Mindstorms]]></category>
		<category><![CDATA[motor]]></category>
		<category><![CDATA[Robot]]></category>
		<category><![CDATA[Rocker-Bogie]]></category>
		<category><![CDATA[rover]]></category>

		<guid isPermaLink="false">http://www.huginn.com/knuth/blog/2007/06/24/lego-nxt-rocker-bogie-suspension/</guid>
		<description><![CDATA[I have just uploaded three videos of a LEGO NXT rover that uses the rocker-bogie suspension system employed by the current Mars rovers.  This design is based heavily on the design presented by Brian Bagnall in his book Maximum Lego NXT: Building Robots with Java Brains
I described the rocker-bogie suspension system in a previous post.  The [...]]]></description>
			<content:encoded><![CDATA[<p>I have just uploaded three videos of a LEGO NXT rover that uses the rocker-bogie suspension system employed by the current Mars rovers.  This design is based heavily on the design presented by Brian Bagnall in his book <a href="http://www.amazon.com/gp/product/0973864915?ie=UTF8&amp;tag=onlicort-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0973864915">Maximum Lego NXT: Building Robots with Java Brains</a><img border="0" width="1" src="http://www.assoc-amazon.com/e/ir?t=onlicort-20&amp;l=as2&amp;o=1&amp;a=0973864915" height="1" style="margin: 0px; border: medium none" /></p>
<p>I described the rocker-bogie suspension system in a <a target="_blank" href="http://www.huginn.com/knuth/blog/2007/05/18/building-lego-robots-with-java-brains/">previous post</a>.  The idea originated with the bogie, which is a set of six wheels on a train designed in such a way to keep all the wheels on a curved track.  The innovation here is to add rockers allowing the wheels to move up and down independently.  This enables the rover to handle extremely rough terrain, and as I demonstrate, climb barriers higher than the wheels themselves.  A more detailed description can be found on <a target="_blank" href="http://www.magneticpie.com/LEGO/techNotes/MecTherMob.html#MacTherMob">BrickVista Tech-Notes</a>.</p>
<p>The first demo was filmed in my brother&#8217;s backyard in Wisconsin where he had just put in a fence.  The terrain is relatively rough with bumps and dips with sizes on the order of the diameter of the rover&#8217;s wheels.</p>
<p><object width="350" height="288"><param name="movie" value="http://www.youtube.com/v/cfcMI-yGuhg"></param> <embed src="http://www.youtube.com/v/cfcMI-yGuhg" type="application/x-shockwave-flash" width="350" height="288"></embed></object></p>
<p>The second demo was filmed in my office in the Physics Department at the University at Albany.  Here the rover climbs a pile of some of my favorite books.  Several of the book heights are on the order of the diameter of the wheels themselves.  Watch how the rockers allow the wheels to climb independently.</p>
<p><object width="350" height="288"><param name="movie" value="http://www.youtube.com/v/ns3FW0JfytY"></param> <embed src="http://www.youtube.com/v/ns3FW0JfytY" type="application/x-shockwave-flash" width="350" height="288"></embed></object></p>
<p>The third demo was filmed in the access road just outside the Physics Department.  A small parking barrier, approximately the height of a curb, is the obstacle to be overcome.  The rover is able to climb the barrier, and the rocker-bogie suspension allows its wheels to hug the barrier as it rolls over.  The rover then heads off towards a small tree&#8230; perhaps in search of life. </p>
<p><object width="350" height="288"><param name="movie" value="http://www.youtube.com/v/tmsB_OJutAY"></param> <embed src="http://www.youtube.com/v/tmsB_OJutAY" type="application/x-shockwave-flash" width="350" height="288"></embed></object></p>
<p>We improved on the design by increasing the torque on the tires (decreasing the speed) and by replacing the front drive shafts with a gear system.  Long LEGO axles tend to take a good deal of torsion and store this energy like a spring.  This leads to oscillatory motions in the wheels.  In addition, the coupling was too weak to enable our rover to climb the desired obstacles, and our gear system overcomes this.  Another way we found to overcome the torsion of long drive shafts is to construct a shaft out of small axles joined by axle connectors.</p>
<p>There are more improvements to be made.  One design flaw is that the front wheels are too powerful and sometimes lift the entire front end of the rover without allowing the rockers to rotate.  This is because the back wheels are also progressing a given rate of speed and for the rockers to rotate, these wheels would have to slow down.  A properly-placed differential should solve this problem.</p>
<p>In the meantime, this basic rover design is sufficiently robust for outdoor exploration.</p>
<p>Below are several books of potential interest.</p>
<p>Kevin Knuth<br />
Albany NY</p>
<table>
<tr>
<td><iframe scrolling="no" frameBorder="0" src="http://rcm.amazon.com/e/cm?t=onlicort-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0973864915&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" marginHeight="0" marginWidth="0" align="middle" style="width: 120px; height: 240px"></iframe></td>
<td><iframe scrolling="no" frameBorder="0" src="http://rcm.amazon.com/e/cm?t=onlicort-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0262201623&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" marginHeight="0" marginWidth="0" style="width: 120px; height: 240px"></iframe></td>
</tr>
<tr>
<td><iframe scrolling="no" frameBorder="0" src="http://rcm.amazon.com/e/cm?t=onlicort-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0198568320&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" marginHeight="0" marginWidth="0" style="width: 120px; height: 240px"></iframe></td>
<td><iframe scrolling="no" frameBorder="0" src="http://rcm.amazon.com/e/cm?t=onlicort-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=0831110848&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" marginHeight="0" marginWidth="0" style="width: 120px; height: 240px"></iframe></td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.huginn.com/knuth/blog/2007/06/24/lego-nxt-rocker-bogie-suspension/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Lego Central Drive Animation</title>
		<link>http://www.huginn.com/knuth/blog/2007/04/22/lego-central-drive-animation/</link>
		<comments>http://www.huginn.com/knuth/blog/2007/04/22/lego-central-drive-animation/#comments</comments>
		<pubDate>Mon, 23 Apr 2007 03:00:31 +0000</pubDate>
		<dc:creator>drknuth</dc:creator>
				<category><![CDATA[Acoustics]]></category>
		<category><![CDATA[Intelligent Systems]]></category>
		<category><![CDATA[Inventions]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[NXT]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[CAD]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[generated]]></category>
		<category><![CDATA[Mindstorms]]></category>
		<category><![CDATA[MLCAD]]></category>
		<category><![CDATA[render]]></category>

		<guid isPermaLink="false">http://www.huginn.com/knuth/blog/2007/04/22/lego-central-drive-animation/</guid>
		<description><![CDATA[I am slowly constructing my first intelligent instrument.  It will be an instrument that learns the acoustic radiation pattern emitted by a speaker.  It is not a perfect acoustic experiment&#8212;nor is it meant to be.  Uncertainties and errors abound, especially since I am using the Lego NXT Mindstorms system to construct the instrument.

The design is [...]]]></description>
			<content:encoded><![CDATA[<p>I am slowly constructing my first <a target="_blank" href="http://ic.arc.nasa.gov/projects/isias/">intelligent instrument</a>.  It will be an instrument that learns the acoustic radiation pattern emitted by a speaker.  It is not a perfect acoustic experiment&#8212;nor is it meant to be.  Uncertainties and errors abound, especially since I am using the <a target="_blank" href="http://mindstorms.lego.com/">Lego NXT Mindstorms</a> system to construct the instrument.</p>
<p><a target="_blank" href="http://www.huginn.com/knuth/blog/anims/acoustic-platform-drive.gif"><img align="middle" src="http://www.huginn.com/knuth/blog/pics/central-drive-short.gif" alt="Animation of the Central Driveshaft" title="Animation of the Central Driveshaft" /></a></p>
<p>The design is sufficiently complex that I found that I need to document it using the <a target="_blank" href="http://www.ldraw.org/">LDraw</a> system, specifically <a target="_blank" href="http://www.lm-software.com/mlcad/">MLCAD</a>.  I have been practicing my animation skills as well.  Here you can see a short animation of the central drive shaft for the acoustic platform.  The gears are turning at the appropriate rates and everything.  However, there is an aliasing effect in this downsampled image (which used to be referred to as the wagon wheel effect).  So it may look as if some gears are rotating backwards, or not at all.  If you click on the image, you can <a target="_blank" href="anims/acoustic-platform-drive.gif">download a 6 MB version</a> that is much smoother. </p>
<p>The longer animation will appear in two talks I am giving at the <a target="_blank" href="http://www.albany.edu/">University at Albany</a> this week:<br />
<a target="_blank" href="http://www.albany.edu/inf/ntir/">NTIR 2007</a> and PASCAL 2006.</p>
<p>Kevin Knuth<br />
Albany NY</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huginn.com/knuth/blog/2007/04/22/lego-central-drive-animation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lego Geneva Mechanism</title>
		<link>http://www.huginn.com/knuth/blog/2007/04/14/lego-geneva-mechanism/</link>
		<comments>http://www.huginn.com/knuth/blog/2007/04/14/lego-geneva-mechanism/#comments</comments>
		<pubDate>Sat, 14 Apr 2007 07:40:11 +0000</pubDate>
		<dc:creator>drknuth</dc:creator>
				<category><![CDATA[Lego]]></category>
		<category><![CDATA[NXT]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[CAD]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[generated]]></category>
		<category><![CDATA[Geneva]]></category>
		<category><![CDATA[mechanism]]></category>
		<category><![CDATA[Mindstorms]]></category>
		<category><![CDATA[MLCAD]]></category>
		<category><![CDATA[render]]></category>

		<guid isPermaLink="false">http://www.huginn.com/knuth/blog/2007/04/14/lego-geneva-mechanism/</guid>
		<description><![CDATA[I recently designed a Geneva Mechanism that I will be using in my Lego Laser Scanner.  The Geneva Mechanism takes smooth rotary motion and converts it to intermittent rotary motion.  One can think of it in electronics terms as changing the duty cycle of the oscillation.
Geneva mechanisms were invented in Switzerland for use in clockwork [...]]]></description>
			<content:encoded><![CDATA[<p>I recently designed a <a target="_blank" href="http://em-ntserver.unl.edu/Mechanics-Pages/em373honors-S2001/em373/geneva/geneva.htm">Geneva Mechanism</a> that I will be using in my Lego Laser Scanner.  The Geneva Mechanism takes smooth rotary motion and converts it to intermittent rotary motion.  One can think of it in electronics terms as changing the <a target="_blank" href="http://en.wikipedia.org/wiki/Duty_cycle">duty cycle</a> of the oscillation.</p>
<p>Geneva mechanisms were invented in Switzerland for use in clockwork so that the hands of a clock would snap rapidly to their new positions rather than move smoothly across the face of the clock.  They are also used to advance film in film projectors.  They are responsible for that clicking noise that film projectors make.</p>
<p><img align="middle" src="http://www.huginn.com/knuth/blog/pics/geneva-mechanism.png" alt="Lego Geneva Mechanism" title="Lego Geneva Mechanism" /></p>
<p>Above is an image of my design rendered using the Lego CAD <a target="_blank" href="http://www.ldraw.org/">LDraw</a> tools that I discussed in <a target="_blank" href="http://www.huginn.com/knuth/blog/2007/03/21/rendering-lego-figures/">earlier posts</a>.</p>
<p>I have been practicing with animating Lego designs, and I have figured it out.  Below is an animated GIF of my Geneva Mechanism.  It is a pretty big file, so it may take some time to download.  Notice that I cheated a little and included just enough frames to rotate the wheel 90 degrees, since it is mostly 4-fold symmetric (but not exactly).</p>
<p><img align="middle" src="http://www.huginn.com/knuth/blog/pics/ani-geneva-knuth.gif" alt="Geneva Mechanism Image" title="Geneva Mechanism Image" /></p>
<p>The animation was challenging in that there are three moving parts: the rotating arm, the latch, and the wheel.  I designed each of the pieces in <a target="_blank" href="http://www.lm-software.com/mlcad/">MLCAD</a> and made sure that they were positioned so that the origin of the three pieces was centered on the axis that I wished to rotate the image about.  The rotating arm simply rotates a single rate described by 155-clock, where the clock is a variable in the ray-tracing program <a target="_blank" href="http://www.povray.org/">POV-Ray</a> that I have set to cycle from 0 to 360. One can see that when clock equals zero, the arm starts at 155 degrees.</p>
<p>The arm is only able to rotate the wheel over a 50 degree range, while the wheel rotates a full 90 degrees.  This lead to the following equation that I used the describe the motion of the wheel:</p>
<p>[tex]angle = 45+(clock-310)*9/5[/tex]</p>
<p>Note that the wheel starts turning when the rotating arm gets to 310 degrees, and moves almost twice as fast (9:5 ratio) so that it turns 90 degrees while the clock which controls the rotating arm counts only 50 degrees.</p>
<p>The latch was especially difficult as it is pushed outward by a cam, and I did not have the details of the shape of the Lego cam, nor did I have the patience to measure it myself. The latch arm moves slowly at first away from the wheel and then slows down as it approaches the limit of its motion. My first approximation was a cosine:</p>
<p>[tex] 5-25*cos((clock-237)/(305-237)*3.1415) [/tex]</p>
<p>Note that the latch does not start moving until the clock is at 237 degrees. At this point, the argument of the cosine is zero, and its value is 1 giving a angular position of -20 degrees. The cosine picks up speed and slows down again as it approaches 30 degress. Once the cam is out of the way, a rubber band (not shown in the illustration) rapidly snaps the latch back into place. To describe this, I merely treated its motion as an acceration:</p>
<p>[tex]-50*((clock-305)/55)*((clock-305)/55))+30[/tex], where I have implemented the square by multiplying twice. The result is a more realistic motion.</p>
<p>Enjoy,<br />
Kevin Knuth<br />
Albany NY</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huginn.com/knuth/blog/2007/04/14/lego-geneva-mechanism/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
